ベイジアンフィルターによる ユーザー投稿フィルタリングエンジン Ishigroid Kラボラトリー、研究開発部 高田敦史
投稿フィルタリングの必要 <ul><li>EMA 認定がなければフィルタリング </li></ul><ul><li>「 事業者は、ユーザー(会員・非会員)による投稿等サイト内で公開される情報について、常時、目視・システム抽出確認等を実施し、規約...
投稿監視 <ul><li>「 ユーザー(会員・非会員)による投稿等サイト内で公開される情報について、 常時、目視・システム抽出確認等を実施し 、規約違反投稿等について必要な対応(削除、注意・警告、経過確認等)を行わなければならない」 </li>...
ベイジアンフィルター <ul><li>簡単にいうと、単語の使用頻度で推定するメールフィルター </li></ul><ul><li>主にspamメールフィルターとして使われます </li></ul><ul><li>機械学習の分野では「ナイーブベイ...
bsfilter <ul><li>Ruby によるベイジアンフィルターの実装 </li></ul><ul><ul><li>Paul Graham 方式、 Gary Robinson 方式、 Gary Robinson-Fisher 方式をサポー...
Ruby Classifier <ul><li>Ruby による単純ベイズ分類器の実装 </li></ul><ul><ul><li>http:// rubyforge.org /projects/classifier </li></ul></ul>
Ishigroid <ul><li>自作ライブラリを実装 </li></ul><ul><li>ベイジアンフィルターの仕組み自体はそれほど大きなものではなく、数十~数百行のコード </li></ul><ul><li>日本語形態素解析には MeCa...
ベイズの定理 <ul><li>A という条件下で B の確率 </li></ul><ul><li>ものすごく単純に言うと、 P(A) の影響を受けないように、 P(A) で割ります </li></ul>
例 <ul><li>“ hoge” を含む文書が NG である確率 </li></ul>NG ポストが hoge を含む確率 任意のポストが hoge を含む確率 NG ポストが hoge を含む確率  = NG ポスト中の hoge の数  ...
結合確率 <ul><li>単語出現の独立を仮定 </li></ul><ul><li>スパムである確率 1/2  を仮定 </li></ul>
出現頻度を考慮 <ul><li>s:  ポストが NG であるという期待に与える強さ </li></ul><ul><li>n:  単語 W の出現頻度 </li></ul><ul><li>n  が大きくなればなるほど s  の影響は小さくなる ...
フィッシャー方式 <ul><li>単語出現の確率分布を仮定 </li></ul>
結果 <ul><li>success: 4413 / 5134 </li></ul><ul><ul><li>85.956369302688% </li></ul></ul><ul><li>negative(ok): 2446 / 2970 </...
インターフェース <ul><li>http インターフェース (REST) を実装 </li></ul><ul><li>Webrick </li></ul>
デモ
応用 <ul><li>単純ベイズ分類器による文書の分類は、簡単で計算量も少ないのに高性能 </li></ul><ul><li>コピペでもできる </li></ul><ul><li>いろんな文書の分類に応用 </li></ul><ul><ul><...
資料 <ul><li>スパムへの対策  ---A Plan for Spam </li></ul><ul><ul><li>http://practical- scheme.net/trans/spam-j.html </li></ul></ul...
Upcoming SlideShare
Loading in …5
×

ベイジアンフィルターによる ユーザー投稿フィルタリングエンジンIshigroid

2,630 views

Published on

サイバーエージェント様との勉強会の発表資料です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,630
On SlideShare
0
From Embeds
0
Number of Embeds
398
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

