Recent Entries
Archives
Search


Links
Creative 
Commons License
This weblog is licensed under a Creative Commons License.

2004年01月24日

ベイジアンフィルタ for MovableType

James Seng's blog: Bayesian filter for MT
メールサーバーでspamassassinというベイジアンフィルタ搭載のツールを現在便利に使っています。
今までブログでのコメントスパムは受けた事が無いのですが、念のためにMT用のベイジアンフィルタを導入してみました。
実際にどう動作するかはスパムを受けてみないとわからないのですが、このフィルタ、コメントやPINGの一括削除なんかも出来て、良くできているっぽいのでとりあえず使い続けてみることにします。以下利用方法など…

導入は上記サイトからmt-bayesian-1.1.tar.gzをダウンロードして展開。
以下はreadmeのインチキ翻訳です。


1. インストールする場所は以下のごとし

{MTDIR} はMovable Typeをインストールしたディレクトリ

{MTDIR}
o mt-bayesian.cgi (パーミッションは755)

{MTDIR}/plugins
o mt-bayesian.pl

In {MTDIR}/lib/MT
o Bayesian.pm
o BayesianBlog.pm
o BayesianToken.pm

{MTDIR}/lib/MT/App
o BayesianTrain.pm

{MTDIR}/tmpl/cms
o bayesian_menu.tmpl
o bayesian_list_blog.tmpl
o bayesian_list_comments.tmpl
o bayesian_list_pings.tmpl


2. (オプション) {MTDIR}/lib/MT/Bayesian.pm をエディタで開いて、中の
@ignore_tokens

に、無視する文字を追加又は減らします。わからない場合はそのままでいいです。

3. (オプション - mysql, postgres又は他のDBIエンジンを使っている時)
3.1. 展開して出来た bdb/ フォルダを {MTDIR}/bdb/ に転送。
3.2. bayesian-init-db.cgi を{MTDIR}に転送してパーミション755にし

http://your.host/path_to_mt/bayesian-init-db.cgi

