このようにtwitterでの月ごとのつぶやきが可視化される仕組みを作った話
概要
twitterは徐々に私達の生活に欠かせないものになっている。twitterでは日々多くの話題がかわされている。その全体像を追うことは難しい。ともすれば自分のタイムライン上の話題をすべての人が知っていると思い込む。
今回は、twitter提供している sampling api を利用して、ツイッターでどのような話題が呟かれているかを分析した。その結果として、各月ごとに話された話題をワードクラウドにした。
こちらのtwitterアカウントツイッタートレンド分析でも定期的にまとめてつぶやくので興味があったらフォローしてほしい。
tweet取得概要
twitter社は開発者向けに呟かれるtweetをサンプリングしたapiを提供している。
こちらのapiを使えば、全tweetではないが、tweetのサンプルが取れる(未確定の情報だが、1-2%だと言われてる)。
このapiを利用することでサンプリングされたtweetを取得できる。日本語のtweetは、1日50万から70万件取得できた。2018年1月から取得しており現在5億6千万tweetを保持している。
そのtweetを自然言語処理しその月によく呟かれた単語をワードクラウド形式で可視化した。
以下にデータをまとめる。
- 取得日時 2018/01/09-2020/06/11(初版)
- 更新 2018/01/09-2022/01/02までのデータで更新した
- 取得ツイート 約10億
- 一日平均 約63万件
可視化手法
可視化は次のように行う。
データの取得と保存
データソースは、上に書いたように、twitterの提供している sampling api だ。flunetd と fluentd-twitter-plugin を利用してデータを取得し、独自開発したプログラムで、Google BigQuery へ保存する。
保存データを月ごとに形態素解析し、よく使われる単語を抜き出す。
保存したtweetをgoogle dataflow を利用して、形態素解析を行い、月ごとに個数をまとめる。
形態素解析は、javaのkuromojiと最新のワードに対応するため、neologd を利用する。
形態素解析したデータをワードクラウドで可視化する
欲しいのは、その月に目立ったワードなので、全部の月にまんべんなくよく使われるワードは除外し、scikit-learn を利用し TF-IDF を掛け、その月に特徴的に使っているワードの重みを変えたのに、pythonのword-cloud ライブラリにかけて、ワードクラウドを作る。文字の修飾は、pillow ライブラリを利用した。
集計結果
それでは、上記手法で可視化した各月のtwitterのワードを見ていこう。
2022年
2022年は、ウクライナ、安倍晋三死去、統一教会、国葬が話題になった。
2021年
コロナの文字が多すぎるので、コロナを除外して表示した。
ウマ娘、ワクチン、東京五輪、総裁選が話題だった。
2020年
2020年は、コロナの年だったと言われるだろう。1月はまだ平和な話題だったが、2月以降コロナの話題で持ちきりだ。コロナの話題も、前半は、感染に関することが主だが、後半は給付金など具体的な生活の保障への関心が移っている。
2019年
2019年は元号が変わった。タピオカが人気になり、京アニ放火事件という痛ましい事件が起こった。
2018年
2018年は、冬季オリンピックや、ラグビーのW杯が日本で行われた。クッパ姫などが瞬間的に盛り上がるが、twitterっぽいなと感じた。
私達はとても忘れっぽい
まとめてみて思うのは私達はとても忘れっぽいということだ。(人々が呟かなくなった話題をツイートする)みんなの忘れたbotなどがあるが、私達は簡単に過去を忘れ、年々その速度が早くなっている様に思う。
定期的に過去を振り返るツールがもっと普及すれば良いのになと思う。
個人でできるtweet分析
最近は、データの民主化によるtweetのサンプリングデータの公開や、BigQuery apache beam(dataflow) などの、安価なデータ分析基盤の普及により個人でもデータ分析ができるようになった。データを分析することで何が起こっているかを個人でも調査できるようになった。