bogofilterはベイズ推定をSPAMフィルターに応用したソフトウェアです。
MeCabは日本語を単語に分解し、品詞評価を行う形態素解析エンジンです。
大雑把に言うと、ベイズ推定利用の肝は単語毎に統計を取るところにあります。元来日本語は、欧米系の言語と違い、
単語を空白で区切らないという表記形式をとっており、そのままではこの単語毎の統計という処理がうまく働きません。そこで、
一続きに書かれた日本語の文を単語に区切るという操作(分かち書き)が必要になります。これを行うのが形態素解析エンジンです。
形態素解析エンジンとしては
kakasiや
ChaSenなどが知られています。
ここではMeCabを採用しました。
最近(2018現在)では解析精度の高いJUMANN++なるものもあるようです。(処理スピードに難有り?)
kakasiを使った日本語対応(bogofilter-1.2.4用kakasi-0.5 patch)はこちら
なお、このパッチのご利用はご自身の責任の範囲でお願いします。
$ tar zxf mecab-X.Y.tar.gz $ cd mecab-X.Y $ ./configure --with-charset=utf8 $ make $ make check $ sudo make install
$ tar zxf mecab-ipadic-2.7.0-XXXX.tar.gz $ cd mecab-ipadic-2.7.0-XXXX.tar.gz $ configure --with-charset=utf8 $ make $ sudo make install
$ tar jxf bogofilter-1.X.Y.tar.bz2 $ cd bogofilter-1.X.Y $ zcat ../bogofilter-1.X.Y+mecab-0.1.patch.gz | patch -p1 -T $ CFLAGS="-I/usr/local/include -DWAKATI" LDFLAGS="-L/usr/local/lib" LIBS="-lmecab" ./configure $ make $ sudo make installLinuxやSolarisでlibmecab.soが見つからないというエラーが出るときは
$ sudo ldconfigを試してからbogofilterを再makeしてみてください。
---- .procmailrcの抜粋 ---- #### bogofilter passthrough-update #### #:0fw :0Efw | bogofilter -p -e -l # -f)isher, -p)assthrough -u)pdate, -l)og -e)xitcode 0 for spam and ham # -v)erbose #### begin error catcher #### :0e { EXITCODE=75 HOST } #### end error catcher ####※-u (update) してないのは、一日一回 DBのバックアップ、メンテナンス(bogoutil)と同時にまとめて実施しているためです。