さくら共用サーバーにcabochaをインストールする

さくら共用サーバーにcabochaをインストールした際の覚書。

cabochaのインストールや利用方法についてはこちら

前提として、mecab0.97が入っている。
インストール場所は、/home/username/local とする。

1.CRF++をインストールする

----------------------------------------------------
//ダウンロード。「https」だとエラーが出る。
wget http://crfpp.googlecode.com/files/CRF%2B%2B-0.58.tar.gz

tar xzvf CRF++-0.58.tar.gz //解凍

//「$HOME」が「~(チルダ)」だとエラーが出る。
./configure --prefix=$HOME/local

make install //インストール。
----------------------------------------------------

2.cabochaをインストールする

最新版であった「cabocha-0.67」をダウンロードした。
MeCab (0.993以降)が必要と記述されていたが、構わず進めた。

----------------------------------------------------
wget http://cabocha.googlecode.com/files/cabocha-0.67.tar.bz2
----------------------------------------------------

続けて、以下のコマンド。
----------------------------------------------------
tar xzvf cabocha-0.67.tar.bz2
cd cabocha-0.67
./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only LDFLAGS="-L$HOME/local/lib" CPPFLAGS="-I$HOME/local/include" --with-mecab-config=$HOME/local/bin/mecab-config
make
make install
----------------------------------------------------

すると、make installのところでエラー発生!

エラー内容
----------------------------------------------------
morph.cpp: In member function 'virtual bool CaboCha::MorphAnalyzer::parse(CaboCha::Tree*) const':
morph.cpp:197: error: 'mecab_lattice_new' was not declared in this scope
morph.cpp:203: error: 'MECAB_ALLOCATE_SENTENCE' was not declared in this scope
morph.cpp:203: error: 'mecab_lattice_add_request_type' was not declared in this scope
morph.cpp:207: error: 'mecab_lattice_set_sentence2' was not declared in this scope
morph.cpp:209: error: 'mecab_parse_lattice' was not declared in this scope
morph.cpp:211: error: 'mecab_lattice_strerror' was not declared in this scope
morph.cpp:214: error: 'mecab_lattice_get_bos_node' was not declared in this scope
morph.cpp: In static member function 'static void CaboCha::MorphAnalyzer::clearMeCabLattice(mecab_lattice_t*)':
morph.cpp:223: error: 'mecab_lattice_clear' was not declared in this scope
morph.cpp: In static member function 'static void CaboCha::MorphAnalyzer::deleteMeCabLattice(mecab_lattice_t*)':
morph.cpp:228: error: 'mecab_lattice_destroy' was not declared in this scope
*** [morph.lo] Error code 1

Stop in /home/username/local/cabocha-0.67/src.
*** [all-recursive] Error code 1

Stop in /home/username/local/cabocha-0.67.
*** [all] Error code 1

Stop in /home/username/local/cabocha-0.67.
%
----------------------------------------------------

エラー内容の詳細は不明だが、mecabとcabochaのバージョンが合ってないことがエラー原因と当たりをつけて、cabochaのバージョンを下げてリトライ。
(後日、新しい最新のmecab入りにcabocha-0.67を試みたところ、エラーも出ずインストールできた)

cabocha0.60のインストール
----------------------------------------------------
wget http://cabocha.googlecode.com/files/cabocha-0.60.tar.gz
tar xzvf cabocha-0.60.tar.gz
cd cabocha-0.60
./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only LDFLAGS="-L$HOME/local/lib" CPPFLAGS="-I$HOME/local/include" --with-mecab-config=$HOME/local/bin/mecab-config
(make) ← 実行コマンドを読み返したが抜けていた・・・
make install
----------------------------------------------------

あっさりインストールできた。

cabochaを実行
----------------------------------------------------
/home/username/local/bin/cabocha
----------------------------------------------------

※パスも通しておく。パスが通っているにもかかわらずcabochaが実行できない場合は、サーバーに再ログインする。

テキストファイルに書いたpythonスクリプトからcabochaをimportを試みるとエラーになる場合は、こちら

mecabをインストールしたら、これもやる。
----------------------------------------------------
mecabで半角記号が名詞,サ変接続になるのを解決する
----------------------------------------------------