以前の記事で、Rmecab
を用いたテキストマイニング をご紹介しました。
Rmecab
の内部で動くmecabですが、web上の最新のキーワードなどにも対応したNEologdを辞書に使用することができます。ちなみに毎週更新されているようです(すごい、、)。今回はその設定方法をご紹介します。
ちなみにMacを使った設定ですので、そのOSでは挙動が異なる可能性があることをご了承ください。
NEologdをインストール
まずは、githubから辞書の入ったディレクトリ をcloneしてきます。
#mecab自体をインストールしていない方は #mecab自体、その他必要なパッケージのインストール brew install mecab mecab-ipadic git curl xz #辞書のインストール git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
--depth 1は最新の更新のみをcloneするオプションです。cloneが終了したら、ローカルのPCに辞書をインストールします。
#フォルダの中に入る cd mecab-ipadic-neologd #インストール ./bin/install-mecab-ipadic-neologd -n
少し時間がかかります、、
動作確認
インストールが終わったら、NEologdの挙動を確認してみましょう。ターミナルでmecab
と打つとmecabが起動します。試しに”ラグビーワールドカップ”を形態素解析をしてみましょう。
$mecab ラグビーワールドカップ ラグビー 名詞,一般,*,*,*,*,ラグビー,ラグビー,ラグビー ワールドカップ 名詞,固有名詞,一般,*,*,*,ワールドカップ,ワールドカップ,ワールドカップ EOS
"ラグビー"と"ワールド"が分割されました。これはmecabのデフォルト辞書を使った場合です。続いて、NEologdを試してみます。
#mecabの後に以下のようなオプションをつける。 $mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/ ラグビーワールドカップ ラグビーワールドカップ 名詞,固有名詞,一般,*,*,*,Rugby World Cup,ラグビーワールドカップ,ラグビーワールドカップ EOS
"ラグビーワールドカップ"が一つの固有名詞として扱われています。"ラグビーワールドカップ"は、後に追加された固有名詞のようですね。
Rmecab
への反映
最後にRmecab
にNEologdを反映させます。いろいろやり方があるようですが、デフォルトで読み込まれる辞書を直接編集する方法で行いました。/usr/local/etc/
にあるmecabrc
の中身を書き換えると変更できます(おそらくこの場所にあるはず、、)。通常では、編集権限がないのでsudoコマンドを使って編集します。
$sudo vim /usr/local/etc/mecabrc #以下のように編集 ;dicdir = /usr/local/lib/mecab/dic/ipadic dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd
これで、設定は完了です。Rで確認してみます。
library(RMeCab) RMeCabC("ラグビーワールドカップ") >[[1]] 名詞 "ラグビーワールドカップ"
うまく反映されているようですね。ちなみに"データサイエンス"などもひとつの固有名詞となっているようですので、前回のワードクラウドや共起ネットワークの結果も異なってくるかもしれませんね、、
まとめ
言葉は生き物と言われるように常に変化しますので、自然言語処理の基礎である形態素解析は最新の辞書を使いたいですね。ちなみに研究などの再現性を担保したい場合の方法も公式のgithubにはありますので、参考にしてみてください。
参考
以下の2冊は、簡単な集計から機械学習を用いた文章のクラス分類等まで、Rで行うことのできるテキストマイニング 手法が網羅されています。テキストマイニング を始めたいと思ったら、まず目を通してみることをお勧めします。

- 作者:雄一郎, 小林
- 発売日: 2017/02/17
- メディア: 単行本
![Rによるやさしいテキストマイニング [活用事例編] Rによるやさしいテキストマイニング [活用事例編]](https://m.media-amazon.com/images/I/411uBOmjnRL._SL160_.jpg)
- 作者:小林 雄一郎
- 発売日: 2018/10/06
- メディア: 単行本(ソフトカバー)
mecab-ipadic-neologd/README.ja.md at master · neologd/mecab-ipadic-neologd · GitHub