MeCab-Python導入

Python33にMeCab導入

MeCabは自然言語処理に使われる。作者が食べ物のメカブ好きなので名前がついた。
(追記2015年12月9日) 環境はPython 32bit。Python64bitへの導入は挫折しました。

手順

WindowsにPython33に導入するには、

  1. ここからmecab-0.996.exeをダウンロード、実行。文字コードはpythonデフォルトのutf-8にしないと後で再インストールすることになる。
  2. Python2系用のMeCab-Pythonをダウンロードする。
  3. setup.pyをPython3用、windows用に書き換える (下記参照)
  4. Python setup.py installをコマンドプロンプト、もしくは何かしらのターミナルで実行。
  5. そこで、 C:\Python33\Lib\site-packages 内に C:\Program Files (x86)\MeCab\bin\libmecab.dll をコピー。
参考文献にあるようなmecab.hに追記は必要なかった。

VISUAL STUDIO 2010 EXPRESS,
WINDOWS SDK (windows 7, 8用がそれぞれある)
の順番でインストールする必要あり

追記(Feb 2, 2015): 3では次のように書き換えた。
今回、MeCabがインストールされているのはProgram Files (x86)直下であった。

 
#!/usr/bin/env python
 
from distutils.core import setup,Extension,os

def cmd1(str):
    return os.popen(str).readlines()[0][:-1]

def cmd2(str):
    return cmd1(str).split() 

setup(name = "mecab-python",
        version = "0.996",
        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"])
                        ])


これでimport MeCab -versionとすれば、インストールできたかどうか確認できる。

メカブのインストールフォルダにパスを通すと引用元には書いてあるが、その場合コマンドプロンプトからはimport MeCabができたが、Python IDLE上ではdllファイルが見つからないと言われた。

とりあえず使ってみる


import MeCab

m = MeCab.Tagger('-Ochasen')

print(m.parse('国境の長いトンネルを抜けるとそこは雪国だった'))
と入力すると

国境    コッキョウ      国境    名詞-一般
の      ノ      の      助詞-格助詞-一般
長い    ナガイ  長い    形容詞-自立     形容詞・アウオ段        基本形
トンネル        トンネル        トンネル        名詞-一般
を      ヲ      を      助詞-格助詞-一般
抜ける  ヌケル  抜ける  動詞-自立       一段    基本形
と      ト      と      助詞-接続助詞
そこ    ソコ    そこ    名詞-代名詞-一般
は      ハ      は      助詞-係助詞
雪国    ユキグニ        雪国    名詞-一般
だっ    ダッ    だ      助動詞  特殊・ダ        連用タ接続
た      タ      た      助動詞  特殊・タ        基本形
EOS


fatal error C1083: include ファイルを開けません。'mecab.h': No such file or directory

(February 1, 2015 追記)

Python 3.4にインストールしようとしたら、次のエラーを受け取った。カレントディレクトリをsetup.pyのあるところまで移動して、setup.pyを実行することで解決。どうやら、setup.pyはカレントディレクトリで動くようだ。
running install
running build
running build_py
running build_ext
building '_MeCab' extension
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo /Ox
 /MD /W3 /GS- /DNDEBUG "-IC:\Program Files\MeCab\sdk" -Ic:\Python_venv\include -
IC:\Python34\include -IC:\Python34\include /TpMeCab_wrap.cxx /Fobuild\temp.win32
-3.4\Release\MeCab_wrap.obj
MeCab_wrap.cxx(3052) : fatal error C1083: include ファイルを開けません。'mecab.h
': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN\\
cl.exe' failed with exit status 2

UnicodeDecodeError: 'utf-8' codec can't decode bytes

(February 2, 2015 追記)

setup.pyの中身が間違っていた。上記のコードを上書きしたところ、うまくインストールできた。pip freezeを見てもmecab-pythonが入っている。エラー内容は下記。

>>> m.parse('あ')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".\MeCab.py", line 281, in parse
    def parse(self, *args): return _MeCab.Tagger_parse(self, *args)
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 0-1: invalid co
ntinuation byte

インストールできた

MeCabを辞書utf-8にするのに注意してインストールし直し、再びpython setup.py installでpythonにインストールしたところ、動くようになりました。

コメント

  1. シルフィン2015年3月10日 20:26

    Windows7、Mecab-0.996、python3.4.3で、Mecab-python0.996をインストールしようとしたところ、以下の様なエラーが出ました。

    ----------------------------------------------------------------------------------------------------------
    running install
    running build
    running build_py
    running build_ext
    building '_MeCab' extension
    C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo /Ox
    /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\MeCab\sdk" -IC:\Python34\includ
    e -IC:\Python34\include /TpMeCab_wrap.cxx /Fobuild\temp.win32-3.4\Release\MeCab_
    wrap.obj
    MeCab_wrap.cxx
    MeCab_wrap.cxx(3747) : warning C4530: C++ 例外処理を使っていますが、アンワインド
    セマンティクスは有効にはなりません。/EHsc を指定してください。
    MeCab_wrap.cxx(5583) : error C2039: 'set_result' : 'MeCab::Lattice' のメンバーで
    はありません。
    C:\Program Files (x86)\MeCab\sdk\mecab.h(778) : 'MeCab::Lattice' の宣言
    を確認してください。
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\BIN\\
    cl.exe' failed with exit status 2

    ---------------------------------------------------------------------------------------------------------------

    setup.pyの書き換え、Visual C++2010 Express及び、Microsoft Windows SDK for Windows 7 and .NET Framework 4のインストールも行ったのですが、上記のようなエラーが出てしまいます。もし宜しければ、対処法を教えて頂けないでしょうか? よろしくお願いします。

    返信削除
    返信
    1. シルフィン2015年3月10日 22:13

      すいません、自己解決しました。 ありがとうございました。

      削除

コメントを投稿

人気の投稿