Kozupon.com    
 
 Bogofilterの日本語化!


bogofilter は、元々日本語には対応していない。そこで、ここ desuyo.netさんを参考にbogofilter-0.91.0からbogofilter-1.0.3へバージョンアップをきっかけにngramパッチを使って日本語化させてみた。本当は、日本語化パッチがbogofilter-1.0.1の物だけど、bogofilterの FTPサイト には2006年9月現在、bogofilter-1.0.3以降のバージョンしか無いため、bogofilter-1.0.3にngramパッチをしてみた。

インストール環境)
マシン : Celeronデスクトップ メールサーバ
OS : Naure's Linux1.5


1.Bogofilterは、BerkeleyDBが必須
DB-4をインストールする
1)DB-4インストール
ここ から、2006年9月現在最新の db-4.4.20.tar.gz をゲットしてインストールする。

[VFS-root@sub ~]# cd /usr/local/src/
[VFS-root@sub src]# tar zxvf db-4.4.20.tar.gz
[VFS-root@sub src]# chown -R root.root db-4.4.20
[VFS-root@sub src]# cd db-4.4.20
[VFS-root@sub db-4.4.20]# cd build_unix
[VFS-root@sub build_unix]# ../dist/configure
[VFS-root@sub build_unix]# make
[VFS-root@sub build_unix]# make install
[VFS-root@sub build_unix]# cd /usr/local/BerkeleyDB.4.4/

2)ヘッダー及びライブラリのコピー
[VFS-root@sub BerkeleyDB.4.4]# cp include/* /usr/local/include/
[VFS-root@sub BerkeleyDB.4.4]# cp lib/* /usr/local/lib/

注:ヘッダーとライブラリは同じバージョンのものをコピーしないとBogofilterのインストール時にDBが不整合だと怒られてエラーになるので気を付けること。


2.Bogofilterをインストールする
一般ユーザで作業する。
ここ から、 bogofilter-1.0.3.tar.gz と ここ から、n-gram による単語分割を行う日本語化パッチをダウンロードする。ここ を参考にさせてもらった。

[VFS-mity@sub /]$ cd /usr/local/src/
[VFS-mity@sub src]$ tar zxvf bogofilter-1.0.3.tar.gz
[VFS-mity@sub src]$ cd bogofilter-1.0.3
このディレクトリにパッチをダウンロードしたとする。
[VFS-mity@sub bogofilter-1.0.3]$ zcat bogofilter-1.0.1-ngram-0.18.patch.gz | patch -p1
[VFS-mity@sub bogofilter-1.0.3]$ ./configure --enable-ngram --enable-libnkf

--enable-ngramで単語分割をイネーブルして --enable-libnkfでnkfの自動変換もイネーブルにする。
[VFS-mity@sub bogofilter-1.0.3]$ make
[VFS-mity@sub bogofilter-1.0.3]$ su
Password: *********
[VFS-root@sub bogofilter-1.0.3]# make install

インストールは、これで終わり。


3.動作確認
bogofilterの詳細は、すでに俺が書いているので ここ 参考にして欲しい。

動作確認を簡単にするなら、適当なテストメールを受信してヘッダー情報に以下のような記述が有ればOKだ。
Sep 3 13:11:04 sub bogofilter[6940]: X-Bogosity: Unsure, spamicity=0.498126, version=1.0.3


4.補足説明
1)worldlist.dbを小さくする
wordlist.dbが大きくなりすぎたので、ちっちゃくしてみた。
結構、小さくできた。
[VFS-mity@sub .bogofilter]$ bogoutil -d wordlist.db | bogoutil -l wordlist.db.new
[VFS-mity@sub .bogofilter]$ ls -al

total 40036
drwx------ 2 mity staff 4096 Sep 3 14:21 .
drwxr-xr-x 5 mity staff 4096 Sep 3 12:50 ..
-rw------- 1 mity staff 24117248 Sep 3 14:00 wordlist.db
-rw-r--r-- 1 mity staff 16822272 Sep 3 14:21 wordlist.db.new

2)スパムとして認識してるかテストする
試しに、日本語のspamメールを、以下のコマンドでデータベースへ登録した。
[VFS-mity@sub ~]$ bogofilter -svI .spamdir/spam8.txt

そして、spamデータベースへ登録したspamをちゃんとspamとして認識するかテストする。
[VFS-mity@sub ~]$ bogofilter -vI .spamdir/spam8.txt
X-Bogosity: Spam, tests=bogofilter, spamicity=1.000000, version=1.0.3

X-Bogosity: Spam, このように表示すればspamとして認識してる。

3)procmailrcの記述の変更
bogofilter-0.91.0からbogofilter-1.0.3へアップデートすると、spamメールの判定が旧バージョンと異なる。そこで、procmailrcを以下のように編集する。

[VFS-root@sub ~]# cd /etc/postfix
[VFS-root@sub postfix]# vi procmailrc
省略
:0fw
| /usr/local/bin/bogofilter -u -e -p -l

:0:
#* ^X-Bogosity: Yes
* ^X-Bogosity: Spam
/dev/null
省略

濃い青字のように変更する。spamだったときの判定が旧バージョンの時の判定は、「Yes」だったのに対して新バージョンでは、「Spam」に変更されている。

以上


 
 
 



Copyright 2005 Kozupon.com.