JP4398988B2 - 構造化文書を管理する装置、方法およびプログラム - Google Patents

構造化文書を管理する装置、方法およびプログラム Download PDF

Info

Publication number
JP4398988B2
JP4398988B2 JP2007079379A JP2007079379A JP4398988B2 JP 4398988 B2 JP4398988 B2 JP 4398988B2 JP 2007079379 A JP2007079379 A JP 2007079379A JP 2007079379 A JP2007079379 A JP 2007079379A JP 4398988 B2 JP4398988 B2 JP 4398988B2
Authority
JP
Japan
Prior art keywords
page
vocabulary
block
identifier
index
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
JP2007079379A
Other languages
English (en)
Other versions
JP2008242605A (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 JP2007079379A priority Critical patent/JP4398988B2/ja
Priority to US12/040,996 priority patent/US8898555B2/en
Publication of JP2008242605A publication Critical patent/JP2008242605A/ja
Application granted granted Critical
Publication of JP4398988B2 publication Critical patent/JP4398988B2/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]

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)などで記述された構造化文書データを記憶・検索する構造化文書データベースが開発されている。構造化文書データベースに対する問合せ(クエリ)は、一般に、W3C(World Wide Web Consortium)が標準化を進めているXQuery(XML Query)という問合せ言語によって行われる。
XQueryでは、要素や属性などのDOM(Document Object Model)におけるノードレベルの情報を検索対象とする。例えば、特許文献1では、構造化文書におけるノードレベルの情報検索を行う以下の技術が提案されている。
特許文献1の方法では、まず、構造化文書をデータベースに格納する際に、対象となる文書のデータ構造を解析し、その構造(ノード)に対する解析情報を語彙索引情報などに埋め込んで索引を作成する。なお、この場合の構造の解析情報は、XPath(XML Path Language)で表現できるパスレベルを同一の構造情報(構造テンプレート)と見なした情報である。次に、検索時に検索クエリを解析して問合せグラフを作成し、コスト計算をした上でクエリ実行のプランを作成する。この際、クエリを事前解析し、それぞれの変数が満たさなければならない構造に対する制約を予め求め、索引を利用した検索を行う際に探索範囲を限定することで、中間の候補件数の削減を実現している。
一般に語彙索引では、登録するテキストを複数の語彙に分割し、分割した語彙を単位とした転置リスト形式で索引情報を管理する方式が用いられる。これは全文検索の分野で従来から用いられている方法であって、索引情報として文書識別子と出現位置情報を記録しておくことで、キーワードによる文書検索を高速に検索可能とする方法である。特許文献1では、この方法を構造化文書に拡張するために、索引情報として要素識別子および構造情報(構造識別子)を付加している。
また、転置リストにおける各ページは、ディスクI/O等の効率が良いブロックサイズ単位で管理されることが多い。各ページには複数の索引情報が格納され、これらを効率的に配置するために、索引情報を圧縮することなどが行なわれている。
転置リストで管理する方法の最大の利点は検索の高速性にある。特にディスクI/Oの観点から言えばリスト形式で連続的に配置することによってディスクキャッシュ効果が見込め、ランダムに配置する場合と比較しても高速なページを読み出しが可能である。このため、B木などのツリー形式で管理する方式と比較した場合、更新性能は劣るものの、検索性能では高速になる場合が多い。
特許文献2では、転置リストを利用した検索を高速に実行するための技術が提案されている。特許文献2の方法は、語彙ごとの頻度情報を利用して、頻度が低い語彙から優先的に処理することで探索空間を絞り込むことを特徴の1つとしている。また、特許文献2は、ページ配置時に、ページ内に配置された文書識別子の範囲をページの見出しとして記録しておき、検索時に探索する文書識別子と当該範囲とを比較して、範囲外の場合は、当該ページに対する不必要な探索をスキップ可能とすることを特徴としている。
特開2001−147933号公報 特開2006−73035号公報
しかしながら、特許文献2のように語彙索引に文書識別子の範囲を記録しておく方法では、語彙ごとに文書識別子のばらつきが発生する場合が多いことに起因して、ページ内の文書識別子の値がばらつく可能性があった。そして、ページ内の文書識別子の範囲が過大になると、結果的にページ単位での絞り込みが難しくなり高速化の効果が薄れる場合があるという問題があった。
例えば、ページ内に存在する索引の個数が同一であるものとして、文書識別子の範囲が10〜100の場合と、10〜10000の場合とを比較すると、前者のほうがページ単位の不必要な情報照合のスキップが高い確率で可能であると考えられる。これに対し、後者の場合は範囲が広いため、探索する文書識別子が当該範囲に含まれる可能性が高く、照合のスキップによる検索高速化の効果が得られない場合が多い。
また、構造化文書を対象とする場合は、構造情報と語彙情報とを共に考慮する必要がある。しかし、構造化文書の語彙索引の生成や語彙索引による検索で、特許文献2のように構造情報を考慮しない方法を適用すると、構造制約により結果的に検索が不要な解空間(ページ)に対しても検索する場合が多くなるという問題が生じる。
例えば、ページ内に1000個の要素が存在し、それらのうち、「/タイトル」という特定構造に関する索引情報は10個のみ存在すると仮定する。この場合、当該特定構造を指定して検索された場合、構造情報を何ら考慮しないと、その他の990個の要素も探索対象とするため、無駄な読み込みが発生する。
本発明は、上記に鑑みてなされたものであって、構造化文書の検索高速化が可能な索引を生成することができる構造化文書管理装置、構造化文書管理方法および構造化文書管理プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、階層化された論理構造を有する構造化文書に含まれる語彙を識別する語彙識別子と、前記語彙が出現する位置を特定する特定情報とを対応づけた語彙索引を、固定長の記憶領域であるページに記憶する語彙索引記憶部と、前記ページに記憶された前記語彙索引に含まれる前記特定情報の前記ページ内での分布の特徴を解析する特徴解析部と、解析された前記特徴に基づいて、前記ページ内で互いに隣接し、前記特定情報の前記特徴が相互に近似しない2つの前記語彙索引の間を境界として、前記ページを1または複数の前記語彙索引を含む複数のブロックに分割し、前記ブロックに含まれる前記語彙索引の前記特定情報の範囲を表す第1範囲を算出して前記語彙索引記憶部内の分割した前記ブロックそれぞれに保存するブロック分割部と、を備えたことを特徴とする。
また、本発明は、上記装置を実行することができる方法およびプログラムである。
本発明によれば、構造化文書の検索高速化が可能な索引を生成することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる構造化文書管理する装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
本実施の形態にかかる構造化文書管理装置は、転置リストの各ページを、文書識別子等の分布に関する特徴を考慮して複数のブロックに分割するとともに、各ブロックに含まれる文書識別子等の範囲を対応づけた語彙索引を作成し、当該範囲を参照して不要なブロックへのアクセスを回避して検索の高速化を可能とするものである。
また、本実施の形態にかかる構造化文書管理装置は、生成した語彙索引を転置リストのページに登録するときに、各ページに格納された文書の文書識別子等の範囲が過大とならないように制御するものである。
図1は、本実施の形態にかかる構造化文書管理システムの構成を示すブロック図である。図1に示すように、本実施の形態の構造化文書管理システムは、ネットワーク200を介してクライアント300と、構造化文書管理装置100とが接続されている。
クライアント300は、登録する構造化文書(XML文書)や、登録済みの構造化文書を対象とする検索条件(クエリ)を構造化文書管理装置100に送信し、検索結果を受信するものである。
ネットワーク200は、クライアント300と構造化文書管理装置100とを接続するもので、例えば、インターネット、有線LAN(Local Area Network)、無線LANなどのあらゆるネットワーク構成を適用することができる。
構造化文書管理装置100は、クライアント300からの要求に応じて、構造化文書の登録、索引の生成、構造化文書の検索などを行うものであり、通信部101と、構造化文書記憶部141と、構造情報記憶部142と、語彙索引記憶部143と、格納部110と、検索部120と、を備えている。
通信部101は、ネットワーク200を介して、クライアント300から各種処理の要求や登録する構造化文書を受信するとともに、検索結果をクライアント300に送信するものである。
クライアント300から受信する命令には、格納命令、検索命令が含まれる。格納命令は、入力された構造化文書を格納する処理の実行を要求する命令である。検索命令は、問い合わせ言語(XQueryなど)を入力として、結果集合を取得するための命令である。なお、結果集合とは、検索結果である文書識別子、要素識別子の集合をいう。
通信部101が受信した格納命令、検索命令は、それぞれ格納部110、検索部120に対して通知される。
構造化文書記憶部141は、XMLで記述された構造化文書を記憶する記憶部である。ここで、構造化文書の記述形式について説明する。図2は、XMLで記述された構造化文書の一例を示す説明図である。
図2では、特許に関する情報をXML形式で記述した構造化文書の例が示されている。XMLでは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグが存在し、構造化文書の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列(テキスト)の区切りと、そのテキストが構造上いずれの構成要素に属するのかを明確に記述することができる。
なお、XMLでは、タグを使って定義したデータの単位を要素という。例えば、<特許>タグと</特許>タグとを含み、両タグで囲まれたデータが1つの要素を構成する。
また、要素には、省略可能か、繰り返しが可能かなどの付加的な情報を追加するための属性を指定することができる。属性は、開始タグに「<要素名称 属性="属性値">」のような書式で設定する。
また、開始タグは要素名称を記号「<」、「>」で閉じた書式で記載され、終了タグは要素名称を記号「</」と「>」で閉じた書式で記載される。開始タグと終了タグとの間には、構造化文書の実情報を表すテキスト、または他の要素(子要素)が設定される。「<特許DB></特許DB>」のようにテキストを含まない構成要素は、簡易記法として「<特許DB/>」のように表すこともできる。
同図に示した文書は、「特許」タグから始まる要素を文書ルート(根)とし、その子要素として「タイトル」、「発明者一覧」、「効果」、「キーワードリスト」タグから始まる要素を有する。また、例えば、「タイトル」タグから始まる要素には「構造化文書検索装置」といった、1つのテキスト(文字列)が存在する。
なお、このようなXML形式の構造化文書から、各タグの名称や階層関係、繰り返しの個数などを抽出した情報を構造情報という。また、構造化文書の構造情報を構成する論理的な構造の単位を構造要素という。本実施の形態では、上述の要素、属性、テキストが構造要素となる。
次に、構造化文書記憶部141に格納された構造化文書のデータ構造について説明する。図3は、構造化文書記憶部141に格納された構造化文書のデータ構造の一例を示す説明図である。
図3は、図2に示すような構造化文書を木構造のデータ構造で表した例を示している。図3では、楕円のノードはフォルダを表すノード、六角形のノードは文書を表すノード、一重線の四角形はタグを表すノード、二重線の四角形は属性を表すノード、角の丸い四角形はテキストを表すノードを意味する。
例えば、「発明者一覧」タグを表すノード以下の部分木は、「発明者一覧」要素以下の2つの「発明者」要素を含んでいることを表している。なお、構造化文書記憶部141は、このような木構造のデータ構造を表形式で格納するが、図示は省略する。
図1に戻り、構造情報記憶部142は、上述のようなXML形式の構造化文書から抽出された構造情報を格納するものである。構造情報記憶部142は、構造化文書記憶部141に格納する構造化文書の構造を、構造情報と照合して解析する際に参照される。
図4は、本実施の形態における構造情報記憶部142に格納された構造情報のデータ構造の一例を示す説明図である。図4は、構造情報を木構造で表した例を示している。
同図に示すように、構造情報の木構造は、構造化文書の木構造と同様に、フォルダを表す楕円のノード、文書を表す六角形のノード、タグを表す一重線の四角形のノード、属性を表す二重線の四角形のノード、テキストを表す角の丸い四角形のノードを含んでいる。
また、構造情報には、構造情報の各ノードである構造要素を一意に識別するための識別子である構造識別子(TID)が付与されている。構造情報は、複数の構造化文書から、構造を表す情報のみを抽出した情報である。したがって、例えば、「発明者」タグのノードのように、構造化文書内では複数設定されうる情報であっても、構造情報上では1つに集約される。
なお、構造情報記憶部142は、このような木構造の構造情報を表形式で格納するが、図示は省略する。
図1に戻り、語彙索引記憶部143は、構造化文書記憶部141に記憶されたすべての構造化文書に含まれる語彙を識別する語彙識別子と、当該語彙を含む構造化文書や文書内の位置を特定する特定情報とを対応づけた語彙索引を記憶するものである。図5は、語彙索引記憶部143に格納された語彙索引のデータ構造の一例を示す説明図である。
図5に示すように、語彙索引記憶部143は、各語彙の発生順に昇順に付与された語彙の識別子である語彙識別子と、語彙の全構造化文書内での発生頻度と、転置リストファイル番号とを対応づけた語彙索引を格納している。転置リストファイル番号とは、語彙識別子に対応する語彙を含む要素に関する情報を含む転置リストファイルを一意に識別するための番号をいう。
同図の下部には、転置リストファイル(以下、単に転置リストという。)のデータ構造の一例が示されている。転置リストは、構造化文書を識別する文書識別子と、構造化文書内の各要素を識別する要素識別子と、構造識別子と、発生位置とを対応づけて格納している。本実施の形態では、対応する語彙を含む構造化文書や文書内の位置を特定する特定情報として、文書識別子、要素識別子、構造識別子、および発生位置が転置リスト内に記憶されている。
発生位置とは、当該転置リストに対応する語彙が、文書識別子と要素識別子とで識別される構造化文書の要素内で出現する位置を表す情報である。このような転置リストを含む語彙索引により、各語彙に対応する要素を特定することができる。
また、発生頻度は、全文検索の一般的手法として、絞り込み検索を効率的に行うための統計情報として用いられることが多い。例えば、Nグラムを用いた検索などでは、発生頻度が少ない語彙から順に検索し、位置照合することで不必要な処理をスキップしている。
次に、転置リストの詳細構造についてさらに説明する。図6は、転置リストの詳細構造の一例を示した説明図である。図6に示すように、転置リストは複数のページから構成され、各ページ内には複数の索引情報が格納される。なお、索引情報は場合によっては圧縮して格納される。
ページサイズはディスクI/Oが効率的に行える固定長サイズをベースにする場合が多い。ページ内には複数の索引要素(例えば1000個)が格納される。図6では、すべての領域に索引要素を格納済みであるページ1と、空き領域が存在するページ2とを含む転置リストの例が示されている。
また、本実施の形態では、各ページの見出し情報として、少なくとも文書識別子と要素識別子の範囲情報(ノード範囲)と、構造識別子の出現パターン(構造集合)を記憶する。検索時には、このページの見出し情報を参照することにより、明らかに不必要な情報だけが含まれるページをスキップする。
なお、ノード範囲は[<a1、b1>、<a2、b2>]の形式で表す。これは、文書識別子の範囲がa1〜a2であり、要素識別子の範囲がb1〜b2であることを表している。また、構造集合は、記号{}内に、出現する構造識別子を列挙する形式で表す。例えば、図6では、ページ2についてノード範囲が[<50、20>、<90、15>]であり、構造集合が{5、10}である場合の例が示されている。
また、図6では、このような転置リストに対して同図の右側に示した5つの索引情報(格納対象索引情報)を格納することを示している。なお、このような索引情報は、後述する索引生成部112により生成されるものである。また、索引情報は、<文書識別子、要素識別子、構造識別子、発生位置>の形式で記載する。
図7は、索引情報を追加した後の転置リストの詳細構造の一例を示した説明図である。図7は、図6の左側に示したような転置リストに、図6の右側に示した5つの索引情報を追加した後の転置リストの一例を示している。
この場合、ページ2の末尾が格納位置となるので、この位置に5つの索引候補を格納する。なお、ノード範囲[<50、20>、<90、15>]、構造集合{5、10}が、既に見出し情報として記憶されているものとする。
ページ内の見出し情報は、索引情報が追加されたタイミングで更新される。この例では、ノード範囲は[<50、20>、<125、25>]、構造集合は{4、5、10}となる。このように、索引情報の登録とともに見出し情報を適宜更新することにより、見出し情報を参照するだけで、ページ単位で解の存在が判定可能となる。そして、解が存在しないと判定できるページをまとめてスキップすることで高速な検索が可能となる。
例えば、Nグラム等の検索で必要な位置情報を照合するための結合処理を行う場合を考える。そして、ページ2の文書識別子125、要素識別子50となる候補が、その結合対象の索引要素であるとする。この場合、見出し情報を参照しない方法によれば、ページ2内の各候補に対してスキャンおよび照合処理が必要となる。これに対し、見出し情報を参照する方法によれば、ページ2のノード範囲[<50、20>、<125、25>]に文書識別子125、要素識別子50となる候補が含まれないことを見出し情報のみによって判断でき、このページ2に対する探索をスキップすることができる。
また、構造識別子の条件に着目すれば、例えば、構造識別子8を持つ候補との結合処理を行う際も、見出し情報の構造集合{5、10}を参照し、構造識別子8が構造集合中に存在しないことから、ページ2の探索は不要と判断することができる。
このように、ページの見出し情報として、文書識別子および要素識別子の範囲情報と、構造識別子のとりうる値の情報を記憶し、これらの情報を複合的に利用することでページ内の不必要な探索を軽減している。ただし、空き領域の存在するページに単純に追加して索引情報を格納する方法では、ページ内のこれら情報の精度が緩くなる可能性が高い。そこで、本実施の形態では、このような格納するページを決定する段階で索引情報の配置位置を制御している。この処理は、後述するようにページ決定部113によって実行される。
なお、構造化文書記憶部141、構造情報記憶部142、および語彙索引記憶部143は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
図1に戻り、格納部110は、構造化文書記憶部141に構造化文書を登録するとともに、登録する構造化文書を解析し、検索に関する構造や語彙の索引情報などを作成して、構造情報記憶部142や語彙索引記憶部143に格納するものである。格納部110は、構造解析部111と、索引生成部112と、ページ決定部113と、特徴解析部114と、ブロック分割部115とを備えている。
構造解析部111は、通信部101から受け取ったテキスト形式の構造化文書を構文解析し、DOMのようなオブジェクトツリー形式に展開する処理を行う。展開された各オブジェクトには、一意に識別するためのオブジェクト識別子が付加され、構造化文書記憶部141に記憶される。なお、文書識別子+要素識別子が、オブジェクト識別子に相当する。
また、構造解析部111は、オブジェクトツリーを走査して、対象文書に対する特徴的な構造情報を抽出し、ツリー形式により構造情報記憶部142内で管理する。なお、このような構造情報を構造テンプレートという場合がある。また、本実施の形態では、従来と同様の手法により、統計情報等を利用して適宜構造化文書に対するスキーマ情報が抽出され、それに応じて構造テンプレートが更新されることを前提とする。
索引生成部112は、解析された構造化文書の要素ごとにテキスト部分を語彙分割し、索引情報を生成するものである。索引生成部112は、語彙の分割方法としてNグラムを用いた分割方法を適用する。なお、語彙の分割方法はNグラムによる方法に限られるものではなく、形態素解析を用いた方法などの従来から用いられているあらゆる方法を適用できる。
ページ決定部113は、索引生成部112が生成した索引情報を登録するページを決定するものである。具体的には、ページ決定部113は、まず、空き領域が存在する各ページについて、格納済みの領域の割合を表すページ格納率を算出し、ページ格納率が所定の閾値、例えば、80%を超えているかを判断する。そして、閾値を超えている場合は、ページ決定部113は、生成された索引情報の文書識別子を参照し、当該索引情報を登録した場合の当該ページの見出し情報のノード範囲を求める。そして、ページ決定部113は、求めたノード範囲の増加率を算出し、増加率が所定の閾値を超えた場合には、空き領域が存在するページではなく、新規に作成したページに索引情報を格納することを決定する。
また、ページ決定部113は、ページ格納率が所定の閾値(例えば80%)を超えていない場合は、当該ページに索引情報を格納することを決定する。ページ格納率が小さい場合は、新規ページをさらに作成すると索引情報の格納効率が悪化するため、これを回避する必要があるからである。また、ページ決定部113は、増加率が所定の閾値を超えていない場合にも、当該ページに索引情報を格納することを決定する。
なお、増加率は、(登録後の文書識別子の範囲−登録前の文書識別子の範囲)×100/(登録前の文書識別子の範囲)として算出する。また、ページ決定部113は、登録後の文書識別子の範囲の絶対値が所定の閾値を超えたか否かによって新規ページに格納するか否かを決定するように構成してもよい。また、ページ決定部113は、要素識別子の増加率および/または構造識別子の増加率によってページを決定するように構成してもよい。
特徴解析部114は、語彙索引記憶部143に記憶された各ページの語彙索引(索引情報)について、文書識別子、要素識別子、および構造識別子の分布に関する特徴を解析するものである。例えば、特徴解析部114は、各ページ内で隣接して記憶された2つの語彙索引間で文書識別子または/および要素識別子の値の差分を算出する。
また、特徴解析部114は、構造識別子の分布に関する特徴として、構造識別子に対応する構造要素の構造化文書内での出現頻度、または、各構造識別子に対応する構造要素間のツリー上での距離(階層数)を求める。
ブロック分割部115は、特徴解析部114によって解析された特徴を参照して、各ページを1つまたは複数の語彙索引を含む単位であるブロックに分割するものである。そして、ブロック分割部115は、分割したブロックごとに、ブロックに含まれる語彙索引の特定情報の範囲を表す第1範囲を算出し、算出した第1範囲をブロックに対する見出し情報として語彙索引記憶部143に保存する。
例えば、ブロック分割部115は、特徴として解析された文書識別子の差分を参照し、差分が所定の閾値を超えた2つの語彙索引間を境界としてブロックに分割する。また、文書識別子の差分が0である場合には、ブロック分割部115は、さらに要素識別子の差分を参照し、要素識別子の差分が所定の閾値を超えた場合に、同様にブロックを分割する。
また、構造識別子の分布に関する特徴として出現頻度が得られた場合は、ブロック分割部115は、出現頻度のランクをさらに求め、ランクが近い隣接する語彙索引をグループ化することによりページをブロックに分割する。さらに、構造識別子の分布に関する特徴として階層数が得られた場合は、ブロック分割部115は、階層数が所定の閾値を超えた2つの語彙索引間を境界としてブロックに分割する。
なお、ブロック分割部115は、上述の各種特徴のいずれか1つを参照して1つのパターンによりブロックを分割してもよいし、すべての特徴を参照してそれぞれの特徴に応じた上述の手法により、複数のパターンでブロックに分割してもよい。すなわち、上記ブロック分割方法は択一的なものではなく、任意の複数の方法を組合せて適用することができる。
また、ブロック分割部115は、文書識別子および要素識別子でブロックを分割した場合はブロックごとの文書識別子および要素識別子の範囲(ページ内ノード範囲という)をブロックの見出し情報として保存する。また、ブロック分割部115は、構造識別子でブロックを分割した場合はブロックごとの構造識別子の集合(ページ内構造集合という)をブロックの見出し情報として保存する。
検索部120は、クライアント300から受信した検索命令に従い、入力された検索条件に対して検索処理を実行して結果集合を生成するものであり、制約生成部121と、ページ読込部122と、ページ判定部123と、ブロック判定部124とを備えている。
なお、検索部120に入力される検索条件はXQueryなどの構造化文書に対するクエリ言語であることを前提とする。また、検索部120は、特許文献1に記載された方法と同様に、検索条件を解析した内部形式から検索条件を木構造で表したクエリグラフを作成し、クエリグラフに含まれるすべての変数の具体化を目標として、テーブルと呼ばれる変数集合の取り得る値(候補集合)の組み合わせを表すデータを次々と生成することにより検索結果を求めるものである。1つのテーブルを生成する単位処理をオペレータと呼び、各オペレータの結果は、候補集合として候補記憶部(図示せず)に保存される。
制約生成部121は、入力された検索条件(クエリ)を構文解析(パージング)し、解析結果としてクエリグラフを生成するものである。この際、各ノードが満たさなければならない構造に対する制約条件を付加する。図8は、入力されたクエリの一例を示す説明図である。また、図9は、図8のクエリを解析して得られたクエリグラフの一例を示す説明図である。
図8では、クエリとして、「配下のタイトルオブジェクトのテキストに“構造化文書”を含む特許文書を取得し、“<検索結果>”タグで囲った検索結果データを出力する」ことを意味する検索条件が入力された例が示されている。
図9に示すように、図8のようなクエリを解析して得られるクエリグラフは、構造情報の各構造要素に対応したノードを含む木構造で表される。例えば、図9のクエリグラフのノード2は、図4の特許タグ(TID=T3)が対応することを示している。また、例えば、ノード3はタイトルタグが、ノード4はタイトルタグ下のテキスト要素が対応することを示している。
また、クエリグラフの各ノードには、ノードが相互に満たさなければならない構造に関する構造制約が付加される。例えば、クエリグラフのノード4はタイトルタグ下のテキスト要素でなければならないといった制約が構造制約として付加される。この場合、ノード4には、対応する構造要素の候補として、TID=T6の構造要素が取得される。同様に、ノード2に対してはTID=T3の構造要素が候補として取得される。語彙索引をスキャンする場合は、制約条件を満たすものだけをスキャンすればよいため、探索空間を事前に絞り込むことが可能となる。
構造要素に対する検索条件(以下、検索キー)、すなわち、構造要素に含まれるテキストの値に関する値制約が存在する場合は、当該検索キーを、検索キーの検索対象となる構造要素に対応するノードに対応づける。例えば、ノード4に対応するタイトルタグ下のテキスト要素に対して検索キーとして「contains “構造化文書”」が対応づけられている。
このように、制約生成部121は、構造情報記憶部142を参照して、検索条件と構造化文書の大域的な構造情報(TID)を照合してクエリグラフを作成することにより、探索空間を絞り込む処理を実行している。探索空間を絞り込むことによって、索引情報をスキャンする際に不必要な情報をスキップすることができ、高速に検索処理が実行されることが期待される。
ページ読込部122は、語彙索引をスキャンするときにスキャン対象となるページ(対象ページ)を読込むものである。
ページ判定部123は、ページ読込部122により読込まれた対象ページの見出し情報を参照して、対象ページ内に解候補が存在する可能性があるか否かを判定するものである。具体的には、ページ判定部123は、見出し情報のノード範囲を参照し、解候補となる語彙索引の文書識別子、要素識別子がノード範囲に含まれるか否かを判定する。また、ページ判定部123は、見出し情報の構造集合を参照し、解候補となる語彙索引の構造識別子が構造集合に含まれるか否かを判定する。
なお、解候補が対象ページ内に存在しないと判定された場合は、この対象ページに対する処理は打ち切られ、検索部120は次のページの読込から処理を繰り返すように検索処理を制御する。また、解候補が対象ページ内に存在すると判定された場合は、以下に述べるブロック判定部124によって、当該ページ内でさらに探索対象とすべきブロックが判定される。
ブロック判定部124は、対象ページ内の各ブロックに対する見出し情報を参照して、対象ページ内のいずれのブロックに解候補が存在するかを判定するものである。具体的には、ブロック判定部124は、ページ内ノード範囲を参照し、解候補となる語彙索引の文書識別子、要素識別子がページ内ノード範囲に含まれるか否かを判定する。また、ブロック判定部124は、ページ内構造集合を参照し、解候補となる語彙索引の構造識別子がページ内構造集合に含まれるか否かを判定する。
なお、ページ内ノード範囲およびページ内構造集合の両方が保存されている場合は、それぞれの見出し情報を用いて解候補が含まれると判定されたブロックの共通部分が探索空間として得られる。
次に、このように構成された本実施の形態にかかる構造化文書管理装置100による索引生成処理について図10を用いて説明する。なお、本実施の形態では、索引生成処理とは、登録が要求された構造化文書を解析して語彙索引を生成し、語彙索引を転置リストの適切なページに格納するとともに、各ページを適切なブロック単位に分割する処理をいう。登録が要求された構造化文書を構造化文書記憶部141に登録する処理は従来と同様の処理のため説明は省略する。
図10は、本実施の形態における索引生成処理の全体の流れを示すフローチャートである。まず、通信部101は、クライアント300から登録するXML文書を受信する(ステップS1001)。次に、構造解析部111が、受信したXML文書を構文解析して木構造に展開し、構造要素を抽出する(ステップS1002)。
次に、索引生成部112が、抽出した構造要素に対応するXML文書の各要素について、テキスト部分を語彙分割して語彙索引を生成する(ステップS1003)。索引生成部112は、語彙分割の方法として、上述のようにNグラムにより分割する方法を用いる。
次に、生成した語彙索引を格納するページとして、ページの見出し情報の範囲が過大とならないようなページを決定するページ決定処理が実行される(ステップS1004)。ページ決定処理の詳細については後述する。ページ決定処理は、ページスキップの効果を阻害することが明らかな候補を取り除くことが主眼であって、ページ単位での細かな分布に関する制御は、以下の2つのブロック分割処理で行われる。
次に、語彙索引を格納したページを、ページの見出し情報を参照してブロックに分割する処理が実行される。まず、見出し情報のノード範囲に基づくブロック分割処理が実行される(ステップS1005)。ノード範囲に基づくブロック分割処理とは、文書識別子および要素識別子の分布を考慮して各ページをさらに詳細なブロック単位に分割するとともに、分割したブロックにページごとの見出し情報と同様の見出し情報を付与する処理である。これにより、見出し情報を参照してページを絞り込むのと同様に、ブロックごとの見出し情報を参照してブロック単位でさらに探索範囲を絞り込むことが可能となる。
次に、見出し情報の構造集合に基づくブロック分割処理が実行される(ステップS1006)。構造集合に基づくブロック分割処理とは、構造識別子の分布を考慮して各ページをさらに詳細なブロック単位に分割し、分割したブロックにページごとの見出し情報と同様の見出し情報を付与する処理である。
ノード範囲に基づくブロック分割処理および構造集合に基づくブロック分割処理の詳細については後述する。なお、これら2つのブロック分割処理の実行順序は上述のものに限られず、構造集合に基づくブロック分割処理を先に実行するように構成してもよいし、両者を並列的に実行するように構成してもよい。また、両者のうち少なくとも1つを実行するように構成してもよい。
さらに、ページをブロックに分割する処理は、語彙索引を登録するごとに行う必要はなく、索引情報の個数がページ内の最大数に達したタイミングで行うように構成してもよい。これにより、算出コストを削減することが可能となる。
次に、ステップS1004のページ決定処理の詳細について図11を用いて説明する。図11は、ページ決定処理の全体の流れを示すフローチャートである。
ステップS1003で語彙索引が生成された後、ページ決定部113は、生成した語彙索引の登録先となりうる対象ページについて、ページ格納率が所定の閾値である80%を超えたか否かを判断する(ステップS1101)。超えている場合(ステップS1101:YES)、ページ決定部113は、対象ページに格納した場合の文書識別子の範囲を算出する(ステップS1102)。例えば、図6のページ2に、同図の右側の5つの格納対象索引情報を格納することを仮定すると、文書識別子の範囲は、登録前が41(=90−50+1)であったのに対し、登録後は76(125−50+1)に増加する。
次に、ページ決定部113は、算出した範囲の増加率を求め、増加率が所定の閾値(例えば、30%)を超えたか否かを判断する(ステップS1103)。上述の例では、増加率が85%(=(76−41)×100/41)であるため、閾値を超えたと判断される。
増加率が閾値を超えていない場合(ステップS1103:NO)、ページ決定部113は、対象ページに語彙索引を配置することを決定する(ステップS1104)。また、増加率が閾値を超えている場合(ステップS1103:YES)、ページ決定部113は、当該対象ページではなく、新規にページを作成し、作成した新規ページに語彙索引を配置することを決定する(ステップS1105)。
また、ステップS1101で、ページ格納率が所定の閾値を超えていないと判断された場合は(ステップS1101:NO)、ページ決定部113は、対象ページに語彙索引を配置することを決定する(ステップS1104)。
このような処理により、ページ格納率が低いときは新規ページの作成を抑止して転置リスト全体の索引の格納効率を高めることが可能となる。また、ページ格納率が高いときには、見出し情報として用いられる文書識別子の範囲の増加率をさらに判断し、増加率が高い場合には新規ページに語彙索引を格納することにより、文書識別子の範囲が過大となることを防止可能となる。
次に、このようなページ決定処理によってページが決定される処理の具体例について説明する。まず、比較のために、従来の方法によるページ決定処理の具体例について、図12を用いて説明する。図12は、従来の方法によるページ決定処理の一例を説明するための説明図である。
図12は、ページ1に索引情報3つ分の空き領域が存在し、3つの索引情報<30、10>、<155、15>、<155、20>を新たに登録する場合の例を示している。なお、同図では、構造識別子および発生位置を省略した形式(<文書識別子、要素識別子>)で索引情報を表現している。
この場合、登録前のノード範囲は[<10、20>、<25、12>]であったのに対し、同図の右側に示すように3つの索引情報を登録した後は、ノード範囲が[<10、20>、<155、20>]に拡大する。したがって、ページ1に対する解の存在範囲が大きくなり、ページ単位でスキャン不要であると判定できない可能性が高くなる。
これに対し、本実施の形態では、ページ1に空き領域が存在する場合であっても、所定の格納率を超えている場合は、ノード範囲が拡大する要因となる索引情報である<155、10>および<155、20>を別のページに配置することができる。
図13は、本実施の形態によるページ決定処理の一例を説明するための説明図である。図13は、図12と同様に、ページ1に索引情報3つ分の空き領域が存在し、3つの索引情報<30、10>、<155、15>、<155、20>を新たに登録する場合の例を示している。
図13に示すように、本実施の形態の方法によれば、例えば、ノード範囲の増加率が小さい索引情報である<30、10>のみをページ1に追加し、その他の索引情報は、新規に作成したページ2に追加することができる。これにより、ページ1のノード範囲は、[<10、20>、<30、10>]となるため、範囲が過大となることを防止することができる。
なお、文書識別子に関しては、ページ内に実際に配置するまでは変更可能であるので、文書を登録する際に文書識別子を変更することによって分布が小さくなるか、または、未だページに配置していない他の文書識別子とその値を交換することにより分布が小さくなるかを検証するように構成してもよい。
文書識別子は構造化文書管理装置100が発行および管理する装置内で一意に決定される値であり、例えば構造化文書を登録するときに現時点の最大値に1加算した値を返し、文書を削除した場合は削除した文書に付与されていた文書識別子を空き番号として管理する場合がある。この場合、別の新規文書を登録するときに、分布が小さくなるような空き番号を選択して割り当てることが可能となる。
図14および図15は、空き番号を利用して文書識別子を割り当てる場合の例を示す説明図である。図14は、単純に空き番号の小さい順に文書識別子を割り当てた場合の例を示している。同図では、ページ2の最初の要素を登録するときに、空き番号の最小値である18を割り当てたため、ノード範囲が[<18、10>、<40、30>]となった例が示されている。
これに対し、図15は、空き番号のうち、ページ2のノード範囲が最小となるような空き番号である35を選択して文書識別子として割り当てた場合の例を示している。これによって、ページ2のノード範囲は[<35、10>、<40、30>]となり、図14の例と比較するとノード範囲の拡大が回避されている。
なお、図14および図15では、語彙索引を新規に登録する時に空き番号を選択して割り当てる例を示していたが、既に登録済みの語彙索引について、文書識別子を空き番号に置き換えることによりノード範囲を縮小できるかを検査するように構成してもよい。
この場合、対象としている語彙索引だけでなく、この文書識別子を利用する全ての語彙索引に対して文書識別子の変更を行う必要があるため、語彙の検索における重要度を加味しながら値の調整を行うことが望ましい。
次に、ステップS1005のノード範囲に基づくブロック分割処理の詳細について図16および図17を用いて説明する。
上述のページ決定処理では、ページの格納効率などを考慮しているので結果的に荒くフィルタされる傾向がある。また、見出し情報はページ内の情報全てに対して計算されるものであるので、ページ内の個数が多くなればなるほど精度が落ちる。これを防ぐために、ページ決定後またはページ内の索引情報が最大数に達した段階で、再度ページ単位で補正することが、ノード範囲に基づくブロック分割処理の目的である。
図16は、ノード範囲に基づくブロック分割処理の全体の流れを示すフローチャートである。また、図17は、転置リストのページの一例を示す説明図である。
まず、特徴解析部114は、ブロック分割の対象となる対象ページから、語彙索引の要素を1つ(以下、Piとする)読み出す(ステップS1601)。例えば、図17に示すような語彙索引がページ内に格納されていた場合、最初に語彙索引<10、20、5>をP1として読み出す。なお、同図では、発生位置を省略した形式(<文書識別子、要素識別子、構造識別子>)で索引情報を表現している。
次に、特徴解析部114は、前の要素(Pi−1)と現在の要素(Pi)との間で、文書識別子の差(以下、Ddとする)と、要素識別子の差(以下、Deとする)を算出する(ステップS1602)。なお、最初の要素(P1)は前の要素が存在しないため本ステップの処理対象外とする。
次に、ブロック分割部115は、Ddが所定の閾値αより大きいか否か、または、Dd=0かつDeが所定の閾値βより大きいか否かを判断する(ステップS1603)。Dd>α、または、Dd=0かつDe>βを満たさない場合は(ステップS1603:NO)、特徴解析部114は、次の要素を読み出して処理を継続する(ステップS1601)。
Dd>α、または、Dd=0かつDe>βを満たす場合(ステップS1603:YES)、ブロック分割部115は、Pi−1の区間までを新規ブロックとしてグループ化する(ステップS1604)。例えば、α=15、β=10としている場合、図17の例では、6番目の要素であるP6=<15、20、5>と7番目の要素であるP7=<35、10、9>でステップS1603の条件を満たすため、P1〜P6までが1つのブロックとして分割される。
なお、分割したブロックを再統合する場合に参照するため(後述)、ブロック分割部115は、このときのDd、およびDeの値を保存しておく。上述の例では、Dd=20、De=10を保存する。また、各ブロックには、ブロックごとの見出し情報として、ブロックごとのノード範囲(以下、ページ内ノード範囲という)を対応づけて保存する。これにより、解候補がいずれのブロックの範囲に属するか否かを、見出し情報を参照して判断することが可能となる。
次に、ブロック分割部115は、すべての要素を処理したか否かを判断する(ステップS1605)。処理していない場合は(ステップS1605:NO)、特徴解析部114は、次の要素を読み出して処理を継続する(ステップS1601)。
すべての要素を処理した場合は(ステップS1605:YES)、ブロック分割部115は、ブロック数を調整するため、以下の処理を実行する。
まず、ブロック分割部115は、生成したブロック数が、ブロック数の上限を定める所定の閾値N1より大きいか否かを判断する(ステップS1606)。ブロック数がN1より大きい場合は(ステップS1606:YES)、ブロック分割部115は、所定の規則に従ってブロックを統合する。具体的には、ブロック分割部115は、新規ブロック作成時に保存しておいたDdおよびDeを参照し、ブロックを分割した境界に存在する2つの索引情報についてのDdまたはDeが最小となる2つのブロックを検出して統合する(ステップS1607)。
ブロック数がN1より大きくない場合は(ステップS1606:NO)、ノード範囲に基づくブロック分割処理を終了する。
このように、ノード範囲に基づくブロック分割処理では、ページ決定処理と同様に文書識別子と要素識別子の分布を考慮して、さらにページ内で各識別子が適切に分布するようにブロックに分割することができる。
次に、ノード範囲に基づくブロック分割処理で分割されたページの具体例について図18を用いて説明する。図18は、ノード範囲に基づくブロック分割処理により分割された後の転置リストのページの一例を示す説明図である。図18は、図17に示したようなページを、図16に示したような手順により分割した結果を表している。図18に示すように、12個の索引情報の要素は3つのブロックに分割される。各ブロックには、開始位置を表す情報(それぞれ1、7、10)と、ページ内ノード範囲(それぞれ[<10、20>、<15、20>]、[<35、10>、<40、20>]、[<90、10>、<90、30>])が対応づけて保存される。
次に、ステップS1006の構造集合に基づくブロック分割処理の詳細について図19および図22を用いて説明する。図19および図22は、構造集合に基づくブロック分割処理の全体の流れを示すフローチャートである。
構造集合に基づくブロック分割処理は、構造識別子の分布を考慮してページ内の索引情報を複数のブロックに分割するものであり、具体的方法としてはさまざまな方法が考えられるが、一例として以下のような2つの方法について説明する。
(A)特徴的な構造識別子に対して高速に検索することを主眼とした方法(図19)
(B)XPathで「//」を使った階層検索を高速に検索することを主眼とした方法(図22)
なお、上記2つの方法は択一的なものではなく、いずれか1つを実行するように構成してもよいし、両者を共に実行するように構成してもよい。
まず、図19を用いて、Aの方法について説明する。Aの方法は、特徴的な構造識別子として、出現頻度が小さい構造要素に対応する構造識別子の検索高速化を目的とするものである。
まず、特徴解析部114は、ブロック分割の対象となる対象ページについて、対象ページ内の構造要素の分布<構造識別子tj、出現個数cj>を生成する(ステップS1901)。<構造識別子tj、出現個数cj>とは、構造識別子ごとに、構造識別子のページ内での出現個数を対応づけた情報を表す。
図20は、生成した構造要素の分布の一例を示す説明図である。図20は、図17に示すようなページに対して構造要素の分布を生成した場合の例を示している。図20に示すように、図17の例では、構造識別子が5の構造要素の出現個数が最も大きいことが、構造識別子の特徴として解析される。
図19に戻り、特徴解析部114は、出現個数cjが多い順に、予め定められた上位s件の構造識別子を取得し、取得した構造識別子を集合Fとする(ステップS1902)。そして、特徴解析部114は、集合F以外の構造識別子を集合Gとする(ステップS1903)。
s=2が定められていたとすると、図20の例では、出現個数が大きい構造識別子=5および15が頻出構造識別子として集合Fに分類される。また、その他の構造識別子である10、12および9が集合Gに分類される。
次に、ブロック分割部115が、対象ページから、語彙索引の要素(Pi)を1つ読み出す(ステップS1904)。次に、ブロック分割部115は、Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属するか否かを判断する(ステップS1905)。例えば、Pi−1の要素の構造識別子が集合Fに属し、Piの要素の構造識別子が集合Gに属する場合は、両者が異なる集合に属すると判断する。
Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属する場合は(ステップS1905:YES)、ブロック分割部115は、前の要素(Pi−1)までを新規ブロックとして分割する(ステップS1906)。これにより、出現個数が同等の構造識別子ごとにブロックに分割することが可能となる。
Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属さない場合(ステップS1905:NO)、または、ステップS1906でブロックを分割した後、ブロック分割部115は、すべての要素を処理したか否かを判断する(ステップS1907)。
すべての要素を処理していない場合(ステップS1907:NO)、特徴解析部114は、次の要素を読み出して処理を継続する(ステップS1904)。
すべての要素を処理した場合は(ステップS1907:YES)、ブロック分割部115は、ブロック数を調整するため、以下の処理を実行する。
まず、ブロック分割部115は、生成したブロック数が、ブロック数の上限を定める所定の閾値N2より大きいか否かを判断する(ステップS1908)。ブロック数がN2より大きい場合は(ステップS1908:YES)、ブロック分割部115は、所定の規則に従ってブロックを統合する。具体的には、ブロック分割部115は、集合G内で最も出現個数の多い構造識別子を含むブロックを求め、求めたブロックを、隣接するブロックと統合する(ステップS1909)。これにより、出現個数の小さいブロックをそのまま保持し、稀少な構造識別子に対する影響を極力軽減することが可能となる。
ブロック数がN2より大きくない場合は(ステップS1908:NO)、構造集合に基づくブロック分割処理を終了する。
このように、構造集合に基づくブロック分割処理では、構造識別子の出現頻度によってブロックを分割するため、探索空間が限定される出現頻度が低い構造識別子の探索空間が、頻出構造識別子によって不当に大きくなることを回避することができる。
次に、構造集合に基づくブロック分割処理で分割されたページの具体例について図21を用いて説明する。図21は、構造集合に基づくブロック分割処理により分割された後の転置リストのページの一例を示す説明図である。s=2(出現個数が上位2件を集合Fとする)、N2=4(ブロック数の上限は4とする)とすると、図20に示したように上位2件の頻出構造識別子は5および15であり、これらが集合Fに分類される。また、その他の構造識別子である10、12および9が集合Gに分類される。図17の例では、左から3番目までの索引情報の構造識別子が5であり、4番目の索引情報の要素の構造識別子が10であるため、3番目までが1つのブロックとして分割される。
同様の方法により、全体として、1〜3番目、4〜5番目、6番目、7番目、8〜10番目、および11〜12番目の計6個のブロックに分割される。この場合、ブロック数の上限4を超えているため、最も出現個数の多い構造識別子である10を含む4〜5番目のブロックを隣接するブロックと統合し、最終的に1〜3番目、4〜7番目、8〜10番目、および11〜12番目の計4個のブロックに分割される。
次に、図22を用いて、Bの方法について説明する。構造化文書に関する検索では、例えば「本文//text()」のように、検索するパスとして、下位のいずれかの階層のパスを表す記号「//」を指定する場合が多い。Bの方法は、このような構造化文書に特有の階層構造の制約を指定する検索の高速化を目的とするものである。
まず、特徴解析部114は、ブロック分割の対象となる対象ページについて、対象ページ内の構造識別子の重複を除去した集合Cを生成する(ステップS2201)。次に、特徴解析部114は、構造情報記憶部142の構造テンプレートを参照し、ツリー上の距離が所定値T1以下の構造識別子をまとめた集合Vi(i=0・・・s)を生成する(ステップS2202)。なお、1つの構造識別子はいずれか1つの集合Viにのみ属するように集合Viを生成する。例えば、ツリーの末端側から集合を生成し、残りの構造要素についてツリーの上位側に順次遡ってさらに集合を生成するように構成する。
次に、ブロック分割部115が、対象ページから、語彙索引の要素(Pi)を1つ読み出す(ステップS2203)。次に、ブロック分割部115は、Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属するか否かを判断する(ステップS2204)。例えば、Pi−1の要素の構造識別子が集合V1に属し、Piの要素の構造識別子が集合V2に属する場合は、両者が異なる集合に属すると判断する。
Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属する場合は(ステップS2204:YES)、ブロック分割部115は、前の要素(Pi−1)までを新規ブロックとして分割する(ステップS2205)。これにより、構造テンプレート上で距離が近い構造識別子ごとにブロックに分割することが可能となる。
Pi内の構造識別子が前の要素(Pi−1)の構造識別子と異なる集合に属さない場合(ステップS2204:NO)、または、ステップS2205でブロックを分割した後、ブロック分割部115は、すべての要素を処理したか否かを判断する(ステップS2206)。
すべての要素を処理していない場合(ステップS2206:NO)、特徴解析部114は、次の要素を読み出して処理を継続する(ステップS2203)。
すべての要素を処理した場合は(ステップS2206:YES)、ブロック分割部115は、ブロック数を調整するため、以下の処理を実行する。
まず、ブロック分割部115は、生成したブロック数が、ブロック数の上限を定める所定の閾値N3より大きいか否かを判断する(ステップS2207)。ブロック数がN3より大きい場合は(ステップS2207:YES)、ブロック分割部115は、所定の規則に従ってブロックを統合する。具体的には、ブロック分割部115は、ツリー上の距離が最も近いブロックを求め、求めたブロック同士を統合する(ステップS2208)。
ブロック数がN3より大きくない場合は(ステップS2207:NO)、構造集合に基づくブロック分割処理を終了する。
このように、Bの方法では、構造テンプレート上で距離が近い構造識別子同士を同一のグループとしてブロック化するため、ユーザが意図したパスのみに限定して探索空間を絞り込むことが可能となる。
なお、Bの方法の変形として、以下のような方法で構造集合に基づくブロック分割処理を実現してもよい。まず、構造テンプレートを走査して、末端要素から親子関係にある構造識別子を優先的にまとめてブロック化する。このようにして得られたブロックの個数が事前に設定したN3件以下であれば終了する。
そうでない場合は、兄弟要素をさらにチェックし、兄弟関係になる構造識別子を同じブロックに統合する。この処理によってもブロック件数の上限を超える場合は、末端要素からさらに構造テンプレート上の上位のノードに辿って同様の処理を行う。このような処理を、ブロック数がN3件以下になるまで繰り返す。
以上のように、本実施の形態によれば、各識別子の範囲情報を参照して適切なページに語彙索引を配置するだけでなく、各ページを各識別子の範囲情報でさらにブロックに分割した索引、および各ページを構造要素に関する制約条件でさらにブロックに分割した索引を生成することができる。これにより、絞り込みの精度を向上させてより高速な検索が実行可能となる。
次に、このようにして生成された索引を利用した検索処理について図23を用いて説明する。図23は、本実施の形態における検索処理の全体の流れを示すフローチャートである。
まず、通信部101は、クライアント300から検索クエリを受信する(ステップS2301)。次に、制約生成部121が、受信した検索クエリを解析して図9に示すようなクエリグラフを生成する(ステップS2302)。クエリグラフには、上述のように、グラフ上の各ノードが満たさなければならない制約が付加される。
次に、検索部120は、生成されたクエリグラフを参照し、処理コストが最小になる検索プランを生成する(ステップS2303)。検索部120によるプラン生成処理では、特許文献1と同様の手法を適用することができる。
次に、検索処理のうち、語彙索引に関する処理である転置ファイルスキャン処理が実行される(ステップS2304)。転置ファイルスキャン処理では、付加された制約に従い、検索対象となる索引の候補を絞り込む処理が実行される。転置ファイルスキャン処理の詳細については後述する。
次に、検索部120は、残りのプランを実行して検索クエリを満たす構造化文書を検索する(ステップS2305)。そして、通信部101が、検索された構造化文書を検索結果としてクライアント300に送信し(ステップS2306)、検索処理を終了する。
次に、ステップS2304の転置ファイルスキャン処理について図24を用いて説明する。図24は、本実施の形態における転置ファイルスキャン処理の全体の流れを示すフローチャートである。
まず、ページ読込部122が、探索対象とするページを表す対象ページ(以下Pとする)を読込み、読込んだページの見出し情報(以下、ページ見出し情報という)を取得する(ステップS2401)。
次に、ページ判定部123は、チェック対象となる索引要素情報c=<文書識別子F、要素識別子E、構造識別子T>を取得する(ステップS2402)。チェック対象となる索引要素情報は、転置ファイルスキャン処理の前までのオペレータの処理で得られるものである。
次に、ページ判定部123は、ページ見出し情報のノード範囲内に文書識別子Fおよび要素識別子Eが含まれるか否かを判断する(ステップS2403)。含まれる場合は(ステップS2403:YES)、ページ判定部123は、さらに、ページ見出し情報の構造集合に構造識別子Tが含まれるか否かを判断する(ステップS2404)。
含まれる場合は(ステップS2404:YES)、各ページ内でさらに該当するブロックを判定するために以下の処理が実行される。まず、ブロック判定部124は、ページ内ノード範囲を参照し文書識別子Fおよび要素識別子Eが含まれるブロックの区間情報R1を取得する(ステップS2405)。
ブロックの区間情報とは、各ブロックに含まれる索引情報の範囲を特定するための情報である。例えば、図18の例では、ブロックの開始位置を表す情報である1、7、10から、3つのブロックそれぞれに対して、1〜6、7〜9、および10〜12などのような情報を区間情報として取得できる。
次に、ブロック判定部124は、ページ内構造集合を参照し、構造識別子Tが含まれるブロックの区間情報の集合R2を取得する(ステップS2406)。そして、ブロック判定部124は、区間R1と、集合R2内の各区間との共通部分を表す区間R3を求め、求めたR3を対象として索引情報の読込みを行い、c=<文書識別子F、要素識別子E、構造識別子T>との照合を行う(ステップS2407)。
次に、ブロック判定部124は、cがR3に含まれるか否かを判断する(ステップS2408)。含まれない場合は(ステップS2408:NO)、ページ読込部122は、すべてのページを処理したか否かを判断する(ステップS2409)。処理していない場合(ステップS2409:NO)、ページ読込部122は、次のページを読込んで処理を繰り返す(ステップS2401)。
すべてのページを処理した場合は(ステップS2409:YES)、チェック対象となる索引要素情報cを満たす語彙索引は存在しないものとして転置ファイルスキャン処理が終了する。
ステップS2408で、cがR3に含まれると判断された場合は(ステップS2408:YES)、チェック対象となる索引要素情報cを満たす語彙索引が存在したものとして転置ファイルスキャン処理が終了する。
ステップS2403でページ見出し情報のノード範囲内に文書識別子Fおよび要素識別子Eが含まれないと判断された場合(ステップS2403:NO)、および、ステップS2404でページ見出し情報の構造集合に構造識別子Tが含まれないと判断された場合は(ステップS2404:NO)、対象ページの探索をスキップし、ステップS2409の終了判定処理を実行する。
このように、本実施の形態によれば、(1)クエリにおける大域的な構造制約に対する絞りこみ、(2)ページの見出しに対する絞込み、(3)ページ内のブロックに対する絞込みの三段階のチェックを行うことで、探索空間を限定し、検索を高速化することが可能となる。
次に、本実施の形態による検索処理の具体例について説明する。まず、ページ見出し情報による探索範囲の限定の例について図25および図26を用いて説明する。
図25は、検索クエリの一例を示す説明図である。同図は、タイトルタグ下のテキスト(構造識別子=6)に「XML」を含む特許文書を検索する場合の検索クエリの例を示している。図26は、語彙索引の一例を示す説明図である。同図では、ページ1内に構造識別子=4または10のみが含まれるため、構造集合が{4、10}であることが示されている。
図26のようなページ1を対象として、図25に示すような検索クエリを元に構造識別子6の候補を検索する場合、ページ1には構造集合として{4、10}のみが存在することから、ページ1の探索をスキップすることが可能となる。
次に、ページ内見出し情報による探索範囲の限定の例について図27を用いて説明する。なお、語彙索引としては、図17に示すような情報が格納されており、ノード範囲に基づくブロック分割処理および構造集合に基づくブロック分割処理によって、それぞれ図18および図21に示すようなブロックに分割されていることを前提とする。
図27は、探索範囲の限定の一例を説明するための説明図である。同図は、上記前提で、例えば索引要素情報として<35、10、9>をチェック対象として照合を行う場合の例を表している。
まず、ページ見出し情報から、ページ単位でスキップできるかどうかがチェックされる(ステップS2403、2404)。まず、ノード範囲の条件がチェックされ、文書識別子35および要素識別子10は、ノード範囲[<10、20>、<90、30>]に含まれると判断される(ステップS2403:YES)。
次に構造情報の条件がチェックされ、構造識別子9は、ページ見出し情報の構造集合である{5、9、10、12、15}に含まれると判断される(ステップS2404:YES)。したがって、ページ内の探索(ステップS2405〜ステップS2408)が実行される。
ページ内の探索では、まず、ページ内ノード範囲から、<35、10>が含まれるブロックR1が取得される。この例では、2番目のブロックが条件を満たすため、このブロックが探索区間として取得される(ステップS2405)。次に、ページ内構造集合との照合が行われる。この例では、構造識別子9が含まれるブロックは2番目のブロックだけであるため、区間の集合R2は、この2番目のブロックのみとなる(ステップS2406)。
これら処理終了後、それぞれの区間(R1、R2)の積集合R3を計算する。この例では、<35、10、9>の索引要素1個だけを含む区間がR3となる。したがって、このR3の要素を解候補として照合処理を行い(ステップS2407)、このページに対する処理を終了する。
このように、本実施の形態によれば、ページの見出し情報だけでなく、ページをさらに分割したブロックごとの見出し情報も参照して探索空間を絞り込むことにより、検索処理をさらに高速化することが可能となる。
以上ように、本実施の形態にかかる構造化文書管理装置では、転置リストの各ページを、文書識別子等の分布に関する特徴を考慮して複数のブロックに分割するとともに、各ブロックに含まれる文書識別子等の範囲を対応づけた語彙索引を作成することができる。このため、当該範囲を参照して不要なブロックへのアクセスを回避した検索の高速化が可能となる。
次に、本実施の形態にかかる構造化文書管理装置のハードウェア構成について図28を用いて説明する。図28は、本実施の形態にかかる構造化文書管理装置のハードウェア構成を示す説明図である。
本実施の形態にかかる構造化文書管理装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施の形態にかかる構造化文書管理装置で実行される構造化文書管理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態にかかる構造化文書管理装置で実行される構造化文書管理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる構造化文書管理装置で実行される構造化文書管理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施の形態の構造化文書管理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態にかかる構造化文書管理装置で実行される構造化文書管理プログラムは、上述した各部(通信部、格納部、検索部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から構造化文書管理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる構造化文書管理装置、構造化文書管理方法および構造化文書管理プログラムは、語彙索引を用いて検索を行う構造化文書の検索装置、検索方法、および検索プログラムに適している。
本実施の形態にかかる構造化文書管理システムの構成を示すブロック図である。 XMLで記述された構造化文書の一例を示す説明図である。 構造化文書記憶部に格納された構造化文書のデータ構造の一例を示す説明図である。 構造情報記憶部に格納された構造情報のデータ構造の一例を示す説明図である。 語彙索引記憶部に格納された語彙索引のデータ構造の一例を示す説明図である。 転置リストの詳細構造の一例を示した説明図である。 転置リストの詳細構造の一例を示した説明図である。 入力されたクエリの一例を示す説明図である。 クエリグラフの一例を示す説明図である。 本実施の形態における索引生成処理の全体の流れを示すフローチャートである。 ページ決定処理の全体の流れを示すフローチャートである。 従来の方法によるページ決定処理の一例を説明するための説明図である。 本実施の形態によるページ決定処理の一例を説明するための説明図である。 空き番号の小さい順に文書識別子を割り当てた場合の例を示している図である。 ノード範囲が最小となるような空き番号を選択して文書識別子として割り当てた場合の例を示している図である。 ノード範囲に基づくブロック分割処理の全体の流れを示すフローチャートである。 転置リストのページの一例を示す説明図である。 分割された後の転置リストのページの一例を示す説明図である。 構造集合に基づくブロック分割処理の全体の流れを示すフローチャートである。 構造要素の分布を生成した場合の例を示している図である。 分割された後の転置リストのページの一例を示す説明図である。 構造集合に基づくブロック分割処理の全体の流れを示すフローチャートである。 本実施の形態における検索処理の全体の流れを示すフローチャートである。 本実施の形態における転置ファイルスキャン処理の全体の流れを示すフローチャートである。 検索クエリの一例を示す説明図である。 語彙索引の一例を示す説明図である。 探索範囲の限定の一例を説明するための説明図である。 本実施の形態にかかる構造化文書管理装置のハードウェア構成を示す説明図である。
符号の説明
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
100 構造化文書管理装置
101 通信部
110 格納部
111 構造解析部
112 索引生成部
113 ページ決定部
114 特徴解析部
115 ブロック分割部
120 検索部
121 制約生成部
122 ページ読込部
123 ページ判定部
124 ブロック判定部
141 構造化文書記憶部
142 構造情報記憶部
143 語彙索引記憶部
200 ネットワーク
300 クライアント

Claims (12)

  1. 階層化された論理構造を有する構造化文書に含まれる語彙を識別する語彙識別子と、前記語彙が出現する位置を特定する特定情報とを対応づけた語彙索引を、固定長の記憶領域であるページに記憶する語彙索引記憶部と、
    前記ページに記憶された前記語彙索引に含まれる前記特定情報の前記ページ内での分布の特徴を解析する特徴解析部と、
    解析された前記特徴に基づいて、前記ページ内で互いに隣接し、前記特定情報の前記特徴が相互に近似しない2つの前記語彙索引の間を境界として、前記ページを1または複数の前記語彙索引を含む複数のブロックに分割し、前記ブロックに含まれる前記語彙索引の前記特定情報の範囲を表す第1範囲を算出して前記語彙索引記憶部内の分割した前記ブロックそれぞれに保存するブロック分割部と、
    を備えたことを特徴とする構造化文書管理装置。
  2. 前記位置は前記語彙が出現する前記構造化文書であり、前記語彙索引記憶部は、前記語彙が出現する前記構造化文書を識別する文書識別子である前記特定情報を対応づけた前記語彙索引を記憶し、
    前記特徴解析部は、前記ページ内で互いに隣接する2つの前記語彙索引の前記文書識別子の差分を前記特徴として解析し、
    前記ブロック分割部は、前記文書識別子の差分が予め定められた第1閾値を超えたか否かを判断し、前記文書識別子の差分が前記第1閾値を超えた2つの前記語彙索引の間を境界として前記ブロックに分割すること、
    を特徴とする請求項1に記載の構造化文書管理装置。
  3. 前記位置は、前記語彙が出現する前記構造化文書内の前記論理構造に対応する実情報である要素のうち前記語彙が出現する前記要素であり、前記語彙索引記憶部は、前記語彙が出現する前記構造化文書を識別する文書識別子と、前記語彙が出現する前記要素を識別する要素識別子とからなる前記特定情報を対応づけた前記語彙索引を記憶し、
    前記特徴解析部は、さらに、前記ページ内で互いに隣接する2つの前記語彙索引の前記要素識別子の差分を前記特徴として解析し、
    前記ブロック分割部は、前記ページ内で互いに隣接する2つの前記語彙索引の前記文書識別子が一致するか否かを判断し、一致する場合に、さらに前記要素識別子間の差分が予め定められた第2閾値を超えたか否かを判断し、前記第2閾値を超えた2つの前記語彙索引の間を境界として前記ブロックに分割すること、
    を特徴とする請求項1に記載の構造化文書管理装置。
  4. 前記位置は、前記論理構造の単位である構造要素のうち、前記語彙が出現する前記構造要素であり、前記語彙索引記憶部は、前記語彙が出現する前記構造要素を識別する構造識別子である前記特定情報を対応づけた前記語彙索引を記憶し、
    前記特徴解析部は、前記ページに記憶された前記語彙索引に含まれる前記構造識別子の前記ページ内での分布の特徴を解析すること、
    を特徴とする請求項1に記載の構造化文書管理装置。
  5. 前記特徴解析部は、前記構造識別子に対応する前記構造要素の前記ページ内での出現回数を前記特徴として解析し、
    前記ブロック分割部は、前記出現回数が多い順に予め定められた個数の前記構造要素の前記構造識別子を第1グループに分類するとともに、前記第1グループに属さない前記構造識別子を第2グループに分類し、前記ページ内で互いに隣接する2つの前記語彙索引に含まれる前記構造識別子の一方が前記第1グループに属し、他方が前記第2グループに属する場合に、2つの前記語彙索引の間を境界として前記ブロックに分割すること、
    を特徴とする請求項4に記載の構造化文書管理装置。
  6. 前記特徴解析部は、前記構造識別子に対応する前記構造要素間の前記論理構造における階層数を前記特徴として解析し、
    前記ブロック分割部は、前記構造識別子を、前記階層数が互いに予め定められた第3閾値より小さい前記構造要素の前記構造識別子を含むグループに分類し、前記ページ内で互いに隣接する2つの前記語彙索引に含まれる前記構造識別子が属する前記グループが異なる場合に、2つの前記語彙索引の間を境界として前記ブロックに分割すること、
    を特徴とする請求項4に記載の構造化文書管理装置。
  7. 入力された検索条件を解析して前記語彙索引から検索すべき前記特定情報を求め、検索すべき前記特定情報を前記語彙索引記憶部の前記ページから検索するときに、前記ページに含まれる前記ブロックのうち、検索すべき前記特定情報が前記ブロックの前記第1範囲に含まれる前記ブロックを検索対象として検索する検索部をさらに備えたこと、
    を特徴とする請求項1に記載の構造化文書管理装置。
  8. 前記語彙索引記憶部は、前記ページごとに、前記ページに含まれる前記語彙索引の前記特定情報の範囲を表す第2範囲をさらに記憶し、
    前記語彙索引を前記語彙索引記憶部に登録するときに、登録すべき前記語彙索引に含まれる前記特定情報と、前記語彙索引記憶部に記憶されている前記第2範囲とに基づいて、登録すべき前記語彙索引を登録する前記ページを決定するページ決定部をさらに備えたこと、
    を特徴とする請求項1に記載の構造化文書管理装置。
  9. 前記ページ決定部は、登録対象となりうる前記ページの空き領域が予め定められた第4閾値より小さく、かつ、登録対象となりうる前記ページの前記第2範囲に対する登録すべき前記語彙索引を登録対象となりうる前記ページに登録した場合の前記第2範囲の割合が予め定められた第5閾値より大きい場合に、新たなページを作成し、作成したページを登録する前記ページとして決定すること、
    を特徴とする請求項8に記載の構造化文書管理装置。
  10. 入力された検索条件を解析して前記語彙索引から検索すべき前記特定情報を求め、検索すべき前記特定情報を前記語彙索引記憶部の前記ページから検索するときに、前記ページのうち、前記ページの前記第2範囲に検索すべき前記特定情報が含まれる前記ページを検索対象として検索する検索部をさらに備えたこと、
    を特徴とする請求項8に記載の構造化文書管理装置。
  11. 特徴解析部によって、階層化された論理構造を有する構造化文書に含まれる語彙を識別する語彙識別子と、前記語彙が出現する位置を特定する特定情報とを対応づけた語彙索引を、固定長の記憶領域であるページに記憶する語彙索引記憶部内の前記ページに記憶された前記語彙索引に含まれる前記特定情報の前記ページ内での分布の特徴を解析する特徴解析ステップと、
    ブロック分割部によって、解析された前記特徴に基づいて、前記ページ内で互いに隣接し、前記特定情報の前記特徴が相互に近似しない2つの前記語彙索引の間を境界として、前記ページを1または複数の前記語彙索引を含む複数のブロックに分割し、前記ブロックに含まれる前記語彙索引の前記特定情報の範囲を表す第1範囲を算出して前記語彙索引記憶部内の分割した前記ブロックそれぞれに保存するブロック分割ステップと、
    を備えたことを特徴とする構造化文書管理方法。
  12. 階層化された論理構造を有する構造化文書に含まれる語彙を識別する語彙識別子と、前記語彙が出現する位置を特定する特定情報とを対応づけた語彙索引を、固定長の記憶領域であるページに記憶する語彙索引記憶部内の前記ページに記憶された前記語彙索引に含まれる前記特定情報の前記ページ内での分布の特徴を解析する特徴解析手順と、
    解析された前記特徴に基づいて、前記ページ内で互いに隣接し、前記特定情報の前記特徴が相互に近似しない2つの前記語彙索引の間を境界として、前記ページを1または複数の前記語彙索引を含む複数のブロックに分割し、前記ブロックに含まれる前記語彙索引の前記特定情報の範囲を表す第1範囲を算出して前記語彙索引記憶部内の分割した前記ブロックそれぞれに保存するブロック分割手順と、
    をコンピュータに実行させる構造化文書管理プログラム。
JP2007079379A 2007-03-26 2007-03-26 構造化文書を管理する装置、方法およびプログラム Active JP4398988B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007079379A JP4398988B2 (ja) 2007-03-26 2007-03-26 構造化文書を管理する装置、方法およびプログラム
US12/040,996 US8898555B2 (en) 2007-03-26 2008-03-03 Apparatus, method, and computer program product for managing structured documents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007079379A JP4398988B2 (ja) 2007-03-26 2007-03-26 構造化文書を管理する装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008242605A JP2008242605A (ja) 2008-10-09
JP4398988B2 true JP4398988B2 (ja) 2010-01-13

Family

ID=39794509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007079379A Active JP4398988B2 (ja) 2007-03-26 2007-03-26 構造化文書を管理する装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US8898555B2 (ja)
JP (1) JP4398988B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4878178B2 (ja) * 2006-02-28 2012-02-15 株式会社日立製作所 データ処理方法および装置並びにその処理プログラム
JP5135272B2 (ja) * 2009-03-24 2013-02-06 株式会社東芝 構造化文書管理装置、及び方法
JP5412916B2 (ja) * 2009-03-27 2014-02-12 コニカミノルタ株式会社 文書画像処理装置、文書画像処理方法および文書画像処理プログラム
JP5083367B2 (ja) * 2010-04-27 2012-11-28 カシオ計算機株式会社 検索装置、検索方法、ならびに、コンピュータプログラム
JP5971571B2 (ja) * 2012-05-22 2016-08-17 株式会社東芝 構造文書管理システム、構造文書管理方法及びプログラム
CN102750476B (zh) * 2012-06-07 2015-04-08 腾讯科技(深圳)有限公司 鉴定文件安全性的方法和系统
WO2014038069A1 (ja) * 2012-09-07 2014-03-13 株式会社東芝 構造化文書管理装置、方法およびプログラム
WO2014045362A1 (ja) * 2012-09-20 2014-03-27 株式会社東芝 構造化文書管理装置、方法およびプログラム
US10628417B2 (en) * 2013-12-01 2020-04-21 Paraccel Llc Physical planning of database queries using partial solutions
CN113792042B (zh) * 2021-08-10 2023-09-15 浪潮金融信息技术有限公司 一种表格分析数据集的配置方法、系统及介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0682370B2 (ja) * 1987-05-26 1994-10-19 シャープ株式会社 文字処理装置
JPH07160684A (ja) * 1993-12-03 1995-06-23 Matsushita Electric Ind Co Ltd 文書圧縮装置および文書圧縮方法
US5978812A (en) * 1995-11-10 1999-11-02 Sony Corporation Information processor and method of information processing
US6058392A (en) * 1996-11-18 2000-05-02 Wesley C. Sampson Revocable Trust Method for the organizational indexing, storage, and retrieval of data according to data pattern signatures
JP4011595B2 (ja) 1998-02-02 2007-11-21 株式会社リコー 電子化文書検索システムおよび記録媒体
JP3754253B2 (ja) * 1999-11-19 2006-03-08 株式会社東芝 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム
US6510434B1 (en) * 1999-12-29 2003-01-21 Bellsouth Intellectual Property Corporation System and method for retrieving information from a database using an index of XML tags and metafiles
JP4608740B2 (ja) * 2000-02-21 2011-01-12 ソニー株式会社 情報処理装置および方法、並びにプログラム格納媒体
US6789229B1 (en) * 2000-04-19 2004-09-07 Microsoft Corporation Document pagination based on hard breaks and active formatting tags
US6826555B2 (en) * 2000-07-24 2004-11-30 Centor Software Corporation Open format for file storage system indexing, searching and data retrieval
US7080073B1 (en) * 2000-08-18 2006-07-18 Firstrain, Inc. Method and apparatus for focused crawling
AU2001286879A1 (en) * 2000-08-30 2002-03-13 Digimarc Corporation Exploiting familiar media attributes and vocabulary to acces network resources
TW548557B (en) * 2000-09-13 2003-08-21 Intumit Inc A method and system for electronic document to have fast-search category and mutual link
TW482964B (en) * 2000-11-02 2002-04-11 Way Tech Dev Inc Method and system for conducting web page segmentation with automatic web page program code analysis
US7139973B1 (en) * 2000-11-20 2006-11-21 Cisco Technology, Inc. Dynamic information object cache approach useful in a vocabulary retrieval system
NO316480B1 (no) * 2001-11-15 2004-01-26 Forinnova As Fremgangsmåte og system for tekstuell granskning og oppdagelse
US7257268B2 (en) * 2003-02-28 2007-08-14 Aperio Technologies, Inc. Systems and methods for image pattern recognition
US7502773B1 (en) * 2003-12-31 2009-03-10 Microsoft Corporation System and method facilitating page indexing employing reference information
US7702618B1 (en) * 2004-07-26 2010-04-20 Google Inc. Information retrieval system for archiving multiple document versions
JP2006099181A (ja) 2004-09-28 2006-04-13 Toshiba Corp データ検索システム及びデータ格納方法
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
JP4314221B2 (ja) 2005-07-28 2009-08-12 株式会社東芝 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム
US7502765B2 (en) * 2005-12-21 2009-03-10 International Business Machines Corporation Method for organizing semi-structured data into a taxonomy, based on tag-separated clustering
JP4697491B2 (ja) * 2006-03-31 2011-06-08 日本電気株式会社 ウェブコンテンツ閲覧情報表示装置、方法、プログラム
US7509477B2 (en) * 2006-04-12 2009-03-24 Microsoft Corporation Aggregating data from difference sources
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US8086594B1 (en) * 2007-03-30 2011-12-27 Google Inc. Bifurcated document relevance scoring
US20080294619A1 (en) * 2007-05-23 2008-11-27 Hamilton Ii Rick Allen System and method for automatic generation of search suggestions based on recent operator behavior
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US20090228777A1 (en) * 2007-08-17 2009-09-10 Accupatent, Inc. System and Method for Search
US8019745B2 (en) * 2008-04-16 2011-09-13 Ciena Corporation Data retrieval from a plurality of distinct storage devices using an index value

Also Published As

Publication number Publication date
US20080240619A1 (en) 2008-10-02
US8898555B2 (en) 2014-11-25
JP2008242605A (ja) 2008-10-09

Similar Documents

Publication Publication Date Title
JP4398988B2 (ja) 構造化文書を管理する装置、方法およびプログラム
US9424294B2 (en) Method for facet searching and search suggestions
US7886224B2 (en) System and method for transforming tabular form date into structured document
JP5338238B2 (ja) ワードの類似性を用いたオントロジーの自動生成
JP5392077B2 (ja) オントロジ処理装置、オントロジ処理方法、及びオントロジ処理プログラム
JPWO2009063925A1 (ja) 文書管理・検索システムおよび文書の管理・検索方法
JP5121146B2 (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
US7822788B2 (en) Method, apparatus, and computer program product for searching structured document
JP5135272B2 (ja) 構造化文書管理装置、及び方法
JP6550448B2 (ja) データ管理装置、データ管理方法、およびプログラム
JP4247135B2 (ja) 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
JP2006185408A (ja) データベース構築装置及びデータベース検索装置及びデータベース装置
JP4237813B2 (ja) 構造化文書管理システム
JP5552981B2 (ja) 索引方法、検索方法、及びその記憶媒体
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2005242416A (ja) 自然言語文の検索方法および検索装置
JP4649339B2 (ja) XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
JP4937709B2 (ja) 構造化文書生成方法及び装置及びプログラム
US7953761B2 (en) System, method, and apparatus for retrieving structured document and apparatus for managing structured document
JP4562130B2 (ja) Xmlデータ処理装置、xmlデータ処理方法、xmlデータ処理プログラムおよびxmlデータ処理プログラムを記録した記憶媒体
JP4266584B2 (ja) テキストデータ群生成装置、テキストデータ群生成方法、プログラムおよび記録媒体
JP2006018584A (ja) 構造化文書管理システム、値索引生成方法及びプログラム
JP2013175053A (ja) Xml文書検索装置及びプログラム
JP5903372B2 (ja) キーワード関連度スコア算出装置、キーワード関連度スコア算出方法、及びプログラム
JP3843574B2 (ja) 文書変換規則生成装置、文書変換規則生成方法及び文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

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: 20090929

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: 20091023

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4398988

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: 20121030

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350