といった感じでブラウザから実行。
(例: http://my.blog.com/mt/bayesian-init-db.cgi)
3.3. データベースが認識されたらbayesian-init-db.cgiは削除。
注: もし実行時にエラーが表示される場合は、このcgiを手動で実行。

4. いじょ!すげー簡単だろ!?

以下の3種類のタグがテンプレートで使えます。

o MTSpamProb - コメント又はピングがスパムの可能性をパーセントで返すタグ
o MTIfSpam - スパムだったら真を返すタグ
o MTIfNotSpam - スパムでなかったら真を返すタグ

例 ('私のComment Listing Templateの場合')

<MTComments>
<MTIfNotSpam>
<div class="comments-body">
<$MTCommentBody$>
<span class="comments-post">Posted by <$MTCommentAuthorLink spam_protect="1"$> at <$MTCommentDate$> (Spam: <$MTSpamProb$>%)</span>
</div>
</MTIfNotSpam>
</MTComments>

重要: <MTIfNotSpam> タグは <MTComments> 又は <MTPings> コンテナタグの中で使うこと。

以下のような使い方では動かない。

<MTIfNotSpam><MTPings> ... </MTPings></MTIfNotSpam>

以下の3種類のテンプレートで利用出来る。
- Individual Entry Archive
<MTComments><MTIfNotSpam> ... </MTIfNotSpam></MTComments>
- Comment Listing Template
<MTComments><MTIfNotSpam> ... </MTIfNotSpam></MTComments>
- TrackBack Listing Template
<MTPings><MTIfNotSpam> ... </MTIfNotSpam></MTPings>

管理画面

トレーニング方法
http://your.blog.com/path_to_mt/mt-bayesian.cgiという感じで、mt-bayesian.cgiにアクセスするとわかります。
基本はmt.cgiの画面と同じですが、"Manage Comments" 又は "Manage Pings" という項目が増えています。クリックすると、コメント又はピングの一覧が出ます。
デフォルトは全く学習していないので、すべてのコメントやピングはSpamが50%と表示されます。個別にスパムかどうかのチェックをして[TRAIN]ボタンをクリックすれば学習してくれます。
又 DELETE [CONFIRM] ボタンをクリックすれば、スパムとしてチェックしたコメントやピングが削除されます。[ALL] で全削除です。
[DELETE SPAM] ボタンはすべてのコメントとピングを消してしまうので間違ってクリックしないように注意してください。
管理画面2

2004年1月28日加筆:
コメントスパムが届いた方からサンプルをいただき、自分でコメントとして登録してみました。
名前、メールアドレス、URL、本文をそのまま入れてコメントとして投稿。
IPアドレスはspamでないと学習ずみの自分のIPなので、このままだとspamにはなりません。0%と表示されてしまうと思います。
phpMyAdminが使えるのなら、テーブル mt_comment を選択し、表示タブをクリック。該当するコメントを表示させたら鉛筆と紙アイコンの[修整]をクリック。comment_ipをspamのものに修整して実行ボタンをクリック。MTをリビルドすればIPの変更ができます。リビルドしてもベイジアンフィルタを再度通ってはいないのでspam 0%のままですが、気にせずにManage Commentsでspamにチェックを入れてTRAINボタンをクリック。100%と表示されれば学習OKです。
タグが正しく設定されていれば、spamと認定されたコメントは表示されません。spamコメントのデータは残っているので、Manage Comments画面で削除してしまいましょう。コメント自体を削除したとしてもベイジアンフィルタのデータベースからはこのspamの記録は消えることはありません(たぶん)。

追記:
LunaTearさんのところに日本語対応のやり方がありました。
Kakasiのモジュールを利用します。
Kakasi本体はここ
Perlのモジュールはこっち
本当に学習させたいのなら、1000通くらいのspamを食べさせるといいのですが、なかなかそうもいきませんね。
追記:
MT3.1ではデザインが崩れますのでテンプレートの修整を加える必要があるようです。
以下に修整方法があります。
http://espion.just-size.jp/archives/04/328122907.html

Posted by mugen at 2004年01月24日 03:36 | TrackBack
Trackback
Title: コメントスパム対策
Excerpt: <備忘録> 今日大量にコメントスパムが来ました。一括削除のプラグイン(詳細失念)はすでにインストール済みで、ボチボチ来る程度のスパムは削除してたわけですが...
From: ひとりごと
Date: 2006.01.06
Title: ベイジアンフィルタ導入
Excerpt:  先日、メールソフトBecky!用plugin、BkASPil for Becky!2にベイジアンフィルタが搭載されたのですが、そういえば、と突然MOVA...
From: BLOG@Kuma.info
Date: 2006.02.08
Title: 【ブログMT】スパムコメント対策【英語対策】
Excerpt: Movable Type3.2Jはスパムコメントを有る程度はじくプラグインが導入されていたので、一時期は大抵のスパムコメントが自動で「迷惑コメント」として...
From: Cazperのつれづれ日記
Date: 2006.05.27
Comments

こんばんは。

参考にさせていただきました。
ありがとうございます。

Posted by: hiro at 2004年08月21日 00:15

mugenさん、はじめまして☆
うちのブログはMT3.01ベータ日本語版にしたばかりなんですが
つい最近、1日600件以上のコメントスパムを受けてしまい・・・その削除作業がめんどーくさいのなんの・・・

それで、TypeKey ID取得者のみコメント可能仕様に設定し直したら、今度はコメント数が激減・・・

どーしたものか。。と思って
また大量なスパムコメントを受けてももっと簡単に削除出来るような方法はないものかとweb上で検索したところ、こちらのエントリーを見つけました。

解説がとてもわかりやすかったので参考にさせていただき、うちでも早速導入してみました。ありがとぉございました。

あとTBも打たせていただきました。それからBP登録もさせていただきますねッ!どーぞよろしくお願いしますデス

Posted by: 茶花豆 at 2004年08月15日 08:59

はじめまして、こんばんは。
大変参考になりました。ありがとうございます。

…ところで申し訳ありません。
不慣れなもので、トラックバックを連続3つも送信してしまいました。大変大変、申し訳ありません。削除して頂けると幸いです。

Posted by: ぐっちー at 2004年03月28日 06:54

この話を聞いて私もコメントが入るとe-mailで知らせが来るようにしました。
本当に勉強になるMugen氏のBlogです。

Posted by: と at 2004年01月24日 19:02

ほほー、MTにもSPAMフィルターがあったとは
すごいですね。
わたしはデフォルトオープンで運用して、メールによる報告をはずしていたため
いつのまにやらSPAMされてました。
気づいて削除しまくったのですが。
大変でしたよ。
SPAMコメントを削除しまくれるだけでも
価値があるかも

Posted by: ぽんたん at 2004年01月24日 09:09
Post a comment









Remember personal info?


プログラム・コード形式にします太字にしますイタリック体にしますリンクを作成します