Я начинаю работать над проблемой, связанной с языковым моделированием, но некоторые вычисления мне не понятны. Для примера рассмотрим следующий простой текст: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 в сгенерированном файле).
Возможно, у меня что-то не хватает из-за недостатка опыта, но я хотел бы оценить пример объяснения расчета.
Спасибо.