Глупое исключение внедрения

Приветствую, что я реализую Stupid Backoff (стр. 2, уравнение 5) метод сглаживания для проекта, над которым я работаю, и У меня есть вопрос о его реализации. Это алгоритм сглаживания, используемый в NLP, Good-Turing - это, наверное, самый известный подобный алгоритм.

Краткое описание алгоритма: При попытке найти вероятность слова, появляющегося в предложении, он сначала будет искать контекст для слова на уровне n-грамм, и если нет n-грамма такого размера, он будет возвращаться к (n-1) -грамме и умножить его счет на 0.4. Рекурсия останавливается у униграмм.

Итак, если я хочу найти вероятность "дня" в контексте "солнечного дня", сначала посмотрим, существует ли в корпусе триграмма "солнечный день", если бы не попытка то же самое с биграмм "солнечный день", и, наконец, он просто получит частоту "день", деленный на размер корпуса (общее количество слов в данных обучения).

Мой вопрос: умножаю ли счет с 0.4 каждый раз, когда я уменьшаю размер n-грамма?

Итак, в приведенном выше примере, если мы не можем найти триграмму или биграмму, итоговый результат:

0,4 ​​* 0,4 * частота (день)/corpus_size?

или я просто умножу один раз на конечном уровне, поэтому, независимо от того, сколько отступлений я должен сделать, я просто умножаю итоговый результат с 0.4?

Ответ 1

В основном я читаю уравнение 5, как вы описываете в своей математике выше.

Итак, для "солнечного дня", где не наблюдалось ни одного случая, вы бы подсчитали S ( "день" | "солнечный" ). Не найдя триграмму "солнечный день", вы возьмете случай два в уравнении 5 и оцените S ( "день" | "солнечный" ) как альфа * S ( "день" | "солнечный" ).

Если вы снова не отметили "солнечный день", вы бы приблизили S ( "день" | "солнечный" ) как альфа * S ( "день" ), который является терминальным случаем f ( "день" )/N (количество наблюдаемых униграмм).

Установив альфа-значение 0,4, вы получите именно то, что вы указали выше.

Надеюсь, что это поможет.

-bms20

Ответ 2

Да, вам нужно умножать на 0.4 каждый раз, когда вы переходите к более низкой n-граммовой модели из-за того, что не находите искомую фразу.

Согласно формуле, значение 0.4 умножается на счет "Stupid Backoff" каждый раз.