MacでR+MeCabによる形態素解析をやってみた
自然言語処理でおなじみの形態素解析ツールMeCabをMac上のRから使えるようにしてみた。今回は環境構築の手順をメモ。
環境情報は以下。
- Mac OS X El Capitan (10.11.3)
- MeCab 0.996
- R 3.2.3 (2015-12-10)
MeCabインストール
MeCabは、macではbrewで簡単にインストールできる。
まず、brewからmecab
を探す。
$ brew search mecab mecab mecab-ipadic mecab-jumandic mecab-ko mecab-ko-dic mecab-unidic homebrew/php/php53-mecab homebrew/php/php55-mecab homebrew/php/php70-mecab homebrew/php/php54-mecab homebrew/php/php56-mecab
色々ヒットするが、mecab
がMeCab本体のパッケージとなる。dicで終わっているやつはそれぞれが辞書を表していて、形態素解析を行うためには単語をあらかじめこのように辞書ファイルとして登録しておく必要がある。いろいろな機関が辞書を提供しており、用途によって使い分けがあるようだが、今回は標準的なIPAの辞書(ipadic)を使ってみる。
今回はmecab
とmecab-ipadic
の二つをインストールする。
MeCab本体とIPA辞書をインストールする。
$ brew install mecab $ brew install mecab-ipadic
インストールに成功。mecab
コマンドが正しく実行できることを確認。
$ mecab -v mecab of 0.996
ちなみに辞書がないと以下のエラーになる。
$ mecab param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
MeCabを使ってみる
まずRを介さず、直接MeCabを使ってみる。
mecab
コマンドを実行すると、対話的に日本語を入力し、形態素解析の結果を表示してくれる。終了するときはCtrl-D。
$ mecab 今日はいい天気だ 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー は 助詞,係助詞,*,*,*,*,は,ハ,ワ いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ 天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ EOS 明日は天気が悪い 明日 名詞,副詞可能,*,*,*,*,明日,アシタ,アシタ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 悪い 形容詞,自立,*,*,形容詞・アウオ段,基本形,悪い,ワルイ,ワルイ EOS
ワンライナーで実行するときはecho
をパイプでつなぐ。
$ echo "Rからmecabを使って形態素解析を行ってみたいと思う" | mecab R 名詞,固有名詞,組織,*,*,*,* から 助詞,格助詞,一般,*,*,*,から,カラ,カラ mecab 名詞,一般,*,*,*,*,* を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 使っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,使う,ツカッ,ツカッ て 助詞,接続助詞,*,*,*,*,て,テ,テ 形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ 解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 行っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,行う,オコナッ,オコナッ て 助詞,接続助詞,*,*,*,*,て,テ,テ み 動詞,非自立,*,*,一段,連用形,みる,ミ,ミ たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ と 助詞,格助詞,引用,*,*,*,と,ト,ト 思う 動詞,自立,*,*,五段・ワ行促音便,基本形,思う,オモウ,オモウ EOS
さらに別の辞書を使ってみる。UniDic辞書をインストールする。
$ brew install mecab-unidic
辞書は以下のように追加されている。
$ ls /usr/local/lib/mecab/dic ipadic unidic
インストールしたUniDic辞書に切り替えて実行するには、-d
オプションにインストールした辞書のパスを指定する。
$ mecab -d /usr/local/lib/mecab/dic/unidic 今日はいい天気だ 今日 キョー キョウ 今日 名詞-普通名詞-副詞可能 は ワ ハ は 助詞-係助詞 いい イー ヨイ 良い 形容詞-非自立可能 形容詞 連体形-一般 天気 テンキ テンキ 天気 名詞-普通名詞-一般 だ ダ ダ だ 助動詞 助動詞-ダ 終止形-一般 EOS
先ほどのIPA辞書の結果と比べると、今回の例では単語の分割のされ方は同じだが、フォーマット・得られる情報が違うことが分かる。当然、文によっては分割自体が異なることもあり得る。
RでMeCabを使う
続いてRからMeCabを実行してみる。RMeCabというRパッケージを使うと簡単らしい。
Rを実行し、以下のようにインストールする。
install.packages ("RMeCab", repos = "http://rmecab.jp/R")
RMeCabの使い方は以下を参考
http://www.ic.daito.ac.jp/~mizutani/mining/rmecab_func.html
早速Rの中でMeCabを呼び出してみる。
library(RMeCab) RMeCabC("今日はいい天気だ") [[1]] 名詞 "今日" [[2]] 助詞 "は" [[3]] 形容詞 "いい" [[4]] 名詞 "天気" [[5]] 助動詞 "だ"
Rのlistとして、形態素解析結果が得られた。
また、他にもいくつか機能はあるが、多くはテキストファイルからの入力を前提としているので、テストファイルを用意する。
$ cat test.txt 今日はいい天気です。 明日の天気は雨の予報です。
これをRで以下のように呼び出す。
> RMeCabFreq("mecab/test.txt") file = mecab/test.txt length = 10 Term Info1 Info2 Freq 1 です 助動詞 * 2 2 は 助詞 係助詞 2 3 の 助詞 連体化 2 4 予報 名詞 サ変接続 1 5 天気 名詞 一般 2 6 雨 名詞 一般 1 7 今日 名詞 副詞可能 1 8 明日 名詞 副詞可能 1 9 いい 形容詞 自立 1 10 。 記号 句点 2
単語ごとの出現頻度が表示されている!
まとめ
MacにMeCabをインストールし、コマンドラインおよびRから実行できるところまで検証した。これで様々な自然言語の解析ができるようになったので、いろいろ試してみたい。
以上!