Spaces:
Running
Running
| from rouge_score import rouge_scorer | |
| from bert_score import score as bert_score | |
| def evaluate(predictions, references): | |
| scorer = rouge_scorer.RougeScorer( | |
| ['rouge1', 'rouge2', 'rougeL'], use_stemmer=True | |
| ) | |
| r = {'rouge1': [], 'rouge2': [], 'rougeL': []} | |
| for p, ref in zip(predictions, references): | |
| s = scorer.score(ref, p) | |
| for k in r: | |
| r[k].append(s[k].fmeasure) | |
| n = len(predictions) | |
| _, _, F1 = bert_score(predictions, references, lang='en') | |
| return { | |
| 'rouge1': round(sum(r['rouge1'])/n, 4), | |
| 'rouge2': round(sum(r['rouge2'])/n, 4), | |
| 'rougeL': round(sum(r['rougeL'])/n, 4), | |
| 'bertscore_f1': round(F1.mean().item(), 4), | |
| } | |