RSS2.0

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 install
configure の --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 install
configure の --with-charset オプションには、辞書の文字コードを指定します。
デフォルトでは EUC-JP が使われるので、UTF8 を指定しておきます。

MeCab を使ってみる

コマンドラインから mecab コマンドを叩いて形態素解析してみた結果がこちら。
mecab を実行すると標準入力からの入力待ちになるので、分解したい日本語文を入力します。
$ mecab
ドラえもんのび太と雲の王国
ドラえもん	名詞,固有名詞,一般,*,*,*,ドラえもん,ドラエモン,ドラエモン
のび太	名詞,固有名詞,人名,名,*,*,のび太,ノビタ,ノビタ
と	助詞,並立助詞,*,*,*,*,と,ト,ト
雲	名詞,一般,*,*,*,*,雲,クモ,クモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
王国	名詞,一般,*,*,*,*,王国,オウコク,オーコク
EOS

とある魔術の禁書目録
とある	連体詞,*,*,*,*,*,とある,トアル,トアル
魔術	名詞,一般,*,*,*,*,魔術,マジュツ,マジュツ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
禁書	名詞,一般,*,*,*,*,禁書,キンショ,キンショ
目録	名詞,一般,*,*,*,*,目録,モクロク,モクロク
EOS
雲の王国、禁書目録なんかは 1 単語で解析してくれると最高なんですが、日本語辞書的にはこれであってますね。


  MeCabLinux  コメント (0) 2013/04/09 06:41:31


公開範囲:
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2024, 12>>
1234567
891011121314
15161718192021
22232425262728
2930311234