こんにちは、ホーさんです。
今日は、ALISの投げ銭によるネットワークグラフをALISTUDIOでWEBアプリ化して公開しましたのでご報告します。
ここでいうネットワークとは、人のつながりです。人を点、人と人のつながりを線で表現し、「誰が誰と繋がっているか」「より多くの人と繋がっている人は誰か」など、コミュニティにおける個人の関係性を明らかにします。また、どの人がネットワークの中心にいるか(重要なポジジョンにいるか)を定量的に評価することができます。
ネットワーク分析については過去に記事にしたことがあるのでよろしければこちらをご覧ください。
上の記事執筆時点では、まだ投げ銭が実装されていませんでしたので、コメントを使って当時のALISISTAネットワークを明らかにしました。本記事では、投げ銭を用いて同様のネットワーク分析を行い、さらに誰でもネットワークをリアルタイムで確認できるように、WEBアプリとして開発・公開しました。
まず、ALISTUDIOにログインし、一番左のネットワーク分析をクリックします。
しばらく待つと、このような画面になります。
データ規模がそこそこ大きいので、PCからの閲覧を推奨します。拡大縮小(マウスホイール)したり、アイコンをドラッグしてぐりぐりしたりしてみてください。
ちなみに、新着1000記事の投げ銭を集計してネットワーク分析しております。ネットワーク図に載りたい方は是非ALISで記事を書いたり投げ銭したりしていただければと思います。
ノード(アイコン)の大きさは固有ベクトル中心性を表しています。固有ベクトル中心性というのは、ただつながっている数が多いだけでなく、自分がつながっている先の人物がどれだけ重要か、というのを考慮してノードを定量化する指標です。
本日記事執筆時点では、以下のようなランキングになりました(カッコ内がスコア)。
1位 Sakkyさん(0.2478)
2位 elm13さん(0.2431)
3位 MALISさん(0.2301)
4位 makiさん(0.2295)
5位 よしだ(0.2238)
6位 メロンパスさん(0.1935)
7位 ぺにょおさん(0.1922)
8位 ホーさん(0.1907)
9位 ころんさん(0.1791)
10位 ハチマンゼットさん(0.1682)
ランキングや数値については今後ALISTUDIOでも見れるように追加開発する予定です。
以前ネットワーク分析についての記事を上げたときに、定期的にこのようなグラフを見せて欲しいというご要望をいただきました。当時はPythonでプログラミングしていたので、画像の自動作成と記事の自動投稿機能を組み合わせて実現してもよかったのですが(手作業という頭は最初から無い)、ネットワーク分析をWEBアプリ化したい願望が湧いたため、フロントエンド(HTML+CSS+React)の勉強を始めました。
簡単なものを作ったり可視化ライブラリ(D3.js)の勉強や練習をしたりして、やっと(一年がかりでw)ネットワーク分析のWEBアプリ開発ができるようになりました。自分の中の目標が一つ達成できてとても嬉しく思います。
ネットワーク分析についてはPythonのnetworkxというライブラリで実施しています。定期実行ジョブで最新1000件の記事を自動分析し、データベース(Atlas mongodb)に保存しています。
工夫した点としては、ネットワークのノードにユーザーアイコンを表示するために、Pythonであらかじめ画像データを取得し、pillowというモジュールで円形トリム加工+圧縮軽量化してからデータベースに保存していることです。生データだとZeit Nowの転送量制限(6mb)に引っかかってしまうので、視認性を損なわない範囲でデータ圧縮することにしました。今回のデータですとだいたい1~2mbくらいになってます。なぜフロントエンドで画像取得しないかというと、こちらの記事でも書いた通り、CORS制限に引っかかってしまうためです。
ALISの新着1000記事の投げ銭からネットワーク分析し、結果を可視化してWEBアプリ化しました。
以下がサイトのリンクです。
よかったら覗いてみてください。
クレジット(画像素材)