サイトアイコン てくてくぷれいす

hololive所属ユーザのフォロー類似度をjaccard係数で可視化する話

こんにちは,しまさん(@shimasan0x00)です.

最近TwitterAPIを使う練習兼ネットワークの勉強をしているのでそのメモ.

小規模なネットワークかつ自分がやりやすい題材でと考えて今回はVTuber事務所であるhololiveに所属している人間?のフォローしているユーザーの類似度をjaccard係数で求め,可視化していきます.

所属タレント – ホロライブプロダクション公式サイト – VTuber事務所 – ホロライブプロダクション公式サイト – VTuber事務所

network選定の理由

上記でも述べたのですが,勉強なのでいきなり大規模なネットワークは苦しいというのと最近事務所に所属しているYouTuberやVTuberの個人的な裁量の範囲(企業に影響されない部分)がデータとして可視化できると面白いなと思ってここらへんのデータを用いることにしています.

スポンサーリンク

データ収集と分析

今回はTwitterAPI(friends/ids.json)を用いてデータを収集しました.

Twitterで人力を用いてhololive所属の人?のスクリーンネーム(@—)を集めました.まだ20ないくらいだったのでいいのですが,やはりこういう人力作業は苦手です… .

API周りのことについては最近書いた記事を見ていただけると幸いです.

「新人VTuber」のTwitterアカウントデータから見る「新人」についての一考察新人VTuberのアカウント作成日からの経過日数を見ることでVTuberにおける「新人」がどのような分布になっているか確認する.今回は新人VTuber1021人のデータを用いて分析をしている....
YouTubeの関連動画の関連動画の...(n回試行)をTwitterデータで間接的に求めてみたYoutubeの関連動画の関連動画の...(n回試行)をTwitterデータで間接的に求めてみた.PythonとTwitter APIを用いることで実装しました....

ids.jsonでは1minで1回が限界ですが一度にフォローしているユーザーのidを5000件取得できるのでかなり嬉しいです(アクセスがシーケンシャルなら1min×ユーザー数…やばいっす).

フォロワーのidを求めてクラスタリングして…みたいなのも面白そうですがフォロワーが万スケールなので収集するのが面倒ですので今回はパスさせていただきました.

Jaccard係数の求め方なんかは以下の記事を参考にして実装しました.

執筆:金子冴 前回の記事(【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは)では,文字列同士の類似度(距離)が計算できる手法を紹介した.また,その記事の中で,自然言語処理分野では主に文書,文字列,集合等について類似度を計算する場面が多いことについても触れた.今回は集合同士の類似度を表現する以下の3つの係数と計算方法について解説する. ●Jaccard係数 ●Dice係数 ●Simpson係数 その前に,自然言語処理で類似度を表す指標について確認しよう. 自然言語処理で使用さ…
【技術解説】集合の類似度(Jaccard係数,Dice係数,Simpson係数) – ミエルカAI は… – ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
今回は文章から共起ネットワークを作ってみたいと思います。一つの文内で出てくる単語の組合せをネットワーク化することで、文章の趣旨を明らかにしていきます。ドラマの人物相関図みたいに単語と単語のつながりをネットワーク化したものを作ります。 前回、自然言語の前処理の勉強をした際に、福沢諭吉の「学問のすすめ」において、出現頻度が高い名詞のランキングを導出しました。TOP1〜3は「政治」、「人民」、「独立」という単語であり、この3つに関してよく取り上げられているのだろうと推測されました。これに関しては以下の…
Pythonを使って文章から共起ネットワークを作る – 見習いデータサイエンティストの… – 見習いデータサイエンティストの隠れ家

統計値は以下のようになりました.

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とかやりたいですね.

いまお流行りの動画タイトル自動生成とかいいな… .

モバイルバージョンを終了