以下のパッケージをインストールします。OSはubuntu16.04です。
- python(3.5.0) - 自然言語処理系のライブラリが多い言語
- pyenv - pythonのバージョン管理をするパッケージ
- MeCab(0.996) - 形態素解析エンジン
- CaboCha(0.69) - 係り受け解析エンジン
- gensim(0.12.4) - 流行りのLDAやword2vecが使えるライブラリ
#python3,pyenv
とりあえずpythonをいれます。
$ sudo apt-get install python
恐らくこれだけだとインストールされるのはpython2.7だと思うのでpythonのバージョン管理をしてくれるpyenvを落とします。
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
pyenvを利用するためには.zshenvのようなshell設定ファイルに以下のスクリプトを追加して下さい。
export PYENV_ROOT="$HOME/.pyenv"
export PATH=$PATH:$PYENV_ROOT/bin
eval "$(pyenv init -)"
追記(2017-12-11)
exportの順番を逆にしてました。PYENV_ROOTを先に定義してPATHの定義の際に呼び出さないと正しくできません。
僕はzshを使っているのですがファイルとして保存したシェルスクリプトからpythonを呼び出すとpython2.7になってしまうという問題がありました。僕はこのような設定は全部.zshrcに書いていたのですが、よくよく確認してみると.zshrcはストリーム上(人がコマンド打つとき)でしか適用されない設定で、シェルスクリプトには適用されないようです。.zshenvはzsh起動時に必ず実行される設定ファイルです。環境変数は全部.zshenvに書きましょう。
ではpyenvを使います。インストールできるpythonのバージョン一覧を確認します。
$ pyenv install -l
3.5.0があることを確認したらpython3.5.0をインストール、利用バージョンの変更、更新をします。最後のバージョン確認で3.5.0と出たら成功です。
$ pyenv install 3.5.0
$ pyenv global 3.5.0
$ pyenv rehash
$ python --version
それからpythonのライブラリ管理ツール、pipをインストールしましょう。以降の設定でも何度か利用します。
$ sudo apt-get install python-pip
参考URL
Zsh 入門者のための超速設定ガイド
http://qiita.com/uasi/items/c4288dd835a65eb9d709
MacでPython使う時の最低限のメモ(pyenv編)
http://qiita.com/zaburo/items/dd1a8323633035614efc
pyenv + virtualenv (CentOS7)
http://qiita.com/saitou1978/items/e82421e29e118bd397cc
UbuntuのPythonでeasy_installやpipを使いたい場合
http://tech.g.hatena.ne.jp/rx7/20101129/p1
#MeCab
MeCabとその他必要なパッケージをインストールします。
$ sudo apt-get install mecab mecab-ipadic libmecab-dev
mecab-ipadicを入れると文字コードがutf-8になります。libmecab-devを入れないとmecab-configが入ってないと怒られる原因になります。MeCabで利用できる辞書にはipadic,jumanなどがありますが、今回はmecab-ipadic-neologdを使います。この辞書の特徴は固有名詞、記号、顔文字などを多く含んでいる点です。次のコマンドでインストールしましょう。
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git <保存する場所のパス>
$ cd <保存した場所>/mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -h
保存する場所は既にある辞書と同じ階層が良いと思います。mecab -D
で現在利用してる辞書の場所が分かります。利用するときは次のコマンドを利用します。
mecab -d <保存した場所>/mecab-ipadic-neologd/
次にpythonからMeCabを使えるようにバインディングを行います。次のコマンドを使います。
$ pip install mecab-python3
次のコマンドでエラーが出なければ成功です。
$ python
>>> import MeCab
参考URL
mecab-ipadic-NEologd : Neologism dictionary for MeCab
https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md
#CaboCha
以前やったように以下のコマンドでインストールを試みたのですが。
$ sudo apt-get install subversion
$ pip install 'svn+http://cabocha.googlecode.com/svn/trunk/python@r99'
パッケージが見つからないと怒られました。色々他の方法を試みたのですが結局公式サイトに書いてある方式で落とすことにしました。まずはcabochaに必要なライブラリCRF++ですが、wgetでもうまくいかなかったのでしょうがなく以下のリンク先からダウンロードしました。
cabochaそのものはwgetで落としました。リンク先だとバージョンは0.67ですが最新の0.69にしときましょう。
$ tar zvxf CRF++-0.58.tar.gz
$ cd CRF++-0.58
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
$ wget http://cabocha.googlecode.com/files/cabocha-0.69.tar.bz2
$ tar xjvf cabocha-0.69.tar.bz
$ cd cabocha-0.69
$ ./configure --with-charset=UTF8 --with-posset=IPA
$ make
$ sudo make install
$ sudo ldconfig
$ cabocha
次にpython3へのバインディングをします。元の状態だとpython3に対応してないのでsetup.pyを少し修正します。setup.pyはcabocha-69/pythonの下にあります。
#中略
def cmd2(str):
# return string.split (cmd1(str)) この行を削除
return cmd1(str).split() # この行を挿入
#中略
修正したら次のコマンドでインストールします。
$ cd cabocha-0.69/python
$ sudo python setup.py build_ext
$ sudo python setup.py install
$ sudo ldconfig
cabochaを使う際も次のコマンドのように辞書を指定しましょう。
cabocha -d <保存した場所>/mecab-ipadic-neologd/
次のコマンドでエラーが出なければ成功です。
$ python
>>> import CaboCha
参考URL
CaboCha公式サイト
https://taku910.github.io/cabocha/
Cabochaのインストールメモ
http://qiita.com/ShingoOikawa/items/ef4ac2929ec19599a3cf
CaboChaをpython3で使うためのパッチ書いた
http://nosada.hatenablog.com/entry/2014/03/14/002954
CaboCha(python)で辞書指定
http://studylog.hateblo.jp/entry/2016/01/25/134507
#gensim
次のコマンドで簡単にインストールできます。numpy,scipyはgensimを利用するのに必要なライブラリです。
$ pip install numpy
$ pip install scipy
$ pip install gensim
例のごとく次のコマンドでインストールできてるか確認します。
$ python
>>> import numpy
>>> import scipy
>>> import gensim
参考URL
gensim:installation
https://radimrehurek.com/gensim/install.html
以上で環境設定は終了です。お疲れ様でした。
#終わりに
ほとんどは以前自分ではてなブログに書いた記事を参考にしました。
python2.7から3.5へのアップグレード(NLP風味)
http://woody-kawagoe.hatenablog.com/entry/2016/04/18/222535
再びハマってしまったというのとqiitaに色々書いてみたいというのがあって書き直してqiitaに投稿した次第です。