こんにちは,しまさん(@shimasan0x00)です.
最近TwitterAPIを使う練習兼ネットワークの勉強をしているのでそのメモ.
小規模なネットワークかつ自分がやりやすい題材でと考えて今回はVTuber事務所であるhololiveに所属している人間?のフォローしているユーザーの類似度をjaccard係数で求め,可視化していきます.
network選定の理由
上記でも述べたのですが,勉強なのでいきなり大規模なネットワークは苦しいというのと最近事務所に所属しているYouTuberやVTuberの個人的な裁量の範囲(企業に影響されない部分)がデータとして可視化できると面白いなと思ってここらへんのデータを用いることにしています.
スポンサーリンク
データ収集と分析
今回はTwitterAPI(friends/ids.json)を用いてデータを収集しました.
Twitterで人力を用いてhololive所属の人?のスクリーンネーム(@—)を集めました.まだ20ないくらいだったのでいいのですが,やはりこういう人力作業は苦手です… .
API周りのことについては最近書いた記事を見ていただけると幸いです.


ids.jsonでは1minで1回が限界ですが一度にフォローしているユーザーのidを5000件取得できるのでかなり嬉しいです(アクセスがシーケンシャルなら1min×ユーザー数…やばいっす).
フォロワーのidを求めてクラスタリングして…みたいなのも面白そうですがフォロワーが万スケールなので収集するのが面倒ですので今回はパスさせていただきました.
Jaccard係数の求め方なんかは以下の記事を参考にして実装しました.
統計値は以下のようになりました.
userA userB Acount Bcount jaccard_count
count 325 325 325.0 325.0 325.000000
unique 24 24 23.0 23.0 NaN
top uruharushia suisei_hosimati 638.0 333.0 NaN
freq 28 25 33.0 25.0 NaN
mean NaN NaN NaN NaN 0.177536
std NaN NaN NaN NaN 0.105406
min NaN NaN NaN NaN 0.003993
25% NaN NaN NaN NaN 0.107843
50% NaN NaN NaN NaN 0.168696
75% NaN NaN NaN NaN 0.237540
max NaN NaN NaN NaN 1.000000
今回は軽く可視化しつつjaccard係数0.24以下を足切りしました.
スポンサーリンク
結果
ということでJaccard係数でフォローしているユーザーの類似度を可視化したものが以下になります(Cytoscapeを使用).

線が太いほど,また色が濃いほど類似度が高い結果となっています.
また,ノードはユーザーのスクリーンネームの@以下になっています.
hololiveにはX期生であったりゲーマーズであったりイノナカミュージックなどhololive内で複数に分けることができるみたいです.
例えばmurasakishionさんはこの中でフォローしているユーザーが結構類似している人?が多いことがわかります.同じ2期生の人と類似度が大きいですね.
また,イノナカミュージックの二人は個人間でエッジが張られていませんがyozoramelさんとはエッジ張ってますね.
この中で嗜好が似ているユーザーや,よくコラボしているユーザー間がどうなのかなど事前知識が足らないことに今書いてて気づいたので後でVTuberに詳しい友人に確認してみます.
さいごに
今回は勉強がてら特定コミュニティに所属しているユーザーのフォローユーザーの類似度をJaccard係数を用いて可視化してみました.
次はYouTubeのAPI使う×NLPとかやりたいですね.
いまお流行りの動画タイトル自動生成とかいいな… .