ROUGE Score
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) est une famille de métriques qui évalue la qualité d’un résumé automatique en mesurant le chevauchement de n-grammes et de sous-séquences entre le texte généré et une ou plusieurs références humaines, en se concentrant sur le rappel.
Développée par Chin-Yew Lin en 2004, ROUGE est devenue la métrique standard pour l’évaluation du résumé automatique en NLP. Là où BLEU se concentre sur la précision (ce que le candidat dit est-il correct ?), ROUGE se concentre sur le rappel (les informations clés de la référence sont-elles couvertes ?). Cette orientation est logique pour le résumé : un bon résumé doit capturer les points essentiels du texte source, même s’il les reformule.
- Nom complet
- Recall-Oriented Understudy for Gisting Evaluation
- Type
- Famille de métriques d’évaluation automatique
- Auteur
- Chin-Yew Lin (2004)
- Variantes
- ROUGE-N (n-grammes), ROUGE-L (plus longue sous-séquence commune), ROUGE-S (skip-bigrams)
- Plage
- 0 à 1 (rappel, précision, F1). Plus haut = meilleur.
- Usage principal
- Résumé automatique, question-answering, évaluation de génération de texte
- Frameworks
rouge-score(Google), Hugging Face Evaluate, NLTK- Verdict
- Incontournable pour le résumé, mais à compléter avec BERTScore pour capturer la sémantique.
L’intuition : combien d’informations clés sont couvertes ?
Imaginez que vous évaluez un résumé d’article de presse. La question fondamentale est : le résumé couvre-t-il les informations importantes de l’article original ? ROUGE répond à cette question en vérifiant combien de mots et de groupes de mots de la référence humaine apparaissent dans le résumé automatique.
Référence : "Le président a annoncé un plan économique majeur lors du sommet."
Candidat A : "Le président a annoncé un plan économique au sommet."
Candidat B : "Un plan a été annoncé."
Candidat C : "Le dirigeant a présenté une stratégie économique importante lors de la réunion."
Le candidat A a un ROUGE élevé : presque tous les mots de la référence sont présents. Le candidat B a un ROUGE modéré : il capture l’idée, mais beaucoup d’informations manquent (« président », « majeur », « sommet »). Le candidat C a un ROUGE faible malgré une bonne qualité : il utilise des synonymes (« dirigeant/président », « présenté/annoncé », « stratégie/plan ») que ROUGE ne reconnaît pas.
Les variantes de ROUGE
ROUGE-N : chevauchement de n-grammes
ROUGE-N mesure la proportion de n-grammes de la référence qui apparaissent dans le candidat. Les deux variantes les plus utilisées sont ROUGE-1 (unigrammes) et ROUGE-2 (bigrammes).
ROUGE-N Rappel = (n-grammes communs) / (n-grammes dans la référence)
ROUGE-N Précision = (n-grammes communs) / (n-grammes dans le candidat)
ROUGE-N F1 = 2 · (Précision · Rappel) / (Précision + Rappel)
ROUGE-1 (unigrammes) capture la couverture du vocabulaire : les mots clés de la référence sont-ils présents dans le candidat ? C’est la variante la plus utilisée car elle est robuste et corrèle bien avec les évaluations humaines.
ROUGE-2 (bigrammes) capture partiellement l’ordre des mots et la fluidité : les paires de mots consécutifs de la référence sont-elles préservées ? Plus strict que ROUGE-1, mais plus sensible aux reformulations.
Exemple de calcul ROUGE-1 et ROUGE-2
Référence : "Le chat dort sur le canapé" (6 mots)
Candidat : "Le chat est couché sur le canapé bleu" (8 mots)
# ROUGE-1 (unigrammes)
Unigrammes référence : {le, chat, dort, sur, le, canapé} → 5 uniques
Unigrammes candidat : {le, chat, est, couché, sur, le, canapé, bleu} → 7 uniques
Communs : {le, chat, sur, canapé} → 4
Rappel ROUGE-1 = 4/5 = 0.80 (80 % des mots de la référence sont couverts)
Précision ROUGE-1 = 4/7 = 0.57
F1 ROUGE-1 = 2 · (0.80 · 0.57) / (0.80 + 0.57) = 0.67
# ROUGE-2 (bigrammes)
Bigrammes référence : {"le chat", "chat dort", "dort sur", "sur le", "le canapé"} → 5
Bigrammes candidat : {"le chat", "chat est", "est couché", "couché sur",
"sur le", "le canapé", "canapé bleu"} → 7
Communs : {"le chat", "sur le", "le canapé"} → 3
Rappel ROUGE-2 = 3/5 = 0.60
Précision ROUGE-2 = 3/7 = 0.43
F1 ROUGE-2 = 2 · (0.60 · 0.43) / (0.60 + 0.43) = 0.50
ROUGE-L : Plus longue sous-séquence commune (LCS)
ROUGE-L utilise la Longest Common Subsequence (LCS) entre le candidat et la référence. La LCS est la plus longue séquence de mots qui apparaît dans le même ordre dans les deux textes, sans nécessairement être consécutifs.
Référence : "La police a tué le tireur"
Candidat : "La police tue le tireur"
LCS = "la police le tireur" (4 mots)
# "tue/tué" ne matchent pas (pas de stemming par défaut)
Rappel ROUGE-L = 4/6 = 0.67
Précision ROUGE-L = 4/5 = 0.80
F1 ROUGE-L = 0.73
ROUGE-L est plus flexible que ROUGE-N car elle ne nécessite pas de correspondance consécutive. Elle capture mieux la structure de la phrase que les unigrammes, tout en tolérant les insertions et suppressions de mots.
ROUGE-S : Skip-bigrams
ROUGE-S mesure les paires de mots qui apparaissent dans le même ordre, avec un nombre arbitraire de mots entre eux. C’est encore plus flexible que ROUGE-L.
Référence : "Le chat dort sur le canapé"
Skip-bigrams : (le, chat), (le, dort), (le, sur), ..., (sur, canapé), etc.
ROUGE-S est moins utilisée que ROUGE-1, ROUGE-2 et ROUGE-L, mais elle est utile quand les reformulations changent significativement l’ordre des mots tout en conservant les relations entre les concepts.
ROUGE vs BLEU : quelle différence fondamentale ?
| Aspect | ROUGE | BLEU |
|---|---|---|
| Focus principal | Rappel (couverture de la référence) | Précision (exactitude du candidat) |
| Question posée | « Combien de la référence est couvert ? » | « Combien du candidat est correct ? » |
| Tâche principale | Résumé automatique | Traduction automatique |
| Variantes | ROUGE-N, ROUGE-L, ROUGE-S | BLEU-1 à BLEU-4 |
| Brevity Penalty | Non (le rappel pénalise naturellement les textes trop courts) | Oui (pénalité explicite) |
| Rapporte aussi | Précision + F1 (en plus du rappel) | Uniquement le score combiné |
En résumé : BLEU pénalise les traductions qui ajoutent du contenu inutile (mauvaise précision). ROUGE pénalise les résumés qui omettent des informations clés (mauvais rappel). Les deux souffrent de la même limite : aucune compréhension sémantique.
Valeurs typiques et interprétation
Les scores ROUGE varient considérablement selon la tâche, le domaine et le type de résumé (extractif vs abstractif). Voici des ordres de grandeur sur des benchmarks de résumé de presse :
| Métrique | Modèles state-of-the-art | Modèles moyens | Baseline (lead-3) |
|---|---|---|---|
| ROUGE-1 F1 | 44 – 48 % | 35 – 42 % | ~40 % |
| ROUGE-2 F1 | 20 – 28 % | 14 – 19 % | ~18 % |
| ROUGE-L F1 | 40 – 49 % | 32 – 38 % | ~36 % |
Implémentation en Python
Avec rouge-score (Google Research)
from rouge_score import rouge_scorer
scorer = rouge_scorer.RougeScorer(
['rouge1', 'rouge2', 'rougeL'],
use_stemmer=True # applique le stemming pour réduire les faux négatifs
)
reference = "Le président a annoncé un plan économique majeur lors du sommet."
candidate = "Le président a présenté un plan économique au sommet."
scores = scorer.score(reference, candidate)
for metric, score in scores.items():
print(f"{metric}:")
print(f" Précision : {score.precision:.3f}")
print(f" Rappel : {score.recall:.3f}")
print(f" F1 : {score.fmeasure:.3f}")
Avec Hugging Face Evaluate
import evaluate
rouge = evaluate.load("rouge")
results = rouge.compute(
predictions=["Le président a présenté un plan économique au sommet."],
references=["Le président a annoncé un plan économique majeur lors du sommet."]
)
print(results)
# {'rouge1': 0.xxx, 'rouge2': 0.xxx, 'rougeL': 0.xxx, 'rougeLsum': 0.xxx}
use_stemmer=True dans rouge_scorer. Pour le français, le stemming est moins performant qu’en anglais, mais reste bénéfique.
Forces et limites de ROUGE
Forces
Rapide et reproductible. Calculable en millisecondes, même sur de grands corpus. Permet des comparaisons standardisées entre études.
Bonne corrélation au niveau corpus. ROUGE-1 et ROUGE-L atteignent des corrélations de Kendall Tau-b de 0.6 à 0.8 avec les évaluations humaines sur les benchmarks de résumé de presse.
Orientation rappel pertinente pour le résumé. La question « les informations clés sont-elles couvertes ? » est la bonne question pour évaluer un résumé.
Multi-variantes. ROUGE-1 (vocabulaire), ROUGE-2 (fluidité), ROUGE-L (structure) capturent des aspects complémentaires de la qualité.
Indépendance linguistique. Fonctionne pour toute langue sans adaptation (même si le stemming nécessite un stemmer spécifique).
Limites
Aucune compréhension sémantique. Comme BLEU, ROUGE compare des chaînes de caractères. « Chat » et « félin » ne matchent pas. Les résumés abstractifs (qui reformulent) sont systématiquement pénalisés par rapport aux résumés extractifs (qui copient-collent).
Biais en faveur du résumé extractif. Un résumé qui copie des phrases entières de la source obtient mécaniquement un meilleur ROUGE qu’un résumé abstractif de même qualité. C’est problématique car les LLMs modernes produisent des résumés abstractifs de haute qualité que ROUGE sous-évalue.
Ne capture pas la cohérence. ROUGE ne vérifie pas si le résumé est cohérent, lisible, ou logiquement structuré. Un ensemble de phrases déconnectées contenant les bons mots-clés obtiendra un bon score.
Ne détecte pas les erreurs factuelles. Un résumé qui déforme les faits (« le président a rejeté le plan » au lieu de « annoncé ») peut obtenir un bon ROUGE si les autres mots matchent.
Fragile au niveau de la phrase. Comme BLEU, ROUGE est fiable au niveau du corpus mais bruité au niveau d’une phrase individuelle.
ROUGE au-delà du résumé
ROUGE est utilisé pour d’autres tâches de génération où le rappel est important :
Question-answering : évaluer si la réponse générée contient les informations clés de la réponse de référence.
Génération de rapports : vérifier la couverture des points clés dans des rapports automatiques (médicaux, financiers).
Évaluation de RAG : dans les systèmes de Retrieval-Augmented Generation, ROUGE peut mesurer si les passages récupérés sont bien intégrés dans la réponse finale.
Évaluation de LLMs : ROUGE-L est parfois utilisé comme composante dans les benchmarks de LLMs, même si des métriques plus sophistiquées (BERTScore, évaluations humaines) sont préférées.
Métriques complémentaires
| Métrique | Principe | Avantage sur ROUGE |
|---|---|---|
| BERTScore | Similarité cosinus d’embeddings contextuels | Capture la sémantique (synonymes, paraphrases) |
| METEOR | Alignement mot-à-mot avec synonymes et stemming | Reconnaît les synonymes et les variantes morphologiques |
| Factuality metrics | Vérification des faits via NLI ou QA | Détecte les erreurs factuelles dans le résumé |
| LLM-as-Judge | Un LLM évalue la qualité du résumé | Capture la cohérence, la lisibilité, la pertinence |
Recommandation : rapportez ROUGE-1, ROUGE-2, ROUGE-L (pour la comparabilité), et ajoutez BERTScore pour capturer la similarité sémantique. Pour les résumés en production, une évaluation humaine ciblée reste le gold standard.
Bonnes pratiques
1. Rapportez les 3 métriques principales. ROUGE-1 (couverture vocabulaire), ROUGE-2 (fluidité) et ROUGE-L (structure) ensemble. Ne rapportez pas une seule métrique isolée.
2. Précisez rappel, précision ou F1. ROUGE produit trois valeurs. Le rappel est le plus pertinent pour le résumé, mais le F1 est souvent rapporté car il équilibre concision et couverture.
3. Activez le stemming. Surtout pour les langues morphologiquement riches (français, allemand, espagnol). Le stemming réduit les faux négatifs dus aux variations de conjugaison.
4. Comparez à la baseline lead-3. Si votre modèle ne fait pas significativement mieux que les 3 premières phrases du texte source, il n’apporte pas de valeur ajoutée.
5. Ne comparez que dans des conditions identiques. Même jeu de test, même nombre de références, même prétraitement (tokenisation, casse, ponctuation). De petites différences de prétraitement peuvent changer le score de plusieurs points.
Questions fréquentes sur ROUGE
Quelle est la différence entre ROUGE-1, ROUGE-2 et ROUGE-L ?
ROUGE-1 compare les unigrammes (mots individuels) entre le candidat et la référence : c’est la couverture du vocabulaire. ROUGE-2 compare les bigrammes (paires de mots consécutifs) : cela capture partiellement l’ordre et la fluidité. ROUGE-L utilise la plus longue sous-séquence commune (LCS), qui mesure la correspondance structurelle sans exiger de mots consécutifs. En pratique, rapportez les trois. ROUGE-1 est le plus utilisé pour les comparaisons rapides, ROUGE-2 pour la fluidité, ROUGE-L pour la structure.
Pourquoi ROUGE se concentre-t-il sur le rappel plutôt que la précision ?
Pour le résumé, la question clé est « les informations importantes sont-elles couvertes ? », pas « chaque mot du résumé est-il dans la référence ? ». Un résumé qui couvre 90 % des informations clés avec quelques mots supplémentaires est meilleur qu’un résumé qui ne couvre que 30 % mais ne contient que des mots de la référence. Le rappel mesure la couverture, ce qui correspond à cette priorité. ROUGE rapporte aussi la précision et le F1 pour les cas où la concision est importante.
ROUGE est-il adapté aux résumés abstractifs (LLMs) ?
Partiellement. Les LLMs modernes produisent des résumés abstractifs de haute qualité qui reformulent le contenu. ROUGE, basé sur le chevauchement lexical, pénalise ces reformulations même quand elles sont excellentes. Un résumé qui utilise « augmentation » au lieu de « hausse » perd des points. Pour les systèmes abstractifs, complétez ROUGE avec BERTScore (qui capture la similarité sémantique) et des évaluations humaines. ROUGE reste utile comme indicateur de base et pour détecter les régressions évidentes.
Qu’est-ce qu’un « bon » score ROUGE ?
Cela dépend fortement du benchmark et du type de résumé. Sur CNN/DailyMail (résumé de presse en anglais), les modèles state-of-the-art atteignent ROUGE-1 F1 de 44-48 %, ROUGE-2 de 20-28 %, et ROUGE-L de 40-49 %. La baseline lead-3 (3 premières phrases) obtient déjà ROUGE-1 ≈ 40 %. Un « bon » score est donc relatif : il doit dépasser significativement la baseline pertinente pour votre tâche et votre domaine.
Comment calculer ROUGE en français ?
Les bibliothèques rouge-score et Hugging Face Evaluate fonctionnent pour le français sans modification. Activez le stemming avec use_stemmer=True (le stemmer de Snowball supporte le français). La tokenisation par défaut (split sur les espaces + ponctuation) fonctionne raisonnablement. Pour des résultats optimaux, vérifiez que la casse est normalisée (tout en minuscules) et que la ponctuation est traitée de façon cohérente entre candidats et références.