Spaces:
Runtime error
Runtime error
import os | |
import ujson | |
from colbert.utils.utils import print_message, file_tqdm | |
def annotate_to_file(qas_path, ranking_path): | |
output_path = f'{ranking_path}.annotated' | |
assert not os.path.exists(output_path), output_path | |
QID2pids = {} | |
with open(qas_path) as f: | |
print_message(f"#> Reading QAs from {f.name} ..") | |
for line in file_tqdm(f): | |
example = ujson.loads(line) | |
QID2pids[example['qid']] = example['support_pids'] | |
with open(ranking_path) as f: | |
print_message(f"#> Reading ranked lists from {f.name} ..") | |
with open(output_path, 'w') as g: | |
for line in file_tqdm(f): | |
qid, pid, *other = line.strip().split('\t') | |
qid, pid = map(int, [qid, pid]) | |
label = int(pid in QID2pids[qid]) | |
line_ = [qid, pid, *other, label] | |
line_ = '\t'.join(map(str, line_)) + '\n' | |
g.write(line_) | |
print_message(g.name) | |
print_message("#> Done!") | |
return g.name | |