Cygwin - 形態素解析 MeCab をインストール!

更新日時:


株式関連の話が続きましたが、今日は気分転換に別のお話です。

少し前には、文章を意味のある単語に区切り、辞書を利用して品詞や内容を判別する「形態素解析」の仕組みである「 MeCab 」を Windows マシンに導入しました。

今回は、Cygwin 上に「 MeCab 」インストールしてみました。 いずれ、Cygwin + Ruby で形態素解析を行うための準備です。

以下が、導入記録です。

記録

MeCab: Yet Another Part-of-Speech and Morphological Analyzer では、当記事執筆時点では MeCab 0.993 が最新でした。 しかし、0.99x 系は Cygwin では make でエラーとなるので、今回は 0.98 をインストールしました。

1.事前準備

Cygwin 上に MeCab をインストールするには、ソースを取得してビルド&インストールします。 Cygwin に以下のパッケージが導入されていなければ、Cygwin の setup.exe 等でインストールしておく。

  • gcc-g++
  • make
  • expat
  • gettext
  • gettext-devel
  • libiconv
  • libtool

2.MeCab 本体の導入

以下の要領でアーカイブのタウンロード・展開、そして configure, make, make install します。 ※configure のオプション “CPPFLAGS=-DNOMINMAX LIBS=-liconv” は Cygwin へ導入する場合のおまじないです。 ※文字コードも環境に合わせてください。

$ cd /usr/src
$ wget http://mecab.googlecode.com/files/mecab-0.98.tar.gz
$ tar zxvf mecab-0.98.tar.gz
$ cd mecab-0.98
$ ./configure --with-charset=utf-8 CPPFLAGS=-DNOMINMAX LIBS=-liconv
$ make
$ make install

ちなみに 0.99x では make 時に以下のようなエラーが発生しました。

collect2: ld returned 1 exit status
Makefile:369: recipe for target `libmecab.la' failed
make[2]: *** [libmecab.la] Error 1
make[2]: ディレクトリ `/usr/src/mecab-0.993/src' から出ます
Makefile:404: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: ディレクトリ `/usr/src/mecab-0.993' から出ます
Makefile:271: recipe for target `all' failed
make: *** [all] Error 2

また、configure 時に “CPPFLAGS=-DNOMINMAX LIBS=-liconv” のオプションを付加しない方法もありますすが、当方の場合、インストールできても文字コードの部分でバランスが取れませんでした。(入力文字列とMeCab側の文字で文字コードが一致しない!)

3.MeCab 辞書の導入

MeCab の辞書には IPA, Juman, Unidic がありますが、推奨の IPA をインストールしました。

$ cd /usr/src
$ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf-8
$ make
$ make install

4.動作確認

以下のように動作確認をします。

$ mecab
これはMeCabの動作テストです
これ    名詞,代名詞,一般,*,*,*,これ,コレ,コレ
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
MeCab   名詞,固有名詞,組織,*,*,*,*
の      助詞,連体化,*,*,*,*,の,ノ,ノ
動作    名詞,サ変接続,*,*,*,*,動作,ドウサ,ドーサ
テスト  名詞,サ変接続,*,*,*,*,テスト,テスト,テスト
です    助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS

テキストファイルを読み込ませて、結果を別のテキストファイルへ出力するなら、以下のようにします。 ※今回の環境は UTF-8 なので、infile も UTF-8 にする必要があります。

$ mecab infile -o outfile

※出力フォーマットは以下の通り。

表層形\t品詞,品詞細分類1,品詞細分類2,品詞細分類3,
活用形,活用型,原形,読み,発音

以上です。

タグ:

カテゴリー:

更新日時:


 

Sponsored Link

 

コメントする