1

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

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

我使用 berkelylm 创建了 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

我很清楚 1-gram 的概率计数,但我不清楚 2-gram 和 3-gram 数据是如何创建的。那里总共有 13 个二元组,二元组“我是”出现了两次所以,“我是”的 2 克概率计数应该是 log(2/13) 或 -0.81291,以对数尺度,但它是 - 0.37 在生成的文件中)。

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

谢谢。

4

1 回答 1

2

您可能会错过计算对数概率时使用的平滑技术。平滑从 n-gram 中获取一些概率权重并将其转移到未见过的 ngram 中,这样像“I Sam”这样的二元组不会得到零概率(因为它从未见过),而是一些考虑了“我”和“山姆”。

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

于 2015-05-06T06:23:33.507 回答