Chỉ số đánh giá cho sinh văn bản

Deep Learning cho Văn bản với PyTorch

Shubham Jain

Instructor

Đánh giá sinh văn bản

  • Nhiệm vụ sinh văn bản tạo văn bản giống con người
  • Các chỉ số như accuracy, F1 không phù hợp
  • Cần chỉ số đánh giá chất lượng văn bản sinh
  • BLEU và ROUGE

Chatbot Dalle cho sinh văn bản

Deep Learning cho Văn bản với PyTorch

BLEU (Bilingual Evaluation Understudy)

  • So sánh văn bản sinh với văn bản tham chiếu
  • Kiểm tra sự xuất hiện của n-gram
  • Trong câu "The cat is on the mat"
    • 1-gram (uni-gram): [the ,cat, is, on, the, mat]
    • 2-gram (bi-gram): ["the cat", "cat is", "is on", "on the", và "the mat"]
    • tương tự cho n-gram khác
  • Khớp hoàn hảo: Điểm 1.0
    • 0 nghĩa là không khớp
Deep Learning cho Văn bản với PyTorch

Tính BLEU với PyTorch

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)
Deep Learning cho Văn bản với PyTorch

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

  • So sánh văn bản sinh với tham chiếu theo hai cách
  • ROUGE-N: Xét n-gram trùng nhau (N=1 là unigram, 2 là bigram, ...) ở cả hai văn bản
  • ROUGE-L: Xét dãy con chung dài nhất (LCS) giữa hai văn bản
  • Chỉ số ROUGE:
    • F-measure: Trung bình điều hòa của precision và recall
    • Precision: n-gram trong văn bản sinh trùng trong tham chiếu
    • Recall: n-gram trong tham chiếu trùng trong văn bản sinh
  • Tiền tố 'rouge1', 'rouge2', 'rougeL' tương ứng 1-gram, 2-gram, hoặc LCS
Deep Learning cho Văn bản với PyTorch

Tính ROUGE với 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 cho Văn bản với PyTorch

ROUGE: kết quả đầu ra

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.)}
Deep Learning cho Văn bản với PyTorch

Lưu ý và hạn chế

  • Đánh giá sự xuất hiện từ, không hiểu nghĩa
  • Nhạy với độ dài văn bản sinh
  • Chất lượng văn bản tham chiếu ảnh hưởng điểm số
Deep Learning cho Văn bản với PyTorch

Ayo berlatih!

Deep Learning cho Văn bản với PyTorch

Preparing Video For Download...