Mesures d’évaluation pour la génération de texte

Deep Learning pour le texte avec PyTorch

Shubham Jain

Instructor

Évaluer la génération de texte

"- Les tâches de génération de texte produisent un texte semblable à celui des humains

  • Les métriques d’exactitude standard telles que l’exactitude, le F1 sont insuffisantes pour ces tâches
  • Nous avons besoin de métriques qui évaluent la qualité du texte généré
  • BLEU et ROUGE{{4}}"

"Chatbot Dalle pour la génération de texte{{1}}"

Deep Learning pour le texte avec PyTorch

BLEU (Bilingual Evaluation Understudy)

"- Compare le texte généré et le texte de référence

  • Vérifie la présence de n-grammes
  • Dans la phrase \"Le chat est sur le tapis\" {{3}} - 1-grammes (unigramme) : [le, chat, est, sur, le, tapis] {{4}} - 2-grammes (bigramme) : [\"le chat\", \"chat est\", \"est sur\", \"sur le\", et \"le tapis\"] {{5}} - et ainsi de suite pour les n-grammes {{5}} - Une correspondance parfaite : Score de 1,0 {{6}} - 0 signifie aucune correspondance {{7}}"
Deep Learning pour le texte avec PyTorch

Calcul du score BLEU avec PyTorch

"`python from torchmetrics.text import BLEUScore


----CODE_GLUE----
```python

generated_text = ['the cat is on the mat']
real_text = [['there is a cat on the mat', 'a cat is on the mat']]


bleu = BLEUScore() bleu_metric = bleu(generated_text, real_text) print(\"BLEU Score: \", bleu_metric.item())

out BLEU Score: tensor(0.7598){{4}}"

Deep Learning pour le texte avec PyTorch

ROUGE (Sous-étudiant axé sur le rappel pour l’évaluation du résumé)

"- Compare un texte généré à un texte de référence de deux manières

  • ROUGE-N : Prend en compte les n-grammes qui se chevauchent (N=1 pour les unigrammes, 2 pour les bigrammes, etc.) dans les deux textes
  • ROUGE-L : Examine la plus longue sous-séquence commune (LCS) entre les textes
  • Métriques ROUGE : {{4}} - F-mesure : Moyenne harmonique de la précision et du rappel {{4}} - Précision : Correspondances des n-grammes dans le texte généré au sein du texte de référence {{5}} - Rappel : Correspondances des n-grammes dans le texte de référence au sein du texte généré {{6}} - les préfixes 'rouge1', 'rouge2' et 'rougeL' font respectivement référence aux 1-grammes, 2-grammes ou LCS{{7}}"
Deep Learning pour le texte avec PyTorch

Calcul du score ROUGE avec PyTorch

from torchmetrics.text import  ROUGEScore

generated_text='Bonjour, comment vas-tu ?' real_text= "Bonjour, comment vas-tu ?"
rouge = ROUGEScore()
rouge_score = rouge([generated_text], [[real_text]]) print("Score ROUGE :", rouge_score)
Deep Learning pour le texte avec PyTorch

"Score ROUGE : sortie"

"`out Score ROUGE : {'rouge1_fmeasure': tensor(0.8889), 'rouge1_precision': tensor(0.8000), 'rouge1_recall': tensor(1.),


----CODE_GLUE----
```out
              'rouge2_fmeasure': tensor(0.8571),
              'rouge2_precision': tensor(0.7500),
              'rouge2_recall': tensor(1.),

'rougeL_fmeasure': tensor(0.8889), 'rougeL_precision': tensor(0.8000), 'rougeL_recall': tensor(1.),

----CODE_GLUE---- out 'rougeLsum_fmeasure': tensor(0.8889), 'rougeLsum_precision': tensor(0.8000), 'rougeLsum_recall': tensor(1.)}{{4}}"

Deep Learning pour le texte avec PyTorch

Considérations et limites

"- Évalue la présence des mots, pas la compréhension sémantique

  • Sensible à la longueur du texte généré
  • La qualité du texte de référence affecte les scores {{3}}"
Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...