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

あれもPython,これもPython

Pythonで世界を包みたい

【バレンタインtweet分析】日本の性欲はもっと頑張るべき

昨日はバレンタインでしたね!

昨日2/14は、性聖なる日バレンタインでしたね。

渋谷で、デモが開かれたり、
テレビでは恋愛(とチョコ消費)を促し、愛(とお金の匂い)のあふれる日でした!

おまけに今年は日曜日。
いつもは仕事でそんなに騒げないパーティピーポーも大騒ぎできたはず?

ということは、こんな日にはSNSにだってリア充が溢れているはず・・・
と思い、Pythonを駆使して調べてみました!

データ収集

TwitterのストリーミングAPIを使って、
バレンタイン、または、チョコと書かれたツイートをリアルタイムで収集し続けます。
2/14の0時過ぎかから、24時になるまでデータを集めました。

というわけで、一日のツイート数はこんな感じ。

f:id:esu-ko:20160215120538p:plainf:id:esu-ko:20160215120538p:plain

  • 0時のツイート数が少ないのは、設定に手間取ったため
  • 深夜と夕方にツイート数が減少する

午前中にツイート数が上がってるのがおもしろいですね。

もうちょっと全体感を見てみる

位置情報がついていることものを調べましょう。
上位5都道府県を見てみます。

順位 都道府県 ツイート数
1 東京 18
2 京都 5
3 大阪 4
4 愛知 4
5 静岡 3

うーん、なんとも。
サンプル数がそもそも少なすぎますね。
まあ、人口を考えると、こんな感じ、、、か?

ツイートの中身を見てみる

ここからが、本番です。

データマイニングをすることで、
きゃっきゃっうふふうふうしている
リア充たちの生活が見られるはずです。
非リアのみなさん、殴る壁の用意は良いですか?

データからつぶやき部分だけを取り出し、
形態素解析という処理をかけて、名詞だけ取り出します。

その名詞の出現頻度から、クラスタリングをかけて
全つぶやきを10個のグループに分類してみます。
(注:10個にしたのは特に考えなしです)

クラスター内のつぶやき数(つぶやき数ごとに並び替えてます)

クラスタ つぶやき数
0 21
9 79
2 388
1 419
7 558
6 734
4 1751
3 2200
8 2353
5 5084

前処理もきちんとしていないので、 微妙そうなクラスタもありそうですが・・・

ひとまず見ていきましょう

クラスター0

絵のリツイートに関するクラスターのようです。
私はイラストが描けないので、

絵が描けるひとが羨ましいです。

クラスター9

back numberというバンドのbotらしいです。
恋愛ソングかな。

クラスター2

これは映画の告知キャンペーンでしょうか。 恋愛映画っぽくこれまたバレンタインっぽいですね。

--ここまであんまり求めてたものとは違いますね。。。--

クラスター1

パナソニックさんのこのつぶやきに関するリツイートです。
ほっこりしますね。
そうそう、こういうのがみたかったんだよ!
いやあ〜やっぱりバレンタインって良いですね!

クラスター7

悲しくなるだろ!

クラスター6

@misuyaさんという方のつぶやきのRTクラスタです。
ユーザーさんが鍵をかけていて見えませんが、
どうやらポケモンを模したお菓子を作成したようです。 すごいですね。

クラスター4,5,8

数が多いところに来ました。
この3つは雑談系クラスタ!
よかった、やっぱりみんなちゃんとバレンタインしてますね!

4は今日チョコもらったとか、もらえなかったとか、好きな人いないから用意していないとかがメインでした。
5は二次元系の話題が多い感じです。(おそ松さん人気ですねえ)
8は実際にお菓子をたべたとか行動系がメインな感じでした。
いやあ、数が圧倒的なのが二次元系ってのは引っかかりますが、
それでもお菓子食べた系が2位、バレンタインっぽい日常ツイートが4位なのは良かった良かった。
ん、あれ、3位?

3位は?


クラスター3(3位)

おいこら



結論:
お前らもっとちゃんとバレンタインしろ

良かった。それでも、ゴリラに関するツイート数が3位でほんとに良かった。。。

おまけ

使用言語:Python

使用言語:Python(大事なことなので二回言いました)

モジュール

ツイート収集

  • requestモジュール
  • Aouth_lib
  • sqlite3

データ処理

  • tinydb
  • collectios.Counter

データ分析

  • numpy
  • matplotlib
  • pandas
  • Janome
  • scilit-learn
  • ipython notebook