В чем разница между mteval-v13a.pl и NLTK BLEU?

Существует реализация BLEU Score в Python NLTK, nltk.translate.bleu_score.corpus_bleu

Но я не уверен, что он такой же, как скрипт mtevalv13a.pl.

В чем разница между ними?

1 ответ

Решение

Короче

Нет, BLEU в NLTK - это не то же самое, что mteval-13a.perl,

Но это может быть очень близко, см. https://github.com/nltk/nltk/issues/1330

nltk.translate.corpus_bleu соответствует mteval-13a.pl до 4-го порядка ngram с некоторыми расхождениями с плавающей точкой

Подробную информацию о сравнении и используемом наборе данных можно скачать по https://github.com/nltk/nltk_data/blob/gh-pages/packages/models/wmt15_eval.zip или:

import nltk
nltk.download('wmt15_eval')

Основные отличия:


В длинном

Есть несколько различий между mteval-13a.pl а также nltk.translate.corpus_bleu:

  • Первое отличие заключается в том, что mteval-13a.pl поставляется с собственным токенизатором NIST, в то время как версия BLEU для NLTK является реализацией метрики и предполагает, что входные данные предварительно токенизированы.

    • Кстати, этот постоянный PR ликвидирует разрыв между токенайзерами NLTK и NIST
  • Другое важное отличие состоит в том, что mteval-13a.pl ожидает, что вход будет в .sgm формат, в то время как NLTK BLEU принимает список списков строк в python, см. README.txt в zipball здесь для получения дополнительной информации о том, как преобразовать текстовый файл в SGM.

  • mteval-13a.pl ожидает порядка ngram по крайней мере 1-4. Если минимальный порядок ngram для предложения / корпуса меньше 4, он вернет 0 вероятность, которая является math.log(float('-inf')), Чтобы подражать этому поведению, в NLTK есть _emulate_multibleu флаг:

  • mteval-13a.pl может генерировать оценки NIST, в то время как NLTK не имеет реализации оценки NIST (по крайней мере, пока)

Помимо различий, оценки NLTK BLEU упакованы в большее количество функций:

Наконец, для проверки функций, добавленных в версию BLEU от NLTK, к их учетным записям добавлен регрессионный тест, см. https://github.com/nltk/nltk/blob/develop/nltk/test/unit/translate/test_bleu.py

Другие вопросы по тегам