形態素解析エンジン MeCab 0.98pre3 野良ビルド
MeCab 0.98pre3 の Python バインディングを Windows XP Pro, MinGW, Python 2.5.4 and Python 2.6.2 という環境でコンパイルしてみた。晒してみる。
方法は昨年11月の『形態素解析エンジン MeCab 0.97 とその Python バインディングを MinGW でビルドする - 銀月の符号』とほぼ変わらず。違いは C:\python26\include, C:\Python26\libs を環境変数 C_INCLUDE_PATH, LIBRARY_PATH に入れていないことくらい。 distutils(つまり setup.py) を用いてビルドする際には不要ということがわかったので。
出来上がったもの
使い方
上記のセット libmecab-1.dll, MeCab.py, _MeCab.pyd, ipadic をディレクトリ(スペース、マルチバイト文字を含まないこと)にまとめる。さらに mecabrc 設定ファイルをつくる。 mecabrc の中身は空でよいが、辞書を指定するようにしておくと後で楽。
dicdir = ipadic
これで準備完了。 Hello Mecab プログラムはこのような感じ。 -r オプションで mecabrc のパスを指定する。 MeCab とのやり取りはユニコード文字列ではなく、辞書と同じエンコーディング(今回は UTF-8)に直したバイト列で行う。
>>> import MeCab >>> s = u'すもももももももものうち' >>> tagger = MeCab.Tagger('-r mecabrc') >>> result = tagger.parse(s.encode('utf-8')) >>> result = result.decode('utf-8') >>> print result すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
mecabrc が空で辞書を指定していない場合は -d オプションを付けて辞書を指定するようにすればよい。
>>> tagger = MeCab.Tagger('-r mecabrc -d ipadic')
より詳しい MeCab SWIG バインディングの説明は本家の http://mecab.sourceforge.net/bindings.html を参照。