Ubuntu14にMeCab-Python環境を構築する | www.yoshiislandblog.net

Ubuntu14にMeCab-Python環境を構築する

Vagrantで作ったまっさらなUbuntuにMecab-Pythonの環境を構築する

□python3.5環境整備
pipをインストール

#apt-get install python-pip
#apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
pyenvをインストール

#git clone git://github.com/yyuu/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# source ~/.bashrc
# pyenv versions
* system (set by /root/.pyenv/version)
pyenv-virtualenvをインストール

# git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
# echo 'eval "$(pyenv virtualenv-init -)"'  >> ~/.bashrc
pyenv-virtualenvを作成

# pyenv versions
* system (set by /root/.pyenv/version)
# pyenv install 3.5.0
設定

# pyenv versions
* system (set by /root/.pyenv/version)
  3.5.0
# ls
# mkdir slack_bot_work
# cd slack_bot_work/
~/slack_bot_work# ls
~/slack_bot_work# pyenv local 3.5.0
~/slack_bot_work# pyenv virtualenv slack_bot_work
~/slack_bot_work# pyenv versions
  system
* 3.5.0 (set by /root/slack_bot_work/.python-version)
  3.5.0/envs/slack_bot_work
  slack_bot_work
~/slack_bot_work# pyenv local slack_bot_work
~/slack_bot_work# pyenv versions
  system
  3.5.0
  3.5.0/envs/slack_bot_work
* slack_bot_work (set by /root/slack_bot_work/.python-version)
□MeCabインストール

~/slack_bot_work# apt-get install mecab
~/slack_bot_work# apt-get install mecab-ipadic
mecab-python3がインストールできない

~/slack_bot_work# apt-get install python-dev
~/slack_bot_work# pip install mecab-python3

python-devをインストールすることで解決

lxmlがインストールできない

~/slack_bot_work# apt-get install libxml2-dev libxslt1-dev
~/slack_bot_work# pip install lxml==3.8.0

libxml2-dev libxslt1-devのインストールとマシンのメモリ増強で解決

メモリ増強は結構ミソ
□MeCab実行
エラー

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 17: invalid start byte
utf-8の辞書が入っていなかった、、、

~/slack_bot_work/mecab_slack_bot# apt-get install mecab-ipadic-utf8
def mecab_perse(text=None):
  m = MeCab.Tagger ("-Ochasen")
  if text != None:
    return m.parse(text)
%d bloggers like this: