> 言語別にカウンタを分けるんじゃなくて、
> 別のトークンと思えばいいんじゃないんでしょうか?
> 日本語メールなら、ja_JP:というプレフィックスをつけるとか。
現在のパッチでは、別のトークンとして認識させています。
具体的には、JA:というプレフィックスを付けています。
問題は、確率計算にこれまでに学習したメールの数を使うところにあります。
通常、トークンの数は学習メールの数に比例すると考えられます。
ですが、英語メールの学習は、日本語のトークンを増やさずに学習メール数だけを増やすことになります。
結果として、日本語トークンのジャンク確率の希釈が起こり、陰性になってしまいます。
で、結局次の式の分母を大きくしてしまうようです。
(spamcount×ngood)
---------------------------------------
(hamcount×nbad + spamcount×ngood)
ここで、
spamcountがジャンクとして学習したメールの数、
hamcountが非ジャンクとして学習したメールの数、
nbadがジャンク中に出現した回数、
ngoodが非ジャンク中に出現した回数。
あ。
ということは、別に辞書は分けなくても、言語毎にメールの数だけ数えていればいいのか……。