Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TokyoWebmining#05 RでTwitterのソーシャルグラフっぽいものを描いてみる
Search
bob3bob3
January 14, 2022
Programming
0
250
TokyoWebmining#05 RでTwitterのソーシャルグラフっぽいものを描いてみる
RでTwitterのソーシャルグラフっぽいものを描いてみる
2010年4月
bob3bob3
January 14, 2022
Tweet
Share
More Decks by bob3bob3
See All by bob3bob3
RとLLMで自然言語処理
bob3bob3
3
690
RでPSM分析
bob3bob3
1
310
Rでコンジョイント分析 2024年版
bob3bob3
0
1.6k
『改訂新版前処理大全』の話と Apache Parquet の話 #TokyoR
bob3bob3
0
1.2k
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
600
『データ可視化学入門』をPythonからRに翻訳した話(増強版)
bob3bob3
0
540
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
610
qeMLパッケージの紹介
bob3bob3
0
2.2k
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
600
Other Decks in Programming
See All in Programming
CSC305 Lecture 04
javiergs
PRO
0
270
Introducing ReActionView: A new ActionView-Compatible ERB Engine @ Kaigi on Rails 2025, Tokyo, Japan
marcoroth
3
1k
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
1.3k
CSC305 Lecture 08
javiergs
PRO
0
200
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
860
dynamic!
moro
10
8k
Railsだからできる 例外業務に禍根を残さない 設定設計パターン
ei_ei_eiichi
0
900
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
1
450
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
220
チームの境界をブチ抜いていけ
tokai235
0
180
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
2
480
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
160
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
5
430
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
How STYLIGHT went responsive
nonsquared
100
5.8k
How to Think Like a Performance Engineer
csswizardry
27
2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
KATA
mclloyd
32
15k
Embracing the Ebb and Flow
colly
88
4.8k
Transcript
2010/04/17 Tokyo.Webmining #5 Tokyo.Webmining #5 『 『 R R で
で Twitter Twitter のソーシャルグラフっぽい のソーシャルグラフっぽい ものを描いてみる』 ものを描いてみる』 Bob#3 Bob#3
自己紹介 自己紹介 • 【はてな】 【はてな】 id:bob3 id:bob3 • 【 【
Twitter Twitter 】 】 @bob3bob3 @bob3bob3 • バリバリの文系です。 バリバリの文系です。 • 仕事はマーケティング・リサーチャー。 仕事はマーケティング・リサーチャー。 • 本日のお話はまるっきり“お遊び”です。 本日のお話はまるっきり“お遊び”です。
動機 動機 • “ “ R”とはオープンソースの統計解析ツール。 R”とはオープンソースの統計解析ツール。 • Rの“ Rの“
twitteR” twitteR” パッケージが面白い! パッケージが面白い! • Twitter API Twitter API 経由で直接 経由で直接 R R に情報を取り込める。 に情報を取り込める。 • グラフ理論を扱う“ グラフ理論を扱う“ igraph” igraph” パッケージと組み合わ パッケージと組み合わ せれば せれば
先行事例 先行事例 「 「 iGraph iGraph で で Twitter Twitter
のネットワークを表してみ のネットワークを表してみ る」 る」 <http://d.hatena.ne.jp/syou6162/20071115/119507 <http://d.hatena.ne.jp/syou6162/20071115/119507 6286> 6286> ※ ※ データの抽出には データの抽出には Perl Perl を使っている。 を使っている。 「 「 twitter's social network analysis twitter's social network analysis ( ( Tsukuba.R#4 Tsukuba.R#4 )」 )」 <http://www.slideshare.net/guest91c5ac/twitters- <http://www.slideshare.net/guest91c5ac/twitters- social-network-analysis> social-network-analysis> ※ ※ 「お気に入り」登録に注目してクラスタリン 「お気に入り」登録に注目してクラスタリン グ。 グ。 ★ ★ twitteR twitteR を使えば、情報の収集から分析まで を使えば、情報の収集から分析まで R R で完結させられるんじゃないか? で完結させられるんじゃないか?
手順 手順 1. 1.「タネ」となるアカウントを選ぶ。 「タネ」となるアカウントを選ぶ。 2. 2.「タネ」がフォローしているアカウントの 「タネ」がフォローしているアカウントの id id
を取得。 を取得。 3. 3.フォローしているアカウントのリストからネットワーク フォローしているアカウントのリストからネットワーク 図(グラフ)を描く。 図(グラフ)を描く。 4. 4.フォロー関係の情報を使ってクラスタリング。 フォロー関係の情報を使ってクラスタリング。 5. 5.ネットワークの中で重要なノード(人物)に重み付け ネットワークの中で重要なノード(人物)に重み付け をする。 をする。
今回のタネ 今回のタネ • Twitter Twitter アカウントを持つ国会議員。 アカウントを持つ国会議員。 • ただし、 ただし、
TwitterAPI TwitterAPI の制限のため、フォロー先が の制限のため、フォロー先が 100 100 未 未 満の人に絞る。 満の人に絞る。 • TwitterAPI TwitterAPI の制限 の制限 – リクエストできるのは1時間に リクエストできるのは1時間に 150 150 回まで。 回まで。 – 取得できるフォロー先のリストは最新 取得できるフォロー先のリストは最新 100 100 アカウントまで。 アカウントまで。 • コードはブログに載せておきました。 コードはブログに載せておきました。 • http://d.hatena.ne.jp/bob3/20100619 http://d.hatena.ne.jp/bob3/20100619
使ったアカウントのリスト 使ったアカウントのリスト jimin_koho # jimin_koho # 自民党広報 自民党広報 komei_koho #
komei_koho # 公明党広報 公明党広報 your_party # your_party # みんなの党広報 みんなの党広報 Tanigaki_S # Tanigaki_S # 谷垣禎一 谷垣禎一 ( ( 自民 自民 ) ) tadamori_oshima # tadamori_oshima # 大島理森 大島理森 ( ( 自民 自民 ) ) TAIRAMASAAKI # TAIRAMASAAKI # 平将明 平将明 ( ( 自民 自民 ) ) AkiraNishino # AkiraNishino # 西野陽 西野陽 ( ( 自民 自民 ) ) junmatsumoto411 # junmatsumoto411 # 松本純 松本純 ( ( 自民 自民 ) ) akibakenya # akibakenya # 秋葉賢也 秋葉賢也 ( ( 自民 自民 ) ) ohmura_hideaki # ohmura_hideaki # 大村秀章 大村秀章 ( ( 自民 自民 ) ) akimoto_tsukasa # akimoto_tsukasa # 秋元司 秋元司 ( ( 自民 自民 ) ) SatoMasahisa # SatoMasahisa # 佐藤正久 佐藤正久 ( ( 自民 自民 ) ) kandorishinobu # kandorishinobu # 神取忍 神取忍 ( ( 自民 自民 ) ) maruyamakun # maruyamakun # 丸山和也 丸山和也 ( ( 自民 自民 ) ) shiba_masa # shiba_masa # 柴山昌彦 柴山昌彦 ( ( 自民 自民 ) ) abetoshiko # abetoshiko # 阿部俊子 阿部俊子 ( ( 自民 自民 ) ) kushibuchi # kushibuchi # 櫛渕万里 櫛渕万里 ( ( 民主 民主 ) ) yokokume # yokokume # 横粂勝仁 横粂勝仁 ( ( 民主 民主 ) ) miekondotcom # miekondotcom # 中林美恵子 中林美恵子 ( ( 民主 民主 ) ) oniken0024 # oniken0024 # 大西健介 大西健介 ( ( 民主 民主 ) ) yo_ishida # yo_ishida # 石田芳弘 石田芳弘 ( ( 民主 民主 ) ) yamanoikazunori # yamanoikazunori # 山井和則 山井和則 ( ( 民主 民主 ) ) takashinagao # takashinagao # 長尾敬 長尾敬 ( ( 民主 民主 ) ) Kumaatsu # Kumaatsu # 熊田篤嗣 熊田篤嗣 ( ( 民主 民主 ) ) otaninobumori # otaninobumori # 大谷信盛 大谷信盛 ( ( 民主 民主 ) ) okadayasuhiro # okadayasuhiro # 岡田康裕 岡田康裕 ( ( 民主 民主 ) ) takasho624 # takasho624 # 高橋昭一 高橋昭一 ( ( 民主 民主 ) ) toshiro141 # toshiro141 # 石井登志郎 石井登志郎 ( ( 民主 民主 ) ) Sakaguchi_Naoto # Sakaguchi_Naoto # 阪口直人 阪口直人 ( ( 民主 民主 ) ) yunoki_m # yunoki_m # 柚木道義 柚木道義 ( ( 民主 民主 ) ) tamakiyuichiro # tamakiyuichiro # 玉木雄一郎 玉木雄一郎 ( ( 民主 民主 ) ) nagaetakako # nagaetakako # 永江孝子 永江孝子 ( ( 民主 民主 ) ) fukken01 # fukken01 # 福嶋健一郎 福嶋健一郎 ( ( 民主 民主 ) ) grazie4812 # grazie4812 # 磯谷香代子 磯谷香代子 ( ( 民主 民主 ) ) imai_masato # imai_masato # 今井雅人 今井雅人 ( ( 民主 民主 ) ) fujitadaisuke # fujitadaisuke # 藤田大助 藤田大助 ( ( 民主 民主 ) ) GOGOdai5 # GOGOdai5 # 松浦大悟 松浦大悟 ( ( 民主 民主 ) ) Y_Kaneko # Y_Kaneko # 金子洋一 金子洋一 ( ( 民主 民主 ) ) fujimoto_yuuji # fujimoto_yuuji # 藤本祐司 藤本祐司 ( ( 民主 民主 ) ) kunivoice # kunivoice # 谷岡郁子 谷岡郁子 ( ( 民主 民主 ) ) k_maekawa # k_maekawa # 前川清成 前川清成 ( ( 民主 民主 ) ) inuzuka2010 # inuzuka2010 # 犬塚直史 犬塚直史 ( ( 民主 民主 ) ) izki_toyama # izki_toyama # 外山斎 外山斎 ( ( 民主 民主 ) ) odachi_moto # odachi_moto # 尾立源幸 尾立源幸 ( ( 民主 民主 ) ) hirayamamakoto # hirayamamakoto # 平山誠(新党日本) 平山誠(新党日本) HideoYoshiizumi # HideoYoshiizumi # 吉泉秀男(社民) 吉泉秀男(社民) hattori_ryoichi # hattori_ryoichi # 服部良一(社民) 服部良一(社民) edaoffice # edaoffice # 江田憲司(みんな) 江田憲司(みんな) kiyohiko_toyama # kiyohiko_toyama # 遠山清彦(公明) 遠山清彦(公明) Noriko_Furuya # Noriko_Furuya # 古屋 範子(公明) 古屋 範子(公明) 以上 以上 50 50 アカウント アカウント
そのまま描画 そのまま描画
次数2以下のノードを削除 次数2以下のノードを削除
PageRank PageRank でノードに重みを付ける でノードに重みを付ける
Modularity Q Modularity Q でクラスタリング でクラスタリング • 「クラスタに含まれているエッジの割合が、ク 「クラスタに含まれているエッジの割合が、ク ラスタから出ているエッジの割合よりもどれだ
ラスタから出ているエッジの割合よりもどれだ け大きいか」ということと「グラフが適度に分 け大きいか」ということと「グラフが適度に分 割されているか」ということのトレードオフの 割されているか」ということのトレードオフの 値が 値が Modularity Q Modularity Q 。 。 • Q Q が最大になる分割が適切と推測されるクラス が最大になる分割が適切と推測されるクラス タリング。 タリング。 • 詳しくは以下の資料などを参照してください。 詳しくは以下の資料などを参照してください。 • http://ymatsuo.com/surveySNA/shibata.pdf http://ymatsuo.com/surveySNA/shibata.pdf
クラスタごとに色を付ける クラスタごとに色を付ける
今後やってみたいこと 今後やってみたいこと • Reply Reply や や Re-Tweet Re-Tweet でエッジの重み付け。
でエッジの重み付け。 • Tweet Tweet の内容も考慮したクラスタリング の内容も考慮したクラスタリング