具体例で学ぶ!情報可視化のテクニック

第5回 はてなブックマークの可視化(前編)

この記事を読むのに必要な時間:およそ 4 分

はてなブックマークAPIの動作確認

ではここで,テストプログラムを作成し,HatenaBookmarkAPIクラスの動作を確認してみましょう。以下が,はてなブックマークの人気エントリーの詳細情報をコンソールに表示するDemoクラスになります。

リスト5 Demo.java

public class Demo {
   public static void main(String[] args) {
      HatenaBookmarkAPI api = new HatenaBookmarkAPI();
      List<Bookmark> bookmarks = api.getHotEntries();
      System.out.println(bookmarks.size() + " entries.");

      for (Bookmark bookmark : bookmarks) {
         System.out.println(bookmark.title);
         System.out.println("  [url] " + bookmark.url);
         try {
            // サーバの負荷を抑えるため呼び出し間隔を空ける
            Thread.sleep(1000);
         } catch (InterruptedException e) {
         }
         BookmarkDetail detail = api.getDetail(bookmark.url);
         if (detail != null) {
            System.out.println("  [bookmarkCount] " + detail.bookmarkCount);
            System.out.println("  [tags] " + detail.tags);
         }
      }
   }
}

Demoクラスを実行すると,実行時点での最新の人気エントリーの情報が,例えば次のように出力されます。

50 entries.
任天堂DS,年内に新型機 カメラ・音楽再生機能追加 - NIKKEI NET(日経ネット)
  [url] http://www.nikkei.co.jp/news/main/20080928AT1D2701J27092008.html
  [bookmarkCount] 192
  [tags] [ニンテンドーDS, 日本経済新聞, ゲーム, ゲーム, game, ds, news, nintendo, ゲーム, ...
[内輪]「あたし彼女」現代語訳 - 藤棚の上
  [url] http://d.hatena.ne.jp/konaken/20080927/1222520200
  [bookmarkCount] 252
  [tags] [ケータイ小説, これはすごい, これはすごい, まとめ, 小説, あたし彼女, あとで読む, ケータイ小説, ...
ウォールストリート日記 : ウォールストリートの歴史的1ヶ月
  [url] http://wallstny.exblog.jp/8669144/
  [bookmarkCount] 124
  [tags] [金融, あとで読む, business, サブプライム, あとで読む, まとめ, 米国, 経済, 金融, 経済, ...
...

[tags]の内容に注目してください。⁠ゲーム, ゲーム, ...」のように,同じタグが1つのエントリーに複数回出現するケースがあります。これは,1つのエントリーに対し,複数のユーザーが同一のタグを付けたことを示しています。この「ゲーム」のように,多くのユーザーが共通して付与したタグほど,エントリーの特徴を強く示すキーワードであると考えられます。

タグと出現回数のセットをベクトル形式で表現できれば,そのベクトルを入力として,階層的クラスタリングを実行することができそうです。また,クラスタリングの後で構築するツリーマップのノード領域面積には,[bookmarkCount]で出力されたブックマーク数をそのまま利用できるでしょう。

次回に続く

今回は,はてなブックマークのRSSフィードとエントリー情報取得APIを使用して,人気エントリーの情報を取得するプログラムを作成し,その動作確認を行いました。これまでの連載で,可視化のために必要なロジックと現実のデータの両方が,ほぼ揃ったことになります。次回は,収集されたブックマークタグをベクトルに変換し,いよいよ可視化の本処理へと進んでいきます。

著者プロフィール

浜本階生(はまもとかいせい)

1981年生まれ。栃木県出身。東京工業大学情報工学科卒業。技術やアイデアの組み合わせから面白いソフトウェアを生み出したいと日々考えている。現在,ブログの解析および視覚化の試みとして「TopHatenar」「Blogopolis」を開発,運用中。

URLhttp://d.hatena.ne.jp/kaiseh/