(57)【特許請求の範囲】
【請求項１】
クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成する段階と、
多数の文書の情報が保存されたデータベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定する段階と、
前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索する段階と、を含み、
前記有効ストリングセットを生成する段階は、
前記クエリストリングを長さの異なる複数個のＮ−gramに分離し、
前記複数個のＮ−gramにおいて、前記データベースの索引語に含まれるＮ−gramを選択し、
前記選択されたＮ−gramにおいて、他のＮ−gramに含まれないＮ−gramセットを、前記有効ストリングセットとして決定することを含む、クエリ処理方法。
【請求項２】
前記候補セットは、
アクセスコストが基準値以下を有するサブセットであることを特徴とする請求項１に記載のクエリ処理方法。
【請求項３】
前記基準値は、
前記有効ストリングセットのサブセットに係わるアクセスコストの算出時、既算出のアクセスコストのうち最小値であることを特徴とする請求項２に記載のクエリ処理方法。
【請求項４】
前記アクセスコストは、
前記データベースで、前記サブセットに含まれた部分ストリングそれぞれのポスティングリストをアクセスして読み取るのにかかるコストの和と、前記データベースで、前記サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報にアクセスして読み取るのにかかるコストとのうち、少なくとも一つであることを特徴とする請求項１に記載のクエリ処理方法。
【請求項５】
前記有効ストリングセットの部分ストリングのうち、少なくとも２つの部分ストリングの長さは、互いに異なることを特徴とする請求項１に記載のクエリ処理方法。
【請求項６】
前記有効ストリングセットの部分ストリングは、前記有効ストリングセットの他の部分ストリングに含まれないことを特徴とする請求項１に記載のクエリ処理方法。
【請求項７】
前記候補セットは、
前記有効ストリングセットのサブセットのうち、前記アクセスコストが最小であるサブセットとして決定されることを特徴とする請求項１に記載のクエリ処理方法。
【請求項８】
前記候補セットは、
前記有効ストリングセットのサブセットのうち、部分ストリングが追加されるときのアクセスコストより、アクセスコストの小さいサブセットでもって決定されることを特徴とする請求項１に記載のクエリ処理方法。
【請求項９】
前記候補セットとして決定する段階は、
前記有効ストリングセットのサブセットをツリー構造に整列し、
深さ優先探索方法で前記ツリー構造でのサブセットを選択し、
前記選択されたサブセットのアクセスコストを算出し、
最小のアクセスコストを有するサブセットを候補セットとして決定することを含むことを特徴とする請求項１に記載のクエリ処理方法。
【請求項１０】
前記候補セットとして決定する段階は、
前記有効ストリングセットのサブセットのうち、部分ストリングの個数が同一である第１サブセットを選択し、
前記第１サブセットそれぞれに係わるアクセスコストを算出し、
最小のアクセスコストを有するサブセットを候補セットとして予想し、
前記有効ストリングセットのサブセットのうち、前記予想された候補セットに部分ストリングが追加された第２サブセットを選択し、
前記第２サブセットそれぞれに係わるアクセスコストが、前記予想された候補セットのアクセスコストより大きければ、前記予想された候補セットを候補セットとして決定することを含むことを特徴とする請求項１に記載のクエリ処理方法。
【請求項１１】
前記データベースは、
索引ツリー及びポスティングリストを含む逆索引データベースと、
識別情報を有する多数の文書が保存された文書データベースと、を含むことを特徴とする請求項１に記載のクエリ処理方法。
【請求項１２】
前記文書を決定する段階は、
前記逆索引データベースで、前記候補セットの部分ストリングいずれもとマッチングしていいる文書の識別情報を検索し、
前記文書データベースで、前記文書の識別情報を有する文書を検索することを含むことを特徴とする請求項１１に記載のクエリ処理方法。
【請求項１３】
請求項１ないし請求項１２のうち、いずれか一項に記載の方法を遂行するためのプログラムが記録されるコンピュータで読み取り可能な記録媒体。
【請求項１４】
クエリストリングが入力され、前記クエリストリングが存在する文書が出力されるユーザ・インターフェースと、
多数の文書に係わる情報が保存されたデータベースと、
前記クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成し、前記データベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定し、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索するプロセッサと、
を含み、
前記プロセッサは、
前記クエリストリングを長さの異なる複数個のＮ−gramに分離し、
前記複数個のＮ−gramにおいて、前記データベースの索引語に含まれるＮ−gramを選択し、
前記選択されたＮ−gramにおいて、他のＮ−gramに含まれないＮ−gramセットを、前記有効ストリングセットとして決定する、
ことにより前記有効ストリングセットを生成する、クエリ処理装置。
【請求項１５】
前記アクセスコストは、
前記データベースで、前記サブセットに含まれた部分ストリングそれぞれのポスティングリストにアクセスして読み取るのにかかるコストの和と、前記データベースで、前記サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報にアクセスして読み取るのにかかるコストと、のうち少なくとも一つであることを特徴とする請求項１４に記載のクエリ処理装置。
【請求項１６】
前記有効ストリングセットの部分ストリングのうち、少なくとも２つの部分ストリングの長さは、互いに異なることを特徴とする請求項１４に記載のクエリ処理装置。
【請求項１７】
前記有効ストリングセットの部分ストリングは、前記有効ストリングセットの他の部分ストリングに含まれないことを特徴とする請求項１４に記載のクエリ処理装置。
【請求項１８】
前記候補セットは、
前記有効ストリングセットのサブセットのうち、前記アクセスコストが最小であるサブセットでもって決定されることを特徴とする請求項１４に記載のクエリ処理装置。
【請求項１９】
前記候補セットは、
前記有効ストリングセットのサブセットのうち、部分ストリングが追加されるときのアクセスコストより、アクセスコストの小さいサブセットとして決定されることを特徴とする請求項１４に記載のクエリ処理装置。
【請求項２０】
前記データベースは、
索引ツリー及びポスティングリストを含む逆索引データベースと、
識別情報を有する多数の文書が保存された文書データベースと、を含むことを特徴とする請求項１４に記載のクエリ処理装置。
【請求項２１】
前記プロセッサは、
前記逆索引データベースで、前記候補セットの部分ストリングいずれともマッチングしている前記文書の識別情報を検索し、
前記文書データベースで、前記文書の識別情報を有する文書を検索することを含むことを特徴とする請求項２０に記載のクエリ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、効率的にクエリストリング（query  string）を処理する方法及びその装置に関する。
【背景技術】
【０００２】
テキスト文書（document）の検索（searching）は、自然言語（natural  language）で表現された情報の検索、遺伝子列分析（genetic  sequence  processing）などの多様な分野で広く使われている。蛋白質とＤＮＡとの列（sequence）で特別のアルファベット列（例えば、ＤＮＡのＡ，Ｃ，Ｇ，Ｔ）は、テキスト文書と見なされる。かようなテキスト文書の検索のための代表的な確率モデルとして、Ｎ−gramモデルを挙げることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、長さの異なる複数個の部分ストリングを使用し、検索性能を向上させるクエリ処理方法及びその装置を提供するものである。
【０００４】
本発明はまた、複数個の部分ストリングセットのサブセットを効率的に決定し、クエリ処理性能を向上させるクエリ処理方法及びその装置を提供するものである。
【課題を解決するための手段】
【０００５】
一類型によるクエリ処理方法は、クエリストリングから長さが同じあるか、あるいは異なる複数個の部分ストリングから構成された有効ストリングセットを生成する段階と、多数の文書の情報が保存されたデータベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定する段階と、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索する段階と、を含む。
【０００６】
また、一類型によるクエリ処理装置は、クエリストリングが入力され、前記クエリストリングが存在する文書が出力されるユーザ・インターフェース；多数の文書に係わる情報が保存されたデータベース；及び前記クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成し、前記データベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定し、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索するプロセッサ；を含む。
【発明の効果】
【０００７】
本発明のクエリ処理方法及びその装置は、長さが固定されていない複数個の部分ストリングを使用するために、検索性能を向上させることができる。
【０００８】
併せて、既存の逆索引データベースの構造を変更させずに、候補セットに含まれる部分ストリングまたは候補セットの選定方法を改善したので、既存の逆索引データベースをそのまま活用することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態によるクエリ処理装置のブロック図である。
【図２】本発明の一実施形態によるクエリストリングによる文書を検索する方法について説明するフローチャートである。
【図３】本発明の一実施形態によるストリングセット生成部の細部ブロック図である。
【図４】本発明の一実施形態によるツリー構造で具現された索引語の構造を図示した図面である。
【図５】本発明の一実施形態による有効ストリングを生成する過程について説明するフローチャートである。
【図６】本発明の一実施形態による候補セット決定部の細部ブロック図である。
【図７】本発明の第１実施形態による候補セットを決定する方法について説明するフローチャートである。
【図８】本発明の一実施形態による第１実施形態を介して候補セットを決定する方法について説明するための図面である。
【図９】第２実施形態による候補セットを決定する方法について説明するフローチャートである。
【図１０】本発明の一実施形態による第２実施形態を介して候補セットを決定する方法について説明するための図面である。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照しつつ、本発明の実施形態について詳細に説明する。
【００１１】
図１は、本発明の一実施形態によるクエリ処理装置（apparatus  for  processing  query）のブロック図である。図１を参照すれば、クエリ処理装置１００は、ユーザ・インターフェース１０５、プロセッサ１３５及びストレージ１６５から構成される。クエリ処理装置は、ウェブページなどで表示される検索エンジンを具備し、クエリストリング（query  string）に係わる検索結果を出力するＰＣ（personal  computer）、携帯端末機などであってもよく、ユーザ端末と、インターネットのネットワークとに連結されている別途のサーバであってもよい。従って、図１に図示されたクエリ処理装置１００は、他のＰＣ、他の携帯端末機、他のサーバなどと通信するための通信モジュールなど、他の一般的な構成要素をさらに含んでもよい。
【００１２】
ユーザ・インターフェース１０５は、ユーザからクエリを入力され、このクエリによる文書の検索結果を出力する装置である。ここで、ユーザ・インターフェースは、ユーザからクエリを入力されるためのキーボード、マウスのような入力装置と、ユーザに文書の検索結果を表示するための出力装置と、を含み、ウェブページのようなＧＵＩ（graphic  user  interface）で表現されることもできる。ここで、クエリは、あるストリングを含んでいる文書を検索せよというユーザの要請を意味する。かようなクエリに含まれているストリングを、以下では簡単に、「クエリストリング」と呼ぶ。
【００１３】
ストレージ１６５には、任意のストリングを含んでいる多数の文書の情報が保存されている。例えば、ストレージ１６５には、索引語が保存されている索引語ＤＢ（index  term  database）１４０が含まれている。ストレージ１６５にはまた、文書検索に利用される部分ストリングである索引語と、索引語が含まれた文書の識別情報とがマッチングされた逆索引ＤＢ（inverted  index  database）１５０が保存されている。この逆索引ＤＢ  １５０は、文書に含まれた文字をＮ−gramに分離し、Ｎ−gramに分離された各部分ストリングを、当該文書に係わる情報とマッチングさせることによって生成される。また、文書の識別情報に対応する文書が保存された文書ＤＢ（document  database）１６０をさらに含むことができる。一方、文書ＤＢ  １６０は、クエリ処理装置に含まれるが、クエリ処理装置と通信可能な外部装置またはサーバに含まれてもよい。
【００１４】
プロセッサ１３５は、クエリストリングが入力されれば、クエリストリングをＮ−gramに分離し、逆索引ＤＢ  １５０で、クエリストリングに含まれた部分ストリングとマッチングされた文書の識別情報を読み取る。また、プロセッサ１３５は、検索された文書の識別情報を有する文書を、文書ＤＢ  １６０で読み取る。プロセッサ１３５は、その機能によって、ストリングセット生成部１１０、候補セット決定部１２０及び文書検索部１３０を含む。各構成要素の機能は、下記文書の検索方法でさらに具体的に説明する。
【００１５】
図２は、本発明の一実施形態による、プロセッサがクエリストリングによる文書を検索する方法について概略的に説明するフローチャートである。図２を参照すれば、２１０段階で、入力部からクエリストリングを受信すれば、２２０段階で、ストリングセット生成部１１０は、クエリストリングから、文書検索のために利用することができる部分ストリング、すなわち、有効ストリングから構成された有効ストリングセットを生成する。有効ストリングは、長さの異なる複数個の部分ストリングであって、有効ストリングは、他の有効ストリングに含まれないが、これについては後述する。
【００１６】
そして、２３０段階で、候補セット決定部１２０は、有効ストリングセットのサブセットのうちいずれか１つのサブセットを文書を検索するためのセット（以下、「候補セット」とする）として決定し、２４０段階で、検索部１３０は、前記した候補セットを利用し、前記クエリストリングが存在する文書を検索する。プロセッサの各構成要素に係わる機能及びクエリ処理方法は、以下でさらに具体的に説明する。
【００１７】
図３は、本発明の一実施形態によるストリングセット生成部１１０の細部ブロック図である。図３に図示されているように、ストリングセット生成部１１０は、クエリストリングを、長さの異なる複数個のＮ−gramに分離するＮ−gram分離部３１０、及びＮ−gramにおいて、索引語ＤＢ  １４０に保存された索引語に含まれるＮ−gramを、有効ストリングとして選択するストリング選択部３３０を含む。
【００１８】
索引語ＤＢ  １４０は、索引語に係わる情報が保存されたデータベースであり、索引語になるストリングの長さ範囲も保存されていてもよい。また、索引語ＤＢ  １４０は、ツリー構造に具現されてもよい。例えば、各ノードに単位文字が配置され、長さ範囲が設定される。従って、親ノードから子ノードに順次に連結された長さ範囲内の文字が索引語となる。索引語ＤＢ  １４０に保存された索引語は、逆索引ＤＢ  １５０に保存された索引語と一致しうる。説明の便宜を図るために、索引語ＤＢ  １４０について別途に説明したが、ストリング選択部３３０は、Ｎ−gramにおいて、逆索引ＤＢ  １５０の索引語に含まれたＮ−gramを、有効ストリングとして選択することができることは言うまでもない。
【００１９】
図４は、本発明の一実施形態による、ツリー構造で具現された索引語の構造を図示した図面である。図４を参照すれば、ツリー構造の各ノードには、単位文字が配置され、索引語の最小長は３であり、最大長は５であることが分かる。そして、「ｓ」、「ｕ」及び「ｂ」に該当するノードは、順次に連結されているために、「ｓｕｂ」は索引語となる。しかし、「ｓ」、「ｔ」、「ｒ」、「ｉ」及び「ｃ」に該当するノードは、順次に連結されていないために、「ｓｔｒｉｃ」は索引語にならない。
【００２０】
図５は、本発明の一実施形態による有効ストリングを生成する過程について説明するフローチャートである。
【００２１】
図５に図示されているように、クエリストリングが入力されれば、図５の５１０段階で、Ｎ−gram分離部３１０はクエリストリングを長さの異なる複数個のＮ−gramに分離する。Ｎ−gram長は、既定の長さ範囲内に含まれる。例えば、クエリストリングがｍ個の文字から構成されており、長さ範囲がｉからｋであるならば（このとき、２≦ｉ＜ｋ≦ｍである）、Ｎ−gram分離部３１０は、クエリストリングを、長さがｉであるＮ−gram、長さがｉ＋１であるＮ−gram、…、長さがｋ−１であるＮ−gram、長さがｋであるＮ−gramに分離する。
【００２２】
例えば、「ｓｕｂｓｔｒｉｎｇ」というクエリストリングが入力されれば、索引語ＤＢ  １４０に保存された長さ範囲が３ないし５であるから、Ｎ−gram分離部３１０は、クエリストリングを、長さが３以上５以下である第１部分ストリングに分離する。すなわち、第１部分ストリングは、「ｓｕｂ」、「ｕｂｓ」、「ｂｓｔ」、「ｓｔｒ」、「ｔｒｉ」、「ｒｉｎ」、「ｉｎｇ」、「ｓｕｂｓ」、「ｕｂｓｔ」、「ｂｓｔｒ」、「ｓｔｒｉ」、「ｔｒｉｎ」、「ｒｉｎｇ」、「ｓｕｂｓｔ」、「ｕｂｓｔｒ」、「ｂｓｔｒｉ」、「ｓｔｒｉｎ」、「ｔｒｉｎｇ」である。
【００２３】
そして、５３０段階で、ストリング選択部３３０は、Ｎ−gramから、索引語ＤＢ  １４０に保存された索引語に含まれるＮ−gramを選択する。すなわち、Ｎ−gramにおいて、「ｓｕｂ」、「ｕｂｓ」、「ｂｓｔ」、「ｓｔｒ」、「ｓｔｒｉ」、「ｓｔｒｉｎ」、「ｔｒｉ」、「ｔｒｉｎ」、「ｔｒｉｎｇ」、「ｒｉｎ」、「ｒｉｎｇ」、「ｉｎｇ」が索引語に含まれるので、ストリング選択部３３０は、前記のＮ−gramを選択することができる。
【００２４】
さらに、５５０段階で、ストリング選択部３３０は、索引語に含まれたＮ−gramにおいて、他のＮ−gramに含まれないＮ−gramを有効ストリングとして決定できる。それにより、ストリング選択部３３０は、「ｓｕｂ」、「ｕｂｓ」、「ｂｓｔ」、「ｓｔｒｉｎ」、「ｔｒｉｎｇ」を有効ストリングとして決定することができる。
【００２５】
前記の通り、長さの異なる複数個の部分ストリングを利用して文書を検索すれば、長さが同じ部分ストリングを利用して文書を検索するより、クエリ処理速度を向上させることができる。それだけではなく、長さの異なる部分ストリングが互いに重複されなければ、重複した部分ストリングを利用した検索より、クエリ処理時間を短縮させることができる。
【００２６】
図６は、本発明の一実施形態による候補セット決定部の細部ブロック図である。図６を参照すれば、候補セット決定部１２０は、有効ストリングに係わるセット（以下、「有効ストリングセット」とする）のサブセットを、サブセット選択部６１０及び逆索引ＤＢ  １５０に係わるサブセットのアクセスコストに基づいて、有効ストリングセットのサブセットのうちいずれか１つのサブセットを候補セットとして予想する候補セット予想部６３０を含む。
【００２７】
本実施形態で逆索引ＤＢ  １５０は、索引ツリーとポスティングリストとから構成される。索引ツリーは、部分ストリング形態である索引語が、リーフノードに存在するＢ＋ツリー構造であり、ポスティングリストは、特定索引語を含む文書の識別情報と、索引語が文書に示された位置情報とのリストである。そして、ポスティングリストを構成する各要素の文書識別情報と位置情報とを通称し、ポスティングという。
【００２８】
まず、候補セット予想部６３０のアクセスコストを算出する方法について説明する。候補セット予想部６３０は、下記のような式（１）を利用し、アクセスコストを算出することができる。
【００２９】
【数１】
0005980520.tif 000002
ここで、Ｑは、有効ストリングセットの特定サブセット、ｇｉは、Ｑを構成するｉ番目の部分ストリング、ｐｉは、索引ツリーでのｇｉの位置情報、ｈ−１は、索引ツリーの高さ、ｌｉは、ｇｉに係わるポスティングリストを含む索引構造でのリーフノードの個数、Ｌｉは、ｇｉのポスティングリストである。
【００３０】
また、式（１）に適用される関数Ｆｂは、下記式（２）の通りである。
【００３１】
【数２】
0005980520.tif 000003
ここで、
【００３２】
【数３】
0005980520.tif 000004
は、文書ＤＢでの文書の個数、Ｂは、逆索引ＤＢを読み取るときに使われるバッファの大きさである。そして、
【００３３】
【数４】
0005980520.tif 000005
である。
【００３４】
前記のようなアクセスコストは、サブセットに含まれた有効ストリングそれぞれについて、逆索引ＤＢで、有効ストリングのポスティングリストにアクセスして読み取るのにかかるコスト（またはデータ量）の和（以下、Ｑａ値とする）と、文書ＤＢで、サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報に対応する文書にアクセスして読み取るのにかかるコスト（以下、Ｑｂ値とする）とに区分される。
【００３５】
アクセスコストのうちＱａ値は、有効ストリングと関係なしに、固定コストであるために、常に増加する。一方、アクセスコストのうちＱｂ値は、サブセットの種類によって、増減する。
【００３６】
一方、候補セット決定部１２０は、多様な方法で候補セットを決定することができる。
【００３７】
例えば、候補セット決定部１２０は、有効ストリングセットのサブセットのうち、アクセスコストが最小であるサブセットを候補セットとして決定することができる。
【００３８】
図７は、本発明の第１実施形態による候補セットを決定する方法について説明するフローチャートである。図７を参照すれば、７１０段階で、サブセット選択部６１０は、有効ストリングセットのサブセットをツリー構造に配列する。ツリー構造に配列するにおいて、サブセット選択部６１０は、子ノードに該当するサブセットをして親ノードのサブセットに含まれるようにする。
【００３９】
７２０段階で、サブセット選択部６１０は、ツリー構造に配列されたサブセットで、深さ優先探索（depth  first  search）方法で選択するサブセットがあるか否かを判断する。優先探索法というのは、ルートノードから出発し、ルートノードから可能な限り遠くにある下位ノードまで探索し、子ノードを有さないノードがあれば、バックトラッキング（backtracking）して他のノードを探索する。
【００４０】
深さ優先探索で選択するサブセットがあれば、７３０段階で、サブセット選択部６１０は、前記のサブセットを選択する。サブセット選択部６１０が有効ストリングが一つであるサブセットをまず選択し、前記の有効ストリングを含む他のサブセットを選択する方法で選択するサブセットがあるか否かを判断する。そして、候補セット予想部６３０は、選択されたサブセットのアクセスコストのうちＱａ値を算出する。アクセスコストの算出方法は、前述の通りであり、具体的な説明は省略する。
【００４１】
Ｑａ値が基準値以上であるならば、候補セット予想部６３０は、選択されたサブセットだけではなく、選択されたサブセットに対応するノードの下位ノードに含まれたサブセットのアクセスコストも算出せず、７２０ないし７５０段階を遂行する。ここで、基準値というのは、すでに選択されて算出されたサブセットのアクセスコストのうち最小値を意味する。それにより、既選択のサブセットがない場合、現在選択されたサブセットのアクセスコストが基準値になり、現在選択されたサブセットが予想候補セットになる。すなわち、深さ優先探索方法によって、初めにサブセットが選択されれば、候補セット予想部６３０は、７４０ないし７７０段階を遂行せずに、初めに選択されたサブセットのアクセスコストを基準値として、初めに選択されたサブセットを予想候補セットとする。
【００４２】
一方、アクセスコストのうちＱａ値は、常に増加するために、予想候補セットのアクセスコストより、現在選択されたサブセットのＱａ値が大きければ、現在選択されたサブセットのアクセスコストは、予想候補セットのアクセスコストより常に大きい。現在選択されたサブセットを含むあらゆるサブセットのアクセスコストも、予想候補セットのアクセスコストより大きい。結局、現在選択されたサブセットだけではなく、前記のサブセットを含むサブセットについて、アクセスコストは算出しなくても差し支えなく、前記のサブセットを含むサブセットについての探索を終了し、サブセット選択部６１０は、バックトラッキングし、他のストリングを含むサブセットがあるか否かを判断する。
【００４３】
Ｑａ値が予想候補セットのアクセスコスト未満であるならば、７６０段階で、候補セット予想部６３０は、選択されたサブセットのアクセスコストを算出し、アクセスコストと、予想候補セットのアクセスコストとを比較する。
【００４４】
選択されたサブセットのアクセスコストが、予想候補セットのアクセスコスト以下であるならば、７８０段階で、候補セット予想部６３０は、予想候補セットを、選択されたサブセットにアップデートする。
【００４５】
前記の通り、候補セット決定部１２０は、深さ優先探索方法でサブセットを選択し、アクセスコストに基づいて、候補セットを予想する。深さ優先探索方法で選択するノードがなければ、７９０段階で、候補セット決定部１２０は、予想候補セット、すなわち、最小のアクセスコストを有するサブセットを候補セットとして決定する。
【００４６】
図８は、本発明の一実施形態による、第１実施形態を介して候補セットを決定する方法について説明するための図面である。「三星綜合技術院」というクエリストリングが入力されれば、ストリングセット生成部１１０は、索引語ＤＢ  １４０を基に、「三星」、「星綜」、「綜合技術」及び「術院」という有効ストリングを生成する。ストリングセット生成部１１０は、前記の有効ストリングセットを候補セット決定部１２０に印加する。
【００４７】
サブセット選択部６１０は、図８に図示されているようなツリー構造に、有効ストリングセットのサブセットを配列する。ツリー構造の各ノードには、有効ストリングセットのサブセットが配置される。
【００４８】
候補セット予想部６３０は、上位ノードから下位ノードへの順に、各ノードに係わるアクセスコストを算出する。コスト算出方法は、前述の通りであり、具体的な説明は省略する。
【００４９】
図８で、readCost（Ｑ’）は、サブセット（Ｑ’）に係わるアクセスコストのうちＱａ値を意味し、Ｃｏｓｔ（Ｑ’）は、サブセット（Ｑ’）に係わるアクセスコストを意味する。候補セット予想部６３０は、｛三星｝、｛三星、星綜｝、｛三星、星綜、綜合技術｝、｛三星、星綜、綜合技術、術院｝、｛三星、星綜、術院｝、｛三星、綜合技術｝、…のような順にアクセスコストを算出する。
【００５０】
一方、候補セット決定部１２０は、｛三星、星綜｝のアクセスコストのうち、Ｑａ値が２５であり、予想候補セットのアクセスコスト、すなわち、最小アクセスコストが２４であるならば、｛三星、星綜｝に、任意の有効ストリングが追加したサブセットも、最小アクセスコストより大きいアクセスコストを有する。従って、候補セット決定部１２０は、｛三星、星綜｝に該当するノード及び下位ノードについて、それ以上アクセスコストを算出しない。
【００５１】
一方、候補セット決定部１２０は、有効ストリングセットのサブセットのうち、有効ストリングが一つ追加されるときのアクセスコストより小さいアクセスコストを有するサブセットを候補セットを決定することもできる。
【００５２】
図９は、第２実施形態による、候補セットを決定する方法について説明するフローチャートである。図９の９１０段階で、サブセット選択部６１０は、サブセットのうち、有効ストリングの個数が１であるサブセットを選択し、選択されたサブセットを候補セット予想部６３０に印加する。
【００５３】
９２０段階で、候補セット予想部６３０は、選択されたサブセットそれぞれについて、アクセスコストを算出し、９３０段階で、最小のアクセスコストを有するサブセットを候補セットとして予想し、前記の最小のアクセスコストを基準値とする。
【００５４】
一方、９４０段階でサブセット選択部６１０は、サブセットのうち、予想された候補セット、すなわち、予想候補セットに有効ストリングが一つ追加されるサブセットが存在するならば、９５０段階で、サブセット選択部６１０は、予想候補セットに、有効ストリングが一つ追加されたサブセットを選択し、選択されたサブセットを候補セット予想部６３０に印加する。
【００５５】
９６０段階で、候補セット予想部６３０は、選択されたサブセットそれぞれについてアクセスコストを算出し、算出されたアクセスコストの最小値と基準値とを比較する（９７０段階）。
【００５６】
アクセスコストの最小値が基準値以下であるならば、９８０段階で、候補セット予想部６３０は、予想候補セットを最小のアクセスコストを有するサブセットにアップデートする。そして、Ｓ９４０段階ないしＳ９７０段階を反復的に遂行する。
【００５７】
一方、アクセスコストの最小値が基準値を超えるか、あるいは予想候補セットに有効ストリングが一つ追加されたサブセットが存在しなければ、９９０段階で、候補セット予想部６３０は、予想候補セットを候補セットとして最終的に決定する。
【００５８】
本実施形態で、有効ストリング個数が１個であるサブセットから選択し、最小クエリ処理コストを有するサブセットを候補セットとして決定するとしたが、これに限定されるものではない。有効ストリング個数が多数である場合、最小予想候補セットは、有効ストリング個数が２またはそれ以上のサブセットから選択し、最小クエリ処理コストを有するサブセットを候補セットとして決定することもできる。
【００５９】
図１０は、本発明の一実施形態による第２実施形態を介して候補セットを決定する方法について説明するための図面である。
【００６０】
クエリストリング「三星綜合技術院」に係わる有効ストリングセットが、｛三星、星綜、綜合技術、術院｝であると与えられたとすれば、まず、サブセット選択部６１０は、有効ストリングを一つ有するサブセット、すなわち｛三星｝、｛星綜｝、｛綜合技術｝、｛術院｝を選択し、候補セット予想部６３０に印加する。候補セット予想部６３０は、各サブセットに係わるアクセスコストを算出する。サブセットに係わるアクセスコストが、それぞれ１０、２０、２５、３０であるとすれば、候補セット予想部６３０は、｛三星｝を候補セットとして予想する。それにより、サブセット選択部６１０は、予想候補セットである｛三星｝に、有効ストリングを一つ追加したサブセット、すなわち、｛三星、星綜｝、｛三星、綜合技術｝、｛三星、術院｝を選択し、候補セット予想部６３０に印加する。候補セット予想部６３０は、選択されたサブセットそれぞれについてアクセスコストを算出する。サブセットに係わるコストがそれぞれ１２、１４、８であるならば、｛三星、術院｝であるサブセットのアクセスコストが予想候補セットのアクセスコストより小さいので、候補セット予想部６３０は、予想候補セットを｛三星、術院｝にアップデートする。
【００６１】
さらにサブセット選択部６１０は、｛三星、術院｝のサブセットに他のストリングが一つ追加されたサブセットである｛三星、術院、星綜｝、｛三星、術院、綜合技術｝を選択し、候補セット予想部６３０に印加する。候補セット予想部６３０は、選択されたサブセットそれぞれについてアクセスコストを算出する。｛三星、術院、星綜｝、｛三星、術院、綜合技術｝のアクセスコストがそれぞれ１４、１５であるとするならば、予想候補セットのアクセスコストより大きいので、候補セット予想部６３０は、｛三星、術院｝を候補セットとして最終的に決定し、候補セット決定を終了する。
【００６２】
候補セット決定部１２０が、第２実施形態による候補セット決定方法を、第１実施形態による候補セット決定方法の方よりも、候補セット決定方法として決定すれば、候補セットを決定するのにかかる時間を短縮することができる。しかし、第２実施形態による候補セット決定方法は、第１実施形態による候補セット決定方法より、正確度が多少低下しうる。従って、候補セット決定部１２０は、第１実施形態による候補セット決定方法及び第２実施形態による候補セット決定方法を選択的に使用することができる。
【００６３】
例えば、有効ストリングの個数が基準個数以下であるならば、候補セット決定部１２０は、第１実施形態の候補セット決定方法で候補セットを決定することができ、有効ストリング個数が基準個数を超えれば、候補セット決定部１２０は、第２実施形態の候補セット決定方法で候補セットを決定することができる。
【００６４】
最後に、逆索引ＤＢ  １５０で、候補セットの有効ストリングいずれともマッチングされている文書の識別情報を決定した後、文書検索部１３０は、文書ＤＢ  １６０で、前記の文書の識別情報とマッチングしている文書を検索することによって、クエリが存在する文書を検索する。
【００６５】
プロセッサは、各機能によって、別途の構成要素に分離されたが、それは、説明の便宜を図るためのものであり、１つのチップまたはそれ以上のチップで具現できることは言うまでもない。
【００６６】
本発明の実施形態による方法は、多様なコンピュータ手段を介して遂行されるプログラム命令形態で具現され、コンピュータで読み取り可能な媒体に記録される。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独で、または組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計されて構成されたものであってもよく、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。
【００６７】
コンピュータで読み取り可能な可能記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体（magnetic  media）、ＣＤ−ＲＯＭ、ＤＶＤ（digital  versatile  disc）のような光記録媒体、フロプティカルディスク（floptical  disk）のような磁気−光媒体（magneto-optical  media）、及びＲＯＭ（read-only  memory）、ＲＡＭ（random-access  memory）、フラッシュメモリのようなプログラム命令を保存して遂行するように特別に構成されたハードウェア装置が含まれる。前記媒体は、プログラム命令、データ構造などを指定する信号を伝送する搬送波を含む光、金属線または導波管などの伝送媒体であってもよい。プログラム命令の例としては、コンパイラによって作られるような機械語コードだけではなく、インタープリタなどを使用し、コンピュータによって実行される高級言語コードを含む。前記のハードウェア装置は、本発明の動作を遂行するために、一つ以上のソフトウェア・モジュールとして作動するように構成され、その逆も同様である。
【００６８】
以上、本発明について、たとえ限定された実施形態と図面とによって説明したが、本発明は、前記の実施形態に限定されるものではなく、本発明が属する分野で当業者であるならば、かような記載から多様な修正及び変形が可能であろう。
【００６９】
従って、本発明の範囲は、説明された実施形態に限定されるものではなく、特許請求の範囲だけではなくして、該特許請求の範囲と均等なものなどによって決まるものである。
【産業上の利用可能性】
【００７０】
本発明の効率的にクエリを処理する方法及び装置は、例えば、検索関連の技術分野に効果的に適用可能である。
【符号の説明】
【００７１】
１００    クエリ処理装置
１０５    ユーザ・インターフェース
１１０    ストリングセット生成部
１２０    候補セット決定部
１３０    文書検索部
１３５    プロセッサ
１４０    索引語ＤＢ
１５０    逆索引ＤＢ
１６０    文書ＤＢ
１６５    ストレージ
３１０    Ｎ−gram分離部
３３０    ストリング選択部
６１０    サブセット選択部
６３０    候補セット予想部
【図１】
0005980520.tif 000006
【図２】
0005980520.tif 000007
【図３】
0005980520.tif 000008
【図４】
0005980520.tif 000009
【図５】
0005980520.tif 000010
【図６】
0005980520.tif 000011
【図７】
0005980520.tif 000012
【図８】
0005980520.tif 000013
【図９】
0005980520.tif 000014
【図１０】
0005980520.tif 000015