Orion Weller commited on
Commit
68ecf38
1 Parent(s): a09b56d

updates, charts, ir_datasetes

Browse files
analysis.py CHANGED
@@ -73,13 +73,20 @@ def get_words(words, importances):
73
 
74
  @st.cache_resource
75
  def get_model(model_name: str):
76
- if model_name == "MonoT5":
77
- pipe = pipeline('text2text-generation',
78
- model='castorini/monot5-small-msmarco-10k',
79
- tokenizer='castorini/monot5-small-msmarco-10k',
80
- device='cpu')
 
 
 
 
 
 
81
  def formatter(query, doc):
82
  return f"Query: {query} Document: {doc} Relevant:"
 
83
 
84
  return pipe, formatter
85
 
 
73
 
74
  @st.cache_resource
75
  def get_model(model_name: str):
76
+ if "MonoT5" in model_name:
77
+ if model_name == "MonoT5-Small":
78
+ pipe = pipeline('text2text-generation',
79
+ model='castorini/monot5-small-msmarco-10k',
80
+ tokenizer='castorini/monot5-small-msmarco-10k',
81
+ device='cpu')
82
+ elif model_name == "MonoT5-3B":
83
+ pipe = pipeline('text2text-generation',
84
+ model='castorini/monot5-3b-msmarco-10k',
85
+ tokenizer='castorini/monot5-3b-msmarco-10k',
86
+ device='cpu')
87
  def formatter(query, doc):
88
  return f"Query: {query} Document: {doc} Relevant:"
89
+
90
 
91
  return pipe, formatter
92
 
app.py CHANGED
@@ -63,7 +63,18 @@ def combine(text_og, text_new, combine_type):
63
 
64
  with st.sidebar:
65
  st.title("Options")
66
- dataset_name = st.selectbox("Select a preloaded dataset or upload your own", tuple(ALL_DATASETS))
 
 
 
 
 
 
 
 
 
 
 
67
  metric_name = st.selectbox("Select a metric", tuple(ALL_METRICS))
68
 
69
  if dataset_name == "custom":
@@ -81,22 +92,24 @@ with st.sidebar:
81
  queries = None
82
  corpus = None
83
 
84
- # sliderbar of how many Top N to choose
85
- top_n = st.slider("Top N", 1, 100, 3)
86
  x = st.header('Upload a run file')
87
  run1_file = st.file_uploader("Choose a file", key="run1")
88
  y = st.header("Upload a second run file")
89
  run2_file = st.file_uploader("Choose a file", key="run2")
90
 
91
  z = st.header("Analysis Options")
 
 
 
92
  incorrect_only = st.checkbox("Show only incorrect instances", value=False)
93
  one_better_than_two = st.checkbox("Show only instances where run 1 is better than run 2", value=False)
94
  two_better_than_one = st.checkbox("Show only instances where run 2 is better than run 1", value=False)
95
  use_model_saliency = st.checkbox("Use model saliency (slow!)", value=False)
96
  if use_model_saliency:
97
  # choose from a list of models
98
- model_name = st.selectbox("Choose from a list of models", ["MonoT5"])
99
- model, formatter = get_model("MonoT5")
100
  get_saliency = prep_func(model, formatter)
101
 
102
 
@@ -150,11 +163,12 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
150
  # init_title = st.title("Analysis")
151
  # don't load these til a run is given
152
  if dataset_name != "custom":
153
- corpus, queries, qrels = get_dataset(dataset_name)
154
 
155
  evaluator = pytrec_eval.RelevanceEvaluator(
156
  copy.deepcopy(qrels), pytrec_eval.supported_measures)
157
  results1 = evaluator.evaluate(run1) # dict of instance then metrics then values
 
158
  if len(results1) == 0:
159
  # alert and stop
160
  st.error("Run file is empty")
@@ -166,6 +180,8 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
166
  evaluator2 = pytrec_eval.RelevanceEvaluator(
167
  copy.deepcopy(qrels), pytrec_eval.supported_measures)
168
  results2 = evaluator2.evaluate(run2)
 
 
169
 
170
  col1, col2 = st.columns([1, 3], gap="large")
171
 
@@ -242,17 +258,29 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
242
  st.session_state.selectbox_instance = name_of_columns[st.session_state.number_of_col]
243
 
244
 
245
- number_of_col = container_for_nav.number_input(min_value=-1, step=1, max_value=len(instances_to_use), on_change=sync_from_number, label=f"Select instance by index (out of **{len(instances_to_use)}**)", key="number_of_col")
246
  selectbox_instance = container_for_nav.selectbox("Select instance by ID", ["Overview"] + name_of_columns, on_change=sync_from_drop, key="selectbox_instance")
247
  st.divider()
248
  # make pie plot showing incorrect vs correct
249
  st.header("Breakdown")
 
 
250
  if run2_file is None:
 
 
 
 
 
251
  plotly_pie_chart = px.pie(names=["Perfect", "Inbetween", "None"], values=[run1_details["perfect"], run1_details["inbetween"], run1_details["none"]])
252
  st.write("Run 1 Scores")
253
  plotly_pie_chart.update_traces(showlegend=False, selector=dict(type='pie'), textposition='inside', textinfo='percent+label')
254
  st.plotly_chart(plotly_pie_chart, use_container_width=True)
255
  else:
 
 
 
 
 
256
  if st.checkbox("Show Run 1 vs Run 2", value=True):
257
  plotly_pie_chart = px.pie(names=["Run 1 Better", "Run 2 Better", "Tied"], values=[is_better_run1_count, is_better_run2_count, is_same_count])
258
  plotly_pie_chart.update_traces(showlegend=False, selector=dict(type='pie'), textposition='inside', textinfo='percent+label')
@@ -307,8 +335,8 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
307
 
308
  ## Documents
309
  # relevant
310
- relevant_docs = list(qrels[str(inst_num)].keys())
311
- doc_texts = [(doc_id, corpus[doc_id]["title"], corpus[doc_id]["text"]) for doc_id in relevant_docs]
312
  st.subheader("Relevant Documents")
313
  if doc_expansion1 is not None and run1_uses_doc_expansion != "None":
314
  show_orig_rel = st.checkbox("Show Original Relevant Doc(s)", key=f"{inst_index}relorig", value=False)
@@ -328,14 +356,22 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
328
  st.text_area(f"{docid}:", text)
329
 
330
 
331
- pred_doc = run1_pandas[run1_pandas.doc_id.isin(relevant_docs)]
332
- rank_pred = pred_doc[pred_doc.qid == str(inst_num)]["rank"].tolist()
 
 
 
 
 
 
 
333
  # st.subheader("Ranked of Documents")
334
  # st.markdown(f"Rank: {rank_pred}")
335
- ranking_str = ",".join([str(item) for item in rank_pred]) if type(rank_pred) == list else str(rank_pred)
336
  if ranking_str == "":
337
- ranking_str = "--"
338
  rank_col.metric(f"Rank of Relevant Doc(s)", ranking_str)
 
339
 
340
 
341
  st.divider()
@@ -446,8 +482,8 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
446
  st.subheader("Relevant Documents")
447
  container_two_docs_rel = st.container()
448
  col_run1, col_run2 = container_two_docs_rel.columns(2, gap="medium")
449
- relevant_docs = list(qrels[str(inst_num)].keys())
450
- doc_texts = [(doc_id, corpus[doc_id]["title"], corpus[doc_id]["text"]) for doc_id in relevant_docs]
451
 
452
  if doc_expansion1 is not None and run1_uses_doc_expansion != "None":
453
  show_orig_rel1 = col_run1.checkbox("Show Original Relevant Doc(s)", key=f"{inst_index}relorig_run1", value=False)
@@ -483,30 +519,39 @@ if check_valid_args(run1_file, run2_file, dataset_name, qrels, queries, corpus):
483
  # top ranked
484
  # NOTE: BEIR calls trec_eval which ranks by score, then doc_id for ties
485
  # we have to fix that or we don't match the scores
486
- pred_doc1 = run1_pandas[run1_pandas.qid == inst_num].sort_values(["score", "doc_id"], ascending=[False, False])
487
- pred_doc1["rank_real"] = list(range(1, len(pred_doc1) + 1))
488
- rank_pred1 = pred_doc1[pred_doc1.doc_id.isin(relevant_docs)]["rank_real"].tolist()
489
-
490
- pred_doc2 = run2_pandas[run2_pandas.qid == inst_num].sort_values(["score", "doc_id"], ascending=[False, False])
491
- pred_doc2["rank_real"] = list(range(1, len(pred_doc2) + 1))
492
- rank_pred2 = pred_doc2[pred_doc2.doc_id.isin(relevant_docs)]["rank_real"].tolist()
493
-
494
 
 
 
 
 
 
 
 
 
495
  # st.subheader("Ranked of Documents")
496
- # st.markdown(f"Run 1 Rank: {rank_pred1}")
497
- # st.markdown(f"Run 2 Rank: {rank_pred2}")
498
-
499
- ranking_str = ",".join([str(item) for item in rank_pred1]) if type(rank_pred1) == list else str(rank_pred1)
500
- if ranking_str == "":
501
- ranking_str = "--"
502
- rank_col1.metric("Run 1 " + f"Rank of Relevant Doc(s)", ranking_str)
503
-
504
- ranking_str2 = ",".join([str(item) for item in rank_pred2]) if type(rank_pred2) == list else str(rank_pred2)
505
  if ranking_str2 == "":
