概要
現在、 自然言語処理 100 本ノック に取り組んでいます。その中で、構文解析に CaboCha を使う必要がありました。実行環境には Google Colaboratory を使っています。 Ubuntu 環境へのインストール方法などは、見つかったのですが Colaboratory 用のインストール方法が見つかりませんでした。もしかしたら、どこかに記載があるのかもしれませんが、今回は覚書のためにも残しておきます。
Ubuntu などへのインストールでは、ソースコードの修正が必要と書かれていましたが、私が試したバージョンと環境では不要でした。手順としては、下記のようになります。
MeCab をインストールする
最初に MeCab をインストールします。ここまでは、色々な所にインストール方法が記載されていました。ただ、後半で swig が必要となるため、ここでインストールしてしまっています。
!apt install -y \
curl \
file \
git \
libmecab-dev \
make \
mecab \
mecab-ipadic-utf8 \
swig \
xz-utils
!pip install mecab-python3
CRF++ をインストールする
次に、 Cabocha の依存パッケージである CRF++ をインストールします。最新版の CRF++ はダウンロードページ(Google Drive)から取得できます。
import os
filename_crfpp = 'crfpp.tar.gz'
!wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7QVR6VXJ5dWExSTQ" \
-O $filename_crfpp
!tar zxvf $filename_crfpp
%cd CRF++-0.58
!./configure
!make
!make install
%cd ..
os.environ['LD_LIBRARY_PATH'] += ':/usr/local/lib'
CRF++ のインストール後にライブラリへのパスを追加する必要があります。これをしないと、 CaboCha のインストール時に CRF++ の共有ファイル (.so) が見つからないというかエラーが発生します。最初は、コマンド形式でインストールしていたため、パスの追加に export を使って書いたのですが、変更されませんでした。結局、 os.environ で設定を書き換えることで、認識できました。
CaboCha のインストール
最後に、今回使いたい Cabocha をインストールします。上記の CRF++ までが、正常にインストール出来ていれば、うまく行くはずです。
url_cabocha = 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7SDd1Q1dUQkZQaUU'
filename_cabocha = 'cabocha.tar.bz2'
!wget "$url_cabocha" -O $filename_cabocha
!bzip2 -dc $filename_cabocha | tar xvf -
%cd cabocha-0.69
!./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8
!make
!make check
!make install
%cd ..
!cabocha --version
CaboCha の python バインディングを有効化する
もし、 python から呼び出す必要がある場合は、下記のコマンドが追加で必要となります。
%cd cabocha-0.69/python
!python setup.py build_ext
!python setup.py install
!ldconfig
%cd ../..
まとめ
MeCab に比べてインストール手順が長くなりましたが、 Colaboratory 上で CaboCha をインストールできました。これで、ローカルに環境を用意しなくても自然言語処理 100 本ノックを行えます。 Colaboratory は、本当に便利です。