(57)【要約】【課題】フレーズに対する検索の高速化を可能にする。【解決手段】本発明は、２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておき、検索時に、入力された検索要求を形態素解析して単語を抽出し、抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出し、抽出された連をキーとして索引表を探索し、検索結果を取得して出力する。【選択図】　　　図１
2004046438.tif 000002
【特許請求の範囲】
【請求項１】
文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索方法において、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成過程と、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出過程と、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出過程と、
抽出された前記連をキーとして前記索引表を探索し、検索結果を取得して出力する検索処理過程と、を行うことを特徴とするテキスト検索方法。
【請求項２】
前記検索処理過程において、
１単語の検索要求が入力された場合には、前記索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とし、
２単語からなるフレーズが検索要求として入力された場合には、前記索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とし、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とし、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と前記索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、前記検索要求と前記索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする請求項１記載のテキスト検索方法。
【請求項３】
文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索装置であって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成手段と、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出手段と、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出手段と、
抽出された前記連をキーとして前記索引表を探索し、検索結果を取得して出力する検索処理手段と、を有することを特徴とするテキスト検索装置。
【請求項４】
前記検索処理手段は、
１単語の検索要求が入力された場合には、前記索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とする手段と、
２単語からなるフレーズが検索要求として入力された場合には、前記索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とする手段と、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする手段と、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と前記索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、前記検索要求と前記索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする手段と、を含む請求項３記載のテキスト検索装置。
【請求項５】
文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索プログラムであって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成ステップと、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出ステップと、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出ステップと、
抽出された前記連をキーとして前記索引表を探索し、検索結果を取得して出力する検索処理ステップと、を実行することを特徴とするテキスト検索プログラム。
【請求項６】
前記検索処理ステップは、
１単語の検索要求が入力された場合には、前記索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とするステップと、
２単語からなるフレーズが検索要求として入力された場合には、前記索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とするステップと、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と前記索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、前記検索要求と前記索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、を含む請求項５記載のテキスト検索プログラム。
【請求項７】
文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索プログラムを格納した記憶媒体であって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成ステップと、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出ステップと、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出ステップと、
抽出された前記連をキーとして前記索引表を探索し、検索結果を取得して出力する検索処理ステップと、を実行するプログラムを格納することを特徴とするテキスト検索プログラムを格納した記憶媒体。
【請求項８】
前記検索処理ステップは、
１単語の検索要求が入力された場合には、前記索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とするステップと、
２単語からなるフレーズが検索要求として入力された場合には、前記索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とするステップと、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と前記索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、前記検索要求と前記索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、を含む請求項７記載のテキスト検索プログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テキスト検索方法及び装置及びテキスト検索プログラム及びテキスト検索プログラムを格納した記憶媒体に係り、特に、大量の文書集合の中から特定の単語を含む文書を検索するテキスト検索方法及び装置及びテキスト検索プログラム及びテキスト検索プログラムを格納した記憶媒体に関する。
【０００２】
【従来の技術】
テキスト検索とは、文書の集合をデータベースに登録しておき、ユーザが与えた検索語に関連する文書をそのデータベースから取り出す技術である。
【０００３】
検索語は、『通信』のような単語や、『通信機器開発』のような複数の語からなるフレーズが与えられることが多い。ここで、「関連する文書」とは、「検索語が含まれる文書」と大体同義であると考えられる。また、検索入力としてフレーズが与えられた場合は、ユーザは、この文字列そのものが含まれている文書を探していると考える。
【０００４】
大量の文書を対象とするテキスト検索処理では、検索を高速に処理するために、転置ファイルと呼ばれる索引表（以下、単に索引表と記す）を備えていて、検索時に参照するものが多い。索引表とは、予め検索対象のテキスト中に含まれている単語を抽出し、各単語がどの文書に出現したかを記憶するものである。その例を図１１に示す。索引表は、単語をキーとし、各単語の出現する文書のＩＤの集合を記憶している。表は、端とをキーとして整列されており、この表を参照することにより、ある単語が指定されると、その単語が出現する文書ＩＤの集合を高速に取り出すことができる。
【０００５】
まず、索引表を用いた一般的な検索処理の流れを説明する。ユーザから入力された検索語を基に索引表を探索し、キーが検索語と一致する表中の行を探し、その行に記載されている文書のＩＤの集合を検索結果としてユーザに対し出力する。例えば、検索語が「通信」という語であった場合には、図１１のキーの部分が「通信」である行に記載されている文書ＩＤ集合（１，５，９，１，１７，３５，８７，１３２，１６３）が検索結果となる。
【０００６】
次に、検索入力が複数の単語から構成されるフレーズ（複合語や短い文など）である場合の処理を説明する。まず、検索入力に対して形態素解析を行い、フレーズを構成する単語に分割する。次に、索引表を探索し、分割して得られたそれぞれの単語をキーとする表中の行を探し、各単語が出現する文書ＩＤの集合を得る。得られた文書集合の積をとり、フレーズを構成するすべての語を含む文書ＩＤの集合を得る。得られた文書集合に含まれるＩＤを持つ文書のテキストを走査し、検索入力と一致するフレーズを実際に持つかどうかを調べ、一致するフレーズを持つ文書ＩＤの検索結果として出力する。
【０００７】
例えば、検索入力が「通信機器」であったとする。このフレーズは、「通信」と「機器」の２つの語で構成される。まず、図１１の索引表で「通信」及び「機器」とマッチングする文書ＩＤ集合をそれぞれ求める。「通信」にマッチする文書ＩＤは、（１，５，９，１１，１７，３５，８７，１３２，１６３）で、一方、「機器」とマッチする文書ＩＤ集合は、（１，５，７，２２，４７，８７，１３２）となるから、これらの集合の積をとると（１，５，８７，１３２）となる。ここで得られた文書集合の中のテキストを走査し、実際に「通信機器」という文字列が含まれているかどうかを検査し、含まれていた文書ＩＤの集合を検索結果として出力する。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記従来の索引表を用いたテキスト検索方法では、検索入力として複数の語からなるフレーズが与えられた場合に、最後に文書のテキストを走査する必要がある。特に、出現頻度の高い語から構成されるフレーズの場合には走査対象の文書数が多く、検索速度が遅くなってしまう。
【０００９】
本発明は、上記の点に鑑みなされたもので、フレーズに対する検索の高速化を可能とするテキスト検索方法及び装置及びテキスト検索プログラム及びテキスト検索プログラムを格納した記憶媒体を提供することを目的とする。
【００１０】
【課題を解決するための手段】
図１は、本発明の原理を説明するための図である。
【００１１】
本発明は、文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索方法において、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成過程（ステップ１）と、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出過程（ステップ２）と、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出過程（ステップ３）と、
抽出された連をキーとして索引表を探索し、検索結果を取得して出力する検索処理過程（ステップ４）と、を行う。
【００１２】
また、本発明の検索処理過程において、
１単語の検索要求が入力された場合には、索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とし、
２単語からなるフレーズが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とし、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とし、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、検索要求と索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする。
【００１３】
図２は、本発明の原理構成図である。
【００１４】
本発明は、文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索装置であって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成手段１００と、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出手段２２０と、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出手段２３０と、
抽出された連をキーとして索引表を探索し、検索結果を取得して出力する検索処理手段２４０と、を有する。
【００１５】
また、本発明の検索処理手段２４０は、
１単語の検索要求が入力された場合には、索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とする手段と、
２単語からなるフレーズが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とする手段と、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする手段と、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、検索要求と索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とする手段と、を含む。
【００１６】
本発明は、文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索プログラムであって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成ステップと、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出ステップと、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出ステップと、
抽出された連をキーとして索引表を探索し、検索結果を取得して出力する検索処理ステップと、を実行する。
【００１７】
また、本発明の検索処理ステップは、
１単語の検索要求が入力された場合には、索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とするステップと、
２単語からなるフレーズが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とするステップと、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、検索要求と索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、を含む。
【００１８】
本発明は、文書集合の中から特定の単語を含む文書を索引表を用いて検索するテキスト検索プログラムを格納した記憶媒体であって、
２つの単語の連とし、該連を構成する単語の境界に区切り文字を挿入し、該連をキーとして該連を取り出した文書ＩＤを整列させた索引表を作成しておく索引表作成ステップと、
検索時に、入力された検索要求を形態素解析して単語を抽出する単語抽出ステップと、
抽出された単語が２単語以上からなるフレーズであった場合には、該フレーズに含まれる２語の連の全てを抽出する連抽出ステップと、
抽出された連をキーとして索引表を探索し、検索結果を取得して出力する検索処理ステップと、を実行するプログラムを格納する。
【００１９】
また、本発明のテキスト検索プログラムを格納した記憶媒体の検索処理ステップは、
１単語の検索要求が入力された場合には、索引表のキーのキーの区切り文字より前の文字列である１つ目の単語が、該検索要求の単語と一致する行全てを抽出し、該行に含まれる文書ＩＤリストの集合の和を検索結果とするステップと、
２単語からなるフレーズが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し、該行の文書ＩＤの集合を検索結果とするステップと、
３単語からなるフレーズが検索要求として入力された場合には、該検索要求のフレーズに含まれる単語２つからなる連を全て取り出し、それぞれと一致する該索引表中の行を検索し、各連が出現する文書ＩＤの集合を取得し、該文書ＩＤの集合の積をとり、該フレーズを構成する全ての連を含む文書ＩＤの集合を取得し、該文書ＩＤの集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、
Ｎ単語からなるフレーズが検索要求として入力された場合で、
単語数がＮ−１以下の場合には、該検索要求と索引表を比較し、前方一致箇所の文書ＩＤの和集合を検索結果とし、
単語数がＮの場合には、検索要求と索引表を比較し、一致する文書ＩＤを検索結果とし、
単語数がＮ＋１以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２，…のように１つずつずらし、文書ＩＤの積を取り、該文書ＩＤの積集合に含まれる文書ＩＤを持つ文書のテキストを走査し、入力された該検索要求と一致するフレーズの存在を調べ、一致するフレーズを持つ文書のＩＤを検索結果とするステップと、を含む。
【００２０】
上記のように、本発明では、索引表のキーを単語ではなく、２つの単語の連とし、その連の出現位置を記憶しておく。なお、キーの単語の境界には境界を示すデリミタ（区切り文字）を挿入しておく。表は、連をキーとして整列しておく。１単語の検索要求が来た場合には、索引表の中のキーの１つめの単語（キーのデリミタより前の文字列）が検索要求の単語と一致する行すべてを取り出し、その文書ＩＤリストの集合の和を取り検索結果とする。表は連をキーとしてソートされているので、ある範囲の連続する行が一致することになる。この場合、従来の索引表による検索と検索速度は同程度である。
【００２１】
２単語からなるフレースが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し、その文書ＩＤの集合を検索結果とする。この場合は、従来の方法と異なり、テキストを走査する必要がないので、高速に検索を行うことができる。
【００２２】
３単語以上からなるフレーズが検索要求として入力された場合には、検索要求のフレーズに含まれる単語の２つからなる連を全て取り出し、それぞれと一致する表中の行を探し、各連が出現する文書ＩＤの集合を得る。得られた文書集合の積を取り、フレーズを構成するすべての連を含む文書ＩＤの集合を得る。得られた文書集合に含まれるＩＤを持つ文書のテキストを走査し、検索入力と一致するフレーズを実際に持つかどうかを調べ、一致するフレーズを持つ文書のＩＤを検索結果として出力する。
【００２３】
３単語以上の場合には、従来方法と同様に最後に文書テキストを走査する必要があるが、２単語の連で一致を調べているので、この段階で走査する対象のテキストの数は従来手法よりずっと少なく、高速に検索できる。
【００２４】
【発明の実施の形態】
まず、検索対象のテキストをテキストデータベースに登録する際に、各テキストから単語を抽出し、２語からなる連を構成し、索引表に連をキーとして出現する文書ＩＤを登録する。
【００２５】
図３は、本発明の一実施の形態における索引表作成装置の構成を示す。
【００２６】
同図に示す索引表作成装置１００は、形態素解析処理により単語を抽出する単語抽出部１１０と、単語抽出部１２０によって得られた単語リストから２語の連を構成する連抽出部１２０と、抽出された連をキーとしてその連を取り出した文書ＩＤを索引表２０に登録する索引表登録部１３０からなる。
【００２７】
検索時には、検索入力を形態素解析して単語を抽出し、解析の結果、２単語以上からなるフレーズであった場合には、フレーズに含まれる２語の連のすべてを抽出する。次に抽出された連をキーとして索引表を探索し、検索結果を得て、結果を出力する。
【００２８】
図４は、本発明の一実施の形態におけるテキスト検索装置の構成を示す。同図に示すテキスト検索装置２００は、ユーザが指定した検索要求を入力する検索要求入力部２１０と、入力された検索要求から単語を抽出する単語抽出部２２０と、単語から連を構成する連抽出部２３０と、予め作成した索引表を参照し、連（または単語）が出現する文書ＩＤ集合を取得し、また、検索要求が３単語以上から構成されている場合には文書を走査して検索要求のフレーズにマッチする文書を求める検索処理部２４０と、検索処理部２４０で得られた文書ＩＤの集合を出力する検索結果出力部２５０から構成される。
【００２９】
【実施例】
以下、図面と共に本発明の実施例を説明する。
【００３０】
以下では、例を用いて前述の索引表作成装置１００及びテキスト検索装置２００の動作を説明する。
【００３１】
まず、テキストデータベースの登録時に、前述の図３の索引表作成装置１００で索引表２０を作成する場合について説明する。
【００３２】
図５は、本発明の一実施例の索引表作成時の動作のフローチャートである。
【００３３】
今、テキストデータベースに登録するテキストが２００個あり、それぞれに１から２００までの通し番号（ＩＤ）が振られているとする。また、その中のＩＤ１，８７，１３２のそれぞれのテキストが、
ＩＤ１：『Ａ社は通信機器開発を進めると発表した。』
ＩＤ８７：『Ｃ社は精密機器開発に加えて通信機器の分野にも進出する。』
ＩＤ１３２：『Ａ社の通信機器の売上げは増加している。』
であったとする。
【００３４】
単語抽出部１１０は、文書集合ＤからＩＤの順にテキストを読み込む。ここで、文書集合Ｄの要素数をｉとする（ステップ１０１）。読み込んだテキストの数がｉより大きくなった場合には、処理を終了する（ステップ１０２）。形態素解析部１２０は、読み込まれたテキストを形態素解析し、単語を抽出する（ステップ１０３）。例えば、ＩＤ１のテキストを形態素解析し、単語を抽出した結果は、
『Ａ社、は、通信、機器、開発、を、進める、と、発表、し、た』
となる。
【００３５】
次に、連抽出部１２０では、抽出された単語リストＷから、２つの単語の連を構成する。先のＩＤ１のテキストの場合、
『Ａ社＄は、は＄通信、通信＄機器、機器＄開発、開発＄を、を＄進める、進める＄と、と＄発表、発表＄し、し＄た』
が連抽出の結果である。ここで、連の単語間のデリミタとし“＄”を用いている。なお、デリミタ（＄）を利用するのは、例えば、デリミタ（＄）なしで、「通信機器」で登録しておき、単語の「通信」がきても、前方一致で比較すれば処理できる。このように、「通信機器」で「通信」で検索の場合はそれでよいが、デリミタを用いないと、「通」１文字で検索しても検索できてしまう。このような検索を許すことも考えられるが、単語ベースの索引を用いた検索を扱っているので、検索入力と索引で単語の区切りが合っているもののを検索するのが適当である。
【００３６】
最後に、索引表登録部１３０では、抽出された連をキーとして文書ＩＤが登録される。
【００３７】
上記の処理を登録するすべてのテキスト２００個について行う（ステップ１０４、１０５）。
【００３８】
上記のようにして索引生成装置１００で作成された索引表の例を図６に示す。
次に、テキスト検索装置２００の処理を説明する。
【００３９】
図７は、本発明の一実施例のテキスト検索装置の連抽出処理のフローチャートである。
【００４０】
検索要求入力部２１０に検索要求が入力されると、単語抽出部２２０において、検索要求が単語を抽出して単語リストを抽出し（ステップ２０１）、単語リストの全要素について連を抽出する（ステップ２０２、２０３）。
【００４１】
次に、検索処理実行時の処理について説明する。
【００４２】
検索入力が、１単語の場合、２単語のフレーズの場合、３単語以上のフレーズの場合に分けて説明する。
【００４３】
まず、検索要求が１単語である場合の検索処理部２３０における処理について説明する。
【００４４】
図８は、本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（１単語の場合）である。
【００４５】
検索要求が１単語であった場合には、索引表２０のキーの１つ目の単語（キーのデリミタより前の文字列）が、検索要求の単語と一致する行全てを取り出し（ステップ３０２）、その文書ＩＤリストの集合の和を取り、検索結果とする。索引表２０は、連をキーとしてソートされているので、ある範囲の連続する行が一致することになる。例えば、検索要求が「通信」という文字列であった場合には、形態素解析処理で１単語と認識されるので、索引表２０を参照し、キーの一つ目の単語が「通信」である行を探す。図６の例では、「通信コスト」「通信機器」「通信産業」の行がマッチする。それぞれの行の文書ＩＤ集合を取り出し和集合をとると、［１，５，９，１１，１７，３５，８７，１３２］のＩＤが得られる（ステップ３０３）。こを検索結果として検索結果出力部２５０から出力する。
【００４６】
次に、検索要求が２単語からなるフレーズである場合について説明する。
【００４７】
図９は、本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（２単語の場合）である。
【００４８】
２単語からなるフレーズが検索要求として入力された場合には、索引表のキーが検索要求のフレーズと一致する行を取り出し（ステップ４０２）、その文書ＩＤの集合を検索結果とする（ステップ４０３）。
【００４９】
例えば、検索要求が「通信機器」という文字列であった場合には、形態素解析処理で２単語と認識されるので、探索表２０からその２語からなる連「通信機器」とキーがマッチするものを探し、マッチした行から文書ＩＤ集合を得る。図６の例では、文書ＩＤ集合［１，５，１３２］が得られ、これを検索結果とし出力する。
【００５０】
次に、検索要求が３単語からなるフレーズである場合について説明する。
【００５１】
図１０は、本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（３単語の場合）である。
【００５２】
３単語以上からなるフレーズが検索要求として入力された場合には、検索要求のフレーズに含まれる単語２つからなる連を全て取り出し（ステップ５０１〜５０３）、それぞれと一致する索引表２０中の行を探し（ステップ５０５）、各連が出現する文書ＩＤの集合を得る（ステップ５０６）。得られた文書集合の積をとり（ステップ５０６）、フレーズを構成するすべての連を含む文書ＩＤの集合を得る（ステップ５０７）。得られた文書集合に含まれるＩＤを持つ文書のテキストを走査し（ステップ５０９）、検索入力と一致するフレーズを実際に持つかどうかを調べ（ステップ５１０）、一致するフレーズを持つ文書ＩＤを検索結果として出力する（ステップ５１１、５０８）。
【００５３】
例えば、検索要求が「通信機器開発」という文字列であった場合には、形態素解析処理で「通信、機器、開発」の３単語と認識され、２語の連としては、「通信機器、機器開発」が得られる。次に、索引表２０を参照し、キーが「通信機器」である行と、キーが「機器開発」である行を探し、それぞれの行に文書集合のＩＤの積集合を取ると、（１，５）が得られる。最後に得られた文書集合に含まれる各文書を走査し、「通信機器開発」という文字列が実際に含まれるかどうか調べる。“文書１”では、「通信機器開発」という文字列が含まれるが、“文書５”では、「通信」と「機器開発」は含まれるが、「通信機器開発」という文字は含まれないので“文書１”は検索結果に加えられるが、“文書５”は加えられない。
【００５４】
こうして得られた文書ＩＤの集合を検索結果とする。
【００５５】
３単語以上の場合は、従来の方法と同様に、最後に文書テキストを走査する必要があるが、２単語の連で一致を調べているので、この段階で走査する対象のテキストの数は、従来の方法よりずっと少なく、高速に検索できる。
【００５６】
詳しくは、３連、４連（Ｎ連）の拡張時には、索引表の作成については、２連の場合と同様である。検索時には、
・単語数が、Ｎ−１個以下の場合には、検索語と索引表のインデックスを比較し、前方一致の箇所の和集合を取る。
【００５７】
・単語数が、Ｎ個の場合には、検索語と索引表のインデックスを比較し、一致の箇所のものを抽出する。
【００５８】
・単語数が、Ｎ＋１個以上の場合には、単語位置で、１〜Ｎ、２〜Ｎ＋１、３〜Ｎ＋２のように１つずつずらしていって積集合を取る。その後は、２連の場合同様に本文を検索する。
【００５９】
原理的には、連の長さが長い程、長い検索文字列に対しての検索が高速になるが、それに従って、索引のサイズが大きくなる。実際、２連の場合でも、索引のサイズがかなり大きくなる。また、３連４連と増やしていっても、絞込の効果はそれほど大きくならない。殆どの検索要求は１〜２単語で行われている。こういったことを総合すると、連数は２あるいは３が適切となる。
【００６０】
また、上記の実施の形態及び実施例における構成の動作をプログラムとして構築し、テキスト検索装置として利用されるコンピュータにインストールすることが可能となる。
【００６１】
また、構築されたプログラムをテキスト検索装置として利用されるコンピュータに接続されるハードディスク装置、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることも可能である。
【００６２】
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【００６３】
【発明の効果】
上述のように、本発明によれば、複数の語からなるフレーズを高速に実行することができる。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の一実施の形態における索引表作成装置の構成図である。
【図４】本発明の一実施の形態におけるテキスト検索装置の構成図である。
【図５】本発明の一実施例の索引表作成時の動作のフローチャートである。
【図６】本発明の一実施例の索引表の例である。
【図７】本発明の一実施例のテキスト検索装置の連抽出処理のフローチャートである。
【図８】本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（１単語の場合）である。
【図９】本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（２単語の場合）である。
【図１０】本発明の一実施例のテキスト検索装置の検索処理部の処理のフローチャート（３単語の場合）である。
【図１１】従来の索引表の例である。
【符号の説明】
１０　文書集合
２０　索引表
１００　索引表生成手段、索引表生成装置
１１０　単語抽出部
１２０　連抽出部
１３０　索引表登録部
２１０　検索要求入力部
２２０　単語抽出手段、単語抽出部
２３０　連抽出手段、連抽出部
２４０　検索処理手段、検索処理部
２５０　検索結果出力部
【図１】
2004046438.tif 000003
【図２】
2004046438.tif 000004
【図３】
2004046438.tif 000005
【図４】
2004046438.tif 000006
【図５】
2004046438.tif 000007
【図６】
2004046438.tif 000008
【図７】
2004046438.tif 000009
【図８】
2004046438.tif 000010
【図９】
2004046438.tif 000011
【図１０】
2004046438.tif 000012
【図１１】
2004046438.tif 000013