Разъяснение глупой реализации Backoff

Здравствуйте, я реализую сглаживание Stupid Backoff (стр. 2, уравнение 5). техника для проекта, над которым я работаю, и у меня есть вопрос по его реализации. Это алгоритм сглаживания, используемый в НЛП. Думаю, Гуд-Тьюринг является наиболее известным подобным алгоритмом.

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

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

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

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

0,4 * 0,4 * частота (день) / размер_корпуса?

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


person Bar    schedule 05.05.2013    source источник
comment
да, вы умножаете каждый раз   -  person Vsevolod Dyomkin    schedule 05.05.2013


Ответы (2)


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

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

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

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

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

-бмс20

person bms20    schedule 29.05.2013

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

Согласно формуле, 0,4 каждый раз умножается на показатель «Глупый откат».

person Avinesh Kumar    schedule 02.10.2017