Twitterネットワークの可視化
入門 機械学習の11章でTwitterのネットワーク可視化がトピックになっていて面白そうだったので、Pythonで作成してみました。*1
某Q大の図書館のアカウントを分析してみました。*2大きく2つに分かれていて、左側が図書館関係のアカウント、右側が大学関係のアカウントになっています。図書館関係のアカウントもそのなかで、LSS関係、大学図書館公式、あたりはクラスタになっていそうな感じです。大学関係のアカウントで多くフォローを集めているのは、個人よりも大学関連の情報発信系のアカウントのようです。個人ユーザーとおぼしきアカウントは、図書館系のクラスタよりも密度が低くなっていますね。このあたりに学部ごとのクラスタが出来てないかなぁと期待しているのですが、実際はどうなんでしょうね。
以下にデータとで作成したグラフをいくつか置いておくのでよかったらご覧ください。
- https://dl.dropboxusercontent.com/u/372395/qlibtwit0413_1.pdf
- https://dl.dropboxusercontent.com/u/372395/qlibtwit0413_2.pdf
- https://dl.dropboxusercontent.com/u/372395/qlibtwit0413_3.pdf
- https://dl.dropboxusercontent.com/u/372395/qlibtwit0413.pdf
- https://dl.dropboxusercontent.com/u/372395/qlibinfo_20130413.txt
使用ツール
- Python(データ収集)
- Overview — NetworkX(グラフ構造の構築や分析が出来るライブラリ)
- MongoDB(収集したデータの管理)
- Gephi, オープンソースのグラフ可視化・操作ソフトウェア
手順
- Qlib_infoのフォロー、フォロワーアカウントの取得
- 1.で取得した全アカウントのフォロー、フォロワーアカウントを取得
- 各アカウントのフォロー、フォロワーに1.で取得したQlib_infoと共通して含まれるアカウントがあれば、networkXを使ってしてネットワークとして結ぶ
- クラスタリング
- Gephiで可視化
参考資料
- http://www.slideshare.net/ashitanoken/gephi-tutorialvisualization-ja
- http://blog.kzfmix.com/entry/1206780815
- 集合知プログラミング
mongoDBとGephiを初めて触りましたが、どちらも直感的に使えて便利ですね。とくにmongoDB。これがあれば個人的にはRDB使わなくても十分ですね。今回はいつもにもましてとりあえず動けばいいやという感あふれるコードなので、公開しません…。