2010年声優言及数 作業メモ(1) 言及数グラフデータを取得

今年もそろそろ準備したい。

まずは声優名一覧の取得。去年まではWikipediaの声優一覧から全部とってくることをしてたけど、Wikipediaは「声優」のハードルが甘すぎて誰でも引っかかってきて少々困る。ということで、2chの「声優個人」板にスレッドが立ってれば、まあ声優でしょうという認識に変更しました。

Wikipediaから声優名一覧を取ってくるPerlスクリプトv2 (3) 2chを使ったスクリーニング案 - XXXannex

声優一覧が出たところでグラフデータの集計。今年の8月26日から「キーワード統計グラフ」が「はてなキーワードトレンド」に変更されたらしく、大幅に統計情報の取得方法が変わってしまうことに。

「竹達彩奈」のトレンド - はてなキーワード

うーん、これは困ったな・・・。と思っていたのだけど、実のところ統計情報はAPIを叩いて取得しているようで、グラフのPNGファイルを力技で解析するよりはるかに簡単になってしまった。嬉しい。

use strict;
use warnings;
use YAML;
use WebService::Simple;
use utf8;

my $hkw = WebService::Simple->new(
  base_url => 'http://d.hatena.ne.jp/api/keywordstats',
  response_parser => 'JSON',
  debug => 1,
);

my $res = $hkw->get({
  keyword     => '竹達彩奈',
  from        => '2010-12-21',
  to          => '2010-12-27',
  refer_count => 1,
});

### $res
print YAML::Dump $res->parse_response;
$ perl view_api.pl
Request URL is http://d.hatena.ne.jp/api/keywordstats?keyword=%E7%AB%B9%E9%81%94%E5%BD%A9%E5%A5%88&to=2010-12-27&from=2010-12-21&refer_count=1
---
- from: 2010-12-21
  keyword: 竹達彩奈
  merged_keywords: []
  refer_count:
    - 3
    - 7
    - 6
    - 4
    - 7
    - 10
    - 6
  to: 2010-12-27

うひょー。

しかし、おそらく非公開のAPIっぽいので、あんまりおおっぴらに使うのは止めておこう・・・。規制されたら困るし。

ともかく。今まで結構めんどくさい思いをしていたデータ収集が、こんなに簡単になってしまったのは嬉しい反面、今までの苦労は何だったんだという気もしなくはない。。

追記

Wikipediaから声優名一覧を取ってくるPerlスクリプトv2 (3) 2chを使ったスクリーニング案 - XXXannex
これ、なぜか名前がかぶってるなあ・・・。

$ sort va.txt | uniq -c | sort -nr | head -10
     53 平野綾
     10 水樹奈々
      7 竹達彩奈
      6 豊崎愛生
      5 田村ゆかり
      5 戸松遥
      5 坂本真綾
      5 下田麻美
      4 高垣彩陽
      4 能登麻美子

なんでだろ?まあ、めんどくさいからuniqは手作業でいいか・・・。

追記2

Wikipediaのデータにしては重複が妙に恣意的だな、と思っていたら、やはり2chのスレッドリストのマッチングをかけるところで複数回ヒットしてるのが原因でした。こっちでもuniqせねば。

- print "$1\n" while($decoded_content =~ m/$names_regexp/go);
+ print "$_\n" foreach uniq ($decoded_content =~ m/$names_regexp/go);