MeCab&mecab-pythonをインストール その1
年末にMeCabのVersion 0.99がリリースされてましたねー
よりによってリリース日がクリスマスイブってww
ほい,てなわけでMeCab本体&Pythonバインディングのインストールです.
環境はWin7 64bit
本体のインストール
http://mecab.sourceforge.net/#download
ここからどうぞ.
僕はWindowsユーザーなのでソースからビルドしようとか無謀なことは考えずにバイナリ落としました.仕方ないね
Pythonバインディングのインストール
こっちはバイナリ配布されてないんで自力でビルドしないといけません.
VisualC++ 2008 Express Edition
をインストールしていない方は入れておいてください.
http://code.google.com/p/mecab/downloads/list
ここから
mecab-python-0.99.tar.gz
を落としましょう.
解凍してディレクトリ移動して
python setup.py build すると...
Traceback (most recent call last): File "setup.py", line 13, in <module> version = cmd1("mecab-config --version"), File "setup.py", line 7, in cmd1 return os.popen(str).readlines()[0][:-1] IndexError: list index out of range
怒られます.Windows用のバイナリパッケージにはmecab-configが含まれてないのが原因です.
なのでsetup.pyを書き換えてMeCabのバージョンとインストールパスを直接教えてあげましょう.
setup.py
#!/usr/bin/env python from distutils.core import setup,Extension setup(name = "mecab-python", version = '0.99', py_modules=["MeCab"], ext_modules = [ Extension("_MeCab", ["MeCab_wrap.cxx",], include_dirs=[r"C:\Program Files (x86)\MeCab\sdk"], library_dirs=[r"C:\Program Files (x86)\MeCab\sdk"], libraries=['libmecab']) ])
( http://www.freia.jp/taka/blog/759/ を参考にしました)
C:\Program Files (x86)\MeCab の部分は各自のインストールパスに合わせて書き換えてください.
これで
python setup.py build
python setup.py install
すればインストール完了です.やったねたえちゃん!形態素解析ができるよ!!
ところが...
サンプルは解凍したフォルダのtest.pyにあります.
これが動けば正しくインストールできたことになりますね.
% python test.py File "test.py", line 7 SyntaxError: Non-ASCII character '\xe5' in file test.py on line 7, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
エラーが出ましたがこの程度で慌ててはいけません.エンコーディング関連のエラーはPythonにはよくあることです(よくあっちゃ困るんだが).
これはスクリプトファイルの先頭でエンコーディングの指定をしてないのが原因なので,
#!/usr/bin/python の下(2行目)に
# -*- coding: utf-8 -*-
を追加しましょう.これで問題ないはずです.
C:\Users\hisa\Desktop\mecab-python-0.99>python test.py 0.99 (中略) Traceback (most recent call last): File "test.py", line 25, in <module> len = n.sentence_length; File "C:\Users\hisa\Desktop\mecab-python-0.99\MeCab.py", line 127, in <lambda> __getattr__ = lambda self, name: _swig_getattr(self, Node, name) File "C:\Users\hisa\Desktop\mecab-python-0.99\MeCab.py", line 54, in _swig_getattr raise AttributeError(name) AttributeError: sentence_length
また怒られた...
でもご安心ください.これはmecab-pythonのバグじゃなくて単なるtest.pyのバグです.
バグっつーか,MeCabは0.99で一部仕様変更したのですがtest.pyがそれに対応して書き換えられていないだけです.
なので使用変更に合わせて書き換えたtest.pyをこちらに...ですが長くなってきたので別エントリに
↓
http://d.hatena.ne.jp/fuyumi3/20120113/1326385607
追記:2012/01/18 ----------------------------------------------
最新版は↓です
http://d.hatena.ne.jp/fuyumi3/20120118/1326830586
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-