Skip to main content

Intuitive interface to many IR axioms.

Project description

PyPi LGTM CI Code coverage Python Issues Commit activity Downloads License

↕️ 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 framework and the Pyserini toolkit. 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.

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:

Alexander Bondarenko, Maik Fröbe, Jan Heinrich Reimer, Benno Stein, Michael Völske, and Matthias Hagen. Axiomatic Retrieval Experimentation with ir_axioms. In 45th International ACM Conference on Research and Development in Information Retrieval (SIGIR 2022), July 2022. ACM.

You can use the following BibTeX entry for citation:

@InProceedings{bondarenko:2022d,
  author =                {Alexander Bondarenko and Maik Fr{\"o}be and {Jan Heinrich} Reimer and Benno Stein and Michael V{\"o}lske and Matthias Hagen},
  booktitle =             {45th International ACM Conference on Research and Development in Information Retrieval (SIGIR 2022)},
  month =                 jul,
  publisher =             {ACM},
  site =                  {Madrid, Spain},
  title =                 {{Axiomatic Retrieval Experimentation with ir_axioms}},
  year =                  2022
}

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

ir_axioms-0.1.3.tar.gz (152.2 kB view details)

Uploaded Source

Built Distribution

ir_axioms-0.1.3-py3-none-any.whl (182.7 kB view details)

Uploaded Python 3

File details

Details for the file ir_axioms-0.1.3.tar.gz.

File metadata

  • Download URL: ir_axioms-0.1.3.tar.gz
  • Upload date:
  • Size: 152.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for ir_axioms-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e28cad1c139390cbe3979db6658a0ef2a122b67696ac4f8a93bf32de94c178e1
MD5 927945802e5e08fa5654b45a059a1262
BLAKE2b-256 5b110f10559ff09d49c19c043624fe071be47b1a34ebbc17fe4476b5b10ecd82

See more details on using hashes here.

File details

Details for the file ir_axioms-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ir_axioms-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 182.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for ir_axioms-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 28b4684b78d8c405af34089e2ae06ee1dc21b3bd02f70ea09db7c4dda1076287
MD5 4af1d7a720ec023ef0e268f68e3f925d
BLAKE2b-256 45d44afd30b888c7caac2f3ab3adc6dab00783bf75f820277a9588470d1a205f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page