Calculate ROUGE scores for prediction against reference.
(prediction: str, reference: str)
| 38 | return text.lower().replace('.', ' ').replace(',', ' ').replace('!', ' ').replace('?', ' ').split() |
| 39 | |
| 40 | def calculate_rouge_scores(prediction: str, reference: str) -> Dict[str, float]: |
| 41 | """Calculate ROUGE scores for prediction against reference.""" |
| 42 | scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True) |
| 43 | scores = scorer.score(reference, prediction) |
| 44 | return { |
| 45 | 'rouge1_f': scores['rouge1'].fmeasure, |
| 46 | 'rouge2_f': scores['rouge2'].fmeasure, |
| 47 | 'rougeL_f': scores['rougeL'].fmeasure |
| 48 | } |
| 49 | |
| 50 | def calculate_bleu_scores(prediction: str, reference: str) -> Dict[str, float]: |
| 51 | """Calculate BLEU scores with different n-gram settings.""" |
no test coverage detected