RMeCab と RCaBoCha をインストールしてみた
えと、今日は取り敢えずインストールの記録だけ。
RMeCab のインストール
RMeCab のサイトから Mac Lion 用のバイナリパッケージをDLして、同ページ内「Macintosh 版バイナリ のインストール方法」に従ってインストール。
ただ一部うまくいかなかったので、うまくいった方法を以下に記述します。
- DLしたアーカイブ(RMeCab_0.995.tgz)を適当なフォルダに解凍
- R64(GUI)のメニューから [パッケージとデータ]→[パッケージインストーラ]を選び、「CRAN(バイナリパッケージ)」となっているドロップダウンを「このコンピュータ上のパッケージディレクトリ」を選択*1
- 「インストール…」ボタンをクリックして、 .tgz ファイルを解凍して出来たフォルダを選択。
- →インストール完了。特に問題なし。
動かしてみました。
> library(RMeCab) > res <- RMeCabC("すもももももももものうち") > res [[1]] 名詞 "すもも" [[2]] 助詞 "も" [[3]] 名詞 "もも" [[4]] 助詞 "も" [[5]] 名詞 "もも" [[6]] 助詞 "の" [[7]] 名詞 "うち" > res2 <- unlist(res) > res2 名詞 助詞 名詞 助詞 名詞 助詞 名詞 "すもも" "も" "もも" "も" "もも" "の" "うち" > res2[names(res2) == "名詞"] 名詞 名詞 名詞 名詞 "すもも" "もも" "もも" "うち" >
うん、簡単ですね。
RCaBoCha*2 のインストール
こちらも同じ人が同じサイトで公開しているのですが、実はちょとバージョンが古く、そのままではうまく動きませんでした。例によって成功例を先に載せて後で Point としてどこで引っかかって何をしたか記します。
基本は RCaBoCha のサイトからバイナリパッケージをDLして、同ページ内「Macintosh 版バイナリ のインストール方法」に従ってインストール。詳細は以下。
- DLしたアーカイブ(RCaBoCha_0.29.tgz)を適当なフォルダに解凍
- R64(GUI)のメニューから [パッケージとデータ]→[パッケージインストーラ]を選び、「CRAN(バイナリパッケージ)」となっているドロップダウンを「このコンピュータ上のパッケージディレクトリ」を選択
- 「インストール…」ボタンをクリックして、 .tgz ファイルを解凍して出来たフォルダを選択。
- インストール完了後、ターミナルを開いて以下を実施:
- /Library/Frameworks/R.framework/Versions/ に移動 (cd /Library/Frameworks/R.framework/Versions/)
- ディレクトリ 2.13 が存在しないことを確認し、2.15(現在利用している R のバージョンディレクトリ)のシンボリックリンクとして 2.13 を作成 (sudo ln -s 2.15 2.13)
$ cd /Library/Frameworks/R.framework/Versions/ $ ls -la total 8 drwxrwxr-x 5 root admin 170 9 1 17:00 . drwxrwxr-x 8 root admin 272 9 1 16:59 .. drwxrwxr-x 3 root admin 102 4 5 21:39 2.14 drwxrwxr-x 7 root admin 238 9 1 22:08 2.15 lrwxr-xr-x 1 root admin 4 9 1 16:59 Current -> 2.15 $ sudo ln -s 2.15 2.13 $ ls -la total 16 drwxrwxr-x 6 root admin 204 9 1 22:08 . drwxrwxr-x 8 root admin 272 9 1 16:59 .. lrwxr-xr-x 1 root admin 4 9 1 22:08 2.13 -> 2.15 drwxrwxr-x 3 root admin 102 4 5 21:39 2.14 drwxrwxr-x 7 root admin 238 9 1 22:08 2.15 lrwxr-xr-x 1 root admin 4 9 1 16:59 Current -> 2.15
Point:
- 用意されている RCaBoCha が R ver.2.13 での利用を想定したもの*3で、そのまま実行しようとすると、/Library/Frameworks/R.framework/Versions/2.13/Resources/lib/libR.dylib を読みに行こうとしていた(R2.13は利用しておらずそのバージョンディレクトリがないので、「libR.dylib が読み込めない」旨のエラーメッセージが出た)
- → 同名のファイルが …/2.15/Resources/lib/ 内に出来ていたので、こっちを見に行ってくれるように、バージョンディレクトリを偽装。
※もし R 2.13 も過去に利用していて、同じエラーメッセージが出たら、/Library/Frameworks/R.framework/Versions/2.13/Resources/lib/ ディレクトリ内で ln -s /Library/Frameworks/R.framework/Versions/2.15/Resources/lib/libR.dylib すれば良いんじゃないかと思います。
さてこれでインストールできましたが、RMeCab をロードしたままの状態で RCaBoCha をロードしようとすると、
> library(RCaBoCha) 次のパッケージを付け加えます: '‘RCaBoCha’' The following object(s) are masked from ‘package:RMeCab’: entropy, globalEntropy, globalIDF, globalIDF2, globalIDF3, localBin, localLogTF, localTF, mynorm, removeInfo >
こんな感じに警告が出ます。つまり関数名がかぶってるんですね。さすが同じ作者。
ということで、実際に使用するときは、RMeCab と RCaBoCha は同時にロードしないようにするか、両方必要なときは RMeCab::entropy() とか RCaBoCha::mynorm() とかパッケージ名修飾するですね。
さてさて、色々実験。
> RCaBoCha("それは面白い本であった。") Term1 Term2 POS D1 D2 1 それ それ 名詞 0 0 2 は は 助詞 0 0 3 面白い 面白い 形容詞 0 0 4 本 本 名詞 0 0 5 で だ 助動詞 0 0 6 あっ ある 助動詞 0 0 7 た た 助動詞 0 0 8 。 。 記号 0 0 FROMAT_TREE = それは---D 面白い-D 本であった。 EOS > RCaBoChaFreq("それは面白い本であった。しかし、この本に比べると面白くはない。") string 2 = "ない" setted: length = 0 Term Pos Freq 1 、+ない 記号+形容詞 1 2 。 記号 2 3 ある 助動詞 1 4 この+ない 連体詞+形容詞 1 5 しかし+ない 接続詞+形容詞 1 6 それ 名詞 1 7 た 助動詞 1 8 だ 助動詞 1 9 と+ない 助詞+形容詞 1 10 に+ない 助詞+形容詞 1 11 は 助詞 1 12 は+ない 助詞+形容詞 1 13 本 名詞 1 14 本+ない 名詞+形容詞 1 15 比べる+ない 動詞+形容詞 1 16 面白い 形容詞 1 17 面白い+ない 形容詞+形容詞 1 >
基本的な使い方は問題ないようです。が…。
問題発生
同サイトで用意されているサンプルデータで動作を試してみて、いくつか動作しないものが。例えば。
> dat <- read.csv("H18koe.csv") > res <- RCaBoChaDF(dat[,"opinion"]) no terms larger than minFreq = 1 以下にエラー RCaBoChaDF(dat[, "opinion"]) : give less number to minFreq! >
つまり読み解くと、「出現頻度が(指定された)最小値(=1)より大きな言葉がありません」というエラー。おそらく RCaBoCha が出しているエラーだと思われます。
でも元データは作者が用意しているデータで、明らかに2回以上出てくる言葉がたくさんちりばめられています。
これは、ウチの CaboCha に何か問題がある? それとも RCaBoCha の不具合?
後者だとしたら、1年もほっとかないでなんとかしてほしいなー。