パスワードを忘れた? アカウント作成
6406 story

ベイズ推定で楽々スパムメールをフィルタリング 110

ストーリー by wakatono
よりお手軽なフィルタリング 部門より

jishiha 曰く、 "ベイズ推定を利用したメールフィルター POPFile を使うと、楽にスパムメールをフィルタリングできる。

1日に受け取るスパムメールの数にもよるが、数日間、トレーニングと呼ばれるメールの分類を教え込む作業を行うと、あとはかなり高い精度で自動的にメールの振り分け作業をこなしてくれるようになる。

POPFile は GPL ライセンスに基づいたオープンソースソフトウェア、インストールは簡単で、例えば分類ルールの作成といった面倒な設定は必要ない。日本語マニュアルが用意されており、日本語化パッチをあてることにより、ユーザーインターフェースの日本語化、日本語メールの分類にも対応している。"

POPFileはPOP Proxyとして動作する。クライアントにてSpam振り分けを行うという動作になるので、手軽といえば手軽。ISPのメールサーバからPOPでメールを取得している人には導入しやすいだろう。サーバサイドでどうにかしたい人向けにはRubyによるベイジアンスパムフィルタもある。必要に応じて自分の用途に適したものを使い分けるのが吉。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • SAProxy (スコア:4, 参考になる)

    by slash5234 (16218) on 2003年08月27日 1時12分 (#386260)
    SAProxyつかってます。Spam AssassinのWindows用POPプロキシを
    http://saproxy.bloomba.com/ がパッケージングして出してくれていて、かなりイイです。

    ちなみにCNN(US)で見たのですが、アメリカの消費者情報機関?
    のようなところが5月か6月にやったSPAMフィルターの比較テスト
    ではSAProxyが1位だと言っていました。
    • by g_maeda (6110) on 2003年08月27日 1時52分 (#386279)
       私も使ってるんですが、POP3のTOPコマンドに対応していないのが難点。Beckey!でサーバ上のメールを一覧表示する機能とか、メールが一定サイズ以上だった場合にヘッダだけ取ってくる機能が使えなくてちょっとだけ困っています。

       それ以外の使い勝手やspam判定の性能は素晴らしいと思います。

      # でも一番いいと思ってるのは10~20通/日のspamをしばらく食わせたApple Mail.app。
      親コメント
      • by lucky (14762) on 2003年08月27日 2時16分 (#386286) 日記
        >POP3のTOPコマンドに対応していないのが難点


        Configure-Advanced-POP3 options...-Allow the TOP command to be proxied

        にチェックを入れてもうまく動かないということ?
        親コメント
  • by Anonymous Coward on 2003年08月27日 6時54分 (#386323)
    いちおう自然言語処理を専門とする研究室にいるものですが,テキスト分類においてはベイズ分類器よりも Support Vector Machine の方が精度が高いというのが現在の通説です。
    世間では,ベイズ分類器しか出回ってないようですが,なぜ SVM を使わないのだろう?やってみたけれど思わしくないのか,それともそもそもやってみていないのか。
    自分で作ってみようかな。

    主流だと思われる Paul Graham の方式に関して言えば feature selection の段階を手を抜かずに行えば,より精度は上がるような気がします。
    • by Anonymous Coward on 2003年08月27日 8時11分 (#386336)
      SVMは....学習遅すぎませんか? SVMlightくらいしか使ったこと無いので最近は 間違っているかもしれませんが、2年くらい前に feature vector 5000次元で 5000例くらい食わせて 遊んでいたらPenIII1G/Mem1Gくらいで一晩掛かったような。

      最近は速く計算できるようになっていたりしたら 誰か教えてくれるとうれしいなぁ。

      親コメント
    • by Anonymous Coward on 2003年08月27日 10時35分 (#386393)

      90年代中頃ぐらいに出て来たばかりだから、まだ研究者の方々は現実的な応用まで気がまわらないんじゃないですかね。今頑張ると良いことがあるのかも。
      ベイズの方は計算時間の短縮が可能になって、利用にはずみがついたというような話はよく聞きます。計算時間の短縮って一筋縄じゃいかないんですけどね。(^^;

      親コメント
  • by ikemo (901) on 2003年08月27日 0時40分 (#386241)
    自分はBogofilter [sourceforge.net]使ってます。
    bsfilterと同じようにprocmailと併用するタイプです。
    正直あまり性能はよくないなぁと感じてますけど。
    メールの喰わせ方が悪いのかも知れませんが。

    あと有名なのはMozillaですが、こちらのBayesian Filterは
    使った限りではかなり性能良さそうです(日本語を除く)。

    # 大学の研究がBayes関連でこういう話はちょっと嬉しいのでID。
  • by nobee (11587) on 2003年08月27日 1時24分 (#386265) ホームページ 日記
    ちょうど3月頃にベイズ推定に関する特集記事が出てましたよ。

    グーグル、インテル、MSが注目するベイズ理論 [cnet.com]

    まず日本語なのがありがたい。:-) 関連のキーワードを知るのにもお推めです。

    --
      / 信号処理技術の解説ページ
    ☆ 「蜂波の窓」 [so-net.ne.jp] 作成中
  • by za (16346) on 2003年08月27日 2時24分 (#386289)
    ひとつひとつのモデで学習させて、コメント中の単語をベイズフィルターにかけて、それぞれのコメントを「フレームの元」の可能性x%、「興味深い」可能性y%、「余計なもの」の可能性z%などと計算してみると面白いかもしれません。

    「興味深い」かどうかは単語の頻度だけではきまらないのでベイズフィルタはあまり意味ないでしょうが、一部のフレームの元になるような発言はベイズで計算すれば、スパムの確率97%など計算されると思います。もちろん、フレームの元になるけど、興味深い発言などもあるので、誰か人の目によるチェックはなくせないのですが、、、

  • by ninestars (5792) on 2003年08月27日 3時13分 (#386305) 日記
    今後は様々な情報の取捨選択に導入されるかもしれません。
    ぱっと考えた例では Kid's filtering proxy など。(既にある?)

    判断する為の事前情報が必要ですが、その手間を厭うユーザに対しては、
    ある程度情報を与えた状態で出荷する等もできますね。

    具体的な例を使用して動作をカスタマイズしていく考え方は、コンピュータを扱うことは
    難しいものだと考えがちな層に対して、より分かりやすい使い方を示すものだと思います。
  • 日本語パッチの当て方が (スコア:2, おもしろおかしい)

    上のリンクを見てもさっぱり分からなかったので関連情報無いか漁ってみると
    あっさりと発見 [infoseek.co.jp]、無事日本語環境で運用させて貰ってます。

    …やっぱ英語読めないって今時ダメですか。ダメですよね。
    --

    --
    くだらなかったあの頃に、戻りたい?戻りたくない?
  • by za (16346) on 2003年08月27日 0時56分 (#386249)
    なんですね、

    ありがたく使わせてもらいます。

  • 誤検地が怖い (スコア:2, 参考になる)

    by unagi (2663) on 2003年08月27日 0時57分 (#386250) 日記
    私はNortonInternetSecurity2003のSPAMメール警告機能を使って、
    メーラー側でSPAMメールを振り分けをしているのですが。
    以前、Borlandのビアサーバが当選したという知らせSPAMとして
    振り分けられてしまい、危うく見逃す所でした。

    それ以来、受信メールには一通り目を通すようにしてるのですが、
    こうなってしまうとSPAM避けとしてあまり意味が無くなってしまうんですよね。
    • by Anonymous Coward on 2003年08月27日 3時58分 (#386309)
      Norton Internet Security 2003のSPAMメール警告機能って、誤検出が多かったり、Subject強制書き換え以外のフィルタリング機能がなかったりで、かなり低品質な、素人騙し程度のものだと思うのですが……。
      親コメント
      • by unagi (2663) on 2003年08月27日 14時03分 (#386582) 日記
        Nortonのこの機能はどういう条件でフィルタしているのかが全くの非公開である点が、不安を増幅させている一因にもなってるかもしれませんです。

        Subject強制書き換えをする点については、下手に削除されるよりは良いなぁと思ってます。
        メーラーのフィルタでユーザーがなりふりを自由に出来ますから。
        親コメント
    • by GSone (8994) on 2003年08月27日 9時53分 (#386370) 日記
      MacOSXのmailも誤検知をよくやらかします。
      よくあるのが友人の短いメールには反応しないのに長いメールには反応して
      仕分けてしまうというもの。わたしも一応迷惑メールフォルダの件名だけは
      いつも見るようになってしまいました。微妙に意味がないような。
      親コメント
    • 私はあまり恐いとは思いませんが。うちは100~300通/日でspamが来るので、この手のフィルタは必須です。

      spamとして認識したメールは、spamというフォルダに置くようにして、時々サマリを見ることにしてます。spamとそうでないメールがゴチャゴチャと混ざったものを分類する時は、自分の誤認識や操作ミスが起きがちですが、「ほとんどspamの中から必要なメールを探し出す」というのは、まず操作ミスは起きません。サマリだけざっと見るのは、そんなに負荷じゃないですし。
      親コメント
  • by znz (2728) on 2003年08月27日 1時27分 (#386266) 日記
    メーリングリストの管理者なら自分の管理下のメーリングリストはホワイトリストに入れるなりの対処をしておいてくれないと、フィルタリングしていない一般の購読者はspamばっかり受け取っているのに、管理者は自分のところでフィルタリングしているから気づかないということになります。
  • 本家では (スコア:2, 参考になる)

    by za (16346) on 2003年08月27日 14時15分 (#386597)
    SPAM発祥の地の本家では度々 [slashdot.org]取り上げられています。
    結構なコメントの量なのですが、こんな時に閾値5が
    役立ちます。スラドにベイズフィルタを適応するという
    アイディアもありました。

    Seven Spam Filters Compared [slashdot.org]の元記事(綺麗なコストカーブ [freshmeat.net]あり)ではPOPFileは比べられていないのですが、コメントにPOPFileが一番というコメントもありました。

    • by za (16346) on 2003年08月27日 15時21分 (#386634)
      スラドの投稿にベイズフィルタという案は少し考えが足りませんでした。cid=6043099 [slashdot.org]で、ベイズフィルターは各個人のフィルター(コーパス)やフィルタリングの結果をスパマーが見ることができないというのが肝ということが分かったからです。掲示板にベイズフィルタを適応しても、スパマーが投稿できなかったということがわかるので、投稿できるまで粘るスパマーには意味ないわけです。

      他方2chブラウザのようなクライアント側でベイズフィルタ使うのはNGワードよりよっぽど理にかなっています。そもそもスパムでない投稿をスパムと誤っても被害極小でしょうし、、、ベイズフィルタ付きの掲示板クライアントがあればなぁと思います(*)。

      スパム業者は多くのユーザーのフィルターを一気に知る方法がないので、多くのフィルターを通り抜けるメールを作成することが難しいわけです。(業者は業者でわざと他の業者のスパムをオプトインして色々なフィルターを作って、そのフィルターを通る新しいスパムを日々開発しているのでしょう。)

      学習すればするほど、賢くなるのだから、コーパス共有すればいいのに、、、と思っていましたが、別々に学習し、お互いに学習したことを知らないがために、システムとして賢くなるのですね、、、

      (*)プログラマじゃないので、作れ!とかいわないでください・・・

      #恥ずかしいけど流れ上ID

      親コメント
  • by densuke (113) on 2003年08月27日 22時19分 (#386800) 日記
    そんな話を聞いたことがあります。
    text/plainは差しさわりのなさそうな文面で、text/htmlはしっかりspam。ブラウズする側はtext/htmlの出てしまうMUAを想定したものであるという話です。

    日本語のspamとしか思えない売り込みのメールもあたまのほうは「昨日、~だったんですよ。それでは本日のご案内です」とかいう文面をよく見るようになったのですが、これも対策の一環でしょうか。

    ちなみに私はtext/htmlが入ったメールはサーバが受信しないように設定しています。これだけで八割方拒否できています。状況が許せばお試しください。
    --
    -- やさいはけんこうにいちば〜ん!
  • ベインジアンフィルタの類って、サーバサイドで動作する
    ものしか知らなかったので、こういうのって欲しかったん
    ですよねー(´ー`)

    #もしこれの他にクライアントサイドのフィルタがあったら
    #すみません。

    早速導入してみようとおもいます。
    --
    # 無精、短気、傲慢、これ最強
  • by yasunori (1536) on 2003年08月27日 13時16分 (#386527)
    SPAMフィルタ以外だと、IDSやDoS攻撃判定でベイズ理論を使う研究が流行りつつあるみたいですね。Anormaly Detection の観点だと、確率モデルを用いて判断することや学習結果をフィードバックできるという点で、使いやすいのでしょう。エキスパートシステムと違って、学習がある程度現実的な範囲でおさまりそうですし。
  • ニューラルネットワーク [nitech.ac.jp]を使った
    Spamfilter [ucsd.edu]なんていうのもあるようです。
  • International Society for Bayesian Analysis [bayesian.org]で拝めます。
    ベイズ理論の論文は他人が投稿したというベイズは18世紀の牧師&数学者です。

    他にも
    ベイジアンフィルタの改善 [dreamhost.com]というPaul Grahamの文章の和訳や
    Bayesianってどういう考え方なんだろう [aist-nara.ac.jp]など参考になると思います。

    #bayesianなのでID
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...