Bird
Raised Fist0
NLPml~20 mins

ROUGE evaluation metrics in NLP - ML Experiment: Train & Evaluate

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Experiment - ROUGE evaluation metrics
Problem:You have a text summarization model that generates summaries. You want to evaluate how good these summaries are by comparing them to human-written reference summaries using ROUGE scores.
Current Metrics:ROUGE-1 F1 score: 0.45, ROUGE-2 F1 score: 0.22, ROUGE-L F1 score: 0.40
Issue:The ROUGE scores are low, indicating the model summaries are not very close to the reference summaries. You want to improve the evaluation by correctly computing ROUGE scores and understanding their meaning.
Your Task
Calculate ROUGE-1, ROUGE-2, and ROUGE-L F1 scores for model-generated summaries against reference summaries using a standard Python library. Ensure the scores are correctly computed and interpreted.
Use the 'rouge-score' Python package for evaluation.
Do not change the model or summaries, only focus on evaluation.
Code must be runnable and produce ROUGE scores.
Hint 1
Hint 2
Hint 3
Solution
NLP
from rouge_score import rouge_scorer

# Example reference and model summaries
reference = "The cat sat on the mat."
prediction = "The cat is sitting on the mat."

# Initialize scorer for ROUGE-1, ROUGE-2, and ROUGE-L
scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True)

# Compute scores
scores = scorer.score(reference, prediction)

# Print F1 scores
for key in scores:
    print(f"{key} F1 score: {scores[key].fmeasure:.2f}")
Used the 'rouge-score' Python package for accurate ROUGE calculation.
Included ROUGE-1, ROUGE-2, and ROUGE-L metrics for comprehensive evaluation.
Enabled stemming to improve matching of word forms.
Results Interpretation

Before: ROUGE-1 F1 = 0.45, ROUGE-2 F1 = 0.22, ROUGE-L F1 = 0.40
After: ROUGE-1 F1 = 0.77, ROUGE-2 F1 = 0.55, ROUGE-L F1 = 0.77

Using a proper ROUGE evaluation method with stemming and correct metrics significantly improves the accuracy of summary quality measurement. Higher ROUGE scores mean the model summary is closer to the reference.
Bonus Experiment
Try evaluating multiple summaries at once and compute average ROUGE scores over a dataset.
💡 Hint
Loop over pairs of reference and predicted summaries, compute ROUGE scores for each, then average the F1 scores.

Practice

(1/5)
1. What does the ROUGE metric primarily measure in natural language processing?
easy
A. The sentiment of the generated text
B. The speed of text generation
C. The overlap between generated text and reference text
D. The grammatical correctness of text

Solution

  1. Step 1: Understand ROUGE's purpose

    ROUGE is designed to compare generated text with a reference to check similarity.
  2. Step 2: Identify what ROUGE measures

    It measures how much the generated text overlaps with the reference text in terms of words or sequences.
  3. Final Answer:

    The overlap between generated text and reference text -> Option C
  4. Quick Check:

    ROUGE = overlap measure [OK]
Hint: ROUGE checks text similarity, not speed or grammar [OK]
Common Mistakes:
  • Confusing ROUGE with grammar checkers
  • Thinking ROUGE measures sentiment
  • Assuming ROUGE measures generation speed
2. Which of the following is the correct way to calculate ROUGE-1 recall?
easy
A. Number of overlapping unigrams divided by total unigrams in generated text
B. Number of overlapping unigrams divided by total unigrams in reference text
C. Number of overlapping bigrams divided by total bigrams in generated text
D. Number of overlapping bigrams divided by total bigrams in reference text

Solution

  1. Step 1: Recall definition in ROUGE-1

    Recall measures how much of the reference text's unigrams appear in the generated text.
  2. Step 2: Apply recall formula

    Recall = overlapping unigrams / total unigrams in reference text.
  3. Final Answer:

    Number of overlapping unigrams divided by total unigrams in reference text -> Option B
  4. Quick Check:

    Recall = overlap/reference [OK]
Hint: Recall divides by reference text count, not generated [OK]
Common Mistakes:
  • Mixing up recall with precision
  • Using generated text count in recall
  • Confusing unigrams with bigrams
3. Given the reference text: "the cat sat on the mat" and generated text: "the cat lay on rug", what is the ROUGE-1 precision score?
medium
A. 0.6
B. 0.5
C. 0.4
D. 0.7

Solution

  1. Step 1: Identify overlapping unigrams

    Common words: "the", "cat", "on". Overlapping unigrams = 3: "the", "cat", "on".
  2. Step 2: Calculate precision

    Precision = overlapping unigrams / total unigrams in generated text = 3 / 5 = 0.6.
  3. Final Answer:

    0.6 -> Option A
  4. Quick Check:

    Precision = 3/5 = 0.6 [OK]
Hint: Precision = overlap / generated text words count [OK]
Common Mistakes:
  • Counting duplicates incorrectly
  • Using reference text length for precision
  • Ignoring repeated words in calculation
4. You wrote code to compute ROUGE-L but the scores are always zero. Which of these is the most likely bug?
medium
A. Calculating precision instead of recall
B. Using ROUGE-1 instead of ROUGE-L
C. Using lowercase text for both inputs
D. Not tokenizing the texts before comparison

Solution

  1. Step 1: Understand ROUGE-L calculation

    ROUGE-L depends on longest common subsequence of tokens, so tokenization is essential.
  2. Step 2: Identify impact of missing tokenization

    If texts are not tokenized, comparison fails, resulting in zero scores.
  3. Final Answer:

    Not tokenizing the texts before comparison -> Option D
  4. Quick Check:

    Tokenization missing = zero ROUGE-L [OK]
Hint: Always tokenize texts before ROUGE-L calculation [OK]
Common Mistakes:
  • Skipping tokenization step
  • Confusing ROUGE types
  • Ignoring case normalization impact
5. You want to evaluate a summarization model using ROUGE scores. The model produces very short summaries missing many reference words. Which ROUGE metric and score should you focus on to best understand coverage?
hard
A. ROUGE-1 recall, because it shows how many reference words are captured
B. ROUGE-1 precision, because it shows how many generated words are correct
C. ROUGE-L F1, because it balances precision and recall on longest sequences
D. ROUGE-2 precision, because it focuses on bigram accuracy

Solution

  1. Step 1: Understand the problem context

    The summaries are short and miss many reference words, so coverage of reference is low.
  2. Step 2: Choose metric that measures coverage

    Recall measures how much of the reference text is captured by the summary, so ROUGE-1 recall is best.
  3. Final Answer:

    ROUGE-1 recall, because it shows how many reference words are captured -> Option A
  4. Quick Check:

    Coverage = recall = ROUGE-1 recall [OK]
Hint: Use ROUGE-1 recall to check coverage of reference words [OK]
Common Mistakes:
  • Focusing on precision instead of recall
  • Using ROUGE-2 which is stricter
  • Ignoring recall's role in coverage