ほねっとのぶろぐ

アニメとAndroidが好きなほねっとのブログです。

MeCab+NEologdをDockerで動かす

f:id:aftercider:20190327142647p:plain 日本語の分かち書きや形態素解析の定番であるmecabとNEologd(mecab-ipadic-neologd)の組み合わせ。

辞書ファイルであるNEologdは2週間に一回更新されるらしいですし、インストールするのも手順が多いため、コンテナで動かせるようにします。

Dockerを使って動かすことで、常に最新のNEologdの辞書ファイルを使うことができるという点もメリットです。

やること

使うコンテナ

intimatemerger/mecab-ipadic-neologd をつかいます。

https://hub.docker.com/r/intimatemerger/mecab-ipadic-neologd

レポジトリはこちら。

GitHub - IntimateMerger/dockerfile-mecab-ipadic-neologd: MeCab Docker image with mecab-ipadic-neologd

このDockerImageを提供してるのは日本のこちらの会社です。 corp.intimatemerger.com

コンテナ建て方

pullして対話モードで起動するだけでOKです。楽チン!

# ImageのPull
docker pull intimatemerger/mecab-ipadic-neologd
# 対話モードで起動
docker run -it intimatemerger/mecab-ipadic-neologd mecab

(備考)コンテナの抜け方

※Ctrl+Cでは抜けられないので注意!

  • ログアウトするとき:Ctrl+D (コンテナは終了する)
  • デタッチするとき: Ctrl+P -> Ctrl+Q (コンテナは生き続ける)

つかいかた

こちらのページの一部の文章をかけます。

田村ゆかり - Wikipedia

ラジオなど、音声メディアの前では「ゆかり」という一人称を使っている。
親しい間柄の人物と会話する場合は「あたし」を使う。
雑誌などの活字メディアで使われる一人称は「私」。

対話モードでの使用

docker run -it 〜 で起動した後、上の原文をそのままペーストすれば結果が返り値として出てきます。

こんなかんじ。

$ docker run -it intimatemerger/mecab-ipadic-neologd mecab
ラジオなど、音声メディアの前では「ゆかり」という一人称を使っている。
親しい間柄の人物と会話する場合は「あたし」を使う。
雑誌などの活字メディアで使われる一人称は「私」。
ラジオ   名詞,一般,*,*,*,*,ラジオ,ラジオ,ラジオ
など  助詞,副助詞,*,*,*,*,など,ナド,ナド
、 記号,読点,*,*,*,*,、,、,、
音声  名詞,一般,*,*,*,*,音声,オンセイ,オンセイ
メディア    名詞,一般,*,*,*,*,メディア,メディア,メディア
の 助詞,連体化,*,*,*,*,の,ノ,ノ
前 名詞,副詞可能,*,*,*,*,前,マエ,マエ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
ゆかり   名詞,一般,*,*,*,*,ゆかり,ユカリ,ユカリ
」 記号,括弧閉,*,*,*,*,」,」,」
という   助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
一人称   名詞,一般,*,*,*,*,一人称,イチニンショウ,イチニンショー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
使っ  動詞,自立,*,*,五段・ワ行促音便,連用タ接続,使う,ツカッ,ツカッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
いる  動詞,非自立,*,*,一段,基本形,いる,イル,イル
。 記号,句点,*,*,*,*,。,。,。
EOS
親しい   形容詞,自立,*,*,形容詞・イ段,基本形,親しい,シタシイ,シタシイ
間柄  名詞,一般,*,*,*,*,間柄,アイダガラ,アイダガラ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
人物  名詞,一般,*,*,*,*,人物,ジンブツ,ジンブツ
と 助詞,格助詞,一般,*,*,*,と,ト,ト
会話  名詞,サ変接続,*,*,*,*,会話,カイワ,カイワ
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
場合  名詞,副詞可能,*,*,*,*,場合,バアイ,バアイ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
あたし   名詞,代名詞,一般,*,*,*,あたし,アタシ,アタシ
」 記号,括弧閉,*,*,*,*,」,」,」
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
使う  動詞,自立,*,*,五段・ワ行促音便,基本形,使う,ツカウ,ツカウ
。 記号,句点,*,*,*,*,。,。,。
EOS
雑誌  名詞,一般,*,*,*,*,雑誌,ザッシ,ザッシ
など  助詞,副助詞,*,*,*,*,など,ナド,ナド
の 助詞,連体化,*,*,*,*,の,ノ,ノ
活字  名詞,一般,*,*,*,*,活字,カツジ,カツジ
メディア    名詞,一般,*,*,*,*,メディア,メディア,メディア
で 助詞,格助詞,一般,*,*,*,で,デ,デ
使わ  動詞,自立,*,*,五段・ワ行促音便,未然形,使う,ツカワ,ツカワ
れる  動詞,接尾,*,*,一段,基本形,れる,レル,レル
一人称   名詞,一般,*,*,*,*,一人称,イチニンショウ,イチニンショー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
」 記号,括弧閉,*,*,*,*,」,」,」
。 記号,句点,*,*,*,*,。,。,。
EOS

