slontが2016年2月14日に投稿(2016年12月27日更新)

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

slont

元金融エンジニア。メイン言語はJava, HTML, JavaScript, Python, Kotlinあたり。SECCONやCTF、NLP、機械学習に興味あり。金融日記購読4年。巷で話題の変態紳士。美女ソムリエ始めてました。 お仕事の依頼はTwitterからお願いします。

comments powered by Disqus
Back to top