Forums: users (Thread #17704)

学習しているの? (2008-02-15 17:59 by Anonymous #35059)

bsfilterにスパム学習させた後、学習が反映されているのかどうかの判断方法で即座に確認できる方法をお教え願いますか?

当方、現在bsfilterを導入してテスト中なのですが、
bsfilterがきちんとスパムを学習してくれているのか
よく分かりません。

OS:centos 4.6
fetchmailでメールを取り込み、Procmail経由でbsfilterに処理をさせようと思っております。

fetchmailでのメールの取り込みは出来ていて、取り込んだメールヘッダーにはX-Spam-Flag: No
X-Spam-Probability: 0.000000とbsfilterの処理が
付け加えられております。

bsfilterにスパムを学習させてもすべてのメールで
X-Spam-Flag: No
X-Spam-Probability: 0.000000
になり学習機能が反映されていないような感じがします。

そこで以下URLを参考にスパムメールのサンプルをダウンロードしてきて
(参考サイト:http://centos.oss.sc/mail/bsfilter/)
以下実行しました。
$ wget http://www.flcl.org/~yoh/yoh_spam_050102.tar.bz2
$ tar jxvf yoh_spam_050102.tar.bz2
$ bsfilter --add-spam home/yoh/spam/spam/*
$ bsfilter --update

次に
学習させたサンプルスパムメールフォルダの中の一つを
$ bsfilter home/yoh/spam/spam/10724
として確認したところ

$ combined probability 10724 1 1.000000
となりました。
スパムとして学習させたはずのフォルダ内のメールなのですがクリーンなメールとして表示されていますが
これでよいのでしょうか?

当方先ほどの参考サイト:http://centos.oss.sc/mail/bsfilter/
の方法を例にスパム対策を行いたく、手を尽くしているのですが、参考サイトではMeCabを利用しておられるのですが、他サイトなど拝見していますと、MeCabなどの説明などない所もありますが、必要なのでしょうか?
どなたか良きアドバイスをご教授下さいませ。

Reply to #35059×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 学習しているの? (2008-02-15 18:20 by Anonymous #35060)

スパムだけでなくクリーンなメールも学習させないと
うまく判定できないらしいのです。
Reply to #35059

Reply to #35060×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 学習しているの? (2008-02-17 17:35 by zxcv3794 #35100)

「クリーンなメールも学習させる必要がある」はその通りだと思います。 で無いと、Spam と誤判定される Cleanメッセージが多数でそうです。

手動で --sub-spam --add-clean してやれば徐々に誤判定は減ってくるとは思いますが、その手間よりは導入時にまとめて Clean学習をさせる手間の方が少ないと思いますよ。


もし仮に、Bsfilter にClean学習しないと異常動作するという問題があったとしても、それを解決しても上記問題は残ります。

という訳で、私は開発者ではありませんが、Clean学習もさせることをお勧めします。
Reply to #35060

Reply to #35100×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 学習しているの? (2008-02-17 19:10 by Anonymous #35104)

ご教授ありがとうございます。

やはり 
homedir /var/lib/bsfilter を指定していなかったのがいけなかったようです。

そして、クリーンメールも学習させる事により、
満足のいくスパム判定を行ってくれるようになりました。

当方fetchmailにてメールを取り込みprocmail,bsfilter,postfixと連携させて他の端末PCからpostfixにアクセスしてメールを取り込という図式です。
fetchmailでのメール取り込み速度について面白い
結果が出ましたので、掲載させて頂きます。

postfixのmaster.cf
ファイルから以下の記述のようにbsfilterを呼び出していたのですが、
smtp inet n - n - - smtpd
-o content_filter=spamfilter:dummy
spamfilter unix - n n - - pipe
flags=Rq user=bsfilter argv=/usr/local/bin/bswrapper.sh -f ${sender} -- ${recipient}

procmailrcでbsfilterを呼び出した方が断然メールの取り込みスピードが速くなりました。
:0 fw
| /usr/local/bin/bsfilter --pipe --insert-flag --insert-probability

それぞれのプログラムの内部的な流れを理解していませんので、何とも言えませんが私の環境では、明らかに3,4倍のスピードアップがありました。

まだまだ勉強不足ですので、もう少し色々弄ってみます

ご教授頂きました方誠に有難うございました。
Reply to #35100

Reply to #35104×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 学習しているの? (2008-02-16 14:50 by zxcv3794 #35078)

まず、MeCab を使用するかしないかを先に決めましょう。 私の場合は、MeCab も ChaSen、KAKASI も使用せずにデフォルトの bigram です。 もちろん正常に動作しており、Spam識別能力にも満足しています。 bigramを使用する方が簡単ですよ。


次に学習の成果が見えない点ですが、正しくインストール・設定された Bsfilter であれば、 --update した直後から効果があるはずです。 まずは導入作業にミスが無いか確認するのが良いと思います。

参考にされたサイトでは、Bsfilter 用の conf ファイルも紹介されています。 先頭の 1行を同じにされましたか? 「homedir /var/lib/bsfilter」の行です。

このconfファイルを使用するなら、学習や実験の為に Bsfilter を手で起動する際には --homedir オプションや BSFILTERHOME環境変数で /var/lib/bsfilter を指定する必要があります。 参考サイトの学習の項でもそうしてますよね? 指定しない場合もスペルミスした場合もご質問の症状になりそうですが、いかがでしょうか。

# MeCab を使用する・しないも、confファイルと手動起動のコマンドオプションを一致させましょう。

それから、「combined probability 10724 1 1.000000」は、「10724ファイルの Spam度は100%」という意味だと思いますよ。

Reply to #35059

Reply to #35078×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login