M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年5月 2日 16:15

Twitterの発言時間を24時間で分類してコンソールにヒストグラム化する

このエントリーをはてなブックマークに追加 mixiチェック

昨日は、Twitterの特定のユーザーのフォロワー達の最終書き込み日をグラフにして表示してみたけれども、今日は、Twitterの特定ユーザーの書き込みから、書き込んだ時間を取得してグラフにすればどうかなと思って作ってみた。

240発言を採取して、発言をヒストグラムにします。

Filename: activity.pl

#!/usr/bin/perl
 
use strict;
use warnings;
use Net::Twitter;
use Date::Parse;
use DateTime;
use Text::Graph;
use Text::Graph::DataSet;
 
my $screen_name =  $ARGV[0] or die 'enter Twitter UserName.';
my $nt = Net::Twitter->new( traits => [qw/API::REST/],);
my $c = {};
 
# TwitterからFollowersの情報を取得して最終発言日を集計
my @list = _get_twitter_value( $screen_name );
foreach my $item ( @list ) {
  my $epoch = str2time( $item->{created_at} ) || 1;
  my $create_at = DateTime->from_epoch(
       epoch     => $epoch,
       time_zone => 'Asia/Tokyo',
  );
  #print "$create_at\n";
  $c->{ $create_at->strftime('%H') }++;
}
 
# グラフ表示
my $graph = Text::Graph->new( 'Bar', showval => 1, maxlen => 60,);
print $graph->to_string( $c,);
 
exit;
 
sub _get_twitter_value {
  my $screen_name = shift;
  my @list;
  for ( my $i = 1; $i < 13; $i++ ) {
    my $res = $nt->user_timeline({
      screen_name => $screen_name,
      page => $i,
    });
    last unless @$res;
    @list = ( @list, @$res );
  };
  return @list;
}

実行例。CLCLCLというのは、わっとこのTwitter Usernameです。

$ perl activity.pl CLCLCL
00 :****************************************            (18)
01 :**                                                  (2)
02 :                                                    (1)
03 :                                                    (1)
04 :*********************                               (10)
05 :**                                                  (2)
06 :*****                                               (3)
07 :**                                                  (2)
08 :**************                                      (7)
09 :**************************                          (12)
10 :****************************************            (18)
11 :**************                                      (7)
12 :*****************************                       (13)
13 :*********************                               (10)
14 :*****                                               (3)
15 :*******************************                     (14)
16 :*******************************************         (19)
17 :*********************************                   (15)
18 :*********************************                   (15)
19 :**********                                          (5)
20 :*****************                                   (8)
21 :*****************************                       (13)
22 :*********************                               (10)
23 :************************************************    (21)
$

夜型ですな。

時報botでやってみた。

$ perl activity.pl jihou
00 :                                                    (10)
01 :                                                    (10)
02 :                                                    (10)
03 :                                                    (10)
04 :                                                    (10)
05 :                                                    (10)
06 :                                                    (10)
07 :                                                    (10)
08 :                                                    (10)
09 :                                                    (10)
10 :                                                    (10)
11 :                                                    (10)
12 :                                                    (10)
13 :                                                    (10)
14 :                                                    (10)
15 :                                                    (10)
16 :                                                    (10)
17 :                                                    (10)
18 :                                                    (10)
19 :                                                    (10)
20 :                                                    (10)
21 :                                                    (10)
22 :                                                    (10)
23 :                                                    (10)

Text::Graphがセンシティブすぎる。数字からするとまあまあいいんだと思うんだけど。

こーいう統計を取って、Twitterの発言診断サービスとか作っているんだろうな。

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3209

コメントする