Intuitive interface to many IR axioms.
Project description
↕️ ir_axioms
Intuitive axiomatic retrieval experimentation.
ir_axioms
is a Python framework for experimenting with axioms in information retrieval in a declarative way.
It includes reference implementations of many commonly used retrieval axioms and is well integrated with the PyTerrier and Pyserini frameworks.
Re-rank your search results today with ir_axioms
and understand your retrieval systems better by analyzing
axiomatic preferences!
Usage
Example Notebooks
We include several example notebooks to demonstrate re-ranking and preference evaluation in PyTerrier using ir_axioms
.
You can find all examples in the examples/
directory.
- Re-ranking top-20 results using KwikSort
- Re-ranking top-20 results using KwikSort learned from ORACLE preferences
- Re-ranking top-20 results using LambdaMART with axiomatic preference features
- Axiomatic prefernces for TREC Deep Learning 2019 runs (passages)
- Axiomatic prefernces for TREC Deep Learning 2019 runs (documents)
- Axiomatic prefernces for TREC Deep Learning 2020 runs (passages)
- Axiomatic prefernces for TREC Deep Learning 2020 runs (documents)
Backends
TODO
Slurm
If you want to play around with ir_axioms
in Jupyter Lab, you can use this command to provision a server via Slurm:
scripts/slurm-start-jupyter-lab.sh
Citation
If you use this package or its components in your research, please cite the following paper describing the ir_axioms
framework and its use-cases:
TODO
You can use the following BibTeX entry for citation:
@InProceedings{TODO,
}
Development
To build ir_axioms
and contribute to its development you need to install the build
, and setuptools
and wheel
packages:
pip install build setuptools wheel
(On most systems, these packages are already pre-installed.)
Installation
Install dependencies for developing the ir_axioms
package:
pip install -e .
If you want to develop the Pyserini backend, install dependencies like this:
pip install -e .[pyserini]
If you want to develop the PyTerrier backend, install dependencies like this:
pip install -e .[pyterrier]
Testing
Install test dependencies:
pip install -e .[test]
Verify your changes against our test suite to verify.
flake8 ir_axioms tests
pylint -E ir_axioms tests.unit --ignore-paths=^ir_axioms.backend
pytest ir_axioms/ tests/unit/ --ignore=ir_axioms/backend/
Please also add tests for the axioms or integrations you've added.
Testing backend integrations
Install test dependencies (replace <BACKEND>
with either pyserini
or pyterrier
):
pip install -e .[<BACKEND>]
Verify your changes against our test suite to verify.
pylint -E ir_axioms.backend.<BACKEND> tests.integration.<BACKEND>
pytest tests/integration/<BACKEND>/
Build wheel
A wheel for this package can be built by running:
python -m build
License
This repository is released under the MIT license. If you use ir_axioms
in your research, we'd be glad if
you'd cite us.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ir_axioms-0.1.1.tar.gz
.
File metadata
- Download URL: ir_axioms-0.1.1.tar.gz
- Upload date:
- Size: 40.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 910a838f6725cae2ff7535f3d3a2360a0ec8d31268014d425aa752088b3b1468 |
|
MD5 | 5b5320d2430cbb20b58de70861fbceb1 |
|
BLAKE2b-256 | d3e8e9052caabb20125503224248352c9aaebf8c2086bf3177dd1ab2a24f966c |
File details
Details for the file ir_axioms-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: ir_axioms-0.1.1-py3-none-any.whl
- Upload date:
- Size: 59.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb57fe3332852f465bbe60954cc73981c20b93c6b4c340b284c30fb6cfddd85f |
|
MD5 | f05ba823b413dea4d43a6c54d147e941 |
|
BLAKE2b-256 | f13fad1707b097876ae454b67d1ef5fc3c7e13fd22374b6ecaff2b3f4b1b2a28 |