pybool_ir.experiments.smooth#

Classes and methods for the paper “Smooth Operators for Effective Systematic Review Queries”.

TODO: This is quite messy. Needs to be cleaned up. NB: See the bottom of this file for experiments and more details, like accessing the data.

Classes

OracleQueryExperiment(indexer, collection, ...)

Variant of the QueryExperiment that performs an oracle search to determine an approximately optimal theta value.

PrecomputedQueryExperiment(indexer, ...)

Variant of the QueryExperiment that uses precomputed results (i.e., from dense retrieval).

PredictorQueryExperiment(indexer, ...)

Variant of the QueryExperiment that uses a pre-trained predictor for estimating the theta parameter.

QueryExperiment(indexer, collection, ...)

Base class for running experiments that involve execution of each atomic node in a query.

SmoothAND([theta])

SmoothANDPredictor(clf[, theta])

SmoothNOT([theta])

SmoothNOTPredictor(clf[, theta])

SmoothOR([theta])

SmoothORPredictor(clf[, theta])

SmoothOperator(theta)

SmoothOperatorPredictorMixin(clf, *args, ...)

class pybool_ir.experiments.smooth.OracleQueryExperiment(indexer: ~pybool_ir.index.index.Indexer, collection: ~pybool_ir.experiments.collections.Collection, query_parser: ~pybool_ir.query.parser.QueryParser = <pybool_ir.query.pubmed.parser.PubmedQueryParser object>, eval_measures: ~typing.List[~ir_measures.measures.base.Measure] | None = None, run_path: ~pathlib.Path | None = None, filter_topics: ~typing.List[str] | None = None, ignore_dates: bool = False, date_field: str = 'dp')#

Bases: QueryExperiment

Variant of the QueryExperiment that performs an oracle search to determine an approximately optimal theta value.

class pybool_ir.experiments.smooth.PrecomputedQueryExperiment(indexer: ~pybool_ir.index.index.Indexer, collection: ~pybool_ir.experiments.collections.Collection, query_parser: ~pybool_ir.query.parser.QueryParser = <pybool_ir.query.pubmed.parser.PubmedQueryParser object>, eval_measures: ~typing.List[~ir_measures.measures.base.Measure] | None = None, run_path: ~pathlib.Path | None = None, filter_topics: ~typing.List[str] | None = None, ignore_dates: bool = False, date_field: str = 'dp')#

Bases: QueryExperiment

Variant of the QueryExperiment that uses precomputed results (i.e., from dense retrieval).

class pybool_ir.experiments.smooth.PredictorQueryExperiment(indexer: ~pybool_ir.index.index.Indexer, collection: ~pybool_ir.experiments.collections.Collection, query_parser: ~pybool_ir.query.parser.QueryParser = <pybool_ir.query.pubmed.parser.PubmedQueryParser object>, eval_measures: ~typing.List[~ir_measures.measures.base.Measure] | None = None, run_path: ~pathlib.Path | None = None, filter_topics: ~typing.List[str] | None = None, ignore_dates: bool = False, date_field: str = 'dp')#

Bases: QueryExperiment

Variant of the QueryExperiment that uses a pre-trained predictor for estimating the theta parameter.

class pybool_ir.experiments.smooth.QueryExperiment(indexer: ~pybool_ir.index.index.Indexer, collection: ~pybool_ir.experiments.collections.Collection, query_parser: ~pybool_ir.query.parser.QueryParser = <pybool_ir.query.pubmed.parser.PubmedQueryParser object>, eval_measures: ~typing.List[~ir_measures.measures.base.Measure] | None = None, run_path: ~pathlib.Path | None = None, filter_topics: ~typing.List[str] | None = None, ignore_dates: bool = False, date_field: str = 'dp')#

Bases: RetrievalExperiment

Base class for running experiments that involve execution of each atomic node in a query.

class pybool_ir.experiments.smooth.SmoothAND(theta: float = 1.0)#

Bases: SmoothOperator

class pybool_ir.experiments.smooth.SmoothANDPredictor(clf: DecisionTreeRegressor, theta: float = 1.0)#

Bases: SmoothOperatorPredictorMixin, SmoothAND

class pybool_ir.experiments.smooth.SmoothNOT(theta: float = 1.0)#

Bases: SmoothOperator

class pybool_ir.experiments.smooth.SmoothNOTPredictor(clf: DecisionTreeRegressor, theta: float = 1.0)#

Bases: SmoothOperatorPredictorMixin, SmoothOR

class pybool_ir.experiments.smooth.SmoothOR(theta: float = 0.0)#

Bases: SmoothOperator

class pybool_ir.experiments.smooth.SmoothORPredictor(clf: DecisionTreeRegressor, theta: float = 0.0)#

Bases: SmoothOperatorPredictorMixin, SmoothOR

class pybool_ir.experiments.smooth.SmoothOperator(theta: float)#

Bases: Operator, ABC

class pybool_ir.experiments.smooth.SmoothOperatorPredictorMixin(clf: BaseDecisionTree, *args, **kwargs)#

Bases: SmoothOperator, ABC