(57)【特許請求の範囲】
【請求項１】
複数の登録文書を保持する登録文書保持手段と、
前記登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割手段と、
前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割手段により得られた各グラムの出現回数を算出する文書中出現回数算出手段と、
各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割手段により得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成手段と、
前記単語別頻度最適グラム群作成手段により作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録手段と
を備えたことを特徴とする文書検索装置。
【請求項２】
ユーザにより入力された検索キーワードを取得する検索条件取得手段と、
前記検索条件取得手段により取得された前記検索キーワードに対応する文書を、前記単語別頻度最適グラム群を利用して検索する検索手段と
をさらに備えたことを特徴とする請求項１に記載の文書検索装置。
【請求項３】
前記所定の文字列である見出し語と、該見出し語に同義または類義の展開語とを対応付けて保持する展開語保持手段と、
前記見出し語と、前記展開語保持手段が保持する前記展開語とにおける、前記見出し語に含まれる各グラムの出現回数と、前記見出し語に対応付けられている前記展開語に含まれる各グラムの出現回数とを算出する登録語中出現回数算出手段と
をさらに備え、
前記単語別頻度最適グラム群作成手段は、さらに、各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割手段により得られた複数のグラムの組み合わせであって、前記見出し語に含まれるすべての文字と前記見出し語に対応付けられている前記展開語に含まれるすべての文字とを含み、かつ当該組み合わせに含まれる各グラムの前記登録語中出現回数算出手段により算出された前記出現回数の多いグラムから順に選択した前記組み合わせを共通分割最適グラム群として作成し、
前記索引登録手段は、さらに前記単語別頻度最適グラム群作成手段により作成された前記共通分割最適グラム群を、前記見出し語と前記展開語との索引として登録することを特徴とする請求項１に記載の文書検索装置。
【請求項４】
ユーザにより入力された検索キーワードと、前記見出し語と前記展開語とを含む展開検索指示とを取得する検索条件取得手段と、
前記検索条件取得手段が前記展開検索指示を取得した場合に、さらに前記共通分割最適グラム群を利用して、前記検索条件取得手段により取得された前記検索キーワードに対応する文書を検索する検索手段と
をさらに備える
ことを特徴とする請求項３に記載の文書検索装置。
【請求項５】
コンピュータが、複数の登録文書を保持する登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割ステップと、
前記コンピュータが、前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割ステップにより得られた各グラムの出現回数を算出する文書中出現回数算出ステップと、
前記コンピュータが、各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割ステップにおいて得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成ステップと、
前記コンピュータが、前記単語別頻度最適グラム群作成ステップにおいて作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録ステップと
を有することを特徴とする文書検索方法。
【請求項６】
文書検索処理をコンピュータに実行させるための文書検索プログラムであって、
複数の登録文書を保持する登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割ステップと、
前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割手段により得られた各グラムの出現回数を算出する文書中出現回数算出ステップと、
各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割ステップにおいて得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成ステップと、
前記単語別頻度最適グラム群作成ステップにおいて作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録ステップと
を前記コンピュータに実行させるための文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｎ−ｇｒａｍを利用した文書検索装置、文書検索方法および文書検索プログラムに関するものである。
【背景技術】
【０００２】
従来から、登録された文書群から検索キーワードとして指定された文字列を含む文書を検索する、いわゆる全文検索システムが知られている。この全文検索システムを実現する方法としては、（１）登録文をｎ文字ごとに切り出した単語単位で索引を作る方法（ｎ−ｇｒａｍ法）と、（２）形態素解析を用いて認識された単語単位で索引を作る方法と、（３）索引は作らずに文書そのものを直接検索する方法の３つが代表的なものである。
【０００３】
全文検索システムの機能の一つとして、検索漏れの可能性を減らすため、検索キーワードに対応する同義語や関連語を、検索キーワードとして自動的に加えて検索を実行する機能、すなわち展開語検索がある。
【０００４】
このような展開語検索をｎ−ｇｒａｍ法で実行するためには、（ａ）キーワードに対応する展開語のリストを、展開語辞書などを用いて取得する。（ｂ）得られた検索語と展開語のリスト一つ一つの単語について、ｎ−ｇｒａｍ分割を行い転置辞書を用いて文書を検索する。（ｃ）（ｂ）で得られた結果をマージする。という手順が必要である。分割したｇｒａｍのうち検索に使用するｇｒａｍの選び方は複数存在する。またｇｒａｍにより出現頻度が異なり、どのｇｒａｍを選択するかが検索応答時間に影響する。
【０００５】
この手法では、（ｂ）において毎回ｇｒａｍ分割が発生すること、および同じｇｒａｍを複数回転置辞書を用いて検索する必要があることから、索引にアクセスする際のオーバヘッドが大きい。この問題を解決すべく、複数単語検索時に重複するグラムを再利用する方法も知られている（例えば、「特許文献１」参照）。
【０００６】
【特許文献１】特開平１０−３０７７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、１単語の検索においてもオーバヘッドが存在し、上述のように複数単語検索時に重複するグラムを再利用してもなおオーバヘッドが存在しており、オーバヘッドをより低減させる必要がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、オーバヘッドがより少なく処理効率の高い文書検索装置、文書検索方法および文書検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、複数の登録文書を保持する登録文書保持手段と、前記登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割手段と、前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割手段により得られた各グラムの出現回数を算出する文書中出現回数算出手段と、各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割手段により得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成手段と、前記単語別頻度最適グラム群作成手段により作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録手段とを備えたことを特徴とする。
【００１０】
また、本発明の他の形態は、文書検索方法であって、コンピュータが、複数の登録文書を保持する登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割ステップと、前記コンピュータが、前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割ステップにより得られた各グラムの出現回数を算出する文書中出現回数算出ステップと、前記コンピュータが、各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割ステップにおいて得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成ステップと、前記コンピュータが、前記単語別頻度最適グラム群作成ステップにおいて作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録ステップとを有することを特徴とする。
【００１１】
また、本発明の他の形態は、文書検索処理をコンピュータに実行させるための文書検索プログラムであって、複数の登録文書を保持する登録文書保持手段が保持する前記登録文書をｎ文字単位の文字列であるグラムに分割するｎ−ｇｒａｍ分割ステップと、前記登録文書保持手段が保持する複数の前記登録文書における、前記ｎ−ｇｒａｍ分割手段により得られた各グラムの出現回数を算出する文書中出現回数算出ステップと、各グラムの前記出現回数に基づいて、前記ｎ−ｇｒａｍ分割ステップにおいて得られた複数のグラムの組み合わせであって、前記登録文書中の所定の文字列に含まれるすべての文字を含み、かつ前記登録文書保持手段が保持する前記登録文書における、当該組み合わせに含まれる各グラムの、互いに重ならず、かつ、前記出現回数の少ないグラムから順に選択したグラムの前記組み合わせを単語別頻度最適グラム群として作成する単語別頻度最適グラム群作成ステップと、前記単語別頻度最適グラム群作成ステップにおいて作成された前記単語別頻度最適グラム群を、前記所定の文字列の索引として登録する索引登録ステップとを前記コンピュータに実行させるための文書検索プログラムである。
【発明の効果】
【００１２】
本発明によれば、検索処理におけるオーバヘッドを低減させ、検索処理の効率を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる文書検索装置、文書検索方法および文書検索プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
図１は、実施の形態にかかる文書検索装置１０の機能構成を示すブロック図である。文書検索装置１０は、展開語情報取得部１０１と、ｎ−ｇｒａｍ分割部１０２と、展開語索引登録部１０３と、展開語索引記憶部１０４と、ｎ−ｇｒａｍ索引記憶部１０５と、文書取得部１０６と、文書登録部１０７と、文書記憶部１０８と、索引最適化部１０９と、検索条件取得部１１０と、検索部１１１と、表示部１１２とを備えている。
【００１７】
展開語情報取得部１０１は、展開語情報として、見出し語とそれに対応する複数の展開語を取得する。ここで、見出し語とは、検索キーワードとして指定されうる文字列のことである。また、展開語とは、たとえば見出し語の同義語、類似語および関連語など文書検索実行時に漏れのない検索を実行するために、ユーザから指定されたキーワードと同等に扱う検索語句である。
【００１８】
図２は、見出し語および展開語を説明するための図である。図２に示す例の見出し語は、「Ｅメールソフト」である。「電子メールソフト」、「Ｅ―ｍａｉｌソフト」および「イーメールソフト」の３つの文字列は、見出し語「Ｅメールソフト」の展開語である。これらの展開語は、見出し語と同義であり表記の異なる文字列である。
【００１９】
例えば、ユーザにより見出し語「Ｅメールソフト」が検索キーワードとして入力された場合には、「Ｅメールソフト」だけでなく「電子メールソフト」、「Ｅ―ｍａｉｌソフト」および「イーメールソフト」の３つの文字列を検索対象として検索を行う。
【００２０】
図１のｎ−ｇｒａｍ分割部１０２は、展開語情報取得部１０１から見出し語および展開語などの検索キーワード、すなわちテキスト文字列を取得する。そして、テキスト文字列をｎ−ｇｒａｍ（ｎ文字列、すなわちｎ文字単位の文字列をいい、以下、単にグラムという）に分割する。さらに、後述の文書取得部１０６が取得する文書に含まれるテキスト文字列もグラムに分割する。
【００２１】
図３は、ｎ−ｇｒａｍ分割部１０２によるｎ−ｇｒａｍ分割処理を説明するための図である。ここでは、ｎ＝３の場合を示している。例えば、単語“Ｅメールソフト”の場合、“Ｅメー”、“メール”等のように分割される。なお、単語の初めと終わりはｎ≦３にも分割する。例えば“Ｅ”、“Ｅメ”である。図３は、図２に示す展開語情報に対する処理を示す図である。展開語情報を取得した場合には、図３に示すように展開語情報に含まれる見出し語および展開語それぞれをグラムに分割する。
【００２２】
展開語索引登録部１０３は、見出し語とそれに対応する展開語を展開語索引記憶部１０４に登録する。さらに、それぞれの検索キーワードのｎ−ｇｒａｍ分割の結果を展開語索引記憶部１０４に登録する。また、ｎ−ｇｒａｍ索引記憶部１０５にｎ−ｇｒａｍ分割の結果を登録する。展開語索引登録部１０３はさらに、展開検索において使用するグラムの組み合わせである共通分割最適グラム群を特定する。これを見出し語「Ｅメールソフト」の共通分割最適グラム群として展開語索引記憶部１０４に登録する。
【００２３】
ここで、展開検索とは、検索条件に含まれる見出し語だけでなく、見出し語に対応する展開語を検索すべきキーワードとして行う検索のことである。共通分割最適グラム群は、見出し語と展開語とを共に検索する際に必要な最小限の数のグラムの組み合わせである。
【００２４】
図４−１および図４−２は、展開語索引登録部１０３が共通分割最適グラム群を特定する際の処理を説明するための図である。図４−１に示すように、展開語情報に含まれる見出し語とすべての展開語を対象として、各グラムの出現回数をカウントする。そして、出現回数の多いグラムから順に選択することにより、見出し語とすべての展開語それぞれに含まれる各文字を含むようなグラムの組み合わせを、共通分割最適グラム群として特定する。
【００２５】
図２に示す展開情報においては、図４−１に示すような出現回数となる。したがって、出現回数の最も多い「ソフト」をまず選択する。次に、「ソフト」と重ならず出現回数の多い「メール」を選択する。そして、残りの文を含む「電子メ」、「Ｅ−ｍ」、「ａｉｌ」および「イーメ」を選択する。
【００２６】
こうして選択された「電子メ」、「Ｅ−ｍ」、「ａｉｌ」、「イーメ」、「メール」および「ソフト」の６つのグラムの組み合わせを共通分割最適グラム群として特定する。すなわち、共通して出現するグラムを優先して選択することで、必要最小限のグラムの組み合わせ、すなわち共通分割最適グラム群を求めることができる。
【００２７】
さらに、展開語索引登録部１０３は、隣接判定条件を抽出し、展開語索引記憶部１０４に登録する。ここで、隣接判定条件とは、複数のグラムの検索キーワードにおける位置関係を示す条件である。例えば、「Ｅメールソフト」という検索キーワードにおいては、２つのグラム「メール」と「ソフト」は隣接している必要があり、そのための隣接判定条件は、オフセット３である。ここで、オフセットとは、２つのグラム間の位置の差である。
【００２８】
なお、本実施の形態にかかる展開語索引登録部１０３は、登録語中出現回数算出手段、単語別頻度最適グラム群作成手段および索引登録手段として機能する。
グラム群となる。単語別頻度最適グラム群は、展開語索引記憶部１０４に登録される。
【００２９】
図１の文書取得部１０６は、検索の対象となる文書を取得する。この文書はｎ−ｇｒａｍ分割部１０２によりｎ−ｇｒａｍ分割が行われる。文書登録部１０７は、文書取得部１０６が取得した文書を、当該文書を識別する文書ＩＤに対応付けて文書記憶部１０８に登録する。図５は、文書記憶部１０８のデータ構成を模式的に示す図である。文書記憶部１０８は、文書ＩＤと文書とを対応付けて記憶している。
【００３０】
図１の文書登録部１０７はさらに、ｎ−ｇｒａｍ分割により得られた各グラムをｎ−ｇｒａｍ索引記憶部１０５に登録する。さらに、グラムが含まれる文書の文書ＩＤと、文書内における位置情報と、頻度情報とをグラムに対応付けてｎ−ｇｒａｍ索引記憶部１０５に登録する。ここで、位置情報とは、文書の先頭文字を基準とした場合のオフセットを示す情報である。また、頻度情報とは、文書記憶部１０８に登録されるすべての文書において、各ｎ−ｇｒａｍが出現する回数を示す情報である。
【００３１】
図６は、ｎ−ｇｒａｍ索引記憶部１０５のデータ構成を模式的に示す図である。ｎ−ｇｒａｍ索引記憶部１０５は、グラムと頻度情報と位置情報とを対応付けて記憶している。例えば、頻度情報として、「１００１０５」が登録されている。これは、グラム「Ｅ」が、文書記憶部１０８に登録されている全ての文書において、合計１００１０５回出現していることを示している。
【００３２】
また、文書ＩＤ「１」で識別される文書の位置情報として、（１，１０）が登録されている。これは、文書ＩＤ「１」で識別される文書のオフセット「１０」にグラム「Ｅ」が出現することを示している。
【００３３】
索引最適化部１０９は、展開語索引記憶部１０４に見出し語または展開語として登録されている単語を検索する際に利用するグラムの組み合わせである単語別頻度最適グラム群を作成する。さらに、展開検索において利用するグラムの組み合わせである共通頻度最適グラム群を作成する。このとき、ｎ−ｇｒａｍ索引記憶部１０５に登録されている各グラムの頻度情報を参照する。そして、この結果得られた単語別頻度最適グラム群および共通頻度最適グラム群を展開語索引記憶部１０４に登録する。
【００３４】
単語別頻度最適グラム群とは、ｎ−ｇｒａｍ索引記憶部１０５に登録されている頻度情報が示す出現回数の少ないグラムの組み合わせである。すなわち、単語別頻度最適グラム群に含まれる各グラムの出現回数の合計が最も少なくなるように選択された複数のグラムの組み合わせである。なお、単語別頻度最適グラム群に、検索キーワードに含まれるすべての文字が含まれるように複数のグラムが選択されている。このように出現回数の少ないグラムを利用することにより、検索処理効率を向上させることができる。
【００３５】
ここで、一例として「Ｅメールソフト」という見出し語に対する単語別頻度最適グラム群を作成する処理について説明する。「Ｅメールソフト」から得られた各グラムに対して図６に示すような頻度情報が得られたとする。この場合には、出現回数が「８９」と最も少ない「ールソ」が選択される。
【００３６】
さらに、「ールソ」の文字と重ならず、出現回数の少ない「Ｅメー」および「ソフト」が選択される。こうして選択された３つのグラム「Ｅメー」、「ールソ」および「ソフト」が単語別頻度最適グラム群となる。単語別頻度最適グラム群は、展開語索引記憶部１０４に登録される。
【００３７】
また、共通頻度最適グラム群は、展開検索において対象となる検索キーワードである見出し語および展開語に含まれるグラムの組み合わせであり、ｎ−ｇｒａｍ索引記憶部１０５に登録されている頻度情報が示す出現回数の少ないグラムの組み合わせである。共通頻度最適グラム群は、単語別頻度最適グラム群と同様に、共通頻度最適グラム群に含まれる各グラムの出現回数の合計が最も少なくなるように選択された複数のグラムの組み合わせである。
【００３８】
なお、本実施の形態にかかる索引最適化部１０９は、文書中出現回数算出手段、単語別頻度最適グラム群作成手段および索引登録手段として機能する。
【００３９】
図７は、展開語索引記憶部１０４のデータ構成を示す図である。展開語索引記憶部１０４は、見出し語と、これに対応する展開語とを記憶している。さらに、見出し語と展開語それぞれに対応付けて、これらのグラムと、単語別頻度最適グラム群とを記憶している。さらに、見出し語に対する共通分割最適グラム群と、共通頻度最適グラム群とを記憶している。また、隣接判定条件として、隣接単語とオフセットとを対応付けて記憶している。以上の情報を見出し語ごとに記憶している。
【００４０】
検索条件取得部１１０は、文書記憶部１０８に登録されている文書を検索するための検索条件を取得し解析する。検索条件には、検索すべきキーワードが含まれている。さらに、検索キーワードが見出し語に含まれていたとしても展開語を含む検索を行わない通常検索か、検索キーワードに一致する見出し語のみならず、検索キーワードに一致する見出し語に対する展開語も含めた検索を行う展開語検索かの指定も含まれている。
【００４１】
検索部１１１は、検索条件取得部１１０が取得した検索条件において、通常検索が指定されている場合には、展開語索引記憶部１０４を参照し、検索条件に含まれる見出し語に対する単語別頻度最適グラム群を抽出する。そして、抽出した単語別頻度最適グラム群に基づいて、検索条件に適合する文書を検索する。
【００４２】
一方、検索条件において、展開語検索が指定されている場合には、検索条件に含まれる見出し語に対する共通分割最適グラム群および共通頻度最適グラム群を展開語索引記憶部１０４から抽出する。そして、抽出した共通分割最適グラム群および共通頻度最適グラム群に基づいて、検索条件に適合する文書を検索する。表示部１１２は、検索条件取得部１１０による検索結果を表示する。
【００４３】
図８は、文書検索装置１０による展開語索引登録処理を示すフローチャートである。なお、展開語索引登録処理は、文書検索装置１０における初期設定時や展開語情報が更新されたときに行う。
【００４４】
まず、展開語情報取得部１０１は、見出し語と展開語とを含む展開語情報を取得する（ステップＳ１０１）。次に、ｎ−ｇｒａｍ分割部１０２は、展開語情報取得部１０１が取得した見出し語と展開語それぞれに対しｎ−ｇｒａｍ分割を行いグラムを得る（ステップＳ１０２）。
【００４５】
次に、ｎ−ｇｒａｍ分割部１０２により得られたグラムのうち未登録のものをｎ−ｇｒａｍ索引記憶部１０５に登録する（ステップＳ１０３）。なお、これらのグラムは、展開語検索の場合に一緒にアクセスされる可能性が高い。そこで、まとめて検索要求がきた場合にアクセスするのに有利なように配置する。配置方法としては、例えば、並列にアクセスできる記憶装置がある場合には、並列アクセスが可能なように分散して配置する。
【００４６】
次に、各グラムの出現回数をカウントする（ステップＳ１０４）。次に、各グラムの出現回数に基づいて、共通分割最適グラム群を作成する（ステップＳ１０５）。次に、隣接判定条件を抽出する（ステップＳ１０６）。以上の処理をすべての単語について行うと（ステップＳ１０７，Ｎｏ）、展開語索引登録処理が完了する。
【００４７】
図９は、文書検索装置１０による文書登録処理を示すフローチャートである。まず、文書取得部１０６は登録すべき文書を取得する（ステップＳ２０１）。次に、文書登録部１０７は、文書を文書記憶部１０８に登録する（ステップＳ２０２）。また、ｎ−ｇｒａｍ分割部１０２は、文書取得部１０６が取得した文書に対しｎ−ｇｒａｍ分割を行う（ステップＳ２０３）。
【００４８】
次に、得られたグラムをｎ−ｇｒａｍ索引記憶部１０５に登録する（ステップＳ２０４）。具体的には、グラムが既にｎ−ｇｒａｍ索引記憶部１０５に登録されている場合には、そのエントリに文書ＩＤと位置情報を追加する。
【００４９】
グラムがｎ−ｇｒａｍ索引記憶部１０５に登録されていない場合には、新たにエントリを作成し、そのエントリに文書ＩＤと文書内位置情報を追加する。なお情報として位置情報の他に、グラムの頻度情報もあわせて登録する。以上の処理をすべての文書について行うと（ステップＳ２０５，Ｎｏ）、文書登録処理が完了する。
【００５０】
図１０は、文書検索装置１０による索引最適化処理を示すフローチャートである。なお、索引最適化処理は、ｎ−ｇｒａｍ索引記憶部１０５に登録されている各グラムの頻度情報を利用するので、文書登録後に実行する。具体的には、文書登録後のシステムの再起動時や、ユーザが指定した任意のタイミングで実行するのが望ましい。
【００５１】
まず、展開語索引記憶部１０４から見出し語と、その見出し語に対応する展開語を抽出する（ステップＳ３０１）。さらに、見出し語および展開語のグラムを抽出する。次に、索引最適化部１０９は、ｎ−ｇｒａｍ索引記憶部１０５から読み出された見出し語および展開語のグラムと、各グラムの頻度情報を読み出す（ステップＳ３０２）。
【００５２】
次に、頻度情報に示される出現回数に基づいて、グラム群に含まれる複数のグラムそれぞれの出現回数の合計が最も小さくなるようなグラムの組み合わせを単語別頻度最適グラム群として作成する（ステップＳ３０３）。見出し語および展開語それぞれに対し単語別頻度最適グラム群を作成する。
【００５３】
次に、見出し語および展開語すべてに含まれるグラムの出現回数に基づいて、展開語検索において利用すべき共通頻度最適グラム群を作成する（ステップＳ３０４）。以上の処理をすべての見出し語および展開語について行うと（ステップＳ３０５，Ｎｏ）、索引最適処理が完了する。
【００５４】
図１１は、文書検索装置１０による文書検索処理を示すフローチャートである。まず、検索条件取得部１１０は、検索条件を取得する（ステップＳ４０１）。次に、検索条件に含まれる検索キーワードのうちから未処理のキーワードを１つ選択する（ステップＳ４０３）。
【００５５】
検索条件において展開語検索が指示されており（ステップＳ４０４，Ｙｅｓ）、選択したキーワードが見出し語として登録されている場合には（ステップＳ４０５，Ｙｅｓ）、展開語索引記憶部１０４から選択されたキーワードに対する共通頻度最適グラム群および共通分割最適グラム群を抽出する（ステップＳ４０６）。そして、検索部１１１は、抽出したグラム群を利用してグラムを検索する（ステップＳ４１０）。このとき、さらに展開語索引記憶部１０４に登録されている隣接判定条件を利用する。
【００５６】
なお、展開語検索が指示されており、かつ選択したキーワードが見出し語として登録されている場合には、まず共通分割最適グラム群が複数登録されている場合には、共通頻度最適グラム群を利用して、出現回数の最も少ないグラム群を１つ選択する。こうして選択されたグラム群によりグラム検索が行われる。
【００５７】
一方、検索条件において展開語検索が指示されており（ステップＳ４０４，Ｙｅｓ）、選択されたキーワードが展開語として登録されている場合には（ステップＳ４０５，Ｎｏ、ステップＳ４０７，Ｙｅｓ）、選択したキーワードに対する単語別頻度最適グラム群を抽出する（ステップＳ４０８）。そして、ステップＳ４１０へ進む。
【００５８】
また、検索条件において通常検索が指示されており（ステップＳ４０４，Ｎｏ）、選択されたキーワードが展開語索引に登録されている場合にも（ステップＳ４０７，Ｙｅｓ）、キーワードに対する単語別頻度最適グラム群を抽出する（ステップＳ４０８）。
【００５９】
検索条件において通常検索が指示されており（ステップＳ４０４，Ｎｏ）、選択されたキーワードが展開語索引に登録されていない場合には（ステップＳ４０７，Ｎｏ）、キーワードをグラム分割し（ステップＳ４０９）、得られたグラムを利用してステップＳ４１０において通常のグラム検索を行う。
【００６０】
以上の処理をすべてのキーワードについて行うと（ステップＳ４１１，Ｎｏ）、次に得られた検索結果をマージする（ステップＳ４１２）。次に、表示部１１２は、検索結果を出力する（ステップＳ４１３）。以上で、文書検索処理が完了する。
【００６１】
以上のように、文書検索装置１０によれば、見出し語と展開語の複数の語について、共通して出現するグラムを抽出して最小のグラム集合を予め求めておくことにより、取得が必要なグラムの数そのものを少なくすることができる。例えば、「Ｅメールソフト」というキーワードに対する処理においては、従来手法ではグラム分割処理が行われる。このため、重複するグラムの情報を再利用したとしても、「Ｅメー」、「ルソフ」、「ト」、「電子メ」、「ールソ」、「フト」、「Ｅ−ｍ」、「ａｉｌ」、「ソフト」および「イーメ」の１０種のグラムに関する情報取得が必要であった。
【００６２】
これに対し、本実施の形態にかかる文書検索装置１０においては図４−２において丸で囲まれた６種のグラムですむことになる。１種のグラムに対してその位置情報は文書数の数倍に達することがあり、中間結果を維持するためのメモリもそれだけ必要となる。さらに、キーワードが文書中に出現しているかどうかはグラム同士の位置情報を見て判定する必要があり、このため、グラムが１種でも増えればその分相当の計算量が必要となる。
【００６３】
本実施の形態にかかる文書検索装置１０においては、このグラム数を最小に押さえることができる。これにより、ｎ−ｇｒａｍ索引へのアクセス回数、中間バッファとして必要となるメモリ、およびグラム同士の位置情報を判定する計算量を減らすことができる。
【００６４】
図１２は、実施の形態にかかる文書検索装置１０のハードウェア構成を示す図である。文書検索装置１０は、ハードウェア構成として、先に説明した展開語索引登録処理、文書登録処理、索引最適化処理および文書検索処理を含む文書検索処理を実行する文書検索プログラムなどが格納されているＲＯＭ５２と、ＲＯＭ５２内のプログラムに従って文書検索装置１０の各部を制御するＣＰＵ５１と、ｎ−ｇｒａｍ索引、展開語索引、登録文書を格納する外部記憶装置５４と、文書検索装置１０の制御に必要な種々のデータを記憶し、さらに外部記憶装置５４から読み出された情報が格納されるＲＡＭ５３と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５７と、各部を接続するバス６２とを備えている。
【００６５】
先に述べた文書検索装置１０における文書検索プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（Ｒ）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
【００６６】
この場合には、文書検索プログラムは、文書検索装置１０において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
【００６７】
また、本実施の形態の文書検索プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【００６８】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
【図面の簡単な説明】
【００６９】
【図１】実施の形態にかかる文書検索装置１０の機能構成を示すブロック図である。
【図２】見出し語および展開語を説明するための図である。
【図３】ｎ−ｇｒａｍ分割部１０２によるｎ−ｇｒａｍ分割処理を説明するための図である。
【図４−１】展開語索引登録部１０３が共通分割最適グラム群を特定する際の処理を説明するための図である。
【図４−２】展開語索引登録部１０３が共通分割最適グラム群を特定する際の処理を説明するための図である。
【図５】文書記憶部１０８のデータ構成を模式的に示す図である。
【図６】ｎ−ｇｒａｍ索引記憶部１０５のデータ構成を模式的に示す図である。
【図７】展開語索引記憶部１０４のデータ構成を示す図である。
【図８】文書検索装置１０による展開語索引登録処理を示すフローチャートである。
【図９】文書検索装置１０による文書登録処理を示すフローチャートである。
【図１０】文書検索装置１０による索引最適化処理を示すフローチャートである。
【図１１】文書検索装置１０による文書検索処理を示すフローチャートである。
【図１２】実施の形態にかかる文書検索装置１０のハードウェア構成を示す図である。
【符号の説明】
【００７０】
１０  文書検索装置
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  外部記憶装置
５７  通信Ｉ／Ｆ
６２  バス
１０１  展開語情報取得部
１０２  ｎ−ｇｒａｍ分割部
１０３  展開語索引登録部
１０４  展開語索引記憶部
１０５  索引記憶部
１０６  文書取得部
１０７  文書登録部
１０８  文書記憶部
１０９  索引最適化部
１１０  検索条件取得部
１１１  検索部
１１２  表示部
【図１】
0004634940.tif 000002
【図２】
0004634940.tif 000003
【図３】
0004634940.tif 000004
【図４−１】
0004634940.tif 000005
【図４−２】
0004634940.tif 000006
【図５】
0004634940.tif 000007
【図６】
0004634940.tif 000008
【図７】
0004634940.tif 000009
【図８】
0004634940.tif 000010
【図９】
0004634940.tif 000011
【図１０】
0004634940.tif 000012
【図１１】
0004634940.tif 000013
【図１２】
0004634940.tif 000014