ruboty-mecab をリリースしました
こんにちは。whywriteit ruby班のwhywaitaです。
この度ruboty-mecabというgemをリリースしましたので、ご紹介します。
動作例は以下の画像です。
オープンソースの形態素解析エンジンであるMeCabを、チャットフレームワークであるRuboty上で動作出来るRubotyプラグインです。
Gemの作成
RubotyプラグインはGemを通してインストール出来るようになっているため、ruboty-mecabも例に漏れずgemコマンドを用いてインストール出来るようになっています。
https://rubygems.org/gems/ruboty-mecab
Gemの作り方に関しては以下の記事が参考になりました。rubygems、最初はアカウント作成が面倒だと感じましたが、リリースがかなり楽になっていたので、1度慣れると快適でした。
特に bundle exec rake release
コマンドでサクッとリリース出来るのが便利です。Rubygemsへの公開だけでなく、リリースタグ付け、GitHubへのpushも同時にやってくれるのは楽でいいですね。
Herokuでの独自辞書
先ほどの画像を見て分かる方もいらっしゃるかもしれませんが、このgemは真っ先にd250g2 slackに導入されました(d250g2 slackについては以前の記事をご確認ください)。
RubotyでのMeCabといえばr7kamura/ruboty-kokodeikkuがあり、例に漏れずd250g2 slackのbotにも導入されているのですが、「この単語はなんで一句にならなかったんだ?」となる事が多く発生していました。
ruboty-kokodeikkuではMeCabによる形態素解析が行われておりますが、送信した単語がどのように形態素解析されたのかの結果が分かりづらく、単語1つだけ形態素解析した結果を知りたいという話があり、このGemが作成されました。
さて、こういう遊びをしていると、MeCabの辞書に好きな単語を入れたくなります。HerokuでMeCabを利用しようとするとdiasks2/heroku-buildpack-mecabを使う事が多いと思いますが、残念ながらbuildpackで辞書追加機能がないので、良い感じに追加するように実装しました。
現在はdic.csvを編集するPRを送ると、良い感じに辞書が追加されるようになってます。
とりあえず「としあ」という名前を人名として登録してみました。
最初の使用例では取得出来ていなかった「としあさん」が正常に人名として取れるようになりました。意外と便利です。
このPRのように他人もメンテできるようになりました。
余談ですが、ここで追加した辞書はruboty-kokodeikkuでも利用されるので、良い感じに575されるようになります。
良い感じですね。
まとめ
という訳でRubygemsデビューしました。
チャットをしていたら突然文章の形態素解析結果を知りたくなる皆さんは是非導入してみてください。
余談
そもそも575出来ない時に形態素解析どうされてるか分からんという話があったので作ったgemなんだけど、突然山月記をコピペして投げてくる人は普通居ないんですよね
— why/橘和板 (@whywaita) 2017年2月15日
そういう人が居るslackが d250g2 slackです
— why/橘和板 (@whywaita) 2017年2月15日
こちらからは以上です。