Métricas de evaluación para la generación de texto

Deep Learning para texto con PyTorch

Shubham Jain

Instructor

Evaluar la generación de texto

"- Las tareas de generación de texto crean texto similar al humano

  • Las métricas estándar de precisión, como la exactitud y la F1, no son suficientes para estas tareas
  • Necesitamos métricas que evalúen la calidad del texto generado
  • BLEU y ROUGE{{4}}"

"Dalle Chatbot para generación de texto{{1}}"

Deep Learning para texto con PyTorch

BLEU (Evaluación Bilingüe Automática)

"- Compara el texto generado y el texto de referencia

  • Comprueba la aparición de n-gramas
  • En la frase \"The cat is on the mat\" {{3}} - 1-gramas (uni-grama): [the, cat, is, on, the, mat] {{4}} - 2-gramas (bi-grama): [\"the cat\", \"cat is\", \"is on\", \"on the\" y \"the mat\"] {{5}} - y así sucesivamente para los n-gramas {{5}} - Una coincidencia perfecta: Puntuación de 1,0 {{6}} - 0 significa que no hay coincidencia {{7}}"
Deep Learning para texto con PyTorch

Calcular la puntuación BLEU con 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 para texto con PyTorch

ROUGE (Subrogado Orientado al Recall para la Evaluación de Resúmenes)

"- Compara un texto generado con un texto de referencia de dos maneras

  • ROUGE-N: Considera los n-gramas superpuestos (N=1 para unigramas, 2 para bigramas, etc.) en ambos textos
  • ROUGE-L: Analiza la subsecuencia común más larga (LCS) entre los textos
  • Métricas ROUGE: {{4}} - Medida F: Media armónica de precisión y exhaustividad {{4}} - Precisión: Coincidencias de n-gramas en el texto generado dentro del texto de referencia {{5}} - Recall: Coincidencias de n-gramas en el texto de referencia dentro del texto generado {{6}}: los prefijos 'rouge1', 'rouge2' y 'rougeL' se refieren respectivamente a 1-grama, 2-grama o LCS{{7}}"
Deep Learning para texto con PyTorch

Calcular la puntuación ROUGE con PyTorch

from torchmetrics.text import  ROUGEScore

generated_text='Hola, ¿cómo estás?' real_text= "Hola, ¿cómo estás?"
rouge = ROUGEScore()
rouge_score = rouge([generated_text], [[real_text]]) print("Puntuación ROUGE:", rouge_score)
Deep Learning para texto con PyTorch

"Puntuación ROUGE: salida"

"`out Puntuación 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 para texto con PyTorch

Consideraciones y limitaciones

"- Evalúa la presencia de palabras, no la comprensión semántica

  • Sensible a la longitud del texto generado
  • La calidad del texto de referencia afecta a las puntuaciones {{3}}"
Deep Learning para texto con PyTorch

Es hora de la práctica.

Deep Learning para texto con PyTorch

Preparing Video For Download...