Home > MovableType > ベイジアンフィルタと連携

ベイジアンフィルタと連携

先日、MT-Bayesianのエントリを書きましたが、まだまだコメントスパムは来ているようです。
しかし、このプラグイン自体はスパムコメントの削除をしてくれるわけではなく、MT用のタグを用いることによって、スパムコメントを非表示にしてくれるだけなので、TOPのRecent Commentなどにはスパムコメントのタイトルのみがずらずらと並んでしまいます。
そこで、こちらの記事にあった方法で、コメントそのものをはじいてみることにしました。
結果は良好のようで今のところスパムコメントが記事に反映されることはないような感じです。
反映されないということはつまり、エントリのリビルドが起こらないので、いっぱいスパムコメントを送られてもサーバに負荷がかからなくなったかと思います。
はじかれたコメントはエントリ自体には表示されませんが、DBには保存されているので、もし間違った判定をしていたならば、もう一度トレーニングして表示させることも可能なようです。
ふーむ なるほど
使い方次第でいろいろ出来るんですねぇ

リンク先にはいくつか書き換え方法が書いてありますが、私は三番目の方法を試してみることにしました。
まず、lib/MT/App/Comments.pmを開いて、

$comment->save;
$app->rebuild_indexes( Blog => $blog )

となっている部分を探します。
私はMT2.661を使っているのですが、一カ所しかありませんでした。
ここを以下のように書き換えます。

$comment->save;
require MT::Bayesian;
my $by = MT::Bayesian->new;
$by->new_bayesian( {blog_id => $entry->blog_id, comment_id => $comment->id} );
if ($by->prob*100>80) {
$app->log(“SpamComment: $user_ip”);
return $app->handle_error(‘スパムコメントの可能性があります’);
}
$app->rebuild_indexes( Blog => $blog )

if ($by->prob*100>80) となっている、80の部分がSpam Probabilityに当たるもので、今だと80%より上と判定されたものは表示させないと言う風になっています。
フィルタの学習が進んでいないうちはここの値を高くしておけばいいんじゃないかと思います。

このエントリーを含むはてなブックマークはてなブックマーク - ベイジアンフィルタと連携 この記事をクリップ!Livedoorクリップ - ベイジアンフィルタと連携 BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.eternalmiracle.net/taka/archives/2005/02/03-003543/trackback
Listed below are links to weblogs that reference
ベイジアンフィルタと連携 from eternal miracle blog mode

Home > MovableType > ベイジアンフィルタと連携

BlogPeople
RSS Feed
メタ情報

Return to page top