tl;dr
Procfileに良い感じに書くとok
環境
HerokuにおけるProcfile
Procfileは1行しか書けませんが、bashを起動することによって複数コマンドを実行することができます。
$ cat Procfile
bot: bash heroku_exec.sh
$ cat heroku_exec.sh
/app/vendor/mecab/libexec/mecab/mecab-dict-index -d /app/vendor/mecab/lib/mecab/dic/ipadic -u original.dic -f utf-8 -t utf-8 dic.csv
mv original.dic /app/vendor/mecab/lib/mecab/dic/ipadic/
echo "userdic = /app/vendor/mecab/lib/mecab/dic/ipadic/original.dic" >> /app/vendor/mecab/lib/mecab/dic/ipadic/dicrc
/app/vendor/bundle/ruby/2.4.0/bin/bundle exec ruboty
※最後の1行は皆さんの環境に合わせて変更してください
このように書いてユーザー辞書をdic.csv
としてリポジトリに含んでおくと、勝手にユーザー辞書として反映されます。
実際に動いているリポジトリはこちらです。
利点
Herokuに辞書を置く
辞書作成は意外とコマンドが長くて面倒なのですが、この辺の扱いを気にせずCSVを書けば良いだけなので非常に楽です。
gitで管理できる
GitHubなどのgitホスティングサービスを使って管理していると、Pull Requestベースで管理出来たりと便利です。
実際にはこのようなPRが飛んでくる想定です。
まとめ
- Procfileはshellを開けばなんでも書ける
- MeCab独自辞書をHerokuで管理するの結構楽
- 良い形態素解析ライフを