Có một thực hiện điểm BLEU bằng Python NLTK, nltk.translate.bleu_score.corpus_bleu
Sự 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ì?
Có một thực hiện điểm BLEU bằng Python NLTK, nltk.translate.bleu_score.corpus_bleu
Sự 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ì?
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ớimteval-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:
Trong dài
Có một số sự khác biệt giữa mteval-13a.pl
và nltk.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.
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:
để xử lý các trường hợp rìa rằng BLEU gốc (Papineni, 2002) bỏ qua
Ngoài ra để xử lý các trường hợp rìa có thứ tự lớn nhất của Ngram là < 4, các trọng số thống nhất o f các ngram chính xác cá nhân sẽ được reweighted như vậy mà khối lượng của các khoản tiền nặng tới 1,0
khi NIST has a smoothing method cho mịn chuỗi hình học, NLTK has an equivalent object with the same smoothing method và thậm chí làm mịn nhiều phương pháp để xử lý mức án BLEU từ Chen and Collin, 2014
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
Và giờ đây chính thức, có hỗ trợ NIST trong NLTK =) – alvas
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