読者です 読者をやめる 読者になる 読者になる

tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

twitter4j + lucene + Rで、twitterでの今年のツイートを振り返る

java lucene twitter 開発

年の瀬ということで、今年1年のtwitter上での発言をtwitter4j+lucene+Rで振り返ってみました。
ぐぐるとツイート分析系のツールはいろいろでてくるけど、勉強を兼ねて自前で作ってみました。

 

どんなことを振り返るか

つらつらと振り返りたいことを考えてみました。
1.ツイートの傾向
・ツイート数
・メンション(会話)数
・リツイート数
・ツイートの時間帯傾向


1年間どんな風にツイートしてきたのかなぁとか、誰とやりとりしていたのかなぁとか。
一時期忙しすぎてtwitter使ってなかった時期があったけど、いつぐらいだったけかなぁ、とか。

2.今年一番ツイートした日にちからその日なにがあったか振り返る
たぶん何かしらあった日は多くツイートしていると思うので、これをベースに振り返ってみたいと思いました。

3.今年一番ツイートした言葉
個人的流行語大賞的なノリで。そんなに同じことはツイートしてない気がするからばらけそう。

使ったツール

・ツイートの取得:twitter4j (javaで使えるtwitter api wrapper)
・ツイートの解析:R → 2番でやるような、日にちごとの解析に使います
・ツイートの言語解析:lucene+kuromoji(日本語形態素解析)→3番やるのに使います

 

ソースコード

・ツイートの取得

シンプルに必要なデータを取得するものを作りました。

ツイート

ツイート日時、ツイート内容、リツイート数

メンション数

ツイート日時、ツイート者、ツイート内容

出力結果はてきとうなlogファイルに吐き出すようにしています。

https://github.com/tomoima525/twitterTools

 

・ツイートの言語解析

lucene4.6 のJapaneseAnalyzer(kuromoji)を使い形態素解析を行い、さらにtermVectorを使い単語の出語頻度を計算し、リスト化しています。

https://github.com/tomoima525/lucene

 

分析結果

1.ツイートの傾向

・ツイート数

今年のツイート数は1415件でした。平均一日4件位といったところでしょうか。そんなに多くはないですね。


・メンション(会話)数

メンション数は819件でした。58%のツイートが誰かとの会話でした。


・リツイート数

212件でした。ここでのリツイート数は誰かのツイートをリツイートしたものを指しています。自分のツイートはほとんどリツイートされてないので今回はカウントしてません。

メンションとも重複している部分はあるので一概にはいえないのですが、大体15%は誰かしらの発言をリツイートしているということになります。

都合25%位が独り言ツイートのようです。独り言の方が多くなくてよかった…。(それでも多いけど)


・ツイートの時間帯傾向

→Rが上手に使えなくて断念。次回に持ち越しします。(あるのか?)

 

2.今年一番ツイートした日にちからその日なにがあったか振り返る

まずは月ごとのツイート数をRで計算してみました。

> owntwit<-read.csv("owntwit_2013.log",header=F,quote="\"",sep="\t")
> View(owntwit)

f:id:tomoima525:20131231195101p:plain

 

うまい具合に取り込めてます。次に月ごとを取得します。
> tweet_month=substr(owntwit$V1,5,7)

このままだと時系列に並ばないので、月を数字に置換します。

> tweet_month<-gsub("Jan","01",tweet_month)
(以下他の月も同様。絶対もっとましなやりかたあるはず…)

> table(tweet_month)
tweet_month
 01  02  03  04  05  06  07  08  09  10  11  12
138  89  68 114 147  90 151 141 114 103 115 145

2月3月はツイート数少ないですね。そういえばこの時期はデスマーチで、上司に泣きついていた時期でした…。

 

次に日ごとのツイート数を見てみました。

> tweet_date=substr(owntwit$V1,5,10)

> table(tweet_date)
tweet_date

Apr 01 Apr 02 Apr 04 Apr 05 Apr 06 Apr 07 Apr 09 Apr 10 Apr 11 Apr 12 Apr 13
     4      6      4      3      4      4      1      3      3      1      5

(省略)

Rの使いかたがいまいちなれなくて、上手に集計できませんですね…。

勉強してきます。

気をとりなおしてツイート数が多い日をTOP3を見てみると。

No.1 1/14  37 tweets

No.2 7/30  23 tweets

No.3 12/08 20 tweets

No.1の1/14はなんでこんなに多いのだっけ、と思って調べてみたら、スキー旅行の帰路で大雪にはまり、バスでやることがなくてとりあえずツイートしていたようです。

Mon Jan 14 16:00:25 JST 2013    "バス運転手「このバスは都内へと向かうつもりですが、高速が通行止めのため、都内へ向かえません!」   ドッ!"  

Tue Jan 15 01:17:23 JST 2013    "ようやく新宿ついた…"     

なんと新宿ついたのが午前1時すぎでした。

 

No.2 7/30を見てみますと、この日は引越しをした日でした。

Tue Jul 30 13:53:11 JST 2013    "今日は引っ越しで14時からという約束だったのですが、先程業者から連絡が来て<n>「すいません、前の引っ越しが延びてて、遅れます…<n><n>19時にはなんとか!」<n><n>前の引っ越し延びすぎじゃろ!"

そう、業者がめちゃくちゃ遅れた日でした。ここでもやることがなく、ひたすらツイート…。

Wed Jul 31 01:14:53 JST 2013    "ひこしオワターヨ"

この日も午前1時まで引越し作業をしていました。きつー

 

そしてNo.3(12/8)は自分の結婚式の次の日でした。みなさまにお礼の挨拶ツイートをたくさんしていました。

 

3.今年一番ツイートした言葉

今年一番ツイートした言葉はなんだったのでしょうか?

一番といいながらNo.3まで発表です!ばばん!

No.1 てる,544
No.2 人,240
No.3 今日,154

No.4 くる,150

「てる」…?もっとわかりやすい単語期待していたのですが…。

調べたところ、「走ってる」とか「食べてる」とか何か動作をしている「てる」のようでした。何かをしている最中にツイートすることが多かったのですかね。

あと「今日は〜する」みたいな、予定をつぶやくことが多かったみたいです。

ちなみにヒストグラムをとったのが以下です。

f:id:tomoima525:20131231201514p:plain

出現単語のほとんどが0-50回の頻度ででているようです。

今回luceneNORMALモードだったのですが、一文字で拾われる文字が多かったので、それを省く工夫も今後は必要ですね。

 

まとめ

大体以下のことがわかりました。

・つぶやきの25%くらいが独り言

・何かをしているときにそのことをよくつぶやく

twitter以外にすることがないときによくつぶやく

 

こんな感じで、一年を振り返ってみました。

来年はもっとおもしろツイートを増やしていきたいです。(なんか違う)

よいお年を!