(57)【要約】【課題】複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置等を提供する。【解決手段】検索対象の複数の文書データから抽出されたＮグラムについて、出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶部１１を備えた検索装置１０において、Ｎグラム抽出部１３は、検索文字列からＮグラムを抽出し、最少頻度導出部１４は、検索文字列から抽出されたＮグラムのうち、複数の文書データに関して最少出現頻度を有するＮグラムを導出し、検索Ｎグラム選定部１５は、検索文字列を被覆し、かつ、導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、検索文字列から抽出されたＮグラムのうちから選定し、文書特定部１６は、選定された複数の検索Ｎグラムについて、複数の文書データのうちから検索文字列を含む文書データを特定する。【選択図】図１
2011232943.tif 000002
【特許請求の範囲】
【請求項１】
検索対象の複数の文書データから抽出された「Ｎ文字の文字列であるＮグラム（Ｎは自然数）」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段と、
検索文字列からＮグラムを抽出するＮグラム抽出手段と、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたＮグラムのうち、前記複数の文書データに関して最少出現頻度を有するＮグラムを導出する最少頻度導出手段と、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する検索Ｎグラム選定手段と、
前記選定された複数の検索Ｎグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段と、
を備えることを特徴とする検索装置。
【請求項２】
前記検索Ｎグラム選定手段は、前記検索文字列を被覆する最小限度の数または最小限度の数に１を加えた数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する、
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記検索Ｎグラム選定手段は、前記複数の検索Ｎグラムとして、前記検索文字列から抽出されたＮグラムのうち、
（ａ）まず、前記検索文字列の先頭の文字から順に、Ｎ文字単位で重複しないように分割し、分割されたそれぞれのＮ文字列で構成されるＮグラムを選定し、
（ｂ）次に、前記選定されたＮグラムで前記検索文字列を被覆できない場合には、前記検索文字列の末尾の文字を含むＮグラムを追加して選定し、
（ｃ）最後に、選定されたＮグラム中に前記最少出現頻度を有するＮグラムが含まれていない場合には、前記最少出現頻度を有するＮグラムを追加して選定する、
ことを特徴とする請求項２に記載の検索装置。
【請求項４】
前記検索Ｎグラム選定手段は、前記複数の検索Ｎグラムとして、前記検索文字列から抽出されたＮグラムのうち、
（ａ）まず、前記検索文字列の先頭および／又は末尾の文字を含むＮグラムを選定し、
（ｂ）次に、前記最少出現頻度を有するＮグラムを追加して選定し、
（ｃ）最後に、前記検索文字列における、前記最少出現頻度を有するＮグラムを構成する文字列の位置を基準に、前方および／又は後方へ、Ｎ文字単位で重複しないように分割し、分割されたそれぞれのＮ文字列で構成されるＮグラムを追加して選定する、
ことを特徴とする請求項２に記載の検索装置。
【請求項５】
前記文書特定手段は、前記転置インデックスの出現頻度情報に基づいて、前記選定された複数の検索Ｎグラムのうち、出現頻度の少ない検索Ｎグラムから順に、文書データの特定に用いる、
ことを特徴とする請求項１から４のいずれか１項に記載の検索装置。
【請求項６】
検索対象の複数の文書データから抽出された「Ｎ文字の文字列であるＮグラム（Ｎは自然数）」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段を備えるコンピュータを、
検索文字列からＮグラムを抽出するＮグラム抽出手段、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたＮグラムのうち、前記複数の文書データに関して最少出現頻度を有するＮグラムを導出する最少頻度導出手段、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する検索Ｎグラム選定手段、
前記選定された複数の検索Ｎグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段、
として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の文書から、指定された検索文字列を含む文書を絞り込む検索装置、ならびに、コンピュータプログラムに関する。
【背景技術】
【０００２】
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。
【０００３】
英語などの多くの言語においては、単語を索引単位として索引ファイルを作成して、これを用いて高速な検索処理を実現することが一般的である。しかし、日本語の場合、スペース等によって単語の切れ目が明示的に示されないため、しばしば、Ｎグラムを索引単位とする方法が用いられている。
【０００４】
Ｎグラムとは、連続するＮ文字からなる部分文字列のことである。Ｎグラムによる索引ファイル（以下、転置インデックスと呼称する）の作成には、文字列にのみ基づくため、単語を認識する必要がない。しかし、検索処理される検索語が複数のＮグラムに分割されて処理されるので、長い検索語で検索処理を行う場合、検索時間が増大するという問題がある。
【０００５】
このような問題に対し、非特許文献１において、検索処理の高速化の技術が開示されている。具体的に、非特許文献１では、Ｎグラムの文書頻度の和を処理の高速化の推定値として計算し、実際に文書の検索処理に用いるＮグラムの選定に利用することで、検索処理の高速化を行う。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】小川泰嗣，松田透，”ｎ−ｇｒａｍ索引を用いた効率的な文書検索法”，電子情報通信学会論文誌(D-I)，Vol.J82-D-I，No.1，pp.121-129，1999年1月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このようなＮグラムを用いた検索の、検索処理の高速化において、より単純な処理によって高速化を実現したい、との要望がある。すなわち、携帯電話や小型電子機器に搭載された小型の電子辞書等といった、限られた処理速度や容量においても、効率的な検索を実現したい、というものである。
【０００８】
本発明は、以上のような課題を解決するためのものであり、複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置、ならびに、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点にかかる検索装置は、
検索対象の複数の文書データから抽出された「Ｎ文字の文字列であるＮグラム（Ｎは自然数）」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段と、
検索文字列からＮグラムを抽出するＮグラム抽出手段と、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたＮグラムのうち、前記複数の文書データに関して最少出現頻度を有するＮグラムを導出する最少頻度導出手段と、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する検索Ｎグラム選定手段と、
前記選定された複数の検索Ｎグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段と、
を備えることを特徴とする。
【００１０】
上記検索装置において、
前記検索Ｎグラム選定手段は、前記検索文字列を被覆する最小限度の数または最小限度の数に１を加えた数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する、
ことが望ましい。
【００１１】
上記検索装置において、
前記検索Ｎグラム選定手段は、前記複数の検索Ｎグラムとして、前記検索文字列から抽出されたＮグラムのうち、
（ａ）まず、前記検索文字列の先頭の文字から順に、Ｎ文字単位で重複しないように分割し、分割されたそれぞれのＮ文字列で構成されるＮグラムを選定し、
（ｂ）次に、前記選定されたＮグラムで前記検索文字列を被覆できない場合には、前記検索文字列の末尾の文字を含むＮグラムを追加して選定し、
（ｃ）最後に、選定されたＮグラム中に前記最少出現頻度を有するＮグラムが含まれていない場合には、前記最少出現頻度を有するＮグラムを追加して選定する、
ことが望ましい。
【００１２】
上記検索装置において、
前記検索Ｎグラム選定手段は、前記複数の検索Ｎグラムとして、前記検索文字列から抽出されたＮグラムのうち、
（ａ）まず、前記検索文字列の先頭および／又は末尾の文字を含むＮグラムを選定し、
（ｂ）次に、前記最少出現頻度を有するＮグラムを追加して選定し、
（ｃ）最後に、前記検索文字列における、前記最少出現頻度を有するＮグラムを構成する文字列の位置を基準に、前方および／又は後方へ、Ｎ文字単位で重複しないように分割し、分割されたそれぞれのＮ文字列で構成されるＮグラムを追加して選定する、
ことが望ましい。
【００１３】
上記検索装置において、
前記文書特定手段は、前記転置インデックスの出現頻度情報に基づいて、前記選定された複数の検索Ｎグラムのうち、出現頻度の少ない検索Ｎグラムから順に、文書データの特定に用いる、
ことが望ましい。
【００１４】
上記目的を達成するため、本発明の第２の観点にかかるコンピュータプログラムは、
検索対象の複数の文書データから抽出された「Ｎ文字の文字列であるＮグラム（Ｎは自然数）」のそれぞれについて、前記複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する記憶手段を備えるコンピュータを、
検索文字列からＮグラムを抽出するＮグラム抽出手段、
前記転置インデックスの出現頻度情報に基づいて、前記検索文字列から抽出されたＮグラムのうち、前記複数の文書データに関して最少出現頻度を有するＮグラムを導出する最少頻度導出手段、
前記検索文字列を被覆し、かつ、前記導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、前記検索文字列から抽出されたＮグラムのうちから選定する検索Ｎグラム選定手段、
前記選定された複数の検索Ｎグラムについて、前記転置インデックスの出現位置情報に基づいて、前記複数の文書データのうちから前記検索文字列を含む文書データを特定する文書特定手段、
として機能させる。
【発明の効果】
【００１５】
本発明によれば、複数の文書から、指定された検索文字列を含む文書を効率的に絞り込むのに好適な検索装置、ならびに、コンピュータプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】検索装置の概要構成図である。
【図２Ａ】検索装置が構成されるコンピュータ装置の概要構成の１例を示す図である。
【図２Ｂ】検索装置が構成されるコンピュータ装置の概要構成の別の例を示す図である。
【図３】検索装置の検索処理の流れを示すフローチャートである。
【図４】転置インデックスの具体的な構成を示す図である。
【図５】実施形態１に係る、検索Ｎグラムの選定処理の流れを示すフローチャートである。
【図６】実施形態２に係る、検索Ｎグラムの選定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態に係る検索装置について説明する。以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。
【００１８】
（実施形態１）
以下、図１を参照して実施形態１に係る検索装置１０について説明する。
【００１９】
検索装置１０は、記憶部１１と、入力部１２と、Ｎグラム抽出部１３と、最少頻度導出部１４と、検索Ｎグラム選定部１５と、文書特定部１６と、出力部１７と、を備える。
【００２０】
記憶部１１は、検索対象の複数の文書データから抽出されたＮグラムについて、複数の文書データ中の出現位置と出現頻度とを構成要素とする転置インデックスを記憶する。記憶部１１は、例えば、ハードディスク装置によって構成される。
【００２１】
具体的には、１個の文書データＮｄｏｃ文字の文字列から構成されていた場合、Ｎｄｏｃ−Ｎ＋１個のＮグラム（Ｎ文字列）が抽出され、さらに、複数の文書データについて同様にＮグラムが抽出され、同一パターンのＮグラムに関して、それぞれの出現位置と出現頻度とを記載した転置インデックスが、記憶部１１に記憶される。
【００２２】
入力部１２は、ユーザから検索文字列を受け付ける。具体的には、キーボードやタッチパネル等の入力装置によってユーザが入力した検索文字列を受付ける。そして、受け付けた検索文字列を、Ｎグラム抽出部１３へ供給する。
【００２３】
Ｎグラム抽出部１３は、入力部１２によって受け付けられた検索文字列から、Ｎグラムを抽出する。すなわち、コンピュータ装置のＣＰＵなどによって、検索文字列を構成するＮグラムのうち、抽出可能なものを抽出する。そして、抽出されたＮグラムを、最少頻度導出部１４へ供給する。
【００２４】
具体的には、ユーザがＭ文字の検索文字列を入力したとき、Ｎグラム抽出部１３は、検索文字列から抽出可能なすべてのＮグラム（Ｎ文字列）を抽出する。すなわち、Ｍ−Ｎ＋１個のＮグラムが抽出されることになる。
【００２５】
最少頻度導出部１４は、記憶部１１に記憶されている転置インデックスの出現頻度情報に基づいて、Ｎグラム抽出部１３により抽出されたＮグラムのうち、複数の文書データに関して最少出現頻度を有するＮグラムを導出する。最少頻度導出部１４は、Ｎグラム抽出部１３により抽出されたＮグラムに、導出された最少出現頻度を有するＮグラムの情報を付して、検索Ｎグラム選定部１５へ供給する。
【００２６】
すなわち、最少頻度導出部１４では、上述したＭ−Ｎ＋１個のＮグラムのうち、複数の文書データの中で最も出現頻度が少ないＮグラムが、導出される。
【００２７】
検索Ｎグラム選定部１５は、検索文字列を被覆し、かつ、最少頻度導出部１４により導出された最少出現頻度を有するＮグラムを含む複数の検索Ｎグラムを、Ｎグラム抽出部１３により抽出されたＮグラムのうちから選定する。検索Ｎグラム選定部１５は、選定された複数の検索Ｎグラムを、文書特定部１６へ供給する。
【００２８】
すなわち、Ｎグラム抽出部１３によって抽出されたすべてのＮグラムには、位置が隣り合うものには重なりがあるため、後述する文書データの特定には、抽出されたすべてのＮグラムを使用する必要はなく、検索文字列を被覆するＮグラムがあれば十分である。そのため、検索Ｎグラム選定部１５は、検索文字列を被覆する検索Ｎグラムを、Ｎグラム抽出部１３によって抽出されたＮグラムのうちから選定する。
【００２９】
ここで、選定されたＮグラムには、最少頻度導出部１４によって導出された最少出現頻度を有するＮグラムを、必ず含める。この最少出現頻度を有するＮグラムを、後述する文書データの特定に用いることで、効率的に文書データの絞り込みが行えるようになる。
【００３０】
文書特定部１６は、検索Ｎグラム選定部１５により選定された複数の検索Ｎグラムについて、記憶部１１に記憶されている転置インデックスの出現位置情報に基づいて、複数の文書データのうちから検索文字列を含む文書データを特定する。そして、特定された文書データを、出力部１７へ供給する。
【００３１】
すなわち、文書特定部１６では、複数の検索Ｎグラムの出現位置が、検索文字列における順序で連続に出現するかどうかを判定し、連続で出現すると判定された位置の文書データを、特定する。
【００３２】
出力部１７は、文書特定部１６により特定された文書データを受け、ユーザへ出力する。具体的には、例えばディスプレイ等の出力装置を用いて、文書データの情報を出力する。
【００３３】
以下、図２Ａおよび図２Ｂを用いて、図１に示した検索装置１０が物理的に構成される一般的なコンピュータ装置の概要構成を説明する。
【００３４】
図２Ａにおいて、コンピュータ装置２０は、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３、ＨＤＤ（Hard Disk Drive）２４、入力装置２５、出力装置２６、通信制御装置２７により構成される。各構成要素は、命令やデータを転送するための伝送経路であるシステムバスにより、相互に接続されている。
【００３５】
ＣＰＵ２１は、コンピュータ装置２０全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００３６】
ＲＯＭ２２は、コンピュータ装置２０全体の動作制御に必要なコンピュータプログラムや各種データを記憶する。特に本実施形態では、検索処理のため必要なコンピュータプログラムや各種データを記憶する。
【００３７】
ＲＡＭ２３は、データやコンピュータプログラムを一時的に記憶するためのもので、ＲＯＭ２２から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータが保持される。
【００３８】
ＨＤＤ２４は、検索処理の動作のために必要なデータ等を記憶するためのもので、特に本実施形態では、検索対象の複数の文書データ２８、および、複数の文書データ２８から抽出されたＮグラムのそれぞれについて、複数の文書データ２８中の出現位置と出現頻度とを構成要素とする転置インデックス２９、を記憶する記憶部１１として動作することが想定される。
【００３９】
入力装置２５は、例えばキーボードやタッチパネル等によって構成され、ユーザからの入力を受け付ける。本実施形態では、Ｎグラム抽出部１３へ供給されるユーザが入力した検索文字列を受け付ける。
【００４０】
出力装置２６は、例えばディスプレイ等によって構成され、コンピュータ装置２０の処理結果を出力する。本実施形態では、文書特定部１６により特定された検索文字列を含む文書データ２８を、ユーザへ出力する。
【００４１】
通信制御装置２７は、コンピュータ装置２０をインターネット等のコンピュータ通信網に接続するためのものであり、コンピュータ通信網に接続してデータをやり取りする場合に必要となる。例えば、本実施形態において、上述したＨＤＤ２４に記憶されている検索対象の複数の文書データ２８は、通信制御装置２７を介して取得できるようにすることも可能である。
【００４２】
本実施形態では、複数の文書データ２８は、ＨＤＤ２４内ではなく、コンピュータ装置２０の外に存在していてもよい。この例について、図２Ｂを用いて説明する。
【００４３】
図２Ｂは、図２Ａと同様な図であるが、この例では、複数の文書データ２８はＨＤＤ２４には存在せず、コンピュータ装置２０の外に存在する。この場合、通信制御装置２７によりコンピュータ通信網を介して文書データ２８へ接続することになる。
【００４４】
そのため、図２Ｂの実施形態では図２Ａでのものに比べ、コンピュータ装置２０内に文書データ２８を記憶する必要がなく、インターネットに適切に接続可能な環境であれば、小型の電子辞書のような限られた容量の装置においても実現しやすくなる。
【００４５】
このような構成によって実現される検索装置１０について、具体的な検索処理の詳細を、以下に図３を参照して、フローチャートを用いて説明していく。
【００４６】
検索装置１０の処理が開始されると、まず検索装置１０は、入力装置２５によってユーザから検索文字列を受け付け（ステップＳ３０１）、Ｎグラム抽出部１３によって、受け付けられた検索文字列から、Ｎグラムを抽出する（ステップＳ３０２）。
【００４７】
具体的に、ユーザが「高速化全文検索処理」という９文字の検索文字列を入力したとする。このとき、Ｎ＝２による検索処理の場合、抽出されるＮグラム（バイグラム）は、前から順に「高速」、「速化」、「化全」、「全文」、「文検」、「検索」、「索処」、「処理」、の８個（９−２＋１個）である。また、例えば、Ｎ＝３による検索処理の場合、抽出されるＮグラム（トリグラム）は、前から順に「高速化」、「速化全」、「化全文」、「全文検」、「文検索」、「検索処」、「索処理」の７個（９−３＋１個）である。
【００４８】
ここでＮの値は、検索装置１０において予め定めらている値であり、Ｎ＝２、Ｎ＝３、あるいはそれ以外の自然数の値をとるが、以下では説明のために、その都度Ｎ＝２やＮ＝３などの場合を用いて説明をする。
【００４９】
次に、最少頻度導出部１４によって、抽出されたＮグラムの中から、最少出現頻度のＮグラムを導出する（ステップＳ３０３）。ここで、出現頻度の情報は、記憶部１１に記憶されている、転置インデックス２９によって、取得する。
【００５０】
以下、図４を用いて、本実施形態に係る転置インデックス２９の具体的な構成を説明する。本図に示すように、転置インデックス２９は、Ｎグラム文字列パターンと出現位置情報格納アドレスが記載されたファイル（pattern.idx）、各Ｎグラム文字列パターンについての出現頻度と出現位置が記載されたファイル（position.idx）、文書番号と各文書の先頭文字位置が記載されたファイル（number.idx）の３つのファイルから構成される。
【００５１】
ここで、出現位置は、検索対象の文書群を文書番号順に並べたテキストの先頭文字位置を基準とした位置である。同様に、本図中の各文書番号の先頭文字位置も、検索対象の文書群を文書番号順に並べたテキストの先頭文字位置を基準とした位置である。
【００５２】
図３に戻って、このような転置インデックス２９の情報を用いて、ステップＳ３０３では、ステップＳ３０２にて抽出されたＮグラムの中で、出現頻度が最も少ないＮグラムが導出される。
【００５３】
ここで、最少出現頻度のＮグラムが複数あるときは、いずれか１個、典型的には検索文字列の位置が前方にあるもの、を導出する。また、最少出現頻度がゼロのＮグラムが１つでも存在する場合には、複数の文書データ２８中に検索文字列が存在しないということになるので、以下のステップに進まずに、典型的には「検索文字列が見つかりませんでした。」等をユーザへ出力して、処理を終了する（図示せず）。
【００５４】
次に、検索装置１０は、検索Ｎグラム選定部１５によって、抽出されたＮグラムの中から、最少出現頻度のＮグラムを含むように、検索Ｎグラムを選定する（ステップＳ３０４）。ここでの選定処理の詳細は、以下の図５のフローチャートを参照して、説明する。
【００５５】
以下、図５を用いて、実施形態１に係る、検索Ｎグラムの選定処理の流れを説明する。
【００５６】
まず、選定処理では、検索文字列の先頭から重複しないように検索Ｎグラムを選定する（ステップＳ５０１）。
【００５７】
具体的に、上述した「高速化全文検索処理」という９文字の検索文字列に対し、Ｎ＝２による検索処理で、「高速」、「速化」、「化全」、「全文」、「文検」、「検索」、「索処」、「処理」、の８個のＮグラム（バイグラム）が抽出された場合を考える。ステップＳ５０１では、先頭から重複しないように、「高速」、「化全」、「文検」、「索処」、の４個が選定される。
【００５８】
次に、選定された検索Ｎグラムが、検索文字列を被覆しているかを判定する（ステップＳ５０２）。例えば、上記で選定された４個のＮグラム（バイグラム）では、検索文字列の末尾の「理」という文字が被覆されていない（ステップＳ５０２；ＮＯ）。したがって、検索文字列の末尾の文字を含むＮグラムを、検索用文字列に追加して選定する（ステップＳ５０３）。
【００５９】
具体的に、上記で被覆されていない末尾の「理」文字を含むバイグラムである「処理」が追加して選定される。この状態で、「高速」、「化全」、「文検」、「索処」、「処理」の５個のバイグラムが選定され、全体で「高速化全文検索処理」という９文字の検索文字列を被覆できたことになる。ここで選定された５個のバイグラムは、９文字の検索文字列を被覆できる最小限度の数（［９文字／２文字］＝５個、[ｘ]はｘ以上の最小の自然数とする）である。この後、ステップＳ５０４へ移行する。
【００６０】
一方で、例えば、上述したＮ＝３のトリグラムによる検索処理の場合、ステップＳ５０１で選定されるＮグラム（トリグラム）は、「高速化」、「全文検」、「索処理」の３個となり、この３個で検索文字列を被覆（［９文字／３文字］＝３個）できているため（ステップＳ５０２；ＹＥＳ）、ステップＳ５０３での処理はされずにステップＳ５０４へ移行することになる。
【００６１】
そして、選定された検索Ｎグラムが、最少出現頻度のＮグラムを有しているか、が判定される（ステップＳ５０４）。ここで、ステップＳ３０３において導出された、最少出現頻度のＮグラムの情報を用いて、判定する。
【００６２】
具体的に、上述したＮ＝２のバイグラムによる検索処理の場合、ステップＳ５０４の直前では、「高速」、「化全」、「文検」、「索処」、「処理」の５個のバイグラムが選定されている状態である。例えば、最少出現頻度のバイグラムが、「索処」であった場合、選定された５個のバイグラムに含まれているので（ステップＳ５０４；ＹＥＳ）、このまま検索Ｎグラムの選定処理を終了する。
【００６３】
一方で、例えば、最少出現頻度のバイグラムが、「速化」であった場合、選定された５個のバイグラムに含まれていないので（ステップＳ５０４；ＮＯ）、最少出現頻度のＮグラム、すなわち「速化」のバイグラムを、検索Ｎグラムに追加して選定し（ステップＳ５０５）、検索Ｎグラムの選定処理を終了する。この例では最終的に、「高速」、「速化」、「化全」、「文検」、「索処」、「処理」の６個のバイグラムが検索Ｎグラムとして選定されたことになる。
【００６４】
図３に戻って、ここから、上記ステップＳ３０４において選定された検索Ｎグラムを用いて、文書特定部１６によって検索文字列が含まれる文書データ２８を特定する処理に移行する。具体的に、「高速化全文検索処理」という９文字の検索文字列に対し、Ｎ＝２による検索処理の場合において、ステップＳ３０４にて選定された検索用バイグラムが、上述した「高速」、「化全」、「文検」、「索処」、「処理」の５個のバイグラムであった場合を考える。
【００６５】
まず、選定された検索Ｎグラムを、出現頻度の少ない順に並べる（ステップＳ３０５）。この処理は、転置インデックス２９の各Ｎグラムの出現頻度情報を基に行われる。すなわち、上記５個のバイグラムの出現頻度が、それぞれ、「高速」１０回、「化全」８回、「文検」５回、「索処」３回、「処理」１３回、であったとき、出現頻度の少ない順に、「索処」、「文検」、「化全」、「高速」、「処理」、と並べ替えられる。
【００６６】
ここで出現頻度の少ない順に検索Ｎグラムを並べる理由は、特定されるべき文書データ２８は、すべての検索Ｎグラムを含んでいるはずであり、出現頻度の多いＮグラムを基準として文書データ２８を絞り込むことに比べ、出現頻度の少ないＮグラムを基準として文書データ２８を絞り込んでいく方が、効率的に絞り込むことができるからである。
【００６７】
次に、最少出現頻度のＮグラムにおける出現位置の中に、未評価のものがあるかどうかを判定する（ステップＳ３０６）。すなわち、最少出現頻度のバイグラム「索処」の３回の出現位置が、複数の文書データ２８の中において、「１００文字目」、「３００文字目」、「７００文字目」であった場合、ここではいずれも未評価な状態なので（ステップＳ３０６；ＹＥＳ）、ステップＳ３０７に移行する。
【００６８】
そして、未評価の出現位置に着目する（ステップＳ３０７）。すなわち、上記最少出現頻度のバイグラム「索処」の３回の出現位置「１００文字目」、「３００文字目」、「７００文字目」において、ここではいずれも未評価な状態なので、まず最初の出現位置である「１００文字目」に着目することが典型的である。
【００６９】
そして、着目された出現位置と連続する出現位置を、他のすべての検索Ｎグラムが有するか、を判定する（ステップＳ３０８）。具体的には、出現頻度の少ない順にバイグラムを選び、以下の（ａ）〜（ｄ）の判定処理を行う。すなわち、それぞれのバイグラムの出現位置が、検索文字列「高速化全文検索処理」を構成しているとするならどの出現位置に存在するのか、を判定する。
（ａ）検索用バイグラム「文検」は、最少出現頻度のバイグラム「索処」よりも２文字前方に位置しているはずなので、その５回の出現位置の中に、「９８文字目（＝１００−２文字目）」の出現位置を有するか。
（ｂ）検索用バイグラム「化全」は、最少出現頻度のバイグラム「索処」よりも４文字前方に位置しているはずなので、その８回の出現位置の中に、「９６文字目（＝１００−４文字目）」の出現位置を有するか。
（ｃ）検索用バイグラム「高速」は、最少出現頻度のバイグラム「索処」よりも６文字前方に位置しているはずなので、その１０回の出現位置の中に、「９４文字目（＝１００−６文字目）」の出現位置を有するか。
（ｄ）検索用バイグラム「処理」は、最少出現頻度のバイグラム「索処」よりも１文字後方に位置しているはずなので、その１３回の出現位置の中に、「１０１文字目（＝１００＋１文字目）」の出現位置を有するか。
【００７０】
ここで、上記（ａ）〜（ｄ）のうち、１つでも有しない検索用バイグラムがあった場合（ステップＳ３０８；ＮＯ）、ステップＳ３０６の判定へ戻り、ステップＳ３０７において、最少出現頻度のバイグラム「索処」のもつ未評価の出現位置、すなわちここでは、「３００文字目」、に着目し直す。そして着目された「３００文字目」について、ステップＳ３０８の判定処理を再び繰り返す。
【００７１】
一方、上記（ａ）〜（ｄ）の判定において、すべての検索用バイグラムが対応する連続した出現位置を有している、と判定された場合は（ステップＳ３０８；ＹＥＳ）、その連続した出現位置に検索文字列「高速化全文検索処理」があるということになる。そのため、ここで検索装置１０は、連続した出現位置と、文書番号の先頭文字位置とから、文書番号を特定し、保持する（ステップＳ３０９）。すなわち、検索文字列の出現位置と、転置インデックス２９の文書番号とその先頭文字位置を比較して、ここでの出現位置を含む文書番号を特定し、保持する。
【００７２】
そして、ステップＳ３０６に戻り、再び最少出現頻度のＮグラムにおける出現位置の中に、未評価のものがあるかどうかを判定する。具体的に、上記の例において、最少出現頻度のバイグラム「索処」の３回の出現位置が、複数の文書データ２８の中において、「１００文字目」、「３００文字目」、「７００文字目」であった場合、現在の処理が最初の「１００文字目」に着目された処理であるなら、未評価の「３００文字目」、「７００文字目」のものがあるため（ステップＳ３０９；ＹＥＳ）、ステップＳ３０７に戻って、未評価のものに着目した処理を繰り返す。
【００７３】
一方、最少出現頻度のＮグラムにおける出現位置を、すべて評価した場合（ステップＳ３０６；ＮＯ）、ステップＳ３０９において保持されたすべての文書番号に対応する文書データ２８を、ユーザへ出力する（ステップＳ３１０）。その後、処理を終了する。すなわち、ステップＳ３０６〜Ｓ３０９の繰り返し処理において、ステップＳ３０９を通った回数分の、言い換えると、検索文字列を含むと特定された文書データ２８の数だけ、文書データ２８が出力されることになる。
【００７４】
ここで、もし検索文字列を含むと特定された文書データ２８が１つもなければ、ステップＳ３０９においては、いずれの文書データ２８も出力せず、典型的には「検索文字列が見つかりませんでした。」等をユーザへ出力して、処理を終了する。
【００７５】
以上により、実施形態１では、検索文字列の先頭の文字から順に重複しないように選定していくという単純な処理に基づいた、高速な検索Ｎグラム選定処理と、必ず最少出現頻度のＮグラムを含む少数（検索文字列を被覆する最小限度またはそれに１を加えた数）の検索Ｎグラムを選定することによる、効率的な文書特定処理と、の両立が実現できる。
【００７６】
これにより、例えば、携帯電話や小型電子機器に搭載された小型の電子辞書等といった、限られた処理速度や容量における、効率的な検索を実現することが可能になる。
【００７７】
（実施形態２）
次に、本発明の実施形態２について説明する。実施形態１では、検索Ｎグラムの選定において、最初に検索文字列の先頭の文字から順に重複しないように選定した。実施形態２では、最少出現頻度のＮグラムの検索文字列の中での位置を基準に、検索Ｎグラムを選定していく。以下、詳述する。
【００７８】
ここで、実施形態１の説明に用いた、検索装置の概要構成図（図１）、検索装置が構成されるコンピュータ装置の概要構成図（図２）、検索処理の流れを示すフローチャート（図３）、および、転置インデックス２９の具体的な構成（図４）、は実施形態２においても共通であり、そのため、これらの説明は割愛する。実施形態２では、検索Ｎグラムの選定処理の流れ（図５）が実施形態１と異なっており、以下に新たにフローチャートを用いて説明する。
【００７９】
以下、図６を用いて、実施形態２に係る、検索Ｎグラムの選定処理の流れを説明する。
【００８０】
まず、検索装置１０は、Ｎグラム抽出部１３により抽出されたＮグラムの中から、検索文字列の先頭又は末尾の文字を含む２つのＮグラムを、検索Ｎグラムに選定する（ステップＳ６０１）。
【００８１】
具体的に、例えば、「高速化された全文検索処理」という１２文字の検索文字列に対し、Ｎ＝２による検索処理で、「高速」、「速化」、「化さ」、「され」、「れた」、「た全」、「全文」、「文検」、「検索」、「索処」、「処理」、の１１個のＮグラム（バイグラム）が抽出された場合において、ステップＳ６０１では、先頭の文字を含むＮグラム「高速」、および、末尾の文字を含むＮグラム「処理」、の２つのＮグラムが選定されることになる。
【００８２】
次に、最少出現頻度のＮグラムを、検索Ｎグラムに追加して選定する（ステップＳ６０２）。そして、選定された最少出現頻度のＮグラムの位置を基準に、前方へ、重複しないように検索Ｎグラムを追加して選定し（ステップＳ６０３）、同様に後方へも、重複しないように検索Ｎグラムを追加して選定する（ステップＳ６０４）。
【００８３】
具体的に、上記の例において、最少出現頻度のバイグラムが「れた」であった場合、まずステップＳ６０２において、このバイグラム「れた」が選定される。さらに、ステップＳ６０３において、前方へ重複しないように、すなわち、ここでは「化さ」が選定される。最後に、ステップＳ６０４において、後方へ重複しないように、すなわち、ここでは「全文」、および、「検索」の２つのバイグラムが選定される。
【００８４】
すなわち、最少出現頻度のバイグラムの先頭文字が検索文字列の中で奇数番目に位置しているので、奇数番目を先頭とするその他のバイグラムを選定する、ということになる。また、一般にＮグラムの場合には、検索文字列の中での位置をＮで除した余りが、最少出現頻度のＮグラムと等しいものを、選定すればよいことになる。
【００８５】
結果として、ステップＳ６０１で選定された２つのバイグラムとあわせて、「高速」、「化さ」、「れた」、「全文」、「検索」、「処理」、という６個のバイグラムが、検索Ｎグラムとして選定される。これは、最少出現頻度のバイグラムを含み、しかも、上記の１２文字の検索文字列を被覆する最小限の個数のバイグラムである。
【００８６】
他方、別の具体例として、最少出現頻度のバイグラムが「た全」であった場合、まずステップＳ６０２において、このバイグラム「た全」が選定される。さらに、ステップＳ６０３において、前方へ重複しないように、すなわち、ここでは「され」、および、「速化」が選定される。最後に、ステップＳ６０４において、後方へ重複しないように、すなわち、ここでは「文検」、および、「索処」の２つのバイグラムが選定される。
【００８７】
すなわち、最少出現頻度のバイグラムの先頭文字が検索文字列の中で偶数番目に位置しているので、偶数番目を先頭とするその他のバイグラムを選定する、ということになる。また、一般にＮグラムの場合には、上記と同様に、検索文字列の中での位置をＮで除した余りが、最少出現頻度のＮグラムと等しいものを、選定すればよいことになる。
【００８８】
結果として、ステップＳ６０１で選定された２つのバイグラムとあわせて、「高速」、「速化」、「され」、「た全」、「文検」、「索処」、という７個のバイグラムが、検索Ｎグラムとして選定される。これは、最少出現頻度のバイグラムを含み、そして、上記の１２文字の検索文字列を被覆する最小限の個数より1個多い数のバイグラムとなる。
【００８９】
このような処理によって選定された検索Ｎグラムを基にして、実施形態１において説明したように、文書特定部１６による処理へ移行していく。
【００９０】
以上により、実施形態２では、最少出現頻度のＮグラムを基準として、検索文字列を被覆するＮグラムを選定することにより、必ず最少出現頻度のＮグラムを含む少数（検索文字列を被覆する最小限度またはそれに１を加えた数）の検索Ｎグラムを選定することができる。これにより、高速な検索Ｎグラム選定処理と、効率的な文書特定処理と、の両立が実現できる。
【００９１】
また、本発明での実施形態は、上述した実施形態に加え、上記検索装置１０としてコンピュータ装置２０を機能させるためのコンピュータプログラムであってもよい。
【００９２】
上記コンピュータプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記憶することができる。
【００９３】
また、上記コンピュータプログラムは、コンピュータプログラムが実行されるコンピュータ装置２０とは独立して、コンピュータ通信網を介して配付・販売することができる。また、上記情報記憶媒体は、コンピュータ装置２０とは独立して配付・販売することができる。
【符号の説明】
【００９４】
１０…検索装置、１１…記憶部、１２…入力部、１３…Ｎグラム抽出部、１４…最少頻度導出部、１５…検索Ｎグラム選定部、１６…文書特定部、１７…出力部、２０…コンピュータ装置、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＨＤＤ、２５…入力装置、２６…出力装置、２７…通信制御装置、２８…文書データ、２９…転置インデックス
【図１】
2011232943.tif 000003
【図２Ａ】
2011232943.tif 000004
【図２Ｂ】
2011232943.tif 000005
【図３】
2011232943.tif 000006
【図４】
2011232943.tif 000007
【図５】
2011232943.tif 000008
【図６】
2011232943.tif 000009