at posts/single.html

scbayes での SPAM フィルタリング

最近 SPAM メールが増えてきたので、そろそろ本格的に SPAM フィルタリングを使うことにした。 職場では Becky プラグインの bkbsfilter を使っているけど、 こっちはようやくサンプルが集まってきたおかげでかなり認識率が高くなってきている。

自宅では、scmail に付属の scbayes を使う。 scbayes は --learn-spam オプションと --learn-nonspam オプションを使ってSPAMメールとそうでないメールを教育させる。 これを、cron を使って定期的(週一)に実行するようにした。

0 9 * * 0 scbayes --learn-spam /home/machu/.maildir/.99_spam/cur/
10 9 * * 0 scbayes --learn-nonspam /home/machu/.maildir/cur/
20 9 * * 0 scbayes --learn-nonspam /home/machu/.maildir/.30_ml.ruby-list/cur/

Maildir形式のメールボックスに「99_spam」というフォルダを作って、届いたSPAMメールはそこに入れることにする。 で、そのフォルダのメールを scbayes に SPAM として学習させる。 他に、正常なメールの学習用として、受信箱とRubyのメーリングリストを指定している。 (ちなみに、 scbayes は一度学習したメールは学習対象外とするみたい。)

それから、scmail の振り分けルールに scbayes による SPAM メールの振り分けを書いておく。 この運用でうまくいくかどうかは分からないけど、とりあえず5通届いたSPAMメールは全て認識してくれた。

参考までに、今の scmail の振り分けルール (scmail-deliver) はこんな感じ。 (common-rules をわざわざ読み込んでいる理由は以前書いたとおり。)

(load "/home/machu/.scmail/common-rules")
(add-bayesian-filter-rule!)

関連する日記