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

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

POPFile 1.0.0 より、分かち書きに使用するプログラムを変更する機能が搭載されました。標準の Kakasi 以外に、MeCab と内蔵パーサ(文字種(漢字、ひらがな、カタカナなど)による単純な分割)から選択することができます。

MeCab は Kakasi に比べ辞書ファイルが大きくなりますが(IPA 辞書 使用時で約 40MB。Kakasi は約 2MB)、分かち書きの精度が高く、環境にもよりますが Kakasi よりも高速に動作します。

内蔵パーサは Kakasi や MeCab といった外部プログラム(モジュール)が不要なため、クロスプラットフォーム版の導入時などに便利です。しかし、辞書を使用せずに単純に文字の種類だけを頼りに分かち書きを行うため、分かち書きの精度は高くありません。動作速度については辞書を使用しないため非常に高速です。

分かち書きプログラムのインストール

Windows 版

POPFile 1.0.0 以降の Windows 版のインストーラには、分かち書きに使用するプログラムを選択する機能が搭載されています。インストーラの言語指定で「Nihongo」を選択するとプログラムの選択画面が現れますので、使用したいものを選択してください。初期設定では、POPFile 0.22.5 以前と同様に Kakasi がインストールされます。どれを選ぶべきかわからない場合は、Kakasi を選択するとよいでしょう。

Kakasi あるいは MeCab を選択した場合、それぞれのプログラム(モジュール)と辞書が自動的にインストールされます。Kakasi と辞書はインストーラに内蔵されていますが、MeCab は内蔵されていないため、インターネットから自動的にダウンロードされ、インストールされます。

インストール時に選択したプログラムが使用されるように POPFile の設定が自動的に変更されます。

POPFile インストール後に分かち書きに使用するプログラムを追加インストールすることもできます。コントロールパネルの「プログラムの追加と削除」で POPFile の項目を選択し、「変更」をクリックしてウィザードに従ってください。あるいは、スタートメニューからプログラム→POPFile→Uninstall POPFile から追加することもできます。

クロスプラットフォーム版

分かち書きに使用したいプログラム(モジュール)と辞書ファイルをインストールします(内蔵パーサを使用する場合は必要ありません)。プログラム本体、辞書ファイル、Perl モジュールをインストールする必要があります。インストール方法については( Kakasi を使用する MeCab を使用する)を参照してください。

POPFile は Kakasi 2.3.4+Text::Kakasi 1.05/2.04、MeCab 0.96+MeCab Perl バインディング 0.96+IPA 辞書 で動作確認されています。MeCab についてはバージョン 0.91 以前のバージョンでは動作しませんのでご注意ください。

分かち書きプログラムの切替方法

Windows 版のインストーラを利用する場合は、インストール時に分かち書きのプログラムを選択することができます。インストール後に設定を変更したい場合は、まずコントロールパネルの「プログラムの追加と削除」で必要なモジュールをインストールしてください。必要なモジュールがインストールされていない場合、設定を変更しても有効になりません。

POPFile UI の詳細設定タブを開き、bayes_nihongo_parser パラメータの値を変更(kakasi、mecab、internal のいずれか)し、POPFile を再起動させます。

  • kakasi : Kakasi が使用されます。
  • mecab : MeCab が使用されます。
  • internal : 内蔵パーサ(文字種による分割)が使用されます。

Kakasi や MeCab が正常にインストールされていない場合は、MeCab → Kakasi → 内蔵パーサの順に使用するプログラムが自動的に変更されます(すなわち、MeCab も Kakasi もインストールされていない場合は内蔵パーサが使用されることになります)。現在どのプログラムが使用されているかを確認するには、POPFile UI の詳細設定タブを開き、bayes_nihongo_parser の値を確認してください。

注意: 分かち書きのプログラムを変更することにより、POPFile の分類精度が一時的に低下する可能性があります。これは、プログラムによって分割される位置が異なることにより、学習や分類に使用される文字列が変わってしまうことが原因です。しかしながら、この影響は大きなものではなく、そのまま使用し続けることによって高い分類精度を実現することが可能です。

分かち書きプログラムの比較

Kakasi(漢字→かな(ローマ字)変換プログラム)

  • POPFile 0.22.5 までのバージョンで使われていたプログラムです。
  • MeCab に比べ辞書ファイルのサイズが小さくてすみます(MeCab 約 40MB に対して約 2MB)が、分かち書きの精度は(ひらがなやカタカナで構成される単語の情報が含まれていない、などのために)MeCab に比べると低いです。

MeCab(Yet Another Part-of-Speech and Morphological Analyzer)

  • メールの処理速度が Kakasi に比べて向上します(環境によっては Kakasi とあまり変わらないこともあります)。
  • 分かち書き精度が Kakasi に比べて向上します(POPFile の分類精度については必ずしも向上するとは限りません)。
  • 辞書ファイルのサイズが大きくなります(Kakasi 約 2MB に対して約 40MB)。

内蔵パーサ(文字種による分割)

  • メールの処理速度が Kakasi や MeCab に比べて向上します。
  • 外部モジュールが不要です(クロスプラットフォーム版の導入時などに便利です)。
  • 分かち書き精度が Kakasi や MeCab に比べて低下します(POPFile の分類精度については必ずしも低下する訳ではありません)。

POPFile の分類精度比較について

2 万通あまりのメールを使用して、Kakasi、MeCab、内蔵パーサ(文字種による分割)を使った場合の 分類精度を比較したデータ があります。どのプログラム(パーサ)を使用した場合でも分類精度にはほとんど違いがないという結果が出ています。

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

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

 
jp/faq/mecab.txt · 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