Calculate BERTScore for semantic similarity.
(prediction: str, reference: str)
| 66 | return scores |
| 67 | |
| 68 | def calculate_bert_scores(prediction: str, reference: str) -> Dict[str, float]: |
| 69 | """Calculate BERTScore for semantic similarity.""" |
| 70 | try: |
| 71 | P, R, F1 = bert_score([prediction], [reference], lang='en', verbose=False) |
| 72 | return { |
| 73 | 'bert_precision': P.item(), |
| 74 | 'bert_recall': R.item(), |
| 75 | 'bert_f1': F1.item() |
| 76 | } |
| 77 | except Exception as e: |
| 78 | print(f"Error calculating BERTScore: {e}") |
| 79 | return { |
| 80 | 'bert_precision': 0.0, |
| 81 | 'bert_recall': 0.0, |
| 82 | 'bert_f1': 0.0 |
| 83 | } |
| 84 | |
| 85 | def calculate_meteor_score(prediction: str, reference: str) -> float: |
| 86 | """Calculate METEOR score for the prediction.""" |