MeCab を使ってみた
Linux 環境で、UTF8 で使えるよう MeCab をビルドするところまでやってみました。MeCab は辞書に登録されている単語をもとに、日本語の文章を品詞に分解するソフトウェアです。
日本語の品詞分解に対するこのアプローチは形態素解析と呼ばれる手法で、もとにする辞書が充実していればしているほど精度が上がっていきます。
辞書に登録する語彙によって解析できる品詞が変わるため、辞書に学習させる過程による癖が出やすく、個人的には愛着の出やすい手法なのじゃないかと感じています。
しかし、逆に言えば言葉の移り変わりに応じて辞書のアップデートをしていかなければならず、また辞書をメンテしていくことで辞書ファイル自体のサイズが大きくなってしまうというデメリットがあります。
Mecab 自体はとても歴史のあるプロジェクトで、現在では Java や Python のバインディングまで提供されているため、かなり組み込みやすい環境が整っています。
Mecab をビルドする
現時点で最新版は 0.996 ですので、これを落としてきてビルドします。形態素解析のエンジンである MeCab 本体の他に、解析時に単語を参照する辞書が必要になりますのでこれもあわせて用意しておきます。
・MeCab 本体のソースコード
・IPA 辞書
ビルドに使うコンパイラには g++ が必要なので、あらかじめ yum で gcc-c++ をインストールしておきます。
MeCab 本体のビルド
$ tar xvfz mecab-0.996.tar.gz $ cd mecab-0.996/ $ ./configure --enable-utf8-only $ make $ make check # make installconfigure の --enable-utf8-only は UTF8 のみ扱うようにするオプションで、他の文字コード用の変換テーブルを含まずにビルドできるため、バイナリが小さくなるとのこと。
IPA 辞書のビルド
公式サイトでも辞書はいくつか用意されていますが、推奨とあったので素直に IPA 辞書をビルドしてみました。$ tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801/ $ ./configure --with-charset=utf8 $ make # make installconfigure の --with-charset オプションには、辞書の文字コードを指定します。
デフォルトでは EUC-JP が使われるので、UTF8 を指定しておきます。
MeCab を使ってみる
コマンドラインから mecab コマンドを叩いて形態素解析してみた結果がこちら。mecab を実行すると標準入力からの入力待ちになるので、分解したい日本語文を入力します。
$ mecab ドラえもんのび太と雲の王国 ドラえもん 名詞,固有名詞,一般,*,*,*,ドラえもん,ドラエモン,ドラエモン のび太 名詞,固有名詞,人名,名,*,*,のび太,ノビタ,ノビタ と 助詞,並立助詞,*,*,*,*,と,ト,ト 雲 名詞,一般,*,*,*,*,雲,クモ,クモ の 助詞,連体化,*,*,*,*,の,ノ,ノ 王国 名詞,一般,*,*,*,*,王国,オウコク,オーコク EOS とある魔術の禁書目録 とある 連体詞,*,*,*,*,*,とある,トアル,トアル 魔術 名詞,一般,*,*,*,*,魔術,マジュツ,マジュツ の 助詞,連体化,*,*,*,*,の,ノ,ノ 禁書 名詞,一般,*,*,*,*,禁書,キンショ,キンショ 目録 名詞,一般,*,*,*,*,目録,モクロク,モクロク EOS雲の王国、禁書目録なんかは 1 単語で解析してくれると最高なんですが、日本語辞書的にはこれであってますね。
MeCab, Linux コメント (0) 2013/04/09 06:41:31