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

この記事について

環境さくら共用サーバー、mecab0.97、CaboCha
目的係り受け解析器cabochaをインストールする
結果CRF++を入れてからcabocha-0.60をインストールできた(後日、新しいmecabなら0.67も可)

つまずきポイント要約

  • wgetは「https」だとエラーが出る。configureの「~」も「$HOME」にする
  • mecabとcabochaのバージョンが合わないとmake installでエラー
  • パスが通っているのに実行できないときはサーバーに再ログイン

さくら共用サーバーに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で半角記号が名詞,サ変接続になるのを解決する

関連記事

タイトルとURLをコピーしました