RMeCabをきちんといれてみた

Rによるテキストマイニング入門

Rによるテキストマイニング入門

すみません。今までRMeCabをちゃんと入れてませんでした。
今回、ちゃんと入れて、使えるようにしました。
そのログ。MacOSXでやってます。今のところ、TmpDoc - it4bio@localhostでまとめていますが、そろそろページを独立させてもいいかもな、という感じです。

  • R

sudo port -v install R

ってな具合です。コンパイルに尋常じゃなく時間がかかりました。というのは、MacPortsのバージョンアップもしたからかも(RMeCabを使いたい → Rのバージョンが合わない → MacPortsのバージョンをあげないと新しいのが入らない)。

いつもなら、portでいれるところなのですが、RMeCabには、portで入れるな、とあるので、ソースを落としてきて入れました。http://mecab.sourceforge.net/に行ってダウンロードして、configure → make → make installの流れ。iconv関係でMeCabがインストールできなかった - yasuhisa's blogにあるように、LIBS=-liconv をつけなければいけないのと、--with-charset=utf8をするのがキモでしょうか。自分の場合、(仮に不具合が出たときにがっさり消せるように)/opt/pkgs/mecab-0.98 に入れて、/opt/share/mecab/ にシンボリックリンクをはって使うというやり方をしているので、

./configure LIBS=-liconv --prefix=/opt/pkgs/mecab-0.98 --with-charset=utf8

という感じで。(これがあとで事態をややこしくさせる)
辞書も、上からmecab-ipadicの新しいのを落としてきて、上と同様に(LIBSの指定はいらないかな)

  • RMeCab

RMeCab - RとLinuxと...を参考にしながら、ファイルをダウンロード。Rをバイナリで入れた場合と、上みたく、コンパイルした場合とファイルが2パターンあるので、適切な方を。Rを立ち上げるべく、ターミナルを開いて、そのディレクトリに移動。で、sudo R(ライブラリのファイルとかを自分のホームの下とかに置くならsudoはいらない)。

$ sudo R
> install.packages("RMeCab_0.86.tgz", destdir=".", repos = NULL)

でインストールされる。
で、

library(RMeCab)

とやると使えるようになって、login - RとLinuxと...の受け売りで

> library(RMeCab)
> kekka <- RMeCabC("すもももももももものうち")
> unlist(kekka)

とやると、うまくいけば、

名詞 助詞 名詞 助詞 名詞 助詞 名詞
"すもも" "も" "もも" "も" "もも" "の" "うち"

となる。が、きっと上のようにmecabとか入れるのにprefix指定したりすると、

M t d
"\xe3\x81" "\x99\xe3" "\x82\x82\xe3\x82"
t d t
"\x82\xe3" "\x82\x82\xe3\x82" "\x82\xe3"
d t d
"\x82\x82\xe3\x82" "\x82\xe3" "\x82\x82\xe3\x82"
t M t
"\x82の" "\xe3\x81" "\x86ち"

になったりする。これって、Macに元々入っているmecabを見に行っているからだと踏んでいる(文字コードが違う)。
ここでけっこうはまって試行錯誤をしたのだが、結局、/usr/share/mecab/mecabrc というmecabの辞書の設定をしてあるファイルを変えれば大丈夫だったようで、

$ cd /usr/share/mecab/
$ sudo mv mecabrc mecabrc.org
$ sudo ln -s /opt/share/mecab/etc/mecabrc mecabrc

とやるとうまく行きました。
元々Macmecabが入っているということは、mecabを何かに使っているのでは、と思うわけですが、その設定ファイルを書き換えて大丈夫なんだろうか、というのが、ちょっと心配。Rの方で、設定ファイルをここを見る、みたいな指定をした方が、もしかしたら安全な気がします。