POPFileの使い方
更新履歴
- 2004/05/05 POPFile v0.21.1が出ています。APOPに対応しているインストーラーもあるので、APOPを使いたい人にはお勧めです。詳細は0.21.1のページを参照してください。
- 2004/03/15 POPFile v0.21.0が出ています。DBがBerkley DBからSQLiteに変わったようです。Corpusの変換をインストール時に行っているようですが、環境によっては処理に時間がかかっているようです。そのような人はv0.21.1のRC版を使うとよいようです。詳しくはこちら。
- 2003/12/01 この文書を作成
POPFile日本語版のためのパッチ
POPFile v0.20.0, v0.20.1のためのパッチが日本語化プロジェクトより出ています。Kakashiの分かち書きがうまくいかず、間違った分類がなされてしまうが表示上はきちんと分類されているように見えてしまうという問題が存在するそうです。詳細については上記リンク先の掲示板より確認し、パッチの適用をしてください。
POPFileでAPOPを利用する設定
POPFileがv0.21.1よりAPOP対応のインストーラーが出たのでAPOPを利用しやすくなりました。APOPのための設定方法を記述しておきます。
APOP対応POPFileをインストールする
APOP対応のPOPFileをインストールします。ダウンロードのページからダウンロードしてください。インストールは通常版と変わりません。インストールが完了したらPOPFileを起動します。
APOPの設定 Winbiffの場合
Winbiffでの設定方法を記述します。「ひらめーる」上でメニューの「ツール」から「ユーザー設定」を選択します。APOP対応のPOPFileを利用するアカウントを選択してプロパティボタンを押します。プロパティの「受信」タブを選択します。「サーバー名」をlocalhost、「ユーザー名」をPOPサーバー名:POPのアカウント名:apopとします。

次に「オプション」タブを選択します。「APOPを使う」のチェックマークをはずしておきます。これは、APOPはPOPFile側で行うため、メールクライアントは通常の接続方法でよいのです。

この設定でメールを取り込んでみましょう。POPFileのログを確認してAPOPで接続していることを確認してください。banner=''のところに文字列が入っていればAPOP接続がうまくいっています。
2004/5/5 14:23:50 2636: pop3: 449: +OK POP3 POPFile (v0.21.1) server ready 2004/5/5 14:23:50 2636: pop3: 204: Command: --USER XXXXXX-- 2004/5/5 14:23:50 2636: pop3: 292: Child proxy message LOGIN:tome 2004/5/5 14:23:50 2636: pop3: 639: Connected to mail.example.jp:110 timeout 60 2004/5/5 14:23:50 2636: pop3: 675: Connection returned: +OK Qpopper (version 4.0.5) at mail.example.jp starting. <12245.1083734630@mail.example.jp> 2004/5/5 14:23:50 2636: pop3: 684: banner='<12245.1083734630@mail.example.jp>' 2004/5/5 14:23:50 2636: pop3: 228: auth APOP 2004/5/5 14:23:50 2636: pop3: 449: +OK hello tome 2004/5/5 14:23:50 2636: pop3: 204: Command: --PASS XXXXXX-- 2004/5/5 14:23:50 2636: pop3: 260: digest='2b93dace6d311194d84d172cd4b78c0f' 2004/5/5 14:23:50 2636: pop3: 449: APOP tome 2b93dace6d311194d84d172cd4b78c0f 2004/5/5 14:23:50 2636: pop3: 449: +OK tome has 0 visible messages (0 hidden) in 0 octets. 2004/5/5 14:23:50 2636: pop3: 449: +OK password ok 2004/5/5 14:23:50 2636: pop3: 204: Command: --STAT-- 2004/5/5 14:23:50 2636: pop3: 449: STAT 2004/5/5 14:23:50 2636: pop3: 449: +OK 0 0 2004/5/5 14:23:50 2636: pop3: 204: Command: --QUIT-- 2004/5/5 14:23:50 2636: pop3: 449: QUIT 2004/5/5 14:23:50 2636: pop3: 449: +OK Pop server at mail.example.jp signing off.
POPFileの使い方
送られてくる迷惑メールを気にしないようにするためにPOP3で利用するスパムフィルタのPOPFileを導入しました。これはそのときのことを忘れないようにしておくためのメモです。参考になるかどうかはわかりません。
POPFileとは?
POPFileとは、メールをPOP3対応メールクライアントで受信する際に受信するマシンでプロキシサーバとして稼動し、受信したメールを解析して必要なメールかどうかを判定してくれるプログラムです。詳しい説明やインストール、使い方についてはPOPFileドキュメンテーションが参考になります。
POPFileはどうやってメールの解析を行っているか?
POPFileはベイジアン・フィルタというものを利用してメールの解析を行います。さらにベイジアン・フィルタはベイズ理論というものを利用しているそうです。詳細については検索エンジンなどで「ベイズ理論」をキーワードにして検索すると多くのサイトが見つかります。
POPFileを使うには?
POPFileを利用するにはPOPFileをメールを受信するマシンにインストールする必要があります。POPFileドキュメンテーションにステップごとになっているので参考になります。今回導入する環境は下記のとおりです。
OS: Windows2000 Professional SP4 メールクライアント: Winbiff
インストールするのは、Windowsで簡単にインストールできるPOPFile for Windows v0.20.1です。それ以外の環境では上級者用のクロスプラットフォーム版を導入する必要があるようです。今回インストールするバージョンはデフォルトで日本語対応しているようです。
POPFileのインストール
ダウンロードページで入手したら、zipファイルを展開してsetup.exeを起動します。起動すると言語を選択するボックスが表示されます。ここではJapaneseが選択されていることを確認してOKボタンをクリックします。

