maccalla’s diary

神奈川県エンジニアとその生活

MacでRMeCab

目的

Mac上にMeCabを導入し、辞書をデフォルトからNeologdに変更
その後にRのRMeCabパッケージから呼び出して見ましょう。

作業

MeCab〜Neologd

必要なものを入れる前準備 Homebrewを入れましょう。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上記コマンドでMacにインストールされます。

次に、brewコマンドでMeCabと辞書その他必要なものを入れましょう。

brew install mecab mecab-ipadic git curl xz

git経由でNeologdをクローンします。

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git

インストール先を確認します。

echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
> /usr/local/lib/mecab/dic/mecab-ipadic-neologd

※私の環境では上記のようになっています

ディレクトリを移動しましょう。

cd mecab-ipadic-neologd

インストールを行います。

./bin/install-mecab-ipadic-neologd -n -a

※-aオプションは全部入り、通常インストール(-aなし)では一部辞書はインストールされない

MeCabで通常使用する辞書にNeologdを指定します。

sudo find / -name mecabrc
vim /etc/mecabrc

sudo find ~でmecabrsの場所を確認し、vimで編集します。
編集箇所は以下です。

変更前:dicdir = /usr/local/lib/mecab/dic/ipadic
変更後:dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd

これでMeCabをインストールし、辞書を切り替えることができました。
mecabコマンドで確認しましょう。

mecab

RMeCab

RMeCabを使用するためにはRとMeCabMac上にインストールされている必要があります。
RMeCabパッケージをインストールしましょう。

install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")

インストールができたら確認を行ってみましょう。

library("RMeCab")
library("tidyverse")

test_text <- "土曜日はヤーバンナイトさんとポケモンGOをしに中野に行きます、帰りか行きにバーガーキングで食べます"
test_text %>% RMeCabC() %>% unlist()

出力を見るとNeologdの辞書を使用して形態素解析が行われているのがわかりますね!

            名詞             助詞             名詞             名詞             助詞             名詞 
        "土曜日"             "は" "ヤーバンナイト"           "さん"             "と"     "ポケモンGO" 
            助詞             動詞             助詞             名詞             助詞             動詞 
            "を"             "し"             "に"           "中野"             "に"           "行き" 
          助動詞             記号             名詞             助詞             名詞             助詞 
          "ます"             "、"           "帰り"             "か"           "行き"             "に" 
            名詞             助詞             動詞           助動詞 
"バーガーキング"             "で"           "食べ"           "ます" 

まとめ

さてこれでRMeCab+Neologdを使用して形態素解析ができるようになりましたが、 RのデータフレームからRMeCabにわたす場合、返却値がテキストのような形で非常に扱いにくく難儀しました。
これは自作関数を作成して処理をしたので別記事に底しておきたいと思います。
(しかしながら、大きいデータだと処理に時間がかかり実用には向いていなかった)