PubMed検索から関連筆者をグラフ化

 前回トピック解析を実装できましたので、今回はその結果を使って、筆者をトピックごとに分けてネットワークグラフを作成するところを実装しました。
 使用するネットワークグラフ作成ライブラリは、以前と同じくGvizです。トピック解析では「トピック数がいくつになるのが良いのか」という値も出力されるので、そのトピック数を引数にしたプログラム「TopicGraph.rb」を作成しました。こちらも私のGitHubのPubmedMapレポジトリにアップしております。
 この中では、トピック解析の結果の「.tsv_theta」ファイルを受取って、中に表記されたトピック数分のノードと、その周りに筆者名ノードを配置したグラフを作成します。色はトピック番号と対応していて、トピックへの分類確率が近いほど濃い色になるようにしました。
 分類確率は、各筆者ごとに各トピックに対して計算されるので、確率値上位2つのトピックに対して、エッジがひかれるようにしました。

 今回このプログラムが完成したことで、PubMedでの検索からグラフ作成までの一連の流れが完成しました。まとめますと、

  • 「pubmedAuthor.rb」:検索したい単語から、PubMedを叩いて論文リストを得て、そのAbstractから筆者に特有な単語リストを作る
  • 「AuthorTopicExplorer.rb」:単語リストからトピック解析を行い、筆者をトピックに分ける
  • 「TopicGraph.rb」:トピック解析結果から、筆者のトピックとの関係性ネットワークグラフを作る

という流れになっています。試しにPubMed検索を「diabetes insulin clearance」として、全行程を行ってグラフを作った結果は、以下のようになりました。