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件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください