JP4314221B2 - 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム - Google Patents

構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム Download PDF

Info

Publication number
JP4314221B2
JP4314221B2 JP2005219165A JP2005219165A JP4314221B2 JP 4314221 B2 JP4314221 B2 JP 4314221B2 JP 2005219165 A JP2005219165 A JP 2005219165A JP 2005219165 A JP2005219165 A JP 2005219165A JP 4314221 B2 JP4314221 B2 JP 4314221B2
Authority
JP
Japan
Prior art keywords
vocabulary
structured document
identifier
candidate
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005219165A
Other languages
English (en)
Other versions
JP2007034827A (ja
Inventor
拓也 金輪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005219165A priority Critical patent/JP4314221B2/ja
Priority to US11/388,131 priority patent/US7613602B2/en
Priority to CNA2006101080668A priority patent/CN1904896A/zh
Publication of JP2007034827A publication Critical patent/JP2007034827A/ja
Application granted granted Critical
Publication of JP4314221B2 publication Critical patent/JP4314221B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、異なる文書構造の複数の構造化文書を、階層化された論理構造を持つ構造化文書データベースで管理する構造化文書記憶装置、構造化文書記憶装置から構造化文書を検索する構造化文書検索装置、これら構造化文書記憶装置と構造化文書検索装置を含む構造化文書システム、方法およびプログラムに関する。
XML(eXtensible Markup Language)などで記述された構造化文書データを記憶または検索するための構造化文書データベースが提案されている。構造化文書データベースを用いることによって、従来のテキストデータベースでは難しかった、構造を意識した検索が可能となる。この構造化文書データベースに対して検索を行なうためには、XQueryに代表される構造化文書に対する問合せ言語を使用する。XQueryは、W3C(World Wide Web Consortium)が標準化を進めている問合せ言語である。問合せ言語の特徴は、検索結果が単なるフィルタリングによるものではなく、複数の情報源である文書から、構造を持った新規の複合データを作成することが可能となることである。
一方、全文検索の分野では、構造の無い文書である文字列を管理するテキストデータベースが主流である。全文検索の重要な機能として、スコアリング、ワイルドカード、近傍検索、曖昧検索などがあり、これらを検索することがテキストデータベースには必要とされることが多い。
特に、スコアリングは全文検索においては必須機能である。スコアリングを導入することで、ユーザは、精度の高い情報(例えば、文書)を検索結果の上位として取得することが可能となり、必要な情報だけを素早く取得することが可能となる。
構造化文書データベースにおいても、問合せ時に、キーワードを指定した全文検索的な利用が可能ではあるが、せいぜい前方一致検索程度の機能程度であり、スコアリング等の機能は十分に考慮されているとはいえない。なぜなら、構造化文書は、構造を持つ、つまり、複数の要素から構成されているので、全文検索での場合と同じように、文書単位で求めることができないからである。
スコアの計算方法として有名なのは、tf−idf(term frequency − document frequency)法である。tfは検索語がその文書内に発生した回数、idfはその検索語が出現する文書数を示している。tfは頻度が高い検索語ほど優先度を高くし、idfはその検索語が特徴的であるかどうかの尺度を示す。これらを掛け合わせることで、tf−idf値としてスコアリングする。
構造化文書は複数の要素から構成されているので、どのレベルでスコアリングするかが重要になってくる。近年、構造化文書データベースの需要が広まっていることから、構造化文書データベースにおいても、スコアリングを高速に実現することが期待されている。
構造化文書データベースにおけるスコアリングを導入するためには、スコアリングの精度が重要となるとともに、これらを現実的な時間、リソースで求めることが重要になってくる。つまり、「精度」と「速度」の問題が重要になってくる。
例えば、特許文献1では、構造や語彙の曖昧性を加味した形でスコアリングを行なう構造化文書データベースが提案されている。この文献では、要素名や値など、類義語展開を意味ネットワークにより計算したり、階層関係における、「深さ情報」などを利用して、構造や語彙の類似度を計算しつつ、所望のデータを生成する。
特開2002−297605公報
この発明は、上述した事情を考慮してなされたものであり、XQueryのような加工型の問合せ言語を、スコアリングの精度を高く、かつ、高速に検索可能にするように情報を記憶する構造化文書記憶装置、スコアリングの精度を高く、かつ、高速に検索可能にする、構造化文書検索装置、構造化文書システム、方法およびプログラムを提供することを目的とする。
上述の課題を解決するため、本発明の構造化文書記憶装置は、1つの構造化文書を取得する取得手段と、前記構造化文書を解析する構造情報解析手段と、構造化文書の典型的な構造を示す構造雛型木を予め記憶している構造雛型木記憶手段と、前記構造雛型木を前記解析された構造化文書に合致するように更新する更新手段と、前記1つの構造化文書を複数の語彙に分割する分割手段と、1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出する頻度情報算出手段と、前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の語彙が存在するまで前記範囲を拡大する拡大手段と、前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与する関連語彙識別子付与手段と、前記語彙ごとに前記関連語彙識別子を記憶している関連語彙識別子記憶手段と、前記構造雛型木の各ノードに構造雛型木識別子を付与する構造雛型木識別子付与手段と、或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与する関連構造雛型木識別子付与手段と、前記語彙ごとに関連構造雛型木識別子を記憶している関連構造雛型木識別子記憶手段と、を具備することを特徴とする。
本発明の構造化文書検索装置は、上記に記載の構造化文書記憶装置を参照する構造化文書検索装置であって、複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付ける受付手段と、前記問合せデータを構文解析する構文解析手段と、前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造化文書記憶装置から複数の候補として選択する選択手段と、語彙の間の類似度合いを示す類似度を複数の語彙について記憶している類似関係記憶手段と、前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出する構造スコア値算出手段と、少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出する処理コスト算出手段と、少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択する処理優先度算出手段と、前記選択候補から処理を実行する処理実行手段と、複数の前記処理を実行した実行結果を検索結果として取得する結果取得手段と、を具備することを特徴とする。
本発明の構造化文書システムは、構造化文書記憶装置と構造化文書検索装置を具備した構造化文書システムであって、
前記構造化文書記憶装置は、1つの構造化文書を取得する取得手段と、前記構造化文書を解析する構造情報解析手段と、構造化文書の典型的な構造を示す構造雛型木を予め記憶している構造雛型木記憶手段と、前記構造雛型木を前記解析された構造化文書に合致するように更新する更新手段と、前記1つの構造化文書を複数の語彙に分割する分割手段と、1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出する頻度情報算出手段と、前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の語彙が存在するまで前記範囲を拡大する拡大手段と、前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与する関連語彙識別子付与手段と、を具備し、
前記構造化文書検索装置は、複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付ける受付手段と、前記問合せデータを構文解析する構文解析手段と、前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造化文書記憶装置から複数の候補として選択する選択手段と、語彙の間の類似度合いを示す類似度を複数の語彙について記憶している類似関係記憶手段と、前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出する構造スコア値算出手段と、少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出する処理コスト算出手段と、少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択する処理優先度算出手段と、前記選択候補から処理を実行する処理実行手段と、複数の前記処理を実行した実行結果を検索結果として取得する結果取得手段と、を具備することを特徴とする。
本発明の構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラムによれば、XQueryのような加工型の問合せ言語を、スコアリングの精度を高く、かつ、高速に検索可能にする。
以下、図面を参照しながら本発明の実施形態に係る構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラムについて詳細に説明する。
まず、実施形態の概要を説明する。本実施形態においては、特に、「複数の情報源(例えば、文書)から構造を持つ新規の複合データを生成および加工することができる言語」を考慮したスコアリングについて詳細に説明する。このような言語は加工型の問合せ言語と呼ばれ、例えば、XQueryがそれに該当する。
構造化文書データベースにおける問合せ言語は、全文検索エンジンのようなキーワードレベルの検索と異なり、さらに構造情報を指定することが可能である等が示すように記述レベルが高く、複雑な表現をすることが可能である。特に、W3Cで標準化が成されているXQueryのような複数の情報源から構造を持つ複合データを生成および加工することができる言語は、その記述能力の高さとともに、問合せの最適化を如何に行なうかが問題であり、これら、問合せの最適化とスコアリングを融合して考えることが重要になってくる。
本実施形態では、問合せ処理を行なう際に、問合せに対する回答の各候補に対して一時的なスコア値と処理コストをもとに、処理優先度を決定する。構造化文書検索装置は、この処理優先度を利用することによって、精度よく、かつ、検索時間の高速化を行なうことを可能とする機能を持つことを特徴とする。
その他の本実施形態の特徴について以下に列挙する。
(1)構造化文書記憶装置は、構造化文書を登録する際に、構造情報(スキーマ)の特徴抽出を行い、データベース上に構造雛型木を作成または更新する。次に、構造化文書記憶装置は、文字列値を分割し、語彙索引の語彙索引情報として転置索引リストを作成する。この際に、各語彙索引情報として、構造雛型木上の識別子を付加しておく。これらは、構造化文書検索装置が行う検索時の構造制約条件であり、検索処理速度向上のために用いられる。
(2)構造化文書記憶装置は、語彙索引の各語彙索引情報として、その語彙と関連性が高い語彙として、その要素中で発生する全ての語彙に対する頻度情報を計算し、最大頻度を持つ語彙を関連語彙として語彙索引情報に残す。この際、最大頻度を持つ語彙の頻度が閾値以下である場合は、それぞれの語彙索引情報が発生する文字列を基点に、頻度情報を計算する範囲を広げていくことも可能とする。これにより、例えばXQueryにより、Return節に並べられた別の変数に対するスコア(要素を超えたスコア)を求めることが可能となる。
(3)構造化文書検索装置が構造化文書を検索する際に、問合せ言語(XQuery)を解析し、問合せ言語の出力となる構造によって生成される仮想的な構造情報から、曖昧性を含んだ形で類似する構造を、構造化文書記憶装置が作成または加工した構造雛型木から検索する。このとき得られた類似度を構造スコア値とする。
(4)構造化文書検索装置は、プラン実行中の候補集合の候補それぞれに関して、構造スコアと語彙スコアと個別の処理コストを考慮して、逐次的に処理優先度を作成して、処理の可否を決定する。例えば、語彙索引により求めた候補値に対して、親子関係などの構造チェックが必要な場合、そのチェックがXMLとして階層が深く、ディスクアクセスが多大に発生されることが予め予想されるならば、処理コストが高く設定され、これと、構造スコア値、語彙スコア値とを照らし合わせて、場合によってはこの候補をスキップすることで計算量を削減する。
(5)問合せ言語処理方式は、制約充足型方式に基づく(例えば、特開2002−297605公報を参照)。
次に、本実施形態の構造化文書システム、すなわち、構造化文書記憶装置および構造化文書検索装置について図1を参照して説明する。
構造化文書記憶装置および構造化文書検索装置は、一般に図1に示すようにサーバであり、図1に示すようにクライアントからの問い合せに応じて動作する。クライアントは、入力部101,102、登録部103、検索部104を備えている。これらの装置部分は1つのクライアントに含まれる場合もあるし、第1のクライアントは入力部101と登録部103を備え、第2のクライアントは入力部102と検索部104を備えていてもよい。
入力部101は、ユーザから格納要求を受け付け、登録部103にこの格納要求を渡す。登録部103は、この格納要求を受けて、サーバである構造化文書システムに、格納しようとする格納データを送信する。この格納データは、XMLなどの構造化文書である。構造化文書は文字列からなる。
一方、入力部102は、ユーザからの検索要求を受け付け、検索部104にこの検索要求を渡す。検索部104は、この検索要求を受けて、サーバである構造化文書システムに、検索要求に対応する、XQueryなどの問合せ言語からなる問合せデータを送信する。また、検索部104は、構造化文書システム内の構造化文書検索装置で求められた検索結果を受け取る。この検索結果は、例えば、XMLデータのデータ形式である。
構造化文書システムは、構造化文書記憶装置と構造化文書検索装置とからなる。構造化文書記憶装置は、要求処理部105、格納処理部106を備え、さらにデータベース117として、構造化文書データ記憶部118、語彙索引記憶部119、構造雛型木記憶部120、語彙統計情報記憶部121、意味ネットワーク記憶部122を備えている。
構造化文書検索装置は、要求処理部105、検索処理部111を備え、さらにデータベースとして、構造化文書データ記憶部118、語彙索引記憶部119、構造雛型木記憶部120、語彙統計情報記憶部121、意味ネットワーク記憶部122を備えている。
要求処理部105は、クライアントが送信するデータを受信し、受信したデータが格納要求に基づく格納データであるのか、検索要求に基づく問合せ言語からなる問合せデータであるのかを判定する。要求処理部105は、この判定結果に基づいて、格納データを受信した場合には格納データを格納処理部106に出力し、問合せデータを受信した場合には問合せデータを検索処理部111に出力する。さらに、要求処理部105は、検索処理部111が検索処理した処理結果をクライアントに転送する。
格納処理部106は、クライアントからの格納データを受けて、この格納データに含まれる構造化文書を解析し、検索に関する語彙索引情報を作成し、データベースの各記憶部に対応する語彙索引情報を記憶させる。
検索処理部111は、クライアントからの問合せデータを受けて、指定された問合せデータに基づいてデータベースに含まれる各記憶部を参照することによって、所望の構造化データを作成し、得られた構造化データをクライアントに転送する。
また、格納処理部106は、構造情報抽出部107、統計情報計算部108、索引情報格納部109、制御部110を備えている。
構造情報抽出部107は、クライアントからの格納データに含まれる構造化文書を解析し、解析した構造化文書と、構造雛型木記憶部120に格納されている構造雛型木とを照合し、構造雛型木を解析した構造化文書に合致するように更新し、更新された構造雛型木を構造雛型木記憶部120に記憶させる。また、構造情報抽出部107は、構造雛型木が構造雛型木記憶部120に無い場合には構造化文書に合致する構造雛型木を生成し、生成された構造雛型木を構造雛型木記憶部120に記憶させる。そして、構造情報抽出部107は、格納データに含まれる構造化文書の構造情報(文書中の各要素間の親子兄弟関係など)に関する情報を更新し、構造化文書データ記憶部118に記憶させる。また、構造情報抽出部107は、DOM(Document Object Model)のようなオブジェクトツリー形式に展開し、構造雛型木の各ノードに構造雛型木識別子(以下、TIDと称する)を付与して、構造情報と共にTIDも構造化文書データ記憶部118に記憶させる。TIDの一例は後に図5に示す。
統計情報計算部108は、検索のための索引付け及びスコアリングに関する情報を得るために行なわれる。統計情報計算部108は、文字列に対応する部分の語彙を分割し、分割した語彙に語彙識別子(以下、GIDと称する)を付与し、それぞれの語彙に対する索引を作成し、各語彙がどの語彙とどの程度関連しているかを計算する。また、統計情報計算部108は、GIDの他に、語彙が発生した文書ID、要素ID、発生位置、その要素に対応するTID、関連度の高いGID(関連GID)、そのGIDが最も多く発生する構造のTID(関連TID)を各語彙に付与する。統計情報計算部108は、これらの語彙識別子、計算結果を語彙索引情報として生成する。関連GID、関連TIDについては後に図3を参照して説明する。統計情報計算部108は、構造化文書の要素中で発生する全ての語彙に対する頻度情報を計算し、GIDと対応付けて頻度情報を語彙テーブルに含め、語彙統計情報記憶部121に記憶させる。また、統計情報計算部108は語彙テーブルと語彙索引情報とを関連付けて転置索引リストを作成する。
索引情報格納部109は、語彙テーブルと語彙索引情報とを関連付けた転置索引リストを語彙索引記憶部119に記憶させる。図7のようにデータを格納していく。転置索引リスト上に格納される、それぞれの語彙索引情報は、上述で求めた通りであり、これら情報が語彙索引記憶部119に記憶される。語彙テーブルの一例については後に図6を参照して説明する。また、語彙テーブルと語彙索引情報との関係については後に図7を参照して説明する。
制御部110は、格納処理部106の全体の動作を制御するためのものである。
構造化文書データ記憶部118は、構造情報抽出部107で抽出された、格納データに含まれる構造化文書の構造情報に関する情報を記憶する。構造化文書データ記憶部118は、オブジェクトツリーの各ノードに対して、対応するTIDの情報を付加し、これらデータを格納する。構造化文書データ記憶部118は、文書をUNIX(登録商標)のディレクトリ構造のように階層的にツリー構造状に格納している。
語彙索引記憶部119は、語彙テーブルと語彙索引情報とを関連付けた転置索引リストを記憶する。
構造雛型木記憶部120は、予め構造雛型木を格納している。また、構造情報抽出部107によって更新された構造雛型木も記憶する。
語彙統計情報記憶部121は、頻度情報を語彙統計情報として記憶する。
意味ネットワーク記憶部122は、それぞれ、単語と、それと関連する単語を類似度付きで関連付けた意味ネットワークを記憶している。意味ネットワークとは、語彙の間の類似関係をグラフで表現したものであり、類似関係のある語彙と語彙をアークで結び、その語彙間の類似度の値をアークに与えて、語彙間のネットワークを構成しているものである。
検索処理部111は、問合せ解析部112、問合せプラン作成部113、問合せ実行部114、結果生成部115、制御部116を備えている。
問合せ解析部112は、要求処理部105で受け付けられたユーザからの検索要求であるクエリを入力とし、入力したクエリを解析して、問合せグラフを生成する。問合せ解析部112は、問合せグラフに対して、データベース上の構造的な制約条件である構造制約条件を求める。さらに、問合せ解析部112は、クエリの問合せとして最終的に求めることが要求される結果である仮想的な構造情報を入力して、この構造と類似する構造が構造雛型木記憶部120に存在するかどうかを検索し、類似している構造を選択し、意味ネットワーク記憶部122を参照して、この類似している構造の類似度を求める。さらに、類似構造検索部403はこの構造に対応する類似度をスコアリングに反映させる。
問合せプラン作成部113は、クエリ条件グラフを入力として、クエリ中に発生する検索条件を考慮して、構造化文書データベース中に格納されている各種データの組み合わせを作成する。問合せプラン作成部113は、問合せ解析部112の情報を利用して、問合せ実行時の処理コストを見積もり、実際に実行するプランを作成する。問合せプラン作成部113は、問合せ言語構文解析部401で作成された問合せグラフに対して、構造制約条件作成部402と、類似構造検索部403の制約条件を加味して、如何に低処理コストで、処理を実行できるかを調査する。
問合せ実行部114は、プラン作成部405で作成したプラン情報を順次実行して、候補となる集合を作成する。問合せ実行部114は、各候補を処理する処理コストを事前に見積もる。問合せ実行部114は、最終的なスコア値が低くなることが予測され、かつ、処理コストが重い候補の処理を後に回すことを行なうための処理優先度を計算する。問合せ実行部114は、決定された処理の実行の可否に基づいて、処理優先度の高いものから処理を実行する。また、問合せ実行部114は、作成したプランに応じて、処理を繰り返し実行し、最後の処理を実行した後、結果件数をチェックする。
結果生成部115は、検索結果として構造化文書のXMLデータを作成する。その際、結果生成部115は、検索された構造化文書の集合を類似度の高い順からソートしてXML形式で出力する。結果生成部115は、検索結果として上位のものから順に結果として、取得件数分XMLデータを作成する。
制御部116は、検索処理部111の全体の動作を制御するためのものである。
次に、XMLで記述された構造化文書の一例について図2を参照して説明する。XMLは、構造化文書を記述するための代表的な言語である。図2は、XMLで記述された構造化文書の一例として、「特許」情報の例を示したものである。
XMLやSGMLは、文書の構造の表現にタグ(要素とも呼ばれる)が用いられる。タグには、開始タグと終了タグがあり、文書構造情報の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列区切りと、その文字列が構造上どの構成要素に属するのかを明確に記述することができる。文字列はテキストと呼ばれることもある。
開始タグとは、要素名称を記号「<」、「>」で閉じたものであり、終了タグとは要素名称を記号「</」と「>」で閉じたものである。タグに続く構成要素の内容が、文字列または子供の構成要素の繰り返しである。また、開始タグには「<要素名称 属性=“属性値”>」などのように属性情報を設定することができる。また、図2には記述されていないが、「<特許DB></特許DB>」のように文字列を含まない構成要素は、簡易記法として「<特許DB/>」のように表すこともできる。
図2に示した文書は、「特許」タグから始まる要素を文書ルートとし、その子要素として「タイトル」タグ、「発明者リスト」タグ、「発明者」タグ、「効果」タグ、「キーワードリスト」タグ、「キーワード」タグから始まる要素集合が存在する。また、例えば、「タイトル」タグから始まる要素には「構造化文書検索装置」といった、1つの文字列が存在する。一般的に「文書」は複数のタグから構成されており、テキストデータベース等で扱う「文書」とは、これら複数のタグを無視した、文字列値だけの繋がりして扱う場合が多い。
次に、格納処理部106に含まれる、構造情報抽出部107、統計情報計算部108について図3を参照して説明する。
構造情報抽出部107は、構造化文書構文解析部301、構造雛型木照合部302、構造雛型木更新部303、構造化文書データ格納部304を備えている。
統計情報計算部108は、テキスト分割部305、語彙識別子特定部306、関連語彙計算部307を備えている。
構造化文書構文解析部301は、要求処理部105から渡されたテキスト形式である構造化文書を入力し、この構造化文書を構文解析して、DOMのようなオブジェクトツリー形式に展開する。構造化文書構文解析部301は、文書については文書IDを付与し、オブジェクトツリーを構成する各要素に対してユニークな要素IDを付加する。他に、発生位置、要素に対応するTIDも付与する。発生位置は文字列の位置が何文字目であるかを示す。
構造雛型木照合部302は、オブジェクトツリーを走査して、特徴的な構造情報を抽出する。既にデータベース上の構造雛型木記憶部(116)に登録されている場合は、その構造雛型木と、オブジェクトツリーとを照合する。オブジェクトツリーと構造雛型木の一例については後に図5を参照して説明する。
構造雛型木更新部303は、あるタグが同列で重複しているような構造は一つに集約して特徴的な構造として抽出し、それら構造情報を構造雛型木として作成し、更新する。
構造化文書データ格納部304は、先にDOM形式に展開されたノードに対して、それぞれ構造雛型木に対応するTIDを与え、TIDが構造化文書とともに構造化文書データ記憶部118に記憶させる。
テキスト分割部305は、語彙に対する索引を作成するために必要な情報を作成するために、文字列を、オブジェクトツリー上の、文字列に対応する部分の語彙に分割する。具体的には、文字列を入力として、例えば、形態素解析やN−gram方式などで対象となる文字列を複数の語彙に分割する。後に、関連語彙計算部307が、分割した各語彙に対して語彙索引情報を作成する。
統計情報計算部108は、分割した語彙を文字列で管理するのではなく、分割した語彙にユニークなGIDを対応付ける。GIDの項目は語彙テーブルに含まれる。語彙テーブルの一例については後に図6を参照して説明する。また、語彙テーブルと語彙索引情報の関係については後に図7を参照して説明する。
語彙識別子特定部306は、分割した各語彙に、各語彙に対応する識別子を特定し付与する。この識別子としては、その語彙が発生した文書ID、要素識別子(以下、要素IDと称する)、発生位置、その要素に対応するTID、関連GID、関連TIDがある。文書IDや要素IDは、構造化文書構文解析部301が自動的にこれらIDの振り分けを行なう。発生位置は分割した文字列位置が何文字目であるかを示す。発生位置、要素に対応するTIDも構造化文書構文解析部301が求める。関連GID、関連TIDは、次の関連語彙計算部307が求める。
関連語彙計算部307は、分割した各語彙について、基本的には、ある文字列中で最も出現回数が多い語彙のGIDを関連GIDとするが、文字列に含まれる文字数が少ない場合は、探索範囲を拡大して、この探索範囲で出現回数が多い語彙のGIDを関連GIDとする。出現回数の閾値として、予め最低頻度を設定しておき、選択された文字列中で関連語彙を求める際に、最大頻度を持つ語彙の出現回数がその値よりも小さい場合は、その文字列だけで関連語彙を決定せずに、その文字列を基点として、属性値、兄弟要素の文字列、親要素の文字列の順に頻度が閾値を超えるまで、範囲を広げて同様の処理を行なう。なお、最低頻度の閾値は、固定値ではなく対象となる要素サイズに応じて適宜決定しても良い。関連GIDを決定する具体例について後に図8を参照して説明する。
また、関連語彙計算部307は、関連GIDを探索中の文字列の中で、最も多く発生した語彙に対するTIDが関連TIDであるとして計算する。この場合に、ある語彙が、同一要素中に複数回発生する場合は、二つ目以降の語彙の関連GIDとしては、最大頻度を持つGIDではなく、その次の頻度を持つGIDを関連語彙として付加する。こうすることで、文字列中で発生頻度が高い語彙に関しては、複数の関連GIDを付加することができる。関連語彙計算部307は、このようにして、分割した各語彙に対して語彙索引情報を作成する。語彙索引情報の一例については後に図9を参照して説明する。
次に、検索処理部111に含まれる、問合せ解析部112、問合せプラン作成部113、問合せ実行部114について図4を参照して説明する。
問合せ解析部112は、問合せ言語構文解析部401、構造制約条件作成部402、類似構造検索部403を備えている。
問合せプラン作成部113は、クエリ処理コスト見積もり部404、プラン作成部405を備えている。
問合せ実行部114は、処理優先度計算部406、処理実行部407を備えている。
問合せ言語構文解析部401は、要求処理部105から渡された問合せデータ(例えば、クエリ)を構文解析し、解析結果として問合せグラフを作成し、構造化文書検索装置が処理できる形式に変換する。この問合せグラフは、プラン作成部405がクエリのプラン作成を行なう際に必要となる、問合せデータに含まれている要素間の制約関係を示す。構文解析はパージングとも呼ばれ、この解析結果として得られる問合せグラフはクエリグラフとも呼ばれる。問合せ言語構文解析部401が作成する問合せグラフについては後に図10を参照して説明する。
構造制約条件作成部402は、問合せ言語構文解析部401で作成された問合せグラフに対して、データベース上の構造的な制約条件である構造制約条件を求める。構造制約条件は、問合せグラフのアークに対して付与されるものであり、親ノードと子ノードが対応する構造雛型木上のTIDのペア[親TID制約、子TID制約]である。構造制約の親子関係を求めておくことで、構造制約によって、候補となる件数を早期に絞り込むことが可能となる。構造制約条件作成部402の動作の具体例については後に図10を参照して説明する。
類似構造検索部403は、XQueryの問合せとして最終的に求めることが要求される結果である、Return節に記述された複合文書が構成する仮想的な構造情報を入力して、語彙統計情報記憶部121にある頻度情報を参照して、この構造と類似する構造が構造雛型木記憶部120に存在するかどうかを検索し、類似している構造を選択し、意味ネットワーク記憶部122を参照して、この類似している構造の類似度を求める。さらに、類似構造検索部403はこの構造に対応する類似度をスコアリングに反映させる。
ところで、XQueryに代表される、加工型問合せ言語においては、Return節には、データベース上には実際に存在しない、仮想的な要素、属性、文字列などを記述することが可能である。これらの仮想的な要素、属性、文字列などは、ユーザがクエリで自由に記述することができるものである。また、Return節中の、$xと$yなどの仮想的な構造関係などもデータベース上にはないので、このままではスコアリングに反映されない。
しかしながら、これら複合文書によって最終的に作成されるデータ構造は、ユーザが欲しい情報に対する一つの意思表示であるので、スコアリングに反映させるべきである。例えば、<titleList>で結果を纏め上げたとした場合は、その中身としては、<titleList>に関連するような内容であることをユーザは期待している。これらの内容に類似するものを、スコア値として高く設定することによって、精度の高い情報を速く提示できるようになる。このスコア値を構造スコア値と定義する。
ただし、ユーザがクエリとして記述する場合は、タグ名に揺らぎがあったり、構造的に欠落する部分や、余剰な部分なども存在することが多い。なぜならば、ユーザは、データベース中にどういうタグ名がどういう構造で格納されている、などといった情報を一般的には知らないからである。したがって、これらタグ名や構造の揺らぎを吸収するべく、類似構造検索部403は、意味ネットワーク記憶部122を参照して、タグ名などの展開を行ない、厳密ではない構造に対しても類似度付きで検索を可能にする。意味ネットワーク記憶部122の内容の一例については後に図12を参照して説明する。
類似構造検索部403が構造スコア値を求める際には、まず、Return節の出力となる仮想的なデータ構造が実際のデータベース中で類似する部分を、構造雛型木記憶部120に記憶されている構造雛型木上から検索する。この際に、意味ネットワーク記憶部122の内容を用いて、多少のタグ名の揺らぎを吸収した形で検索を行なう。
類似構造検索部403が類似する構造情報を構造雛型木上から見つけた場合は、構造制約条件作成部402で求めた構造制約条件に対して、この時点までに意味ネットワーク上で展開した類似度をそれぞれのTIDごとに付加して、その付加した値を構造スコア値とする。類似構造検索部403が構造スコア値を求める一例については後に図13を参照して説明する。
なお、類似構造検索部403が、Return節の出力構造の構成を事前に解析し、構造雛型木上から、曖昧度を含めて検索することに特徴があり、意味ネットワークの構築方法や精度、及び、構造雛型木上のマッチングアルゴリズムに関しては、既存の技術を用いても構わない。
問合せプラン作成部113は、問合せ言語構文解析部401で作成された問合せグラフに対して、構造制約条件作成部402と、類似構造検索部403の制約条件を加味して、如何に低処理コストで、処理を実行できるかを調査することが主な役目である。
クエリ処理コスト見積もり部404は、問合せ言語構文解析部401が作成した問合せグラフに関して、どの順番で処理を実行するかを決定するための処理コスト計算を行なう。クエリ処理コスト見積もり部404は、問合せグラフに関しては、一般的には語彙索引などの索引によって先に候補集合を絞り込んだ後に上流展開をする場合が多いが、ここでは、語彙統計情報記憶部121に格納された頻度情報から語彙の出現頻度を予め見積もった上で処理コストを決定する。クエリ処理コスト見積もり部404は、頻度情報の他にも、CPU処理コストやディスクアクセス量、結合処理の少なさ、メモリ量制限、索引の有無など、様々な統計情報などを利用して、処理高速化を計る。
プラン作成部405は、クエリ処理コスト見積もり部404が見積もった処理コストを基に、問合せグラフの処理順序を決定する。一般的に、これらプランは複数候補が存在するが、この中でも、処理コストの低くなるものを一つ選んで実行する。プラン作成部405は、あくまで処理コストなどから事前に問合せグラフに対する処理順序を決定するだけで、実際に、そのプランに基づいて問合せ処理を実行するのが、問合せ実行部114である。
問合せ実行部114では、プラン作成部405で作成したプラン情報を順次実行して、候補となる集合を作成する。プランを構成する実際の各処理のことを、オペレータと定義する。オペレータは、例えば、語彙索引検索オペレータや構造照合オペレータなどがある。オペレータは、問合せグラフにおけるノードから別のノードに移動する際に、アークを制約条件としてフィルタリングを実施し、候補集合を作成していくことに対応する。探索途中に、候補集合をできるだけ増やさないように、また、できるだけ重い処理を実行しないようにすることが望ましい。プランとそのプランに含まれるオペレータの例について後に図14を参照して説明する。
問合せ実行部114においては、処理優先度計算部406、処理実行部407の繰り返しでオペレータを逐次実行していく。プラン作成部405が作成したプランの処理が終了した後に結果件数チェック部408が結果件数をチェックする。
処理優先度計算部406は、各候補を処理する処理コストを事前に見積もる。処理優先度計算部406は、最終的なスコア値が低くなることが予測され、かつ、処理コストが重い候補の処理を後に回すことを行なうための処理優先度を計算する。
一般的に、処理コストが高くなる候補、というのは事前に分かる。その顕著な例が構造照合オペレータ内の処理である。この場合、処理優先度計算部406は、構造化文書データ記憶部118にアクセスし、そこに記憶されている構造情報(親子兄弟関係など)を調査する。先に述べた上流展開はこれら構造照合オペレータのことである。構造照合オペレータには他に後述する下流展開などがある。構造照合オペレータによって、階層が深かったり、巨大文書に対する構造照合を行なう場合の処理コストは高くなることが予想される。
これら重くなる処理を含むオペレータを如何に回避できるかが、問合せプラン作成部113において重要になってくるが、プランはあくまで見積もり処理コストを利用しているので、どうしても、全ての候補の処理コストまで見越したものにはならない。そのため、結局は、処理コストの高い処理を実行せざるを得ない場合がある。
本実施形態では、構造化文書に対するスコアリング方式を考えているので、ユーザが所望するのは、スコア値が高いものだけで、スコア値が低いものは、結局は利用されない場合も多い。これを利用して、処理コストが高い候補は処理的に後回しにするという方法が考えられる。
しかし、処理コストが高いことと、その候補がユーザにとって所望するデータであるかどうかは無関係であり、処理コストが高くても上位にスコアリングされて欲しい情報に関しては、先に処理する必要があり、ユーザが所望せず、かつ処理コストが高い候補集合だけを効率良く処理することが重要となってくる。
処理優先度計算部406は、各候補を処理する際に、それぞれに対して、処理優先度を計算する。処理優先度は、その処理を実際に実行するために必要と予測される処理コストの大きさに反比例して対応している処理コスト値と、構造スコア値と、語彙スコア値を掛け合わせたものとする。この処理優先度計算方式については、掛け算にこだわらす、「処理コスト値」、「構造スコア値」、「語彙スコア値」の3つをパラメータとして一意に決定される関数としても良い。処理優先度計算部406の動作の詳細は後に図15を参照して説明する。
処理優先度計算部406は、語彙索引情報から構造スコア値と語彙スコア値と処理コストとにより逐次的に処理優先度を計算し、処理の途中(最終結果ではないプラン)の段階でその値に従って実行の可否を決定する。
処理実行部407は、処理優先度計算部406で決定された処理の実行の可否に基づいて、処理優先度の高いものから処理を実行する。
結果件数チェック部408は、プラン作成部405が作成したプランに応じて、処理優先度計算部406と処理実行部407を繰り返し実行し、最後のオペレータを実行した後、結果件数をチェックする。結果件数チェック部408は、問合せ処理の結果として、ユーザが所望する取得件数以下である場合は、処理していないオペレータから再び処理を再実行することで、結果的に取得所望件数になるまで処理を繰り返し行わせる。処理実行部407および結果件数チェック部408の具体的な動作については後に図17を参照して説明する。
次に、オブジェクトツリーと構造雛型木の一例について図5を参照して説明する。
図5の上方に示したツリーがオブジェクトツリー501の一例であり、図5の下方に示したツリーが構造雛型木502の一例である。構造雛型木照合部302は、オブジェクトツリー501を走査して、構造情報を抽出する。図5の例では、例えば、オブジェクトツリー501には発明者タグが同列で重複する。構造雛型木更新部303は、このような重複する構造は一つに集約して特徴的な構造として抽出し、構造雛型木502に示すようにそれら構造情報を構造雛型木として作成し、逐次、情報を更新する。なお、構造雛型木502に示したTID1、TID2、…、TID10は、構造雛型木識別子の例である。
次に、語彙テーブルの一例について図6を参照して説明する。
語彙テーブルには、語彙索引情報として、GID、テキスト分割部305で分割された文字列(Gram)、データベース中での総発生頻出情報、対応する転置索引リストの格納アドレス(転置索引リスト番号)などの情報を記録している。
次に、語彙テーブルと語彙索引情報の関係について図7を参照して説明する。
語彙テーブルに含まれるGIDごとに、転置索引リストが存在する。転置索引リストは、GIDごとに総発生頻出情報に記述されている頻度の数だけ語彙索引情報が存在する。図7の例では、GID=2にはリスト番号37の転置索引リストが対応していて、この転置索引リストは、頻度63に対応して63個の語彙索引情報を含んでいる。
次に、関連語彙計算部307が関連GIDを決定する場合の例について図8を参照して説明する。
関連語彙計算部307が<姓>鈴木</姓>の文字列ノードに対して索引付けを行なう場合において、最低頻度を仮に3と設定した場合の例を示す。<姓>鈴木</姓>の範囲806では、テーブル801に示すように、「鈴木」の範囲内頻度が1であるので最低頻度3に到達しない。したがって、関連語彙計算部307は頻度計算を行う範囲を拡大する。拡大は、まず、「鈴木」の兄弟要素である、<名>の文字列をマージした「仮想文字列」を対象として頻度情報を再計算する。この拡大処理を属性、子、兄弟、親の順に繰り返す。図8の例では、関連語彙計算部307が頻度を算出する範囲を範囲805まで拡大した時点で、<キーワード>に含まれる「XML」の頻度をカウントすると、807,808,809の3箇所にXMLが存在しているので、最低閾値である「3」になる。範囲が拡大したこの時点で、テーブル801はテーブル802のように更新される。この結果、この例の場合は、「鈴木」という語彙は、GID2である「XML」が関連語彙として語彙索引情報に格納されることになる。すなわち、「鈴木」の関連GIDはGID2である。また、「鈴木」の関連TIDは、「XML」に対するTIDであるので、図5の構造雛型木502により、TID5となる。また、例えば、他の文字列よりも先に「XML」が最低頻度に到達した場合に「XML」を「XML」の関連語彙とするのかどうかは設計事項であるので、どちらかに決めておけばよい。
次に、語彙索引情報の一例について図9を参照して説明する。図9は、<概略>タグの文字列を分割して得た語彙である「XML」に対する語彙索引情報として、最低頻度を2と設定した場合の例について説明したものである。
この場合は、<概略>タグ中には「XML」は2度発生することになる。関連語彙計算部307が、この「XML」に対する関連語彙を探す場合、範囲904では最低頻度に到達する文字列がないので、範囲を拡大する。関連語彙計算部307は、<タイトル>まで拡大すると、最低頻度に到達する文字列「文書」、「検索」の2つを探し出すことができる。すると、XMLの関連語彙は「文書」、「検索」の2つであり、それぞれのGIDはテーブル901により「51」、「87」と求まる。そして、語彙索引情報は、図9のテーブル902に示したように、「文書」、「検索」に対応して2つあり、それぞれ文書ID、要素ID、自TID、オフセット、GID、関連TIDの情報を含んでいる。
次に、問合せ言語構文解析部401が作成する問合せグラフ(=クエリグラフ)について図10を参照して説明する。
クエリ1001が検索部104から与えられると、問合せ言語構文解析部401はクエリ1001をパージングし、問合せグラフ1002を得る。図10の問合せグラフ1002におけるノードが候補集合、アークが制約条件に対応し、例えば、丸2と丸3は構造制約条件/タイトルという制約条件があり、丸3と丸4はcontains(text(),”構造化文書”)という語彙と構造に関する制約条件があることを示している。
このような問合せグラフ1002を作成するクエリの最適化の手法によって、構造化文書検索装置がこれらノードを如何に効率良く探索することができるかが決まる。例えば、contains(text(),”構造化文書”)では、「構造化文書」を含む文字列集合は、予め格納時に索引付けされているので、この索引を先に利用すること、つまり、丸4から丸3へ辿るようにプランを作成することで処理の高速化が可能となる。逆に、丸3から丸4に辿る場合は、XML文書をルートから順に構造照合しながら検索することになり、構造化文書検索装置は処理コストが重い、と判断したりする。ここで、下流から上流へ辿って候補を絞り込むことを上流展開、上流から下流に辿って候補を絞り込むことを下流展開と定義する。例えば、丸4から丸3へ辿って候補を絞り込むことは上流展開であり、丸3から丸4に辿って候補を絞り込みことは下流展開である。
このように、問合せ言語構文解析部401は、問合せプラン作成部113がクエリのプラン作成を行なう際に必要となる、問合せデータに含まれている要素間の制約関係を作成する。
次に、構造制約条件作成部402の動作について図10を参照して説明する。
丸2と丸3の構造制約は、図10の構造雛型木1003では、それぞれTID4とTID6に対応する。構造制約条件作成部402は、これらをペアとして、[TID4,TID6]をこの丸2と丸3の構造制約として保持しておく。このように、構造制約の親子関係を求めておくことで、構造制約によって、候補となる件数を早期に絞り込むことが可能となる。
なお、構造化文書検索装置が丸2から丸3へ探索を行なう場合(下流展開)、処理優先度計算部406が各候補に対して構造化文書データ記憶部118にアクセスして、それぞれの子要素を取得し、取得した要素のTIDの値と、子TID制約であるTID値を比較して、異なる場合は、その時点で候補から外すという処理を行なう。逆に、構造化文書検索装置が丸3から丸2へ探索を行なう場合(上流展開)は、処理優先度計算部406が各候補に対して親要素を取得し、親TID制約の値と比較するという処理を行なう。同様に、ID属性(/@idと表記する)に対しては、[TID4,TID5]が事前に解析される。
次に、クエリの一例について図11を参照して説明する。
XQueryに代表される、加工型問合せ言語においては、Return節には、データベース上には実際に存在しない、仮想的な要素、属性、文字列などを記述することが可能である。図11のクエリでは、<bookList>,<著者>,<名前>や/bookList/著者/名前を持つ構造などは、ユーザがクエリで自由に記述したものであり、データベース上に存在しない仮想データである。また、Return節中の、$xと$yなどの仮想的な構造関係などもデータベース上にはないため、$xが最終的に出力する<book>タグと、$yが最終的に出力する<paper>タグの関係もデータベース中には存在しない。
しかしながら、これら複合文書によって最終的に作成されるデータ構造は、ユーザが欲しい情報に対する一つの意思表示である。例えば、<titleList>で結果を纏め上げたとした場合は、その中身としては、<titleList>に関連するような内容であることをユーザは期待している。これら内容に類似するものを、スコア値として高く設定することによって、精度の高い情報を速く提示できるようになる。
次に、意味ネットワーク記憶部122の内容の一例について図12を参照して説明する。
意味ネットワークは、単語と、この単語に関連する単語とを類似度付きで関連付けたものである。意味ネットワークは、語彙の間の類似関係をグラフで表現したものであり、類似関係のある語彙と語彙をアークで結び、その語彙間の類似度の値をアークに与えて、語彙間のネットワークを構成しているものである。図12の例では、例えば、「構造化文書」は、「構造文書」、「XML」、「SGML」とそれぞれ類似度0.5、類似度0.8、類似度0.8で関連づけられている。
次に、類似構造検索部403が構造スコア値を求める場合について図13を参照して具体的に説明する。図13の例では、構造化文書のXMLデータ1301が既にデータベースに格納されている状況を考える。この場合、構造雛型木を図13に示した第1構造雛型木1308とする。類似構造検索部403は、第1クエリ1304を処理する場合には、まず、Return節に記述された<TitleList>タグと、$xが最終的に出力する<name>タグで構成される複合文書の構造に類似する構造を構造雛型木上から検索する。この際に、類似構造検索部403は意味ネットワークを用いて、タグ名に対する揺らぎを吸収した形で検索を行なう。
この場合、類似構造検索部403は、意味ネットワーク1309上に、TitleListとtitleが類似度0.5の関係があるとすれば、<titleList><name>の関係と、<title><name>の関係(/title/name)が類似度0.5であると見なす。ここで、/title/nameの関係は第1構造雛型木1308上では、TID2,TID3に相当するので、類似構造検索部403はこれらのTIDを持つ候補の構造スコア値を高く設定する。第1構造雛型木1308上で、<name>を表す構造として、TID6もあるが、こちらは、<author>タグの<name>(/authors/author/name)でありので、類似構造検索部403はこちらの優先度を低くする。
この場合は、類似構造検索部403は、例えば、TID3に対しては構造スコア値=0.5,TID6に対しては構造スコア値=0.1とする。ここで、TID6のように、類似度がないと判定されたTIDに対してスコア値を0としなかったのは、スコア計算を行なう際に、構造スコア値と掛け算をとる場合があるため、この値を0ではないできるだけ小さい値とした。
なお、構造制約計算時に、$xの構造制約は、[TID1,TID3]及び、[TID1,TID6]である。この制約において、TID3の制約に合致する候補のスコア値を高く設定するので、出力結果としては、$xの構造制約である、TID3<name>Tanaka Theory</name>のほうが先に表示される。
問合せ実行部114で実行されるプランとこのプランに含まれるオペレータの例について図14を参照して説明する。
図14の第1プラン1401は、語彙索引検索オペレータ、構造照合オペレータ、結果生成オペレータという3つのオペレータから構成されるプランの例である。なお、このプランは、一般的な検索パターンの基礎として最も実施されるプランである。プラン作成部405は第2プラン1402のような別のプランも作成するが、問合せ実行部114はこの中で最も処理コストが低いプランである第1プラン1401を選択して実行する。
次に、処理優先度計算部406の動作について図15を参照して説明する。
まず、図4などを参照して上述したように、構造照合する場合の処理コストなどの処理コスト値を計算する(ステップS1501)。この処理コスト値として、[0:1]で正規化した値を用いて処理コストを計算する。例えば、照合のための階層が深い場合や、文書サイズが大きい場合などは、処理コストは高くなると予想され、処理コストが高いほど、処理コスト値は低くなるように処理コスト値を設定する。
構造コストの計算をする(ステップS1502)。具体的には構造スコア値を計算する。構造スコア値は、類似構造検索部403が求め、求め方の詳細は図13を参照して上述した。
次に、複数の語彙索引検索オペレータが、既に処理した候補集合を得ているか否かを判定する(ステップS1503)。例えば、語彙索引検索オペレータなど、語彙索引情報を用いる場合は、入力となる候補集合が存在しない。この候補集合がある場合にはステップS1504に進み、この候補集合がない場合にはステップS1505に進む。
次に、複数の語彙索引検索オペレータを用いた結果をマージする処理(すなわち、結合処理)を行なう必要があるか否かを判定する(ステップS1504)。複数の語彙索引検索オペレータを用いた結果をマージする場合というのは、図11に示した例のような、2つ以上のキーワード(この例では「XML」と「田中」)を条件にした検索をandで結合するような場合であり、一般的に良く使われるクエリの一つである。結合処理を行う必要がある場合にはステップS1506に進み、結合処理を行う必要がない場合にはステップS1505に進む。
ステップS1505では、語彙コストの計算をせずに、処理コストと構造コストの計算結果のみを処理優先度計算に使用することに決め、ステップS1507に進む。
ステップS1507では、処理コスト値と、構造スコア値と、語彙スコア値に基づいて、処理優先度を計算する。例えば、処理コスト値と、構造スコア値と、語彙スコア値を掛け合わせたものを処理優先度とする。語彙スコア値を計算しない場合は、処理コスト値と、構造スコア値とのみに基づいて、処理優先度を計算する。この場合は例えば、処理コスト値と、構造スコア値とを掛け合わせたものを処理優先度とする。
ステップS1506では、語彙コストを計算する。具体的には語彙スコア値を計算する。この場合は、図15の条件を通過しているので、対象として必ず2つ以上の語彙索引検索オペレータを実行した候補集合が存在する。
本実施形態では、統計情報計算部108が語彙索引を作成する際に、関連度の高いGID(関連GID)と、そのGIDが最も多く発生する構造のTID(関連TID)を算出し、索引情報格納部109が関連GIDと関連TIDを語彙索引記憶部119に記憶させてある。語彙スコア値を計算する際に、2つ以上の候補集合内で共通する関連GIDと関連TIDが存在するような候補が存在すれば、その候補に対してはスコア値を高く設定する。この際に、関連GIDや関連TIDなどは意味ネットワークを用いて展開して、類似度を含ませても良い。
次に、語彙スコア値を求める場合の具体的な例について図16を参照して説明する。
図16の例は、語彙索引検索オペレータに候補集合リストより生成された候補集合が2つあり、これらに対して語彙スコア値を求める場合である。第1候補集合リストにおける候補1601においては、関連GID=5,関連TID=7に関しては第2候補集合リストに完全に共通に存在するので、これらに対する語彙スコア値は高く設定する。この例では語彙スコア値は1.0に設定されている。
候補1602においては、GID=5だけ一致するが、関連TID=2であり、この部分は一致しない。よって、候補1601よりは語彙スコア値を低く設定する。この例では語彙スコア値は0.5に設定されている。候補1603においては、関連GIDすら一致しないので、さらに低い語彙スコア値を設定する。この例では語彙スコア値は0.1に設定されている。同様に、候補集合リスト2についても実施する。ここでは、候補1601の語彙スコアを1.0、候補1602の語彙スコアを0.5、候補1603の語彙スコア値を0.1と設定したが、これらの計算手法は、関連GID,関連TIDをパラメータとして算出することが重要であって、他の手法を用いても良い。
意味ネットワークを用いた場合は、関連GIDに対応する語彙を展開した語彙に関して同様に、2つの候補集合間で存在するならば、その類似度とともに、語彙スコア値に反映させても良い。以上で、処理優先度を求めるために必要な情報が揃ったことになる。これらを基に処理優先度を計算し(ステップS1507)、処理実行の有無を決定する。
次に、処理実行部407および結果件数チェック部408の具体的な動作について図17を参照して説明する。
図17は、処理の優先度に従った、処理手順を表したものである。この場合は、5つの候補集合に関して、処理優先度計算部406がそれぞれ処理優先度を求め、優先度が高い2つの候補を優先的に処理することで高速化を計っている。この例では、処理優先度計算部406が得るテーブル1703に示したように、第2候補1704と第5候補1705の優先度が高い。
図17に示したように、プラン1702に応じて、処理優先度計算部406と処理実行部407を繰り返し実行し、最後のオペレータを実行した後、結果件数チェック部408において、結果件数をチェックする。結果件数チェック部408は、問合せ処理の結果として、ユーザが所望する取得件数以下であるかどうかを判定して、取得件数以下である場合は、処理実行部407が処理していないオペレータから再び処理を再実行することで、結果的に取得所望件数になるまで繰り返す。
次に、構造化文書記憶装置と構造化文書検索装置の具体例について説明する。
以下では、図18に示すように、構造化文書記憶装置が3つの登録文書(第1文書1802,第2文書1803,第3文書1804)を記憶していて、構造化文書検索装置は、クエリとして、XQuery(クエリA1801)を入力するとする。
(構造化文書記憶装置の具体例)
まず、第1文書1802を登録する場合について説明する。
まず、構造情報抽出部107の処理から始まる。構造化文書構文解析部301が第1文書1802の文書構造を解析した後、構造雛型木照合部302が構造雛型木記憶部120を参照して構造雛型木を照合する。構造化文書構文解析部301は、解析を行なったオブジェクトツリーの各ノードに対して、対応するTIDの情報を付加し、構造化文書データ記憶部118にこれらデータを格納する。この際に、文書IDや要素IDなどもシステムが発行されるが、ここでは文書ID=3とする。構造雛型木記憶部120に既に図19に示す構造雛型木1901があるとすると、構造雛型木照合部302がTID3を基点して構造情報を重ね合わせると、全ての構造が重なりあう形になることがわかる。したがって、この例では、新たに構造雛型木におけるノードが増えることはないので、構造雛型木更新部303が構造雛型木を新たに更新する必要はない。
次に、統計情報計算部108の処理に移る。テキスト分割部305が各ノードの文字列を分割して索引付けを行なう。ここの例として、<姓>の文字列「田中」について索引付けを行なう場合について図20を参照して説明する。
テキスト分割部305が、文字列を、オブジェクトツリー上の、文字列に対応する部分の語彙に分割し、語彙識別子特定部306が、語彙識別子としては、その語彙が発生した文書ID、要素ID、発生位置である位置情報、その要素に対応するTID(自TID)を求め、関連語彙計算部307が関連GIDを求める。ここでは、最低発生頻度として4が予め設定されていると仮定して話を進める。<姓>の文字列値には、「田中」という文字しか存在しないので、基点となる<姓>の部分の兄弟要素である、次郎に対する頻度情報も併せて考える。この段階でも最大頻度を持つ語彙が、最低発生頻度の4に到達していないことから、探索範囲を親要素まで拡大し、<発明者>に対しても同様の処理を行なう。これを繰り返し、/タイトル/名,/概略,キーワードリスト/キーワードと要素内の文字列を順に頻度をカウントしていく。
キーワードリスト/キーワードの時点で、図20のテーブル2001のXMLの項目2002に示したように、「XML」という語彙の頻度が4回に到達するので、これを「田中」という語彙に対する関連GIDとする。関連TIDは、このGIDが最も発生する要素、この例では、<概略>タグに対応するTID15とする。このようにして、統計情報計算部108は、図20の語彙索引情報2003を得る。同様に、<概略>文字列における、「XML」に対する索引付けの例も図20に示してある。この場合は、語彙索引情報は語彙索引情報2006と語彙索引情報2007の2つになる。
この段階で語彙索引情報を全て求めたので、これらを語彙索引情報として、語彙索引記憶部119に格納する。なお、新規に発生した語彙であるならば、改めて転置索引リストを作成することになる。
同様の手順で、論文一式(TID18)の下に、第3文書1804を登録した場合の、構造情報を図21に示す。すなわち、構造化文書構文解析部301が第3文書1804の文書構造を解析した後、構造雛型木照合部302が構造雛型木記憶部120を参照して構造雛型木を照合する。構造化文書構文解析部301は、解析を行なったオブジェクトツリーの各ノードに対して、対応するTIDの情報を付加し、構造化文書データ記憶部118にこれらデータを格納する。構造雛型木記憶部120に図21の右側に示す構造雛型木(TID19の<論文>以下の構造雛型木)がないとすると、新たに構造情報が発生したと見なせるので、構造雛型木更新部303は<詳細情報>以下の構造を改めて構造雛型木を更新する。
(構造化文書検索装置の具体例)
検索する問合せ言語(クエリ)は、図18に示したクエリAである。まず、問合せ解析部112の処理から始まる。問合せ言語構文解析部401が問合せ構文解析を行い、クエリを構文解析し、問合せグラフを作成する。この例では、問合せ言語構文解析部401は図22に示す問合せグラフ2201を作成する。
次に、構造制約条件作成部402が構造制約条件を求める。この例では、$xに関しては//名/text()の制約が付加されているので、これを構造雛型木から合致する構造情報を検索する。図19の構造雛型木1901を参照すれば、[TID6,TID7]と[TID12,TID13]の2つがこれらの制約にあたることがわかる。
次に、類似構造検索部403が構造スコア値を計算する。まず出力となる、Return節に着目する。図18のクエリA1801を参照する。「著者リスト」はデータベース上に実データとして存在しないタグ名であるが、この例では、類似構造検索部403が意味ネットワーク記憶部122を検索して、図23のように、「著者リスト」は「発明者」と類似度0.8と合致することが分かる。つまり、$xに着目すると、/特許/発明者リスト/発明者/名という構造が、「著者リスト」に関与する構造と高い類似度を持つ。よって、構造雛型木上で、/特許/発明者リスト/発明者/名に類似する構造を検索した場合、TID13が相当するために、これを類似構造として、この類似度0.8をTID13の構造スコア値の基準値とする。
先ほど求めた構造制約条件として、[TID12,TID13]と[TID6,TID7]とを求めたが、最初のほうのTID13がこの場合に合致するので、[TID12,TID13]に関しては先ほど求めた類似度0.8を構造スコア値とする。類似構造検索部403は、[TID6,TID7]に関しては類似度からは判別できないので、この場合は構造スコア値を低く設定する。ここでは、構造スコア値は0.5としておく。構造スコア値は、一致しない場合でも0としないのは、今回は処理優先度を「処理コスト値×構造スコア値×語彙スコア値」という風に掛け算で設定したからで、例えば、語彙スコアなどの値を有効するためにも0でない値を設定しておく。以上より、この場合、TID13の構造スコア値は0.8,TID7の構造スコア値は0.5となる。
次に、クエリ処理コスト見積もり部404において、処理コスト値計算を行い、プラン作成部405が最適なプランを作成する。ここでは、プラン作成部405が作成した検索プランを図24に示す。このプランでは、図24に示したオペレータ番号2401〜2406までをこの順にオペレータ処理を実行していく。$x(田中)、$y(一郎)ごとに語彙索引検索オペレータを実行し(2401、2402)、その後、それぞれ上流展開オペレータにより構造照合を行なった上(2403、2404)で、それぞれの結果を結合する結果結合オペレータを実施し(2405)、最終的な結果を生成する結果生成オペレータを行う(2406)、というのがプランの一連の流れである。ここまでで問合せプラン作成部113がプランまで作成したので、このプランに従って、問合せ実行部114が実際の処理(オペレータ)を実行する。
以下、処理実行部407が行う各オペレータの処理について説明する。まず、「田中」を含む語彙索引検索オペレータについて説明する。語彙索引検索オペレータは、「田中」などの語彙をキーとして、合致する語彙索引情報を転置索引リスト上から検索する、という手順を行う。この際に、予め構造制約として付加したTID情報と、問合せ解析部112で求めた構造制約から得た構造制約情報とを比較して、TIDが合致しない候補集合を省く、といった処理を行なう。
上述したように構造制約条件作成部402が求めた構造制約条件により、$xの制約に関しては、TIDの集合として、[TID6,TID7]と[TID12,TID13]がある。後に上流展開を行なうので、必要な構造制約は、ペアの後者のほうであり、この場合は、{TID7,TID13}である。
図25に示した例では、第1候補2501はクエリから得た構造制約情報に一致するものがないので、この段階で候補から省く(フィルタリングと呼ぶ)が、第2候補2502に関してはTID7が構造制約条件として一致するので、この値は候補として残す。他に残る候補は、TID13を語彙索引情報として有する第3候補2503だけである。すなわち、「田中」の語彙索引として、5件の語彙索引情報がリスト上に存在するが、このうち、{TID7,TID13}に合致する、第2候補及び第3候補だけが候補として残る。
最初に行う語彙索引検索オペレータでは、図15のフローチャートにしたがうとステップS1503で「NO」となるので語彙スコア値は考慮する必要はない。語彙スコア値を計算する必要があるオペレータは、上流展開オペレータや、下流展開オペレータなど、既に候補集合がある場合に、次の候補集合に移る場合にのみに計算する必要がある場合がある。
$yの語彙索引検索オペレータについても同様である。この場合の構造制約は、上述した$xの場合と同様に計算すると、図21の2102、2103に対応して{TID26,TID37}となる。図26に示すように、この場合は、転置索引リスト上には5つの候補が存在するが、全ての候補が、構造制約を満たすので、全ての候補を候補として残す。
次に、上流展開オペレータの処理について説明する。上流展開オペレータは、前候補集合が存在するので、各候補に対して語彙スコア値を計算した上で、処理優先度の計算を行い、優先度の高い所定数の候補を優先的に処理する。
図25では、第2候補と第3候補の2件の候補が残っているが、この2件に対して、上流展開を実施するかどうかを決定する。処理優先度を求めるために既に類似構造検索部403で得られている構造スコア値を参照する。構造スコア値は、図25の例では、2番目の候補はTID7であり、この候補に対する構造スコア値は0.5(デフォルト値)である。3番目の候補はTID13であり、この候補に対する構造スコア値は0.8である。
図24に示した上流展開オペレータ2404についての構造スコア値を説明の都合上先に行なう。この場合は、構造制約として、{TID26,TID37}が得られるが、いずれも、類似構造検索部403で求めたTIDと合致しないので、デフォルト値である0.5を構造スコア値とする。
次に、個別の処理コスト値を求める。処理コスト値の求め方は、オペレータごとに様々な計算方法があっても良い。ここでは、各候補に対して、2番目のオペレータである上流展開の処理コスト値を考慮して計算する。この場合に、候補が持っているTIDと構造雛型木上のTIDを比較して、構造化文書データ記憶部118に実際にアクセスして構造情報を照合しなくても、構造雛型木記憶部120に記憶されている構造雛型木と照合して、おおよそにかかる処理時間を見積もることができる。構造照合オペレータの場合は、処理コスト値=1/(構造照合を行なう段数)で見積もる。
図25の候補集合より、1番目の候補の構造情報はTID7であり、この構造制約は、[TID6,TID7]である。つまり、TID7から上流展開して、TID6に合致するような構造照合処理を行なう、ということである。構造雛型木上で、これらTID6とTID7の段数は1段であるので、この場合の処理コスト値は1/1=1となる。2番目の候補(構造情報がTID13)も同様に処理コスト値は1となる。
図24の上流展開オペレータ2404の場合は、構造制約が{TID26,TID37}であるので、これらに対応する構造雛型木上のノードから、{TID25,TID35}に到達するまでの処理コスト値を構造雛型木上で計算する。この場合、図27に示したように、TID26に関しては1段、TID35に関しては2段必要なので、TID26に対する処理コスト値として1/1=1を、TID35に対する処理コスト値としては、1/2=0.5として計算する。
次に、語彙スコア値を求める。図15より、語彙スコア値を求めるためには、ステップS1504の語彙索引検索オペレータ同士の結合処理が行なわれること、が条件となる。図24の例では、結果結合オペレータ2405がそれにあたるので、この段階で語彙スコア値を計算する。この際に、格納時に索引に付加しておいた、関連語彙GIDと関連TIDを用いる。
図28は、上流展開オペレータを行なう際の候補集合である。上述したように、図24の語彙索引検索オペレータ2401から2つの候補が、語彙索引検索オペレータ2402から5つの候補が発生しており、これらをまとめて語彙索引情報および処理コスト値、構造スコア値、以下で求める語彙スコア値、これらの値から求まる処理優先度を示したものが図28である。なお、これまでの説明において、処理コスト値及び構造スコア値は既に求まっており、現時点は語彙スコア値を計算する段階である。
ここでは、2つのリスト間で<関連GID,関連TID>が共通するものがあるかどうかを照合する。共通するものがあった場合は、語彙スコア値を高く、そうでなければ語彙スコア値を低く設定する。この際に、関連GIDや関連TIDなどに対しても、意味ネットワークによりN段展開しておく(類義語展開と呼ぶ)ことで、厳密ではなく、曖昧性を残した形で検索することが可能となる。ここでは、N=1とした1段展開までを行なうことにする。
語彙スコア値はここでは以下のルールに従って設定することにする。
A.関連GID,関連TIDが共に一致するようであれば語彙スコア値を1に設定
B.関連GID,関連TIDがどちらも一致しないようであれば語彙スコア値を0.5に設定
C.関連GIDだけ一致し、関連TIDが異なるものがあれば、語彙スコア値を0.6に設定
D.関連GID,関連TIDがそれぞれ類義語展開によって展開された値によって一致した場合は、その類似度を語彙スコア値とする。ただし、この場合の語彙スコア値は、C.の語彙スコア値0.6を下回った場合は0.5を下限値とする。
語彙スコア値を求める一例として図28の第4候補2602について考察する。この場合は、関連GID=2、関連TID=29である。関連GID=2,関連TID=29に完全に合致するものは$xの候補集合中には存在しないが、図21を参照するとこの関連TIDは「概要」というタグ名に対応することがわかる。図29の意味ネットワークを参照すれば、「概要」は「概略」という名称と類似度0.8で合致する。よって、ここでは、類似度展開は0.8となり、これを語彙スコア値とする。
次に、第5候補2603の場合を考える。この場合は、関連GID=2,関連TID=12である。関連TIDに関しては1段だけ意味ネットワークを展開しても合致するものがないので、類義語展開によって語彙スコア値は決定されない。関連GIDだけが一致するので、この場合は、0.6という語彙スコア値を与える。
また、第6候補の場合は、関連GID及び関連TIDともに合致するものが無いので、0.5を語彙スコアとして設定する。
以上のような語彙スコア値の求め方は、語彙スコア値に依存してこれら候補の優劣を付けることができればよく、その値をどう設定するかは様々な方法がある。
このように、処理優先度計算部406が候補集合となる両者のリストの関連GID,関連TIDを比較しつつ、各候補に対して語彙スコア値を設定していく。処理コスト、構造スコア値、語彙スコア値が求まれば、処理優先度計算部406はそれらを掛け合わせて、最終的な処理優先度を計算する。これらも図28に示した。ここで、件数として、上位2件ずつ選択した場合は、処理優先度計算部406は$xに関する候補集合からは第1候補及び第2候補を、$yに関しては第4候補及び第6候補を候補として選択する。そして、処理実行部407がこれらの選択された候補を先に処理する。
処理優先度を求めた後、選択された候補に対してだけ実際の上流展開処理を行なう。この場合は、$xに関する候補集合からは、第1候補及び第2候補を、$yに関しては、第4候補及び第6候補が処理優先度として高いので、これら候補に対して先に構造照合処理を実行する。最後に結果結合オペレータにおいて、{第1候補,第2候補}の候補集合と、{第4候補,第5候補}の候補集合について結合処理を行なう。先ほどまでの処理でスコア値が低くなると予想される候補を除いているので結合処理コストも従来に比べて削減できる。
以上のオペレータの実行処理によって得られる検索結果の例について図30を参照して説明する。図30の例では、検索結果3001として3件を表示している。このように、<Return>節の中に複数の変数を記述し、複合文書を作成する場合にも適切なスコアリングが行なうことが可能となり、かつ、スコア値が低く処理コストが高い候補の処理を後回しにすることで、高速性も維持することができる。
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の構造化文書記憶装置、構造化文書検索装置、および構造化文書システムによる効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RWなど)、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の構造化文書記憶装置、構造化文書検索装置、および構造化文書システムと同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーションシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の実施形態に係る構造化文書記憶装置および構造化文書検索装置のブロック図。 構造化文書データの一例を示した図。 図1の格納処理部のブロック図。 図1の検索処理部のブロック図。 オブジェクトツリーと構造雛型木の一例を示す図。 語彙テーブルを示す図。 語彙テーブル、転置索引リスト、語彙索引情報の関係を示した図 図3の関連語彙計算部が関連GIDと関連TIDを求めることを説明するための図 語彙索引情報の一例を示す図。 図4の問合せ言語構文解析部が作成する問合せグラフを説明するための図。 図1の検索処理部が受け付ける、複数文書から構成されるXQueryの一例を示す図。 図1の意味ネットワーク記憶部の内容を示す図。 図4の類似構造検索部が構造スコア値を求める手法を示す図。 図1の問合せ実行部が実行する問合せ処理プランの一例を示す図。 図4の処理優先度計算部の動作の一例を示すフローチャート。 図4の処理優先度計算部が求める語彙スコア値を求める手法を説明するための図。 図4の処理実行部および結果件数チェック部の動作の一例を説明するための図。 図1の構造化文書記憶装置が記憶している文書の一例と、図1の構造化文書検索装置が受け付けるXQueryの一例を示す図。 図18の例に対する構造雛型木を示す図。 索引付けの具体的な手法の一例を説明するための図。 図19の構造雛型木に新たな構造雛型木を追加する場合を示す図。 図18のXQueryに対する問合せグラフを示す図。 図18の例に対して設定されている意味ネットワークを示す図。 図18のXQueryに対するプランの概要を示す図。 $xに関する転置索引リスト集合に含まれる複数の候補を示す図。 $yに関する転置索引リスト集合に含まれる複数の候補を示す図。 構造照合における処理コスト見積もりを説明するための一例を示す図。 処理優先度を説明するための図 $x, $yの語彙スコア値に対する処理方法を説明するための図。 スコアリングを考慮した検索結果を示す図。
符号の説明
101,102…入力部、103…登録部、104…検索部、105…要求処理部、106…格納処理部、107…構造情報抽出部、108…統計情報計算部、109…索引情報格納部、110…制御部、111…検索処理部、112…問合せ解析部、113…問合せプラン作成部、114…問合せ実行部、115…結果生成部、116…制御部、117…データベース、118…構造化文書データ記憶部、119…語彙索引記憶部、120…構造雛型木記憶部、121…語彙統計情報記憶部、122…意味ネットワーク記憶部、301…構造化文書構文解析部、302…構造雛型木照合部、303…構造雛型木更新部、304…構造化文書データ格納部、305…テキスト分割部、06…語彙識別子特定部、307…関連語彙計算部、401…問合せ言語構文解析部、402…構造制約条件作成部、403…類似構造検索部、404…クエリ処理コスト見積もり部、405…プラン作成部、406…処理優先度計算部、407…処理実行部、408…結果件数チェック部、501…オブジェクトツリー、502、1003、1308、1901…構造雛型木、1001…クエリ、1002…問合せグラフ、1301…XMLデータ、1304…第1クエリ、1309…意味ネットワーク、1401…第1プラン、1402…第2プラン、2003、2006、2007…語彙索引情報、2401、2402…語彙索引検索オペレータ、2404…上流展開オペレータ、2405…結果結合オペレータ

