Twitterでつぶやきから特徴的な単語を調べる
$ ./twitter_user_timeline.rb kazuyo_k @kohmi(24) RT(8) to(6) @kazuyo_k(5) YGL(5) メール(5) 大連(5) Twitter(4) is(4) 日本(4) 時間(4) 自動(4) #Dalian09(3) @joshspear(3) @kawango(3) スタバ(3) ムギ(3) 投稿(3) 設定(3) ID(2) TweetDeck(2) on(2) the(2) twtr2src(2) アクセス(2) アドレス(2) コーヒー(2) サイト(2) ナビ(2) ビデオブログ(2) ブログ(2) 中国(2) 会社(2) 月餅(2) 毎日(2) 転送(2) 転送アドレス(2) 鴛鴦茶(2) !!(1) @Isoberry(1) @cotets(1) @davos(1) @kazu_skywalker(1) @rose_m(1) @taiyun77(1) @takapon_jp(1) @twtr2src(1) CGM(1) DVD(1) Global(1) HTML(1) Hi(1) Mio(1) and(1) for(1) http://bit.ly/3WW8ZY(1) it(1) kawango(1) moblog(1) moblog@cocolog-nifty.com(1) see(1) twitter(1) you(1) youtube(1) この転送アカウント(1) オカン(1) キーワード検索(1) ココログ(1) ダボス(1) ダーティーペア(1) ディナー(1) ニックネーム(1) ニューソフト(1) ビエラ(1) ビデオ(1) マウス(1) モブログ(1) ラテ(1) ログ(1) 予約(1) 京劇(1) 今日(1) 元気(1) 再放送(1) 午後(1) 城みたいな会社(1) 寿司(1) 当時(1) 承認(1) 有名(1) 本人(1) 機内食(1) 無事(1) 片付け(1) 片付けるの(1) 男性も参加可能(1) 紅茶(1) 紅茶とコーヒー(1) 緑茶(1) 興味(1) 転送アカウント(1) 送信先(1) 連動(1) 長年(1) 関西(1) 面倒(1)
単語抽出にはreudyで使われているtango-mgm.rbを転用。
require 'rubygems' require 'twitter_oauth' require 'tango-mgm.rb' def counter(word) word.each do |w| if @word_count.key?(w) @word_count[w] += 1 else @word_count[w] = 1 end end end def sortByValueDesc @word_count = @word_count.to_a.sort{|a,b| (b[1] <=> a[1]) * 2 + (a[0] <=> b[0]) } end @word_count = {} $KCODE='U' screen_name = ARGV[0] @client = TwitterOAuth::Client.new statuses = @client.user_timeline( \ {:screen_name => screen_name, :count => 200 }) wordextractor = WordExtractor.new statuses.each do |status| # print "#{status['created_at']} #{status['id']} ", "\n" word = wordextractor.processLine(status['text']) counter(word) end sortByValueDesc @word_count.each do |w,count| print "#{w}(#{count}) " end print"\n"