○N-gram format
ARPA標準形式のN-gramのフォーマットは、以下の形となっている。
\data\から開始、\end\までで終了。
\data\
ngram 1=n1
ngram 2=n2
...
ngram N=nN
\1-grams:
p w [bow]
...
\2-grams:
p w1 w2 [bow]
...
\N-grams:
p w1 ... wN
...
\end\
各キーワードから始まるリストの説明
\data\
ngram 1=n1 → \1-grams:からのデータ件数
ngram 2=n2 → \2-grams:からのデータ件数
…
\1-grams:
(条件付確率) (N グラム) (バックオフ係数)
(条件付確率) (N グラム) (バックオフ係数)
(条件付確率) (N グラム) (バックオフ係数)
…
\2-grams:
(条件付確率) (N グラム) (バックオフ係数)
(条件付確率) (N グラム) (バックオフ係数)
(条件付確率) (N グラム) (バックオフ係数)
…
つまり各行は,N グラムの条件付確率 p,N グラム w,バックオフ係数[bow]の順番に並んでいる。
N-gram format では「条件付確率」、「バックオフ係数」はどちらも常用対数で記述することになることに注意。
\end\
ここまでで終了。
○バックオフ係数
たとえば、1-gramでの「バックオフ係数」x「条件付確率」の値は以下のように使用される。
『単語1 単語2』と続くとき、2-gramのリストにこの並びがなかった場合は、『「単語1」に「単語2」が続く条件付確率』はリストからはわからない。
そこで1-gramのリストを利用して、「単語1」に「単語2」が続く条件付確率を求めることにする。
「単語2」の1-gramにおける「条件付確率」x「バックオフ係数」 = 『2-gramでの「単語1」に「単語2」が続く条件付確率』
2-gramリストだけでは分からない条件付確率を、より低次の1-gramを利用して条件付確率を求めるための係数が「バックオフ係数」。
3-gramなら、「単語1 単語2 単語3」の並びで3-gramのリストにない場合の確率をもとめるのに、『2-gramの「単語1 単語2」の並びの確率』x「バックオフ係数」の値を使用する。
2-gramが3-gramになろうと、N-gramになろうと基本は同じ。
これは、N-gramでのリストにないデータの条件付確率を0としないため(どんな単語の並びも可能性はある)の手法「バックオフスムージング」の一つ。