先日、友人の結婚パーティでLTをすることになり、
『リア充化(奥さんと付き合い始めた)前後で、その友人のTwitterのツイートにどのような変化があったか』
について語って来ました。
メインはこの2つのグラフでした。
※ちょっと茶化し過ぎたかと反省したので名前はふせます(´・ω・`)
今回はこのグラフ(主に下側)をどうやって作ったかについて、簡単に説明します。
リア充度について
元ネタは@namikawaさんのブログエントリ、
『俺流、リア充・ネト充の見分け方』
です。
詳細は上記ブログを見てもらうとして、ポイントはここで提唱されている、
『リア充ほど休日のtweet率が低くなる』(リア充は休日はリア充活動が忙しくてTwitterなんてやってられん)
という理論です。
これもとに、『リア充度=平日ツイートの割合』と定義すると
これをベースに、月ごとにリア充度を算出したのが最初に出したグラフです。
データの取得
TwitterのAPIは現状の仕様では3200件までしか過去ツイートをさかのぼれません。
なのでデータはtwilogのCSVダウンロード機能で取得することにしました。
※本人しかダウンロードできないです!
データの解析
CSV形式なので簡単に解析ができます。
試しにツイート数やリプライ件数ランキングなど。
$ wc -l mikeda121216.csv 15055 mikeda121216.csv $ perl -nle 'print for /@\w+/g' mikeda121216.csv | sort | uniq -c | sort -rn | head 740 @xcir 329 @kuwa_tw 285 @n0ts 223 @oranie 203 @ar1 178 @ishikawa84g 124 @mikeda 124 @iara 115 @tnmt 108 @sechiro
$ ruby rj.rb mikeda121216.csv 2007/12 1 1 100.0 2009/12 12 7 58.333333333333336 2010/1 11 7 63.63636363636363 2010/2 22 16 72.72727272727273 2010/3 94 39 41.48936170212766 2010/4 79 44 55.69620253164557 2010/5 339 223 65.78171091445428 2010/6 415 263 63.373493975903614 2010/7 361 211 58.448753462603875 2010/8 556 342 61.510791366906474 2010/9 492 353 71.7479674796748 2010/10 435 153 35.172413793103445 2010/11 577 309 53.552859618717505 2010/12 469 281 59.914712153518124 2011/1 329 155 47.11246200607903 2011/2 283 147 51.9434628975265 2011/3 342 190 55.55555555555556 2011/4 477 204 42.76729559748428 2011/5 644 407 63.19875776397515 2011/6 381 203 53.28083989501312 2011/7 610 301 49.34426229508197 2011/8 769 480 62.418725617685304 2011/9 479 302 63.04801670146138 2011/10 395 233 58.9873417721519 2011/11 685 447 65.25547445255475 2011/12 592 357 60.304054054054056 2012/1 556 365 65.64748201438849 2012/2 528 335 63.446969696969695 2012/3 623 346 55.53772070626003 2012/4 444 213 47.972972972972975 2012/5 689 407 59.0711175616836 2012/6 406 234 57.635467980295566 2012/7 372 190 51.075268817204304 2012/8 340 250 73.52941176470588 2012/9 312 161 51.6025641025641 2012/10 373 229 61.394101876675606 2012/11 367 187 50.95367847411444 2012/12 152 79 51.973684210526315
左から
- 月
- 総ツイート数
- 平日ツイート数
- リア充度(平日ツイート数/総ツイート数)
#!/usr/bin/ruby require 'csv' require 'pp' counts = {} CSV.parse(ARGF) do |rows| /^(..)(..)(..)/ =~ rows[1] year, month, day = "20#{$1}".to_i, $2.to_i, $3.to_i wday = Date.new(year, month, day).wday counts[year] ||= {} counts[year][month] ||= {:all => 0, :weekday => 0} counts[year][month][:all] += 1 counts[year][month][:weekday] += 1 unless wday == 0 || wday == 6 end counts.sort.each do |year, monthly_counts| monthly_counts.sort.each do |month, count| weekday_rate = 100 * count[:weekday].to_f / count[:all] puts ["#{year}/#{month}", count[:all], count[:weekday], weekday_rate].join("\t") end end
祭日、月ごとの平日/休日比率の違いを考慮していないのがちょっとダメですね。
ほんとは
・感情解析
・顔文字、「おっぱい」など特定フレーズの使用頻度
なども分析したかったのですが、それは次のだれかの結婚式にまわします(・∀・)ニヤニヤ