Bewertungsmetriken für die Textgenerierung

Deep Learning für Text mit PyTorch

Shubham Jain

Instructor

Bewertung der Textgenerierung

"- Textgenerierungsaufgaben erzeugen menschenähnlichen Text

  • Standardgenauigkeitsmetriken wie Genauigkeit, F1 reichen für diese Aufgaben nicht aus
  • Wir benötigen Metriken, die die Qualität des generierten Textes bewerten
  • BLEU und ROUGE{{4}}"

"Dalle-Chatbot zur Textgenerierung{{1}}"

Deep Learning für Text mit PyTorch

BLEU (Bilingual Evaluation Understudy)

"- Vergleicht den generierten Text mit dem Referenztext

  • Prüft das Vorkommen von N-Grammen
  • Im Satz \"The cat is on the mat\" {{3}} - 1-Gramme (Unigramme): [the, cat, is, on, the, mat] {{4}} - 2-Gramme (Bigramme): [\"the cat\", \"cat is\", \"is on\", \"on the\" und \"the mat\"] {{5}} - und so weiter für N-Gramme {{5}} - Eine perfekte Übereinstimmung: Wert von 1,0 {{6}} – 0 bedeutet keine Übereinstimmung {{7}}"
Deep Learning für Text mit PyTorch

Berechnung des BLEU-Scores mit 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 für Text mit PyTorch

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

"- Vergleicht einen generierten Text auf zwei Arten mit einem Referenztext

  • ROUGE-N: Berücksichtigt überlappende n-Gramme (N=1 für Unigramme, 2 für Bigramme usw.) in beiden Texten
  • ROUGE-L: Betrachtet die längste gemeinsame Teilsequenz (LCS) zwischen den Texten
  • ROUGE-Metriken: {{4}} - F-Maß: Harmonisches Mittel von Präzision und Recall {{4}} – Präzision: Übereinstimmungen von N-Grammen im generierten Text innerhalb des Referenztexts {{5}} – Recall: Übereinstimmungen von N-Grammen im Referenztext innerhalb des generierten Textes {{6}} – Die Präfixe 'rouge1', 'rouge2' und 'rougeL' beziehen sich jeweils auf 1-Gramm, 2-Gramm bzw. LCS{{7}}"
Deep Learning für Text mit PyTorch

Berechnung des ROUGE-Scores mit PyTorch

from torchmetrics.text import  ROUGEScore

generated_text='Hello, how are you doing?' real_text= "Hello, how are you?"
rouge = ROUGEScore()
rouge_score = rouge([generated_text], [[real_text]]) print("ROUGE Score:", rouge_score)
Deep Learning für Text mit PyTorch

"ROUGE-Score: Ausgabe"

"`out ROUGE-Score: {'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 für Text mit PyTorch

Überlegungen und Einschränkungen

"- Bewertet das Vorhandensein von Wörtern, nicht das semantische Verständnis

  • Empfindlich gegenüber der Länge des generierten Textes
  • Die Qualität des Referenztexts beeinflusst die Bewertungen {{3}}"
Deep Learning für Text mit PyTorch

Nun kannst du wieder etwas üben!

Deep Learning für Text mit PyTorch

Preparing Video For Download...