vagrant centos 7 に自然言語処理の開発環境を構築する

自然言語処理に必要な定番ツールなどの環境をvagrantのcentos 7上に構築する手順メモです。

■ホストマシンの環境

macOS High Sierra (10.13.3) ※windowsでも同手順でできました。

VirtualBox (5.2.8)

Vagrant (2.0.2)

 

■vagrantにcentos/7 boxを追加


vagrantにcentos/7というboxを追加します。

いきなり下記のコマンドでダウンロードしてくれます。

作業ディレクトリ(今回はcentos7_MLという名前にしています)を作成して、vagrant init後一度upしてhaltします。

 

■VMのディスク容量を予め増やしておく


機械学習ではダウンロードするものが多かったり、大量の学習データなどでディスクがいっぱいになってしまう事がありますので予め増やしておきます。

VirtualBoxのGUIの該当VMの設定で、「ストレージ」->「ストレージデバイス」->「コントローラー:IDE」の横にある「ハードディスク追加」のボタンを押して、

可変vdiを選択して容量を設定して(今回は200Gにしました)、名前を付けます(今回は NewVirtualDisk1としました )。

その後、VirtualBoxのVMが置かれているディレクトリ(先ほど作成したディレクトリではなく、VirtualBoxがVMを置いている場所)に行って

最初から作成されていたディスク(centos-7-1-1.x86_64.vmdk)を新しいディスク(NewVirtualDisk1.vdi)にコピーします。

その後、Virtualbox GUIで古いディスクを削除し、新しいディスクだけにします。

 

Vagrantfileの

の行だけコメントを外して、

ここから作成したcentos上での作業です。

 

■共有ディレクトリの設定


Vagrantfileの共有フォルダ設定を変更

これで、VM上の /vagrant が Vagrantfileがあるディレクトリに同期されるようになります。

ついでに

メモリやCPUの設定も適当に変更しておきます。

再びvagrant up して vagrant ssh。

OSバージョンなど確認してみます。

 

■とりあえず入れるもの


やっとここから開発ツールのインストール作業です。

本当に必要なものかどうかは精査していませんが、作業中にとりあえず入れたものです。

 

■pyenvでPython3にする


 

■pipでとりあえず入れるもの


これらも環境構築の過程で入れたものなので、とりあえず入れたものリストという感じです。

 

■gensimのインストール


 

■mecabのインストール


mecab本体をダウンロードしてmake

パスを通す。

ipadicをダウンロードしてmake

一度動作確認します。

 

neologd辞書をインストール

動作確認してみる。

辞書に人名が入っているのが確認できます。

pythonから使う為のバインディングをインストール

動作確認

でエラーがでなければOK。

■fasTextのインストール


お試し。data.txtの部分はわかちしたテキストファイルを指定しますので、先ほどのmecabで作成しておいてください。

成功するとoutput_model.binとoutput_model.vecというファイルが作成されます。

とか出たらvagrantのメモリ増やしてみると上手く行く場合があります。

pythonで確認

■tensorflowのインストール


必要なものを事前にインストールしておきます。

動作確認

 

 

■kerasのインストール


kerasのサンプルを実行してみる。

keras/examplesにある mnist_cnn.py を実行してみる。

動き始めたようなのでとりあえず終了。

 

■chainerのインストール


サンプルで動作確認

 

 

■darknetのインストール


darknetはC言語で実装された機械学習用フレームワークです。必要に応じてインストールします。

C言語ニューラルネットワーク用フレームワーク”darknet”でRNNをお試し

 

■Juman++とKnpのインストール


mecabとは少し(文章によっては大きく)結果が異なります。mecabよりJuman++の方が性能が良い印象ですが遅いです。必要に応じて。

(1)BOOSTのインストール

(2)Juman++のインストール

# ライブラリの場所を登録して動作確認

(3)Jumanのインストール

(4)knpのインストール

libjuman.so.4がないと言われたら、下記あたりを行ったか確認してみてください。

(4)PyKnpのインストール(KNPをPythonから使うバインディング)

 

 

■python-twitterのインストール


twitterのデータを集めて学習したい場合はインストールします。