Spaces:
Build error
Build error
import argparse | |
import json | |
import spacy | |
from tqdm import tqdm | |
nlp = spacy.load("en_core_web_sm") | |
def coverage_score(preds, concept_sets): | |
covs = [] | |
missings = [] | |
for p, cs in tqdm(zip(preds, concept_sets), total=len(preds)): | |
cs = set(cs) | |
lemmas = set() | |
for token in nlp(p): | |
lemmas.add(token.lemma_) | |
cov = len(lemmas & cs) / len(cs) | |
covs.append(cov) | |
missings.append(cs - lemmas) | |
return sum(covs) / len(covs), missings | |
def scoring(preds, concept_sets): | |
# Scores, Coverage, Coverage_POS = pivot_score.score(pred, ref, concept, ori_concepts, scoring="steiner_tree", parser="spacy", verbose=False) | |
coverage, missing_tokens = coverage_score(preds, concept_sets) | |
# print(f"System level Score: {sum(Scores)/len(Scores)*100:.2f}") | |
print(f"System level Coverage: {coverage*100:.2f}") | |
# print(f"System level Coverage_POS: {sum(Coverage_POS)/len(Scores)*100:.2f}") | |
return coverage, missing_tokens | |
if __name__ == "__main__": | |
parser = argparse.ArgumentParser() | |
parser.add_argument("--path", default="", type=str) | |
args = parser.parse_args() | |
# nlp.pipeline = [("tagger", nlp.tagger), ("parser", nlp.parser)] | |
preds_final = [] | |
preds_first = [] | |
concept_sets = [] | |
with open(args.path) as f: | |
for line in f: | |
line = json.loads(line) | |
preds_final.append(line["response"]) | |
if line["logs"][0]["module"] == "Role Assigner": | |
preds_first.append(line["logs"][1]["content"]) | |
else: | |
preds_first.append(line["logs"][0]["content"]) | |
concept_sets.append(line["input"]) | |
scoring(preds_final, concept_sets) | |
scoring(preds_first, concept_sets) | |