今回作るシステム
Twitter から情報をクロールしてきて、情報を整形し、ひたすらDBにストアしていくためのシステムを構築してみる。とりあえず実験として Vagrant を利用して仮想環境上にテスト環境を作成する。
- Vagrant (VirtualBox) の仮想環境を利用
- OS:
- Debian Wheezy 7.6
- Language:
- Python 2.7.3
- virtualenv にてモジュールを管理。
- Python 2.7.3
- Database:
- MySQL
- Tools:
- MeCab 0.99
- IPA辞書 (mecab-ipadic-utf8)
- MeCab の Python バインディング
- OS:
仮想マシン周りの環境構築
VirtualBox のインストール
https://www.virtualbox.org/wiki/Downloads から最新版をインストール。
仮想環境の作成は Vagrant から行う。
Vagrant のインストール
http://www.vagrantup.com/downloads から最新版をダウンロードしてインストール。
仮想マシン作成
Vagrantで仮想環境を作成する。
$ mkdir -p ~/vagrant/debian7_twitter
$ vagrant box add debian7.6_twitter https://github.com/jose-lpa/packer-debian_7.6.0/releases/download/1.0/packer_virtualbox-iso_virtualbox.box
$ vagrant init debian7.6_twitter
$ vagrant up
$ vagrant ssh
これで仮想環境にログインできる。
終了する場合は、ログアウト後
$ vagrant halt
で終了できる。以後は仮想環境を作成したディレクトリ下で、
vagrant up
-> vagrant ssh
でいつでもこの環境にログイン可能。
Python 周りの設定
Python
デフォルトで Python 2.7.3 がインストールされているのでこれを利用する。
$ Python -V
Python 2.7.3
virtualenv
プロジェクト単位で、使用するモジュールを管理するために virtualenv を利用する。
インストール
apt を利用する。
$ sudo apt-get update
$ sudo apt-get install python-dev python-virtualenv
virtualenv による Python 環境の切り替え
任意の作業ディレクトリに移動して以下のコマンドを実行する。
$ virtualenv twi-py
これでカレントディレクトリに twi-py
ディレクトリが作成され、ここに独立した Python 環境ができる。
作成したディレクトリに移動し、下記コマンドを実行する。
$ source bin/activate
シェルプロンプトの先頭に (twi-py) ...
がついていれば twi-py
環境に切り替わっている。
特定のモジュール環境から抜けてデフォルトに戻るには下記コマンドを実行する。
$ deactivate
以後 MeCab 関連のモジュールのインストール等はこの twi-py
環境で行う。
MeCab 周りの設定
MeCab 本体のインストール
apt を利用する。
$ sudo apt-get update
$ sudo apt-get -y install mecab
$ sudo apt-get -y install mecab-ipadic-utf8
$ sudo update-alternatives --config mecab-dictionary # ipadic-utf8 になっているかどうか確認
MeCab の Python バインディング (mecab-python) のインストール
apt で必要なライブラリのインストール。
$ sudo apt-get -y install python-dev
$ sudo apt-get -y install libmecab-dev
$ sudo apt-get -y install build-essential
$ sudo apt-get -y install g++
Debian 7 wheezy 用のバージョンの Python バインディングを twi-py
環境下にインストール。
(twi-py)$ pip install https://mecab.googlecode.com/files/mecab-python-0.99.tar.gz
MeCab と Python の動作確認
「すもももももももものうち」を形態素解析してみる。
$ Python
>>> import MeCab
>>> mecab = MeCab.Tagger("-Ochasen")
>>> print mecab.parse("すもももももももものうち")
すもも スモモ すもも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
も モ も 助詞-係助詞
もも モモ もも 名詞-一般
の ノ の 助詞-連体化
うち ウチ うち 名詞-非自立-副詞可能
EOS
>>>
きちんと解析できた。
これで今回作るシステムを実現するための道具は揃った。
MySQL の設定
インストール
apt を利用してインストール。
MySQL の設定
インストール
apt を利用してインストール。
$ sudo apt-get -y install libmysqlclient-dev
$ sudo apt-get -y install mysql-server-5.5
インストール中、rootパスワードの設定を求められるので vagrant
と入力。
動作チェック
root ユーザでログイン。
$ mysql -u root -pvagrant
mysql> SELECT user,host,password FROM mysql.user;
+------------------+----------------------------------+-------------------------------------------+
| user | host | password |
+------------------+----------------------------------+-------------------------------------------+
| root | localhost | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root | packer-virtualbox-iso-1411922062 | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root | 127.0.0.1 | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root | ::1 | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| debian-sys-maint | localhost | *A5B3FEE41C7F1F2C147B4876D39D6A4F65E79B7D |
+------------------+----------------------------------+-------------------------------------------+
無事動いた。
MySQL にアクセスするための Python のモジュールをインストール
twi-py
環境下にインストール。
(twi-py)$ pip install MySQL-python
動作チェック
$ python
>>> import MySQLdb
これでエラーが出なければOK。
最後に
これで必要なツールはひと通り揃った。
これからクロール部分、情報の成形部分、DBへのストア部分等を作っていく。
それらの記事はまた後ほど。