「地名しりとり」県別ランキング
2007-05-25
地名しりとりを公開してから二ヶ月が過ぎた。 おかげさまで、定期的に遊んでもらっている。
せっかくなので、これまでに登場した地名を県別にランキングした。 こういうことが簡単に出来るのがデータベースの強みだなぁ。
- 結果のグラフ (Excelでグラフ化した)
1位は東京かと思いきや、意外にも…。
集計方法
$ script/console
Loading production environment.
>> History.count
=> 1279
ふむふむ。1279箇所の地名が登場している。 それぞれの地名を都道府県別に集計する。
calc = Hash.new(0)
History.find(:all, :include => 'area').each do |h|
calc[h.area.root.name] += 1
end
ranking = calc.sort{|a,b| b[1] <=> a[1] }
※ 上記の集計方法はあまり賢くないかも。1279箇所の地名に対して、それぞれの root の計算で SQL が発行されている。
トップ5を表示
ranking[0...5].each do |pref, count|
puts "#{pref}:\t#{count}"
end
北海道: 123
東京都: 109
愛知県: 70
千葉県: 62
神奈川県: 60
千葉県が多いのは、「○○町」の次に「千葉市○○区」と繋げたくなるからかな。たぶん。
ワースト5を表示
ranking.reverse[0...5].each do |pref, count|
puts "#{pref}:\t#{count}"
end
徳島県: 1
香川県: 3
宮崎県: 6
佐賀県: 6
福井県: 9
1回だけとは寂しい。徳島がんばれ!
ちなみにこの集計方法だと、0回の都道府県は表示されない。 今回は全ての都道府県が最低1回は登場しているので、たまたまうまくいっている。
>> ranking.size
47