Рубрики
Без рубрики

Как рассчитать балл Блю в Python?

BLEU Оценка в Python – это метрика, которая измеряет доброту моделей машинного перевода. Хотя изначально он был разработан только для моделей переводов,

Автор оригинала: Pankaj Kumar.

BLEU Оценка в Python – это метрика, которая измеряет доброту моделей машинного перевода. Хотя изначально он был разработан для только моделей переводов, теперь он используется для других приложений для обработки естественного языка.

Балл BLEU сравнивает предложение против одного или нескольких справочных предложений и рассказывает, насколько хорошо кандидат приговор соответствует списку справочных предложений. Это дает вывод балла между 0 и 1.

BLU BLEU 1 означает, что приговор кандидата отлично соответствует одному из опорных предложений.

Этот счет представляет собой общую метрику измерения для моделей подписи изображения.

В этом руководстве мы будем использовать preee_blyu () Функция из библиотеки NLTK. Давайте начнем.

Вычисляющее балл Блю в Python

Чтобы рассчитать балл Блю, нам необходимо предоставить ссылочные и кандидаты приговоров в виде токенов.

Мы узнаем, как это сделать и вычислять счет в этом разделе. Давайте начнем с импорта необходимых модулей.

from nltk.translate.bleu_score import sentence_bleu

Теперь мы можем ввести ссылочные предложения в виде списка. Нам также нужно создавать токены из предложений, прежде чем передавать их в функцию Preee_bluu ().

1. Введите и разделите предложения

Предложения в нашем контрольном списке:

    'this is a dog'
    'it is dog
    'dog it is'
    'a dog, it is'

Мы можем разделить их в токены, используя функцию разделения.

reference = [
    'this is a dog'.split(),
    'it is dog'.split(),
    'dog it is'.split(),
    'a dog, it is'.split() 
]
print(reference)

Выход:

[['this', 'is', 'a', 'dog'], ['it', 'is', 'dog'], ['dog', 'it', 'is'], ['a', 'dog,', 'it', 'is']]

Это то, как выглядят предложения в виде токенов. Теперь мы можем вызвать функцию Preee_blyu (), чтобы рассчитать счет.

2. Рассчитайте балл Блю в Python

Чтобы рассчитать счет, используйте следующие строки кода:

candidate = 'it is dog'.split()
print('BLEU score -> {}'.format(sentence_bleu(reference, candidate)))

Выход:

BLEU score -> 1.0

Мы получаем идеальную оценку 1, так как приговор кандидата принадлежит ссылочному набору. Давайте попробуем еще один.

candidate = 'it is a dog'.split()
print('BLEU score -> {}'.format(sentence_bleu(reference, candidate)))

Выход:

BLEU score -> 0.8408964152537145

У нас есть предложение в нашем эталонном наборе, но это не точное совпадение. Вот почему мы получаем счет 0,84.

3. Заполните код для реализации BLEU RACT в Python

Вот полный код из этого раздела.

from nltk.translate.bleu_score import sentence_bleu
reference = [
    'this is a dog'.split(),
    'it is dog'.split(),
    'dog it is'.split(),
    'a dog, it is'.split() 
]
candidate = 'it is dog'.split()
print('BLEU score -> {}'.format(sentence_bleu(reference, candidate )))

candidate = 'it is a dog'.split()
print('BLEU score -> {}'.format(sentence_bleu(reference, candidate)))

4. Расчет балла N-GRAM

При сопоставлении предложений вы можете выбрать количество слов, которые вы хотите, чтобы модель совпадает сразу. Например, вы можете выбрать слова, которые нужно сопоставить по одному (1 грамм). В качестве альтернативы вы также можете соответствовать словам в Пары (2-грамм) или Тритрои (3 граммы) Отказ

В этом разделе мы узнаем, как рассчитать эти баллы N-грамм.

В Preee_bluu () Функция Вы можете пройти аргумент с весами, соответствующими отдельными граммами.

Например, для расчета грамма баллов индивидуально вы можете использовать следующие веса.

Individual 1-gram: (1, 0, 0, 0)
Individual 2-gram: (0, 1, 0, 0). 
Individual 3-gram: (1, 0, 1, 0). 
Individual 4-gram: (0, 0, 0, 1). 

Код Python для того же дается ниже:

from nltk.translate.bleu_score import sentence_bleu
reference = [
    'this is a dog'.split(),
    'it is dog'.split(),
    'dog it is'.split(),
    'a dog, it is'.split() 
]
candidate = 'it is a dog'.split()

print('Individual 1-gram: %f' % sentence_bleu(reference, candidate, weights=(1, 0, 0, 0)))
print('Individual 2-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 1, 0, 0)))
print('Individual 3-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 1, 0)))
print('Individual 4-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 0, 1)))

Выход:

Individual 1-gram: 1.000000
Individual 2-gram: 1.000000
Individual 3-gram: 0.500000
Individual 4-gram: 1.000000

По умолчанию функция Preee_blyu () рассчитывает Совокупный 4-грамм Блю Балл , Также называется Bleu-4 Отказ Вес для Bleu-4 следующие:

(0.25, 0.25, 0.25, 0.25)

Давайте посмотрим код Bleu-4:

score = sentence_bleu(reference, candidate, weights=(0.25, 0.25, 0.25, 0.25))
print(score)

Выход:

0.8408964152537145

Это точная оценка, которую мы получили без добавленных весов N-грамм.

Заключение

Это руководство было о расчете балла Блю в Python. Мы узнали, что это такое и как рассчитать индивидуальные и совокупные баллы N-Gram Bleu. Надеюсь, вы веселились с нами!