RMeCabとRCaBoCha
先日(MeCabをyumでインストール@CentOS - yokkunsの日記)CentOSにMeCabとか入れていたのだが、仮想マシンの容量がいっぱいになってしまい、Rが入れられなかったので、新規でFedora11の仮想マシンを作成した。
今回は、ディスク容量を15Gにしたので大丈夫
MeCabのインストール
前回は、CentOSにrpmが用意されていなかったので、何かごにょごにょしてインストールしたが、今回はあるので、普通にyumでインストール。
$ sudo yum install mecab mecab-devel mecab-ipadic
Rのインストール
こっちも、普通にインストール
$ sudo yum install R R-devel
RMeCabのインストール
http://groups.google.co.jp/group/rmecab/filesから、現在の最新版(2009/12/17時点では、0.86)を取ってくる。
Unix系は、tar.gzファイルとのことなので、RMeCab_0.86.tar.gzをダウンロード。
$ wget http://rmecab.googlegroups.com/web/RMeCab_0.86.tar.gz?gda=BO8kfUYAAAAanHFhBX3TdHg5JrdUX3ZqRxT2CtuStqchy9VvbjT0l_hU2tyS0rjUI2ALpXl280FV6u9SiETdg0Q2ffAyHU-dB7rwIJdcau4dlsrEQUE3Ew $ mv RMeCab_0.86.tar.gz\?gda\=BO8kfUYAAAAanHFhBX3TdHg5JrdUX3ZqRxT2CtuStqchy9VvbjT0l_hU2tyS0rjUI2ALpXl280FV6u9SiETdg0Q2ffAyHU-dB7rwIJdcau4dlsrEQUE3Ew RMeCab_0.86.tar.gz
Rを起動してパッケージのインストール。
> getwd() [1] "/home/yokkuns/package/R" > install.packages("RMeCab_0.86.tar.gz", destdir=".", reps=NULL) install.packages("RMeCab_0.86.tar.gz", destdir = ".", reps = NULL) 中で警告がありました: 引数 'lib' が欠けています:/usr/lib64/R/library を使います install.packages("RMeCab_0.86.tar.gz", destdir = ".", reps = NULL) 中で警告がありました: 'lib = "/usr/lib64/R/library"' は書き込み可能ではありません パッケージをインストールするために個人的なライブラリ '~/R/x86_64-redhat-linux-gnu-library/2.10' を作りたいのですか? (y/n) n
ぬ、権限がないのか。
sudoで起動し直して、インストール。
$ sudo R > install.packages("RMeCab_0.86.tar.gz", destdir=".", repos=NULL) install.packages("RMeCab_0.86.tar.gz", destdir = ".", repos = NULL) 中で警告がありました: 引数 'lib' が欠けています:/usr/lib64/R/library を使います * installing *binary* package ‘RMeCab’ ... * DONE (RMeCab) > library("RMeCab") エラー: パッケージ 'RMeCab' は i686-pc-linux-gnu に対して造られました
ぐぬぬ。。
うっかりしてた。自分の環境は64bitなので、RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gzだった。
$ wget http://rmecab.googlegroups.com/web/RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz?gda=Ah-0l2EAAAAanHFhBX3TdHg5JrdUX3ZqRxT2CtuStqchy9VvbjT0l6gaxXNgGFuLF7YN80o6PJIFbG_3zvmmoo7fniCi4gnUvCJW0XjDx5KbrqSnq1cTJmQ7_4Szj5QojzPflAPjH4V0Il9p57tNqZJdI6VXJ0v_ $ mv RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz\?gda\=Ah-0l2EAAAAanHFhBX3TdHg5JrdUX3ZqRxT2CtuStqchy9VvbjT0l6gaxXNgGFuLF7YN80o6PJIFbG_3zvmmoo7fniCi4gnUvCJW0XjDx5KbrqSnq1cTJmQ7_4Szj5QojzPflAPjH4V0Il9p57tNqZJdI6VXJ0v_ RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz
$ sudo R > install.packages("RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz", destdir=".", repos=NULL) install.packages("RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz", 中で警告がありました: 引数 'lib' が欠けています:/usr/lib64/R/library を使います * installing *binary* package ‘RMeCab’ ... * DONE (RMeCab) > library(RMeCab)
確認
> RMeCabC("@kakeibot コーヒーに60円使いました。") [[1]] 名詞 "@" [[2]] 名詞 "kakeibot" [[3]] 名詞 "コーヒー" [[4]] 助詞 "に" [[5]] 名詞 "60" [[6]] 名詞 "円" [[7]] 動詞 "使い" [[8]] 助動詞 "まし" [[9]] 助動詞 "た" [[10]] 記号 "。" >
出来た!
CaboChaのインストール
TinySVMのインストール
$ wget http://chasen.org/~taku/software/TinySVM/src/TinySVM-0.09.tar.gz $ tar zxvf TinySVM-0.09.tar.gz $ cd TinySVM-0.09 $ ./configure $ make $ make check $ sudo make install $sudo ldconfig
YamChaのインストール
$ wget http://chasen.org/~taku/software/yamcha/src/yamcha-0.33.tar.gz $ tar zxvf yamcha-0.33.tar.gz $ cd yamcha-0.33 ./configure make param.cpp: In member function 'bool YamCha::Param::open(int, char**, const YamCha::Option*)': param.cpp:102: error: 'strlen' was not declared in this scope param.cpp:103: error: 'strncmp' was not declared in this scope param.cpp: In member function 'bool YamCha::Param::open(const char*, const YamCha::Option*)': param.cpp:182: error: 'strncpy' was not declared in this scope param.cpp:185: warning: deprecated conversion from string constant to 'char*' param.cpp: In member function 'void YamCha::Param::help(std::ostream&, const YamCha::Option*)': param.cpp:205: error: 'strlen' was not declared in this scope param.cpp:211: error: 'strlen' was not declared in this scope
?
検索したらあった。
gcc 4.3 で yamcha と cabocha でインストールエラーが発生する件 - drk7jp
こういうことらしい。
gcc 4.2 以前では、string.h や stdlib.h のようなヘッダファイルは明示的にインクルードしていなくても、そのヘッダファイルでプロトタイプ宣言されている関数を呼び出すことができました。 gcc 4.3 では明示的なインクルードが必要です。
- src/common.h に以下を追加
#include <string.h>
- ibexec/mkdarts.cpp にも手を加える。
#include <cstdlib>
$ make $ make check $ sudo make install $ sudo ldconfig
CRF++のインストール
$ wget http://sourceforge.net/projects/crfpp/files/crfpp/0.53/CRF%2B%2B-0.53.tar.gz/download $ tar zxvf CRF++-0.53.tar.gz $ cd CRF++-0.53 $ ./configure $ make $ sudo make install $ sudo ldconfig
CaboCha
$ wget http://sourceforge.net/projects/cabocha/files/cabocha/0.60pre4/cabocha-0.60pre4.tar.bz2/download $ tar jxvf cabocha-0.60pre4.tar.bz2 $ cd cabocha-0.60pre4 $ ./configure --with-charset=utf-8 $ make $ sudo make install $ sudo ldconfig
RCaBoChaのインストール。(失敗)
Rのバージョン確認
$ rpm -qa R R-2.10.0-2.fc11.x86_64
2.10.0用は、RCaBoCha_0.22.tar.gzなので、それをダウンロード。
何故かwgetだとうまく行かなかったので、いったんローカルに落としてからサーバに転送した。
$ sudo R > getwd() [1] "/home/yokkuns/package/R" > install.packages("RCaBoCha_0.22.tar.gz", lib.loc=".", repos=NULL) install.packages("RCaBoCha_0.22.tar.gz", lib.loc = ".", repos = NULL) 中で警告がありました: 引数 'lib' が欠けています:/usr/lib64/R/library を使います * installing *binary* package ‘RCaBoCha’ ... * DONE (RCaBoCha) > library(RCaBoCha) エラー: パッケージ 'RCaBoCha' は i686-pc-linux-gnu に対して造られました
あれ、x86_64版なんて置いてなかったような・・・
もしかして、まだ対応していないのかな。。。