Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TokyoWebmining#05 RでTwitterのソーシャルグラフっぽいものを描いてみる

Ea0b0e1760fae9c7599f86c3555e071d?s=47 bob3bob3
January 14, 2022

TokyoWebmining#05 RでTwitterのソーシャルグラフっぽいものを描いてみる

RでTwitterのソーシャルグラフっぽいものを描いてみる
2010年4月

Ea0b0e1760fae9c7599f86c3555e071d?s=128

bob3bob3

January 14, 2022
Tweet

More Decks by bob3bob3

Other Decks in Programming

Transcript

  1. 2010/04/17 Tokyo.Webmining #5 Tokyo.Webmining #5 『 『 R R で

    で Twitter Twitter のソーシャルグラフっぽい のソーシャルグラフっぽい ものを描いてみる』 ものを描いてみる』 Bob#3 Bob#3
  2. 自己紹介 自己紹介 • 【はてな】  【はてな】  id:bob3 id:bob3 • 【 【

    Twitter Twitter 】 】 @bob3bob3 @bob3bob3 • バリバリの文系です。 バリバリの文系です。 • 仕事はマーケティング・リサーチャー。 仕事はマーケティング・リサーチャー。 • 本日のお話はまるっきり“お遊び”です。 本日のお話はまるっきり“お遊び”です。
  3. 動機 動機 • “ “ R”とはオープンソースの統計解析ツール。 R”とはオープンソースの統計解析ツール。 • Rの“ Rの“

    twitteR” twitteR” パッケージが面白い! パッケージが面白い! • Twitter API Twitter API 経由で直接 経由で直接 R R に情報を取り込める。 に情報を取り込める。 • グラフ理論を扱う“ グラフ理論を扱う“ igraph” igraph” パッケージと組み合わ パッケージと組み合わ せれば せれば
  4. 先行事例 先行事例 「 「 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 で完結させられるんじゃないか? で完結させられるんじゃないか?
  5. 手順 手順 1. 1.「タネ」となるアカウントを選ぶ。 「タネ」となるアカウントを選ぶ。 2. 2.「タネ」がフォローしているアカウントの 「タネ」がフォローしているアカウントの id id

    を取得。 を取得。 3. 3.フォローしているアカウントのリストからネットワーク フォローしているアカウントのリストからネットワーク 図(グラフ)を描く。 図(グラフ)を描く。 4. 4.フォロー関係の情報を使ってクラスタリング。 フォロー関係の情報を使ってクラスタリング。 5. 5.ネットワークの中で重要なノード(人物)に重み付け ネットワークの中で重要なノード(人物)に重み付け をする。 をする。
  6. 今回のタネ 今回のタネ • 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
  7. 使ったアカウントのリスト 使ったアカウントのリスト 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 アカウント アカウント
  8. そのまま描画 そのまま描画

  9. 次数2以下のノードを削除 次数2以下のノードを削除

  10. PageRank PageRank でノードに重みを付ける でノードに重みを付ける

  11. Modularity Q Modularity Q でクラスタリング でクラスタリング • 「クラスタに含まれているエッジの割合が、ク 「クラスタに含まれているエッジの割合が、ク ラスタから出ているエッジの割合よりもどれだ

    ラスタから出ているエッジの割合よりもどれだ け大きいか」ということと「グラフが適度に分 け大きいか」ということと「グラフが適度に分 割されているか」ということのトレードオフの 割されているか」ということのトレードオフの 値が 値が Modularity Q Modularity Q 。 。 • Q Q が最大になる分割が適切と推測されるクラス が最大になる分割が適切と推測されるクラス タリング。 タリング。 • 詳しくは以下の資料などを参照してください。 詳しくは以下の資料などを参照してください。 • http://ymatsuo.com/surveySNA/shibata.pdf http://ymatsuo.com/surveySNA/shibata.pdf
  12. クラスタごとに色を付ける クラスタごとに色を付ける

  13. 今後やってみたいこと 今後やってみたいこと • Reply Reply や や Re-Tweet Re-Tweet でエッジの重み付け。

    でエッジの重み付け。 • Tweet Tweet の内容も考慮したクラスタリング の内容も考慮したクラスタリング