kenkov / kovlive

コフライブッ!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

言語モデルがおかしい

kenkov opened this issue · comments

言語モデルは back-off スムージングのようなことをやっているはずだが、和が 1 になっていない。

言語モデルに線形補完を使うようにした。

連なってはいけない語の確率を指定するために、連なってよい語の確率も指定する必要がある。
そのため * を使って指定できるようにした。たとえば

っ っ 1e-10
っ * 1e-3

といった感じで言語モデルの辞書をかけるようにした。

仮に連なってはいけない語の確率だけ登録すると、言語モデルとして和が 1 にならないだけでなく、

P(っ|っ) = a * 1e-10 + b * (1/N)
P(っ|私) = a * 0 + b * (1/N)

と P(っ|っ) > P(っ|私) となってしまい、想定した挙動 (P(っ|っ) < P(っ|私)) にならなくなってしまう。