ベイズ推定で楽々スパムメールをフィルタリング 110
ストーリー by wakatono
よりお手軽なフィルタリング 部門より
よりお手軽なフィルタリング 部門より
jishiha 曰く、 "ベイズ推定を利用したメールフィルター POPFile を使うと、楽にスパムメールをフィルタリングできる。
1日に受け取るスパムメールの数にもよるが、数日間、トレーニングと呼ばれるメールの分類を教え込む作業を行うと、あとはかなり高い精度で自動的にメールの振り分け作業をこなしてくれるようになる。
POPFile は GPL ライセンスに基づいたオープンソースソフトウェア、インストールは簡単で、例えば分類ルールの作成といった面倒な設定は必要ない。日本語マニュアルが用意されており、日本語化パッチをあてることにより、ユーザーインターフェースの日本語化、日本語メールの分類にも対応している。"
POPFileはPOP Proxyとして動作する。クライアントにてSpam振り分けを行うという動作になるので、手軽といえば手軽。ISPのメールサーバからPOPでメールを取得している人には導入しやすいだろう。サーバサイドでどうにかしたい人向けにはRubyによるベイジアンスパムフィルタもある。必要に応じて自分の用途に適したものを使い分けるのが吉。
SAProxy (スコア:4, 参考になる)
http://saproxy.bloomba.com/ がパッケージングして出してくれていて、かなりイイです。
ちなみにCNN(US)で見たのですが、アメリカの消費者情報機関?
のようなところが5月か6月にやったSPAMフィルターの比較テスト
ではSAProxyが1位だと言っていました。
Re:SAProxy (スコア:1)
それ以外の使い勝手やspam判定の性能は素晴らしいと思います。
# でも一番いいと思ってるのは10~20通/日のspamをしばらく食わせたApple Mail.app。
Re:SAProxy (スコア:1)
?
Configure-Advanced-POP3 options...-Allow the TOP command to be proxied
にチェックを入れてもうまく動かないということ?
Support Vector Machine (スコア:4, 興味深い)
世間では,ベイズ分類器しか出回ってないようですが,なぜ SVM を使わないのだろう?やってみたけれど思わしくないのか,それともそもそもやってみていないのか。
自分で作ってみようかな。
主流だと思われる Paul Graham の方式に関して言えば feature selection の段階を手を抜かずに行えば,より精度は上がるような気がします。
Re:Support Vector Machine (スコア:1, 興味深い)
最近は速く計算できるようになっていたりしたら 誰か教えてくれるとうれしいなぁ。
Re:Support Vector Machine (スコア:1, 参考になる)
90年代中頃ぐらいに出て来たばかりだから、まだ研究者の方々は現実的な応用まで気がまわらないんじゃないですかね。今頑張ると良いことがあるのかも。
ベイズの方は計算時間の短縮が可能になって、利用にはずみがついたというような話はよく聞きます。計算時間の短縮って一筋縄じゃいかないんですけどね。(^^;
bogofilterもあるでよ (スコア:3, 参考になる)
bsfilterと同じようにprocmailと併用するタイプです。
正直あまり性能はよくないなぁと感じてますけど。
メールの喰わせ方が悪いのかも知れませんが。
あと有名なのはMozillaですが、こちらのBayesian Filterは
使った限りではかなり性能良さそうです(日本語を除く)。
# 大学の研究がBayes関連でこういう話はちょっと嬉しいのでID。
Re:bogofilterもあるでよ (スコア:3, 参考になる)
自分の環境だと英語も日本語もあまり変わらないです。
SPAMが誤判定されることはあっても(今だいたい5%くらい)、
non-SPAMがSPAMと判定されることは今のところないです。
ソースは見てないけど、特に考慮はしてないんじゃないかなぁ。
ちなみにMozillaだと英語は99.99%正確だったんですが、
日本語だとせいぜい数十%くらいでした(感覚的に)。
日本語がダメな原因は江村さんのmozilla.party 4.0での発表資料 [biglobe.ne.jp]が詳しいです。
# ついでに、自分が参考にしたのはHotWiredの記事 [hotwired.co.jp]で、自分の設定は、この日記 [wakaba.jp]。
Re:bogofilterもあるでよ (スコア:2, 参考になる)
bogofilterは日本語に全く対応していませんから、そんなもんかも知れませんね。
私はbogofilterに通す前にnkf2でUTF8に変換して、それをmecab使って分かち書きにしてます。これでかなり精度高いと思ってます...... でも、良く考えたら、ウチに屆くスパムは中国語、ハングル、英語がほとんどで、日本語のスパムが元々少ないんで、本当の意味で精度が高いのかどうかはわからなかったりしますが。
Re:bogofilterもあるでよ (スコア:2, 参考になる)
procmailのレシピはこんな感じです。
ベイズ推定に関する特集 (スコア:3, 参考になる)
グーグル、インテル、MSが注目するベイズ理論 [cnet.com]
まず日本語なのがありがたい。:-) 関連のキーワードを知るのにもお推めです。
/ 信号処理技術の解説ページ
☆ 「蜂波の窓」 [so-net.ne.jp] 作成中
Re:ベイズ推定に関する特集 (スコア:1)
自分が記憶にある中では一番古い記事です。
当時はBayes理論といえばMS以外の企業の名前を
ほとんど見た覚えがないのですが、
今ではいろんな企業や個人が手がけているのでちょっと安心(?)
Re:ベイズ推定に関する特集 (スコア:1)
MSの研究所で働いているようですね。ペーパー [microsoft.com]とかがありますし、
各個人のページもあります。
MSの研究所は優秀な研究者が多いと思いますよ。
母数もかなり多いけど(笑)。
スラドもベイズ使って (スコア:3, 興味深い)
「興味深い」かどうかは単語の頻度だけではきまらないのでベイズフィルタはあまり意味ないでしょうが、一部のフレームの元になるような発言はベイズで計算すれば、スパムの確率97%など計算されると思います。もちろん、フレームの元になるけど、興味深い発言などもあるので、誰か人の目によるチェックはなくせないのですが、、、
SPAM だけでなく (スコア:3, 興味深い)
ぱっと考えた例では Kid's filtering proxy など。(既にある?)
判断する為の事前情報が必要ですが、その手間を厭うユーザに対しては、
ある程度情報を与えた状態で出荷する等もできますね。
具体的な例を使用して動作をカスタマイズしていく考え方は、コンピュータを扱うことは
難しいものだと考えがちな層に対して、より分かりやすい使い方を示すものだと思います。
日本語パッチの当て方が (スコア:2, おもしろおかしい)
あっさりと発見 [infoseek.co.jp]、無事日本語環境で運用させて貰ってます。
…やっぱ英語読めないって今時ダメですか。ダメですよね。
--
くだらなかったあの頃に、戻りたい?戻りたくない?
Re:日本語パッチの当て方が (スコア:1, 参考になる)
POPFile 0.19.1 の日本語化(Windows) [infoseek.co.jp]
# はっ。だから「おもしろおかしい」なのか?(汗
日本語パッチ作者直々のタレコミ (スコア:2, 興味深い)
ありがたく使わせてもらいます。
Re:日本語パッチ作者直々のタレコミ (スコア:1)
#上のコメント共々(-1)を希望。
--
くだらなかったあの頃に、戻りたい?戻りたくない?
誤検地が怖い (スコア:2, 参考になる)
メーラー側でSPAMメールを振り分けをしているのですが。
以前、Borlandのビアサーバが当選したという知らせSPAMとして
振り分けられてしまい、危うく見逃す所でした。
それ以来、受信メールには一通り目を通すようにしてるのですが、
こうなってしまうとSPAM避けとしてあまり意味が無くなってしまうんですよね。
Re:誤検地が怖い (スコア:1, 興味深い)
Re:誤検知が怖い(誤検地改め) (スコア:2, 参考になる)
Subject強制書き換えをする点については、下手に削除されるよりは良いなぁと思ってます。
メーラーのフィルタでユーザーがなりふりを自由に出来ますから。
Re:誤検地が怖い (スコア:1)
よくあるのが友人の短いメールには反応しないのに長いメールには反応して
仕分けてしまうというもの。わたしも一応迷惑メールフォルダの件名だけは
いつも見るようになってしまいました。微妙に意味がないような。
あまり恐くない (スコア:1)
spamとして認識したメールは、spamというフォルダに置くようにして、時々サマリを見ることにしてます。spamとそうでないメールがゴチャゴチャと混ざったものを分類する時は、自分の誤認識や操作ミスが起きがちですが、「ほとんどspamの中から必要なメールを探し出す」というのは、まず操作ミスは起きません。サマリだけざっと見るのは、そんなに負荷じゃないですし。
Re:とりあえず疑え (スコア:1)
確かに「温泉旅行当選」がどうのというSPAMメールはフィルターにかかってますね。
フィルタリングするのもいいけど…… (スコア:2, 興味深い)
本家では (スコア:2, 参考になる)
結構なコメントの量なのですが、こんな時に閾値5が
役立ちます。スラドにベイズフィルタを適応するという
アイディアもありました。
Seven Spam Filters Compared [slashdot.org]の元記事(綺麗なコストカーブ [freshmeat.net]あり)ではPOPFileは比べられていないのですが、コメントにPOPFileが一番というコメントもありました。
ベイズフィルタの肝 (スコア:3, 参考になる)
他方2chブラウザのようなクライアント側でベイズフィルタ使うのはNGワードよりよっぽど理にかなっています。そもそもスパムでない投稿をスパムと誤っても被害極小でしょうし、、、ベイズフィルタ付きの掲示板クライアントがあればなぁと思います(*)。
スパム業者は多くのユーザーのフィルターを一気に知る方法がないので、多くのフィルターを通り抜けるメールを作成することが難しいわけです。(業者は業者でわざと他の業者のスパムをオプトインして色々なフィルターを作って、そのフィルターを通る新しいスパムを日々開発しているのでしょう。)
学習すればするほど、賢くなるのだから、コーパス共有すればいいのに、、、と思っていましたが、別々に学習し、お互いに学習したことを知らないがために、システムとして賢くなるのですね、、、
(*)プログラマじゃないので、作れ!とかいわないでください・・・
#恥ずかしいけど流れ上ID
最近のspamはベイジアンフィルタ対応? (スコア:2, 参考になる)
text/plainは差しさわりのなさそうな文面で、text/htmlはしっかりspam。ブラウズする側はtext/htmlの出てしまうMUAを想定したものであるという話です。
日本語のspamとしか思えない売り込みのメールもあたまのほうは「昨日、~だったんですよ。それでは本日のご案内です」とかいう文面をよく見るようになったのですが、これも対策の一環でしょうか。
ちなみに私はtext/htmlが入ったメールはサーバが受信しないように設定しています。これだけで八割方拒否できています。状況が許せばお試しください。
-- やさいはけんこうにいちば〜ん!
おおっ! (スコア:1)
ものしか知らなかったので、こういうのって欲しかったん
ですよねー(´ー`)
#もしこれの他にクライアントサイドのフィルタがあったら
#すみません。
早速導入してみようとおもいます。
# 無精、短気、傲慢、これ最強
Re: クライアントサイドのフィルタ (スコア:4, 参考になる)
http://jt.mozilla.gr.jp/mailnews/spam.html
http://internet.watch.impress.co.jp/www/article/2003/0528/aol.htm
Re: クライアントサイドのフィルタ (スコア:3, 参考になる)
Re: クライアントサイドのフィルタ (スコア:1, 参考になる)
まったく別のコードベースのようです。
Mac OS Xだと (スコア:1)
かなりしっかり選別してくれますが、元ネタになっているものはこれとは別次元の機能なんでしょうか。それとも似たようなもの?
最近のトレンド? (スコア:1)
Re:最近のトレンド? (スコア:1)
#CIAやFBIあたりがやってそう。
ニューラルネットワークも忘れないで (スコア:1)
Spamfilter [ucsd.edu]なんていうのもあるようです。
トーマス・ベイズの肖像画 (スコア:1)
ベイズ理論の論文は他人が投稿したというベイズは18世紀の牧師&数学者です。
他にも
ベイジアンフィルタの改善 [dreamhost.com]というPaul Grahamの文章の和訳や
Bayesianってどういう考え方なんだろう [aist-nara.ac.jp]など参考になると思います。
#bayesianなのでID
Re:トーマス・ベイズの肖像画 (スコア:1)
International Society for Bayesian Analysis [bayesian.org]
ベイジアンフィルタの改善 [dreamhost.com]
Bayesianって どういう考え方なんだろう [aist-nara.ac.jp]
---------------
Bayesian Songbook [umn.edu]という替え歌集もあります。ISBA行こうかな?
Re:APOPパッチ? (スコア:2, 参考になる)
Re:無駄なメールではない! (スコア:1)
あと、メモ&分類用に自分にメールすることもよくあります。これって周りはやってる人が結構いたので普通だと思ってたんだけど、やってない人が多いのかな。mhなんかはファイルベースの情報管理ツールとして単品でも便利に使えます。
Re:無駄なメールではない! (スコア:1)
ど急を要しない連絡のときはメールです。
だから、隣の席にいる人にも伝言メモ代わりにメールすることがあります。
少なくとも感覚的には、メールを使うようになってから連絡漏れや話の行き違いでトラブルになるケースは減ったように思います。
Re:無駄なメールではない! (スコア:1)
> インタラプトを掛けるほど急を要しない
逆に、緊急の用件を同じフロアなのにメールなげておしまいの奴がいるから、始末にこまる。
wild wild computing
Re:IMAPのプロトコルにSMAP学習機能を (スコア:1)
spamメールは、IMAPにそれ用のフォルダ作って、そこに振り分ければいいだけじゃないですかね。
時々、誤判定されてないか、そのフォルダを見るようにすれば良いでしょ。
そして、そのフォルダに溜めたspamメールを、定期的にベイジアンフィルタに食わせると。
Re:IMAPのプロトコルにSMAP学習機能を (スコア:1)
誤判定(spamが非spamに、非spamがspamに)の場合には、それぞれspam学習用、非spam学習用のIMAPフォルダを作製しておいて、そこに移動させると、一定時間ごとに回収してそれぞれ再学習して振り分けなおしを行ないます。
非spamをspamと思うことはなくなりましたが、まれにspamを非spamという判断をしてくれますが、ほとんどのspamを分類できるので非常に楽になってます。
なお、spamとして届くメールのほぼすべてがhotmailアカウント宛(gotmailで定期的に回収してる)というところがポイント。さすがごみ箱、おかげでいい学習素材になってます。ありがとうhotmail。
-- やさいはけんこうにいちば〜ん!
Re:IMAPのプロトコルにSMAP学習機能を (スコア:2, 参考になる)
うちの日記 [studio-sbs.org]にまとめてあるので、興味のある人はどーぞ。
Re:フィルタ対策 (スコア:1)
逆に、手元で使っているSpamAssassinでは、ニュースサイトからのメールに広告が含まれているがゆえにスコアが加算されています。plain textならまだ閾値の1/3ぐらいで済むのですが、HTMLしか送ってくれないところだとスレスレですね。
それ以外に、最近Sobigを検知して送ってくる警告メールが多いですね。うざったいからこれを弾くように設定する手はありますが、そうすると別のウイルスが原因で本当に自分がヤバいブツを送ってしまった時にわからなくなる恐れも(もっともこれに限っては検知ツールの問題もあるが)。
Re:フィルタ対策 (スコア:1, 興味深い)
Re:フィルタ対策 (スコア:1)
Re:フィルタ対策 (スコア:1)
よって、あらかじめ(発信者のフィルタで)チェックしても何の 意味もないのでは?