Spaces:
Runtime error
Runtime 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) | |