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 グラムの確率カウントは明らかですが、2 グラムと 3 グラムのデータがどのように作成されるかは明確ではありません。合計 13 のバイグラムがあり、バイグラム「I am」が 2 回表示されます。したがって、「I am」の 2 グラムの確率カウントは、対数スケールで log(2/13) または -0.81291 になるはずですが、それは -生成されたファイルでは 0.37)。

経験不足で見落としがあるかもしれませんが、例を挙げて計算を説明していただければ幸いです。

ありがとう。

4

1 に答える 1

2

おそらく見逃しているのは、対数確率を計算するときに使用される平滑化手法です。スムージングは​​、n-gram から確率の重みを取り、それを目に見えない ngram に転送するため、"I Sam" のようなバイグラムはゼロの確率を得ることはありませんが (見たことがないため)、"私」と「サム」。

BerkeleyLM のドキュメントで見たところ、LM ツールの中で最も人気のある修正 KN 平滑化を使用しています。一般的なスムージングについてはこちらで読むことができ、さまざまなスムージング方法の正確な計算についてはSRILM のマニュアル ページを参照してください。

于 2015-05-06T06:23:33.507 に答える