bleuEvaluationScore

Оцените перевод или резюмирование со счетом подобия BLEU

Описание

Дублер Оценки BiLingual (BLEU) алгоритм выигрыша оценивает подобие между документом кандидата и набором справочных документов. Используйте BLEU score, чтобы оценить качество моделей перевода и резюмирования документа.

пример

score = bleuEvaluationScore(candidate,references) возвращает счет подобия BLEU между заданным документом кандидата и справочными документами. Функция вычисляет перекрытия n-граммы между candidate и references для длин n-граммы один - четыре, с равным взвешиванием. Для получения дополнительной информации смотрите BLEU score.

пример

score = bleuEvaluationScore(candidate,references,'NgramWeights',ngramWeights) использует заданное взвешивание n-граммы, где ngramWeights(i) соответствует весу для N-грамм длины i. Длина вектора веса определяет область значений длин n-граммы, чтобы использовать для оценки BLEU score.

Примеры

свернуть все

Создайте массив маркируемых документов и извлеките сводные данные с помощью extractSummary функция.

str = [
    "The fox jumped over the dog."
    "The fast brown fox jumped over the lazy dog."
    "The lazy dog saw a fox jumping."
    "There seem to be animals jumping other animals."
    "There are quick animals and lazy animals"];
documents = tokenizedDocument(str);
summary = extractSummary(documents)
summary = 
  tokenizedDocument:

   10 tokens: The fast brown fox jumped over the lazy dog .

Задайте справочные документы как tokenizedDocument массив.

str = [
    "The quick brown animal jumped over the lazy dog."
    "The quick brown fox jumped over the lazy dog."];
references = tokenizedDocument(str);

Вычислите BLEU score между сводными данными и справочными документами с помощью bleuEvaluationScore функция.

score = bleuEvaluationScore(summary,references)
score = 0.7825

Этот счет указывает на довольно хорошее подобие. BLEU score близко к каждый указывает на сильное сходство.

Создайте массив маркируемых документов и извлеките сводные данные с помощью extractSummary функция.

str = [
    "The fox jumped over the dog."
    "The fast brown fox jumped over the lazy dog."
    "The lazy dog saw a fox jumping."
    "There seem to be animals jumping other animals."
    "There are quick animals and lazy animals"];
documents = tokenizedDocument(str);
summary = extractSummary(documents)
summary = 
  tokenizedDocument:

   10 tokens: The fast brown fox jumped over the lazy dog .

Задайте справочные документы как tokenizedDocument массив.

str = [
    "The quick brown animal jumped over the lazy dog."
    "The quick brown fox jumped over the lazy dog."];
references = tokenizedDocument(str);

Вычислите BLEU score между документом кандидата и справочными документами с помощью опций по умолчанию. bleuEvaluationScore функция, по умолчанию, использует N-граммы длины один - четыре с равными весами.

score = bleuEvaluationScore(summary,references)
score = 0.7825

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

Чтобы обратиться к этому, используйте более короткие N-граммы путем установки 'NgramWeights' опция к более короткому вектору. Вычислите BLEU score снова с помощью только униграммы и биграммы путем установки 'NgramWeights' опция к двухэлементному вектору. Обработайте униграммы и биграммы одинаково путем определения равных весов.

score = bleuEvaluationScore(summary,references,'NgramWeights',[0.5 0.5])
score = 0.8367

Этот счет предлагает лучшее подобие, чем прежде.

Входные параметры

свернуть все

Документ кандидата в виде tokenizedDocument скаляр, массив строк или массив ячеек из символьных векторов. Если candidate не tokenizedDocument скаляр, затем это должен быть вектор-строка, представляющий единый документ, где каждым элементом является слово.

Справочные документы в виде tokenizedDocument массив, массив строк или массив ячеек из символьных векторов. Если references не tokenizedDocument массив, затем это должен быть вектор-строка, представляющий единый документ, где каждым элементом является слово. Чтобы оценить против нескольких справочных документов, используйте tokenizedDocument массив.

Веса n-граммы в виде вектора-строки из конечных неотрицательных значений, где ngramWeights(i) соответствует весу для N-грамм длины i. Длина вектора веса определяет область значений длин n-граммы, чтобы использовать для оценки BLEU score. Функция нормирует веса n-граммы, чтобы суммировать одному.

Совет

Если количество слов в candidate меньше, чем число элементов в ngramWeights, затем получившийся BLEU score является нулем. Гарантировать это bleuEvaluationScore возвращает ненулевую музыку к очень коротким документам, установите ngramWeights к вектору с меньшим количеством элементов, чем количество слов в candidate.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

BLEU score, возвращенный как скалярное значение в области значений [0,1] или NaN.

BLEU score близко к нулю указывает на плохое подобие между candidate и references. BLEU score близко к каждый указывает на сильное сходство. Если candidate идентично одному из справочных документов, затем score 1. Если candidate и references оба пустые документы, затем score isnan. Для получения дополнительной информации смотрите BLEU score.

Совет

Если количество слов в candidate меньше, чем число элементов в ngramWeights, затем получившийся BLEU score является нулем. Гарантировать это bleuEvaluationScore возвращает ненулевую музыку к очень коротким документам, установите ngramWeights к вектору с меньшим количеством элементов, чем количество слов в candidate.

Алгоритмы

свернуть все

BLEU score

Дублер Оценки BiLingual (BLEU) алгоритм выигрыша [1] оценивает подобие между документом кандидата и набором справочных документов. Используйте BLEU score, чтобы оценить качество моделей перевода и резюмирования документа.

Чтобы вычислить BLEU score, количества n-граммы использования алгоритма, отсеченные количества n-граммы, изменили баллы точности n-граммы и штраф краткости.

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

Countclip(n-грамма)=min(Количество(n-грамма),MaxRefCount(n-грамма)),

где Count(n-грамма) обозначает количества n-граммы и MaxRefCount(n-грамма) самое большое количество n-граммы, наблюдаемое в одном справочном документе для той n-граммы.

Модифицированными баллами точности n-граммы дают

pn=C{Кандидаты}n-граммаCCountклип(n-грамма)C'{Кандидаты}n-граммаCКоличество(n-грамма),

где n соответствует длине n-граммы и {candidates} множество высказываний в документах кандидата.

Учитывая вектор из весов n-граммы w, BLEU score дают

bleuScore=BP·exp(n=1Nwnlogp¯n),

где N является самой большой длиной n-граммы, записями в p¯ соответствуйте средним геометрическим модифицированной точности n-граммы, и BP штраф краткости, данный

BP={1если c>re1rcесли cr

где c является длиной документа кандидата, и r является длиной справочного документа с длиной, самой близкой к длине кандидата.

Ссылки

[1] Papineni, Кишор, Салим Рукос, Тодд Уорд и Вэй-Цзин Чжу. "BLEU: Метод для Автоматической Оценки Машинного перевода". В Продолжениях 40-го годового собрания на ассоциации для компьютерной лингвистики, стр 311-318. Ассоциация для Компьютерной лингвистики, 2002.

Введенный в R2020a