Help us understand the problem. What is going on with this article?

herokuでpython+django+scikit-learn+mecab(1)

More than 3 years have passed since last update.

herokuでpythonのscikit-learn+mecabを使うときの方法。

herokuにはRubyでmecabを扱うためのheroku-buildpack-mecabは用意されているが、python用のものはない。そこでheroku-buildpack-linuxbrewを使ってmecabをbrew installする。

また、heroku-buildpack-pythonではscipyやscikit-learnなど、cコンパイラが必要なlibraryはインストールできない。代わりにheroku-buildpack-condaでpythonの代わりにminicondaをインストールすることでこれらのpackageがinstallされる。

これら複数のbuildpackを扱うために、heroku-buildpack-multiでappを作成する必要がある。

まずheroku用のローカルレポジトリ内で

$ git init
$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-multi

でアプリを作成する。

次にローカルレポジトリ内に .buildpacksを作成して

.buildpacks
https://github.com/kennethreitz/conda-buildpack.git
https://github.com/sunny4381/heroku-buildpack-linuxbrew.git

と記述して保存。
buildpack-multiはこのファイル内に記載されているbuildpackをインストールしてくれる。

同ディレクトリ内に .cellar を作成して

.cellar
mecab
mecab-ipadic

と記述して保存。
buildpack-linuxbrewはこのファイル内に記載されているアプリケーションをインストールしてくれる。

pip、condaでインストールしたいライブラリはそれぞれ
requirements.txt、conda-requirements.txt に記載すると勝手にインストールしてくれる。

$ pip freeze > requirements.txt

または

$ conda list > requirements.txt

注意点として、mecab-pythonはpipではinstallできないことである(もしかしてpipのversionを上げればいける??)
sh: 1: mecab-config: not foundというエラーが発生

そこでmecab-pythonはheroku上で手動でインストールする(かなりの力技・・・)
その準備として、ローカルレポジトリ内で

$ curl -O https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz
$ tar zxfv mecab-python-0.996.tar.gz
$ rm https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz

mecab-pythonを展開する。

またmecab-python-0.996内のsetpu.pyの'mecab-config''/app/.linuxbrew/bin/mecab-config'に変更する。(参照元:http://qiita.com/saicologic/items/ab70e14f7e2ec2ee0b4d)

これらのことが終了したのちに、bashでデプロイする。

$ heroku config:add LD_LIBRARY_PATH=/app/.linuxbrew/lib
$ heroku config:set MECAB_PATH=/app/.linuxbrew/lib/libmecab.so
$ git add .
$ git commit -m 'initial'
$ git push heroku master

デプロイ後に、heroku上でmecab-python を手動でインストールする。

$ heroku run bash
~/ cd mecab-python-0.996
~/ python setup.py build
~/ python setup.py install

でOK.。最後に同じくheroku上でpythonを起動して import MeCabできるか確認。

これでheroku上でpython + scikit-learn + mecabを使うことができるが、ファイルサイズがめちゃくちゃ重くなる・・・

無料の300Mだとかなり厳しい気が・・・
(参照元:http://qiita.com/shouta-dev/items/cd538a77f2b729333025)

kenchin110100
都内で働く新米機械学習エンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした