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

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

wikipediaに引き続き。

[amazonjs asin=”4339027510″ locale=”JP” title=”言語処理のための機械学習入門 (自然言語処理シリーズ)”]

 

前提

word2vecのインストール

 

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

[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 にログインして、設定画面を開く。

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ファイルを作成する。

[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]

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

Related posts

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

  1. […] Ubuntu + word2vec で twitter の自分のアカウントのデータを自然言語処理してみた | from umentu import stupid […]

コメントを残す