34 lines
No EOL
1.3 KiB
Python
34 lines
No EOL
1.3 KiB
Python
from convert_to_answer_format import process_invalid_data,process_valid_data
|
|
import json
|
|
from glob import glob
|
|
import os
|
|
|
|
save_dir = 'path/to/save/dir'
|
|
|
|
groups_dirs = ['path/to/dataset/eval/result/folders']
|
|
|
|
for groups_dir in groups_dirs:
|
|
method = os.path.split(groups_dir)[1]
|
|
print(method)
|
|
groups_save_dir = os.path.join(save_dir,method)
|
|
os.makedirs(groups_save_dir,exist_ok=True)
|
|
groups = [os.path.split(g)[1] for g in glob(groups_dir+'/*')]
|
|
full_answer = {}
|
|
for g in groups:
|
|
print(g)
|
|
answer_dict = {}
|
|
files = glob(os.path.join(groups_dir,g,'*.json'))
|
|
for file in files:
|
|
qid = os.path.split(file)[1].split('_')[0]
|
|
try:
|
|
data = json.load(open(file))
|
|
except:
|
|
print('Read error: ',file)
|
|
continue
|
|
if not data['answer_generation']['valid_data']:
|
|
answer_dict[qid] = process_invalid_data(method,data)
|
|
else:
|
|
answer_dict[qid] = process_valid_data(method,data['answer_generation'])
|
|
json.dump(answer_dict,open(os.path.join(groups_save_dir,f'{g}.json'),'w'))
|
|
full_answer.update(answer_dict)
|
|
# json.dump(full_answer,open(os.path.join(groups_save_dir,f'fullanswer.json'),'w')) |