文書まとめ太郎(人工知能系論文版デモ)の詳細

最終更新日:2015年11月12日

概要

問題意識

研究を始めたばかりの研究者(大学生や大学院生など)は、欲しい論文を探すことが難しいでしょう。
欲しい論文を探すことが難しい理由として以下の2つが考えられます。

この2つの問題点を補いつつ、利用者とりわけ初学者に対して論文の提示を行うようなシステムがあればよいと考えました。


このシステムが行っていること

上記のような問題点を解決するために、以下の2つを自動で行うシステムを開発しました。

つまり、「大量の論文データを元にそれらを階層的に適切にクラスタリングし、それらのクラスタに対して適切なキーワードを付与する」システムであると言えます。

システム構成等

開発の流れ

  1. 論文データを収集
  2. それらの論文をクラスタリング
  3. それぞれのクラスタに対してラベリング
  4. クラスタリングとラベリングを終えた論文データをGUIで提供

データ

2014年におけるWeb of Scienceの論文データを用いました。
これらのデータから「Computer Science, Artificial Intelligence」のジャンルに絞って論文を抽出したところ、全体で11,466件のデータを得ることができました。
デモ版では上記のデータから1000件をさらに抽出して用いています。

素性の選択

クラスタリングに用いる素性としては

のそれぞれに出てくる単語を元に、ひとつの論文で出てきた単語は何度出現しても1回としてカウントし、それらの単語データを元にbag of wordsモデルを用いています。
また、全単語を素性として用いた場合は次元数が非常に多くなってしまい、計算時間がかなりかかってしまいます。
また後述のクラスタリグでK-means法を用いる際にあまりにも次元数が多くなってしまうとうまく分離できないと考えられるので(感覚的に空間が広くなりすぎてしまう)、主成分分析によって次元を圧縮します。

クラスタリング

K-means法を用いてクラスタリングを行っています。
また、今回のシステムでは階層構造を持たせる必要があるので、K-meansを繰り返すことによってクラスタの階層構造を作成しています。

ラベリング

ラベリングはTF-IDFを元にして行います。
また、各クラスタに共通して現れるような語はラベリングの候補から除外するといった操作も行っています。
ラベリングはクラスタリングを終えるたびにそれらのクラスタ間の単語語彙情報を元に行います。

ユーザーインターフェース

UIはウェブブラウザで動作するように、javascriptを用いました。また、ライブラリとしてd3.jsを中心に用いています。
クラスタリングとラベリングの結果をJson形式で出力し、作成したjavascriptのプログラムで用いるようにしました。



Copyright (C) 2015 FURUSAWA Tomohiro All Rights Reserved.