2013/03/15

Twitter APIでRTしたフォロワーを分析してインフルエンサーを探す

topsyというサイトでやっているインフルエンサーの判定(リツイートの影響力のある人)。TopsyのAPIが無料であればよかったのですが、お金がかかりそうなので、あれを自前でできないかいろいろやってみた結果をまとめてみます。


はじめに

まずはじめに考えたのが、「自分がつぶやいた内容をリツイートした人に中から、再リツイートされた回数が高いフォロワー」をインフルエンサーとして判定する方法。ただ、TwitterのAPIでは、「誰のリツイートを再リツイートしたか」という情報は取得できず、再々リツイートであっても自分のつぶやきに対するリツイートとして扱われる。なので簡単にはできそうにない。


リツイートのリツイートされ数(被リツイート率)が高いユーザーが影響力のある人と考えられる。上図ではABCの中ではBの人が影響力が強い。

リツイートツリーの復元

どうしようもないので、いろいろ探していたら、電気通信大学さんの卒業論文「Twitterにおけるリツイート経路の可視化とユーザ発見支援」の中に、いい感じの方法が書いてあった。この論文では、「誰のリツイートをリツイートしたかわからない」という課題を、リツイート時間を使ってツリーを復元する方法がとられている。

  1. 特定のつぶやきに対するリツイートの一覧を取得する(API)
  2. 1の一覧をリツイートした時間が新しい順に並べる(created_at の降順)
  3. 先頭の1件は、絶対に自分のつぶやきをリツイートしたものであるはずなので、これをmeノードの子にする
  4. 以降2件目は、現在ツリーにリンクしているノード(ユーザー)の中からその人をフォローしている人を探し出し(複数ある場合は、2つのリツイートの時間差が少ないもの)、そのノードの子としてリンクする。

4に関しては、100%当たるとは限らないが、リツイートツリーの作成の目的が統計的な分析に使うこを考えるのであれば、多少の誤差は問題ないと思う。

ただ、残念なことにこれを1回のプログラムで実現しようとすると、例えば100RTとかになってくると、4の部分でAPIコールが上限になってしまい、あまり実用的な方法ではないことがわかった。


もっと簡単な方法

リツイートツリーを作ることが、現実的ではないので、何かもっと統計的でシンプルな方法がないかと考え、Topsyでインフルエンサーの傾向を眺めていたら、「フォロワー数とフォロー数が逆転している人は、何かしらの理由で人から注目されている人」ではないかというシンプルなアイディアを思いついた。





また、インフルエンサーと呼ばれる人達の傾向を見ていると、累計のつぶやき数が圧倒的に多く(10,000超えは普通)、1日中Twitterをやっている中毒者であるということもわかった。もちろんそのインフルエンサーが自分にとって有益であるかどうかはわからない(関心が違うとか)。そこで、自分のツイートをRTしてくれた人だけを対象とすることにした。

  1. 自分のつぶやきをRTしてくれた回数 > 0
  2. フォロワー数 > フォロー数
  3. フォロワー数が > 1,000
  4. ステータス数(つぶやき数) > 10,000

3, 4の条件は、十分な拡散能力がある人に絞っているのだが、1000や10000という数字はあまくで目安なので特にこだわりはない。この判定方法のメリットは、プログラムでAPIを使ってやらなくても、目で確認することもでる点です。シンプルでしょ。


まとめ


こんな感じで分析していくと、自分にとってのインフルエンサーというものが見えてきますね。インフルエンサーは拡散能力が高い人なので、たくさんRTされたかったらインフルエンサーの行動(つぶやく時間帯)などを分析して、彼らがTwitterでアクティブになる時間につぶやけば、RTされる確立も高くなりますね。

0 件のコメント:

コメントを投稿