Tokyo.Webmining #5
   『 R で Twitter のソーシャルグラフっぽい
             ものを描いてみる』
                   Bob#3



2010/04/17
自己紹介

●   【はてな】  id:bob3
●   【 Twitter 】 @bob3bob3

●
    バリバリの文系です。
●   仕事はマーケティング・リサーチャー。

●
    本日のお話はまるっきり“お遊び”です。
動機
●   “ R”とはオープンソースの統計解析ツール。
●   Rの“ twitteR” パッケージが面白い!
    ●
        Twitter API 経由で直接 R に情報を取り込める。
●   グラフ理論を扱う“ igraph” パッケージと組み合わ
    せれば
先行事例
「 iGraph で Twitter のネットワークを表してみ                   「 twitter's social network analysis
る」                                                ( Tsukuba.R#4 )」
<http://d.hatena.ne.jp/syou6162/20071115/119507   <http://www.slideshare.net/guest91c5ac/twitters-
6286>                                             social-network-analysis>
※ データの抽出には Perl を使っている。                           ※ 「お気に入り」登録に注目してクラスタリン
                                                  グ。




★ twitteR を使えば、情報の収集から分析まで R で完結させられるんじゃないか?
手順
1.「タネ」となるアカウントを選ぶ。
2.「タネ」がフォローしているアカウントの id を取得。
3.フォローしているアカウントのリストからネットワーク
図(グラフ)を描く。
4.フォロー関係の情報を使ってクラスタリング。
5.ネットワークの中で重要なノード(人物)に重み付け
をする。
今回のタネ
●   Twitter アカウントを持つ国会議員。
    ●
        ただし、 TwitterAPI の制限のため、フォロー先が 100 未
        満の人に絞る。
    ●
        TwitterAPI の制限
        –   リクエストできるのは1時間に 150 回まで。
        –   取得できるフォロー先のリストは最新 100 アカウントまで。
●
    コードはブログに載せておきました。
    ●   http://d.hatena.ne.jp/bob3/20100619
使ったアカウントのリスト
jimin_koho # 自民党広報              miekondotcom # 中林美恵子 ( 民主 )     GOGOdai5 # 松浦大悟 ( 民主 )

komei_koho # 公明党広報              oniken0024 # 大西健介 ( 民主 )        Y_Kaneko # 金子洋一 ( 民主 )

your_party # みんなの党広報            yo_ishida # 石田芳弘 ( 民主 )         fujimoto_yuuji # 藤本祐司 ( 民主 )

Tanigaki_S # 谷垣禎一 ( 自民 )        yamanoikazunori # 山井和則 ( 民主 )   kunivoice # 谷岡郁子 ( 民主 )

tadamori_oshima # 大島理森 ( 自民 )   takashinagao # 長尾敬 ( 民主 )       k_maekawa # 前川清成 ( 民主 )

TAIRAMASAAKI # 平将明 ( 自民 )       Kumaatsu # 熊田篤嗣 ( 民主 )
                                                                inuzuka2010 # 犬塚直史 ( 民主 )

AkiraNishino # 西野陽 ( 自民 )       otaninobumori # 大谷信盛 ( 民主 )
                                                                izki_toyama # 外山斎 ( 民主 )
junmatsumoto411 # 松本純 ( 自民 )    okadayasuhiro # 岡田康裕 ( 民主 )
                                                                odachi_moto # 尾立源幸 ( 民主 )
akibakenya # 秋葉賢也 ( 自民 )        takasho624 # 高橋昭一 ( 民主 )
                                                                hirayamamakoto # 平山誠(新党日本)
ohmura_hideaki # 大村秀章 ( 自民 )    toshiro141 # 石井登志郎 ( 民主 )
                                                                HideoYoshiizumi # 吉泉秀男(社民)
akimoto_tsukasa # 秋元司 ( 自民 )    Sakaguchi_Naoto # 阪口直人 ( 民主 )
                                                                hattori_ryoichi # 服部良一(社民)
SatoMasahisa # 佐藤正久 ( 自民 )      yunoki_m # 柚木道義 ( 民主 )
                                                                edaoffice # 江田憲司(みんな)
kandorishinobu # 神取忍 ( 自民 )     tamakiyuichiro # 玉木雄一郎 ( 民主 )
                                                                kiyohiko_toyama # 遠山清彦(公明)
maruyamakun # 丸山和也 ( 自民 )       nagaetakako # 永江孝子 ( 民主 )
                                                                Noriko_Furuya # 古屋 範子(公明)
shiba_masa # 柴山昌彦 ( 自民 )        fukken01 # 福嶋健一郎 ( 民主 )

abetoshiko # 阿部俊子 ( 自民 )        grazie4812 # 磯谷香代子 ( 民主 )
                                                                以上 50 アカウント
kushibuchi # 櫛渕万里 ( 民主 )        imai_masato # 今井雅人 ( 民主 )

yokokume # 横粂勝仁 ( 民主 )          fujitadaisuke # 藤田大助 ( 民主 )
そのまま描画
次数2以下のノードを削除
PageRank でノードに重みを付ける
Modularity Q でクラスタリング
●   「クラスタに含まれているエッジの割合が、ク
    ラスタから出ているエッジの割合よりもどれだ
    け大きいか」ということと「グラフが適度に分
    割されているか」ということのトレードオフの
    値が Modularity Q 。
●   Q が最大になる分割が適切と推測されるクラス
    タリング。

●   詳しくは以下の資料などを参照してください。
    ●   http://ymatsuo.com/surveySNA/shibata.pdf
クラスタごとに色を付ける
今後やってみたいこと
●   Reply や Re-Tweet でエッジの重み付け。
●   Tweet の内容も考慮したクラスタリング

Tokyo webmining5

  • 1.
    Tokyo.Webmining #5 『 R で Twitter のソーシャルグラフっぽい ものを描いてみる』 Bob#3 2010/04/17
  • 2.
    自己紹介 ● 【はてな】  id:bob3 ● 【 Twitter 】 @bob3bob3 ● バリバリの文系です。 ● 仕事はマーケティング・リサーチャー。 ● 本日のお話はまるっきり“お遊び”です。
  • 3.
    動機 ● “ R”とはオープンソースの統計解析ツール。 ● Rの“ twitteR” パッケージが面白い! ● Twitter API 経由で直接 R に情報を取り込める。 ● グラフ理論を扱う“ igraph” パッケージと組み合わ せれば
  • 4.
    先行事例 「 iGraph でTwitter のネットワークを表してみ 「 twitter's social network analysis る」 ( Tsukuba.R#4 )」 <http://d.hatena.ne.jp/syou6162/20071115/119507 <http://www.slideshare.net/guest91c5ac/twitters- 6286> social-network-analysis> ※ データの抽出には Perl を使っている。 ※ 「お気に入り」登録に注目してクラスタリン グ。 ★ twitteR を使えば、情報の収集から分析まで R で完結させられるんじゃないか?
  • 5.
  • 6.
    今回のタネ ● Twitter アカウントを持つ国会議員。 ● ただし、 TwitterAPI の制限のため、フォロー先が 100 未 満の人に絞る。 ● TwitterAPI の制限 – リクエストできるのは1時間に 150 回まで。 – 取得できるフォロー先のリストは最新 100 アカウントまで。 ● コードはブログに載せておきました。 ● http://d.hatena.ne.jp/bob3/20100619
  • 7.
    使ったアカウントのリスト jimin_koho # 自民党広報 miekondotcom # 中林美恵子 ( 民主 ) GOGOdai5 # 松浦大悟 ( 民主 ) komei_koho # 公明党広報 oniken0024 # 大西健介 ( 民主 ) Y_Kaneko # 金子洋一 ( 民主 ) your_party # みんなの党広報 yo_ishida # 石田芳弘 ( 民主 ) fujimoto_yuuji # 藤本祐司 ( 民主 ) Tanigaki_S # 谷垣禎一 ( 自民 ) yamanoikazunori # 山井和則 ( 民主 ) kunivoice # 谷岡郁子 ( 民主 ) tadamori_oshima # 大島理森 ( 自民 ) takashinagao # 長尾敬 ( 民主 ) k_maekawa # 前川清成 ( 民主 ) TAIRAMASAAKI # 平将明 ( 自民 ) Kumaatsu # 熊田篤嗣 ( 民主 ) inuzuka2010 # 犬塚直史 ( 民主 ) AkiraNishino # 西野陽 ( 自民 ) otaninobumori # 大谷信盛 ( 民主 ) izki_toyama # 外山斎 ( 民主 ) junmatsumoto411 # 松本純 ( 自民 ) okadayasuhiro # 岡田康裕 ( 民主 ) odachi_moto # 尾立源幸 ( 民主 ) akibakenya # 秋葉賢也 ( 自民 ) takasho624 # 高橋昭一 ( 民主 ) hirayamamakoto # 平山誠(新党日本) ohmura_hideaki # 大村秀章 ( 自民 ) toshiro141 # 石井登志郎 ( 民主 ) HideoYoshiizumi # 吉泉秀男(社民) akimoto_tsukasa # 秋元司 ( 自民 ) Sakaguchi_Naoto # 阪口直人 ( 民主 ) hattori_ryoichi # 服部良一(社民) SatoMasahisa # 佐藤正久 ( 自民 ) yunoki_m # 柚木道義 ( 民主 ) edaoffice # 江田憲司(みんな) kandorishinobu # 神取忍 ( 自民 ) tamakiyuichiro # 玉木雄一郎 ( 民主 ) kiyohiko_toyama # 遠山清彦(公明) maruyamakun # 丸山和也 ( 自民 ) nagaetakako # 永江孝子 ( 民主 ) Noriko_Furuya # 古屋 範子(公明) shiba_masa # 柴山昌彦 ( 自民 ) fukken01 # 福嶋健一郎 ( 民主 ) abetoshiko # 阿部俊子 ( 自民 ) grazie4812 # 磯谷香代子 ( 民主 ) 以上 50 アカウント kushibuchi # 櫛渕万里 ( 民主 ) imai_masato # 今井雅人 ( 民主 ) yokokume # 横粂勝仁 ( 民主 ) fujitadaisuke # 藤田大助 ( 民主 )
  • 8.
  • 9.
  • 10.
  • 11.
    Modularity Q でクラスタリング ● 「クラスタに含まれているエッジの割合が、ク ラスタから出ているエッジの割合よりもどれだ け大きいか」ということと「グラフが適度に分 割されているか」ということのトレードオフの 値が Modularity Q 。 ● Q が最大になる分割が適切と推測されるクラス タリング。 ● 詳しくは以下の資料などを参照してください。 ● http://ymatsuo.com/surveySNA/shibata.pdf
  • 12.
  • 13.
    今後やってみたいこと ● Reply や Re-Tweet でエッジの重み付け。 ● Tweet の内容も考慮したクラスタリング