Ubuntu + word2vecでtwitterの自分のアカウントのデータを自然言語処理してみた
wikipediaに引き続き。
[amazonjs asin="4339027510″ locale="JP" title="言語処理のための機械学習入門 (自然言語処理シリーズ)"]
前提
関連パッケージのインストール
[shell]
sudo apt-get install mecab mecab-naist-jdic mecab-ipadic-utf8 libmecab-dev
[/shell]
pyenvでpython3.5.0環境を構築
[shell]
pyenv 3.5.0 ~/w2v_python
source ~/w2v_python/bin/activate
pip install –upgrade pip
[/shell]
mecab-pythonをインストール
mecab-pythonがpython2用に書かれていてpipでインストールできないため、ダウンロードして手動でインストールする。
[shell]
cd ~/w2v_python
mkdir download
cd download
curl https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz -O mecab-python-0.996.tar.gz
tar zxvf mecab-python-0.996.tar.gz
cd mecab-python-0.996/
vi setup.py
[/shell]
[shell title="setup.pyの内容"]
# cmd2関数を以下のように書き替える。
#def cmd2(str):
# return string.split (cmd1(str))
def cmd2(str):
return cmd1(str).split()
[/shell]
[shell]
pip install -e .
[/shell]
twitter用の作業用ディレクトリを作成する
[shell]
mkdir ~/trunk/twitter
[/shell]
twitterのデータをダウンロードしてくる
twitter にログインして、設定画面を開く。
「全ツイート履歴をリクエストする」ボタンをクリックする。しばらくすると登録しているメールアドレスにダウンロードリンクが送られてくる。
「ダウンロード」ボタンをクリックすると、zipファイルが送られてくる。
zipファイルを解凍し、tweets.csvファイルを~/trunk/twitterディレクトリに保存する。
取得したツイート一覧を品詞分解する
~/trunk/twitterディレクトリにwakati_twitter.pyファイルを作成する。
[shell]
cd ~/trunk/twitter
vi wakati_twitter.py
[/shell]
[python title="wakati_twitter.pyの内容"]
# -*- coding: utf-8 -*-
import os
import csv
import MeCab
import re
def main():
dirname = os.path.dirname(os.path.abspath(__file__)) + "/"
tagger = MeCab.Tagger('-Owakati’)
f_out = open(dirname + "tweets_wakati.txt", "w" )
f_in = open(dirname + "/tweets.csv", "r")
for line in csv.reader(f_in):
line = line[5]
line = re.sub('https?://,*’, ", line)
f_out.write(tagger.parse(line))
f_out.close()
if __name__ == '__main__’:
main()
[/python]
実行すると、ツイート一覧を品詞分解したファイルが出力される。
[shell]
python wakati_twitter.py
[/shell]
word2vec に学習させる
[shell]
cd ~/trunk/twitter
time ../word2vec -train tweets_wakati.txt -output tweets.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -binary 1
[/shell]
wikipediaのときとは違って、すぐに終わる。
試す
distanceで実行する。
[shell]
../distance tweets.bin
Enter word or sentence (EXIT to break): python
Word Cosine distance
————————————–
MongoDB 0.735319
uwsgi 0.727825
Nginx 0.678082
Django 0.667306
CentOS 0.662149
オペレータ 0.637451
+ 0.626414
IME 0.618104
Python 0.601367
Slack 0.600912
SlackBot 0.598981
アプリケーション 0.598711
Caffe 0.598206
SELinux 0.597366
動く 0.593125
メソッド 0.589314
ローカル 0.588663
関数 0.587425
ネガ 0.587146
Linuxmint 0.586734
[/shell]
自分の関わりのあるワードが出てくるので、楽しい。
ディスカッション
ピンバック & トラックバック一覧
[…] Ubuntu + word2vec で twitter の自分のアカウントのデータを自然言語処理してみた | from umentu import stupid […]