This is an old revision of the document!
日本語の文章には、英語と違って単語の間に空白(スペース)がありません。このため、ベイジアンフィルタを使ってメールの分析をするためには、メールの本文を単語ごとに分割する(分かち書き)必要があります。POPFile では、Kakasi を使ってこれを実現しています。
現在のバージョンの POPFile では分かち書きに使用するプログラムを変更することはできませんが、MeCab を使うためのパッチが現在テスト中です。POPFile の次のメジャーバージョンアップ(0.23 を予定)に含められればと思っています。テストにご協力いただける方を募集中です。動作状況については、 POPFile フォーラムへご報告ください。
POPFile にパッチを当てることにより、分かち書きに使用するプログラムとして Kakasi の代わりに MeCab を使うことができます。MeCab を使うことによるメリットは、
などがあります。逆に、
というデメリットがあります(ハードディスクの容量が大きくなっている現在ではほとんど問題にならないでしょうが)。
パッチは以下で入手することができます。クロスプラットフォーム版を使用している場合は zip ファイルを展開し、POPFile/Classifier フォルダの Bayes.pm と MailParse.pm を入れ替えます。Windows 版を使用している場合でも同じですが、専用のインストーラも用意されています。
このパッチには、分かち書きに MeCab を使う以外に、単純に文字種によって分割する機能や、ほかのバグ修正、若干のパフォーマンス向上が含まれています。パッチを適用する前には、必ず POPFile のデータおよびプログラムを[JP:HowTos:Backup | バックアップ]してください。
パッチの入手先:
パッチは MeCab 0.91 以降でのみ動作します(0.91 および 0.92 にて動作確認)。MeCab と mecab-perl(Perl モジュール)、MeCab の辞書として ipadic をインストールします。
パッチを適用するのに必要な環境は、
準備するものは、
POPFile から MeCab が使用できるようにするため、Perl モジュールを POPFile/lib 以下にコピーする必要があります。具体的には、
のようにコピーします(デフォルトインストールの場合)。
ActivePerl がインストールされていない場合は、 ppm でダウンロードされるファイルを直接ダウンロード&展開し、上記と同様に POPFile/lib 以下のフォルダにコピーします。
Windows 環境では、下記のインストーラを使うのが最も楽でしょう。
MeCab 0.91 + 辞書 + パッチ インストーラ:
MeCab と mecab-perl のバージョン 0.91 以降をインストールします。インストール方法などについては MeCab ホームページを参照してください。辞書ファイルは、MeCab と一緒に公開されている ipadic をインストールします。
ipadic は、そのままインストールすると半角英数字や半角記号が分割されてしまい、HTML の分析などに支障が生じるため、辞書の設定ファイル(char.def)において、文字種の定義が行われている部分(CODE(UCS2) TO CATEGORY MAPPING のところ)を修正します。
# ASCII 0x0021..0x002F SYMBOL 0x0030..0x0039 NUMERIC 0x003A..0x0040 SYMBOL 0x0041..0x005A ALPHA 0x005B..0x0060 SYMBOL 0x0061..0x007A ALPHA 0x007B..0x007E SYMBOL
カテゴリ(一番右端の SYMBOL や NUMERIC と書かれたところ)をすべて「ALPHA」に統一してしまうことにより、分割されてしまうことを防ぐことができます。クロスプラットフォーム版でも、 修正済みの辞書 を利用することができます。
パッチを適用しただけでは、分かち書きのプログラムはデフォルトの Kakasi を使用するようになっています。POPFile UI の詳細設定タブを開き、bayes_japanese_parser パラメータの値を mecab に変更し、POPFile を再起動することによって、MeCab を使用するようになります(もし MeCab のインストールに失敗していた場合は引き続き Kakasi が使われます。正常に動作しているかどうか確認するには、もう一度詳細設定タブを開いて、bayes_japanese_parser パラメータの値が mecab になっているかどうかを調べてみてください)。
bayes_japanese_parser パラメータの値を simple に変更することにより、Kakasi も MeCab も使わず、単純に文字種(ひらがな、カタカナ、漢字、英数字など)によって分割する機能を使うことができます。クロスプラットフォーム版を使っている場合などで、Kakasi も MeCab も使用したくない場合などに便利かもしれません。正確な分かち書きではないため、若干精度が落ちる可能性がありますが、しばらくテストした感じでは、それほど影響はないようです。
参照:
Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.