NP_cles()

12345678910111213141516171819202122232425262728293031

NP_SpamBayesJP jp1b

 
投稿者:hsur 投稿日時:2007-06-21 - 01:56
カテゴリー:Plug-in - / - トラックバック(0)- Views: 427
Web Services by Yahoo! JAPAN

迷惑メール振り分け技術として良く使われているベイジアンフィルタを用いたspam避けプラグインです。きちんと学習させればおそらく最強のspam対策プラグインであることは間違いないと思います。

反響が予想以上に大きかったので、さっくりと作ってしまいました。もともとローカルのMecabを使って形態素解析をしていたのですが、この部分を誰もが導入可能なようにごっそりとYahoo!のウェブサービスに置き換えたものです。

あくまでベータ版です

とりあえず動作可能*1ではありますが、あくまで人柱版という位置づけです。

技術的な問題に関しては積極的に対応していきますが、それ以外のサポートはあまりする予定がありません。また、日本語はきちんと処理できますがインタフェイスは英語のままです

ダウンロードはこちら
[NP_SpamBayesJP v1.1.0 jp1.6b][533clicks]

SHA1: f37dd0e0f1546ac62f7b96dcd2063770df8ee10e

管理画面を日本語化したNP_SpamBayesJP jp2をリリースしています。

※使い方についてはplugins:spambayesjp[Nucleus CMS Japan Wiki]にまとめる予定です。

動作確認はNucleus 3.3(UTF-8)、PHP 4.4.7環境で行っています。
動作確認報告、バグ報告はこのエントリへ、コメント・トラックバックをお願いします。

導入にあたって

このプラグインは形態素解析器としてYahoo!Japanで公開されている日本語形態素解析Webサービスを使用しています。このため、使用を開始する前にYahoo!JapanIDを取得の上、アプリケーションIDを取得しておく必要があります

また、サイト上にYahoo!デベロッパーネットワークのガイドライン沿ってクレジット表示を行う必要があります。これらの手順については「Yahoo! JAPAN Webサービス」最初の一歩」を参考に行ってください。

インストール後、プラグインオプションに取得したアプリケーションIDを設定してください。

2007/6/20 16:00 追記 v1.1b

なにか忘れたと思ったら、文字コードを変換するルーチンを埋め込んでいませんでした。おそらくEUC-JP環境ではうまく動きません。数日中にアップデートしますのでしばらくお待ちください。実際に動作確認はしていませんが、EUC版でも動くように処理を追加しました。

2007/6/23 1:43 追記 v1.2b

管理画面でバッチアップデートができない問題を解決しました。

2007/6/23 13:20 追記 v1.3b

バッチアップデートができない部分を再度修正しました。DBの採番ルールを変更したので、一旦DBをクリアする必要があります。プラグインオプションの「Clear the database when uninstalling」をはいに設定してアンインストールを行い、その後インストールしてください。

2007/6/24 14:43 追記 v1.4b

バッチアップデートの部分に最新版がちゃんと反映されていませんでした。このバージョンから正常に動くはずです。

2007/6/24 17:16 追記 v1.5b

バッチアップデートの部分を再度修正し、確率が自動的にアップデートされるようにしました。また、管理画面から確率のアップデートを手動で行えるようにしました。

2007/6/25 20:49 追記 v1.6b

YahooAPIについてのエラーハンドリングを改良しました。また、形態素解析器としてMecabを使うことができるようになりました。

  • *1: うちのサイトではMecab版を半年以上運用して有効性は確認してあります

このエントリは役に立ちましたか?

  

トラックバックについて [policy]

Trackback URL:
Trackbacks
このエントリにトラックバックはありません

Comments [policy]

こん wrote:

早速公開されてすぐに活用例があってうれしいです^^

2007-06-21 03:17 <%HatenaAuth()%> 

hsur wrote:

あれ、みつかってしまいましたか。
# ウェブ界隈だと即日新サービスということもさして珍しくないので、これでも遅い方だと思っていたんだけどね。

2007-06-21 11:35 <%HatenaAuth()%> 

yama wrote:

さっそく試してみました。すでにスパムコメントを20件ほど受けましたが、ログが一件も追加されてないのが気になります。「Use SpamBayes action logging?」は「はい」にしてあるのですが。たしか本家版を軽く試した時もそうだった気がします。

2007-06-22 10:53 <%HatenaAuth()%> 

hsur wrote:

spam対策プラグインはプラグイン一覧で上にあるものから順次実行されていくので、おそらくですが他のspam対策プラグインspamを弾いていてNP_SpamBayesが処理をしていないのだと思います。

プラグインの順番を変えて、たとえばNP_SpamBayesが一番上に来るようにするとログが残るようになると思います。

2007-06-22 11:14 <%HatenaAuth()%> 

yama wrote:

原因分かりました。

以下のイベントに登録: QuickMenu, SpamCheck

SpamCheck…そうそう、これってVer3.3からでしたよね?Ver3.24環境で試してました。Ver3.3にアップデートしてから試してみたところ、無事にログが刻まれるようになりました。このログを使えば手軽にトレーニングができるので便利ですね。

本家のwikiやフォーラムには特にVer3.3じゃないとダメとかは特に書いてないように思えますが、Ver3.24以前では使えないはずですよね。

2007-06-22 18:06 <%HatenaAuth()%> 

hsur wrote:

