はじめに
今回からは,これまで学んできた「階層的クラスタリング」と「ツリーマップ」の手法を活用して,はてなブックマークの人気エントリーの可視化に挑戦します。まずデータの準備段階として,はてなブックマークが提供するWeb APIにアクセスし,人気エントリーの情報を取得するプログラムを作成します。
ソースコードのダウンロード
今回作成するプログラムのソースコードは,こちらから一括してダウンロードすることができます。ZIPファイルを展開して生成されるフォルダを,プロジェクトとしてNetBeansに読み込むことも可能です。
はてなブックマークのAPI
はてなブックマークには,数種類の開発者向けAPIが用意されています。これらのAPIを利用すると,はてなブックマークから様々な情報を取り出すことができます。本連載では,人気エントリーのRSSフィードとエントリー情報取得APIを組み合わせて使用します。
人気エントリーのRSSフィード
はてなブックマークには人気エントリーのページがありますが,このページの内容はRSSフィード形式でも提供されています。RSSフィードをプログラムから読み込むと,最新の人気エントリーの一覧を取得することができます。
エントリー情報取得API
エントリー情報取得APIを使用すると,特定のブックマークエントリーに対して,ユーザーが付与したタグやコメントなどの詳細情報を,JSON形式で取得することができます。APIの詳細な仕様は,はてなのドキュメントを参照してください。
今回のプログラムではまず,人気エントリーのRSSフィードを解析します。次に,RSSフィードから得られた個々のURLを引数として,エントリー情報取得APIを呼び出し,エントリーのタグ情報を取得します。
ライブラリのダウンロード
RSSフィードやJSON形式のデータをJavaから扱う場合は,外部ライブラリが必要になります。今回は,RSSフィードの解析にROMEとそのサブプロジェクトであるROME Fetcher,JSONの読み込みにJSON-libを利用することにします。また今回は,URLからのデータの読み込みを容易にするため,Commons IOを使用します。
ROME FetcherとJSON-libは以下のライブラリに依存しており,プログラムを実行する際にはこれらも合わせて必要になります。
- ROME Fetcherの依存ライブラリ
- JSON-libの依存ライブラリ
各プロジェクトサイトからバイナリファイルをダウンロードして展開し,JARファイルをクラスパスに追加します。最終的に,今回のプログラムのコンパイルと実行に必要なJARファイルは以下となります。
- commons-beanutils-1.8.0.jar
- commons-collections-3.2.1.jar
- commons-io-1.4.jar
- commons-lang-2.4.jar
- commons-logging-1.1.1.jar
- ezmorph-1.0.5.jar
- jdom.jar
- json-lib-2.2.2-jdk15.jar
- rome-1.0RC1.jar
- rome-fetcher-0.9.jar

