松原 茂樹
名古屋大学 情報連携基盤センター
matubara@itc.nagoya-u.ac.jp
天笠 俊之
筑波大学 計算科学研究センター
amagasa@cs.tsukuba.ac.jp
波多野 賢治
奈良先端科学技術大学院大学 情報科学研究科
hatano@is.naist.jp
吉川 正俊
名古屋大学 情報連携基盤センター
yosikawa@itc.nagoya-u.ac.jp
実際に論文検索システムKikoriのプロトタイプを作成した. 論文検索システムKikoriは論文構造化部, XMLデータベース部,利用者インタフェース部から構成されている. システム全体の概要を図1に示す.
図1 論文検索システムKikoriの概要
まず論文構造化部について述べる. 現在,多くの学術論文がPDF形式で電子的に配布されている. しかし,PDF形式の論文は構造化がなされておらず, 高度な機能付加には限界がある. そこで,こうしたPDF形式の論文データを自動的にXML形式に構造化する. 論文のレイアウト情報とテキスト情報をもとにした 構造化ルールを用いて論文構造タグを付与する.
次にXMLデータベース部について述べる. 論文構造化部でXML化した学術論文データをXMLデータベースにて管理する. XMLデータベースは我々が開発しているXMLデータベースシステムである XRel[1,2]を使用する. XRelは関係データベースの構造にXMLの文書構造を写像するアプローチを取っている.
最後に利用者インタフェース部について述べる. 今回の論文検索エンジンでは複数の検索語を入力し, 検索語によって順位付けされた論文群を出力する. 各論文ごとに章や節の目次とスコアが表示され, さらにスコアの高い段落が表示される. スコアの高い部分文書ほど大きい文字で表示されるようになっており, 論文のどの部分が検索語と関連が深いかが ひと目で分かるようになっている.
以下, 第2節ではPDF形式の論文をXML形式に変換する手法について述べる. 第3節ではXMLデータベースシステムXRelについて述べる. 第4節では利用者インタフェースの特徴について詳しく述べる. 第5節では本研究のまとめと今後の課題について述べる.
図2 変換前の原稿
本手法の流れは以下の通りである.
図3 図2の原稿を変換した結果の例
本手法によるXML変換の性能を評価するために、学術論文の構造化実験を行った. 実験データとしてVLDB 2004[5]の論文30文書を用いた. テストデータへのタグ付けには人手で作成した30個のヒューリスティックルールを使用した. PDFファイルのテキストデータへの変換には,pdftohtml[6]のXML出力機能を用いた. 正解のXML文書を作成し,各タグの精度および再現率により評価を行ったところ, 精度:98.0%, 再現率:82.8%という性能が得られている[7]. 精度,再現率ともに高く,PDF形式の論文の構造化によるXML文書への変換可能性を確認した.
Element (documentID, nodeID, pathID, start, end) キーは (documentID, nodeID) Attribute (documentID, nodeID, pathID, start, end, value) キーは (documentID, nodeID) Text (documentID, nodeID, pathID, start, end, value) キーは (documentID, nodeID) Path (pathID, pathexp) キーは (pathID) Token (documentID, nodeID, token, tfidf) キーは (documentID, nodeID, token)
Element, Attribute, Text, Pathはそれぞれ要素ノード,属性ノード,テキストノード, XML文書に現れる全ての経路を格納する表である. Tokenは各部分文書中に登場する各単語のtf-idf値を格納するための表である. tf-idf値は部分文書の順位付けに利用される. 表の各属性について説明する.
documentID XML文書を識別するためのID. nodeID ノードを一意に識別するために付与した通し番号. pathID 経路を識別するためのID. start 各ノードの開始タグのバイト位置. end 各ノードの終了タグのバイト位置. value Attributeでは属性値を,Textでは要素内の文字列をそれぞれ格納する. pathexp 実際の経路表現を格納する. token 部分文書内に登場する単語をステミングして格納する. tfidf 部分文書内に登場する各単語のtf-idf値を格納する.
次にXML文書の格納例を挙げる. 図3のXML文書を格納すると図4のようになる.
図4 XML文書の格納例
論文検索システムKikoriでは検索語を入力とし,検索を行うことができる. 従来の検索エンジンと同じように直感的に利用することが可能である. データベースから検索語と関連の高い論文を順位付けして取得する. 順位付けのためのスコアの計算はtoken表に格納されているtf-idf値で行っている. 検索語をもとにシステムが自動的にSQL文を生成し, XMLデータベース部に対して問合せを行う. 入力した検索語から自動的に生成したSQL文の一部を図5に示す. このSQL文について説明する.各部分文書はdocumentIDとelementIDによって一意に識別される. token表から検索語を含むような部分文書を取り出し, 事前に計算した各検索語のtf-idf値の合計を部分文書のスコアとしている. 各部分文書の開始位置と終了位置を取り出し, 後述する論文の表示に使用している.
検索結果として取得する部分文書は論文の章,節,段落単位としている. 検索結果の部分文書は属する論文単位でまとめて表示される. 検索結果の表示例を図6に示す. スコアに関係なく論文に属する全ての章や節を文書出現順で表示しており, 論文全体の流れが把握できるようになっている. 段落はスコアの高いもののみを表示するようにしている. スコアの高い部分文書ほど大きく目立つ文字で表示しており, 関連度の高い部分文書がひと目で分かるようになっている.
論文や各部分文書のタイトルはアンカーとなっている. 各アンカーをクリックすると論文全体が表示される. 部分文書のアンカーをクリックした場合, 部分文書全体をハイライトして表示するようにしており, 部分文書の前後の流れを見ながら 該当する部分文書を読むことができるようになっている. 論文中に存在する検索語とマッチする語をハイライトして表示しており, 検索語と関連の高い部分をわかりやすくしている. 論文の表示例を図7に示す.
図5 検索語から自動生成したSQL文の例
今後の課題には次のようなものが挙げられる. 今回提案したシステムでは部分文書を検索対象としているが, 一つの文書は複数の部分文書から構成されているため, 検索対象が膨大となる. 大量の部分文書を高速に検索できるようなアルゴリズムが必要となる.
学術論文の構造化を行う際に背景や関連研究,実験手法といった 意味情報を付与することにより,高度な検索要求を満たすこと目標としている. 意味情報を付与する手法の開発を課題としている.
利用者の多様な検索要求を満たすため, 検索語以外の入力方法,順位付けされた文書群以外の出力方法など, 複数の入出力インタフェースの搭載を検討している.
[2] Takeyuki Shimura, Masatoshi Yoshikawa, and Shunsuke Uemura. Storage and Retrieval of XML Documents using Object-Relational Databases. In Proc. of the 10th International Conference on Database and Expert Systems Applications (DEXA'99), volume 1677 of Lecture Notes in Comuputer Science, pp. 206-217, Springer-Verlag (1999).
[3] Google Scholar. http://scholar.google.com/
[4] CiteSeer. http://citeseer.ist.psu.edu/
[5] VLDB. http://www.informatik.uni-trier.de/‾ley/db/conf/vldb/
[6] pdftohtml http://pdftohtml.sourceforge.net/
[7]杉木 健二, 松原 茂樹, 吉川 正俊. レイアウト情報とテキスト情報を用いた学術論文の構造化. 平成17年度電気関係学会東海支部連合大会, (2005).
図6 検索結果一覧表示の例
図7 論文表示の例