自然言語処理環境構築 メモ 2017

sudo yum update

# GCC 他
sudo yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel
sudo yum install git patch


# Java
sudo yum -y install java-1.8.0-openjdk-devel
sudo alternatives --config java <- 1.8を選択する

# rzsz
wget http://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar -xzvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure --prefix=/usr/local
make
sudo su -
make install
cd /usr/local/bin
ln -s lrz rz
ln -s lsz sz

# mecab
git clone https://github.com/taku910/mecab.git
cd mecab/mecab
./configure --enable-utf8-only
make
sudo make install

# mecab-ipadic
https://sourceforge.net/projects/mecab/files/mecab-ipadic/ からダウンロード
tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install

$ mecab
すもももももももものうち
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

# mecab-ipadic-NEologd 
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
./bin/install-mecab-ipadic-neologd
$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
逃げるは恥だが役に立つ
逃げるは恥だが役に立つ  名詞,固有名詞,一般,*,*,*,逃げるは恥だが役に立つ,ニゲルハハジダガヤクニタツ,ニゲルハハジダガヤクニタツ

neologd をデフォルトの辞書にする場合
# vi /usr/local/etc/mecabrc
;dicdir =  /usr/local/lib/mecab/dic/ipadic
dicdir = /usr/local/lib/mecab/dic/mecab-ipadic-neologd


# Python2系と3系を使い分けるために pyenv を使う
# pyenv
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

$ vi ~/.bash_profile
export PYENV_ROOT="${HOME}/.pyenv"
export PATH=${PYENV_ROOT}/bin:$PATH:$HOME/.local/bin:$HOME/bin
eval "$(pyenv init -)"

source ~/.bash_profile
pyenv install --list
pyenv install anaconda3-4.4.0

# デフォルトは Python3系
pyenv global anaconda3-4.4.0

# Python2.7系を使う場合
pyenv install 2.7.13
pyenv versions

mkdir Python2.7;cd Python2.7
pyenv local 2.7.13
$ python
Python 2.7.12 (default, Sep  1 2016, 22:14:00)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

# mecab-python
## Python3 系
pip install mecab-python3
python
import MeCab
tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
input = '妖怪アパートの幽雅な日常'
result = tagger.parse(input)
print(result)

## Python2.7系
cd Python2.7
pip install mecab-python
import MeCab
tagger = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
input = '妖怪アパートの幽雅な日常'
result = tagger.parse(input)
print(result)

# Elasticsearch
sudo su -
sysctl -w vm.max_map_count=262144
# vi /etc/security/limits.conf
ec2-user -  nofile  65536

## Elasticsearch
https://www.elastic.co/downloads/elasticsearch からダウンロード
tar xvfz elasticsearch-5.5.0.tar.gz

$ vi elasticsearch-5.5.0/config/elasticsearch.yml
network.host: 0.0.0.0

elasticsearch-5.5.0/bin/elasticsearch
ブラウザから http://hoge:9200/ で接続確認
{
  "name" : "DsuYd0M",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "j86nMY6vQaysCIaUD-rMqg",
  "version" : {
    "number" : "5.5.0",
    "build_hash" : "260387d",
    "build_date" : "2017-06-30T23:16:05.735Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

elasticsearch-5.5.0/bin/elasticsearch-plugin install analysis-icu
elasticsearch-5.5.0/bin/elasticsearch-plugin install analysis-kuromoji

## elasticsearch-head
sudo yum install nodejs npm --enablerepo=epel

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
ブラウザから http://hoge:9100/
 http://hoge:9200/ で接続


# Kibana 
https://www.elastic.co/downloads/kibana からダウンロード
tar xvfz kibana-5.5.0-linux-x86_64.tar.gz

vi kibana-5.5.0-linux-x86_64/config/kibana.yml
server.host: 0.0.0.0
kibana-5.5.0-linux-x86_64/bin/kibana

# elasticsearch-py
## Python3系
pip install elasticsearch

$ python
from elasticsearch import Elasticsearch

## Python2系
pip install elasticsearch

$ python
from elasticsearch import Elasticsearch

# S3 をマウントするために goofys インストール
sudo yum update -y
sudo yum install golang fuse -y
export GOPATH=~/go
go get github.com/kahing/goofys
go install github.com/kahing/goofys
mkdir マウントポイント
~/go/bin/goofys バケット名 マウントポイン

## yum でインストールした go でエラーになる場合
## go 1.7.5 ではエラーになって goofys のインストールができなかった
## go/src/github.com/kahing/goofys/internal/handles.go:409: undefined: url.PathUnescape
sudo yum remove golang
https://golang.org/dl/ からダウンロード
 sudo tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz

$ vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
source ~/.bash_profile
export GOPATH=~/go
go get github.com/kahing/goofys
go install github.com/kahing/goofys
mkdir マウントポイント
~/go/bin/goofys バケット名 マウントポイント