SpamAssassin の特徴のひとつにベイジアンフィルタが使えることがありますが、私が使っているサーバでは動作していませんでした。下記のようにして使えるようになりました。
調査 sa-learn を -D 付きで実行してみる
メーラで収集したspamメールをmbox形式でエクスポートしましたので、それを sa-learn に読み込ませてみましたが、内部でエラーが発生したようで処理されませんでした。-D オプションをつけて再度実行してみろ、と言われたのでそのとおりにしたところ、いくつか不備がありました。
debug: bayes: DB_File module not installed, cannot use Bayes
どうやら、Perl の DB_File モジュールがインストールされていないためにベイジアンフィルタの機能が使えない状態になっているようです。DB_File というのは、berkeley db を使うためのモジュールです。
調べてみたら、私のサーバには db4-4.0.14 がインストールされているようでした。ちょっと古いかもしれませんが、とりあえずこれで使ってみます。
DB_File のインストールには、CPAN を使います。
# perl -MCPAN -e shell cpan> install DB_File
画面に色々なメッセージが表示されますが、眺めているだけでインストールが完了します(簡単)。
他にも sa-learn -D で Net::DNS が入っていない、というメッセージが出ていましたので、ついでにこれもインストールしてしまいますj。
cpan> install Net::DNS
依存しているモジュールが入っていないとか、テストするかい?とか、色々効いてきますが、とりあえず yes と答えます。すると、インストールが完了します。
学習を再度実行してみます。
# sa-learn --mbox --spam 20060616.spam Learned from 21 message(s) (23 message(s) examined).
学習されたようです。
0件のコメント