RStudioCloudでMeCabで形態素解析する方法

2 min read読了の目安(約2100字

はじめに

RStudioCloudは手軽に使えて便利ですが、やや特殊な環境です。起ち上げた直後に右下に表示されているペインからはルートディレクトリ以下の/cloud/projectというディレクトリよりも下が見えていますが、ユーザーディレクトリ(system("echo $HOME")すると/home/rstudio-userと確認できる)の直下に.localという書き込み権限があるディレクトリがあり、たとえばreticulate::install_miniconda()した場合には$HOME/.local/share/r-minicondaにMinicondaがインストールされます。

MeCabを公式で案内されている手順にしたがってインストールしようとするとsudoが必要なため詰まりますが、以下の記事などで案内されているように、makeするときにprefixを指定すれば書き込み権限がある場所にインストールできるため、RStudioCloud内でもMeCabを使うことは可能です。

手順

MeCabのインストール

Rコンソールからやってもよいですが、Terminalペインがあるのでそちらでやります。

wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -O mecab-0.996.tar.gz
tar xvf mecab-0.996.tar.gz
cd mecab-0.996
./configure --prefix=$HOME/.local --with-charset=utf8 --enable-utf8-only
make
make install

パスはターミナル上でexportしてもRのセッションには影響しないため、Rコンソールの側で追記しておきます。また、/home/rstudio-user/.local/lib/libmecab.so.2を明示的に読み込んでおかないと後でパッケージの読み込みに失敗するため、ここで読み込んでおきます。なお、この手順はRのセッションを立ち上げるたびごとに行う必要があります。

Sys.setenv(PATH = paste(Sys.getenv("PATH"), "/home/rstudio-user/.local/bin", "/home/rstudio-user/.local/lib", sep = ":"))
dyn.load(Sys.which("libmecab.so.2"))

IPA辞書のインストール

RcppMeCabを使う場合、UTF8の辞書をビルドする必要があります。

ターミナル上でダウンロードして展開しておきます。

wget "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -O mecab-ipadic-2.7.0-20070801.tar.gz
tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801

これで辞書がビルドできます。次のようにします。

setwd("./mecab-ipadic-2.7.0-20070801")
system("bash ./configure --with-charset=utf8 --with-dicdir=/home/rstudio-user/.local/mecab-dic/ipadic-utf8")
system("make")
system("make install") ## `sys_dic`に辞書のパスを指定して呼ぶので本当はインストールは不要ですが、いちおう
setwd("../")

MeCabを使う

RcppMeCabの場合、インストールオプションを指定するとインストールすることができます。

install.packages("RcppMeCab", INSTALL_opts = "--no-test-load")

以下のようにsys_dicを指定して呼びます。

RcppMeCab::pos(c("この木なんの木", "気になる木", "見たこともない木ですから"), sys_dic = "/home/rstudio-user/.local/mecab-dic/ipadic-utf8")