506
- ranking_str2 = "--"
507
  rank_col2.metric("Run 2 " + f"Rank of Relevant Doc(s)", ranking_str2)
508
 
509
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  st.divider()
511
 
512
 
 
63
 
64
  with st.sidebar:
65
  st.title("Options")
66
+ dataset_name = st.selectbox("Select a preloaded dataset or upload your own (note: some datasets are large/slow)", tuple(ALL_DATASETS))
67
+ if st.checkbox("Choose fields (applies to IR_Datasets only)"):
68
+ input_fields_doc = st.text_input("Type the name of the doc fields to get, with commas (blank=all)")
69
+ if input_fields_doc in ["", None]:
70
+ input_fields_doc = None
71
+ input_fields_query = st.sidebar.text_input("Type the name of the query fields to get, with commas (blank=all)")
72
+ if input_fields_query in ["", None]:
73
+ input_fields_query = None
74
+ else:
75
+ input_fields_doc = None
76
+ input_fields_query = None
77
+
78
  metric_name = st.selectbox("Select a metric", tuple(ALL_METRICS))
79
 
80
  if dataset_name == "custom":
 
92
  queries = None
93
  corpus = None
94
 
95
+
 
96
  x = st.header('Upload a run file')
97
  run1_file = st.file_uploader("Choose a file", key="run1")
98
  y = st.header("Upload a second run file")
99
  run2_file = st.file_uploader("Choose a file", key="run2")
100
 
101
  z = st.header("Analysis Options")
102
+ # sliderbar of how many Top N to choose
103
+ top_n = st.slider("Top N Ranked Docs", 1, 100, 3)
104
+ n_relevant_docs = st.slider("Number of relevant docs", 1, 100, 3)
105
  incorrect_only = st.checkbox("Show only incorrect instances", value=False)
106
  one_better_than_two = st.checkbox("Show only instances where run 1 is better than run 2", value=False)
107
  two_better_than_one = st.checkbox("Show only instances where run 2 is better than run 1", value=False)
108
  use_model_saliency = st.checkbox("Use model saliency (slow!)", value=False)
109
  if use_model_saliency:
110
  # choose from a list of models
111
+ model_name = st.selectbox("Choose from a list of models", ["MonoT5-Small", "MonoT5-3B"])
112
+ model, formatter = get_model(model_name)
113
  get_saliency = prep_func(model, formatter)
114
 
115
 
 
163
  # init_title = st.title("Analysis")
164
  # don't load these til a run is given
165
  if dataset_name != "custom":
166
+ corpus, queries, qrels = get_dataset(dataset_name, input_fields_doc, input_fields_query)
167
 
168
  evaluator = pytrec_eval.RelevanceEvaluator(
169
  copy.deepcopy(qrels), pytrec_eval.supported_measures)
170
  results1 = evaluator.evaluate(run1) # dict of instance then metrics then values
171
+ average_run1_score = pytrec_eval.compute_aggregated_measure(metric_name, [query_measures[metric_name] for query_measures in results1.values()])
172
  if len(results1) == 0:
173
  # alert and stop
174
  st.error("Run file is empty")
 
180
  evaluator2 = pytrec_eval.RelevanceEvaluator(
181
  copy.deepcopy(qrels), pytrec_eval.supported_measures)
182
  results2 = evaluator2.evaluate(run2)
183
+ average_run2_score = pytrec_eval.compute_aggregated_measure(metric_name, [query_measures[metric_name] for query_measures in results2.values()])
184
+
185
 
186
  col1, col2 = st.columns([1, 3], gap="large")
187
 
 
258
  st.session_state.selectbox_instance = name_of_columns[st.session_state.number_of_col]
259
 
260
 
261
+ number_of_col = container_for_nav.number_input(min_value=-1, step=1, max_value=len(instances_to_use) - 1, on_change=sync_from_number, label=f"Select instance by index (up to **{len(instances_to_use) - 1}**)", key="number_of_col")
262
  selectbox_instance = container_for_nav.selectbox("Select instance by ID", ["Overview"] + name_of_columns, on_change=sync_from_drop, key="selectbox_instance")
263
  st.divider()
264
  # make pie plot showing incorrect vs correct
265
  st.header("Breakdown")
266
+
267
+
268
  if run2_file is None:
269
+ overall_scores_container = st.container()
270
+ left_score, right_score = overall_scores_container.columns([1, 1])
271
+ left_score.metric(label=f"Run 1 {metric_name}", value=round(average_run1_score, 3))
272
+ right_score.metric(label="#Q", value=len(results1))
273
+
274
  plotly_pie_chart = px.pie(names=["Perfect", "Inbetween", "None"], values=[run1_details["perfect"], run1_details["inbetween"], run1_details["none"]])
275
  st.write("Run 1 Scores")
276
  plotly_pie_chart.update_traces(showlegend=False, selector=dict(type='pie'), textposition='inside', textinfo='percent+label')
277
  st.plotly_chart(plotly_pie_chart, use_container_width=True)
278
  else:
279
+ overall_scores_container = st.container()
280
+ left_score, right_score = overall_scores_container.columns([1, 1])
281
+ left_score.metric(label=f"Run 1 {metric_name}", value=round(average_run1_score, 3))
282
+ right_score.metric(label=f"Run 2 {metric_name}", value=round(average_run2_score, 3))
283
+
284
  if st.checkbox("Show Run 1 vs Run 2", value=True):
285
  plotly_pie_chart = px.pie(names=["Run 1 Better", "Run 2 Better", "Tied"], values=[is_better_run1_count, is_better_run2_count, is_same_count])
286
  plotly_pie_chart.update_traces(showlegend=False, selector=dict(type='pie'), textposition='inside', textinfo='percent+label')
 
335
 
336
  ## Documents
337
  # relevant
338
+ relevant_docs = list(qrels[str(inst_num)].keys())[:n_relevant_docs]
339
+ doc_texts = [(doc_id, corpus[doc_id]["title"] if "title" in corpus[doc_id] else "", corpus[doc_id]["text"]) for doc_id in relevant_docs]
340
  st.subheader("Relevant Documents")
341
  if doc_expansion1 is not None and run1_uses_doc_expansion != "None":
342
  show_orig_rel = st.checkbox("Show Original Relevant Doc(s)", key=f"{inst_index}relorig", value=False)
 
356
  st.text_area(f"{docid}:", text)
357
 
358
 
359
+ # go through each of the relevant documents
360
+ ranks = []
361
+ for docid in relevant_docs:
362
+ pred_doc = run1_pandas[run1_pandas.doc_id.isin([docid])]
363
+ rank_pred = pred_doc[pred_doc.qid == str(inst_num)]
364
+ if rank_pred.empty:
365
+ ranks.append("-")
366
+ else:
367
+ ranks.append(rank_pred.iloc[0]["rank"])
368
  # st.subheader("Ranked of Documents")
369
  # st.markdown(f"Rank: {rank_pred}")
370
+ ranking_str = ",".join([str(item) for item in ranks])
371
  if ranking_str == "":
372
+ ranking_str = "-"
373
  rank_col.metric(f"Rank of Relevant Doc(s)", ranking_str)
374
+ # breakpoint()
375
 
376
 
377
  st.divider()
 
482
  st.subheader("Relevant Documents")
483
  container_two_docs_rel = st.container()
484
  col_run1, col_run2 = container_two_docs_rel.columns(2, gap="medium")
485
+ relevant_docs = list(qrels[str(inst_num)].keys())[:n_relevant_docs]
486
+ doc_texts = [(doc_id, corpus[doc_id]["title"] if "title" in corpus[doc_id] else "", corpus[doc_id]["text"]) for doc_id in relevant_docs]
487
 
488
  if doc_expansion1 is not None and run1_uses_doc_expansion != "None":
489
  show_orig_rel1 = col_run1.checkbox("Show Original Relevant Doc(s)", key=f"{inst_index}relorig_run1", value=False)
 
519
  # top ranked
520
  # NOTE: BEIR calls trec_eval which ranks by score, then doc_id for ties
521
  # we have to fix that or we don't match the scores
 
 
 
 
 
 
 
 
522
 
523
+ ranks2 = []
524
+ for docid in relevant_docs:
525
+ pred_doc = run2_pandas[run2_pandas.doc_id.isin([docid])]
526
+ rank_pred = pred_doc[pred_doc.qid == str(inst_num)]
527
+ if rank_pred.empty:
528
+ ranks2.append("-")
529
+ else:
530
+ ranks2.append(rank_pred.iloc[0]["rank"])
531
  # st.subheader("Ranked of Documents")
532
+ # st.markdown(f"Rank: {rank_pred}")
533
+ ranking_str2 = ",".join([str(item) for item in ranks2])
 
 
 
 
 
 
 
534
  if ranking_str2 == "":
535
+ ranking_str2 = "-"
536
  rank_col2.metric("Run 2 " + f"Rank of Relevant Doc(s)", ranking_str2)
537
 
538
 
