言語モデルがおかしい
kenkov opened this issue · 1 comments
kenkov commented
言語モデルは back-off スムージングのようなことをやっているはずだが、和が 1 になっていない。
kenkov commented
言語モデルに線形補完を使うようにした。
連なってはいけない語の確率を指定するために、連なってよい語の確率も指定する必要がある。
そのため * を使って指定できるようにした。たとえば
っ っ 1e-10
っ * 1e-3
といった感じで言語モデルの辞書をかけるようにした。
仮に連なってはいけない語の確率だけ登録すると、言語モデルとして和が 1 にならないだけでなく、
P(っ|っ) = a * 1e-10 + b * (1/N)
P(っ|私) = a * 0 + b * (1/N)
と P(っ|っ) > P(っ|私) となってしまい、想定した挙動 (P(っ|っ) < P(っ|私)) にならなくなってしまう。