Реализация оценки BLEU для определения сходства предложений - PullRequest
5 голосов
/ 22 марта 2011

Мне нужно вычислить балл BLEU, чтобы определить, являются ли два предложения одинаковыми или нет. Я прочитал несколько статей, которые в основном касаются балла BLEU для измерения точности машинного перевода. Но мне нужен балл BLEU, чтобы выяснить сходство между предложениями на одном языке [английский]. (т. е.) (оба предложения на английском языке). Спасибо в ожидании.

Ответы [ 5 ]

25 голосов
/ 23 марта 2011

Для сравнений на уровне предложений используйте сглаженное значение BLEU

Стандартная оценка BLEU, используемая для оценки машинного перевода (BLEU: 4), действительно имеет смысл только на уровне корпуса, поскольку любое предложение, в котором нет хотя бы одного 4-граммового соответствия, получит оценку 0 .

Это происходит потому, что по своей сути BLEU - это просто среднее геометрическое точности n-грамм, которое масштабируется штрафом за краткость для предотвращения очень коротких предложений.с некоторыми соответствующими материалами из-за неоправданно высоких баллов.Поскольку среднее геометрическое рассчитывается путем умножения всех терминов, которые должны быть включены в среднее, наличие нуля для любого из n-граммовых отсчетов приводит к тому, что весь счет равен нулю.

Если вы хотите применить BLEUк отдельным предложениям лучше использовать сглаженный BLEU ( Lin and Och 2004 - см. раздел 4), в результате чего вы добавляете 1 к каждому из n-граммовых отсчетов, прежде чем вычислять точность в n-граммах,Это предотвратит нулевую точность любой n-граммы и, следовательно, приведет к ненулевым значениям, даже если нет совпадений в 4-граммах.

Реализация Java

Вы найдете реализацию Java как BLEU, так и гладкой BLEU в пакете машинного перевода Stanford Phrasal .

Альтернативы

Как уже упоминал Андреас, вы можете использовать альтернативную метрику оценки, например Расстояние редактирования строки Левенштейна .Однако одна проблема с использованием традиционного расстояния редактирования строки Левенштейна для сравнения предложений заключается в том, что он явно не знает границ слов.

Другие альтернативы включают:

  • Коэффициент ошибок в словах - По сути, это расстояние Левенштейна, применяемое к последовательности слов, а не к последовательности символов.Широко используется для оценки систем распознавания речи.
  • Коэффициент редактирования перевода (TER) - аналогичен коэффициенту ошибок в слове, но допускает дополнительное редактирование подкачкиоперация для смежных слов и фраз.Этот показатель стал популярным в сообществе машинного перевода, поскольку он лучше коррелирует с человеческими суждениями, чем с другими мерами сходства предложений, такими как BLEU.Самый последний вариант этой метрики, известный как Rate Edit Rate Plus (TERp) , позволяет сопоставлять синонимы с использованием WordNet, а также перефразировать последовательности из нескольких слов («умер» ~ ="kick the bucket").
  • METEOR - Эта метрика сначала вычисляет выравнивание, которое позволяет произвольно переупорядочить слова в сравниваемых предложениях.Если существует несколько возможных способов выравнивания предложений, METEOR выбирает тот, который минимизирует перекрещивание краев выравнивания.Как и TERp, METEOR позволяет сопоставлять синонимы и перефразирования последовательностей из нескольких слов в WordNet.После выравнивания метрика вычисляет сходство между двумя предложениями, используя количество совпадающих слов для вычисления F-α показателя , сбалансированной меры точности и отзыва, которая затем масштабируется штрафом на суммупорядка слов, присутствующего в выравнивании.
4 голосов
/ 08 ноября 2011

Вот, пожалуйста: http://code.google.com/p/lingutil/

3 голосов
/ 22 марта 2011

Ну, если вы просто хотите рассчитать балл BLEU, это просто. Рассматривайте одно предложение как справочный перевод, а другое - как перевод кандидата.

1 голос
/ 23 марта 2011

Может быть, вариант редактирования (Левенштейна) также является параметром или расстоянием Хэмминга. В любом случае, балл BLEU также подходит для работы; он измеряет сходство одного предложения со ссылкой, так что имеет смысл только тогда, когда они на одном языке, как с вашей проблемой.

0 голосов
/ 16 января 2015

Вы можете использовать скрипт Moses multi-bleu, где вы также можете использовать несколько ссылок: https://github.com/moses-smt/mosesdecoder/blob/RELEASE-2.1.1/scripts/generic/multi-bleu.perl

...