-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathget_all_passages.py
34 lines (33 loc) · 1.23 KB
/
get_all_passages.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import pandas as pd
import sys
def main(train_filename, dev_filename, eval_filename):
train = pd.read_json(train_filename)
dev = pd.read_json(dev_filename)
eval = pd.read_json(eval_filename)
passages = {}
pid = 0
for row in train.itterrows():
for passage in row[1]['passages']:
if passage['passage_text'] not in passages:
passages[passage['passage_text']] = pid
pid += 1
for row in dev.itterrows():
for passage in row[1]['passages']:
if passage['passage_text'] not in passages:
passages[passage['passage_text']] = pid
pid += 1
for row in eval.itterrows():
for passage in row[1]['passages']:
if passage['passage_text'] not in passages:
passages[passage['passage_text']] = pid
pid += 1
with open(output_filename, 'w') as w:
for passage in passages:
w.write("{}\t{}\n".format(passage, passages[passage])
print("{} unique passages found".format(str(pid+1)))
if __name__ == '__main__':
if len(sys.argv) != 5:
print("Usage: get_all_passages.py <train_file> <dev_file> <eval_file> <output_filename>")
exit(-1)
else:
main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])