関連するページはこちら、
メール関係全体はこちら
MacOSX & Cygwin on Windows のソフトの事
Emacs 関係はこちら
Emacs に関する、homepage を公開してから急激に Spam が増えたので、2004年の春から、bogofilter を使い出しました。これまで、
等に悩まされながら、それでも色々トライしてました。
最近、やっと充分満足できる状態になったので、私の設定を紹介します。
このページの設定も、Mac OSX と、Window (Cygwin) で、共通で使っています。
本来は、RFC的に正しくないメールは捨ててしまえば良いのですが、bogofilter の、データベースは、spam メールの単語を登録する必要があるため、何とか、文字コードを推定して、単語を取り出す必要があるのです。
ところが、日本語は、単語を明確にわける記号が有りません。このままでは、bogofilter は文章ごと登録する事になって、正しい判定を期待する事が出来なくなります。
日本語には、「分かち書き」という、文章を単語に分割する作業が有ります。
そこで、kakasi や、mecab 等と言う、分かち書きも出来るプログラムの登場となるわけです。1
bogofilter も最近の物は、wordlist.db を、unicode 化したようです。試しに、日本語メール(まともな)を、生で、流してみたところ、それなりに、まともな DB を作るようです。でも、
どうせ、外で分かち書きする必要があるのなら、日本語コードの変換も一緒にやった方がよさそうです。
次のような、「変換+分かち書き」処理が、よく紹介されています。
nkf -m -e | kakasi -w
最初は、私もこれを使わせて頂いてました。でも、DBを作った最初は、調子良いのだけれど、半年くらいすると、段々誤判別が増えてきて、1年くらいで使い物にならなくなります。其の度に、DBを再構築してました。
何回目かに、業を煮やして、DBの中を覗いて見て判った事は、(推定ですが)
必要が有りそうです。
自分で作るのは大変そうだな。と、思っていたら、東京工科大の冨永先生が作っておられました。
prepare.rb は、上記の機能を次の様にして実現しています。
色々トライしていて、prepare.rb を改造して、bogofilter-nihongo.rb を作りました。機能は、次の様になっています。インストールや構造等はこちら。
~/Mail/spam/1 と言うメールファイルを、DB に spam として登録したい場合、
bash$ cat ~/Mail/spam/1 | bogofilter-nihongo.rb -s --unicode=no -k 10 -v
~/Mail/good/1 と言うメールファイルを、DB に no spam として登録したい場合、
bash$ cat ~/Mail/good/1 | bogofilter-nihongo.rb -n --unicode=no -k 10 -v
~/Mail/inbox/1 と言うメールファイルが、spam か否か見たい場合<BR>
bash$ cat ~/Mail/inbox/1 | bogofilter-nihongo.rb --unicode=no --spam-cutoff 0.9 -k 10 -vとする。
.wl の設定は、此方
上に紹介した、私のレシピでは、
MOSTLYと、UNSUREと判定されたメールは、手動でチェック再配信します。
先ずは、以下のようにして、夫々マークを付けます。
M-x wl-summary-spam ("k m" にバインドされてます)
M-x wl-summary-refile ("o" にバインドされてます)
+(配信先フォルダー)
M-x wl-summary-exec ("x" にバインドされてます)
すれば、夫々 ham, spam に登録された上で、各フォルダーに配達されます。1. mecab は、形態素解析エンジンで、分かち書きは、その機能のひとつです。