Metin üretimi için değerlendirme metrikleri

PyTorch ile Metin için Deep Learning

Shubham Jain

Instructor

Metin üretimini değerlendirme

  • Metin üretimi görevleri insan benzeri metin oluşturur
  • Doğruluk, F1 gibi standart metrikler bu görevler için yetersizdir
  • Üretilen metnin kalitesini ölçen metriklere ihtiyaç vardır
  • BLEU ve ROUGE

Metin üretimi için Dalle Sohbet Botu

PyTorch ile Metin için Deep Learning

BLEU (Bilingual Evaluation Understudy)

  • Üretilen metni referansla karşılaştırır
  • n-gram oluşumlarını kontrol eder
  • "The cat is on the mat" cümlesinde
    • 1-gram (uni-gram): [the, cat, is, on, the, mat]
    • 2-gram (bi-gram): ["the cat", "cat is", "is on", "on the", "the mat"]
    • n-gramlar için benzer şekilde
  • Mükemmel eşleşme: Skor 1.0
    • 0: hiç eşleşme yok
PyTorch ile Metin için Deep Learning

PyTorch ile BLEU skoru hesaplama

from torchmetrics.text import BLEUScore

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())
BLEU Score: tensor(0.7598)
PyTorch ile Metin için Deep Learning

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

  • Üretilen metni referansla iki şekilde karşılaştırır
  • ROUGE-N: Her iki metindeki örtüşen n-gramları (N=1 unigram, 2 bigram, vb.) dikkate alır
  • ROUGE-L: Metinler arasındaki en uzun ortak alt diziyi (LCS) inceler
  • ROUGE metrikleri:
    • F-measure: Kesinlik ve duyarlılığın harmonik ortalaması
    • Kesinlik (precision): Üretilen metindeki n-gramların referansta eşleşmesi
    • Duyarlılık (recall): Referanstaki n-gramların üretilen metinde eşleşmesi
  • 'rouge1', 'rouge2' ve 'rougeL' önekleri sırasıyla 1-gram, 2-gram ve LCS’i ifade eder
PyTorch ile Metin için Deep Learning

PyTorch ile ROUGE skoru hesaplama

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)
PyTorch ile Metin için Deep Learning

ROUGE skoru: çıktı

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

'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.),
'rougeLsum_fmeasure': tensor(0.8889), 'rougeLsum_precision': tensor(0.8000), 'rougeLsum_recall': tensor(1.)}
PyTorch ile Metin için Deep Learning

Dikkat edilecekler ve sınırlamalar

  • Anlamsal anlayış değil, kelime varlığını ölçer
  • Üretilen metnin uzunluğuna duyarlıdır
  • Referans metnin kalitesi skoru etkiler
PyTorch ile Metin için Deep Learning

Hadi pratik yapalım!

PyTorch ile Metin için Deep Learning

Preparing Video For Download...