HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

COREBlog でも SpamBayes を使う 象歩ブログ 駒台の画像表示
02 July 2008

SpamBayes を Zope で使う

JSpamFilter-0.1.3 リリース
Zope  

梅雨時の虫のように時々コメントスパムが大量に発生します。 以前から思案して居た SpamBayes を利用するフィルタリングを実装してみました。 この二週間ほど 象歩BBS で実際に使用してかなり効果ありと思えたので Zope プロダクト JSpamFilter-0.1.3 として公開します。 簡単に言えば SpamBayes の wrapper プロダクトです。

インストールは通常の Zope プロダクトと同様に JSpamFilter-0.1.3.tar.gz を解凍し、 $INSTANCE/Products/ 配下にコピーするだけ。 (もちろん SpamBayes がインストールされてることが条件)



試すには、まず ZMI (管理画面) で JSpamFilter のオブジェクトを作成します。 それを開いて、たとえばスパムを登録するには [Train] タグを選択します。 {名前、アドレス、記事} を入力し [Spam] ボタンをクリックします。 スパムじゃないものを登録するには [Good] ボタンをクリックします。


さて、コメントのスパム度を評価するには [Test] タグを選択します。 適当に {名前、アドレス、記事} を入力し [Get score] ボタンをクリックします。 画面の下の方に "スパム確率値" が表示されます。 Spam と Good をたかだか数個登録するだけで、結構まともな数値を表示するようです。


Zope の中から JSpamFilter を呼び出すには

PythonScript を使ってコメント登録するには以下のようにしてメソッドを呼び出します。

context.SpamDB.trainAsSpam(Comment, Name, Addr)   # スパム登録
context.SpamDB.trainAsGood(Comment, Name, Addr)   # 非スパム登録

上記では JSpamFilter のオブジェクトを SpamDB としています。 そしてスパム確率値を得るのは以下のコードです。0.0〜1.0の値を返します。

context.SpamDB.prob(Comment, Name, Addr)

対応するソースコードは JSpamFilter.pyです。 Zope ベースの掲示板やブログの類で、たぶん使えると思います。

Comments
There is no comment.
Trackbacks

【注意】TrackBack 送信なさる場合、 あなたの記事中に参照リンク (当ブログの URL 記述) が必要です。 トラックバックスパム防止のため、御了承ください。

There is no trackback.
Post a comment











一回プレビューして投稿内容の確認をしてください。その後に投稿可能になります。