[NLP]VagrantでPython3からMeCab使える環境をセットアップ

カテゴリ: MeCab, python, Vagrant

AmazonLinuxで、Python3から形態素解析ライブラリのMeCabを使用できるようセットアップしたVagrantの設定ファイルを作成しました。

下記の内容をVagrantfileの名前で保存し、vagrantが入った環境でvagrant upするだけで環境が構築できます。

[関連記事]

Vagrantfileの中身

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "mvbcoding/awslinux"
  # config.vm.synced_folder "../data", "/vagrant_data"

  # config.vm.provider "virtualbox" do |vb|
  #   vb.gui = true
  #   vb.memory = "1024"
  # end

  config.vm.provision "shell", inline: <<-SHELL
    # install comiler
    sudo yum install gcc-c++ -y

    # install MeCab
    wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -q
    tar zxvf mecab-0.996.tar.gz
    pushd mecab-0.996
    ./configure
    make
    sudo make install
    sudo ln -s /usr/local/lib/libmecab.so.2.0.0 /lib64/libmecab.so.2
    popd


    # install Dictionary
    wget -O mecab-ipadic-2.7.0-20070801.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -q
    tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
    pushd mecab-ipadic-2.7.0-20070801
    ./configure --with-charset=utf8 --with-mecab-config=/usr/local/bin/mecab-config
    make
    sudo make install
    popd

    # check
    /usr/local/bin/mecab -v
    ls -l /usr/local/lib/mecab/dic/ipadic

    # test
    echo "MeCabを使った分かち書きのテストです。" | /usr/local/bin/mecab



    # install pyenv
    sudo yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel -y
    sudo -u vagrant sh -c "git clone https://github.com/pyenv/pyenv.git ~/.pyenv"
    sudo -u vagrant sh -c "sudo -u vagrant ~/.pyenv/bin/pyenv --version"

    # install python3
    sudo -u vagrant sh -c "~/.pyenv/bin/pyenv install 3.6.5"
    sudo -u vagrant sh -c "~/.pyenv/bin/pyenv global 3.6.5"



    # set .bash_profile
    echo 'export PYENV_ROOT="$HOME/.pyenv"'    >> ~vagrant/.bash_profile
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~vagrant/.bash_profile
        echo 'eval "$(pyenv init -)"'              >> ~vagrant/.bash_profile

    # check python version
    sudo -u vagrant bash -c "source .bash_profile; python --version"

    # install mecab-python3
    sudo -u vagrant bash -c " export PATH=/usr/local/bin:$PATH; source .bash_profile;pip install mecab-python3"

    # check mecab-python
    cat <<EOT > /home/vagrant/test01.py
# coding: utf-8
import sys
import MeCab
m = MeCab.Tagger ("-Owakati")
print(m.parse ("すもももももももものうち"))
EOT

    chown vagrant:vagrant  /home/vagrant/test01.py

    sudo -u vagrant bash -c "source .bash_profile; python test01.py"
  SHELL
end

実行結果

実行するとプロビジョニングの最後に、以下のような感じでMeCabの実行結果が出力されます。

$ vagrant up

...
default: すもも も もも も もも の うち
こちらもおススメ

One thought on “[NLP]VagrantでPython3からMeCab使える環境をセットアップ

コメントを残す

メールアドレスが公開されることはありません。