[Python] CaboCha(MeCab)をMacにインストールして動かしてみた

Python 2月 14, 2016

Twitterの人工無脳botを作ってみたいなと思って、形態素解析にmokobetaさんのjanomeや、係り受け解析にCabochaを入れてみたのですが、CaboChaのインストールで、特に

RuntimeError: morph.cpp(187) [charset() == decode_charset(dinfo->charset)] Incompatible charset: MeCab charset is utf8, Your charset is EUC-JP
みたいなエラーで少し手間取ったので、備忘録も兼ねて載せます。

インストール環境

  • Mac OSX 10.10.5
  • Python 2.7.10

以下、コード中のコメント(#)は無視してください。

RCF++のインストール

$ brew install crf++
で出来ます(2016/2/14時点)。MacPortsもいけるんじゃないでしょうか(適当)。
もしくは以下からダウンロード。
http://taku910.github.io/crfpp/#source

  • CRF++-0.58.tar.gz

この場合は以下のコマンドを叩きましょう。

$ tar zxf CRF++-0.58.tar.gz
$ cd CRF++-0.58
$ ./configure
$ make
$ sudo make install

$ cd python
$ sudo python setup.py install

MeCabのインストール

http://taku910.github.io/mecab/#download
ここから以下の3つをインスコ。

  • mecab-0.996.tar.gz
  • mecab-ipadic-2.7.0-20070801.tar.gz
  • mecab-python-0.996.tar.gz

そしてコマンドを叩く。

$ tar zxf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure --with-charset=utf8
$ make
$ sudo make install

$ tar zxf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8 # これ付けないと文字化けする
$ make
$ sudo make install

$ tar zxf mecab-python-0.996.tar.gz
$ cd mecab-python-0.996
$ sudo python setup.py install

CaboChaのインストール

https://drive.google.com/folderview?id=0B4y35FiV1wh7cGRCUUJHVTNJRnM&usp=sharing#list
ここから以下をインスコ。

  • cabocha-0.69.tar.bz2

そしてコマンドを叩く。

$ tar jxf cabocha-0.69.tar.bz2 # jxfダヨ
$ cd cabocha-0.69
$ ./configure --with-mecab-config=`which mecab-config` --with-charset=utf8 # これでエンコードのエラーが出ないはず
$ make
$ sudo make install

$ cd python
$ sudo python setup.py install

ちゃんとmakeしないとpythonのバインディングで失敗すると思うので(自分はそうでした)、気をつけてください。

実行

$ cabocha
今日の夜は雨が降るだろう。
      今日の-D
          夜は---D
            雨が-D
      降るだろう。
EOS

上手くいきましたね。こちらで紹介しているtest.pyも試してみましょう。

$ python test.py
  太郎は-----------D
      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS

  太郎は-----------D
      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS

* 0 6D 0/1 -2.457381
太郎	名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/0 1.509507
この	連体詞,*,*,*,*,*,この,コノ,コノ
* 2 4D 0/1 0.091699
本	名詞,一般,*,*,*,*,本,ホン,ホン
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 3 4D 1/2 2.359707
二	名詞,数,*,*,*,*,二,ニ,ニ
郎	名詞,一般,*,*,*,*,郎,ロウ,ロー
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 4 5D 0/1 1.416783
見	動詞,自立,*,*,一段,連用形,見る,ミ,ミ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
* 5 6D 0/1 -2.457381
女性	名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
* 6 -1D 0/1 0.000000
渡し	動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。	記号,句点,*,*,*,*,。,。,。
EOS

良い感じですね。

参考

slont

金融ベンチャーでWebエンジニア。美と酒とTechで生きてる。Vue.jsが至高。Elixir好き。個人事業とWebアプリ案件もやってます。 アプリ→https://app.cullet.me Android→https://play.google.com/store/apps/details?id=net.maytry.cullet.android

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.