mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

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

[ pc_tips ] [ Cygwin ]

こんばんは。

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

少し前には、文章を意味のある単語に区切り、辞書を利用して品詞や内容を判別する「形態素解析」の仕組みである「 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 へ導入する場合のおまじないです。 ※文字コードも環境に合わせてください。

1
2
3
4
5
6
7
$ 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 時に以下のようなエラーが発生しました。

1
2
3
4
5
6
7
8
9
collect2: ld returned 1 exit status
Makefile:369: recipe for target </span>libmecab.la<span class="s1">&#39; failed</span>
</span><span class='line'><span class="s1">make[2]: *** [libmecab.la] Error 1</span>
</span><span class='line'><span class="s1">make[2]: ディレクトリ/usr/src/mecab-0.993/src' から出ます
Makefile:404: recipe for target </span>all-recursive<span class="s1">&#39; failed</span>
</span><span class='line'><span class="s1">make[1]: *** [all-recursive] Error 1</span>
</span><span class='line'><span class="s1">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 をインストールしました。

1
2
3
4
5
6
7
$ 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.動作確認

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

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

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

1
$ mecab infile -o outfile

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

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


以上です。

Comments