ファイルでの入出力(指定フォルダをコンテナにマウント)

実際のユースケースでは対話モードだけでなく、テキストファイルに対して行うことも多々あると思います。 その時は、以下のように実行します。

処理したいテキストファイルがあるフォルダをコンテナのボリュームにマウントして、入出力ファイルを指定するっていうのをやっています。

# わたしの環境でのサンプル
$ docker run -v /Users/aftercider/Documents:/home intimatemerger/mecab-ipadic-neologd mecab  /home/input.txt -o /home/output.txt
$ cat output.txt 
ラジオ   名詞,一般,*,*,*,*,ラジオ,ラジオ,ラジオ
など  助詞,副助詞,*,*,*,*,など,ナド,ナド
、 記号,読点,*,*,*,*,、,、,、
音声  名詞,一般,*,*,*,*,音声,オンセイ,オンセイ
メディア    名詞,一般,*,*,*,*,メディア,メディア,メディア
の 助詞,連体化,*,*,*,*,の,ノ,ノ
前 名詞,副詞可能,*,*,*,*,前,マエ,マエ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
ゆかり   名詞,一般,*,*,*,*,ゆかり,ユカリ,ユカリ
」 記号,括弧閉,*,*,*,*,」,」,」
という   助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
一人称   名詞,一般,*,*,*,*,一人称,イチニンショウ,イチニンショー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
使っ  動詞,自立,*,*,五段・ワ行促音便,連用タ接続,使う,ツカッ,ツカッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
いる  動詞,非自立,*,*,一段,基本形,いる,イル,イル
。 記号,句点,*,*,*,*,。,。,。
EOS
親しい   形容詞,自立,*,*,形容詞・イ段,基本形,親しい,シタシイ,シタシイ
間柄  名詞,一般,*,*,*,*,間柄,アイダガラ,アイダガラ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
人物  名詞,一般,*,*,*,*,人物,ジンブツ,ジンブツ
と 助詞,格助詞,一般,*,*,*,と,ト,ト
会話  名詞,サ変接続,*,*,*,*,会話,カイワ,カイワ
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
場合  名詞,副詞可能,*,*,*,*,場合,バアイ,バアイ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
あたし   名詞,代名詞,一般,*,*,*,あたし,アタシ,アタシ
」 記号,括弧閉,*,*,*,*,」,」,」
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
使う  動詞,自立,*,*,五段・ワ行促音便,基本形,使う,ツカウ,ツカウ
。 記号,句点,*,*,*,*,。,。,。
EOS
雑誌  名詞,一般,*,*,*,*,雑誌,ザッシ,ザッシ
など  助詞,副助詞,*,*,*,*,など,ナド,ナド
の 助詞,連体化,*,*,*,*,の,ノ,ノ
活字  名詞,一般,*,*,*,*,活字,カツジ,カツジ
メディア    名詞,一般,*,*,*,*,メディア,メディア,メディア
で 助詞,格助詞,一般,*,*,*,で,デ,デ
使わ  動詞,自立,*,*,五段・ワ行促音便,未然形,使う,ツカワ,ツカワ
れる  動詞,接尾,*,*,一段,基本形,れる,レル,レル
一人称   名詞,一般,*,*,*,*,一人称,イチニンショウ,イチニンショー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
「 記号,括弧開,*,*,*,*,「,「,「
私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
」 記号,括弧閉,*,*,*,*,」,」,」
。 記号,句点,*,*,*,*,。,。,。
EOS

感想

  • 手元のpython環境汚さなくていいのは楽チン。
  • 分かち書きがとても簡単!