ベイジアンフィルターによる ユーザー投稿フィルタリングエンジンIshigroid

  1. 1. ベイジアンフィルターによる ユーザー投稿フィルタリングエンジン Ishigroid Kラボラトリー、研究開発部 高田敦史
  2. 2. 投稿フィルタリングの必要 <ul><li>EMA 認定がなければフィルタリング </li></ul><ul><li>「 事業者は、ユーザー(会員・非会員)による投稿等サイト内で公開される情報について、常時、目視・システム抽出確認等を実施し、規約違反投稿等について必要な対応(削除、注意・警告、経過確認等)を行わなければならない。また、ユーザー(会員・非会員)による問合せ・通報についての対応も常時、実施しなければならない。 」 コミュニティ運用管理体制認定基準 </li></ul>
  3. 3. 投稿監視 <ul><li>「 ユーザー(会員・非会員)による投稿等サイト内で公開される情報について、 常時、目視・システム抽出確認等を実施し 、規約違反投稿等について必要な対応(削除、注意・警告、経過確認等)を行わなければならない」 </li></ul><ul><li>コスト大! </li></ul>
  4. 4. ベイジアンフィルター <ul><li>簡単にいうと、単語の使用頻度で推定するメールフィルター </li></ul><ul><li>主にspamメールフィルターとして使われます </li></ul><ul><li>機械学習の分野では「ナイーブベイズ(単純ベイズ分類器)」 </li></ul><ul><li>EMAに抵触しそうな書き込みを自動抽出できないか? </li></ul>
  5. 5. bsfilter <ul><li>Ruby によるベイジアンフィルターの実装 </li></ul><ul><ul><li>Paul Graham 方式、 Gary Robinson 方式、 Gary Robinson-Fisher 方式をサポート </li></ul></ul><ul><ul><li>日本語のトークン抽出も、 bigram / mecab など種々の方法を選択できる </li></ul></ul><ul><ul><li>http:// bsfilter.org / </li></ul></ul><ul><li>コマンドラインから実行 </li></ul>
  6. 6. Ruby Classifier <ul><li>Ruby による単純ベイズ分類器の実装 </li></ul><ul><ul><li>http:// rubyforge.org /projects/classifier </li></ul></ul>
  7. 7. Ishigroid <ul><li>自作ライブラリを実装 </li></ul><ul><li>ベイジアンフィルターの仕組み自体はそれほど大きなものではなく、数十~数百行のコード </li></ul><ul><li>日本語形態素解析には MeCab を使用 </li></ul><ul><ul><li>http:// mecab.sourceforge.net / </li></ul></ul>
  8. 8. ベイズの定理 <ul><li>A という条件下で B の確率 </li></ul><ul><li>ものすごく単純に言うと、 P(A) の影響を受けないように、 P(A) で割ります </li></ul>
  9. 9. 例 <ul><li>“ hoge” を含む文書が NG である確率 </li></ul>NG ポストが hoge を含む確率 任意のポストが hoge を含む確率 NG ポストが hoge を含む確率 = NG ポスト中の hoge の数 / NG ポストの単語数合計 任意のポストが hoge を含む確率 = ポスト中の hoge の数 / ポストの単語数合計
  10. 10. 結合確率 <ul><li>単語出現の独立を仮定 </li></ul><ul><li>スパムである確率 1/2 を仮定 </li></ul>
  11. 11. 出現頻度を考慮 <ul><li>s: ポストが NG であるという期待に与える強さ </li></ul><ul><li>n: 単語 W の出現頻度 </li></ul><ul><li>n が大きくなればなるほど s の影響は小さくなる </li></ul>
  12. 12. フィッシャー方式 <ul><li>単語出現の確率分布を仮定 </li></ul>
  13. 13. 結果 <ul><li>success: 4413 / 5134 </li></ul><ul><ul><li>85.956369302688% </li></ul></ul><ul><li>negative(ok): 2446 / 2970 </li></ul><ul><ul><li>82.3569023569024% </li></ul></ul><ul><li>positive(ng): 1967 / 2164 </li></ul><ul><ul><li>90.8964879852126% </li></ul></ul>
  14. 14. インターフェース <ul><li>http インターフェース (REST) を実装 </li></ul><ul><li>Webrick </li></ul>
  15. 15. デモ
  16. 16. 応用 <ul><li>単純ベイズ分類器による文書の分類は、簡単で計算量も少ないのに高性能 </li></ul><ul><li>コピペでもできる </li></ul><ul><li>いろんな文書の分類に応用 </li></ul><ul><ul><li>自動カテゴリ分類? </li></ul></ul><ul><ul><li>ログ解析? </li></ul></ul><ul><ul><li>etc. </li></ul></ul>
  17. 17. 資料 <ul><li>スパムへの対策 ---A Plan for Spam </li></ul><ul><ul><li>http://practical- scheme.net/trans/spam-j.html </li></ul></ul><ul><li>ベイジアンフィルタの改善 --- Better Bayesian Filtering </li></ul><ul><ul><li>http://practical-scheme.net/trans/better-j.html </li></ul></ul><ul><li>ベイジアンフィルタ - Security Akademeia </li></ul><ul><ul><li>http://akademeia.info/index.php?%A5%D9%A5%A4%A5%B8%A5%A2%A5%F3%A5%D5%A5%A3%A5%EB%A5%BF </li></ul></ul><ul><li>Bayesian spam filtering </li></ul><ul><ul><li>http://en.wikipedia.org/wiki/Bayesian_spam_filtering </li></ul></ul><ul><li>Spam Detection </li></ul><ul><ul><li>http://radio.weblogs.com/0101454/stories/2002/09/16/spamDetection.html </li></ul></ul><ul><li>Segaran, 『集合知プログラミング』オライリー ,2008 </li></ul>

×