Claims (16)

  1. 1つの構造化文書を取得する取得手段と、
    前記構造化文書を解析する構造情報解析手段と、
    構造化文書の典型的な構造を示す構造雛型木を予め記憶している構造雛型木記憶手段と、
    前記構造雛型木を前記解析された構造化文書に合致するように更新する更新手段と、
    前記1つの構造化文書を複数の語彙に分割する分割手段と、
    1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出する頻度情報算出手段と、
    前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の語彙が存在するまで前記範囲を拡大する拡大手段と、
    前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与する関連語彙識別子付与手段と、
    前記語彙ごとに前記関連語彙識別子を記憶している関連語彙識別子記憶手段と、
    前記構造雛型木の各ノードに構造雛型木識別子を付与する構造雛型木識別子付与手段と、
    或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与する関連構造雛型木識別子付与手段と、
    前記語彙ごとに関連構造雛型木識別子を記憶している関連構造雛型木識別子記憶手段と、を具備することを特徴とする構造化文書記憶装置。
  2. 前記解析された構造化文書に基づいて、該構造化文書の構造を抽出する抽出する抽出手段と、
    前記抽出された構造を構造雛型木として前記構造雛型木記憶部に記憶させる記憶手段と、をさらに具備することを特徴とする請求項1に記載の構造化文書記憶装置。
  3. 前記拡大手段は、前記語彙の位置を基点として属性、子要素、兄弟要素、親要素の順に、前記範囲を拡大することを特徴とする請求項1または請求項2に記載の構造化文書記憶装置。
  4. 請求項1に記載の構造化文書記憶装置を参照する構造化文書検索装置であって、
    複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付ける受付手段と、
    前記問合せデータを構文解析する構文解析手段と、
    前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造化文書記憶装置から複数の候補として選択する選択手段と、
    語彙の間の類似度合いを示す類似度を複数の語彙について記憶している類似関係記憶手段と、
    前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出する構造スコア値算出手段と、
    少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出する処理コスト算出手段と、
    少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択する処理優先度算出手段と、
    前記選択候補から処理を実行する処理実行手段と、
    複数の前記処理を実行した実行結果を検索結果として取得する結果取得手段と、を具備することを特徴とする構造化文書検索装置。
  5. 前記構文解析手段は、前記問合せデータの構造情報を作成し、
    前記選択手段は、前記構造情報にもとづいて前記複数の候補を前記構造化文書記憶装置から選択することを特徴とする請求項4に記載の構造化文書検索装置。
  6. 前記処理優先度算出手段は、前記処理コストの大きさに反比例して対応している処理コスト値と、前記構造スコア値とを掛け合わせた数値に基づいて、各候補の処理の処理優先度を算出することを特徴とする請求項4または請求項5に記載の構造化文書検索装置。
  7. 前記構造化文書記憶装置は、さらに、語彙ごとに関連語彙識別子を記憶していて、構造雛型木の各ノードに構造雛型木識別子を付与していて、或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与し、
    前記関連語彙識別子および前記関連構造雛型木識別子にもとづいて、同一の関連語彙識別子を有する語彙と、同一の関連構造雛型木識別子を有する語彙とが一致している数が多いほど値が高くなるように複数の語彙間で正規化した値を語彙スコア値として各語彙に付与する語彙スコア値付与手段をさらに具備し、
    前記処理優先度算出手段は、問合せ言語が複数のキーワードから構成される検索を実行した場合、かつ、検索処理途中において、各索引情報の結合処理を行なう場合に、前記語彙スコア値と前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出することを特徴とする請求項4または請求項5に記載の構造化文書検索装置。
  8. 構造化文書記憶装置と構造化文書検索装置を具備した構造化文書システムであって、
    前記構造化文書記憶装置は、
    1つの構造化文書を取得する取得手段と、
    前記構造化文書を解析する構造情報解析手段と、
    構造化文書の典型的な構造を示す構造雛型木を予め記憶している構造雛型木記憶手段と、
    前記構造雛型木を前記解析された構造化文書に合致するように更新する更新手段と、
    前記1つの構造化文書を複数の語彙に分割する分割手段と、
    1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出する頻度情報算出手段と、
    前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の語彙が存在するまで前記範囲を拡大する拡大手段と、
    前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与する関連語彙識別子付与手段と、を具備し、
    前記構造化文書検索装置は、
    複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付ける受付手段と、
    前記問合せデータを構文解析する構文解析手段と、
    前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造化文書記憶装置から複数の候補として選択する選択手段と、
    語彙の間の類似度合いを示す類似度を複数の語彙について記憶している類似関係記憶手段と、
    前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出する構造スコア値算出手段と、
    少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出する処理コスト算出手段と、
    少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択する処理優先度算出手段と、
    前記選択候補から処理を実行する処理実行手段と、
    複数の前記処理を実行した実行結果を検索結果として取得する結果取得手段と、
    を具備することを特徴とする構造化文書システム。
  9. 前記構造化文書記憶装置は、
    前記語彙ごとに前記関連語彙識別子を記憶している関連語彙識別子記憶手段と、
    前記構造雛型木の各ノードに構造雛型木識別子を付与する構造雛型木識別子付与手段と、
    或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与する関連構造雛型木識別子付与手段と、
    前記語彙ごとに関連構造雛型木識別子を記憶している関連構造雛型木識別子記憶手段と、をさらに具備することを特徴とする請求項8に記載の構造化文書システム。
  10. 前記構造化文書検索装置は、
    前記関連語彙識別子および前記関連構造雛型木識別子にもとづいて、同一の関連語彙識別子を有する語彙と、同一の関連構造雛型木識別子を有する語彙とが一致している数が多いほど値が高くなるように複数の語彙間で正規化した値を語彙スコア値として各語彙に付与する語彙スコア値付与手段をさらに具備し、
    前記処理優先度算出手段は、問合せ言語が複数のキーワードから構成される検索を実行した場合、かつ、検索処理途中において、各索引情報の結合処理を行なう場合に、前記語彙スコア値と前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出することを特徴とする請求項9に記載の構造化文書システム。
  11. コンピュータを使用して行う構造化文書方法であって、
    第1取得手段が、1つの構造化文書を取得し、
    第1解析手段が、前記構造化文書を解析し、
    構造雛型木記憶手段が、構造化文書の典型的な構造を示す構造雛型木を予め記憶し、
    更新手段が、前記構造雛型木を前記解析された構造化文書に合致するように更新し、
    分割手段が、前記1つの構造化文書を複数の語彙に分割し、
    第1算出手段が、1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出し、
    拡大手段が、前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の該語彙が存在するまで前記範囲を拡大し、
    第1付与手段が、前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与し、
    受付手段が、複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付け、
    第2解析手段が、前記問合せデータを構文解析し、
    選択手段が、前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造雛型木記憶手段から複数の候補として選択し、
    類似関係記憶手段が、語彙の間の類似度合いを示す類似度を複数の語彙について記憶し、
    第2算出手段が、前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出し、
    第3算出手段が、少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出し、
    第4算出手段が、少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択し、
    実行手段が、前記選択候補から処理を実行し、
    第2取得手段が、複数の前記処理を実行した実行結果を検索結果として取得する、ことを特徴とする構造化文書方法。
  12. さらに、
    関連語彙識別子記憶手段が、前記語彙ごとに前記関連語彙識別子を記憶し、
    第2付与手段が、前記構造雛型木の各ノードに構造雛型木識別子を付与し、
    第3付与手段が、或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与し、
    関連構造雛型木識別子記憶手段が、前記語彙ごとに関連構造雛型木識別子を記憶することを特徴とする請求項11に記載の構造化文書方法。
  13. さらに、
    第4付与手段が、前記関連語彙識別子および前記関連構造雛型木識別子にもとづいて、同一の関連語彙識別子を有する語彙と、同一の関連構造雛型木識別子を有する語彙とが一致している数が多いほど値が高くなるように複数の語彙間で正規化した値を語彙スコア値として各語彙に付与することをさらに具備し、
    前記処理優先度を算出することは、問合せ言語が複数のキーワードから構成される検索を実行した場合、かつ、検索処理途中において、各索引情報の結合処理を行なう場合に、前記語彙スコア値と前記処理コストと前記構造スコア値とに基づいて、前記プランを構成する各処理の処理優先度を算出することを特徴とする請求項12に記載の構造化文書方法。
  14. コンピュータを、
    1つの構造化文書を取得する取得手段と、
    前記構造化文書を解析する構造情報解析手段と、
    構造化文書の典型的な構造を示す構造雛型木を予め記憶している構造雛型木記憶手段と、
    前記構造雛型木を前記解析された構造化文書に合致するように更新する更新手段と、
    前記1つの構造化文書を複数の語彙に分割する分割手段と、
    1つの構造化文書内の要素ごとに該要素内に存在する全ての語彙に対して語彙ごとに該語彙が発生する頻度を示す発生頻度情報を算出する頻度情報算出手段と、
    前記語彙ごとに該語彙を含む範囲内で或る出現回数以上の他の語彙が存在するまで前記範囲を拡大する拡大手段と、
    前記拡大された範囲内で最も出現回数が多い語彙の語彙識別子を前記語彙の関連語彙識別子として付与する関連語彙識別子付与手段と、
    複数の構造化文書の部分構造から構成される新たな複合文書を生成するための問合せ言語で記述された問合せデータを受け付ける受付手段と、
    前記問合せデータを構文解析する構文解析手段と、
    前記構文解析された問合せデータに含まれる、問合せの回答として要求される要求構造に類似する類似構造を持つ、構造雛型木に含まれるノードを前記構造雛型木記憶手段から複数の候補として選択する選択手段と、
    語彙の間の類似度合いを示す類似度を複数の語彙について記憶している類似関係記憶手段と、
    前記類似度に基づいて、前記候補ごとに該候補が前記要求構造に類似している度合いを示す構造スコア値を算出する構造スコア値算出手段と、
    少なくとも、前記候補と前記構造雛型木とを照合することに基づいて、どの順番で各候補を処理するかを示す各候補の処理コストを算出する処理コスト算出手段と、
    少なくとも前記処理コストと前記構造スコア値とに基づいて、各候補の処理の処理優先度を算出し、該処理優先度の高い候補から順に、処理を行う選択候補として選択する処理優先度算出手段と、
    前記選択候補から処理を実行する処理実行手段と、
    複数の前記処理を実行した実行結果を検索結果として取得する結果取得手段として機能させるための構造化文書プログラム。
  15. 前記語彙ごとに前記関連語彙識別子を記憶している関連語彙識別子記憶手段と、
    前記構造雛型木の各ノードに構造雛型木識別子を付与する構造雛型木識別子付与手段と、
    或る語彙の関連語彙識別子が最も多く発生するノードの構造雛型木識別子を該或る語彙の関連構造雛型木識別子として付与する関連構造雛型木識別子付与手段と、
    前記語彙ごとに関連構造雛型木識別子を記憶している関連構造雛型木識別子記憶手段と、をさらに具備することを特徴とする請求項14に記載の構造化文書プログラム。
  16. 前記関連語彙識別子および前記関連構造雛型木識別子にもとづいて、同一の関連語彙識別子を有する語彙と、同一の関連構造雛型木識別子を有する語彙とが一致している数が多いほど値が高くなるように複数の語彙間で正規化した値を語彙スコア値として各語彙に付与する語彙スコア値付与手段をさらに具備し、
    前記処理優先度算出手段は、問合せ言語が複数のキーワードから構成される検索を実行した場合、かつ、検索処理途中において、各索引情報の結合処理を行なう場合に、前記語彙スコア値と前記処理コストと前記構造スコア値とに基づいて、前記プランを構成する各処理の処理優先度を算出することを特徴とする請求項15に記載の構造化文書プログラム。
