Windows7のpython3でMeCabを使いたい
Windows7(64bit)のpython3.5(32bit)で形態素解析をやりたかったけど、かなり手こずった話。
MeCab(utf-8でインストール済み)をpythonで使うにはmecab-python3を入れればいいらしい。
pipでインストールしようとしたらエラー。
SciPyの時もこんなだった。
これはめんどくさくなりそうな予感。
それで、別のラッパーを探した。
natto-pyというのもあるらしい。
今度はインストール成功。
しかし、いざ使おうとすると、文字コードでランタイムエラー。
python初心者の私にnatto-pyを書き変えて直せるだけのスキルはない。
mecab-python3に戻る。
頑張ってこれを手動でインストールしよう。
ネットの情報を見ながら、ソースコードを書き変えて、ビルド。
失敗。
vcvarsall.batが見つからないって。
Visual Studioが必要らしい。
インストールした。
すると今度は別エラー。
もうやってられん。
MeCabが駄目ならJUMANを使えば良いじゃない。
JUMAN++とPyKNPをインストール。
成功。
しかし、文字コードでランタイムエラー再び。
ああそっかWindows7でpythonを使うってこういうことなんだね。
ラッパーは諦めて、pythonでコマンドプロンプトを操作するやり方で、一応MeCabもJUMANも使えるようになった。
その後、pymecabというものを見つけた。
説明文にはnatto-pyを使ったラッパーと書いてある。
natto-pyはインストール済みなので、試しにpymecabを入れてみた。
すると、普通に使える。
コードの例はこんな感じ(全角スペース注意)。
from pymecab.pymecab import PyMecab
text="マスコミの岸田押しが酷い理由とか書いたら読む人はいるのだろうか"
mecab = PyMecab()
for token in mecab.tokenize(text):
print(token.surface, token.pos1,token.pos2)
if token.pos3=='人名':
print(token)
ちゃんと人名が抜き出せてる。
これまでの苦労は一体…。