Help us understand the problem. What is going on with this article?

MeCabをPython3上から使えるようにする

More than 5 years have passed since last update.

Python3からMeCabを使う方法がWebを調べても見つけられなかったので自力で何とかした。ここに使えるようにするまでのメモをまとめます。

問題と解決方法

以下の問題が発生していました。

  • mecab-python:
    (GoogleCodeから落としてきたmecab-pythonのsetup.pyをpython3からbuild出来ない。)
  • mecab:
    (初回のパース処理でnode.surfaceが空になる現象が発生する。)

これに対してGoogleCodeのMeCabページにあるIssueのうち2件の修正を適用する事で解決させます。Python3への対応はmecab-pythonの修正のみで可能です。しかし、MeCab本体のバグを修正しなければPython上で使った時にパース処理でバグります。そのため、MeCab自体も修正パッチを当てて新たにビルドしたものをインストールして使います。

当環境で行った操作

使用するパッチのURLには変なtokenが付いていたので、代わりにIssueへのリンクを書きました。そのため、パッチはブラウザを用いてリンク先で取得してください。また、事前にg++, python3-devが必要です。

$ wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar -zxvf mecab-0.996.tar.gz
$ wget request_type.patch(リンク先で取得)
$ cd ~/mecab-0.996
$ patch -u < ../request_type.patch
$ ./configure --enable-utf8-only
$ make
$ sudo make install

$ wget https://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=utf8
$ make
$ sudo make install

$ wget https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz
$ tar -zxvf mecab-python-0.996.tar.gz
$ wget MeCab.py(リンク先で取得)
$ wget MeCab_wrap.cxx(リンク先で取得)
$ mv MeCab.py mecab-python-0.996/
$ mv MeCab_wrap.cxx mecab-python-0.996/
$ cd ~/mecab-python-0.996
$ vi setup.py

python3向けの修正を適用(http://anond.hatelabo.jp/20121113070853)
return string.split (cmd1(str)) を
return cmd1(str).split() に書き換える。

$ python3 setup.py build
$ sudo python3 setup.py install

注意点

インストールが完了した後のmecab-python-0.996/test.pyは実行できません。原因はpython2で書かれているためです。修正してから動作確認をしてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away