JP2005219165A 2005-07-28 2005-07-28 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム Active JP4314221B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005219165A JP4314221B2 (ja) 2005-07-28 2005-07-28 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム
US11/388,131 US7613602B2 (en) 2005-07-28 2006-03-24 Structured document processing apparatus, structured document search apparatus, structured document system, method, and program
CNA2006101080668A CN1904896A (zh) 2005-07-28 2006-07-27 结构化文档处理装置、搜索装置及结构化文档系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005219165A JP4314221B2 (ja) 2005-07-28 2005-07-28 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2007034827A JP2007034827A (ja) 2007-02-08
JP4314221B2 true JP4314221B2 (ja) 2009-08-12

Family

ID=37674160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005219165A Active JP4314221B2 (ja) 2005-07-28 2005-07-28 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US7613602B2 (ja)
JP (1) JP4314221B2 (ja)
CN (1) CN1904896A (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4525115B2 (ja) * 2004-03-11 2010-08-18 日本電気株式会社 構造化文書処理装置、構造化文書処理方法、および構造化文書処理プログラム
US7624117B2 (en) * 2006-06-12 2009-11-24 Sap Ag Complex data assembly identifier thesaurus
US20070299812A1 (en) * 2006-06-26 2007-12-27 Datallegro, Inc. Workload manager for relational database management systems
KR100837750B1 (ko) * 2006-08-25 2008-06-13 엔에이치엔(주) 성조를 이용하여 중국어를 검색하는 방법 및 상기 방법을수행하는 시스템
US8204898B2 (en) * 2007-02-02 2012-06-19 Telefonaktiebolaget L M Ericsson (Publ) Multi-site common directory and method for using the multi-site common directory
JP4398988B2 (ja) 2007-03-26 2010-01-13 株式会社東芝 構造化文書を管理する装置、方法およびプログラム
JP4352079B2 (ja) 2007-03-28 2009-10-28 株式会社東芝 分散データベースから情報を検索するシステム、装置、および方法
US20090012984A1 (en) * 2007-07-02 2009-01-08 Equivio Ltd. Method for Organizing Large Numbers of Documents
US20090063465A1 (en) * 2007-08-29 2009-03-05 Yahoo! Inc. System and method for string processing and searching using a compressed permuterm index
US8316041B1 (en) * 2007-11-28 2012-11-20 Adobe Systems Incorporated Generation and processing of numerical identifiers
US8090724B1 (en) 2007-11-28 2012-01-03 Adobe Systems Incorporated Document analysis and multi-word term detector
US7822773B2 (en) * 2008-01-25 2010-10-26 International Business Machines Corporation Method and system for reducing complex tree structures to simple tree structures based on relevance of nodes using threshold values
US8538989B1 (en) * 2008-02-08 2013-09-17 Google Inc. Assigning weights to parts of a document
JP2009199280A (ja) * 2008-02-21 2009-09-03 Hitachi Ltd 部分構文木プロファイルを用いた類似性検索システム
JP5060345B2 (ja) * 2008-02-29 2012-10-31 株式会社東芝 データベース処理装置、情報処理方法及びプログラム
KR100978581B1 (ko) * 2008-05-08 2010-08-27 엔에이치엔(주) 웹 페이지 열람 중에 편리하게 사전 서비스를 제공하기위한 방법 및 시스템
CN102053989A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于确定要被物化的节点的方法和系统
CN101820444B (zh) * 2010-03-24 2012-05-02 北京航空航天大学 一种基于描述信息匹配相似度的资源服务匹配与搜索方法
CN101807211B (zh) * 2010-04-30 2012-07-25 南开大学 一种面向海量小规模xml文档融合路径约束的xml检索方法
JP5515117B2 (ja) * 2010-06-11 2014-06-11 株式会社日立製作所 データ処理装置
US9633332B2 (en) 2010-07-13 2017-04-25 Hewlett Packard Enterprise Development Lp Generating machine-understandable representations of content
US20130155463A1 (en) * 2010-07-30 2013-06-20 Jian-Ming Jin Method for selecting user desirable content from web pages
US8972260B2 (en) * 2011-04-20 2015-03-03 Robert Bosch Gmbh Speech recognition using multiple language models
CN102214244A (zh) * 2011-07-07 2011-10-12 深圳市万兴软件有限公司 docx文件信息解析方法及系统
JP5862260B2 (ja) * 2011-12-09 2016-02-16 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
CN103176956B (zh) * 2011-12-21 2016-08-03 北大方正集团有限公司 用于提取文档结构的方法和装置
JP5695586B2 (ja) * 2012-02-24 2015-04-08 株式会社日立製作所 Xml文書検索装置及びプログラム
WO2013174407A1 (de) * 2012-05-24 2013-11-28 Iqser Ip Ag Erzeugung von anfragen an ein datenverarbeitendes system
US20130325531A1 (en) * 2012-05-30 2013-12-05 Bart-Jan Van Putten Business case development by dynamically reusing business case components
US20130332450A1 (en) * 2012-06-11 2013-12-12 International Business Machines Corporation System and Method for Automatically Detecting and Interactively Displaying Information About Entities, Activities, and Events from Multiple-Modality Natural Language Sources
JP5921379B2 (ja) 2012-08-10 2016-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テキスト処理方法、システム及びコンピュータ・プログラム。
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
US9471559B2 (en) * 2012-12-10 2016-10-18 International Business Machines Corporation Deep analysis of natural language questions for question answering system
US8893294B1 (en) * 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US10042928B1 (en) 2014-12-03 2018-08-07 The Government Of The United States As Represented By The Director, National Security Agency System and method for automated reasoning with and searching of documents
JP6562276B2 (ja) * 2014-12-15 2019-08-21 大学共同利用機関法人情報・システム研究機構 情報抽出装置、情報抽出方法、及び情報抽出プログラム
US9389909B1 (en) * 2015-04-28 2016-07-12 Zoomdata, Inc. Prioritized execution of plans for obtaining and/or processing data
US10140335B2 (en) * 2015-11-18 2018-11-27 Sap Se Calculation scenarios with extended semantic nodes
CN108509453B (zh) * 2017-02-27 2021-02-09 华为技术有限公司 一种信息处理方法及装置
CN107145584B (zh) * 2017-05-10 2020-06-19 西南科技大学 一种基于n-gram模型的简历解析方法
US11029934B2 (en) * 2017-12-15 2021-06-08 Uniquesoft, Llc Method and system for updating legacy software
CN109872119A (zh) * 2019-01-17 2019-06-11 平安科技(深圳)有限公司 项目信息管理方法、装置、计算机设备和存储介质
US11416526B2 (en) * 2020-05-22 2022-08-16 Sap Se Editing and presenting structured data documents
CN111916165A (zh) * 2020-08-18 2020-11-10 泰康保险集团股份有限公司 用于评估量表的相似性评估方法及装置
CN112364051B (zh) * 2020-11-25 2024-03-15 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN112580309B (zh) * 2020-12-22 2023-08-04 深圳平安智慧医健科技有限公司 文档数据处理方法、装置、计算机设备及存储介质
CN112818111B (zh) * 2021-01-28 2023-07-25 北京百度网讯科技有限公司 文档推荐方法、装置、电子设备和介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3607462B2 (ja) 1997-07-02 2005-01-05 松下電器産業株式会社 関連キーワード自動抽出装置及びこれを用いた文書検索システム
US6240407B1 (en) * 1998-04-29 2001-05-29 International Business Machines Corp. Method and apparatus for creating an index in a database system
JP3754253B2 (ja) * 1999-11-19 2006-03-08 株式会社東芝 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム
JP4200645B2 (ja) 2000-09-08 2008-12-24 日本電気株式会社 情報処理装置、情報処理方法および記録媒体
JP3842577B2 (ja) * 2001-03-30 2006-11-08 株式会社東芝 構造化文書検索方法および構造化文書検索装置およびプログラム
US6832219B2 (en) * 2002-03-18 2004-12-14 International Business Machines Corporation Method and system for storing and querying of markup based documents in a relational database
EP1504378A4 (en) * 2002-05-14 2007-09-19 Verity Inc APPARATUS AND METHOD FOR SEARCHING AND EXTRACTING STRUCTURE, SEMI-STRUCTURE AND UNSTRUCTURED CONTENTS
JP4261876B2 (ja) 2002-11-11 2009-04-30 株式会社ジャストシステム 統計装置、検索装置、プログラム、統計方法、検索方法
JP4245364B2 (ja) 2003-02-03 2009-03-25 株式会社リコー キーワード抽出装置、プログラム、及び記録媒体
JP4247108B2 (ja) 2003-12-25 2009-04-02 株式会社東芝 構造化文書検索方法、構造化文書検索装置、及びプログラム
JP4247135B2 (ja) * 2004-02-10 2009-04-02 株式会社東芝 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
US7370061B2 (en) * 2005-01-27 2008-05-06 Siemens Corporate Research, Inc. Method for querying XML documents using a weighted navigational index

Also Published As

Publication number Publication date
CN1904896A (zh) 2007-01-31
US20070027671A1 (en) 2007-02-01
US7613602B2 (en) 2009-11-03
JP2007034827A (ja) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4314221B2 (ja) 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム
US9720944B2 (en) Method for facet searching and search suggestions
JP3842577B2 (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
US9171065B2 (en) Mechanisms for searching enterprise data graphs
US9015150B2 (en) Displaying results of keyword search over enterprise data
JP3754253B2 (ja) 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム
JP4644420B2 (ja) ネットワークを介してデータを検索及び提示する方法及びマシン可読記憶装置
Lu et al. Annotating structured data of the deep Web
US20040044659A1 (en) Apparatus and method for searching and retrieving structured, semi-structured and unstructured content
US20040221229A1 (en) Data structures related to documents, and querying such data structures
JP4146479B2 (ja) 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム
US20060015809A1 (en) Structured-document management apparatus, search apparatus, storage method, search method and program
JP2000020537A (ja) テキスト検索装置及びテキスト検索プログラムを記録したコンピュータ読み取り可能な記録媒体
EP2240875A1 (en) Method and system for navigation of a data structure
JP2004310561A (ja) 情報検索方法、情報検索システム及び検索サーバ
JP2008243075A (ja) 構造化文書管理装置及び方法
JP2002297601A (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP5439606B1 (ja) 構造化文書管理装置、方法およびプログラム
Lim et al. WebView: A tool for retrieving internal structures and extracting information from HTML documents
JP2004118543A (ja) 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP2009251845A (ja) 検索結果評価装置及び検索結果評価方法
JP2016085580A (ja) 文書情報管理システム、文書情報管理方法、及びプログラム
Senthilkumar et al. Efficiently Querying the Indexed Compressed XML Data (IQX)
JP2002297604A (ja) 情構造化文書検索方法および構造化文書検索装置および構造化文書管理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090421

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090518

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4314221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5