その後にPOPFileのセットアップウィザードが表示されます。「次へ」をクリックします。

POPFileのライセンス契約書が表示されます。インストールする前に一読し、このライセンス契約書に同意する場合には、チェックボックスにチェックを入れて「次へ」をクリックします。

インストールするコンポーネントを選択します。POPFile本体は必須で他は選ばなくても大丈夫になっていますが、今回は全て選択しています。選択が終わったら「次へ」をクリックします。

インストールする先のフォルダを選択します。ここではデフォルトの"C:\Program Files\POPFile"を選びます。選択したら「次へ」をクリックします。

POPFileをインストールする際のオプションを選択します。「POP3接続に使用するデフォルトポート番号」は、通常は110に設定します。「ユーザーインターフェースに使用するデフォルトポート番号」は通常は8080を利用します。後者については受信するマシンの8080ポートを別なプログラムが利用している場合には別なポートを指定する必要があるでしょう。「Windowsの起動時にPOPFileを自動的に起動する。(バックグラウンドで起動)」には今回はチェックを入れておきます。「インストール」をクリックするとインストールが行われます。

インストール後、ブラウザで受信するマシンの8080ポートにアクセスします。ブラウザのアドレスを入力する部分に"http://localhost:8080/"と入力してアクセスします。POPFileのコントロールセンターが表示されればインストールと起動は無事完了です。アクセスできない場合にはPOPFileが起動していない可能性がありますので、「スタート」→「プログラム」→「POPFile」→「Run POPFile」で起動してください。

