-
Notifications
You must be signed in to change notification settings - Fork 0
Transformations
The following diagram shows available transformations.
The rest of this page describes them in more detail.
- Shard Bucketization
- Resolving Payoffs
- Learning Payoffs
- Predicting Payoffs
- Shard Selection
- Export to TREC
- Compute Overlap
Given lists of results for each of
Sindividual shards, bucketize every shard intoBbuckets based on uniform distribution of document IDs within the shard.
selectivesearch bucketize [-c|--cost true|false] <basename>
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <features-path>#<s>.results.local<features-path>#<s>.results.global<features-path>#<s>.results.scores
where <s> is an integer between 0 and size(<features-path>.sizes).
<basename>#<s>#<b>.results.local<basename>#<s>#<b>.results.global<basename>#<s>#<b>.results.scores
where <s> is an integer between 0 and size(<features-path>.sizes), and <b> is an integer between 0 and <bucket-count>.
Resolves payoffs based on global results and results within shards.
selectivesearch resolve-payoffs <basename>
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <basename>#<s>#<b>.results.global<basename>.results.global
<basename>#<s>#<b>.payoff
Please note that this should be executed on training data
Learns a model to predict buckets' payoffs based on extracted features.
selectivesearch learn-payoffs <basename of training data>
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <features-path>#<s>#<b>.payoff<features-path>#<s>.redde<features-path>#<s>.shrkc<features-path>.qlen
<basename>.model<basename>.model.eval
Given a prediction model and input features, save predictions for payoffs.
selectivesearch predict-payoffs --model <prediction model> <basename of evaluation data>
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <features-path>#<s>.redde<features-path>#<s>.shrkc<features-path>.qlen
<basename>#<s>#<b>.payoff
Decide how many buckets to search through in each shard, based on buckets' costs and payoffs.
selectivesearch select-shards --budget <budget> <basename>
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <basename>#<s>#<b>.payoff<basename>#<s>#<b>.cost
<basename>$[<budget>].selection<basename>$[<budget>].selected.results<basename>$[<budget>].selected.scores
Export selected documents to TREC format.
selectivesearch export-trec <basename>$[<budget>]
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <basename>$[<budget>].selected.results<basename>$[<budget>].selected.scores<features-path>.titles<features-path>.trecid
<basename>$[<budget>].selected.trec
Compute overlaps
@k in {5,10,20,50,100}, both for each query (file*.overlaps) and the average (file*.overlap).
selectivesearch export-trec <basename>$[<budget>]
-
<basename>.propertieswith the following properties defined:features = <features-path>buckets.count = <bucket-count>k = <number-of-top-results-to-process>
-
<features-path>.sizes(shard sizes) <basename>$[<budget>].selected.results<basename>$[<budget>].selected.scores<features-path>.titles<features-path>.trecid
<basename>$[<budget>].overlaps@<k><basename>$[<budget>].overlap@<k>
