ベイジアンフィルタを使ってspam判定を行うプラグインです。
受信したspamを学習して判定が賢くなっていくというのが大きな特徴です。
オリジナル版は日本語の分かち書き(日本語を単語に区切ること)ができませんでしたが、JP版についてはYahoo!Japanの日本語形態素解析Webサービス、もしくはMecabを使って日本語の分かち書きを行うようになっています。
オリジナル版はspambayes [Wiki:NucleusCMS]にあります 。
General Plugin info | |
---|---|
作者: | xiffy + hsur |
最新のバージョン: | v1.1.0 jp2 (2008/05/04) |
入手先: | NP_SpamBayesJP - NP_cles() |
ソース: | Nucleus Japan SVN |
動作サンプル: | cles::blog |
フォーラム参照先: | フォーラムのトピック |
作者サイト参照先: | NP_SpamBayesJP - NP_cles() |
インストールをすると、プラグインは自動的に有効になります。
コメントやトラックバックがあった際には学習済みのデータと照合してspamか否かを判断し、spamの場合にはコメントを弾きます。
※最初のうちは、精度が低いことがあるので、プラグインオプションの「spamの履歴を保存」を有効にして様子を見ることをおススメします。
SpamCheckイベントで起動されるので、スキン/テンプレートへの記述は必要ありません。
このプラグインはBayesianフィルタという学習型のフィルタを使っています。
そのため、プラグインに十分な量のspamのデータとspamでないデータ(このプラグイン内ではhamと呼びます)をあらかじめ登録しておく必要があります。Bayesianフィルタは文面に含まれる単語の傾向から、文章がspamであるか否かを判断します。
管理画面を使えば、hamやspamの文面を1つ1つ登録していくことができますが、これを手動で行うことは大変な作業になります。このため、NP_SpamBayesにはこれまでにNucleusに投稿されたコメントや、トラックバックの文言を一括して学習データとして登録できる仕組みが備わっています。コメント欄が既にspamで一杯になっているような場合を除けば、これで初期の学習データをとしてしまうのがよいでしょう。
サイトを構築したばかりで、あまりコメントやトラックバックがない場合には他のspam対策プラグインを使ってspamを避けつつ、徐々にデータを蓄積していくことになります。初めのウチはあまり活躍することがないかもしれませんが、鍛えれば徐々に強力なフィルタになっていきます。
項目名 | デフォルト | 解説 |
---|---|---|
spam判定するためのスコアの閾値(0.00~1.00) | 0.95 | 確率がこの値を超えた場合にspamと判定します。 通常はデフォルトから変更する必要はありません*1。 |
無視する単語(カンマもしくはスペース区切り) | you the for and a | データベースに入れないようにする単語を指定できます。通常は必要ありません。 |
メニューに「全てを学習」を表示するか | いいえ | 導入初期に学習データを投入するためのメニューを表示します。通常は表示させる必要はありません。 |
管理画面の左メニューにSpamBayesを表示する | はい | 管理画面の左側メニューにSpamBayesの管理画面へのリンクを表示させることができます。 |
spamの履歴を保存 (DBに十分な容量が必要です。) | はい | フィルタの動作履歴を全て保存し、フィルタの動作状況を検証することができます。導入初期には「はい」にしておくことをおススメしますが、spamの投稿の具合によってはDBに大量にデータが登録されるので気をつける必要があります。 |
Yahoo!Japan AppID | (空欄) | Yahoo!Japanから発行されたアプリケーションIDを入力します。このプラグインの動作には絶対に必要になりますので、あらかじめ取得して置いてください。 |
アンインストール時に全てのデータを削除する | いいえ | アンインストール時に学習済みデータ等を全て削除するかどうかを指定します。 |
*1:0に近いほど判定はきつく、1に近いほど判定は緩くすることができます。ただし、フィルタは学習が進むほどspamであれば限りなく1に近い値を返し、spamでなければ0に限りなく近い値を返すようになる性質がありますので、変更しなくても問題になることはないはずです。
学習データの登録等を行うための独自の管理画面があります。
学習データの文例を登録します。
※spam/hamデータ共に登録が可能です。
学習済みのデータを削除します。
フィルタの動作履歴を表示します。
Bayesianフィルタがコメントやトラックバックをどのように判定したのかについての詳細を表示させることができます。さらに判定に誤りがある場合にはBayesianフィルタにそれを教えることができます。
これらの機能は運用初期における動作の微調整に有効です。
※表示されるデータは動作履歴のため、このデータは学習データとは区別されており、そのままでは判定にはされません。判定に使用したい場合にはこの画面から、学習データに移す必要があります。
(このメニューは動作履歴を残さない設定にしている場合には表示されません。)
このコマンドを実行すると、これまでに寄せられている全てのコメントをham(spamでないもの)として学習します。
あらかじめspamコメントは削除しておく必要があります。コメントの量によっては時間がかかる可能性があります。
(このメニューはオプションによって非表示にすることができます。)
上記の「全てのコメントをhamとして学習する」で学習したデータを全て削除します。
上記による学習の効果が芳しくなかった場合にのみ、実行してください。また、コメントの量によっては時間がかかる可能性があります。
(このメニューはオプションによって非表示にすることができます。)
このコマンドを実行すると、全ての公開済みトラックバックをhamとして学習します。
(このメニューはオプションによって非表示にすることができます。)
このコマンドを実行すると、全ての保留済みトラックバックをspamとして学習します。
(このメニューはオプションによって非表示にすることができます。)
前回の実行後に新たに登録されたコメントをhamとして学習します。該当するコメントがない場合は何もしません。
前回の実行後に新たに公開されたトラックバックをhamとして学習します。該当するトラックバックがない場合何もしません。
前回の実行後に新たに保留されたトラックバックをspamとして学習します。該当するトラックバックがない場合何もしません。
Bayesianフィルタの統計情報をアップデートします。統計情報は自動的にアップデートされるため、通常は実行する必要はありません。
実際に文例を入力して、Bayesianフィルタの動作をテストすることができます。
プラグインオプションページを開きます
作者向けに動作環境等を送信することができます。
プラグインの継続的改善のための情報収集にご協力ください。
ローカルにMecabがインストールされている場合には、それを形態素解析器として使うことができます。