バケツの作成
POPFileをインストールした後にバケツを作成するかどうかを確認されたかと思います。ここでは設定画面のスクリーンショットがありませんので文字だけで説明します。バケツとは、メールを分類する際の名前です。このメールは自分で必要なメールだからpersonalという分類にしよう、とか、このメールは勝手に送りつけてくる広告だからspamに分類しよう、というふうにバケツに名前をつけます。バケツはなるべく少なくしたほうがパフォーマンスがよくなりますので、ここでは迷惑メールかそうでないかで分類をすることにします。通常受け取るメールはpersonal、迷惑なメールはspamというバケツに分類することにします。
メールクライアントの設定
バケツを作成したら、次にPOPFileを介してメールを受信する設定を行います。方法はメールクライアントのPOPの設定で、POP3サーバ名をlocalhost、利用するユーザー名のところをPOP3サーバ名:ユーザー名という記述にします。こうすることによって従来は
----------- ------------ | 受信マシン | <=====> | POP3サーバ | ----------- ------------
と通信していたものを
----------- ---------- ------------ | 受信マシン | <=====> | POPFile | <=====> | POP3サーバ | ----------- ---------- ------------
というようにPOPFileを間に置くことによってメールの中身を解析することができます。
バケツの設定
POPFileのインストールとバケツの作成およびメールクライアントの設定が終われば後はメールの受信を行います。設定というほどのことはほとんどありません。POPFileでは受信したメールの履歴の分類にバケツの名前が書かれています。ここで間違えて分類されてしまったメールを再分類する、ということをメール受信時に繰り返すだけです。再分類を行うことによりPOPFileは学習していきます。自分が行った設定は「電子メールへのテキスト挿入機能」のうち、「件名の変更」をOFFに設定したのみです。ONに設定しておくと、spamバケツに分類されたメールの件名の先頭にspamの文字が入ります。

メールクライアントの振り分け設定
POPFileで分類されたメールにはX-Text-Classificationヘッダが付与され、分類されたバケツの名前がつけられます。自分の場合には、X-Text-Classification: spamとなったメールは自分の目には触れないようにしたいので受信時に振り分けをするように設定しています。Winbiffでは振り分け設定を行うことによりinboxに取り込んだ段階でTrashフォルダに振り分けることができますのでspamに分類されたメールが目に触れることはありません。Winbiffでは、ひらめーるの「メール」→「振り分け条件の追加」で設定します。ヘッダにX-Text-Classification、検索文字列にspamを含む、アクションに表示しないで削除 - inboxだけ有効に設定します。たまにPOPFileが誤って必要なメールをspamに分類してしまう場合もありますので、コントロールセンターの履歴を見てspamに分類されてしまっている場合にはpersonalに再分類してTrashフォルダのメールを元の振り分け先に戻す必要があります。

(2004/01/12追記) Mewでも設定を行ってみました。こんな感じのEMacs Lispを.mew.elに書けばよいようです。
;;; POPFile
(defun mew-spam-popfile (val)
(let ((case-fold-search t))
(if (string-match "spam" val) "+trash")))
(setq mew-scan-fields (delete mew-spam: mew-scan-fields))
(setq mew-spam: "X-Text-Classification:")
(setq mew-scan-fields (append mew-scan-fields (list mew-spam:)))
(setq mew-inbox-action-alist
'(("X-Text-Classification:" mew-spam-popfile)))
上記を書いておくと、X-Text-Classification:がspamになっているものをinboxに取り込んだ時点で+trashへのoマークをつけます。
使ってみての感想
2003年12月1日現在、利用を始めてから7日たちました。使ってみたところではspamがよく投稿されるメーリングリストのメールを全部spamに分類してしまうことがあります。今のところは再分類を行うことによって対応できるようです。分類精度は現在、92.92%でもうちょっと頑張ってもらいたいと思っています。
2003/12/03にWinbiffと共に使用していたところ、POPFileがハングアップするという問題が発生しました。Winbiffのログには
2003/12/03 16:29:06 POPサーバーとの通信中にエラーが発生しました。エラーコード [10053]
なるエラーが残っていましたがエラーコードの意味がわからないため原因を追いきれていません。
POPFileで使っているフィルタはPerlを利用しています。また、メール受信にかかる時間は解析している分だけ時間がかかります。
参考にしたサイト
POPFileの日本語化を行っているjishihaさんが発行しているメールマガジン。ご本人はシリコンバレーで働くエンジニアだそうな。
キーワード:
参照: