JP2008243074A - 文書検索装置、方法及びプログラム - Google Patents

文書検索装置、方法及びプログラム Download PDF

Info

Publication number
JP2008243074A
JP2008243074A JP2007085974A JP2007085974A JP2008243074A JP 2008243074 A JP2008243074 A JP 2008243074A JP 2007085974 A JP2007085974 A JP 2007085974A JP 2007085974 A JP2007085974 A JP 2007085974A JP 2008243074 A JP2008243074 A JP 2008243074A
Authority
JP
Japan
Prior art keywords
character string
partial character
search
neighborhood
document
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.)
Pending
Application number
JP2007085974A
Other languages
English (en)
Inventor
Akiko Kaminaga
昭子 神長
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 JP2007085974A priority Critical patent/JP2008243074A/ja
Publication of JP2008243074A publication Critical patent/JP2008243074A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】近傍検索にかかる処理を効率的に行うことが可能な文書検索装置、方法及びプログラムを提供する。
【解決手段】検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリに基づいて、各文字列を部分文字列に分割し、各部分文字列について取得した索引情報から、各部分文字列が前記近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランに適合した索引情報を用いて、前記近傍条件を満たすか否かの判定を行う。
【選択図】 図16

Description

本発明は、大量の電子文書から、検索条件に適合する文書を取得する文書検索装置、方法及びプログラムに関する。
従来より、検出したい文書に関連するキーワードを与えることで、大量の電子文書から当該キーワードを含む文書を検索する文書検索装置が用いられている。また、上記した複数のキーワードとともに、これらキーワードの位置関係を指定した近傍検索条件を用いることが広く行われている。従来、これら文書の検索について、より目的に合った文書を取得するための種々の技術が提案されている。
例えば、特許文献1では、検索処理装置の機能の一つとして、検出したキーワードの位置や距離が、近傍条件に適合するか否かを比較判定する方法が開示されており、圧縮ファイルに複数のキーワードが含まれているか否かを判定後、本文スキャンにより距離の判定を行うようになっている。また、特許文献2では、キーワードの位置情報と所定の検索条件との適合判定に関し、検索条件に適合した照合結果を検索結果として出力し、以後の検索処理を中止するという技術が提案されている。
特許第3099298号公報 特開2004−157628号公報
しかしながら、特許文献1に記載の技術では、検索対象である文書の中に検索キーワードが含まれているだけでなく、他のキーワードとの位置関係及び距離を計算し判定する必要があるため、例えば複数キーワードのAND検索と比べて検索処理にかかるコストが高くなるという問題がある。また、大量の文書全てについて近傍検索を行うため、検索処理件数が膨大となり、処理に要する時間が増加、即ち検索処理にかかるコストが高くなるという問題がある。
また、近傍検索処理に必要な位置情報取得処理を考えた場合、文書や文書の圧縮情報をスキャンする方法や、転置ファイルを用いた索引方式が挙げられるが、大量文書を対象とする場合には、前者の方法では処理コストの限界がある。ここで、転置ファイルを用いた索引方式とは、文書の文字列を所定のルールに従って部分文字列に分割し、部分文字列毎に当該部分文字列に含まれた各語が文書セットどの位置に出現したかを予めに記録しておき、検索する際には、検索キーワードをこれら部分文字列に関して索引から元の位置情報を取得する方式である。
上記索引方式では大量文書を対象とした場合、索引情報も大量になるため、大容量のハードディスクなどに記録する場合にはハードディスクの処理効率を考慮に入れる必要がある。一般的にハードディスクの読み出し処理は連続実行が効率的といえる。つまり、文書毎に部分文字列の索引を取得する手順よりも、部分文字列毎に索引を取得し同文書に含まれているか確認するほうが効率的である。
また、特許文献2に記載の技術において、索引方式との併用を考えると、近傍検索判定を行うために全てのキーワードの位置情報を前の方から順に必要とするため、処理の効率が低下する可能性がある。また、索引処理終了後に特許文献2の技術を用いる場合、大量の文書中に存在するキーワードの位置情報の取得処理が無駄な位置情報の分も実行されてしまい、適合パターンが発見された時点で、他の候補の検索処理を行わないと言う利点を活用することができない。更に、全てのキーワードの夫々について索引情報を保持し、一括して近傍検索処理にかけることになるため、索引情報を保持しておくメモリ量が近傍検索の直前には膨大になる恐れがある。
本発明は、上記に鑑みてなされたものであって、近傍検索にかかる処理を効率的に行うことが可能な文書検索装置、方法及びプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数の文書を記憶する文書記憶手段と、検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力手段と、前記文字列から部分文字列を生成する分割手段と、前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出手段と、前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定手段と、前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成手段と、前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得手段と、前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得手段と前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定手段と、を備える。
また、本発明は、検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力工程と、前記文字列から部分文字列を生成する分割工程と、前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出工程と、前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定工程と、前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成工程と、前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得工程と、前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得工程と前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定工程と、を含む。
また、本発明は、複数の文書を記憶及び管理するコンピュータに、複数の文書を記憶及び管理するコンピュータに、検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力機能と、前記文字列から部分文字列を生成する分割機能と、前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出機能と、前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定機能と、前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成機能と、前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得機能と、前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得機能と前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定機能と、を実現させる。
本発明によれば、検索クエリに含まれた各文字列にかかる部分文字列の索引情報のうち、近傍条件に適合しない索引情報を当該索引情報の取得時に除外することができるため、最終的に近傍条件と比較を行う索引情報の件数を抑えることが可能となり、近傍検索にかかる処理を効率的に行うことができる。また、事前に検索処理順序を決定し、当該検索処理順序に応じた近傍検索プランを生成することで、より最適な検索処理手順で近傍検索を行うことが可能となるため、近傍検索をより効率的に行うことができる。
以下に添付図面を参照して、文書処理装置、方法及びプログラムの最良な実施形態を詳細に説明する。
図1は、文書検索装置100のハードウェア構成を示した図である。図1に示すとおり、文書検索装置100は、CPU101、操作部102、表示部103、ROM104、RAM105、文書記憶部106、通信部107等を備える。
CPU101は、RAM105の所定領域を作業領域として、ROM104に予め記憶された各種制御プログラムとの協働により各種処理を実行し、文書検索装置100を構成する各部の動作を統括的に制御する。
また、CPU101は、ROM104に予め記憶された所定のプログラムとの協働により、後述する部分文字列分割部11、索引頻度情報取得部12、処理順序判定部13、近傍検索プラン生成部14、索引処理部15及び近傍条件判定部16(図2参照)の各機能部を実現させる。なお、各機能部の動作については後述する。
操作部102は、各種入力キー等を備え、ユーザから操作入力された情報を入力信号として受け付け、その入力信号をCPU101に出力する。
表示部103は、LCD等により構成され、CPU101からの表示信号に基づいて、各種情報を表示する。なお、表示部103は、操作部102と一体的にタッチパネルを構成する態様としてもよい。
ROM104は、文書検索装置100の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
RAM105は、SDRAM等の記憶手段であって、各種データを書換え可能に記憶する性質を有していることから、CPU101の作業エリアとして機能し、バッファ等の役割を果たす。
文書記憶部106は、磁気的又は光学的に記録可能な記録媒体を有し、各文書を識別するための文書ID(DID)と、文書とを対応付けて記憶している。
通信部107は、ネットワークを通じ外部の機器との間で通信を行うインターフェースであって、外部機器から送信された各種情報をCPU101に出力し、また、CPU101から出力される各種情報を外部機器へと送信する。
図2は、文書検索装置100の機能的構成を示したブロック図である。図2に示したように、文書検索装置100は、部分文字列分割部11、索引頻度情報取得部12、処理順序判定部13、近傍検索プラン生成部14、索引処理部15、近傍条件判定部16等を有している。
部分文字列分割部11は、検索クエリにて指定された全てのキーワードついて、N−Gram方式や、形態素解析による単語単位の分割方式等により、部分文字列に分割する。
ここで、検索クエリとは、文書記憶部106に記憶された文書から、特定のキーワードを含んだ文書を検索するための検索条件であって、ユーザから操作部102を介して又は通信部107を介して入力される情報である。ここで、検索クエリには、検索対象となる複数のキーワードが含まれており、また、これらキーワード間の位置関係に関する条件を指示した近傍条件が含まれているものとする。
図3−1から図3−4は、検索クエリの例を示した図である。図3−1から図3−4に示したように、検索クエリには、複数のキーワード(“検索クエリ”、“XML”等)と、これらキーワードの位置関係に関する条件を指示する近傍条件(distance at most 7 letters等)と、が含まれている。
近傍条件には、キーワード間の距離やキーワードの出現順序等、位置関係に関する所定の条件が定義される。ここで、キーワード間の距離の単位は任意であり、例えば、文字数や単語数、更には文の数や、段落の数としてもよく、この条件は、どのような単位で索引の位置情報を保持しているかに依存する。なお、図3−1から図3−4では文字数(letters)を単位にした例を示している。
図3−1の検索クエリに含まれる近傍条件「distance at most N letters(Nは任意の整数)」は、指定されたキーワード間の距離が、N文字以内であることを条件とするものである。即ち、図3−1の検索クエリは、3つのキーワード「検索クエリ」、「XML」、「索引ファイル」の間が夫々7文字以内であることを検索条件としている。
また、図3−2の検索クエリに含まれる近傍条件「distance exactly N letters(Nは任意の整数)」は、指定されたキーワード間の距離が、丁度N文字であることを条件とするものである。即ち、図3−2の検索クエリは、3つのキーワード「検索クエリ」、「XML」、「索引ファイル」の間の距離が夫々7文字丁度であることを検索条件としている。
また、図3−3の検索クエリに含まれる近傍条件「window N letters(Nは任意の整数)」は、指定されたキーワードが、N文字以内に出現することを条件とするものである。即ち、図3−3の検索クエリは、3つのキーワード「検索クエリ」、「XML」、「索引ファイル」の全てが、30文字以内に出現することを検索条件としている。
また、図3−4の検索クエリに含まれる近傍条件「distance at most N letters ordered(Nは任意の整数)」は、指定されたキーワードが、N文字以内に出現し、且つ、指定したキーワードの順番通りに出現することを条件とするものである。即ち、図3−4の検索クエリは、3つのキーワード「検索クエリ」、「XML」、「索引ファイル」の間が7文字以内で、且つ、このキーワードの順番通りに出現することを検索条件としている。なお、以上4つの検索クエリ例を挙げたが、その指示内容は、上記例に限らないものとする。
図2に戻り、索引頻度情報取得部12は、部分文字列分割部11により分割された部分文字列について、当該部分文字列が検索対象となった文書中に出現する頻度を算出し、後述する出現頻度情報を生成する。
処理順序判定部13は、索引頻度情報取得部12により算出された出現頻度に応じ、各部分文字列の検索処理順序を決定する。具体的には、出現頻度の低い部分文字列から順に検索処理順序を決定する。
近傍検索プラン生成部14は、検索クエリに含まれた複数のキーワード及び近傍条件に基づいて、各部分文字列が近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成する。
索引処理部15は、処理順序判定部13により決定された検索処理順序に応じた順序で部分文字列を検索し、該当する文書の識別情報と、当該文書中における部分文字列の出現位置とを索引情報として順次取得する。また、索引処理部15は、索引情報の取得の際に近傍検索プランに基づいて後述する固定位置による判定又は領域による判定を行い、適合した索引情報を最終的な近傍条件判定の候補として保持する。
近傍条件判定部16は、索引処理部15で絞り込まれた後述する候補に基づいて、指示された近傍条件を満たすか否かの最終的な判定を行い、該当した候補を検索結果として出力する。
以下、文書検索装置100の動作について説明する。図4は、文書検索装置100で行われる近傍条件判定処理の手順を示したフローチャートである。
図4に示したように、近傍条件判定処理はステップS11〜ステップS16の各工程を有している。ステップS11〜ステップS15の各ステップで、検索クエリの解析と検索処理実施の準備処理を行い、最終的な近傍条件の判定をステップS16で行う。
以下、図4を参照して、本近傍条件判定処理の詳細を説明する。まず、部分文字列分割部11は、検索クエリに含まれた各キーワードを、予め定めた方法で部分文字列に分割する(ステップS11)。ここで、部分文字列に分割する方法は、検索対象となる文書の索引を作成する際に用いた方法を用いることが好ましく、例えば、N−Gram方式や、形態素解析による単語単位の分割方式等を利用することができる。
例えば、図3−1から図3−4の検索クエリで指示されたキーワードに対し、N−Gramを用いて2、3Gramで分割する場合には、「検索クエリ」は「検索」と「クエリ」、「索引ファイル」は「索引」と「引フ」と「ァイル」等に分割される。なお、「XML」は3Gramに当たるため、分割は行われず、この状態で部分文字列とみなされるものとする。分割境界はこの通りでなくても問題なく、また、別のGram数を設定して分割も行っても良い。
続いて、索引頻度情報取得部12は、ステップS11の処理で生成された部分文字列毎の索引を文書記憶部106から取得し、この取得結果から各部分文字列が検索対象の文書中に出現する頻度を算出した後、当該出現頻度を表す出現頻度情報を生成する(ステップS12)。なお、部分文字列毎の索引の取得は、公知の技術を用いることが可能であるものとする。
図5に出現頻度情報の一例を示す。図5に示したように、出現頻度情報には、各キーワードと、これらキーワードを分割して生成した部分文字列と、各々の部分文字列の出現頻度とが関係づけて格納されている。また、索引頻度情報取得部12は、上記した部分文字列と、出現頻度とともに、各部分文字列のオフセットを対応付けて格納する。
ここで、オフセットとは、一のキーワード中における部分文字列の出現位置を示した情報であって、自己の部分文字列が所属するキーワードの先頭を「0」とし、この先頭からの文字数で表される。例えば、部分文字列「検索」は、キーワード「検索クエリ」の先頭に出現するため、オフセットは「0」となる。また、部分文字列「クエリ」は、キーワード「検索クエリ」の先頭から数えて2文字目に出現するため、オフセットは「2」となる。この出現頻度情報及びオフセットは、近傍検索処理において、各部分文字列が属するキーワードの判定等、部分文字列間の関係についての判断の基となる。なお、図5の出現頻度情報に含まれる「検索処理順序」については後述する。
図4に戻り、処理順序判定部13は、ステップS12の処理で生成された出現頻度情報に含まれる各部分文字列の出現頻度に応じ、頻度の少ない部分文字列から検索処理が行われるように、検索処理順序を決定する(ステップS13)。ここで決定された検索処理順序は、図5の出現頻度情報に示した「検索処理順序」のように、各部分文字列と対応付けて格納される。
例えば、図5に示した出現頻度情報の場合、出現頻度が小さい順に検索処理順序を定めたとすると、「引フ」が最も出現頻度が低いため、検索処理順序は最初となる。このように、検索処理順序を決定することで、比較回数が最小となるため、文書の検索に係る処理コストを抑えることができる。
また、ステップS11での分割手法によっては、同じキーワードから異なる複数の部分文字列集合が生成される場合がある。このような場合には、索引頻度情報の取得後に、頻度が少ない部分文字列を含む部分文字列集合を選択することが好ましい。即ち、頻度情報を比較して、処理コストが少なくなる可能性が高いパターンを選ぶことが好ましい。
図6は、出現頻度情報の他の態様を示したものである。ここでは、キーワード「索引ファイル」の部分文字列と出現頻度を夫々示しており、キーワード「索引ファイル」を構成するための部分文字列の組合せが、2種類できた例を示している。ここで、組合せ1は、0.2k個と最も出現頻度が少ない部分文字列を含むため、絞り込み効果が高く処理コストが抑えられると考えられるため、「組合せ1」を選択することが好ましい。なお、図6において、「k」、「M」は出現頻度の単位を表し、それぞれキロ=10^3、メガ=10^6を意味している。
図4に戻り、近傍検索プラン生成部14では、検索クエリで指示された近傍条件に応じて、各部分文字列の有効範囲を求めるための拡張量を導出し、後段の索引処理時にて行う索引情報の絞り込みのための処理プランを、近傍検索プランとして生成する(ステップS14)。以下、図7を参照して、ステップS14の近傍検索プラン生成処理について説明する。
図7は、ステップS14の近傍検索プラン生成処理の手順を示したフローチャートである。ここで、近傍検索プラン生成部14は、処理順序判定部13によりステップS13で求められた部分文字列の検索処理順序に応じた順序で、各部分文字列を順次処理対象とする。また、近傍検索プラン生成部14は、出現頻度情報(図5参照)のオフセット値に基づいて、処理対象となった部分文字列と、前回処理対象となった部分文字列との関係を判定し、その判定結果に応じて後述する近傍検索プランを生成する。
なお、検索処理順序の最初の部分文字列については、比較対象となる部分文字列が存在しないため、近傍検索プラン生成部14は、処理対象としての設定は行うが、後述するステップS1402〜S1419までの処理は施さず、部分文字列の順番をカウントするカウンタ「i」の値に1を加算し(ステップS1401)、2番目の部分文字列を処理の対象とする。なお、本処理の開始時において、カウンタiの初期値は1(i=1)であるものとする。
次に、近傍検索プラン生成部14は、検索処理順序の二つ目以降の部分文字列について、プラン生成済の部分文字列と同じキーワードに所属するものか否かを判定する(ステップS1402)。ここで、近傍検索プラン生成部14は、処理済の部分文字列の中に、対象とする部分文字列と同じキーワードに含まれる部分文字列があると判定した場合には(ステップS1402;Yes)、同キーワードに含まれるプラン生成済の部分文字列を、出現頻度情報から取得する(ステップS1403)。そして、近傍検索プラン生成部14は、固定位置による比較方法を設定する(ステップS1404)。
ここで、固定位置による比較方式とは、部分文字列の出現位置に対して、加算や減算を行うオフセットの値や、検索クエリで指定された距離(文字間隔)分の間隔を開けてキーワードを並べた場合の部分文字列の距離を有効範囲とする方式である。
次いで、近傍検索プラン生成部14は、キーワードにおける各部分文字列の開始位置のオフセットを出現頻度情報(図5参照)から読み出し、同キーワードの部分文字列間の距離を導出する(ステップS1405)。そして、近傍検索プラン生成部14は、導出した値を有効範囲とし、ステップS1404で設定した比較方法と対応付け近傍検索プランとして保持する(ステップS1418)。
一方、ステップS1402において、近傍検索プラン生成部14は、プラン生成済の部分文字列と同じキーワードに所属しないと判定した場合には(ステップS1402;No)、続いて検索クエリの近傍条件に「distance exactly」と、語順指定(ordered)とが含まれているか否かを判定する(ステップS1406)。
ここで、近傍検索プラン生成部14は、検索クエリの近傍条件に「distance exactly」と語順指定とが含まれていると判定した場合には(ステップS1406;Yes)、前回の処理対処とした部分文字列を取得した後(ステップS1407)、固定位置による比較方法を設定する(ステップS1408)。
続いて、近傍検索プラン生成部14は、近傍条件で指示された語順に応じ、指定された距離分の間隔を空けてキーワードを並べた場合の部分文字列の距離を算出し(ステップS1409)。そして、近傍検索プラン生成部14は、算出した値を後の比較処理に用いる有効範囲とし、ステップS1408で設定した比較方法と対応付け近傍検索プランとして保持する(ステップS1418)。
また、ステップS1406において検索クエリの近傍条件に「distance exactly」が含まれ、且つ、語順指定が含まれる場合以外では(ステップS1406;No)、近傍検索プラン生成部14は、処理済みの部分文字列から最も短いキーワードの部分文字列を取得し(ステップS1410)、領域による比較方法を設定する(ステップS1411)。
領域による比較方式の場合、既に取得した部分文字列の位置を元に、正負の方向に対し、夫々対象とする部分文字列が取り得る範囲(領域拡張量)を有効範囲とする。そしてその有効範囲に対象とする部分文字列の位置が含まれている場合のみ索引情報を候補として追加することになる。有効範囲は取得済の部分文字列の位置を始点として拡張量を正負の方向にそれぞれ拡張して求める。拡張量は近傍条件によって求め方が異なり、これを事前に求めておくことで、索引処理時の有効範囲判定処理コストを軽くすることができる。
次いで、近傍検索プラン生成部14は、検索クエリの近傍条件を参照し、比較する部分文字列の関係を考慮して、正負の方向について、夫々比較の必要性の是非を判定する(ステップS1412)。ここで、負の方向について比較が必要と判定した場合には(ステップS1412;Yes)、負の方向についての比較の際に必要となる領域拡張量を算出する(ステップS1413)。ステップS1413での領域拡張量の算出については後述する。
また、正の方向についての比較が必要と判定した場合には(ステップS1414;Yes)、正の方向についての比較の際に必要となる領域拡張量を算出する(ステップS1415)。ステップS1415での領域拡張量の算出については後述する。
ここで、正負方向の比較処理における必要性の是非は、出現順指定とキーワードの位置関係に基づいて判定される。具体的には、図8に示した比較処理判定テーブルに基づいて判定される。なお、図8は、比較処理判定テーブルの一例を示した図である。
図8に示したように、語順指定「ordered」が指定された場合には、近傍検索プラン生成部14は、部分文字列を含むキーワードが検索クエリで指定された順番を確認し、比較元部分文字列(prev)が、対象としている部分文字列(current)よりも前に指定されていれば、負の方向の比較処理のみが必要と判断し、正の方向への比較処理は不要と判断する。
また、比較元部分文字列(prev)が、処理対象としている部分文字列(current)よりも後に指定されていれば、正の方向の比較処理のみが必要と判断し、負の方向への比較処理は不要と判断する。また、語順指定「reverse」が指定された場合には、「ordered」の条件と逆となるよう制御する。なお、検索クエリに語順指定が含まれていないと判定した場合には、正負の両方向に対して、比較処理を行うものとする。
複数のキーワードにかかる部分文字列がプラン生成済の場合、それら部分文字列の出現位置の前後関係によっては、比較方法のタイプが複数考えられる。このような場合、近傍検索プラン生成部14は、導出する有効範囲をより厳密にするために、1つの部分文字列に対し複数タイプのプランを生成するものとする。そのため、ステップS1416にて、近傍検索プラン生成部14は、他のタイプの比較方法にて近傍検索プランを生成するか否かを判断する(ステップS1416)。
ステップS1416において、近傍検索プラン生成部14は、部分文字列の出現位置の前後関係に基づいて、生成しないと判断した場合には(ステップS1416;No)、これまでに算出した正と負双方の領域拡張量のANDを有効範囲とし、ステップS1411で設定した比較方法と対応付け近傍検索プランとして保持する(ステップS1418)。
ここで、ステップS1413、ステップS1415で算出される領域拡張量の具体的な算出方法例について説明する。まず近傍検索プラン生成部14は、後述する基本拡張量を求め、始点となる部分文字列と索引取得対象となる部分文字列に基づいて、この基本拡張量を後述する補正処理により調整し、最終的な領域拡張量を求める。なお、後述する基本拡張量は、検索クエリに依存して導出されるため、部分文字列の何番目の処理においても共通の値となる。
上述した領域拡張量は、負と正の方向では算出方法が異なっている。具体的に、基本拡張量の算出方法は、図9に示した基本拡張量判定テーブルに基づいて設定される。図9に示したように、基本拡張量の導出方法は、近傍条件によって異なっている。例えば、近傍条件が「distance at most」又は「distance exactry」の場合には、基本拡張量として下記の様にキーワードの文字列長の合計と、近傍条件で指定された距離に対しキーワード数から1を減算した値を積算した値との和が、基本拡張量となる。また、近傍条件が「window」の場合には、この近傍条件で指定された距離が基本拡張量となる。
まず、負の方向に拡張する場合の補正処理を説明する。負の方向に拡張を行う場合、基本拡張量から確定文字列長と始点文字列補正値との二つを減じたものが拡張量となる。ここで、確定文字列長とは、処理対象の部分文字列のキーワードにおけるオフセットを意味する。つまりオフセットが0ならば確定文字列長は0であり、部分文字列がキーワードの3文字目から開始する場合はオフセットが2で確定文字列長も2となる。これはそのキーワードが基本拡張量の最も左端に位置する場合において、部分文字列がとりうる領域がオフセット分少なくなるためである。
また、始点文字列補正値とは、処理済部分文字列が最も左に位置すると想定して拡張量を算出する際に、基本拡張量から省くことができるそれ自体の文字列長を意味する。処理済の部分文字列のキーワードが1つだけの場合は、始点文字列補正値は(キーワード長−処理済の部分文字列オフセット)である。処理済の部分文字列のキーワードが複数ある場合で、前述したタイプ毎のプランを生成する場合には、夫々のキーワードの処理済部分文字列について算出する。また、タイプ毎のプランを生成しない場合には、処理済キーワードのうち最も短いものを選択することとしてもよい。
次に正の方向に拡張する場合の補正処理を説明する。正の方向に拡張を行う場合、基本拡張量から、必ず1文字分を減じ、更に確定文字列長と、最小最右端部分文字列長から1を減算した値(最小最右端部分文字列長−1)と、を減じる。ここで、確定文字列長は処理済部分文字列のうち、最も左端に来るキーワードの部分文字列であり、処理済部分文字列のキーワードが1つならばそれが対象となる。また、最小最右端部分文字列長とは、「引ファイル」から正の方向に最も遠い位置で適合する部分文字列の文字長を意味する。
また、キーワードが複数ある場合には、タイプ毎に算出してもよいし、キーワード長が最も短いものを対象として求めることとしてもよい。また(最小最右端部分文字列長−1)の最小最右端部分文字列は、未処理キーワードの最も短い部分文字列を対象に算出することとしてもよい。
図7に戻り、ステップS1416において、他のタイプの比較方法について生成を行うと判断した場合には(ステップS1416;Yes)、この新たな比較方法に関する情報を、後述するTYPE定義テーブル(図14参照)に格納し(ステップS1417)、ステップS1412の処理へと再び戻る。
ステップS1418において、近傍検索プラン生成部14は、導出された有効範囲と、当該有効範囲の導出に係る比較方法とを対応付けた近傍検索プランを、後述する検索プランテーブル(図13参照)に順次格納した後(ステップS1418)、全ての部分文字列について本近傍検索プラン生成処理を施したか否かを判定する(ステップS1419)。
ここで、未処理の部分文字列が存在すると判定した場合には(ステップS1419;No)、ステップS1401に再び戻り、ステップS13で決定された検索処理順序に応じて、次の部分文字列を処理対象とする。
一方、ステップS1419において、全ての部分文字列について本処理を施したと判定した場合には(ステップS1419;Yes)、図4のステップS15へと移行する。
以下、上記したステップS14の近傍検索プラン生成処理の具体的な動作を、図3−1に示した検索クエリの例を用いて説明する。
まず、近傍検索プラン生成部14は、ステップS13にて決定された検索処理順序に基づき、最初の部分文字列「引フ」を処理対象とした後、2番目の部分文字列「ァイル」を処理対象とする。ここで、近傍検索プラン生成部14は、ステップS1402において部分文字列「ァイル」が、先に処理した部分文字列「引フ」と同じキーワードの部分文字列であり、「引フ」に連続する部分文字列であると判定するため(ステップS1402;Yes)、ステップS1403〜ステップS1405の一連の処理により、近傍検索プランを導出する。
この近傍検索プランの生成時において、近傍検索プラン生成部14は、出現頻度情報に格納されたオフセット値に基づいて、「引フ」の先頭位置の2文字後に「ァイル」が続くと判断し、その有効範囲(固定値)を2とする。つまり、この近傍検索プランによれば、後述する検索処理時での部分文字列「ァイル」の索引取得時に、その位置が「引フ」の先頭位置+固定値(2)と一致するか否かの絞込(判定)処理を実施し、一致する場合のみ部分文字列「ァイル」が、索引情報として保持されることになる。
次に、近傍検索プラン生成部14は、ステップS13にて決定された検索処理順序に基づき、3番目の部分文字列「XML」を処理対象とする。ここで、近傍検索プラン生成部14は、ステップS1402及びステップS1406において、部分文字列「XML」が、取得済の部分文字列「引ファイル」とは異なるキーワードであると判定し(ステップS1402;No)、且つ、近傍条件が「distance exactly」と語順指定(ordered)で指示されていない(ステップS1406;No)と判定するため、ステップS1410〜ステップS1417の一連の処理により、近傍検索プランを導出する。
上記したように、領域による位置判定の場合、近傍検索プラン生成部14は、取得済の部分文字列の位置を元に、正負の方向にそれぞれ対象とする部分文字列が取り得る範囲を拡張し、その範囲を有効範囲として取得する。
例えば、図3−1の検索クエリ例の場合、隣り合うキーワードの間の距離が7文字以内という近傍条件が指示されているため、基本拡張量は、図10に示すように「28」となる。ここで、基本拡張量は上述したとおり、全ての検索キーワードの文字列長の和に、キーワード間の間隔の数と近傍条件で指示された距離との積(すなわち(キーワード数−1)×距離)を足すことで求められる値である。
近傍検索プラン生成部14は、基本拡張量を既に取得した部分文字列を始点とし、正負の方向に、近傍条件に応じた値を拡張することで補正を行い、この際の正負の拡張量を夫々求める。
部分文字列「XML」を索引取得対象とする場合、拡張量算出の概念図は図11のようになる。「引ファイル」の位置は取得済であるため、まず基本拡張量を負の方向に拡張する場合を考える。隣り合うキーワードが7文字以内という条件から、「XML」が「引ファイル」より負の方向に取り得る位置の範囲は、始点を「引ファイル」の末尾にしたところから、負の方向に基本拡張量分だけ拡張した領域となる。即ち、図11に示したとおり、負の方向に「引ファイルの」先頭位置の前から23文字目という最小値への領域拡張量が求まる。
次に、正の方向への拡張は、拡張量を先ほどとは反対方向に向け、その始点は既に取得済の部分文字列の最小位置すなわち「引ファイル」の先頭位置とする。なお、正の方向への拡張を行う場合、考慮すべき事項が三点ある。
一つ目は、正の方向に拡張する場合は必ず、部分文字列が構成するキーワードの始点を、当該部分文字列の始点とすることである。例えば、部分文字列「引ファイル」の場合には、その始点をキーワード「索引ファイル」の始点までずらすため、基本拡張量から1を減ずる。
二つ目は、基本拡張量の正の方向への拡張する際の始点についてある。正の方向の場合は必ず、部分文字列が構成するキーワードの始点を基本拡張量の始点とし、この基本拡張量の始点から、処理対象となる部分文字列の先頭位置までの差分値を基本拡張量から減算した位置を拡張量の開始点とする。例えば、図11に示した部分文字列「引ファイル」が、キーワード「索引ファイル」の構成要素として成立するため、即ち検索クエリに適合するためには必ず、文字「索」が「引ファイル」の1つ前の位置にあるべきである。そのため、拡張量の開始点は「引ファイル」の1つ前の位置にあるべきであるため、基本拡張量の始点から文字「索」分の1を減じることになる。
三つ目は、基本拡張量から更に、「最小最右端部分文字列長−1」を減じる点である。ここで、最小最右端部分文字列長は、処理対象となる部分文字列から正の方向に最も遠い位置で適合する部分文字列の文字長である。例えば、正方向の基本拡張量の最右端は「26」であるが、「XML」が基本拡張量の最右端に出現する場合、その末尾が「26」であり、通常位置情報として用いている先頭位置は「24」となる。つまり「XML」の末尾2文字分の領域は取りえないので、基本拡張量の末尾方向から2減じる。このようにして正方向への拡張量は「24」と求まる。
このように、3番目の部分文字列「XML」の場合には、領域による比較方法を行うことと拡張量としての有効範囲とを指示した情報を、近傍検索プランとして対応付けて保持する。
次いで、近傍検索プラン生成部14は、ステップS13にて決定された検索処理順序に応じた順序で、次の部分文字列「クエリ」を処理対象とする。近傍検索プラン生成部14は、ステップS1402及びステップS1406において、取得済の部分文字列とは異なる新たなキーワードの部分文字列と判定し(ステップS1402;No)、且つ、近傍条件に「distance exactly」と語順指定(ordered)とが含まれていない(ステップS1406;No)と判定するため、ステップS1410〜ステップS1417の一連の処理により、近傍検索プランを導出する。
この際に、正負の領域拡張量とともに処理タイプを決定する。なぜなら、処理するキーワードの数が3つ以上になった際に、基本拡張量の始点が場合によって異なる為である。具体的には、図3−1の検索クエリの場合、「引ファイル」と「XML」とのどちらが先に出現するかにより、領域拡張量が異なることになる。なお、処理タイプの決定は、必須の処理ではなく、双方の領域拡張量のANDを算出しこの値を用いることで、この処理を省くことができる。
以下、図12を参照して、部分文字列「クエリ」に係る基本拡張量の補正について説明する。図12ではTYPE:AとBの二種類があり、それぞれ「XML」が先に出現した場合と、「引ファイル」が先に出現した場合の処理タイプを表している。
両処理タイプにおいても、負の方向の場合には、後に出現した部分文字列の末尾を始点とし、また、正の方向の場合には、先に出現した部分文字列の先頭を始点とする。これら始点に基づいて、確定文字列長の補正、正の方向の場合のみ基本拡張量−1と、最小最右端部分文字列長−1の補正を行う。
なお、処理済みのキーワードが3つ以上ある場合は、TYPEのパターン数は増加することになるが、その際には、既知の文字列の出現位置のうち最も大きい部分文字列と最も小さい部分文字列とを夫々始点とするものとする。このように、4番目の部分文字列「クエリ」の場合には、TYPE:Aの場合(21、25)、Bの場合(23、24)が領域拡張量、即ち有効範囲となる。
また、次に処理される部分文字列「索引」及び、更にその次の部分文字列「検索」は、2番目に処理された部分文字列「ァイル」と同様に、処理済みの部分文字列と所属するキーワードが同一である。そのため、元のキーワードの位置情報に基づいて、固定位置による方法により、近傍検索プランを導出する。
上記の処理により導出された近傍検索プランが格納される近傍検索テーブルの一例を図13に示す。また、上記したTYPEが定義されたTYPE定義テーブルを図14に示す。これら、近傍検索テーブル及びTYPE定義テーブルが、近傍検索プラン生成処理での出力となる。
図14のTYPE定義テーブルにおいて、TYPEの「0」と「1」のフラグは、上記したAとBの2種類の処理タイプを夫々表している。また、拡張量算出始点は、図12で説明したとおり、負方向と正方向で異なっており、ここでは、TYPE:A、すなわちTYPE:0の負の方向の領域拡張量を求める際は始点を1、反対に、正の方向の拡張量を求める際は始点を0としている。なお、この始点の値は、複数のキーワードの候補となる位置情報リストの配列番号を意味している。
例えば、図10の場合、TYPE:Aの領域の最小値を算出する際の始点は「引ファイル」、即ち、近傍検索プラン生成処理時に、最初の部分文字列「引ファ」にかかる文字列(キーワード)である。このような場合、近傍検索プラン生成部14は、始点となる「引ファイル」を第0キーワードと設定する。なお、次に処理する部分文字列「ァイル」は同じ第0キーワードに関係するため、特段の処理は施さないものとする。次に、3番目の部分文字列「XML」にかかる文字列(キーワード)は「XML」であるため、この「XML」を第1キーワードと設定する。
このように、近傍検索プラン生成部14は、TYPE定義テーブルへの格納時において、領域拡張量の算出始点を記録することになるため、上記した第0キーワード、第1キーワードの夫々に対応する配列番号0、1をTYPE定義テーブルに格納する。なお、配列番号として格納する値は、対応する文字列との関係が一意に判別することが可能であれば、他のルールに基づいて番号を割り振ることとしてもよい。例えば、検索クエリにて指示されたキーワードの指定順序を用いることとしてもよい。
図4に戻り、索引処理部15は、ステップS14の近傍検索プラン生成処理で生成された近傍検索プラン(テーブル)に従い、索引情報の検索処理を実行する(ステップS15)。以下、図15を参照して、ステップS15の検索処理について説明する。
図15は、検索処理の手順を示したフローチャートである。まず、索引処理部15は、ステップS13にて決定された検索処理順序に基づき、最初の部分文字列についての索引情報を文書記憶部106の文書から検索し、該当する索引情報を取得する(ステップS151)。ここで、取得される索引情報には、部分文字列が出現する文書のDIDと、当該文書中における出現位置を示した位置情報POSが少なくとも含まれているものとする。
次いで、索引処理部15は、ステップS13にて決定された検索処理順序に基づき、次の部分文字列を処理対象とすると、この部分文字列についての索引情報を文書記憶部106の文書から検索し、該当する索引情報を取得する(ステップS152)。続いて、索引処理部15は、今回処理分の近傍検索プランを近傍検索プランテーブルから参照し、この近傍検索プランに指示された検索方法と、有効範囲と、TYPEとに基づいて、前回及び今回取得した索引情報の絞り込みを行い(ステップS153)、適合した索引情報を、候補情報として取得する(ステップS154)。
続いて、索引処理部15は、全ての部分文字列について、本検索処理を施したか否かを判定し、未処理の部分文字列が存在すると判定した場合には(ステップS155;No)、ステップS152に戻り、次の部分文字列を処理対象とする。
一方、ステップS155において、全ての部分文字列について本検索処理を施したと判定した場合には(ステップS155;Yes)、図7のステップS16へと移行する。
以下、上記した検索処理の具体的な処理例を、図13に示した近傍検索プランに基づいて説明する。まず、索引処理部15は、ステップS13にて決定された検索処理順序に基づき、最初の部分文字列「引フ」の索引情報を文書記憶部106の文書から検索する(検索処理順序1)。ここで、図16(1)は、部分文字列「引フ」について取得された索引情報の一例を示している。
次に、索引処理部15は、次の部分文字列「ァイル」についての索引情報を文書記憶部106の文書から検索する。なお、図16(2)は、部分文字列「ァイル」について取得された索引情報の一例を示している。ここで、索引処理部15は、部分文字列「ァイル」についての索引情報を取得した際に、今回の検索処理(検索処理順序2)に対応する近傍検索プランを近傍検索プランテーブルから読み出し、当該近傍検索プランに指示された検索方法と、有効範囲とに基づいて索引情報の絞り込みを行う。
具体的に、索引処理部15は、検索方法が「固定」であることから、今回の処理分に対応する近傍検索プランで指示された有効範囲「2」に基づき、前回処理対象となった部分文字列「引フ」の索引情報のうちDIDが同一で、且つ、「POS+2」となるものが、部分文字列「引フ」と「ァイル」とが連続するための条件と判断し、この条件に該当する索引情報を部分文字列「ァイル」の索引情報から抽出する。
例えば、部分文字列「引フ」についての最初の索引情報が(DID=1、POS=23)であるため、索引処理部15は、部分文字列「引フ」に、部分文字列「ァイル」が連続するための条件として、(DID=1、POS=25)を導出する。
そのため、索引処理部15は、部分文字列「ァイル」の索引情報から、(DID=1、POS=25)を検索し、この(DID=1、POS=25)に該当する索引情報を特定すると、この特定した索引情報を抽出し候補情報として保持する。なお、索引処理部15は、「引フ」にかかる全ての索引情報について、上記同様の処理を行い、「ァイル」の索引情報から(DID=1、POS=94)、(DID=1、POS=134)、(DID=4、POS=69)、(DID=4、POS=380)を夫々特定し、これら索引情報を抽出し絞込情報として保持する。ここで、図16(3)は、部分文字列「引フ」と「ァイル」とが連続するという条件を満たした索引情報、即ち「引ファイル」についての候補情報の一例を示している。
次に、索引処理部15は、検索処理順序に応じて、三つ目の部分文字列「XML」についての索引情報を文書記憶部106の文書から検索する。図16(4)は、部分文字列「XML」について取得された索引情報の一例を示している。ここで、索引処理部15は、部分文字列「XML」についての索引情報を取得した際に、今回の検索処理(検索処理順序3)に対応する近傍検索プランを近傍検索プランテーブルから読み出し、当該近傍検索プランに指示された検索方法(領域)と、有効範囲(負方向に23、正方向に24)とに基づいて、索引情報の絞り込みを行う。
具体的に、索引処理部15は、検索方法が「合成」であることから、前回取得された「引ファイル」の索引情報を基準とし、部分文字列「XML」の索引情報が、近傍条件に適合するための条件(適合条件)が、「引ファイル」の各索引情報のPOSに「23」を減算及び「24」を加算したもの、即ち、(DID、「引ファイル」のPOS−23≦「XML」のPOS≦「引ファイル」のPOS+24)であると判断する。
例えば、「引ファイル」にかかる最初の索引情報は(DID=1、POS=23)である。これに対して部分文字列「XML」が近傍条件に適合する可能性のある有効範囲は負方向に23、正方向に24であるため、「引ファイル」を元に算出した索引情報の適合条件は(DID=1、POS=0〜47)となる。
そのため、索引処理部15は、「XML」にかかる索引情報のうち、「引ファイル」にかかる各索引情報に基づいて、上記適合条件に適合するものを順次抽出し、適合する「引ファイル」の候補情報(索引情報)と対応付けて、「引ファイル」と「XML」との候補情報として保持する(図16(5)参照)。ここで得られた候補情報は、近傍条件を満たす「引ファイル」と「XML」との索引情報の組み合わせ、即ち「引ファイル」&&「XML」についての候補情報を意味している。
具体的に、索引処理部15は、上述した適合条件は(DID=1、POS=0〜47)に対し、図16(4)中の索引情報(DID=1、POS=29)が適合すると判定し、この検索情報を抽出する。この際、索引処理部15は、「引ファイル」の出現位置が「XML」の出現位置より前か後ろかを、位置情報(POS)に基づいて判別し、このTYPE種別を絞込情報に対応付けて保持する。図16(5)では、TYPE種別を0もしくは1で表している。これは、近傍検索処理プランで述べたTYPEに相当し、後の部分文字列処理判定を行う際に用いる。
また、索引処理部15は、適合条件は(DID=1、POS=0〜47)について、図16(4)中の他の索引情報についても同様の比較を行うが、何れの索引情報の値も(DID=1、POS=0〜47)より大きく、該当する索引情報が存在しないため、「引ファイル」の索引情報について次の値に処理を移す。
次いで索引処理部15は、「引ファイル」に係る検索情報のうち(DID=1、POS=132)について比較を行う。この場合、適合条件(DID=1、POS=109〜156)に該当する「XML」は(DID=1、POS=128)及び(DID=1、POS=144)となる。このように複数の候補が発生した場合には、両者を候補として追加し、更に夫々該当するTYPEを付与するものとする。以後同様に、「引ファイル」の位置情報(POS)を元に、同じ文書で領域判定に適合する候補を取得する。
図16(5)は、「引ファイル」と「XML」について取得された索引情報の一例を示している。なおここで、「K1」、「K2」は、夫々異なる部分文字列(キーワード)に係る索引情報であることを意味している。なお、図16(5)では、K1が「引ファイル」に対応し、K2が「XML」に対応する。
次に、索引処理部15は、検索処理順序に応じて、四つ目の部分文字列「クエリ」についての索引取得を文書記憶部106の文書から検索する(検索処理順序4)。なお、図16(6)は、部分文字列「クエリ」について取得された索引情報の一例を示している。ここで、索引処理部15は、部分文字列「クエリ」の索引情報を取得した際に、近傍検索プランにあるとおり、同時に領域判定処理を行う。ここで、既に取得した「引ファイル」と「XML」との候補情報(図16(5)参照)に基づき、部分文字列「クエリ」との位置関係の判定を行う。
図16(5)に示したように、1番目の索引情報のTYPEは1であるため、索引処理部15は、適合条件の最小値を配列番号0に対応する「XML」の末尾位置に基づいて導出する。また、索引処理部15は、適合条件の最大値を配列番号1に対応する「引ファイル」の始点位置に基づいて導出する。なお、TYPEが0の際には、TYPE1の条件と逆となり、適合条件の最小値を配列番号0に対応する「引ファイル」の末尾位置に基づいて導出する。また、索引処理部15は、適合条件の最大値を配列番号1に対応する「XML」の始点位置に基づいて導出する。
例えば、図16(5)の最初の索引情報、「引ファイル」(DID=1、POS=23)、「XML」(DID=1、POS=29)については、対応する近傍検索プラン(負方向に23、正方向に24)、TYPE=1に基づいて、(DID=1、POS=6〜47)を適合条件として導出する。
そして、索引処理部15は、求めた適合条件について、上記と同様の絞り込み処理を部分文字列「クエリ」の索引情報に対して行い、部分文字列「クエリ」の索引情報について適合する(D=1、POS=33)を抽出する。続いて索引処理部15は、図16(5)に示した「引ファイル」&&「XML」の候補情報に含まれる索引情報のうち、部分文字列「クエリ」の索引情報に対応するものについて、適合した部分文字列「クエリ」の索引情報と対応付け、図16(7)に示した「引ファイル」&&「XML」&&「クエリ」の候補情報として保持する。ここで得られた候補情報は、近傍条件を満たす「引ファイル」と「XML」と「XML」との索引情報の組み合わせ、即ち「引ファイル」&&「XML」&&「クエリ」についての候補情報を意味している。以後同様に、「引ファイル」と「XML」との各索引情報について、「クエリ」の索引情報との比較を行い、適合条件に適合した索引情報を抽出し、候補情報として保持する。
索引処理部15は、上記の検索処理を、検索処理順序で指示された全ての部分文字列に対して行う。このように、近傍検索プランの指示内容に沿って、出現頻度が少ない部分文字列の順に処理することで、近傍条件に適合する可能性のある索引情報を絞り込むことができる。
図4に戻り、近傍条件判定部16は、ステップS15で最終的に生成された候補情報に基づいて、当該候補情報に含まれた各索引情報のキーワード(部分文字列)について、近傍条件を満たすか否かの最終的な判定を行い、この近傍条件を満たした索引情報に係る文書を文書記憶部106から読み出し、検索結果として表示部103等に出力した後(ステップS16)、本処理を終了する。
具体的に、近傍条件判定部16は、候補情報として格納された各キーワード間の距離を、位置情報(POS)を減算することで導出し、この値が近傍条件で指示された距離を満たしているかを判定する。なお、ステップS16にて近傍条件との判定を行う理由は、ステップS15の検索処理にかかる計算コスト削減のため、適合条件の判定に用いる領域値を一定としているためである、この拡張量は、厳密には端部に出現するキーワードにより、その詳細は変化するものであるため、候補の中には領域を超えているものが含まれている可能性がある。そのため、本ステップS16の処理では、それらの確認を行っている。なお、上記した処理により候補の大小関係はある程度既知であるため、キーワード間の距離算出前の大小関係確認コストの一部は省くことができる。すなわちTYPE:A及びBの情報を再利用することが可能である。
以上のように、本実施形態の文書検索装置、方法及びプログラムによれば、
検索対象となったキーワードにかかる部分文字列の索引情報の取得時に、近傍条件に明らかに適合しない位置情報を除外することができるため、最終的に近傍条件と比較を行う索引情報の件数を抑えることが可能となり、近傍検索にかかる処理を効率的に行うことができる。また、事前に検索処理順序を決定し、当該検索処理順序に応じた近傍検索プランを生成することで、より最適な処理手順で近傍検索を行うことが可能となり、近傍検索にかかる処理を効率的に行うことができる。
以上、発明の実施の形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加などが可能である。
例えば、上記実施形態では、検索対象となる複数の文書を記憶する文書記憶部106を文書検索装置100内に備える態様としたが、これに限らず、例えば、文書記憶部106を文書検索装置100の外部に備え、通信部107を介して接続する態様としてもよい。
文書検索装置の構成を示したブロック図である。 文書検索装置の機能的構成を示したブロック図である。 検索クエリの一例を示した図である。 検索クエリの一例を示した図である。 検索クエリの一例を示した図である。 検索クエリの一例を示した図である。 近傍検索処理の手順を示したフローチャートである。 出現頻度情報の一例を示した図である。 出現頻度情報の一例を示した図である。 近傍検索プラン生成処理の手順を示したフローチャートである。 比較処理判定テーブルの一例を示した図である。 基本拡張量判定テーブルの一例を示した図である。 拡張量の算出方法を説明するための図である。 拡張量の算出方法を説明するための図である。 基本拡張量の補正を説明するための図である。 近傍検索プランの一例を示した図である。 TYPE定義テーブルの一例を示した図である。 検索処理の手順を示したフローチャートである。 検索処理を説明するための図である。
符号の説明
100 文書検索装置
101 CPU
102 操作部
103 表示部
104 ROM
105 RAM
106 文書記憶部
107 通信部
11 部分文字列分割部
12 索引頻度情報取得部
13 処理順序判定部
14 近傍検索プラン生成部
15 索引処理部
16 近傍条件判定部

Claims (9)

  1. 複数の文書を記憶する文書記憶手段と、
    検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力手段と、
    前記文字列から部分文字列を生成する分割手段と、
    前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出手段と、
    前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定手段と、
    前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成手段と、
    前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得手段と、
    前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得手段と、
    前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定手段と、
    を備えたことを特徴とする文書検索装置。
  2. 前記順序決定手段は、前記出現頻度の低い順に前記部分文字列の検索処理順序を決定することを特徴とする請求項1に記載の文書検索装置。
  3. 前記プラン生成手段は、検索処理対象となった前記部分文字列が、前記近傍検索プラン生成済みの部分文字列と同じ文字列に所属すると判定した場合、これら部分文字列の開始位置間の距離を前記有効範囲として設定することを特徴とする請求項1に記載の文書検索装置。
  4. 前記プラン生成手段は、検索処理対象となった前記部分文字列が、前記近傍検索プラン生成済みの部分文字列と異なる文字列に所属すると判定した場合、前記近傍条件で指示された距離に応じた値を前記有効範囲として設定することを特徴とする請求項1に記載の文書検索装置。
  5. 前記プラン生成手段は、前回処理対象となった部分文字列と今回処理対象となった部分文字列との出現位置の前後関係に応じて、前記近傍検索プランを複数生成することを特徴とする請求項4に記載の文書検索装置。
  6. 前記候補取得手段は、前記索引情報が取得される毎に、前回取得した候補情報に基づいて、当該索引情報が有効範囲に適合するか否かを判定することを特徴とする請求項1に記載の文書検索装置。
  7. 前記候補取得手段は、前記検索クエリに含まれる各文字列と一致する連続した複数の部分文字列を、前記候補情報として夫々取得することを特徴とする請求項6に記載の文書検索装置。
  8. 検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力工程と、
    前記文字列から部分文字列を生成する分割工程と、
    前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出工程と、
    前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定工程と、
    前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成工程と、
    前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得工程と、
    前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得工程と
    前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定工程と、
    を含むことを特徴とする文書検索方法。
  9. 複数の文書を記憶及び管理するコンピュータに、
    検索対象となる複数の文字列と、当該文字列間の距離に関する条件を指示する近傍条件と、を含んだ検索クエリの入力を受け付ける入力機能と、
    前記文字列から部分文字列を生成する分割機能と、
    前記部分文字列毎に、前記文書中に出現する出現頻度を算出する頻度算出機能と、
    前記出現頻度に応じて、前記部分文字列毎の検索処理順序を決定する順序決定機能と、
    前記検索クエリに含まれた複数の文字列及び近傍条件に基づいて、前記各部分文字列が当該近傍条件に適合するための出現位置の有効範囲を指示した近傍検索プランを、前記検索処理順序に応じた順序で生成するプラン生成機能と、
    前記複数の文書から、前記検索処理順序に応じた順序で前記部分文字列を検索し、該当する文書の識別情報と、当該文書中における前記部分文字列の出現位置とを索引情報として順次取得する索引取得機能と、
    前記索引情報に含まれた部分文字列の出現位置が、前記近傍検索プランに指示された有効範囲に適合するか否かを判定し、適合した索引情報を候補情報として取得する候補取得機能と
    前記各候補情報に含まれた前記部分文字列の出現位置に基づいて、連続した複数の部分文字列からなる文字列間の距離を導出し、前記近傍条件で指示された距離を満たすか否かを判定する判定機能と、
    を実現させることを特徴とする文書検索プログラム。
JP2007085974A 2007-03-28 2007-03-28 文書検索装置、方法及びプログラム Pending JP2008243074A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007085974A JP2008243074A (ja) 2007-03-28 2007-03-28 文書検索装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007085974A JP2008243074A (ja) 2007-03-28 2007-03-28 文書検索装置、方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2008243074A true JP2008243074A (ja) 2008-10-09

Family

ID=39914293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007085974A Pending JP2008243074A (ja) 2007-03-28 2007-03-28 文書検索装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2008243074A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211698A (ja) * 2009-03-12 2010-09-24 Mitsubishi Electric Corp 機器台帳サーバ
CN103577532A (zh) * 2012-08-10 2014-02-12 国际商业机器公司 用于文本处理的方法和系统
JP6172694B1 (ja) * 2016-11-14 2017-08-02 国立大学法人名古屋大学 レポートの分類システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211698A (ja) * 2009-03-12 2010-09-24 Mitsubishi Electric Corp 機器台帳サーバ
CN103577532A (zh) * 2012-08-10 2014-02-12 国际商业机器公司 用于文本处理的方法和系统
US20140046654A1 (en) * 2012-08-10 2014-02-13 International Business Machines Corporation Text processing method, system and computer program
US9471548B2 (en) 2012-08-10 2016-10-18 International Business Machines Corporation Text processing method, system and computer program
US9652526B2 (en) 2012-08-10 2017-05-16 International Business Machines Corporation Text processing method, system and computer program
US10353932B2 (en) 2012-08-10 2019-07-16 International Business Machines Corporation Text processing method, system and computer program
JP6172694B1 (ja) * 2016-11-14 2017-08-02 国立大学法人名古屋大学 レポートの分類システム

Similar Documents

Publication Publication Date Title
WO2018040899A1 (zh) 搜索词纠错方法及装置
JP3689455B2 (ja) 情報処理方法及び装置
CN108182207B (zh) 基于分词网络的中文手术操作的智能编码方法及系统
KR20150070171A (ko) 스트링 변환의 귀납적 합성을 위한 랭킹 기법
US9507881B2 (en) Search device
US8032534B2 (en) Method and system for indexing and searching high-dimensional data using signature file
JP6447161B2 (ja) 意味構造検索プログラム、意味構造検索装置、及び意味構造検索方法
CN105630763A (zh) 用于提及检测中的消歧的方法和系统
JP6434162B2 (ja) データ管理システム、データ管理方法およびプログラム
CN105404677A (zh) 一种基于树形结构的检索方法
Provatorova et al. Named entity recognition and linking on historical newspapers: UvA. ILPS & REL at CLEF HIPE 2020
US9524354B2 (en) Device, method, and program for processing data with tree structure
CN106933824A (zh) 在多个文档中确定与目标文档相似的文档集合的方法和装置
JP2008243074A (ja) 文書検索装置、方法及びプログラム
JP5355483B2 (ja) 略語完全語復元装置とその方法と、プログラム
US20140121986A1 (en) System and method for aligning genome sequence
US20200320170A1 (en) Identifying section headings in a document
CN109508390A (zh) 基于知识图谱的输入预测方法、装置和电子设备
CN105426490A (zh) 一种基于树形结构的索引方法
CN113407693B (zh) 一种用于全媒体审读的文本相似度比对方法及装置
KR20100105080A (ko) 엔-그램 기반의 질의 처리 장치 및 그 방법
KR101113787B1 (ko) 텍스트 색인 장치 및 방법
JP2015069393A (ja) 文書データ比較方法、文書データ比較装置、及び文書データ比較プログラム
JP2003242446A (ja) 文字列予測装置及び方法並びに当該方法を具現化するコンピュータ実行可能なプログラム
KR101452638B1 (ko) 유사 문자열 검색 방법 및 장치