Windows RMeCabで NEologdを諦めるにはまだ早い(Dockerを使えばいいじゃない)
どうも。最近は「彼方のアストラ」を見ています。一話目でうるうるきてました。
Windowsを使っていると、RMeCabを使うときに辞書として mecab-ipadic-NEologd(neolog)を使うのは難しいですよね。出来なくはない(はず)ですし、いろいろと紹介してくれる記事はありますが、難しいんですよね。(私は挫折しました)
今日は、RMeCabにmecab-ipadic-NEologdを搭載する方法としてDockerを使った方法を紹介します。
※本記事はRMeCabを知っていることを前提としておりますので、ご了承ください。
結論
Windowsユーザーでmecab-ipadic-NEologdを辞書に指定してRMeCabを使いたい人は
$docker pull ando6oid/neo-mecab $docker run -e PASSWORD=umr -p 8787:8787 -d ando6oid/neo-mecab //このときパスワードは「umr」となる
を打ち込んで、「http://localhost:8787/」を開くと使えます。
docker hubのページはこちら↓↓↓
mecab-ipadic-NEologdとは
MeCabの辞書です。形態素解析では、文章を分かち書き(語を区切る)を行います。そのとき、どこからどこまでを語とするのかの基準として辞書を使います。
こんな感じです↓
「雨宮天」が"雨宮"と"天"、闇営業が"闇"と"営業"になっています。
※雨宮天さんと闇営業は一切関係ありません
(雨宮天が分からない人は義務教育からやり直してほしい)
本来は、「雨宮天」「闇営業」というように名詞として処理してほしいのに...ということが初期のRMeCabだと起こります。ここでneologを辞書にすると...↓↓
望むべき処理をしてくれるようになります。
neologは週二で新しい単語を追加してくれるので、neologを辞書とすると流行語やドラマの名前、人の名前に対応できるようになります。
他にもNeologのすごさについてLINEさんも書いています↓↓
形態素解析に必須レベルなのですが、Windowsだと入れるのが難しい。PATHがどうちゃらとかなんちゃらで...Linuxなら簡単なんだよなぁ
Linux?じゃあ、Dockerを使おう。
Dockerとは
Dockerは、コンテナと呼ばれるOSレベルの仮想化環境を提供するオープンソースソフトウェアである(Wikipedia)。私もDockerについては勉強中ですが、簡単に言うとDocker(具体的にはコンテナ)を使うことでWindowsでもLinux環境で作業することが可能になります。もっとほかのことも出来ます。
さらに、Dokcerhubを使うことで、先人たちが作ってくれたDocker imageを使ってコンテナを簡単に作ることができます(まさに、巨人の肩に乗る)。
(他のことはググってください)
Dockerのインストール方法
それ以外の方はググってください(私もよくわかりません、すみません)
Dockerがインストールできたら
power shellを起動(わからない人はcortanaにきいてね)
docker pull ando6oid/neo-mecab
と打ち込むdockerhubからneologを持ったRstudioサーバーイメージを持ってくる
dockcer images
でando6oid/neo-mecabイメージがあるか確認docker run -e PASSWORD=すきなやつ -p 8787:8787 -d ando6oid/neo-mecab
と打ち込む(passwordはお好きにどうぞ)イメージからコンテナを作成
chromeを立ち上げてアドレスバーに
http://localhost:8787/
とうつそこにRstudioがあれば完了
neologが初期辞書になっているので、いつも通りにRMeCabを使ってくれればok
ando6oid/neo-mecabについて
私が作ったDocker imageです。
ymattu/mecab-dをベースとしています(ymattuさん神)。ymattu/mecab-dもrocker/tidyverse
というイメージをベースとしています。したがって、tidyverse
系パッケージが基本的に入っている上、ymattuさんによって日本語に対応されつつRMeCab
もtidytext
もあるというイメージです。私はそこにmecab-ipadic-NEologdを追加しただけ。
要するに、tidyverse
,tidytext
.RMeCab
といったおおよそ必要になるだろうパッケージが入っていて、日本語にも対応しており辞書も最新なRstudio。RMeCabによるテキストマイニングの決定版イメージになりうる(自画自賛、ほとんど私は何もしていない)。
dockerfileはこんな感じ。
FROM ymattu/mecab-d:latest LABEL mainaier = "ando_Roid" RUN echo "now building..." CMD echo "now running..." RUN apt-get -qq update\ && apt-get -qq -y install curl \ && apt install -y xz-utils file \ && apt install patch WORKDIR /home/rstudio RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git WORKDIR mecab-ipadic-neologd RUN ./bin/install-mecab-ipadic-neologd --create_user_dic -n -y\ && cat /usr/local/etc/mecabrc | sed "s/ipadic/mecab-ipadic-neologd/" > /usr/local/etc/mecabrc EXPOSE 8787 CMD ["/init"]
注意
mecab-ipadic-NEologdはdocker imageをプルした時の最新のものを使用しており、辞書の自動更新機能はございません。
気が向いたら、追加するかも。
従って、最新の辞書を使いたい場合は、docker imageをプルしなおす必要があります。
なにか不備等ありましたらコメントください