Twitterの #自分の人生に影響を与えたゲーム3本 を集計してみた
昨日の夕方ぐらいから #自分の人生に影響を与えたゲーム3本 ってタグが流れてて、面白そうだったのでクロールして集計してみました。手持ちのレコードは2567件。
集計した、とは言っても、表記揺れが激しいので完全にカウントできたわけじゃないですが、
2500件あればある程度省かれることを考慮してもそこそこ妥当なデータだと思うので、もういいや(考えることをやめた)。
10票以上のもの
| タイトル | 票数 |
|---|---|
| ポケモン | 134 |
| クロノトリガー | 38 |
| ゼルダの伝説 | 38 |
| FF6 | 33 |
| ぷよぷよ | 33 |
| FF7 | 31 |
| FF9 | 31 |
| MOTHER2 | 30 |
| MOTHER | 29 |
| FF5 | 28 |
| 大神 | 27 |
| ゼノギアス | 25 |
| ドラクエ | 25 |
| Fate | 24 |
| スマブラ | 24 |
| 東方 | 24 |
| ポップン | 24 |
| サクラ大戦 | 24 |
| FF4 | 23 |
| PSO | 23 |
| 逆転裁判 | 22 |
| テイルズオブファンタジア | 22 |
| RO | 22 |
| 幻想水滸伝 | 21 |
| ハイドライド | 21 |
| FF11 | 21 |
| モンスターハンター | 20 |
| FF | 20 |
| モンハン | 20 |
| 月姫 | 20 |
| 女神転生 | 20 |
| タクティクスオウガ | 19 |
| テイルズ | 18 |
| 戦国BASARA | 18 |
| テイルズオブシンフォニア | 18 |
| DQ3 | 18 |
| ドラクエ3 | 18 |
| サモンナイト | 17 |
| ウィザードリィ | 17 |
| スーパーマリオブラザーズ | 16 |
| FF3 | 15 |
| イース | 15 |
| ToHeart | 15 |
| キングダムハーツ | 15 |
| バイオハザード | 15 |
| メタルギアソリッド | 14 |
| MOTHER3 | 14 |
| Kanon | 14 |
| FFT | 14 |
| ポップンミュージック | 14 |
| DQ5 | 14 |
| スパロボ | 13 |
| ドラゴンクエスト | 13 |
| ソーサリアン | 13 |
| ラグナロクオンライン | 13 |
| マリオ | 13 |
| 女神異聞録ペルソナ | 13 |
| .hack | 13 |
| 牧場物語 | 13 |
| ドラクエ5 | 13 |
| スペースハリアー | 12 |
| ドルアーガの塔 | 12 |
| テトリス | 12 |
| ときめきメモリアル | 12 |
| アイドルマスター | 12 |
| Wizardry | 12 |
| ポケットモンスター | 12 |
| ポケモン赤 | 11 |
| アイマス | 11 |
| グラディウス | 11 |
| ファンタシースターオンライン | 11 |
| マザー2 | 11 |
| MGS | 11 |
| ICO | 11 |
| ロックマン | 11 |
| beatmania | 11 |
| クロノクロス | 11 |
| 風来のシレン | 11 |
| FF10 | 11 |
| マリオブラザーズ | 11 |
やっぱ90年代の後期のJRPG強いですね
以下、今回使用したスクリプト
集計 Python
#!/usr/bin/env python # encoding:utf8 import pymongo import re db = pymongo.Connection()['twitter']['most_shocked_games'] print "count ",db.count() res = {} def push(item): if item in res : res[item] += 1 else : res[item] = 1 for i in db.find(): text = i["text"].replace(u"#自分の人生に影響を与えたゲーム3本","") text = re.sub( u'(\(|().*?(\)|)) ',u'',text ) d = re.findall(u"(「|『).*?(」|』)",text) if len(d) >= 2: for t in d: push( t ) else: for t in re.split( u'・| |,|、| |/|/',text): push( t ) res = sorted(res.items(), key = lambda x:x[1] ) for k,v in res[::-1]: if v > 10: print k,v
クローラ nodejs
var TwitterNode = require('twitter-node').TwitterNode , sys = require('sys'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/twitter'); //コレクションのスキーマ user_scheme = { name : String, text : String }; User = mongoose.model('most_shocked_games', new mongoose.Schema(user_scheme) ); var twit = new TwitterNode({ user: '"<username>', password: '<password>', track: ['#自分の人生に影響を与えたゲーム3本'] }); twit.addListener('error', function(error) { console.log(error.message); }); twit .addListener('tweet', function(tweet) { sys.puts("@" + tweet.user.screen_name + ": " + tweet.text); item = new User(); item.name = tweet.user.screen_name; item.text = tweet.text; item.save(function(e){ console.log('add new item:'+JSON.stringify(item)); }); }) .stream(); //要素の追加
それぞれのコード、書くのに15分もかかってないし、この記事書くのにそれと同じぐらいの時間使ってるので、コーディング速度上がってきた気がする。