2008年2月16日

[SpamAssassin-JP 645] Re:日本語テストルールの自動作成スクリプト

** SpamAssassin メーリングリスト **
** 注意:このメールへの返信は SpamAssassin-jp へ行きます **
滝澤です。

日本語のテストルールの自動作成スクリプトと作成したルールを更新しました。
以下の場所に置いています。
http://spamassassin.jp/download/experimental/taki/

hamコレクションによる補正を加えてみました。
ビジネスメール4000通ほど加えてみると結構いい感じに補正されています。

実行した結果として興味深いのはspamメールは語彙数が少ないというのが明確に
わかりました。spamメールは通常のメールの約半分の語彙数しかないです。
次のものはスクリプトの実行時に報告された情報です。
The spam words:
The number of Japanese words : 1447778
The number of uniq words : 44771
The ham words:
The number of Japanese words : 1566282
The number of uniq words : 102275


On 02/13/2008 06:18 PM, OKI Miyuki wrote:
>> 日本語のテストルールの自動作成スクリプトを作ってみました。
>> 以下の場所に置きました。
>> http://spamassassin.jp/download/experimental/taki/
>
>  さっそく、拝見しました。romanize_token がカッチョいいですネ…
> って、変なところに関心して(^^;

実は、ルール名の自動生成が最大の力のいれどころだったりします。

>  でも、いくらかのスパムと突き合わして見ましたが、マッチしない
> ものは、意外にマッチしないです。
>
>  有効に活用するためにパッと思いついた公式は
>
> N = Count( マッチしたルールの数 )
>
> if( N > 3 ) {
> 1.618 ^ N
> # 洒落て黄金比を使ってみたけど過激なら
> 1.1 ^ N
> # ありふれた言葉も結構あるので、ここら辺は ham を間引いて
> # べき乗する値を上げるか、間引かないで下げるか…
> } else {
> 0.1 * N
> }
> こんなルールって記述できるんだろうか...です。

perldoc Mail::SpamAssassin::Conf
でドキュメントを見てみると、metaテストで次のようなことはできます。
meta META2 (3 * TEST1 - 2 * TEST2) > 0
しかし、ひたすらテスト名を式に書くのも見苦しいので難しいです。

> 時間が取れた時に、ツールを使って実際のスパム・ハムのメールで、
> 比較してみようと思います。

ルールファイルを更新しましたので、沖さんのところでも試してみていただけると
ありがたいです。
積極的にspamメールを検出しようとするのであれば、スコアを底上げするか、
2倍くらいにするとちょうど良いのかもしれません。
私もこれから自宅のマシンの実運用環境で継続的評価をして、問題がなければ、
スコアを少し上げるようにしてみます。

--
滝澤 隆史 (Takashi Takizawa)
株式会社サードウェア 開発部
ThirdWare Co., Ltd.
http://www.3ware.co.jp/

--
SpamAssassin メーリングリスト
http://mm.apache.jp/mailman/listinfo/spamassassin-jp

投稿者 xml-rpc : 2008年2月16日 15:45
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69811
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。