私は最近、ベイジアン スパム フィルターを作成しました。Paul Graham の記事 Plan for Spamと、codeproject で見つけた C# での実装を参考にして、独自のフィルターを作成しました。
CodeProject の実装では、トークンがスパムである確率を計算する際に一意のトークンの総数を使用していることに気付きました (たとえば、ハム コーパスに合計で 10000 のトークンが含まれているが、1500 の一意のトークンが含まれている場合、1500 は確率の計算に ngood として使用されます)。 )、しかし、私の実装では、Paul Graham の記事で言及されているように、投稿の数を使用しました。
- 投稿数 (Paul Graham の記事に記載)
- 一意のトークンの総数 (codeproject の実装で使用)
- 総トークン数
- 含まれるトークンの総数 (つまり、b + g >= 5 のトークン)
- 含まれる一意のトークンの合計数