All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed linting issues. Thanks to @diegoceccarelli.
- Fixed unsafe dictionary key removal in
Run.make_comparable.
Reportnow allows for export to Pandas DataFrame thanks to @hotchpotch contrib.min-max normnow allows for inverting min and max for distance scores normalization thanks to @MochiXu, @diegoceccarelli, and @AndreP-git.
Runnow has an additional property to store metrics standard deviation.evaluatenow hasreturn_stdflag to compute metrics standard deviation.
Qrels.from_dfnow checks that scores arenumpy.int64to avoid errors on Windows.Run.from_dfnow checks that scores arenumpy.float64to avoid errors on Windows.
- All
Runimport methods allow for specifying thenameof the run.
- Fixed misleading error messages when importing
QrelsandRunfrompandas.DataFramewith wrongdtypes.
- Added support for importing qrels from
parquetfiles inqrels.py. - Added support for importing runs from
parquetfiles inrun.py. - Added support for exporting qrels as
pandas.DataFrameinqrels.py. - Added support for exporting runs as
pandas.DataFrameinrun.py. - Added support for saving qrels as
parquetfiles inqrels.py. - Added support for saving runs as
parquetfiles inrun.py.
- Fixed
f1when there are no relevants.
- Moved
numbathreading layer settings toranx/__init__.py.
- Removed dependency from
pytrec_eval.
- Added support for gzipped TREC files to
from_fileinqrels.py. - Added support for gzipped TREC files to
from_fileinrun.py. - Added
nameparameter tofrom_fileinrun.py.
- Fixed
rank_biased_precisionconsidering relevance as binary instead of graded. - Fixed high memory consumption for
qrelsandrun.
- Fixed missing metric labels for
dcganddcg_burgesinreport.py.
- Added
dcganddcg_burgesamong the available metrics.
- Fixed missing dependency
seaborn.
- Fixed a bug affecting the download of ranxhub runs with special symbols in their ids, such as
+.
- Changed
saveinranxhub.pyto automatically save average metric scores.
- Fixed a bug affecting
make_comparableinrun.py: runs were not sorted after this operation, resulting in wrong metrics computation afterwards.
- It is now possible to plot Interpolated Precision-Recall Curve. Click here for further details.
- Added
make_comparabletorun.py. It makes a run comparable to a given qrels whether the run misses results for queries appearing in the qrels or have results for additional queries, which are removed. - Added
make_comparableparameter toevaluate.py. - Added
make_comparableparameter tocompare.py.
- Fixed a bug affecting
Tukey's HSD Test: results from the test were not converted to proper dtypes from strings, causing the superscript reporting statistical significance differences inreport.pyto be wrong.
- Changed
tukey_hsd_test.pyto usetukey_hsdprovided byscipy. ranxnow requirespython>=3.8.ranxnow requiresscipy>=1.8.
- Removed dependency from
statsmodels.
- Fixed a bug affecting
precision.py,recall.py, andf1.py:numbadoes not raise ZeroDivisionError, added a control to make sure zero is returned when no retrieved results are provided for a specific query. - Fixed a bug in
f1.py: missing argument in function call.
Sorry, I have been lazy.
- Fixed a bug in
posfuse.py:numbadoes not raise out of bounds error in some specific cases, added a control to make sure ranking positions with no associated probability get 0 probability. - Fixed a bug in
baysfuse.py: as it uses log odds, which can be negative,comb_sumcannot be used. Added aodds_sumfunction to combine the log odds.
- Fixed a bug in
data_structures/common.py:sort_dict_by_valuethat was preventing result list sorting to be consistent for documents with the same score. - Fixed a bug causing original runs to be modified by fusion methods.
- Fixed a bug in
max_norm.py,min_max_norm.py, andsum_norm.py:minandmaxfunctions called on empty lists do not raise error inNumbacausing downstream miscalculations.
- Fixed a bug in
bordafuse.py:get_candidatesraised error if no run had retrieved docs for a given query. - Fixed a bug in
borda_norm.py:get_candidatesraised error if no run had retrieved docs for a given query. - Fixed a bug in
condorcet.py:get_candidatesraised error if no run had retrieved docs for a given query.
- Fixed a bug in
report.py:Report: some metric labels were missing. SciPyversion explicitly stated insetup.pyto avoid errors.
Qrels'ssaveandfrom_filefunctions now automatically infer file extension.kindparameter can be used to override default behavior.Qrels'ssaveandfrom_filefunctions are now much faster withjsonfiles thanks toorjson.Run'ssaveandfrom_filefunctions now automatically infer file extension.kindparameter can be used to override default behavior.Run'ssaveandfrom_filefunctions are now much faster withjsonfiles thanks toorjson.Two-sided Paired Student's t-Testis now the default statistical test used when callingcompare. It is much faster thanFisher'sand usually agrees with it.
Sorry, I have been lazy.
- Fixed a bug in
report.py:Report.to_dict.
- Added
from_ir_datasetstoqrels.py. It allows loading qrels fromir_metadata.
- Added
paired_student_t_testtostatistical_testing.py. - Added
stat_testparameter tocompare. Defaults tofisher. - Added
stat_testparameter toreport. Defaults tofisher.
Report'sto_latexfunction now takes into account the newly introducedstat_testparameter to correctly generating LaTeX tables' captions.Report'sto_dictfunction now takes into account the newly introducedstat_testparameter and adds it to the output dictionary.Report'ssavefunction now takes into account the newly introducedstat_testparameter and adds it to the output JSON file.
- Added
show_percentagesparameter toReport. Defaults toFalse. - Added
show_percentagesparameter tocompare. Defaults toFalse. - Added
rounding_digitsparameter tocompare. Defaults to3. - Added usage example notebooks for Google Colab.
- [IMPORTANT]
QrelsandRunnow accept a Python Dictionary as initialization parameter and this is the preferred way of creating new instances for those classes. They also accept anameparameter. None of those is mandatory, so it should not break code based on previousranxversion although this could be changed in the future. - [BREAKING CHANGE]
QrelsandRunsavefunctiontypeparameter renamed tokindto prevent it to be interpreted as thetypePython utility function. - [BREAKING CHANGE]
QrelsandRunsavefunction now defaults tojsoninstead oftrecfor thekindparameter (previously calledtype). - [BREAKING CHANGE]
QrelsandRunfrom_filefunctiontypeparameter renamed tokindto prevent it to be interpreted as thetypePython utility function. - [BREAKING CHANGE]
QrelsandRunfrom_filefunction now defaults tojsoninstead oftrecfor thekindparameter (previously calledtype). rounding_digitsparameter ofReportnow defaults to3.Report'sto_latexfunction now produces a simplified LaTeX table.- Various improvements to
Reportsource code.