exponenta event banner

bleuEvaluationScore

Оценка трансляции или уплотнения с оценкой подобия BLEU

Описание

Алгоритм оценки BiLingual Evaluation Burludy (BLEU) оценивает сходство между документом-кандидатом и коллекцией справочных документов. Оценка BLEU используется для оценки качества моделей перевода и уплотнения документов.

пример

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

пример

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

Примеры

свернуть все

Создание массива маркированных документов и извлечение сводки с помощью 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 между сводкой и справочными документами с помощью bleuEvaluationScore функция.

score = bleuEvaluationScore(summary,references)
score = 0.7825

Этот балл свидетельствует о достаточно хорошем сходстве. Показатель BLEU, близкий к единице, указывает на сильное сходство.

Создание массива маркированных документов и извлечение сводки с помощью 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 между документом-кандидатом и ссылочными документами с помощью опций по умолчанию. bleuEvaluationScore функция по умолчанию использует n-грамм длины от одного до четырех с равными весами.

score = bleuEvaluationScore(summary,references)
score = 0.7825

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

Чтобы решить эту проблему, используйте более короткие n-граммы, установив 'NgramWeights' опция для более короткого вектора. Снова рассчитайте оценку BLEU, используя только униграммы и биграммы, установив '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. Функция нормализует n-граммовые веса для суммирования в единицу.

Совет

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

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

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

свернуть все

Оценка BLEU, возвращаемая как скалярное значение в диапазоне [0,1] или NaN.

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

Совет

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

Алгоритмы

свернуть все

Оценка BLEU

Алгоритм оценки BiLingual Evaluation Burludy (BLEU) [1] оценивает сходство между документом-кандидатом и коллекцией справочных документов. Оценка BLEU используется для оценки качества моделей перевода и уплотнения документов.

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

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

Countclip (n-грамм) = мин (Count (n-грамм), MaxRefCount (n-грамм)),

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

Модифицированные n-граммовые оценки точности даны

pn=∑C∈{Candidates}∑n-gram∈CCountclip (n-грамм) ∑C'∈{Candidates}∑n-gram′∈C′Count (n-грамм ′),

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

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

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

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

BP = 1if c > re1 − rcif c≤r

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

Ссылки

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

Представлен в R2020a