検索語から筆者の単語リスト作成まで

 前回で一通りのコードがかけたので、今回は実際に検索語を渡して、PubMedでサーチした時の筆者リストと、筆者ごとの使用した単語リストを取得してみました。
 まず実行時に引っかかったのが、筆者名に「ø」などの文字が含まれているとき、open-uriではエラーになってしまう点です。他にもウムラウト文字などがあり、これらにいちいち対応するのは面倒なので、Rubyの「Addressable」を使用することにしました。
 gemから簡単にインストールできたので、open-uriに渡す前に、

api = Addressable::URI.parse(api).normalize.to_s
xml = open(api, 'User-Agent' => 'ruby').read

として変換することで、問題なく検索APIを実行することができました。
 試しに「diabetes insulin clearance」というクエリで実行したところ、2回以上出現した筆者は36名取得でき、彼らの論文Abstractを取得し、その中での単語の出現頻度を計算することができました。

 ここまでのコードはGitHubにアップしました。tabris2012/PubmedMapにあります。
 次回は、得られた単語リストから筆者の関係図を作成する部分を試してみようと思います。