なるほど、3.24以前の場合にはAddSpamCheckEvent(http://blog.cles.jp/item/1795)を入れてもらわないといけませんね。

# NP_Blacklistなどと併用することしか想定していませんでした。

2007-06-22 20:17 <%HatenaAuth()%> 

yama wrote:

ありがとうございます。NP_AddSpamCheckEventですか。V3.3へのアップデートが億劫な場合は暫定的にこれをあてておくとよさそうですね。

別件でひとつ気付きました。

with selected:xxxxx Uitvoeren(select all - deselect all )

ログ一覧画面で上記のような一括処理インターフェイスが実装されてますが(xxxxxのところは、スパムとしてトレーニング・ハムとしてトレーニングのリストです)、これが実際には動いてないように思います。

2007-06-22 21:54 <%HatenaAuth()%> 

hsur wrote:

確かに動いていないですね。
この部分については修正したいと思います。

2007-06-23 00:16 <%HatenaAuth()%> 

hsur wrote:

バッチ処理の部分、bugfixしました。

2007-06-23 01:50 <%HatenaAuth()%> 

yama wrote:

さっそく試してみました。ちなみにこのページのリンクが切れていたので、cvsからゲットしました。

試してみると、見た目には処理経過表示がされるようになりましたが、spamのwordcount数は更新されないようです。なお、一括削除はできました。

2007-06-23 04:27 <%HatenaAuth()%> 

hsur wrote:

もういちど修正してみました。

リンク切れについては多分ダウンロードしたタイミングが悪かったんだと思います。
# 一度ファイルを差し替えたりしていました。

2007-06-23 13:24 <%HatenaAuth()%> 

yama wrote:

最新アーカイブで試してみました。ログ一覧画面で「train spam」を実行すると、以下のようなエラーが出力されます。

mySQL error with query INSERT INTO nucleus_plug_sb_ref (ref, catcode, content) VALUES (500000000, 'spam','Nice site. Thanks.\nhttp://airlinelastminute

…以下省略
「Clear the database when uninstalling」にチェックのうえで3度アンインストールして試してみましたが同様でした。

2007-06-23 15:33 <%HatenaAuth()%> 

hsur wrote:

何度もありがとうございます。

私のほうではエラーが再現できませんでした。以下省略の部分におそらくエラー内容が書かれていると思うので、差し支えなければ教えてもらえますか?

2007-06-24 00:27 <%HatenaAuth()%> 

yama wrote:

了解です。テキストファイルにまとめてメール(sourceforge.jpのほう)でお送りしますね。

2007-06-24 11:51 <%HatenaAuth()%> 

yama wrote:

最新の1.4b確認しました。エラーは出なくなりましたが、見た目は処理経過が表示されるもののwordcountが更新されず…の状態に戻ってしまいました。

2007-06-24 16:40 <%HatenaAuth()%> 

hsur wrote:

wordcountが更新されないのは、オリジナルの状態でwordcountを更新するための処理が入っていないためでした。この部分は修正してあります。

おそらくオリジナル版のバグなのだと思われます。何でこんなにオリジナル版にバグがあるのかはちょっと疑問です。もしかしたら1.1.0は最新版ではないのではないかと、心配になってきました。

2007-06-24 17:19 <%HatenaAuth()%> 

yama wrote:

動作確認しました。今度は問題なし。おつかれさまでした。

Added the option to publish a false positive to your weblog and item.

ちょっと気になったこと。今回のベースになった1.1には上記のようなオプションがあるはずなんですが、見当たらないです。間違ってクロ判定してしまったコメントを正常な投稿として承認し直せる機能なんだと思いますが、この機能があると安心だなあと。

2007-06-25 22:50 <%HatenaAuth()%> 

hsur wrote:

いろいろありがとうございました。やっと使えるレベルになったと思います。

間違ってクロ判定してしまったコメントを正常な投稿として承認し直せる機能

確かにオリジナル版にはこの機能があるのですが、実はこの機能、今回のバージョンには入れていません。実装がv3.3互換ではなく、またかなりアクロバティックな処理になっているのが気になったというのもあります。

この件についてはspam判定されたコメントを保留にするためのNP_Moderate(http://forum.nucleuscms.org...)を日本語対応するか、もしくはNP_CommentControlにそのような機能を付け加えるのが良いのではないかと思っています。
# 実際、そのように改造したNP_CommentControlは既にここで動いているのですが、ドキュメント等の整備をしていないので公開に到っていません。。。。

2007-06-26 00:58 <%HatenaAuth()%> 

kyms [Hatena] wrote:

そうですね。複数のプラグインで機能を分担し合えるとよさそうに思います。NP_Moderateのことはよく知らなかったのですが、そういう用途に使うものなんですか。またチェックしときます。

2007-06-26 19:43 <%HatenaAuth()%> 

hsur wrote:

話の流れ自体は僕もちゃんとつかんでいるわけではないのですが、NP_CommentControlの後継がNP_Moderateみたいな感じのようです。

2007-06-29 02:12 <%HatenaAuth()%> 

kyms [Hatena] wrote:

報告です。最後のチューニングから3週間近く経ち5000件近くのスパム投稿のチャレンジを受けましたが、今のところ一件も誤判別がありません。今までいろいろと試してきた中では確かに最強と言えそうです。

2007-07-19 03:01 <%HatenaAuth()%> 

hsur wrote:

そうですか。いいエビデンスをありがとうございます。うちでも同じくらいの成果は出ていると思います。

他の人はどうなのか気になりますが、早めにインタフェイスを日本語化しようかなと思うのですが、管理画面が多いのでかなり手間がかかりそうです。

2007-07-19 12:50 <%HatenaAuth()%> 

Add Comments

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン