This is an old revision of the document!


分かち書きに Kakasi 以外のプログラム(例えば MeCab など)を使用する

日本語の文章には、英語と違って単語の間に空白(スペース)がありません。このため、ベイジアンフィルタを使ってメールの分析をするためには、メールの本文を単語ごとに分割する(分かち書き)必要があります。POPFile では、Kakasi を使ってこれを実現しています。

現在のバージョンの POPFile では分かち書きに使用するプログラムを変更することはできませんが、MeCab を使うためのパッチが現在テスト中です。POPFile の次のメジャーバージョンアップ(0.23 を予定)に含められればと思っています。テストにご協力いただける方を募集中です。動作状況については、 POPFile フォーラムへご報告ください。

分かち書きに MeCab を使う

POPFile にパッチを当てることにより、分かち書きに使用するプログラムとして Kakasi の代わりに MeCab を使うことができます。MeCab を使うことによるメリットは、

  • メール処理の高速化
  • 分かち書き精度の向上

などがあります。逆に、

  • 辞書ファイルのサイズが大きい

というデメリットがあります(ハードディスクの容量が大きくなっている現在ではほとんど問題にならないでしょうが)。

パッチをインストールする

パッチは以下で入手することができます。クロスプラットフォーム版を使用している場合は zip ファイルを展開し、POPFile/Classifier フォルダの Bayes.pm と MailParse.pm を入れ替えます。Windows 版を使用している場合でも同じですが、専用のインストーラも用意されています。

このパッチには、分かち書きに MeCab を使う以外に、単純に文字種によって分割する機能や、ほかのバグ修正、若干のパフォーマンス向上が含まれています。パッチを適用する前には、必ず POPFile のデータおよびプログラムを[JP:HowTos:Backup | バックアップ]してください。

パッチの入手先:

MeCab をインストールする

パッチは MeCab 0.91 以降でのみ動作します(0.91 および 0.92 にて動作確認)。MeCab と mecab-perl(Perl モジュール)、MeCab の辞書として ipadic をインストールします。

Windows 版

パッチを適用するのに必要な環境は、

  • POPFile 0.22.4 (Windows 版)
  • ActivePerl 5.8.x (必ずしも必須というわけではありません。インストールしない場合の方法は後述)

準備するものは、

  • mecab-perl 0.91 以降( ナマズのブログを参考に、ppm を使ってダウンロード、インストールしてください)
  • mecab-ipadic (上記ページを参考に、ダウンロード&展開し、所定の場所にコピーします。環境変数もあわせて設定してください)<br>POPFile で使うためには、そのままでは問題があるため、辞書に若干修正を加える必要があります(修正内容はクロスプラットフォーム版を参照)。 修正済みの辞書を入手してインストールすることもできます。
  • MeCab を使うパッチ (上記からダウンロードします)

POPFile から MeCab が使用できるようにするため、Perl モジュールを POPFile/lib 以下にコピーする必要があります。具体的には、

  • C:\Perl\site\lib\MeCab.pmC:\Program Files\POPFile\lib\MeCab.pm
  • C:\Perl\site\lib\auto\MeCab (フォルダ) → C:\Program Files\POPFile\lib\auto\MeCab

のようにコピーします(デフォルトインストールの場合)。

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 も使用したくない場合などに便利かもしれません。正確な分かち書きではないため、若干精度が落ちる可能性がありますが、しばらくテストした感じでは、それほど影響はないようです。

参照:

FAQ 初心者・初学者向けのQ&A集

POPFile ドキュメンテーションプロジェクト

 
jp/faq/mecab.1169631862.txt.gz · Last modified: 2008/02/08 19:49 (external edit)

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.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License