bogofilterを再教育する

internet — Hidekichi @ 2005/5/28 土曜日

最近、またしてもスパムメールの振り分けが不調。

何度か書いているが、スパムメールの振り分けにはベイジアンフィルタのbogofilterを使っている。

これが、届いたメールを過去の学習からスパムかそうでないかを判断し、さらにその結果を今後のメールの判定にも使うということをしている。

つまり、一度スパムメールを非スパムと判定してしまうと、芋づる式に非スパムと判定されてしまうスパムメールが増えてしまうのだ。

メール単位で誤判定の修正はできるのだが、あまりにもありすぎて、修正できないくらいなってしまった。

そういうわけで、データベースの作り直し。

非スパムのフォルダで、
find . -type f -exec sh -c ‘cat {} | bogofilter -n –bogofilter_dir ~/ ‘ ‘;’

–bogofilter_dir ~/ を付けたのは、現在運用中のデータベースとは別の場所に一旦作成し、後で差し替えようとしているから。

同様にスパムのフォルダで
find . -type f -exec sh -c ‘cat {} | bogofilter -s –bogofilter_dir ~/ ‘ ‘;’

一日放置していたら、新しいデータベースが出来上がったので、元のwordlist.dbと差し替え。

とりあえずは自動で学習しないようにして、運用を再開した。

新しいデータベースで運用を始めると、日本語スパムもほぼ弾いてくれる。ちょっと調子よすぎかもと思っていたら、案の定非スパムもスパム判定していた。

誤判定された非スパムを特定のメールフォルダに置いておくと、再学習して学習が終わったら受信ボックスに戻すようにした。

cronで、
35 * * * * cd [誤判定された非スパムの置き場] && find . -type f -exec sh -c ‘cat {
} | bogofilter -n ‘ ‘;’ && mv [誤判定された非スパムの置き場]/cur/* [メールディレクトリ(受信ボックス)]/cur/
てな感じで。

定期的にデータベースの再作成をする羽目になりそうな予感。まあ、それならそれで、それすら自動化という手もあるな。

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS

コメントをどうぞ

段落や改行は自動挿入です。メールアドレスはサイト上では非表示です。
使用できる HTML タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

HTML convert time: 1.917 sec. Powered by WordPress ME