見出し画像

コンテナを活用して形態素解析環境をサクッと構築してみました

■はじめに

実験で、新たに形態素解析の環境を作る必要があり、今時なら、コンテナ環境かな〜、と考えました。

理由としては、すでに、だれかがコンテナイメージとして用意している可能性があり、コンテナを利用することで、環境の導入が不要で、また、WindowsやMacなどで、サクッと利用できるので、それを利用しない手は無いからです。

ということで、様々なコンテナイメージが登録されている Docker Hub にて、利用できそうな形態素解析用のコンテナを探してみました。

■MeCab

今回は、MeCab を利用することにします。また、辞書としては、定番のNEologd を使うことにします。(参考サイト:『新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた』)

そして、最終的には、smizyさんのsmizy/mecabというのが見つかりました。これを使うことにしました。

このコンテナイメージは、ベースイメージとして、軽量のLinuxディストリビューションのalpineを使用しており、結果、mecabや辞書を含めても、200MB程度のサイズに収まっていたからです。

■MeCabコンテナを試す

早速、実施してみました。(環境は、macOS Big Sur 11.4)

以下のように、ターミナルから docker run -i -a STDIN -a STDOUT smizy/mecab:0.996-alpine の指定だけで、事前にmecab + NEologd を導入することなく、実行できてしまいます。

なお、このコマンド実行のタイミングで、(1)最新のコンテナイメージが作成され(最新の辞書が取り込まれ)、(2)作成したコンテナイメージからコンテナが作成され、起動されます。

echo "最近のtiktokでは、ウマ娘が流行っている" | docker run -i -a STDIN -a STDOUT smizy/mecab:0.996-alpine

実行結果は、以下のとおりです。このように、形態素解析の結果、品詞情報が付いて、出力されるようになりました。

Unable to find image 'smizy/mecab:0.996-alpine' locally
0.996-alpine: Pulling from smizy/mecab
8e3ba11ec2a2: Pull complete 
66f0ab22b05d: Pull complete 
7bc67ebbe1a5: Pull complete 
Digest: sha256:9f16499eacfc5a7abdbe62b1829535e4b790a9ea522759aa391c712cc7c0f2cb
Status: Downloaded newer image for smizy/mecab:0.996-alpine
最近	名詞,副詞可能,*,*,*,*,最近,サイキン,サイキン
の	助詞,連体化,*,*,*,*,の,ノ,ノ
tiktok	名詞,固有名詞,一般,*,*,*,TikTok,ティックトック,ティックトック
で	助詞,格助詞,一般,*,*,*,で,デ,デ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
、	記号,読点,*,*,*,*,、,、,、
ウマ娘	名詞,固有名詞,一般,*,*,*,ウマ娘,ウマムスメ,ウマムスメ
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
流行っ	動詞,自立,*,*,五段・ラ行,連用タ接続,流行る,ハヤッ,ハヤッ
て	助詞,接続助詞,*,*,*,*,て,テ,テ
いる	動詞,非自立,*,*,一段,基本形,いる,イル,イル
EOS

ということで、非常に簡単で便利なのですが、『MeCabのコマンドライン引数一覧とその実行例』にあるように、色々出力形式を変えるなど(ワカチ書きなど)、オプション(パラメータ)を指定したい場合があります。(下記は、ワカチ書き例)

最近 の tiktok で は 、 ウマ娘 が 流行っ て いる

この場合は、カスタマイズが必要となってしまいます。

■コンテナイメージのカスタマイズ方法(汎用的な)

ということで、ここからは、既存のコンテナイメージをカスタマイズする方法を紹介します。

ここから先は

812字

¥ 100

この記事が気に入ったらサポートをしてみませんか?