Posts /

HerokuでMeCabとmecab-ipadic-NEologdを使う

Twitter Facebook Google+ Mastodon
30 Jan 2018

1/31 追記

結局色々問題があってVPSに移しました。他の用途でNEologd入りの環境があったのでそこで動かしています。しばらくこれで様子をみます。

(追記ここまで)

mastodon上で俳句を検出するbotを作ったのでHerokuで動かしています(@find575@theboss.techGitHub)。動かす際にMeCabを使うので、このあたりを参考にして入れました。

しかしどうも語彙が足りないようなので、いつもお世話になっているmecab-ipadic-NEologdをなんとか入れたので覚え書きを。

ググってみるとknjcode/heroku-buildpack-mecab-ipadic-neologdというのが見つかったのでbuildpacksに追加してデプロイしました。が、どうもうまく入らなかったのでforkされたリポジトリのうちで最も新しかったcalled-d/heroku-buildpack-mecab-ipadic-neologdを使ってみたところ、表示がおかしかったりしましたがなぜかちゃんと入りました。

mecab gemとか使う場合は-d /app/.linuxbrew/lib/mecab/dic/mecab-ipadic-neologdとか渡してやれば良いのですが、今回使ったのはnattoだったのでよく分からず、mecabrcを書き換えることにしましたが、Herokuではファイルを変更しても戻ってしまうのでdynosで実行する際に毎度変更することにしました。

Procfileは1行しか書けないですがbashを起動すれば複数のコマンドを実行できるようです。以下のように書きました。参考程度に

Procfile

bot: bash start.sh

start.sh

sed -i -e 's/ipadic/mecab-ipadic-neologd/g' .linuxbrew/etc/mecabrc
bundle exec ruby main.rb

以上でmecab-ipadic-NEologdが使えるようになりました。おかげでbotの語彙力が増えました。

しかし、「古池や蛙飛び込む水の音」が「フルイケ, ヤ, カエル, トビコミ, ムスイ, ノ, オト」になってしまったりで575と認識されなくなってしまったので、文字数を数えるにはどうかなぁ🤔という感じです。

うーん🤔何かいい方法をご存知の方は教えてください。


Twitter Facebook Google+ Mastodon