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さんがなにか書いてくれるみたいですよ?