Nlp ARPA文件中的n-gram概率计数

Nlp ARPA文件中的n-gram概率计数,nlp,n-gram,language-model,Nlp,N Gram,Language Model,我开始研究一个与语言建模相关的问题,但有些计算对我来说并不清楚。例如,考虑下面的简单文本: I am Sam Sam I am I do not like green eggs and ham 我使用Berkelym创建了n-gram概率计数和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 \

我开始研究一个与语言建模相关的问题,但有些计算对我来说并不清楚。例如,考虑下面的简单文本:

I am Sam Sam I am I do not like green eggs and ham
我使用Berkelym创建了n-gram概率计数和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
\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克:
-上午1时146128分-0.062148分
-1.146128类似-0.062148
-1.146128不是-0.062148
-99.000000   -0.062148
-1.146128绿色-0.062148
-1.146128和-0.062148
-0.669007 I-0.238239
-0.845098 Sam-0.062148
-1.146128   
-1.146128火腿-0.062148
-1.146128个鸡蛋-0.062148
-1.146128 do-0.062148
\2克:
-上午0时720159分
-0.597943萨姆一世
-0.709435和火腿
-0.709435不象
-0.709435类似绿色
-0.720159萨姆
-0.709435火腿
-0.709435绿色鸡蛋
-0.496144 I
-0.377737我是
-0.597943我是吗
-0.709435不适用
-0.709435个鸡蛋和鸡蛋
-1.066947我知道
\3克:
-0.597943萨姆一世
-0.377737我是
-0.709435不喜欢
-我是萨姆
-1.066947我知道吗
-0.377737我是山姆
-0.709435绿色鸡蛋和
-0.709435类似绿色鸡蛋
-0.597943我是我
-0.709435鸡蛋和火腿
-0.709435和火腿
-0.709435我不知道
-0.709435不喜欢绿色
-上午0时720159分
1克数据的概率计数对我来说很清楚,但我不清楚2克和3克数据是如何创建的。 这里总共有13个双字符,双字符“I am”出现两次,因此,“I am”的2-gram概率计数应为log(2/13)或-0.81291,以对数刻度表示,但在生成的文件中为-0.37)

由于缺乏经验,我可能会遗漏一些东西,但我希望能举个例子来解释计算


谢谢。

您可能忽略了计算对数概率时使用的平滑技术。平滑从n-gram中获取一些概率权重,并将其转移到看不见的ngrams中,以便像“I Sam”这样的大图不会获得零概率(因为它从未被看到),而是考虑到“I”和“Sam”的单图概率的一些概率

从我在BerkeleyLM文档中看到的情况来看,它使用的是修改的KN平滑,这是LM工具中最流行的。您可以阅读有关平滑的一般信息,并在中查看不同平滑方法的精确计算