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

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

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
    

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

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

コメントを残す

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