目指せ1級!30代サラリーマンボルダリング日記

都内IT企業で働く30代サラリーマンのクライミング記録

タグ:Twitter

ちょっと調べることがあったので、メモとして残しておきます。

日本語のtweetの抽出方法はいろいろあるとおもうんだけど、
今回はフォロワー取得APIでユーザの最新のステータスが取れることから、
特定の有名人のフォロワーのtweetを集めて平均値を出してみようかと。

たぶん統計学的にどのくらいのtweetの平均値をとれば統計として信用できる値とかってあるはずよね。。
習ったような習わなかったような気がするけど、とりあえず適当な数とってみました。

ターゲットとした有名人は勝間さん。
勝間さんのフォロワーをAPIで取得して平均値をだしました。

ちょっと古いAPIの仕様見てたらpage=1とかでページ数指定するって書いてたんだけど、公式のドキュメント見たらcursorになってた。
無駄にハマった。

初期値はcursor=-1を設定して、レスポンスにnext_cursorが返ってくるので次のページを見るときはその値を設定する。
(要するにcursor=1,2,3とかじゃないみたい。)

下に書いてある簡単なバッチ作ってみたところ、
対象Tweet6587tweet
トータル文字数234153文字
平均Tweet文字数35.5文字
以上のような結果に。
*)RTで始まってるtweetは除きました。

何度かやってみてもだいたい30文字台だったので、
日本人は30〜40文字でつぶやいているんでしょう、たぶん。

tweetLength.php

<?php
$username = "USERNAME";
$password = "PASSWORD";
$target = 'kazuyo_k';

$tweet=0;
$length=0;
$cursor = -1;
for ($i=0;$i<150;$i++) {
  if ($cursor == 0) break 1;

  $url = sprintf("http://twitter.com/statuses/followers.json?cursor=%d&screen_name=%s",$cursor,$target);
  $json = request($url,$username,$password);
  if (!is_array($json->users)) continue 1;
  foreach ($json->users as $key => $val) {
    if(isset($val->status)) {
      //RTで始まるtweetは飛ばす
      if(preg_match("/^RT(.+)/",$val->status->text)) continue 1;

      if (mb_detect_encoding($val->status->text) != 'UTF-8') continue 1;
      $tweet++;
      $length+=mb_strlen($val->status->text, 'utf-8');
    }
  }
  $cursor = $json->next_cursor;
}
echo "tweet  : " . $tweet . "\n";
echo "length : " . $length . "\n";
echo "avg    : " . $length / $tweet . "\n";

function request($host='',$username='',$password=''){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $host);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
  curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  $result = curl_exec($ch);
  curl_close($ch);

  return json_decode($result);
}
?>
    このエントリーをはてなブックマークに追加

どうTwitterを楽しむべきか、
なにが楽しいのかいまいちよくわからんので
自分で興味が持てるようにAPI使ってサイト作りました。
あとCakePHPの練習も兼ねて。

いちおうECサイト担当っぽく「欲しい」をキーワードに集めてみました。

とりあえずぶっぱなしぎみで作ったので中身ごり押しな感じです。


欲望なう

欲望なう

キャッシュだったり、もうちょっとリアルタイム性だしたりと改善点は多々あると思うのでぼちぼち作ります。
    このエントリーをはてなブックマークに追加

TwitterAPIに検索キーワードを投げて表示するだけのサンプル。

リクエストパラメータの一例。
詳細はこちらを参照
q検索キーワード
callbackコールバック関数を指定したいときは設定
lang検索対象の言語
rpp取得する検索結果数
page取得ページ


レスポンスデータはこんなかんじ。
created_at発言日時
from_userユーザID
profile_image_urlユーザのプロフィール画像
text発言

続いてソースとサンプル。
続きを読む
    このエントリーをはてなブックマークに追加

このページのトップヘ