-
Notifications
You must be signed in to change notification settings - Fork 0
/
transform_to_new_qids.py
76 lines (50 loc) · 1.76 KB
/
transform_to_new_qids.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import json
import random
import os
import argparse
from tqdm import tqdm
def get_all_fnames(folder):
files = list()
fpaths = list()
fpaths.append(folder)
for fpath in tqdm(fpaths, desc="Looping over fpaths"):
files.extend(os.listdir(fpath))
return files
def args_parser():
parser = argparse.ArgumentParser(description="Combine predictions from different models to be displayed in the annotation platfrom")
parser.add_argument("--input",
dest="input",
type=str,
default="./test-data/biology.json",
help="path to the subject")
parser.add_argument("--out",
dest="out",
type=str,
default="./test-data/",
help="path to the subject")
return parser
def dump_json(data, outpath):
print('Saving to', outpath)
with open(outpath, 'w') as out:
json.dump(data, out, indent=4, separators=(',', ': '))
def read_json(target_file):
with open(target_file, "r") as fp:
loaded_json = json.load(fp)
return loaded_json
if __name__ == '__main__':
args = args_parser()
args = args.parse_args()
subject_path = args.input
out_path = args.out
subject_json = read_json(subject_path)
fname = subject_path.split("/")[-1]
fname = fname.split(".json")[0]
all_mapping = read_json("processed/mapping/global_mapping.json")
subject_mapping = all_mapping.get(fname)
new_json = subject_json.copy()
for con in subject_json["content"]:
old_qid = con["qid"]
for k, v in subject_mapping.items():
if old_qid == v:
con["qid"] = k
dump_json(subject_json, args.out)