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 に言える場合は修正が必要 (検索すれば出てくる)。
以上。