Ubuntu + word2vecでtwitterの自分のアカウントのデータを自然言語処理してみた

Share on Facebook
Pocket
LINEで送る
Bookmark this on Google Bookmarks

wikipediaに引き続き。

 

前提

word2vecのインストール

 

関連パッケージのインストール

sudo apt-get install mecab mecab-naist-jdic mecab-ipadic-utf8 libmecab-dev

 

pyenvでpython3.5.0環境を構築

pyenv 3.5.0 ~/w2v_python
source ~/w2v_python/bin/activate
pip install --upgrade pip

 

mecab-pythonをインストール

mecab-pythonがpython2用に書かれていてpipでインストールできないため、ダウンロードして手動でインストールする。

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

    # cmd2関数を以下のように書き替える。
    #def cmd2(str):
    #    return string.split (cmd1(str))
    def cmd2(str):  
        return cmd1(str).split()  
pip install -e .

 

twitter用の作業用ディレクトリを作成する

mkdir ~/trunk/twitter

 

twitterのデータをダウンロードしてくる

twitter にログインして、設定画面を開く。

Screenshot_from_2015-12-20 04:50:13

 

「全ツイート履歴をリクエストする」ボタンをクリックする。しばらくすると登録しているメールアドレスにダウンロードリンクが送られてくる。
Screenshot_from_2015-12-20 04:51:39

 

メールに送られてきたリンクをクリックする。
Screenshot_from_2015-12-20 05:00:02

 

「ダウンロード」ボタンをクリックすると、zipファイルが送られてくる。
Screenshot_from_2015-12-20 05:16:50

 

zipファイルを解凍し、tweets.csvファイルを~/trunk/twitterディレクトリに保存する。

 

取得したツイート一覧を品詞分解する

~/trunk/twitterディレクトリにwakati_twitter.pyファイルを作成する。

cd ~/trunk/twitter
vi 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 wakati_twitter.py

 

word2vec に学習させる

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

wikipediaのときとは違って、すぐに終わる。

 

試す

distanceで実行する。

../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
    

自分の関わりのあるワードが出てくるので、楽しい。

Follow me!

Ubuntu + word2vecでtwitterの自分のアカウントのデータを自然言語処理してみた” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です