539
+ ranks1 = []
540
+ for docid in relevant_docs:
541
+ pred_doc = run1_pandas[run1_pandas.doc_id.isin([docid])]
542
+ rank_pred = pred_doc[pred_doc.qid == str(inst_num)]
543
+ if rank_pred.empty:
544
+ ranks1.append("-")
545
+ else:
546
+ ranks1.append(rank_pred.iloc[0]["rank"])
547
+ # st.subheader("Ranked of Documents")
548
+ # st.markdown(f"Rank: {rank_pred}")
549
+ ranking_str1 = ",".join([str(item) for item in ranks1])
550
+ if ranking_str1 == "":
551
+ ranking_str1 = "-"
552
+ rank_col1.metric("Run 1 " + f"Rank of Relevant Doc(s)", ranking_str1)
553
+
554
+
555
  st.divider()
556
 
557
 
constants.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
 
2
  ALL_METRICS = [
3
  "ndcg_cut_10",
@@ -77,66 +79,12 @@ BEIR = [
77
  ]
78
 
79
 
80
- IR_DATASETS = [
81
- "antique",
82
- "aol_ia",
83
- "aquaint",
84
- "argsme",
85
- "c4",
86
- "car",
87
- "clinicaltrials",
88
- "clirmatrix",
89
- "clueweb09",
90
- "clueweb12",
91
- "codec",
92
- "cord19",
93
- "cranfield",
94
- "disks45",
95
- "dpr_w100",
96
- "codesearchnet",
97
- "gov",
98
- "gov2",
99
- "highwire",
100
- "istella22",
101
- "kilt",
102
- "lotte",
103
- "medline",
104
- "mmarco",
105
- "mr_tydi",
106
- "msmarco_document",
107
- "msmarco_document_v2",
108
- "msmarco_passage",
109
- "msmarco_passage_v2",
110
- "msmarco_qna",
111
- "neumarco",
112
- "nfcorpus",
113
- "natural_questions",
114
- "nyt",
115
- "pmc",
116
- "touche_image",
117
- "touche",
118
- "trec_arabic",
119
- "trec_mandarin",
120
- "trec_spanish",
121
- "trec_robust04",
122
- "trec_tot",
123
- "tripclick",
124
- "tweets2013_ia",
125
- "vaswani",
126
- "wapo",
127
- "wikiclir",
128
- "wikir",
129
- "trec_fair",
130
- "trec_cast",
131
- "hc4",
132
- "neuclir",
133
- "sara",
134
- ]
135
-
136
  LOCAL_DATASETS = [
137
  "gooaq_technical",
138
  "codesearch_py",
139
  ]
 
 
140
 
141
 
142
  ALL_DATASETS = ["", "custom"] + LOCAL_DATASETS + BEIR + IR_DATASETS
 
1
+ from ir_dataset_metadata import IR_DATASETS
2
+
3
 
4
  ALL_METRICS = [
5
  "ndcg_cut_10",
 
79
  ]
80
 
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  LOCAL_DATASETS = [
83
  "gooaq_technical",
84
  "codesearch_py",
85
  ]
86
+
87
+
88
 
89
 
90
  ALL_DATASETS = ["", "custom"] + LOCAL_DATASETS + BEIR + IR_DATASETS
dataset_loading.py CHANGED
@@ -104,8 +104,12 @@ def load_run(f_run):
104
  run_pandas.qid = run_pandas.qid.astype(str)
105
  run_pandas["rank"] = run_pandas["rank"].astype(int)
106
  run_pandas.score = run_pandas.score.astype(float)
107
- # if run_1_alt is not None:
108
- # run_1_alt, run_1_alt_sub = load_jsonl(run_1_alt)
 
 
 
 
109
  return new_run, run_pandas
110
 
111
 
@@ -133,7 +137,7 @@ def load_jsonl(f):
133
  return did2text, sub_did2text
134
 
135
 
136
- @st.cache_data
137
  def get_beir(dataset: str):
138
  url = "https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip".format(dataset)
139
  out_dir = os.path.join(pathlib.Path(__file__).parent.absolute(), "datasets")
@@ -141,27 +145,53 @@ def get_beir(dataset: str):
141
  return GenericDataLoader(data_folder=data_path).load(split="test")
142
 
143
 
144
- @st.cache_data
145
- def get_ir_datasets(dataset_name: str):
146
  dataset = ir_datasets.load(dataset_name)
147
  queries = {}
148
  for qid, query in dataset.queries_iter():
149
- queries[qid] = query
150
- # corpus = {}
151
- # for doc in dataset.docs_iter():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  # return corpus, queries, qrels
153
- return dataset.doc_store(), queries, dataset.qrels_dict()
154
 
155
 
156
- @st.cache_data
157
- def get_dataset(dataset_name: str):
 
 
 
 
 
158
  if dataset_name == "":
159
  return {}, {}, {}
160
 
161
  if dataset_name in BEIR:
162
  return get_beir(dataset_name)
163
  elif dataset_name in IR_DATASETS:
164
- return get_ir_datasets(dataset_name)
165
  elif dataset_name in LOCAL_DATASETS:
166
  base_path = f"local_datasets/{dataset_name}"
167
  corpus_file = open(f"{base_path}/corpus.jsonl", "r")
 
104
  run_pandas.qid = run_pandas.qid.astype(str)
105
  run_pandas["rank"] = run_pandas["rank"].astype(int)
106
  run_pandas.score = run_pandas.score.astype(float)
107
+ all_groups = []
108
+ for qid, sub_df in run_pandas.groupby("qid"):
109
+ sub_df.sort_values(["score", "doc_id"], ascending=[False, False])
110
+ sub_df["rank"] = list(range(1, len(sub_df) + 1))
111
+ all_groups.append(sub_df)
112
+ run_pandas = pd.concat(all_groups)
113
  return new_run, run_pandas
114
 
115
 
 
137
  return did2text, sub_did2text
138
 
139
 
140
+ @st.cache_data(persist="disk")
141
  def get_beir(dataset: str):
142
  url = "https://public.ukp.informatik.tu-darmstadt.de/thakur/BEIR/datasets/{}.zip".format(dataset)
143
  out_dir = os.path.join(pathlib.Path(__file__).parent.absolute(), "datasets")
 
145
  return GenericDataLoader(data_folder=data_path).load(split="test")
146
 
147
 
148
+ @st.cache_data(persist="disk")
149
+ def get_ir_datasets(dataset_name: str, input_fields_doc: str = None, input_fields_query: str = None):
150
  dataset = ir_datasets.load(dataset_name)
151
  queries = {}
152
  for qid, query in dataset.queries_iter():
153
+ if input_fields_query is None:
154
+ if type(query) == str:
155
+ queries[qid] = query
156
+ else:
157
+ # get all fields that exist in query
158
+ all_fields = {field: getattr(query, field) for field in query._fields}
159
+ # put all fields into a single string
160
+ queries[qid] = " ".join([str(v) for v in all_fields.values()])
161
+ else:
162
+ all_fields = {field: getattr(query, field) for field in input_fields_query}
163
+ queries[qid] = " ".join([str(v) for v in all_fields.values()])
164
+
165
+ corpus = {}
166
+ for doc in dataset.docs_iter():
167
+ if input_fields_doc is None:
168
+ if type(doc) == str:
169
+ corpus[doc.doc_id] = {"text": doc}
170
+ else: # get all fields that exist in query
171
+ all_fields = {field: getattr(doc, field) for field in doc._fields}
172
+ corpus[doc.doc_id] = {"text": " ".join([str(v) for v in all_fields.values()])}
173
+ else:
174
+ all_fields = {field: getattr(doc, field) for field in input_fields_doc}
175
+ corpus[doc.doc_id] = {"text": " ".join([str(v) for v in all_fields.values()])}
176
+
177
  # return corpus, queries, qrels
178
+ return corpus, queries, dataset.qrels_dict()
179
 
180
 
181
+ @st.cache_data(persist="disk")
182
+ def get_dataset(dataset_name: str, input_fields_doc, input_fields_query):
183
+ if type(input_fields_doc) == str:
184
+ input_fields_doc = input_fields_doc.strip().split(",")
185
+ if type(input_fields_query) == str:
186
+ input_fields_query = input_fields_query.strip().split(",")
187
+
188
  if dataset_name == "":
189
  return {}, {}, {}
190
 
191
  if dataset_name in BEIR:
192
  return get_beir(dataset_name)
193
  elif dataset_name in IR_DATASETS:
194
+ return get_ir_datasets(dataset_name, input_fields_doc, input_fields_query)
195
  elif dataset_name in LOCAL_DATASETS:
196
  base_path = f"local_datasets/{dataset_name}"
197
  corpus_file = open(f"{base_path}/corpus.jsonl", "r")
ir_dataset_metadata.py ADDED
@@ -0,0 +1,486 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ IR_DATASETS = [
3
+ "antique/test",
4
+ "antique/test/non-offensive",
5
+ "antique/train",
6
+ "antique/train/split200-train",
7
+ "antique/train/split200-valid",
8
+ "aol-ia",
9
+ "aquaint/trec-robust-2005",
10
+ "argsme/1.0/touche-2020-task-1/uncorrected",
11
+ "argsme/2020-04-01/processed/touche-2022-task-1",
12
+ "argsme/2020-04-01/touche-2020-task-1",
13
+ "argsme/2020-04-01/touche-2020-task-1/uncorrected",
14
+ "argsme/2020-04-01/touche-2021-task-1",
15
+ "beir/arguana",
16
+ "beir/climate-fever",
17
+ "beir/cqadupstack/android",
18
+ "beir/cqadupstack/english",
19
+ "beir/cqadupstack/gaming",
20
+ "beir/cqadupstack/gis",
21
+ "beir/cqadupstack/mathematica",
22
+ "beir/cqadupstack/physics",
23
+ "beir/cqadupstack/programmers",
24
+ "beir/cqadupstack/stats",
25
+ "beir/cqadupstack/tex",
26
+ "beir/cqadupstack/unix",
27
+ "beir/cqadupstack/webmasters",
28
+ "beir/cqadupstack/wordpress",
29
+ "beir/dbpedia-entity/dev",
30
+ "beir/dbpedia-entity/test",
31
+ "beir/fever/dev",
32
+ "beir/fever/test",
33
+ "beir/fever/train",
34
+ "beir/fiqa/dev",
35
+ "beir/fiqa/test",
36
+ "beir/fiqa/train",
37
+ "beir/hotpotqa/dev",
38
+ "beir/hotpotqa/test",
39
+ "beir/hotpotqa/train",
40
+ "beir/msmarco/dev",
41
+ "beir/msmarco/test",
42
+ "beir/msmarco/train",
43
+ "beir/nfcorpus/dev",
44
+ "beir/nfcorpus/test",
45
+ "beir/nfcorpus/train",
46
+ "beir/nq",
47
+ "beir/quora/dev",
48
+ "beir/quora/test",
49
+ "beir/scidocs",
50
+ "beir/scifact/test",
51
+ "beir/scifact/train",
52
+ "beir/trec-covid",
53
+ "beir/webis-touche2020",
54
+ "beir/webis-touche2020/v2",
55
+ "car/v1.5/test200",
56
+ "car/v1.5/train/fold0",
57
+ "car/v1.5/train/fold1",
58
+ "car/v1.5/train/fold2",
59
+ "car/v1.5/train/fold3",
60
+ "car/v1.5/train/fold4",
61
+ "car/v1.5/trec-y1/auto",
62
+ "car/v1.5/trec-y1/manual",
63
+ "clinicaltrials/2017/trec-pm-2017",
64
+ "clinicaltrials/2017/trec-pm-2018",
65
+ "clinicaltrials/2019/trec-pm-2019",
66
+ "clinicaltrials/2021/trec-ct-2021",
67
+ "clueweb09/catb/trec-web-2009",
68
+ "clueweb09/catb/trec-web-2009/diversity",
69
+ "clueweb09/catb/trec-web-2010",
70
+ "clueweb09/catb/trec-web-2010/diversity",
71
+ "clueweb09/catb/trec-web-2011",
72
+ "clueweb09/catb/trec-web-2011/diversity",
73
+ "clueweb09/catb/trec-web-2012",
74
+ "clueweb09/catb/trec-web-2012/diversity",
75
+ "clueweb09/en/trec-web-2009",
76
+ "clueweb09/en/trec-web-2009/diversity",
77
+ "clueweb09/en/trec-web-2010",
78
+ "clueweb09/en/trec-web-2010/diversity",
79
+ "clueweb09/en/trec-web-2011",
80
+ "clueweb09/en/trec-web-2011/diversity",
81
+ "clueweb09/en/trec-web-2012",
82
+ "clueweb09/en/trec-web-2012/diversity",
83
+ "clueweb09/trec-mq-2009",
84
+ "clueweb12/b13/clef-ehealth",
85
+ "clueweb12/b13/clef-ehealth/cs",
86
+ "clueweb12/b13/clef-ehealth/de",
87
+ "clueweb12/b13/clef-ehealth/fr",
88
+ "clueweb12/b13/clef-ehealth/hu",
89
+ "clueweb12/b13/clef-ehealth/pl",
90
+ "clueweb12/b13/clef-ehealth/sv",
91
+ "clueweb12/b13/ntcir-www-1",
92
+ "clueweb12/b13/ntcir-www-2",
93
+ "clueweb12/b13/trec-misinfo-2019",
94
+ "clueweb12/touche-2020-task-2",
95
+ "clueweb12/touche-2021-task-2",
96
+ "clueweb12/touche-2022-task-2",
97
+ "clueweb12/touche-2022-task-2/expanded-doc-t5-query",
98
+ "clueweb12/trec-web-2013",
99
+ "clueweb12/trec-web-2013/diversity",
100
+ "clueweb12/trec-web-2014",
101
+ "clueweb12/trec-web-2014/diversity",
102
+ "codec",
103
+ "codec/economics",
104
+ "codec/history",
105
+ "codec/politics",
106
+ "codesearchnet/challenge",
107
+ "codesearchnet/test",
108
+ "codesearchnet/train",
109
+ "codesearchnet/valid",
110
+ "cord19/fulltext/trec-covid",
111
+ "cord19/trec-covid",
112
+ "cord19/trec-covid/round1",
113
+ "cord19/trec-covid/round2",
114
+ "cord19/trec-covid/round3",
115
+ "cord19/trec-covid/round4",
116
+ "cord19/trec-covid/round5",
117
+ "cranfield",
118
+ "disks45/nocr/trec-robust-2004",
119
+ "disks45/nocr/trec-robust-2004/fold1",
120
+ "disks45/nocr/trec-robust-2004/fold2",
121
+ "disks45/nocr/trec-robust-2004/fold3",
122
+ "disks45/nocr/trec-robust-2004/fold4",
123
+ "disks45/nocr/trec-robust-2004/fold5",
124
+ "disks45/nocr/trec7",
125
+ "disks45/nocr/trec8",
126
+ "dpr-w100/natural-questions/dev",
127
+ "dpr-w100/natural-questions/train",
128
+ "dpr-w100/trivia-qa/dev",
129
+ "dpr-w100/trivia-qa/train",
130
+ "gov/trec-web-2002",
131
+ "gov/trec-web-2002/named-page",
132
+ "gov/trec-web-2003",
133
+ "gov/trec-web-2003/named-page",
134
+ "gov/trec-web-2004",
135
+ "gov2/trec-mq-2007",
136
+ "gov2/trec-mq-2008",
137
+ "gov2/trec-tb-2004",
138
+ "gov2/trec-tb-2005",
139
+ "gov2/trec-tb-2005/efficiency",
140
+ "gov2/trec-tb-2005/named-page",
141
+ "gov2/trec-tb-2006",
142
+ "gov2/trec-tb-2006/efficiency",
143
+ "gov2/trec-tb-2006/efficiency/stream3",
144
+ "gov2/trec-tb-2006/named-page",
145
+ "hc4/fa/dev",
146
+ "hc4/fa/test",
147
+ "hc4/fa/train",
148
+ "hc4/ru/dev",
149
+ "hc4/ru/test",
150
+ "hc4/ru/train",
151
+ "hc4/zh/dev",
152
+ "hc4/zh/test",
153
+ "hc4/zh/train",
154
+ "highwire/trec-genomics-2006",
155
+ "highwire/trec-genomics-2007",
156
+ "istella22/test",
157
+ "istella22/test/fold1",
158
+ "istella22/test/fold2",
159
+ "istella22/test/fold3",
160
+ "istella22/test/fold4",
161
+ "istella22/test/fold5",
162
+ "kilt/codec",
163
+ "kilt/codec/economics",
164
+ "kilt/codec/history",
165
+ "kilt/codec/politics",
166
+ "lotte/lifestyle/dev/forum",
167
+ "lotte/lifestyle/dev/search",
168
+ "lotte/lifestyle/test/forum",
169
+ "lotte/lifestyle/test/search",
170
+ "lotte/pooled/dev/forum",
171
+ "lotte/pooled/dev/search",
172
+ "lotte/pooled/test/forum",
173
+ "lotte/pooled/test/search",
174
+ "lotte/recreation/dev/forum",
175
+ "lotte/recreation/dev/search",
176
+ "lotte/recreation/test/forum",
177
+ "lotte/recreation/test/search",
178
+ "lotte/science/dev/forum",
179
+ "lotte/science/dev/search",
180
+ "lotte/science/test/forum",
181
+ "lotte/science/test/search",
182
+ "lotte/technology/dev/forum",
183
+ "lotte/technology/dev/search",
184
+ "lotte/technology/test/forum",
185
+ "lotte/technology/test/search",
186
+ "lotte/writing/dev/forum",
187
+ "lotte/writing/dev/search",
188
+ "lotte/writing/test/forum",
189
+ "lotte/writing/test/search",
190
+ "medline/2004/trec-genomics-2004",
191
+ "medline/2004/trec-genomics-2005",
192
+ "medline/2017/trec-pm-2017",
193
+ "medline/2017/trec-pm-2018",
194
+ "mmarco/de/dev",
195
+ "mmarco/de/dev/small",
196
+ "mmarco/de/train",
197
+ "mmarco/es/dev",
198
+ "mmarco/es/dev/small",
199
+ "mmarco/es/train",
200
+ "mmarco/fr/dev",
201
+ "mmarco/fr/dev/small",
202
+ "mmarco/fr/train",
203
+ "mmarco/id/dev",
204
+ "mmarco/id/dev/small",
205
+ "mmarco/id/train",
206
+ "mmarco/it/dev",
207
+ "mmarco/it/dev/small",
208
+ "mmarco/it/train",
209
+ "mmarco/pt/dev",
210
+ "mmarco/pt/dev/small",
211
+ "mmarco/pt/dev/small/v1.1",
212
+ "mmarco/pt/dev/v1.1",
213
+ "mmarco/pt/train",
214
+ "mmarco/pt/train/v1.1",
215
+ "mmarco/ru/dev",
216
+ "mmarco/ru/dev/small",
217
+ "mmarco/ru/train",
218
+ "mmarco/v2/ar/dev",
219
+ "mmarco/v2/ar/dev/small",
220
+ "mmarco/v2/ar/train",
221
+ "mmarco/v2/de/dev",
222
+ "mmarco/v2/de/dev/small",
223
+ "mmarco/v2/de/train",
224
+ "mmarco/v2/dt/dev",
225
+ "mmarco/v2/dt/dev/small",
226
+ "mmarco/v2/dt/train",
227
+ "mmarco/v2/es/dev",
228
+ "mmarco/v2/es/dev/small",
229
+ "mmarco/v2/es/train",
230
+ "mmarco/v2/fr/dev",
231
+ "mmarco/v2/fr/dev/small",
232
+ "mmarco/v2/fr/train",
233
+ "mmarco/v2/hi/dev",
234
+ "mmarco/v2/hi/dev/small",
235
+ "mmarco/v2/hi/train",
236
+ "mmarco/v2/id/dev",
237
+ "mmarco/v2/id/dev/small",
238
+ "mmarco/v2/id/train",
239
+ "mmarco/v2/it/dev",
240
+ "mmarco/v2/it/dev/small",
241
+ "mmarco/v2/it/train",
242
+ "mmarco/v2/ja/dev",
243
+ "mmarco/v2/ja/dev/small",
244
+ "mmarco/v2/ja/train",
245
+ "mmarco/v2/pt/dev",
246
+ "mmarco/v2/pt/dev/small",
247
+ "mmarco/v2/pt/train",
248
+ "mmarco/v2/ru/dev",
249
+ "mmarco/v2/ru/dev/small",
250
+ "mmarco/v2/ru/train",
251
+ "mmarco/v2/vi/dev",
252
+ "mmarco/v2/vi/dev/small",
253
+ "mmarco/v2/vi/train",
254
+ "mmarco/v2/zh/dev",
255
+ "mmarco/v2/zh/dev/small",
256
+ "mmarco/v2/zh/train",
257
+ "mmarco/zh/dev",
258
+ "mmarco/zh/dev/small",
259
+ "mmarco/zh/dev/small/v1.1",
260
+ "mmarco/zh/dev/v1.1",
261
+ "mmarco/zh/train",
262
+ "mr-tydi/ar",
263
+ "mr-tydi/ar/dev",
264
+ "mr-tydi/ar/test",
265
+ "mr-tydi/ar/train",
266
+ "mr-tydi/bn",
267
+ "mr-tydi/bn/dev",
268
+ "mr-tydi/bn/test",
269
+ "mr-tydi/bn/train",
270
+ "mr-tydi/en",
271
+ "mr-tydi/en/dev",
272
+ "mr-tydi/en/test",
273
+ "mr-tydi/en/train",
274
+ "mr-tydi/fi",
275
+ "mr-tydi/fi/dev",
276
+ "mr-tydi/fi/test",
277
+ "mr-tydi/fi/train",
278
+ "mr-tydi/id",
279
+ "mr-tydi/id/dev",
280
+ "mr-tydi/id/test",
281
+ "mr-tydi/id/train",
282
+ "mr-tydi/ja",
283
+ "mr-tydi/ja/dev",
284
+ "mr-tydi/ja/test",
285
+ "mr-tydi/ja/train",
286
+ "mr-tydi/ko",
287
+ "mr-tydi/ko/dev",
288
+ "mr-tydi/ko/test",
289
+ "mr-tydi/ko/train",
290
+ "mr-tydi/ru",
291
+ "mr-tydi/ru/dev",
292
+ "mr-tydi/ru/test",
293
+ "mr-tydi/ru/train",
294
+ "mr-tydi/sw",
295
+ "mr-tydi/sw/dev",
296
+ "mr-tydi/sw/test",
297
+ "mr-tydi/sw/train",
298
+ "mr-tydi/te",
299
+ "mr-tydi/te/dev",
300
+ "mr-tydi/te/test",
301
+ "mr-tydi/te/train",
302
+ "mr-tydi/th",
303
+ "mr-tydi/th/dev",
304
+ "mr-tydi/th/test",
305
+ "mr-tydi/th/train",
306
+ "msmarco-document-v2/dev1",
307
+ "msmarco-document-v2/dev2",
308
+ "msmarco-document-v2/train",
309
+ "msmarco-document-v2/trec-dl-2019",
310
+ "msmarco-document-v2/trec-dl-2019/judged",
311
+ "msmarco-document-v2/trec-dl-2020",
312
+ "msmarco-document-v2/trec-dl-2020/judged",
313
+ "msmarco-document-v2/trec-dl-2021",
314
+ "msmarco-document-v2/trec-dl-2021/judged",
315
+ "msmarco-document-v2/trec-dl-2022",
316
+ "msmarco-document-v2/trec-dl-2022/judged",
317
+ "msmarco-document/dev",
318
+ "msmarco-document/orcas",
319
+ "msmarco-document/train",
320
+ "msmarco-document/trec-dl-2019",
321
+ "msmarco-document/trec-dl-2019/judged",
322
+ "msmarco-document/trec-dl-2020",
323
+ "msmarco-document/trec-dl-2020/judged",
324
+ "msmarco-document/trec-dl-hard",
325
+ "msmarco-document/trec-dl-hard/fold1",
326
+ "msmarco-document/trec-dl-hard/fold2",
327
+ "msmarco-document/trec-dl-hard/fold3",
328
+ "msmarco-document/trec-dl-hard/fold4",
329
+ "msmarco-document/trec-dl-hard/fold5",
330
+ "msmarco-passage-v2/dev1",
331
+ "msmarco-passage-v2/dev2",
332
+ "msmarco-passage-v2/train",
333
+ "msmarco-passage-v2/trec-dl-2021",
334
+ "msmarco-passage-v2/trec-dl-2021/judged",
335
+ "msmarco-passage-v2/trec-dl-2022",
336
+ "msmarco-passage-v2/trec-dl-2022/judged",
337
+ "msmarco-passage/dev",
338
+ "msmarco-passage/dev/2",
339
+ "msmarco-passage/dev/judged",
340
+ "msmarco-passage/dev/small",
341
+ "msmarco-passage/train",
342
+ "msmarco-passage/train/judged",
343
+ "msmarco-passage/train/medical",
344
+ "msmarco-passage/train/split200-train",
345
+ "msmarco-passage/train/split200-valid",
346
+ "msmarco-passage/train/triples-small",
347
+ "msmarco-passage/train/triples-v2",
348
+ "msmarco-passage/trec-dl-2019",
349
+ "msmarco-passage/trec-dl-2019/judged",
350
+ "msmarco-passage/trec-dl-2020",
351
+ "msmarco-passage/trec-dl-2020/judged",
352
+ "msmarco-passage/trec-dl-hard",
353
+ "msmarco-passage/trec-dl-hard/fold1",
354
+ "msmarco-passage/trec-dl-hard/fold2",
355
+ "msmarco-passage/trec-dl-hard/fold3",
356
+ "msmarco-passage/trec-dl-hard/fold4",
357
+ "msmarco-passage/trec-dl-hard/fold5",
358
+ "msmarco-qna/dev",
359
+ "msmarco-qna/train",
360
+ "natural-questions/dev",
361
+ "natural-questions/train",
362
+ "neuclir/1/fa/hc4-filtered",
363
+ "neuclir/1/ru/hc4-filtered",
364
+ "neuclir/1/zh/hc4-filtered",
365
+ "neumarco/fa/dev",
366
+ "neumarco/fa/dev/judged",
367
+ "neumarco/fa/dev/small",
368
+ "neumarco/fa/train",
369
+ "neumarco/fa/train/judged",
370
+ "neumarco/ru/dev",
371
+ "neumarco/ru/dev/judged",
372
+ "neumarco/ru/dev/small",
373
+ "neumarco/ru/train",
374
+ "neumarco/ru/train/judged",
375
+ "neumarco/zh/dev",
376
+ "neumarco/zh/dev/judged",
377
+ "neumarco/zh/dev/small",
378
+ "neumarco/zh/train",
379
+ "neumarco/zh/train/judged",
380
+ "nfcorpus/dev",
381
+ "nfcorpus/dev/nontopic",
382
+ "nfcorpus/dev/video",
383
+ "nfcorpus/test",
384
+ "nfcorpus/test/nontopic",
385
+ "nfcorpus/test/video",
386
+ "nfcorpus/train",
387
+ "nfcorpus/train/nontopic",
388
+ "nfcorpus/train/video",
389
+ "nyt/trec-core-2017",
390
+ "nyt/wksup",
391
+ "nyt/wksup/train",
392
+ "nyt/wksup/valid",
393
+ "pmc/v1/trec-cds-2014",
394
+ "pmc/v1/trec-cds-2015",
395
+ "pmc/v2/trec-cds-2016",
396
+ "sara",
397
+ "touche-image/2022-06-13/touche-2022-task-3",
398
+ "trec-arabic/ar2001",
399
+ "trec-arabic/ar2002",
400
+ "trec-cast/v0/train",
401
+ "trec-cast/v0/train/judged",
402
+ "trec-cast/v1/2019",
403
+ "trec-cast/v1/2019/judged",
404
+ "trec-cast/v1/2020",
405
+ "trec-cast/v1/2020/judged",
406
+ "trec-fair-2021/eval",
407
+ "trec-fair-2021/train",
408
+ "trec-fair/2021/eval",
409
+ "trec-fair/2021/train",
410
+ "trec-fair/2022/train",
411
+ "trec-mandarin/trec5",
412
+ "trec-mandarin/trec6",
413
+ "trec-robust04",
414
+ "trec-robust04/fold1",
415
+ "trec-robust04/fold2",
416
+ "trec-robust04/fold3",
417
+ "trec-robust04/fold4",
418
+ "trec-robust04/fold5",
419
+ "trec-spanish/trec3",
420
+ "trec-spanish/trec4",
421
+ "trec-tot/2023/dev",
422
+ "trec-tot/2023/train",
423
+ "tripclick/train",
424
+ "tripclick/train/head",
425
+ "tripclick/train/head/dctr",
426
+ "tripclick/train/hofstaetter-triples",
427
+ "tripclick/train/tail",
428
+ "tripclick/train/torso",
429
+ "tripclick/val",
430
+ "tripclick/val/head",
431
+ "tripclick/val/head/dctr",
432
+ "tripclick/val/tail",
433
+ "tripclick/val/torso",
434
+ "tweets2013-ia/trec-mb-2013",
435
+ "tweets2013-ia/trec-mb-2014",
436
+ "vaswani",
437
+ "wapo/v2/trec-core-2018",
438
+ "wapo/v2/trec-news-2018",
439
+ "wapo/v2/trec-news-2019",
440
+ "wikiclir/ar",
441
+ "wikiclir/ca",
442
+ "wikiclir/cs",
443
+ "wikiclir/de",
444
+ "wikiclir/en-simple",
445
+ "wikiclir/es",
446
+ "wikiclir/fi",
447
+ "wikiclir/fr",
448
+ "wikiclir/it",
449
+ "wikiclir/ja",
450
+ "wikiclir/ko",
451
+ "wikiclir/nl",
452
+ "wikiclir/nn",
453
+ "wikiclir/no",
454
+ "wikiclir/pl",
455
+ "wikiclir/pt",
456
+ "wikiclir/ro",
457
+ "wikiclir/ru",
458
+ "wikiclir/sv",
459
+ "wikiclir/sw",
460
+ "wikiclir/tl",
461
+ "wikiclir/tr",
462
+ "wikiclir/uk",
463
+ "wikiclir/vi",
464
+ "wikiclir/zh",
465
+ "wikir/en1k/test",
466
+ "wikir/en1k/training",
467
+ "wikir/en1k/validation",
468
+ "wikir/en59k/test",
469
+ "wikir/en59k/training",
470
+ "wikir/en59k/validation",
471
+ "wikir/en78k/test",
472
+ "wikir/en78k/training",
473
+ "wikir/en78k/validation",
474
+ "wikir/ens78k/test",
475
+ "wikir/ens78k/training",
476
+ "wikir/ens78k/validation",
477
+ "wikir/es13k/test",
478
+ "wikir/es13k/training",
479
+ "wikir/es13k/validation",
480
+ "wikir/fr14k/test",
481
+ "wikir/fr14k/training",
482
+ "wikir/fr14k/validation",
483
+ "wikir/it16k/test",
484
+ "wikir/it16k/training",
485
+ "wikir/it16k/validation"
486
+ ]
ir_dataset_names.json ADDED
@@ -0,0 +1,485 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ "antique/test",
3
+ "antique/test/non-offensive",
4
+ "antique/train",
5
+ "antique/train/split200-train",
6
+ "antique/train/split200-valid",
7
+ "aol-ia",
8
+ "aquaint/trec-robust-2005",
9
+ "argsme/1.0/touche-2020-task-1/uncorrected",
10
+ "argsme/2020-04-01/processed/touche-2022-task-1",
11
+ "argsme/2020-04-01/touche-2020-task-1",
12
+ "argsme/2020-04-01/touche-2020-task-1/uncorrected",
13
+ "argsme/2020-04-01/touche-2021-task-1",
14
+ "beir/arguana",
15
+ "beir/climate-fever",
16
+ "beir/cqadupstack/android",
17
+ "beir/cqadupstack/english",
18
+ "beir/cqadupstack/gaming",
19
+ "beir/cqadupstack/gis",
20
+ "beir/cqadupstack/mathematica",
21
+ "beir/cqadupstack/physics",
22
+ "beir/cqadupstack/programmers",
23
+ "beir/cqadupstack/stats",
24
+ "beir/cqadupstack/tex",
25
+ "beir/cqadupstack/unix",
26
+ "beir/cqadupstack/webmasters",
27
+ "beir/cqadupstack/wordpress",
28
+ "beir/dbpedia-entity/dev",
29
+ "beir/dbpedia-entity/test",
30
+ "beir/fever/dev",
31
+ "beir/fever/test",
32
+ "beir/fever/train",
33
+ "beir/fiqa/dev",
34
+ "beir/fiqa/test",
35
+ "beir/fiqa/train",
36
+ "beir/hotpotqa/dev",
37
+ "beir/hotpotqa/test",
38
+ "beir/hotpotqa/train",
39
+ "beir/msmarco/dev",
40
+ "beir/msmarco/test",
41
+ "beir/msmarco/train",
42
+ "beir/nfcorpus/dev",
43
+ "beir/nfcorpus/test",
44
+ "beir/nfcorpus/train",
45
+ "beir/nq",
46
+ "beir/quora/dev",
47
+ "beir/quora/test",
48
+ "beir/scidocs",
49
+ "beir/scifact/test",
50
+ "beir/scifact/train",
51
+ "beir/trec-covid",
52
+ "beir/webis-touche2020",
53
+ "beir/webis-touche2020/v2",
54
+ "car/v1.5/test200",
55
+ "car/v1.5/train/fold0",
56
+ "car/v1.5/train/fold1",
57
+ "car/v1.5/train/fold2",
58
+ "car/v1.5/train/fold3",
59
+ "car/v1.5/train/fold4",
60
+ "car/v1.5/trec-y1/auto",
61
+ "car/v1.5/trec-y1/manual",
62
+ "clinicaltrials/2017/trec-pm-2017",
63
+ "clinicaltrials/2017/trec-pm-2018",
64
+ "clinicaltrials/2019/trec-pm-2019",
65
+ "clinicaltrials/2021/trec-ct-2021",
66
+ "clueweb09/catb/trec-web-2009",
67
+ "clueweb09/catb/trec-web-2009/diversity",
68
+ "clueweb09/catb/trec-web-2010",
69
+ "clueweb09/catb/trec-web-2010/diversity",
70
+ "clueweb09/catb/trec-web-2011",
71
+ "clueweb09/catb/trec-web-2011/diversity",
72
+ "clueweb09/catb/trec-web-2012",
73
+ "clueweb09/catb/trec-web-2012/diversity",
74
+ "clueweb09/en/trec-web-2009",
75
+ "clueweb09/en/trec-web-2009/diversity",
76
+ "clueweb09/en/trec-web-2010",
77
+ "clueweb09/en/trec-web-2010/diversity",
78
+ "clueweb09/en/trec-web-2011",
79
+ "clueweb09/en/trec-web-2011/diversity",
80
+ "clueweb09/en/trec-web-2012",
81
+ "clueweb09/en/trec-web-2012/diversity",
82
+ "clueweb09/trec-mq-2009",
83
+ "clueweb12/b13/clef-ehealth",
84
+ "clueweb12/b13/clef-ehealth/cs",
85
+ "clueweb12/b13/clef-ehealth/de",
86
+ "clueweb12/b13/clef-ehealth/fr",
87
+ "clueweb12/b13/clef-ehealth/hu",
88
+ "clueweb12/b13/clef-ehealth/pl",
89
+ "clueweb12/b13/clef-ehealth/sv",
90
+ "clueweb12/b13/ntcir-www-1",
91
+ "clueweb12/b13/ntcir-www-2",
92
+ "clueweb12/b13/trec-misinfo-2019",
93
+ "clueweb12/touche-2020-task-2",
94
+ "clueweb12/touche-2021-task-2",
95
+ "clueweb12/touche-2022-task-2",
96
+ "clueweb12/touche-2022-task-2/expanded-doc-t5-query",
97
+ "clueweb12/trec-web-2013",
98
+ "clueweb12/trec-web-2013/diversity",
99
+ "clueweb12/trec-web-2014",
100
+ "clueweb12/trec-web-2014/diversity",
101
+ "codec",
102
+ "codec/economics",
103
+ "codec/history",
104
+ "codec/politics",
105
+ "codesearchnet/challenge",
106
+ "codesearchnet/test",
107
+ "codesearchnet/train",
108
+ "codesearchnet/valid",
109
+ "cord19/fulltext/trec-covid",
110
+ "cord19/trec-covid",
111
+ "cord19/trec-covid/round1",
112
+ "cord19/trec-covid/round2",
113
+ "cord19/trec-covid/round3",
114
+ "cord19/trec-covid/round4",
115
+ "cord19/trec-covid/round5",
116
+ "cranfield",
117
+ "disks45/nocr/trec-robust-2004",
118
+ "disks45/nocr/trec-robust-2004/fold1",
119
+ "disks45/nocr/trec-robust-2004/fold2",
120
+ "disks45/nocr/trec-robust-2004/fold3",
121
+ "disks45/nocr/trec-robust-2004/fold4",
122
+ "disks45/nocr/trec-robust-2004/fold5",
123
+ "disks45/nocr/trec7",
124
+ "disks45/nocr/trec8",
125
+ "dpr-w100/natural-questions/dev",
126
+ "dpr-w100/natural-questions/train",
127
+ "dpr-w100/trivia-qa/dev",
128
+ "dpr-w100/trivia-qa/train",
129
+ "gov/trec-web-2002",
130
+ "gov/trec-web-2002/named-page",
131
+ "gov/trec-web-2003",
132
+ "gov/trec-web-2003/named-page",
133
+ "gov/trec-web-2004",
134
+ "gov2/trec-mq-2007",
135
+ "gov2/trec-mq-2008",
136
+ "gov2/trec-tb-2004",
137
+ "gov2/trec-tb-2005",
138
+ "gov2/trec-tb-2005/efficiency",
139
+ "gov2/trec-tb-2005/named-page",
140
+ "gov2/trec-tb-2006",
141
+ "gov2/trec-tb-2006/efficiency",
142
+ "gov2/trec-tb-2006/efficiency/stream3",
143
+ "gov2/trec-tb-2006/named-page",
144
+ "hc4/fa/dev",
145
+ "hc4/fa/test",
146
+ "hc4/fa/train",
147
+ "hc4/ru/dev",
148
+ "hc4/ru/test",
149
+ "hc4/ru/train",
150
+ "hc4/zh/dev",
151
+ "hc4/zh/test",
152
+ "hc4/zh/train",
153
+ "highwire/trec-genomics-2006",
154
+ "highwire/trec-genomics-2007",
155
+ "istella22/test",
156
+ "istella22/test/fold1",
157
+ "istella22/test/fold2",
158
+ "istella22/test/fold3",
159
+ "istella22/test/fold4",
160
+ "istella22/test/fold5",
161
+ "kilt/codec",
162
+ "kilt/codec/economics",
163
+ "kilt/codec/history",
164
+ "kilt/codec/politics",
165
+ "lotte/lifestyle/dev/forum",
166
+ "lotte/lifestyle/dev/search",
167
+ "lotte/lifestyle/test/forum",
168
+ "lotte/lifestyle/test/search",
169
+ "lotte/pooled/dev/forum",
170
+ "lotte/pooled/dev/search",
171
+ "lotte/pooled/test/forum",
172
+ "lotte/pooled/test/search",
173
+ "lotte/recreation/dev/forum",
174
+ "lotte/recreation/dev/search",
175
+ "lotte/recreation/test/forum",
176
+ "lotte/recreation/test/search",
177
+ "lotte/science/dev/forum",
178
+ "lotte/science/dev/search",
179
+ "lotte/science/test/forum",
180
+ "lotte/science/test/search",
181
+ "lotte/technology/dev/forum",
182
+ "lotte/technology/dev/search",
183
+ "lotte/technology/test/forum",
184
+ "lotte/technology/test/search",
185
+ "lotte/writing/dev/forum",
186
+ "lotte/writing/dev/search",
187
+ "lotte/writing/test/forum",
188
+ "lotte/writing/test/search",
189
+ "medline/2004/trec-genomics-2004",
190
+ "medline/2004/trec-genomics-2005",
191
+ "medline/2017/trec-pm-2017",
192
+ "medline/2017/trec-pm-2018",
193
+ "mmarco/de/dev",
194
+ "mmarco/de/dev/small",
195
+ "mmarco/de/train",
196
+ "mmarco/es/dev",
197
+ "mmarco/es/dev/small",
198
+ "mmarco/es/train",
199
+ "mmarco/fr/dev",
200
+ "mmarco/fr/dev/small",
201
+ "mmarco/fr/train",
202
+ "mmarco/id/dev",
203
+ "mmarco/id/dev/small",
204
+ "mmarco/id/train",
205
+ "mmarco/it/dev",
206
+ "mmarco/it/dev/small",
207
+ "mmarco/it/train",
208
+ "mmarco/pt/dev",
209
+ "mmarco/pt/dev/small",
210
+ "mmarco/pt/dev/small/v1.1",
211
+ "mmarco/pt/dev/v1.1",
212
+ "mmarco/pt/train",
213
+ "mmarco/pt/train/v1.1",
214
+ "mmarco/ru/dev",
215
+ "mmarco/ru/dev/small",
216
+ "mmarco/ru/train",
217
+ "mmarco/v2/ar/dev",
218
+ "mmarco/v2/ar/dev/small",
219
+ "mmarco/v2/ar/train",
220
+ "mmarco/v2/de/dev",
221
+ "mmarco/v2/de/dev/small",
222
+ "mmarco/v2/de/train",
223
+ "mmarco/v2/dt/dev",
224
+ "mmarco/v2/dt/dev/small",
225
+ "mmarco/v2/dt/train",
226
+ "mmarco/v2/es/dev",
227
+ "mmarco/v2/es/dev/small",
228
+ "mmarco/v2/es/train",
229
+ "mmarco/v2/fr/dev",
230
+ "mmarco/v2/fr/dev/small",
231
+ "mmarco/v2/fr/train",
232
+ "mmarco/v2/hi/dev",
233
+ "mmarco/v2/hi/dev/small",
234
+ "mmarco/v2/hi/train",
235
+ "mmarco/v2/id/dev",
236
+ "mmarco/v2/id/dev/small",
237
+ "mmarco/v2/id/train",
238
+ "mmarco/v2/it/dev",
239
+ "mmarco/v2/it/dev/small",
240
+ "mmarco/v2/it/train",
241
+ "mmarco/v2/ja/dev",
242
+ "mmarco/v2/ja/dev/small",
243
+ "mmarco/v2/ja/train",
244
+ "mmarco/v2/pt/dev",
245
+ "mmarco/v2/pt/dev/small",
246
+ "mmarco/v2/pt/train",
247
+ "mmarco/v2/ru/dev",
248
+ "mmarco/v2/ru/dev/small",
249
+ "mmarco/v2/ru/train",
250
+ "mmarco/v2/vi/dev",
251
+ "mmarco/v2/vi/dev/small",
252
+ "mmarco/v2/vi/train",
253
+ "mmarco/v2/zh/dev",
254
+ "mmarco/v2/zh/dev/small",
255
+ "mmarco/v2/zh/train",
256
+ "mmarco/zh/dev",
257
+ "mmarco/zh/dev/small",
258
+ "mmarco/zh/dev/small/v1.1",
259
+ "mmarco/zh/dev/v1.1",
260
+ "mmarco/zh/train",
261
+ "mr-tydi/ar",
262
+ "mr-tydi/ar/dev",
263
+ "mr-tydi/ar/test",
264
+ "mr-tydi/ar/train",
265
+ "mr-tydi/bn",
266
+ "mr-tydi/bn/dev",
267
+ "mr-tydi/bn/test",
268
+ "mr-tydi/bn/train",
269
+ "mr-tydi/en",
270
+ "mr-tydi/en/dev",
271
+ "mr-tydi/en/test",
272
+ "mr-tydi/en/train",
273
+ "mr-tydi/fi",
274
+ "mr-tydi/fi/dev",
275
+ "mr-tydi/fi/test",
276
+ "mr-tydi/fi/train",
277
+ "mr-tydi/id",
278
+ "mr-tydi/id/dev",
279
+ "mr-tydi/id/test",
280
+ "mr-tydi/id/train",
281
+ "mr-tydi/ja",
282
+ "mr-tydi/ja/dev",
283
+ "mr-tydi/ja/test",
284
+ "mr-tydi/ja/train",
285
+ "mr-tydi/ko",
286
+ "mr-tydi/ko/dev",
287
+ "mr-tydi/ko/test",
288
+ "mr-tydi/ko/train",
289
+ "mr-tydi/ru",
290
+ "mr-tydi/ru/dev",
291
+ "mr-tydi/ru/test",
292
+ "mr-tydi/ru/train",
293
+ "mr-tydi/sw",
294
+ "mr-tydi/sw/dev",
295
+ "mr-tydi/sw/test",
296
+ "mr-tydi/sw/train",
297
+ "mr-tydi/te",
298
+ "mr-tydi/te/dev",
299
+ "mr-tydi/te/test",
300
+ "mr-tydi/te/train",
301
+ "mr-tydi/th",
302
+ "mr-tydi/th/dev",
303
+ "mr-tydi/th/test",
304
+ "mr-tydi/th/train",
305
+ "msmarco-document-v2/dev1",
306
+ "msmarco-document-v2/dev2",
307
+ "msmarco-document-v2/train",
308
+ "msmarco-document-v2/trec-dl-2019",
309
+ "msmarco-document-v2/trec-dl-2019/judged",
310
+ "msmarco-document-v2/trec-dl-2020",
311
+ "msmarco-document-v2/trec-dl-2020/judged",
312
+ "msmarco-document-v2/trec-dl-2021",
313
+ "msmarco-document-v2/trec-dl-2021/judged",
314
+ "msmarco-document-v2/trec-dl-2022",
315
+ "msmarco-document-v2/trec-dl-2022/judged",
316
+ "msmarco-document/dev",
317
+ "msmarco-document/orcas",
318
+ "msmarco-document/train",
319
+ "msmarco-document/trec-dl-2019",
320
+ "msmarco-document/trec-dl-2019/judged",
321
+ "msmarco-document/trec-dl-2020",
322
+ "msmarco-document/trec-dl-2020/judged",
323
+ "msmarco-document/trec-dl-hard",
324
+ "msmarco-document/trec-dl-hard/fold1",
325
+ "msmarco-document/trec-dl-hard/fold2",
326
+ "msmarco-document/trec-dl-hard/fold3",
327
+ "msmarco-document/trec-dl-hard/fold4",
328
+ "msmarco-document/trec-dl-hard/fold5",
329
+ "msmarco-passage-v2/dev1",
330
+ "msmarco-passage-v2/dev2",
331
+ "msmarco-passage-v2/train",
332
+ "msmarco-passage-v2/trec-dl-2021",
333
+ "msmarco-passage-v2/trec-dl-2021/judged",
334
+ "msmarco-passage-v2/trec-dl-2022",
335
+ "msmarco-passage-v2/trec-dl-2022/judged",
336
+ "msmarco-passage/dev",
337
+ "msmarco-passage/dev/2",
338
+ "msmarco-passage/dev/judged",
339
+ "msmarco-passage/dev/small",
340
+ "msmarco-passage/train",
341
+ "msmarco-passage/train/judged",
342
+ "msmarco-passage/train/medical",
343
+ "msmarco-passage/train/split200-train",
344
+ "msmarco-passage/train/split200-valid",
345
+ "msmarco-passage/train/triples-small",
346
+ "msmarco-passage/train/triples-v2",
347
+ "msmarco-passage/trec-dl-2019",
348
+ "msmarco-passage/trec-dl-2019/judged",
349
+ "msmarco-passage/trec-dl-2020",
350
+ "msmarco-passage/trec-dl-2020/judged",
351
+ "msmarco-passage/trec-dl-hard",
352
+ "msmarco-passage/trec-dl-hard/fold1",
353
+ "msmarco-passage/trec-dl-hard/fold2",
354
+ "msmarco-passage/trec-dl-hard/fold3",
355
+ "msmarco-passage/trec-dl-hard/fold4",
356
+ "msmarco-passage/trec-dl-hard/fold5",
357
+ "msmarco-qna/dev",
358
+ "msmarco-qna/train",
359
+ "natural-questions/dev",
360
+ "natural-questions/train",
361
+ "neuclir/1/fa/hc4-filtered",
362
+ "neuclir/1/ru/hc4-filtered",
363
+ "neuclir/1/zh/hc4-filtered",
364
+ "neumarco/fa/dev",
365
+ "neumarco/fa/dev/judged",
366
+ "neumarco/fa/dev/small",
367
+ "neumarco/fa/train",
368
+ "neumarco/fa/train/judged",
369
+ "neumarco/ru/dev",
370
+ "neumarco/ru/dev/judged",
371
+ "neumarco/ru/dev/small",
372
+ "neumarco/ru/train",
373
+ "neumarco/ru/train/judged",
374
+ "neumarco/zh/dev",
375
+ "neumarco/zh/dev/judged",
376
+ "neumarco/zh/dev/small",
377
+ "neumarco/zh/train",
378
+ "neumarco/zh/train/judged",
379
+ "nfcorpus/dev",
380
+ "nfcorpus/dev/nontopic",
381
+ "nfcorpus/dev/video",
382
+ "nfcorpus/test",
383
+ "nfcorpus/test/nontopic",
384
+ "nfcorpus/test/video",
385
+ "nfcorpus/train",
386
+ "nfcorpus/train/nontopic",
387
+ "nfcorpus/train/video",
388
+ "nyt/trec-core-2017",
389
+ "nyt/wksup",
390
+ "nyt/wksup/train",
391
+ "nyt/wksup/valid",
392
+ "pmc/v1/trec-cds-2014",
393
+ "pmc/v1/trec-cds-2015",
394
+ "pmc/v2/trec-cds-2016",
395
+ "sara",
396
+ "touche-image/2022-06-13/touche-2022-task-3",
397
+ "trec-arabic/ar2001",
398
+ "trec-arabic/ar2002",
399
+ "trec-cast/v0/train",
400
+ "trec-cast/v0/train/judged",
401
+ "trec-cast/v1/2019",
402
+ "trec-cast/v1/2019/judged",
403
+ "trec-cast/v1/2020",
404
+ "trec-cast/v1/2020/judged",
405
+ "trec-fair-2021/eval",
406
+ "trec-fair-2021/train",
407
+ "trec-fair/2021/eval",
408
+ "trec-fair/2021/train",
409
+ "trec-fair/2022/train",
410
+ "trec-mandarin/trec5",
411
+ "trec-mandarin/trec6",
412
+ "trec-robust04",
413
+ "trec-robust04/fold1",
414
+ "trec-robust04/fold2",
415
+ "trec-robust04/fold3",
416
+ "trec-robust04/fold4",
417
+ "trec-robust04/fold5",
418
+ "trec-spanish/trec3",
419
+ "trec-spanish/trec4",
420
+ "trec-tot/2023/dev",
421
+ "trec-tot/2023/train",
422
+ "tripclick/train",
423
+ "tripclick/train/head",
424
+ "tripclick/train/head/dctr",
425
+ "tripclick/train/hofstaetter-triples",
426
+ "tripclick/train/tail",
427
+ "tripclick/train/torso",
428
+ "tripclick/val",
429
+ "tripclick/val/head",
430
+ "tripclick/val/head/dctr",
431
+ "tripclick/val/tail",
432
+ "tripclick/val/torso",
433
+ "tweets2013-ia/trec-mb-2013",
434
+ "tweets2013-ia/trec-mb-2014",
435
+ "vaswani",
436
+ "wapo/v2/trec-core-2018",
437
+ "wapo/v2/trec-news-2018",
438
+ "wapo/v2/trec-news-2019",
439
+ "wikiclir/ar",
440
+ "wikiclir/ca",
441
+ "wikiclir/cs",
442
+ "wikiclir/de",
443
+ "wikiclir/en-simple",
444
+ "wikiclir/es",
445
+ "wikiclir/fi",
446
+ "wikiclir/fr",
447
+ "wikiclir/it",
448
+ "wikiclir/ja",
449
+ "wikiclir/ko",
450
+ "wikiclir/nl",
451
+ "wikiclir/nn",
452
+ "wikiclir/no",
453
+ "wikiclir/pl",
454
+ "wikiclir/pt",
455
+ "wikiclir/ro",
456
+ "wikiclir/ru",
457
+ "wikiclir/sv",
458
+ "wikiclir/sw",
459
+ "wikiclir/tl",
460
+ "wikiclir/tr",
461
+ "wikiclir/uk",
462
+ "wikiclir/vi",
463
+ "wikiclir/zh",
464
+ "wikir/en1k/test",
465
+ "wikir/en1k/training",
466
+ "wikir/en1k/validation",
467
+ "wikir/en59k/test",
468
+ "wikir/en59k/training",
469
+ "wikir/en59k/validation",
470
+ "wikir/en78k/test",
471
+ "wikir/en78k/training",
472
+ "wikir/en78k/validation",
473
+ "wikir/ens78k/test",
474
+ "wikir/ens78k/training",
475
+ "wikir/ens78k/validation",
476
+ "wikir/es13k/test",
477
+ "wikir/es13k/training",
478
+ "wikir/es13k/validation",
479
+ "wikir/fr14k/test",
480
+ "wikir/fr14k/training",
481
+ "wikir/fr14k/validation",
482
+ "wikir/it16k/test",
483
+ "wikir/it16k/training",
484
+ "wikir/it16k/validation"
485
+ ]
requirements.txt CHANGED
@@ -7,4 +7,5 @@ pyserini==0.21.0
7
  torch==2.0.1
8
  plotly==5.15.0
9
  captum==0.6.0
10
- protobuf==4.21.11
 
 
7
  torch==2.0.1
8
  plotly==5.15.0
9
  captum==0.6.0
10
+ protobuf==3.20.0
11
+ beautifulsoup4==4.12.2
scripts/collect_ir_dataset_names.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ from bs4 import BeautifulSoup
3
+ import re
4
+ import json
5
+ import os
6
+ import pathlib
7
+ import shutil
8
+
9
+
10
+
11
+ def get_ir_dataset_names():
12
+ url = "https://raw.githubusercontent.com/allenai/ir_datasets/master/ir_datasets/etc/metadata.json"
13
+ # read in the json
14
+ with requests.get(url) as r:
15
+ data = json.loads(r.text)
16
+ names = []
17
+ for dataset in data:
18
+ if "docs" in data[dataset] and "queries" in data[dataset] and "qrels" in data[dataset]:
19
+ names.append(dataset)
20
+ return names
21
+
22
+
23
+ if __name__ == "__main__":
24
+ names = get_ir_dataset_names()
25
+ with open("ir_dataset_names.json", "w") as fout:
26
+ json.dump(names, fout, indent=4)