2015-03-19 4 views
0

Я начинаю работать над проблемой, связанной с языковым моделированием, но некоторые вычисления мне не понятны. Для примера рассмотрим следующий простой текст:n-грамм вероятности в файле ARPA

I am Sam Sam I am I do not like green eggs and ham 

я использовал berkelylm создать энграмм подсчет вероятностей и файл ARPA. Вот сгенерированный ARPA файл:

\data\ 
ngram 1=12 
ngram 2=14 
ngram 3=14 
ngram 4=13 
ngram 5=12 
ngram 6=11 
ngram 7=10 
ngram 8=0 
ngram 9=0 

\1-grams: 
-1.146128 am -0.062148 
-1.146128 like -0.062148 
-1.146128 not -0.062148 
-99.000000 <s> -0.062148 
-1.146128 green -0.062148 
-1.146128 and -0.062148 
-0.669007 I -0.238239 
-0.845098 Sam -0.062148 
-1.146128 </s> 
-1.146128 ham -0.062148 
-1.146128 eggs -0.062148 
-1.146128 do -0.062148 

\2-grams: 
-0.720159 am Sam 
-0.597943 Sam I 
-0.709435 and ham 
-0.709435 not like 
-0.709435 like green 
-0.720159 Sam Sam 
-0.709435 ham </s> 
-0.709435 green eggs 
-0.496144 <s> I 
-0.377737 I am 
-0.597943 am I 
-0.709435 do not 
-0.709435 eggs and 
-1.066947 I do 

\3-grams: 
-0.597943 Sam Sam I 
-0.377737 <s> I am 
-0.709435 do not like 
-0.720159 I am Sam 
-1.066947 am I do 
-0.377737 Sam I am 
-0.709435 green eggs and 
-0.709435 like green eggs 
-0.597943 I am I 
-0.709435 eggs and ham 
-0.709435 and ham </s> 
-0.709435 I do not 
-0.709435 not like green 
-0.720159 am Sam Sam 

подсчет вероятностей для 1-грамма ясно мне, но это мне не ясно, как 2-граммы и 3-граммы данных создаются. В общей сложности существует 13 биграмм, а биграмм «Я есть» появляется два раза. Таким образом, 2-граммовая вероятность для «Я» должна быть log (2/13) или -0.81291, в шкале журнала, но это -0.37 в сгенерированном файле).

Возможно, у меня что-то не хватает из-за недостатка опыта, но я хотел бы оценить пример объяснения расчета.

Спасибо.

ответ

1

Возможно, вы пропустили метод сглаживания, используемый при вычислении вероятностей журнала. Сглаживание принимает некоторый вес вероятности от n-граммов и переносит его на невидимые ngrams, так что битрамы типа «I Сэм» не получат нулевую вероятность (потому что ее никогда не видели), но некоторая вероятность, которая учитывает вероятности униграмм " Я "и" Сэм ".

Из того, что я видел в документации BerkeleyLM, используется модифицированное сглаживание KN, которое является самым популярным среди инструментов LM. Вы можете прочитать о сглаживании в целом here и посмотреть точные вычисления для разного метода сглаживания в SRILM's man page.

 Смежные вопросы

  • Нет связанных вопросов^_^