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)
(注)本来ならばストップワードを設定すべきだが,面倒だったから全ての語を対象とした。
頻度の降順にプロットした結果を以下に示す。
次に,手作業でストップワードを除去した結果を示す。(頻度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