Twitter において自分がよく使う語は何か?

自分のツイートに含まれる語の傾向を知るため,頻度分布を求めた。
手順は以下のとおり:

1.Twitter API を利用し,自らのタイムラインを取得する。(tweepy.API.user_timeline)

$ python mytweets.py > mytweets.txt

mytweets.py

#coding: utf-8

import tweepy

consumer_key = 'consumer key'
consumer_secret = 'consumer secret'
oauth_token = 'oauth token'
oauth_token_secret = 'oauth token secret'

# auth オブジェクトの初期化
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

# あらかじめ取得したOAuth tokenの設定
auth.set_access_token(oauth_token, oauth_token_secret)

# api オブジェクトを設定
api = tweepy.API(auth)

# Twitter API を利用してユーザ・タイムラインを取得
statuses = api.user_timeline(count=100)

for status in statuses:
    print status.text.encode('utf-8')

サイズは 205件。(205件に深い意味はない)

$ wc ~/mytweets.txt 
  205   419 34915 /home/muto/mytweets.txt

2.取得したタイムライン中のテキスト(=つぶやき)を分かち書き

$ mecab -O wakati mytweets.txt > mytweets_wakati.txt

3.nltk.FreqDist を用いて,各語の頻度を求める。

$ python analysis.py

analysis.py

#coding: utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import nltk
from nltk.corpus.reader import *
from nltk.corpus.reader.util import *
#from nltk.text import Text

corpus = nltk.corpus.reader.PlaintextCorpusReader('.', 'mytweets_wakati.txt', encoding='utf-8')

fd = nltk.FreqDist(corpus.words())

#頻度の出力
for k in fd.keys():
    print "%s : %d" % (k, fd[k])

#プロット
fd.plot(100)

(注)本来ならばストップワードを設定すべきだが,面倒だったから全ての語を対象とした。

頻度の降順にプロットした結果を以下に示す。
f:id:ymuto109:20121228003006p:plain

次に,手作業でストップワードを除去した結果を示す。(頻度4以上の語を抽出)

  • Twitter の特性上,「今日」が最大であった。また,「昨日」「明日」の出現頻度も高い。
  • 「今日」に続くのが「仕事」「時間」であり,なんだか時間に追われながら仕事しているようで悲しくなる。
  • "http" はリンクを貼りつけた結果であろう。オリジナルのポストでリンク貼り付けをやらないため,リツイートが影響したと考えられる。
  • その後,「問題」「学生」「テスト」と続くのは約2週間前に定期試験が行われたため。
  • 頻度が1桁の語からは,概ね,普段の仕事が透けて見えそうだ。
今日 : 21
仕事 : 19
時間 : 19
http : 15
問題 : 15
明日 : 15
学生 : 11
テスト : 10
昨日 : 10
考え : 10
今夜 : 9
会議 : 9
朝 : 9
調査 : 9
Google : 8
予定 : 8
企業 : 7
寮 : 7
採点 : 7
日本 : 7
メール : 6
就職 : 6
必要 : 6
自分 : 6
アカウント : 5
エアコン : 5
データ : 5
ネット : 5
メモ : 5
主事 : 5
気温 : 5
点検 : 5
研究 : 5
言葉 : 5
API : 4
TPP : 4
nltk : 4
ゴミ : 4
バス : 4
不安 : 4
予報 : 4
今朝 : 4
作成 : 4
作業 : 4
大変 : 4
大学生 : 4
政治 : 4
明確 : 4
社会 : 4
程度 : 4
管理 : 4
終了 : 4
試験 : 4
認証 : 4
資料 : 4
購入 : 4
身体 : 4
過去 : 4
部屋 : 4
関係 : 4
雨 : 4
頭 : 4