All Your Bugs Are Belong To Ass

MeCab? それDockerでできるよ

これはPerl Advent Calendar 2014の21日目のために書かれたエントリです。 前日のエントリは @ar_tama さんによる『ちいさなべんりコマンド「bit」をつくった話』でした。

さて本題。

日本語の構文解析(というか形態素解析)を行う上で、割と古くから活用されている「mecab(めかぶ)」。このmecabをPerlから利用するためのライブラリにText::MeCabというものがあって、大変に有用ですね。みなさんも日常的に形態素解析をされていると思いますので、よくご存知かと思います。

しかし、その導入には割と手間がかかります。各種依存ライブラリの導入、辞書データの導入(この時に文字コードをutf8にし忘れたりとか)あたりがそうでしょうかね。

導入の手間がかかるものはDockerに押し込んでしまえ

少し前に、FFmpegやらImageMagickをDockerに入れると楽だよねーという感じの内容のブログエントリがありました。FFmpegもImageMagickも相当に導入が手間なプロダクトですので、その手間をDockerで自動化してしまう、というアプローチはとても良いと思いました。

そこで、mecabとText::MeCabをDockerに入れて楽したらいいのでは?ということで、Docker Imageを作ってみました。

なんと、一緒に雑なJSON APIも付属しております。これでFurlなどで良しなにリクエストを投げてやると、いい感じに解析結果を返してくれるようになっています。

使い方

大変簡単です。まずコンテナの起動方法は以下の通り。

$ sudo docker run -p 7654:7654 -d ytnobody/mecab-psgi

あとは以下のようなURLにリクエストを投げてやると、JSONで解析結果のノードが帰ってきます。

http://docker-host:7654/?text=すもももももももものうち

Dockerの導入すら面倒という向きのために

コンテナを雑にデプロイしておきました。

しょぼいノードなので、もしかしたらすぐ死んでしまうかもしれませんが、ちょっと試す程度には使えると思います。

まとめ

手間の掛かりそうなセットアップはdockerに押し込むと案外ぱっちりハマったりするかもしれませんね。

さて、明日はmAKudozさんがなにか書いてくれるみたいですよ?

Created at
by
ytnobody
Last modified at
2014-12-21 13:04
by
ytnobody