2017-09-06 26 views
8

Có một thực hiện điểm BLEU bằng Python NLTK, nltk.translate.bleu_score.corpus_bleuSự khác nhau giữa mteval-v13a.pl và NLTK BLEU là gì?

Nhưng tôi không chắc chắn nếu nó là giống như mtevalv13a.pl script.

Sự khác nhau giữa chúng là gì?

+1

Tại sao bạn không so sánh chúng? Nếu bạn không biết cả hai ngôn ngữ đủ tốt, ít nhất ** hãy chỉnh sửa câu hỏi của bạn ** và cung cấp liên kết đến cả hai triển khai. Vui lòng xem phần trợ giúp của trang web để biết thông tin về cách viết các câu hỏi tuyệt vời có câu trả lời. – alexis

Trả lời

6

Trong ngắn

Không, BLEU trong NLTK không phải là chính xác giống như các mteval-13a.perl.

Nhưng nó có thể được thực sự chặt chẽ, xem https://github.com/nltk/nltk/issues/1330#issuecomment-256237324

nltk.translate.corpus_bleu tương ứng với mteval-13a.pl lên đến trật tự thứ 4 của ngram với một số khác biệt điểm nổi

Các chi tiết của sự so sánh và bộ dữ liệu sử dụng có thể được tải xuống từ https://github.com/nltk/nltk_data/blob/gh-pages/packages/models/wmt15_eval.zip hoặc:

import nltk 
nltk.download('wmt15_eval') 

Sự khác biệt lớn:

enter image description here


Trong dài

Có một số sự khác biệt giữa mteval-13a.plnltk.translate.corpus_bleu:

  • Sự khác biệt đầu tiên là một thực tế rằng mteval-13a.pl đi kèm với mã thông báo NIST riêng của mình trong khi phiên bản NLTK của BLEU là việc triển khai chỉ số và giả định rằng đầu vào được mã hóa trước.

    • BTW, ongoing PR này sẽ thu hẹp khoảng cách giữa NLTK và NIST tokenizers
  • Sự khác biệt lớn khác là mteval-13a.pl hy vọng đầu vào phải ở định dạng .sgm khi NLTK BLEU mất trong danh sách python danh sách các chuỗi, xem README.txt in the zipball here for more information of how to convert textfile to SGM.

  • mteval-13a.pl dự kiến ​​một thứ tự ngậm ít nhất 1-4. Nếu lệnh ngram tối thiểu cho câu/kho nhỏ hơn 4, nó sẽ trả về xác suất 0 là math.log(float('-inf')).Để bắt chước hành vi này, NLTK có một chấm _emulate_multibleu cờ:

  • mteval-13a.pl là có thể tạo ra điểm NIST khi NLTK không có NIST thực hiện điểm (ít nhất là chưa)

Ngoài sự khác biệt, điểm NLTK BLEU đóng gói trong nhiều tính năng hơn:

Cuối cùng để xác thực các tính năng được thêm vào phiên bản BLEU của NLTK, kiểm tra hồi quy là được thêm vào tài khoản cho họ, xem https://github.com/nltk/nltk/blob/develop/nltk/test/unit/translate/test_bleu.py

+0

Và giờ đây chính thức, có hỗ trợ NIST trong NLTK =) – alvas

Các vấn đề liên quan