Edited at

[環境構築] Python 2.7 で CaboCha を使用して係り受け解析

More than 1 year has passed since last update.

Ubuntu 14.04 向け、日本語の自然文係り受け解析を行う CaboCha を Python 2.7 から使用できるようにするための環境構築をメモ書き。

まず CaboCha の下層で形態素解析を行う MeCab が先に必要。Ubuntu 14.04 であれば apt-get で MeCab 0.996 をインストールできる。

$ sudo apt-get install build-essential mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8 python-mecab

$ mecab --version
mecab of 0.996
$ mecab-config --version
0.996
$ mecab
すもももももももものうち
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

続いて CRF++-0.58.tar.gz のビルド。CaboCha のライブラリが参照するらしく先に CRF++ をインストールしておく必要がある。MeCab が 条件付き確率場 (CRF) を使用している影響で内部的に crf_learn コマンドを使用しているのか、コンパイル用のヘッダか lib が必要なのかな?

$ tar zxvf CRF++-0.58.tar.gz

$ cd CRF++-0.58/
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

公式サイトから cabocha-0.69.tar.gz をダウンロードして CaboCha 0.69 + cabocha-python をビルドする。

$ tar zxvf cabocha-0.69.tar.gz

$ cd cabocha-0.69
$ ./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8
$ make
$ sudo make install
$ cabocha --version
cabocha of 0.69
$ cabocha
すもももももももものうち
すももも-D
ももも---D
ももの-D
うち
EOS
$ cd python
$ python setup.py install # sudo すると /usr の方に入るかも
$ python -c "import CaboCha; p=CaboCha.Parser(); print(p.parseToString('すもももももももものうち'))"
すももも-D
ももも---D
ももの-D
うち
EOS

なお setup.py が Python 3 の構文制約に対応していないので Python 3 に言える場合は修正が必要 (検索すれば出てくる)。

以上。