Могу ли я задать несколько вопросов о реализации абсолютного дисконтирования? Спасибо за любую помощь!
Мой дипломный проект посвящен языковой модели n-граммы, и я пробую абсолютное дисконтирование. Я ссылаюсь на формулу на странице :
f(a_z) = (c(a_z) - D) / c(a_)
p(a_z) = (c(a_z) > 0) ? f(a_z) : bow(a_) p(_z)
bow(a_) = (1 - Sum_Z1 f(a_z)) / (1 - Sum_Z1 f(_z))
Однако результат откатывания веса, напечатанный моей программой, не совпадает с ARPA-файлом, сгенерированным ngram-count , Я думаю, что это вызвано моим неправильным пониманием формулы. Вот как я понимаю. Предположим, что для вычисления лука (a, b):
bow(ab) = (1 - Sum_Z1 f(abz)) / (1 - Sum_Z1 f(bz)) = (N(ab) / C(ab)) / (N(b) / C(b))
, где N (ab) обозначает количество уникальных n-грамм, таких как 'ab c' и 'abd'.
Я прав? И когда дело доходит до лука (а), как рассчитать знаменатель, поскольку в «а» нет суффикса?
Заранее спасибо!