Develop and Download Open Source Software

How to use bsfilter

1. ざっくり、どうなっているの?

1.1. 単語(token)のspam確率から判定する

あらかじめtokenごとのspam確率を求めておき、メールの中にspam確率の高いtokenが多く含まれていたら、そのメールがspamであると判定する。

1.2. 準備が必要

実際に使用を開始する前に、spam確率を求めるという準備が必要である。判定済のメール内のtoken出現回数を求め、spam / (clean + spam)により確率を求める。--add-clean, --add-spam, --updateというコマンドで準備を行う。

2. やってみよう

2.1 準備

実際に判定する前に、データベースを準備する必要がある。

2.1. cleanなメール中の単語を数える。

% bsfilter --add-clean ~/Mail/inbox/*

2.2. spam中の単語を数える。

% bsfilter --add-spam ~/Mail/spam/*

2.3. 単語ごとにclean/spamな確率を求める。

% bsfilter --update

以上で準備完了。

2.2 判定

  • コマンドライン引数で判定対象のメールを指定する例。0から1の範囲で、spam確率が表示される。
    % bsfilter ~/Mail/inbox/1
    combined probability /home/nabeken/Mail/inbox/1 1 0.012701
  • 標準入力から判定対象のメールを入力する例。spamの場合、exit statusが0になる。
    ~% bsfilter < ~/Mail/inbox/1 ; echo $status
    1
    ~% bsfilter < ~/Mail/spam/1 ; echo $status
    0
  • ~/.procmailrcから呼ぶときのサンプルレシピその1。exit statusを利用して、spamをspamフォルダに移動する。
    :0 HB:
    * ? bsfilter -a
    spam/.
  • ~/.procmailrc</code>から呼ぶときのサンプルレシピその2。spamに X-Spam-Flag:、X-Spam-Probability:ヘッダを追加し、X-Spam-Probabilityの示す確率に従い、blackフォルダ、grayフォルダに移動する。
    :0 fw
    | /home/nabeken/bin/bsfilter --pipe --insert-flag --insert-probability
    :0
    * ^X-Spam-Probability: *(1|0\.[89])
    black/.
    :0
    * ^X-Spam-Probability: *0\.[67]
    gray/.

3. 使い方

コマンドラインの形式

以下の2通りの形式がある。

maintenance modeとfiltering modeがある。

  1. commandsが指定されているときは、maintenance modeで動作し、データベースの更新を行なうが、spamの判定は行わない
  2. commandsが指定されていないときは、filtering modeで動作し、spamの判定を行なうが、データベースの更新は行わない
  3. filtering modeで--(synchronous-)auto-updateが指定されているときは例外で、spamの判定、データベースの更新、両方を行う

標準入力からメールを与え、spamかどうか判定させるには、filtering modeで1の形式を使用する。
spamの場合は、exit statusが0になる。~/.procmailrc</code>から呼び出す場合は、通常、この形式になる。

コマンドライン引数でメールのファイルネームを与え、spamかどうか判定させる際には、filtering modeで2の形式を使用する。
複数のメールを同時に判定することが出来る。結果は標準出力に表示される。

コマンド一覧

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.