ruboty-mecab をリリースしました

こんにちは。whywriteit ruby班のwhywaitaです。

この度ruboty-mecabというgemをリリースしましたので、ご紹介します。

動作例は以下の画像です。

ruboty-mecab-usage

オープンソースの形態素解析エンジンである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を送ると、良い感じに辞書が追加されるようになってます。

とりあえず「としあ」という名前を人名として登録してみました。

ruboty-userdic

最初の使用例では取得出来ていなかった「としあさん」が正常に人名として取れるようになりました。意外と便利です。
このPRのように他人もメンテできるようになりました。

余談ですが、ここで追加した辞書はruboty-kokodeikkuでも利用されるので、良い感じに575されるようになります。

ruboty-575

良い感じですね。

まとめ

という訳でRubygemsデビューしました。

チャットをしていたら突然文章の形態素解析結果を知りたくなる皆さんは是非導入してみてください。

余談

ruboty-jigoku

ruboty-shibou

こちらからは以上です。


コメントを残す