"単語間の類義関係を階層的に分類してコード化した類語辞書データの中から、検索文字列内の検索単語の階層ごとの分類コードと、比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードと、を特定する特定工程と、前記特定工程によって特定された前記検索単語の階層ごとの分類コードおよび前記各比較単語の階層ごとの分類コードの中から、前記類語辞書データを構成する階層群のうち特定階層の分類コードを抽出する抽出工程と、前記抽出工程によって抽出された前記検索単語の前記特定階層の分類コードと前記比較単語の前記特定階層の分類コードとが一致するか否かを、比較文字列ごとに判定する判定工程と、前記判定工程による前記特定階層での一致数を計数する計数工程と、前記計数工程によって計数された一致数に基づいて、前記判定工程によって前記比較単語の前記特定階層の分類コードが不一致と判定された比較文字列を除外するか否かを判断する判断工程と、前記検索単語の階層ごとの分類コードと前記判断工程によって除外しないと判断された比較文字列内の前記比較単語の階層ごとの分類コードとに基づいて、前記検索文字列と前記除外しないと判断された比較文字列との類似度を算出する算出工程と、前記算出工程によって算出された算出結果を出力する出力工程と、をコンピュータに実行させることを特徴とする検索プログラム。前記特定階層は前記階層群の中の中間階層であることを特徴とする請求項1に記載の検索プログラム。前記抽出工程は、さらに、前記検索単語の階層ごとの分類コードおよび前記各比較単語の階層ごとの分類コードの中から、前記中間階層よりも上位となる上位階層の分類コードを抽出し、前記判定工程は、前記抽出工程によって抽出された前記検索単語の前記上位階層の分類コードと前記比較単語の前記上位階層の分類コードとが一致するか否かを、前記比較文字列ごとに判定し、一致すると判定された比較文字列ごとに、前記検索単語の前記中間階層の分類コードと前記比較単語の前記中間階層の分類コードとが一致するか否かを判定することを特徴とする請求項2に記載の検索プログラム。前記検索単語の数が所定単語数以上であるか否かを判別する判別工程を前記コンピュータに実行させ、前記特定工程は、前記判別工程によって前記検索単語の数が所定単語数以上でないと判別された場合、前記類語辞書データの中から、前記検索文字列内の検索単語の階層ごとの分類コードと、前記比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードとを、比較文字列ごとに特定することを特徴とする請求項1~3のいずれか一つに記載の検索プログラム。前記類語辞書データ内の各分類コードに対応する単語の各対象ファイル内での存否を示すビット列の集合を階層別にまとめた分類マップ群のうち最上位階層の分類マップを参照して、前記検索単語の前記最上位階層の分類コードが存在する特定の対象ファイルを検出する検出工程を前記コンピュータに実行させ、前記特定工程は、前記類語辞書データの中から、前記検索文字列内の検索単語の階層ごとの分類コードと、前記検出工程によって検出された特定の対象ファイル内に存在する前記比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードとを、比較文字列ごとに特定することを特徴とする請求項1~3のいずれか一つに記載の検索プログラム。単語間の類義関係を階層的に分類してコード化した類語辞書データを構成する階層群の中から指定された指定階層を対象階層に設定する第1の設定工程と、前記類語辞書データの中から、検索文字列内の検索単語の前記指定階層から前記対象階層までの分類コードと、比較文字列群の各々の比較文字列内の比較単語の前記指定階層から前記対象階層までの分類コードとを、比較文字列ごとに特定する特定工程と、前記検索単語の前記指定階層から前記対象階層までの分類コードと前記比較単語の前記指定階層から前記対象階層までの分類コードに基づいて、前記検索文字列と前記比較文字列との類似度を比較文字列ごとに算出する算出工程と、前記算出工程によって類似度が算出された比較文字列群のうち所定類似度以上となる前記比較文字列の数を計数する計数工程と、前記計数工程によって計数された計数結果が所定数以下である場合、前記対象階層をより上位の階層に変更する第2の設定工程と、前記計数工程によって計数された計数結果が前記所定数よりも多いこととなった比較文字列群のうち少なくとも前記所定類似度以上の比較文字列を出力する出力工程と、をコンピュータに実行させることを特徴とする検索プログラム。前記検索単語の文字数が所定文字数以上であるか否かを判別する判別工程を前記コンピュータに実行させ、前記第1の設定工程は、前記判別工程によって前記検索単語が所定文字数以上であると判別された場合、前記指定階層を前記対象階層に設定することを特徴とする請求項6に記載の検索プログラム。前記類語辞書データ内の各分類コードに対応する単語の各対象ファイル内での存否を示すビット列の集合を階層別にまとめた分類マップ群を参照して、前記検索単語の前記対象階層の分類コードが存在する特定の対象ファイルを検出する検出工程を前記コンピュータに実行させ、前記特定工程は、前記類語辞書データの中から、前記検索文字列内の検索単語の前記指定階層から前記対象階層までの分類コードと、前記検出工程によって検出された特定の対象ファイル内に存在する比較文字列群の各々の比較文字列内の比較単語の前記指定階層から前記対象階層までの分類コードとを、比較文字列ごとに特定することを特徴とする請求項6または7に記載の検索プログラム。単語間の類義関係を階層的に分類してコード化した類語辞書データの中から、検索文字列内の検索単語の階層ごとの分類コードと、比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードと、を特定する特定手段と、前記特定手段によって特定された前記検索単語の階層ごとの分類コードおよび前記各比較単語の階層ごとの分類コードの中から、前記類語辞書データを構成する階層群のうち特定階層の分類コードを抽出する抽出手段と、前記抽出手段によって抽出された前記検索単語の前記特定階層の分類コードと前記比較単語の前記特定階層の分類コードとが一致するか否かを、比較文字列ごとに判定する判定手段と、前記判定手段による前記特定階層での一致数を計数する計数手段と、前記計数手段によって計数された一致数に基づいて、前記判定手段によって前記比較単語の前記特定階層の分類コードが不一致と判定された比較文字列を除外するか否かを判断する判断手段と、前記検索単語の階層ごとの分類コードと前記判断手段によって除外しないと判断された比較文字列内の前記比較単語の階層ごとの分類コードとに基づいて、前記検索文字列と前記除外しないと判断された比較文字列との類似度を算出する算出手段と、前記算出手段によって算出された算出結果を出力する出力手段と、を備えることを特徴とする検索装置。単語間の類義関係を階層的に分類してコード化した類語辞書データを構成する階層群の中から指定された指定階層を対象階層に設定する第1の設定手段と、前記類語辞書データの中から、検索文字列内の検索単語の前記指定階層から前記対象階層までの分類コードと、比較文字列群の各々の比較文字列内の比較単語の前記指定階層から前記対象階層までの分類コードとを、比較文字列ごとに特定する特定手段と、前記検索単語の前記指定階層から前記対象階層までの分類コードと前記比較単語の前記指定階層から前記対象階層までの分類コードに基づいて、前記検索文字列と前記比較文字列との類似度を比較文字列ごとに算出する算出手段と、前記算出手段によって類似度が算出された比較文字列群のうち所定類似度以上となる前記比較文字列の数を計数する計数手段と、前記計数手段によって計数された計数結果が所定数以下である場合、前記対象階層をより上位の階層に変更する第2の設定手段と、前記計数手段によって計数された計数結果が前記所定数よりも多いこととなった比較文字列群のうち少なくとも前記所定類似度以上の比較文字列を出力する出力手段と、を備えることを特徴とする検索装置。コンピュータが、単語間の類義関係を階層的に分類してコード化した類語辞書データの中から、検索文字列内の検索単語の階層ごとの分類コードと、比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードと、を特定する特定工程と、前記特定工程によって特定された前記検索単語の階層ごとの分類コードおよび前記各比較単語の階層ごとの分類コードの中から、前記類語辞書データを構成する階層群のうち特定階層の分類コードを抽出する抽出工程と、前記抽出工程によって抽出された前記検索単語の前記特定階層の分類コードと前記比較単語の前記特定階層の分類コードとが一致するか否かを、比較文字列ごとに判定する判定工程と、前記判定工程による前記特定階層での一致数を計数する計数工程と、前記計数工程によって計数された一致数に基づいて、前記判定工程によって前記比較単語の前記特定階層の分類コードが不一致と判定された比較文字列を除外するか否かを判断する判断工程と、前記検索単語の階層ごとの分類コードと前記判断工程によって除外しないと判断された比較文字列内の前記比較単語の階層ごとの分類コードとに基づいて、前記検索文字列と前記除外しないと判断された比較文字列との類似度を算出する算出工程と、前記算出工程によって算出された算出結果を出力する出力工程と、を実行することを特徴とする検索方法。コンピュータが、単語間の類義関係を階層的に分類してコード化した類語辞書データを構成する階層群の中から指定された指定階層を対象階層に設定する第1の設定工程と、前記類語辞書データの中から、検索文字列内の検索単語の前記指定階層から前記対象階層までの分類コードと、比較文字列群の各々の比較文字列内の比較単語の前記指定階層から前記対象階層までの分類コードとを、比較文字列ごとに特定する特定工程と、前記検索単語の前記指定階層から前記対象階層までの分類コードと前記比較単語の前記指定階層から前記対象階層までの分類コードに基づいて、前記検索文字列と前記比較文字列との類似度を比較文字列ごとに算出する算出工程と、前記算出工程によって類似度が算出された比較文字列群のうち所定類似度以上となる前記比較文字列の数を計数する計数工程と、前記計数工程によって計数された計数結果が所定数以下である場合、前記対象階層をより上位の階層に変更する第2の設定工程と、前記計数工程によって計数された計数結果が前記所定数よりも多いこととなった比較文字列群のうち少なくとも前記所定類似度以上の比較文字列を出力する出力工程と、を実行することを特徴とする検索方法。しかしながら、上述した従来技術では、あいまい検索に際し、どこまでをあいまい検索の対象範囲とし、どこからをあいまい検索の対象範囲外とするかについては、人手により操作する必要があった。すなわち、あいまい検索の対象範囲が適切か否かについては、ユーザ依存となってしまうこととなる。したがって、ユーザが欲しいあいまい検索結果が得られなかったり、ユーザが欲しくないあいまい検索結果までもが得られてしまったりすることにより、あいまい検索精度が低下するという問題がある。1つの側面では、本発明は、あいまい検索精度の向上を図ることができる検索プログラム、検索装置、および検索方法を提供することを目的とする。1つの案では、単語間の類義関係を階層的に分類してコード化した類語辞書データの中から、検索文字列内の検索単語の階層ごとの分類コードと、比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードと、を特定し、特定された前記検索単語の階層ごとの分類コードおよび前記各比較単語の階層ごとの分類コードの中から、前記類語辞書データを構成する階層群のうち特定階層の分類コードを抽出し、抽出された前記検索単語の前記特定階層の分類コードと前記比較単語の前記特定階層の分類コードとが一致するか否かを、比較文字列ごとに判定し、前記特定階層での一致数を計数し、計数された一致数に基づいて、前記比較単語の前記特定階層の分類コードが不一致と判定された比較文字列を除外するか否かを判断し、前記検索単語の階層ごとの分類コードと除外しないと判断された比較文字列内の前記比較単語の階層ごとの分類コードとに基づいて、前記検索文字列と前記除外しないと判断された比較文字列との類似度を算出し、算出された算出結果を出力する検索プログラム、検索装置、および検索方法を用いる。本発明の検索プログラム、検索装置、および検索方法によれば、あいまい検索精度の向上を図ることができる。以下に添付図面を参照して、本発明の検索プログラム、検索装置、および検索方法の実施の形態を詳細に説明する。<類語辞書データ>類語辞書データとは、単語間の類義関係を階層的に分類してコード化したデータである。シソーラスとも呼ばれる。具体的には、たとえば、各単語はコード化されており、概念的に下位階層となる単語には、上位階層の単語のコードを先頭につけてコード化される。図1は、類語辞書データのデータ構造例を示す説明図である。図1では、類語辞書データ100は、例として3階層で構成されている。なお、階層数は、2以上であればよい。図1では、3階層であるため、最上位階層である第1階層を大分類、中間階層である第2階層を中分類、最下層である第3階層を小分類とする。たとえば、大分類食べ物には、中分類飯,香辛料これ以外にもラーメンなどあるが図1では省略が属しており、中分類飯には、小分類カレーライス,ハヤシライス,寿司これ以外にも炒飯などあるが図1では省略が属している。また、各単語には、2種類の分類コードが付与される。1つは、単独分類コードであり、もう1つは連結分類コードである。単独分類コードとは、各単語に付与される分類コードである。連結分類コードとは、その単語の単独分類コードの先頭に、上位階層のすべての単独分類コードが連結された分類コードである。たとえば、小分類カレーライスの単独分類コードは32であるが、その上位階層である中分類飯の単独分類コードは0であり、中分類飯の上位階層である大分類食べ物の単独分類コードは1である。したがって、カレーライスの連結分類コードは、上位階層の単独分類コードから順に連結した1032となる。以降、本明細書では、特に断りがない限り、分類コードと称した場合は連結分類コードを指すこととする。また、大分類の連結分類コードを、大分類コードと称し、中分類の連結分類コードを、中分類コードと称し、小分類の連結分類コードを、小分類コードと称す。また、連結分類コードは、単独分類コードが上位階層から連結されたコードである。したがって、コード長と桁により、どのコードがどの階層の単独分類コードであるかがわかる。たとえば、図1では、大分類コードおよび中分類コードは1桁、小分類コードは2桁としている。したがって、コード長が1であれば、その分類コードは大分類コードである。コード長が2であれば、中分類コードである。また、先頭桁が大分類の単独分類コード、末尾の桁が中分類の単独分類コードであることがわかる。さらに、コード長が4であれば、小分類コードである。また、先頭から1桁目が大分類の単独分類コード、2番目の桁が中分類の単独分類コード、末尾2桁が小分類の単独分類コードであることがわかる。<分類マップ>つぎに、分類マップについて説明する。分類マップとは、ビットマップ型の全文インデックスを拡張子、類語辞書データ100の任意階層について、各分類コードにより包含される単語の各対象ファイル内での存否を示すビット列の集合をまとめたビットマップである。全階層の分類マップをまとめたマップ群を、分類マップ群と称す。分類マップは、類語辞書データ100で定義された階層数存在することとなる。また、対象ファイルとは、文字列が記述されたファイルであり、たとえば、HTMLHyperTextMarkupLanguage形式,XMLExtensibleMarkupLanguage形式,テキスト形式のファイルである。対象ファイル群としては、たとえば、電子辞書、電子書籍、Webページ、電子文書、その他文字列を含むデータが挙げられる。図2~図4では、ファイル番号1~nの対象ファイルF1~Fnについての分類マップを示している。また、分類コードにより包含される単語とは、ある階層に注目した場合、注目階層の単語のほか、注目階層の単語よりも下位階層に属する概念的に下位の単語である。具体的には、たとえば、注目階層の連結分類コードに対応する単語のほか、注目階層の単語の単独分類コードが連結された下位階層の連結分類コードに対応する単語である。図2は、第1階層大分類の分類マップの例を示す説明図であり、図3は、第2階層中分類の分類マップの例を示す説明図であり、図4は、第3階層小分類の分類マップの例を示す説明図である。なお、図2~図4では、分類コードに対応する単語の各対象ファイルFi内での存否を示すビット以下、単に、ビットの値について、本例では存在を示す場合は1、不存在を示す場合は0とする。図2に示した大分類コードの分類マップ大分類マップ200には、大分類ごとに、対象ファイルFiの数分のビット列が記憶されている。たとえば、大分類コード1食べ物については、対象ファイルF1~F3の各ビットが1であるため、対象ファイルF1~F3には、食べ物という単語が存在していることがわかる。ただし、大分類コードに対応する単語そのものが存在していなくても、大分類コードに包含される単語が存在していれば、ビットの値は1となる。たとえば、大分類コード1食べ物について、対象ファイルF1に食べ物という単語が存在していなくても、大分類コード1食べ物の下位階層に属する中分類コード10に対応する単語飯が存在する場合は、ビットの値は1となる。同様に、大分類コード1食べ物について、大分類コード1食べ物の下位階層に属する小分類コード1032に対応する単語カレーライスが存在する場合は、ビットの値は1となる。図3に示した中分類コードの分類マップ中分類マップ300には、中分類ごとに、対象ファイルFiの数分のビット列が記憶されている。たとえば、中分類コード10飯については、対象ファイルF1,F2の各ビットが1であるため、対象ファイルF1,F2には、飯という単語が存在していることがわかる。ただし、中分類コードに対応する単語そのものが存在していなくても、中分類コードに包含される単語が存在していれば、ビットの値は1となる。たとえば、中分類コード10飯について、対象ファイルF1に飯という単語が存在していなくても、中分類コード10飯の下位階層に属する小分類コード1032に対応する単語カレーライスが存在する場合は、ビットの値は1となる。図4に示した小分類コードの分類マップ小分類マップ400には、小分類ごとに、対象ファイルFiの数分のビット列が記憶されている。たとえば、小分類コード1032カレーライスについては、対象ファイルF1,F2の各ビットが1であるため、対象ファイルF1,F2には、カレーライスという単語が存在していることがわかる。<分類マップ群と対象ファイル群とのリンク関係>図5は、分類マップ群と対象ファイル群とのリンク関係を示す説明図である。分類マップ群Mと対象ファイル群Fとは、分類コードファイル群Cによってリンクされている。ここで、分類コードファイルCiとは、対象ファイルFiごとに、対象ファイルFi内に存在する単語に対応する分類コードとその出現位置が記述されたファイルである。本実施例では、ファイル番号iが同一の対象ファイルFiおよび分類コードファイルCiどうしが対応する。たとえば、対象ファイルF1と分類コードファイルC1とが対応する。また、出現位置とは、対象ファイル内での記述位置を特定する情報であり、たとえば、対象ファイルにおける先頭文字からの文字数が挙げられる。たとえば、図5において、対象ファイルF1にカレーライスは中辛だ。という文字列が記述されている場合、対象ファイルF1に対応する分類コードファイルC1には、カレーライスの分類コード1032とその出現位置を示す5とを組み合わせた1032/5が記述される。すなわち、対象ファイルF1の先頭文字から5番目の文字からカレーライスが記述されていることがわかる。同様に、分類コードファイルC1には、中辛の分類コード4210とその出現位置を示す12とを組み合わせた4210/12が記述される。すなわち、対象ファイルF1の先頭文字から12番目の文字から中辛が記述されていることがわかる。このようなリンク関係があることにより、後述の第1特定部902や第2特定部1203で対象ファイルFi内の単語から分類コードを特定することが可能となる。また、各分類コードファイルCi内に、特殊コードを埋め込むことで、検索単語との比較範囲を規定することができる。たとえば、対象ファイル群Fが辞書データである場合、見出し語およびその解説文内の単語について、分類コードおよび出現位置を記述しておき、末尾に特殊コードとして改行コードを埋め込んでおく。これにより、改行コードと次の改行コードとの間に記述されている見出し語および解説文についての分類コード群が、検索単語との比較範囲となる。なお、特殊コードが埋め込まれていない場合は、個々の分類コードが比較範囲となる。<コンピュータのハードウェア構成例>図6は、実施の形態にかかるコンピュータのハードウェア構成例を示すブロック図である。図6において、コンピュータは、CPUCentralProcessingUnit601と、ROMReadOnlyMemory602と、RAMRandomAccessMemory603と、磁気ディスクドライブ604と、磁気ディスク605と、光ディスクドライブ606と、光ディスク607と、ディスプレイ608と、I/FInterface609と、キーボード610と、マウス611と、スキャナ612と、プリンタ613と、を備えている。また、各構成部はバス600によってそれぞれ接続されている。ここで、CPU601は、コンピュータの全体の制御を司る。ROM602は、ブートプログラムや本実施の形態の検索プログラム、生成プログラムなどのプログラムを記憶している。RAM603は、CPU601のワークエリアとして使用される。磁気ディスクドライブ604は、CPU601の制御にしたがって磁気ディスク605に対するデータのリード/ライトを制御する。磁気ディスク605は、磁気ディスクドライブ604の制御で書き込まれたデータを記憶する。光ディスクドライブ606は、CPU601の制御にしたがって光ディスク607に対するデータのリード/ライトを制御する。光ディスク607は、光ディスクドライブ606の制御で書き込まれたデータを記憶したり、光ディスク607に記憶されたデータをコンピュータに読み取らせたりする。ディスプレイ608は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ608は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。インターフェース以下、I/Fと略する。609は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワーク614に接続され、このネットワーク614を介して他の装置に接続される。そして、I/F609は、ネットワーク614と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F609には、たとえばモデムやLANアダプタなどを採用することができる。キーボード610は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス611は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。スキャナ612は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ612は、OCROpticalCharacterReader機能を持たせてもよい。また、プリンタ613は、画像データや文書データを印刷する。プリンタ613には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。<分類マップ群Mおよび分類コードファイル群Cの生成処理>つぎに、分類マップ群Mおよび分類コードファイル群Cの生成処理について説明する。この生成処理は、本実施の形態の検索装置が実行してもよく、検索装置とは異なる生成装置が実行してもよい。いずれにしても、本実施の形態の生成プログラムがインストールされたコンピュータが実行する。図7は、分類マップ群Mおよび分類コードファイル群Cの生成処理を示すフローチャートである。まず、コンピュータは、類語辞書データ100の階層番号jをj=1に設定するステップS701。そして、コンピュータは、類語辞書データ100に第j階層の未選択の単語があるか否かを判断するステップS702。未選択の単語がある場合ステップS702:Yes、コンピュータは、第j階層の未選択の単語を1つ選択するステップS703。そして、コンピュータは、選択単語の分類コードを第j階層の分類マップに設定するステップS704。つぎに、コンピュータは、対象ファイルFiのファイル番号iをi=1に設定するステップS705。そして、コンピュータは、対象ファイルFiを走査して、選択単語に一致する文字列があるか否かを判断するステップS706。一致する文字列がない場合ステップS706:No、ステップS712に移行する。これにより、つぎの対象ファイルに移ることとなる。一方、一致する文字列がある場合ステップS706:Yes、コンピュータは、選択単語の分類コードと選択単語の対象ファイルFiでの出現位置とを分類コードファイルCiに追加するステップS707。そして、コンピュータは、第j階層の分類マップにおいて選択単語の分類コードにおけるファイル番号iのビットをON1にするステップS708。このあと、コンピュータは、選択単語の分類コードから、第j階層よりも上位階層ごとの分類コードを抽出するステップS709。上述したように、第j階層の分類コードには、その上位階層第1階層,...,第j-1階層の分類コードが含まれている。たとえば、第3階層である小分類コード1032カレーライスの先頭2桁は、中分類コードであるため、先頭2桁のコードを第2階層である中分類コード10飯として抽出する。同様に、小分類コード1032カレーライスの先頭1桁は、大分類コードであるため、先頭1桁のコードを第1階層である大分類コード1食べ物として抽出する。そして、コンピュータは、ステップS709で抽出された上位階層の分類コードを、その上位階層の分類マップに設定するステップS710。具体的には、上述の例では、中分類コード10飯については、中分類の分類マップに中分類コード10飯を設定する。同様に、大分類コード1食べ物についても、大分類の分類マップ大分類コード1食べ物を設定する。設定済みである場合は設定しない。このあと、コンピュータは、ステップS710で各上位階層の分類マップに設定された抽出分類コードにおけるファイル番号iのビットをON1にするステップS711。なお、すでにONである場合は何もしない。そして、コンピュータは、ファイル番号iをインクリメントしステップS712、i>nであるか否かを判断するステップS713。nは対象ファイル群Fのファイル総数である。i>nでない場合ステップS713:No、ステップS706に戻り、対象ファイルFiに、選択単語に一致する文字列があるか否かを判断することとなる。また、i>nである場合ステップS713:Yes、ステップS702に戻り、コンピュータは、類語辞書データ100に第j階層の未選択の単語があるか否かを判断するステップS702。第j階層の未選択の単語がない場合ステップS702:No、階層番号jをインクリメントしてステップS714、コンピュータは、j>mであるか否かを判断するステップS715。mは階層数である。図1のような類語辞書データ100を用いる場合は、m=3である。j>mでない場合ステップS715:No、ステップS702に戻り、コンピュータは、類語辞書データ100に第j階層の未選択の単語があるか否かを判断するステップS702。一方、j>mである場合ステップS715:Yes、分類マップ群Mおよび分類コードファイル群Cの生成処理を終了する。この分類マップ群Mおよび分類コードファイル群Cの生成処理を実行することで、最終的に、対象ファイル群Fに固有な分類マップ群Mおよび分類コードファイル群Cが自動生成されることとなる。<検索装置の機能的構成例>図8は、本実施の形態の検索装置の機能的構成例を示すブロック図である。図8において、検索装置800は、入力部801と、解析部802と、判別部803と、第1検索処理部804と、第2検索処理部805と、出力部806とを備える。入力部801~出力部806は、具体的には、たとえば、図6に示したROM602、RAM603、磁気ディスク605、光ディスク607などの記憶装置に記憶されたプログラムをCPU601に実行させることにより、または、I/F609により、その機能を実現する。入力部801は、検索文字列の入力や検索モードの指定を受け付ける。検索モードとは、検索処理の種別を示しており、後述する上位階層分類コードによる検索処理第1検索モードまたは最下層の分類コードからの検索処理第2検索モードのいずれかのモードである。解析部802は、入力部801によって入力された検索文字列を解析する。具体的には、たとえば、解析部802は、形態素解析を実行することで検索文字列を単語に分解し、分解された単語の各々について品詞を特定する。そして、解析部802は、この分解された単語群のうち、あいまい検索で使用する品詞、たとえば、名詞、動詞、形容詞、副詞に該当する単語を、検索単語として抽出する。なお、解析部802は比較文字列も検索文字列と同様に解析する。判別部803は、指定された検索モードがいずれの検索処理であるかを判別する。また、検索モードが指定されていない場合は、判別部803は、解析部802によって解析された検索単語の数が所定単語数以上であるか否かを判別する。所定単語数未満である場合は、第1検索モードが指定され、所定文字数以上である場合は、第2検索モードが指定される。検索装置800は、判別部803で判別された検索モードで検索処理を実行することとなる。このように、検索単語の数が多いと、あいまい検索のヒット数が膨大になる可能性があるため、検索装置800は、第2検索モードにより、指定階層から段階的に検索対象となる階層を拡大していくこととする。第1検索処理部804は、上位階層分類コードによる検索処理を実行する。上位階層分類コードによる検索処理とは、検索文字列内の検索単語の分類コードと検索単語を包含する上位階層の単語の分類コードを用いて検索文字列に固有の類語ベクトルを生成する。同様に、比較文字列内の比較単語についても、比較単語の分類コードと比較単語を包含する上位階層の単語の分類コードを用いて比較文字列に固有の類語ベクトルを生成する。そして、第1検索処理部804は、カーネル法による両類語ベクトルの演算をおこなって、検索文字列と比較文字列との類似度を算出することとなる。なお詳細については後述する。また、第2検索処理部805は、最下層の分類コードからの検索処理を実行する。最下層の分類コードからの検索処理とは、検索文字列内の検索単語の分類コードとを用いて検索文字列に固有の類語ベクトルを生成する。同様に、比較対象となる比較文字列内の比較単語についても、比較単語の分類コードを用いて比較文字列に固有の類語ベクトルを生成する。そして、第2検索処理部805は、カーネル法による両類語ベクトルの演算をおこなって、検索文字列と比較文字列との類似度を算出することとなる。このとき、所定類似度以上の比較文字列の総数が所定数未満である場合は、検索文字列および比較文字列について、1つ上位の階層の分類コードを特定して、それぞれの類語ベクトルに追加し、同様に類似度を算出する。このように、第2検索処理部805は、所定類似度以上の比較文字列の総数が所定数以上となるまで、1つ上位の階層に上がって類語ベクトルを再生成して、類似度を算出することとなる。なお詳細については後述する。出力部806は、第1検索処理部804または第2検索処理部805の検索結果を出力する。具体的には、たとえば、出力部806は、類似度の高い順に比較文字列をランキング表示する。なお、出力部806による出力形式は、ディスプレイ608への表示に限らず、通信可能な他のコンピュータへの送信でもよく、印刷出力でもよい。また、検索装置800内の記憶領域への書込でもよい。なお、検索装置800は、入力部801、解析部802、第1検索処理部804、および出力部806により構成してもよく、また、入力部801、解析部802、第2検索処理部805、および出力部806により構成してもよい。<第1検索処理部804の機能的構成例>図9は、図8に示した第1検索処理部804の機能的構成例を示すブロック図である。第1検索処理部804は、第1検出部901と、第1特定部902と、抽出部903と、判定部904と、第1計数部905と、判断部906と、第1算出部907とを備える。第1検出部901は、類語辞書データ100内の各分類コードに対応する単語の各対象ファイルFi内での存否を示すビット列の集合を階層別にまとめた分類マップ群Mのうち最上位階層の分類マップを参照して、検索単語が所属する最上位階層の分類コードが存在する特定の対象ファイルを検出する。ここで、検索単語が所属する階層とは、検索単語の分類コードが存在する階層のほか、当該分類コードにより特定されるより上位の階層も含む。このような階層を所属階層と称す。そして、第1検出部901は、検索単語の分類コードを包含する最上位階層の分類コードまでさかのぼり、最上位階層の分類マップから特定の対象ファイルを検出することとなる。たとえば、検索単語が食べ物である場合、分類コードは大分類コード1であるため、大分類マップ200の1のビット列を参照することで、特定の対象ファイルF1~F3を検出することとなる。また、検索単語が辛いである場合、分類コードは中分類コード42である。この中分類コード42は大分類コード4味に属するため、大分類マップ200の4のビット列を参照することで、特定の対象ファイルF1,F2,Fnを検出することとなる。また、検索単語がカレーライスである場合、分類コードは小分類コード1032である。この小分類コード1032は大分類コード1食べ物に属するため、大分類マップ200の1のビット列を参照することで、特定の対象ファイルF1~F3を検出することとなる。このように、検索単語がどの階層の分類コードであっても、最上位階層までさかのぼることで、必要最小限の範囲で対象ファイルFiを絞り込むことができる。また、検索単語が食べ物および味である場合、分類コードは大分類コード1,4であるため、大分類マップ200の1,4のビット列を参照する。そして、1,4の両ビット列でONになっているファイル番号の対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。また、検索単語が食べ物および辛いである場合、検索単語食べ物の分類コードは大分類コード1であるため、大分類マップ200の1のビット列を参照する。一方、検索単語辛いの分類コードは中分類コード42である。この中分類コード42は大分類コード4味に属するため、大分類マップ200の4のビット列を参照する。そして、1,4の両ビット列でONになっているファイル番号の対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。このように、検索単語が複数ある場合、最上位階層での分類コードのビット列どうしで論理積をとることで、対象ファイルFiを絞り込むことができる。すなわち、第1検出部901では、以降のあいまい検索の検索先を特定の対象ファイルFiに絞り込むことができるため、無駄な対象ファイルFiの検索を防止でき、検索処理の高速化を図ることができる。なお、検索装置800が分類マップ群Mにアクセスできない場合は、全対象ファイルF1~Fn内の単語が比較対象となる。第1特定部902は、単語間の類義関係を階層的に分類してコード化した類語辞書データ100の中から、検索文字列内の検索単語の階層ごとの分類コードと、比較文字列群の各々の比較文字列内の比較単語の階層ごとの分類コードと、を特定する。第1特定部902は、具体的には、たとえば、図1に示した類語辞書データ100の中から分類コードを特定する。まず、検索単語の階層ごとの分類コードの特定について説明する。第1特定部902は、類語辞書データ100を参照して、検索文字列内の検索単語の分類コードとその階層を特定する。ここで、検索文字列内の検索単語とは、入力部801によって入力された検索文字列が解析部802によって単語に分解されて抽出された単語である。分類コードの階層が最上位でない場合は、第1特定部902は、当該階層の分類コードを包含する上位階層の分類コードを最上位階層まで特定する。たとえば、検索単語がカレーライスである場合、その階層は第3階層小分類、小分類コードは1032となる。そして、小分類コードの先頭2桁は中分類コードであるため、第1特定部902は10を中分類コードとして特定する。さらに、小分類コードの先頭1桁は大分類コードであるため、第1特定部902は1を大分類コードとして特定する。このように、検索単語カレーライスから、小分類コード1032、中分類コード10および大分類コード1が所属階層第1階層~第3階層での分類コードとして特定されることとなる。このような特定の仕方は、比較単語についても同様である。また、比較文字列とは、ある比較単位内に記述されている一または複数の文字列たとえば、読点や改行コードで区切られている。である。比較単位は、単一の比較単語でもよく、一または複数の対象ファイルFiでもよい。また、第1検出部901により特定の対象ファイルFiに絞り込まれている場合は、特定の対象ファイルFi内の文字列のみが対象となる。また、比較文字列は、ある対象ファイルFi内のある項目単位でもよい。対象ファイルFiが辞書データである場合、見出し語およびその解説文となる文字列を比較単位とし、当該文字列内の単語を比較単語とする。抽出部903は、第1特定部902によって特定された検索単語の階層ごとの分類コードおよび各比較単語の階層ごとの分類コードの中から、類語辞書データ100を構成する階層群のうち特定階層の分類コードを抽出する。ここで、特定階層とは、たとえば、中間階層を指す。中間階層とは、少なくとも最上位階層および最下位階層を含まない階層群である。本例では、第1階層~第3階層であるため、第2階層が中間階層となる。また、第1階層~第5階層まである場合は、中間階層は、第2階層のみ、第3階層のみ、第4階層のみ、第2階層および第3階層、第3階層および第4階層、第2階層~第4階層が中間階層として選ぶことが可能である。どの階層を中間階層にするかは、あらかじめ設定されているものとする。なお、本例では、特定階層を中間階層としたが、ある階層のみターゲットとして検索をおこないたい場合は、最上位階層や最下位階層を含む階層群を特定階層としてもよい。したがって、検索単語がカレーライスである場合は、第1特定部902により小分類コード1032、中分類コード10および大分類コード1が特定されるため、中分類コード10が抽出されることとなる。同様に、比較単語がハヤシライスである場合は、第1特定部902により小分類コード1033、中分類コード10および大分類コード1が特定されるため、中分類コード10が抽出されることとなる。なお、抽出部903は、中間階層よりも上位の上位階層での検索単語および比較単語の分類コードも抽出する。上記のカレーライスとハヤシライスの例では、ともに大分類コード1を抽出することとなる。判定部904は、抽出部903によって抽出された検索単語の特定階層の分類コードと比較単語の特定階層の分類コードとが一致するか否かを、比較文字列ごとに判定する。具体的には、たとえば、判定部904は、検索単語の中間階層における分類コードと比較単語の中間階層における分類コードとの一致判定をおこなう。上記のカレーライスとハヤシライスの例では、ともに中分類コード10であるため、一致することとなる。また、検索文字列内の検索単語が複数存在する場合がある。この場合、判定部904は、検索単語ごとに一致判定をおこなう。たとえば、検索単語の中分類コードが3個で比較単語の中分類コードが1個の場合は、一致判定を3回おこなう。これに対し、比較文字列内の比較単語が複数存在する場合がある。この場合、判定部904は、検索単語ごとに一致判定をおこなう。たとえば、検索単語の中分類コードが1個で比較単語の中分類コードが4個の場合は、一致判定を4回おこなう。さらに、検索単語および比較単語が複数存在する場合がある。この場合も、判定部904は、検索単語ごとに各比較単語との一致判定をおこなう。たとえば、検索単語の中分類コードが2個で比較単語の中分類コードが3個である場合、一致判定を6回おこなう。判定部904では、検索文字列内の検索単語の中間階層の分類コードと比較単位内の比較単語の中間階層の分類コードとの一致判定において、検索単語と比較単語の組み合わせですべて一致した場合に、検索文字列と比較単位内の比較文字列とが一致したと判定する。また、検索単語と比較単語の組み合わせのうち一部一致した場合に、検索文字列と比較単位内の比較文字列とが一致したと判定することとしてもよい。なお、検索単語と比較単語の組み合わせのうちすべて不一致の場合に、検索文字列と比較単位内の比較文字列とが不一致であると判定する。すなわち、一部一致の場合に、検索文字列と比較単位内の比較文字列とを一致とするか不一致とするかは、あらかじめ設定しておくこととなる。なお、判定部904では、検索単語および比較単語の中間階層の分類コードどうしの一致判定をおこなう前に、検索単語および比較単語の上位階層の分類コードどうしの一致判定をおこなうこととしてもよい。そして、一致した場合に、判定部904は、さらに中間階層の分類コードどうしの一致判定をおこない、不一致の場合はおこなわないこととなる。具体的には、たとえば、上記のカレーライスとハヤシライスの例では、ともに大分類コード1であるため、中分類コードどうしの一致判定をおこなうこととなる。この場合も上記と同様、検索文字列内の検索単語が複数存在する場合がある。この場合、判定部904は、検索単語ごとに一致判定をおこなう。たとえば、検索単語の大分類コードが3個で比較単語の大分類コードが1個の場合は、一致判定を3回おこなう。これに対し、比較文字列内の比較単語が複数存在する場合がある。この場合、判定部904は、検索単語ごとに一致判定をおこなう。たとえば、検索単語の大分類コードが1個で比較単語の大分類コードが4個の場合は、一致判定を4回おこなう。さらに、検索単語および比較単語が複数存在する場合がある。この場合も、判定部904は、検索単語ごとに各比較単語との一致判定をおこなう。たとえば、検索単語の大分類コードが2個で比較単語の大分類コードが3個である場合、一致判定を6回おこなう。判定部904では、検索単語および比較単語の上位階層の分類コードどうしの一致判定が複数回行われる場合、すべて一致した場合のみ、検索単語および比較単語の中間階層の分類コードどうしの一致判定をおこなう。また、一部一致した場合でも、検索単語および比較単語の中間階層の分類コードどうしの一致判定をおこなうこととしてもよい。なお、全部不一致の場合は、検索単語および比較単語の中間階層の分類コードどうしの一致判定をおこなわない。一部一致の場合の取り扱いは、あらかじめ設定しておくこととなる。いずれにしても、上位階層の分類コードどうしが不一致であれば、それよりも下位の階層で類似していないと考えられるため、上位階層の分類コードの一致判定をおこなうことで、無駄な検索を回避でき、検索効率の向上を図ることができる。第1計数部905は、判定部904による特定階層での一致数を計数する。第1計数部905による一致数は、比較対象となる対象ファイル群Fでの一致数の総和である。たとえば、全対象ファイルでもよく、第1検出部901によって検出された特定の対象ファイルFiであってもよい。なお、第1計数部905での計数単位については、検索単語と比較単語との中間階層の分類コードどうしで一致した場合に、1ポイント計数する。また、比較単位内で1つでも検索単語の中間階層の分類コードと一致する比較単語の中間階層の分類コードがあれば、1ポイント計数することとしてもよい。さらに、比較単位内のすべての比較単語の中間階層の分類コードが検索単語の中間階層の分類コードと一致した場合に、1ポイント計数することとしてもよい。どの計数方法を採用するかは、判定部904での一致判定に従うこととなる。判断部906は、第1計数部905によって計数された一致数に基づいて、判定部904によって比較単語の階層ごとの分類コードが不一致と判定された比較文字列を除外するか否かを判断する。具体的には、たとえば、判断部906ではしきい値が設定されており、判断部906は、中間階層での一致数がしきい値以上であるか否かを判断する。すなわち、判断部906は、しきい値以上であるか否かにより、中間階層の分類コードが不一致となった比較文字列を、第1算出部907の算出対象とするか否かを判断する。そして、一致数がしきい値以上である場合は、十分類語が含まれていることとなり、中間階層の分類コードが不一致となった比較単語についてまで、あいまい検索の対象第1算出部907による算出対象とする必要はない。したがって、一致数がしきい値以上の場合は、判断部906は、中間階層の分類コードが不一致となった比較文字列を、あいまい検索の対象から除外する。一方、一致数がしきい値未満である場合は、類語が少ないと考えられるため、中間階層の分類コードが不一致となった比較文字列を、あいまい検索の対象とする必要がある。したがって、一致数がしきい値未満の場合は、判断部906は、中間階層の分類コードが不一致となった比較文字列を、あいまい検索の対象から除外しない。第1算出部907は、判断部906によって除外しないと判断された比較文字列内の比較単語の階層ごとの分類コードとに基づいて、検索文字列と除外しないと判断された比較文字列との類似度を算出する。また、第1算出部907は、検索文字列と判定部904によって中間階層の分類コードが一致すると判定された比較文字列とについても、類似度を算出する。いずれの場合でも、第1算出部907は、カーネル法を用いた類似度を算出する。算出結果は出力部806に与えられる。以下、具体例を説明する。図10は、第1算出部907による類似度算出の具体例1を示す説明図である。具体例1は、検索文字列となる1つの検索単語で比較文字列と比較する例である。ここでは、検索単語をカレーライスとし、比較単位となる比較文字列を辞書の見出し語カレーライス。および解説文カレーをご飯にかけた食べ物。とする。Aにおいて、第1特定部902により検索単語カレーライスの階層別の分類コード1,10,1032が得られる。検索単語はカレーライスのみであるため、各分類コード1,10,1032の出現回数は1回である。Bにおいて、比較文字列カレーライス。カレーをご飯にかけた食べ物。については、解析部802による形態素解析および単語抽出により、カレーライス,カレー,飯,食べ物が抽出される。それぞれの抽出単語については、第1特定部902により階層別の分類コードが得られる。本例の場合、大分類コード1食べ物の出現回数は4回、中分類コード10飯の出現回数は2回、小分類コード1032カレーライスの出現回数は1回、中分類コード11香辛料の出現回数は1回、小分類コード1154カレーの出現回数は1回となる。なお、検索単語の分類コードと不一致の分類コード11香辛料,1154カレーの出現回数は除外される。Cにおいて、第1算出部907はAで求めた出現回数をベクトル化する。これを検索文字列の類語ベクトルと称す。同様に、第1算出部907はBで求めた出現回数をベクトル化する。これを比較文字列の類語ベクトルと称す。そして、第1算出部907は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は7となる。図11は、第1算出部907による類似度算出の具体例2を示す説明図である。具体例2は、検索文字列と比較文字列とを比較する例である。ここでは、比較単位となる検索文字列をこのカレーライスは甘口だとし、比較文字列をこのハヤシライスはマイルドだとする。Aにおいて、検索文字列このカレーライスは甘口だについて、解析部802による形態素解析および単語抽出により、カレーライス,甘口が抽出される。それぞれの抽出単語については、第1特定部902により階層別の分類コードが得られる。検索文字列では、各抽出単語の出現回数は1回であるため、各分類コード1,10,1032,4,41,4110の出現回数は1回である。Bにおいて、比較文字列このハヤシライスはマイルドだについて、解析部802による形態素解析および単語抽出により、ハヤシライス,マイルドが抽出される。それぞれの抽出単語については、第1特定部902により階層別の分類コードが得られる。比較文字列では、各抽出単語の出現回数は1回であるため、各分類コード1,10,1033,4,41,4111の出現回数は1回である。なお、1032カレーライスおよび4110甘口は、比較文字列では出現していないため、出現回数は0となる。なお、検索単語の分類コードと不一致の分類コード1033ハヤシライス,4111マイルドの出現回数は除外される。Cにおいて、第1算出部907はAで求めた出現回数をベクトル化する。これを検索文字列の類語ベクトルと称す。同様に、第1算出部907はBで求めた出現回数をベクトル化する。これを比較文字列の類語ベクトルと称す。そして、第1算出部907は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は4となる。つぎに、第2検索処理部805の詳細について説明する。<第2検索処理部805の機能的構成例>図12は、図8に示した第2検索処理部805の機能的構成例を示すブロック図である。第2検索処理部805は、第2検出部1201と、設定部1202と、第2特定部1203と、第2算出部1204と、第2計数部1205と、を備える。第2検出部1201は、類語辞書データ100内の各分類コードに対応する単語の各対象ファイル内での存否を示すビット列の集合を階層別にまとめた分類マップ群Mを参照して、検索単語の対象階層の分類コードが存在する特定の対象ファイルFiを検出する。たとえば、図1の類語辞書データ100の場合、最下層は第3階層となる。ここで、たとえば、対象階層が第3階層である場合、第2検索処理部805は、図4の小分類マップ400のみを参照する。そして、小分類マップ400において、検索単語の分類コードのビット列でONになっている対象ファイルFiを特定の対象ファイルとして検出する。たとえば、検索単語がハヤシライスである場合、分類コードは小分類コード1033である。したがって、第2検出部1201では、小分類マップ400における小分類コード1033のビット列でONになっている対象ファイルF1を特定の対象ファイルとして検出することとなる。また、対象階層が第2階層にまで上がった場合、分類コードも第2階層の分類コードまで特定することとなる。上記の検索単語ハヤシライスの場合、中分類コードは先頭2桁の10飯である。したがって、第2検出部1201では、中分類マップ300における中分類コード10のビット列でONになっている対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。このように、対象階層をより上位の階層に移すことで、第3階層では検出されなかった対象ファイルF2を特定の対象ファイルに含めることができ、特定の対象ファイルの範囲を拡大することができる。同様に、対象階層が第1階層にまで上がった場合、分類コードも第1階層の分類コードまで特定することとなる。上記の検索単語ハヤシライスの場合、大分類コードは先頭1桁の1食べ物である。したがって、第2検出部1201では、大分類マップ200における大分類コード1のビット列でONになっている対象ファイルF1~F3を特定の対象ファイルとして検出することとなる。このように、対象階層をより上位の階層に移すことで、第2階層では検出されなかった対象ファイルF3を特定の対象ファイルに含めることができ、特定の対象ファイルの範囲を拡大することができる。たとえば、検索単語がハヤシライスおよびマイルドである場合、分類コードは小分類コード1033,4111である。したがって、第2検出部1201では、小分類マップ400における小分類コード1033,4111の両ビット列でONになっている対象ファイルF1を特定の対象ファイルとして検出することとなる。また、対象階層が第2階層にまで上がった場合、分類コードも第2階層の分類コードまで特定することとなる。上記の検索単語ハヤシライスおよびマイルドの場合、中分類コードは先頭2桁の10飯,41甘いである。したがって、第2検出部1201では、中分類マップ300における中分類コード10,41の両ビット列でONになっている対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。このように、対象階層をより上位の階層に移すことで、第3階層では検出されなかった対象ファイルF2を特定の対象ファイルに含めることができ、特定の対象ファイルの範囲を拡大することができる。同様に、対象階層が第1階層にまで上がった場合、分類コードも第1階層の分類コードまで特定することとなる。上記の検索単語ハヤシライスおよびマイルドの場合、大分類コードは先頭1桁の1食べ物,4味である。したがって、第2検出部1201では、大分類マップ200における大分類コード1,4の両ビット列でONになっている対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。特定の対象ファイルの範囲を拡大しようと試みたが結果的に拡大しなかった例である。また、複数の検索単語の階層が異なる場合については以下のようになる。たとえば、検索単語がハヤシライスおよび甘いである場合、分類コードは小分類コード1033と中分類コード41である。したがって、第2検出部1201では、小分類マップ400における小分類コード1033,中分類コード41の両ビット列でONになっている対象ファイルF1を特定の対象ファイルとして検出することとなる。そして、対象階層が第2階層にまで上がった場合、第2検出部1201では、中分類マップ300における中分類コード10,41の両ビット列でONになっている対象ファイルF1,F2を特定の対象ファイルとして検出することとなる。このように、対象階層をより上位の階層に移すことで、第3階層では検出されなかった対象ファイルF2を特定の対象ファイルに含めることができ、特定の対象ファイルの範囲を拡大することができる。なお、検索装置800が分類マップ群Mにアクセスできない場合は、全対象ファイルF1~Fn内の単語が比較対象となる。設定部1202は、単語間の類義関係を階層的に分類してコード化した類語辞書データ100を構成する階層群の中から指定された指定階層を対象階層に設定する。具体的には、たとえば、指定階層は、最下位層とする。対象階層は変数であり、初期値が指定階層である。対象階層は指定階層から1階層ずつ上がっていく。具体的には、設定部1202は、第2計数部1205によって計数された計数結果が所定数以下である場合、対象階層をより上位の階層に変更する。所定数は、あらかじめ設定された値である。なお、変更基準を所定数以下としたが、パーセンテージで判断してもよい。具体的には、分母を比較文字列の総数とし、分子を所定数として、所定確率とする。そして、計数結果を比較文字列の総数で割った値が所定確率以下である場合、設定部1202は、対象階層をより上位の階層に変更する。また、変更する幅は、1階層とする。たとえば、変更前が第3階層である場合、変更後は第2階層となる。また、対象階層が変更された場合、第2検出部1201では、検索単語の変更後の対象階層の分類コードが存在する特定の対象ファイルを検出することとなる。第2特定部1203は、類語辞書データ100の中から、検索文字列内の検索単語の指定階層から対象階層までの分類コードと、比較文字列群の各々の比較文字列内の比較単語の指定階層から対象階層までの分類コードとを、比較文字列ごとに特定する。第1特定部902では、検索単語および比較単語について特定階層たとえば、中間階層の分類コードを特定したが、第2特定部1203では、指定階層から対象階層までの分類コードを特定する。第2特定部1203では、対象階層が変更される都度、指定階層から変更後の対象階層までの分類コードを特定することとなる。ここで、検索単語をカレーライスとする。たとえば、指定階層が第3階層である場合、初期状態では対象階層も第3階層に設定される。第2特定部1203は、検索単語カレーライスの第3階層での分類コード1032を特定する。また、対象階層が第2階層に上がった場合、第2特定部1203は、さらに、検索単語カレーライスの第2階層での分類コード10飯を特定する。さらに、対象階層が第1階層である場合、第2特定部1203は、さらに、検索単語カレーライスの第1階層での分類コード1食べ物を特定する。また、ここで、検索単語を辛いとする。検索単語辛いの分類コードは中分類コードであり、指定階層第3階層の分類コードではない。この場合、対象階層が第3階層となるため、第2特定部1203は、検索単語辛いの分類コードは特定できないこととなる。このあと、対象階層が第2階層に上がった場合、第2特定部1203は、検索単語辛いの第2階層での分類コード42を特定することとなる。さらに、対象階層が第1階層に上がった場合、第2特定部1203は、検索単語辛いの第1階層での分類コード4味を特定することとなる。第2算出部1204は、検索単語の指定階層から対象階層までの分類コードと比較単語の指定階層から対象階層までの分類コードに基づいて、検索文字列と比較文字列との類似度を比較文字列ごとに算出する。具体的には、第2算出部1204は、検索単語における指定階層から対象階層までの分類コードで検索文字列の類語ベクトルを生成する。同様に、第2算出部1204は、比較単語における指定階層から対象階層までの分類コードで比較文字列の類語ベクトルを生成する。そして、第2算出部1204は、第1算出部907と同様に、検索文字列の類語ベクトルと比較文字列の類語ベクトルの内積をとることで類似度を算出する。具体例については後述する。第2計数部1205は、第2算出部1204によって類似度が算出された比較文字列群のうち所定類似度以上となる比較文字列の数を計数する。所定類似度は、あらかじめ設定された値である。第2計数部1205によって計数された計数結果が所定数以下である場合、設定部1202により対象階層が1階層上がって再度、第2検出部1201および第2特定部1203による処理が実行されることとなる。なお、第2検索処理部805による処理を実行した場合、出力部806は、第2計数部1205によって計数された計数結果が所定数よりも多いこととなった比較文字列群のうち少なくとも所定類似度以上の比較文字列を出力することとなる。図13は、第2算出部1204による類似度算出の具体例1を示す説明図である。具体例1は、検索文字列となる1つの検索単語で比較文字列と比較する例である。ここでは、検索単語をカレーライスとし、比較単位となる比較文字列を辞書の見出し語カレーライス。および解説文カレーをご飯にかけた食べ物。とする。なお、指定階層は第3階層、対象階層も第3階層とする。Aにおいて、第2特定部1203により検索単語カレーライスの対象階層第3階層となる小分類コード1032が得られる。検索単語はカレーライスのみであるため、小分類コード1032の出現回数は1回である。Bにおいて、比較文字列カレーライス。カレーをご飯にかけた食べ物。については、解析部802による形態素解析および単語抽出により、カレーライス,カレー,飯,食べ物が抽出される。それぞれの抽出単語については、第2特定部1203により対象階層第3階層の分類コードが得られる。本例の場合、抽出単語カレーライス,カレー,飯,食べ物のうち対象階層である第3階層に属する単語はカレーライス,カレーであるため、小分類コード1032,1154が特定される。また、これらの出現回数はそれぞれ1回である。このうち、検索単語の分類コードと不一致の分類コード1154カレーの出現回数は除外される。Cにおいて、第2算出部1204はAで求めた出現回数をベクトル化する。これを検索文字列の類語ベクトルと称す。同様に、第2算出部1204はBで求めた出現回数をベクトル化する。これを比較文字列の類語ベクトルと称す。そして、第2算出部1204は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は1となる。図14は、第2算出部1204による類似度算出の具体例2を示す説明図である。具体例2は、図13の具体例1において、対象階層が第2階層に上がった場合の例である。Aにおいて、第2特定部1203により検索単語カレーライスの指定階層第3階層から対象階層第2階層までの分類コードとして、小分類コード1032および中分類コード10が得られる。検索単語はカレーライスのみであるため、小分類コード1032および中分類コード10の出現回数はそれぞれ1回である。Bにおいて、比較文字列カレーライス。カレーをご飯にかけた食べ物。については、解析部802による形態素解析および単語抽出により、カレーライス,カレー,飯,食べ物が抽出される。それぞれの抽出単語については、第2特定部1203により指定階層第3階層から対象階層第2階層までの分類コードが得られる。本例の場合、抽出単語カレーライス,カレー,飯,食べ物のうち指定階層である第3階層に属する単語はカレーライス,カレーであるため、小分類コード1032,1154が特定される。また、第2特定部1203は、抽出単語カレーライス,カレー,飯,食べ物の第2階層での分類コードを特定する。カレーライス自体は、小分類コード1032であるが、中分類コードは先頭2桁の10飯が特定される。カレーも小分類コード1154であるが、中分類コードは先頭2桁の11香辛料が特定される。飯は中分類コードであるため、10がそのまま特定される。したがって、中分類コード10飯の出現回数は2回、中分類コード11香辛料の出現回数は1回である。このうち、中分類コード11香辛料は、Aに存在しないため除外される。そして、今回特定された中分類コード11香辛料の出現回数と、図13に示した比較文字列での小分類コードの出現回数と、を統合する。Cにおいて、第2算出部1204は、Aで求めた出現回数をベクトル化して、検索文字列の類語ベクトルを生成する。同様に、第2算出部1204はBで求めた出現回数をベクトル化して、比較文字列の類語ベクトルを生成する。そして、第2算出部1204は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は3となる。図15は、第2算出部1204による類似度算出の具体例1を示す説明図である。具体例1は、検索文字列複数の検索単語を含むと比較文字列とを比較する例である。ここでは、検索文字列をこのカレーライスは甘口だとし、比較単位となる比較文字列をこのハヤシライスはマイルドだとする。なお、指定階層は第3階層、対象階層も第3階層とする。Aにおいて、検索文字列このカレーライスは甘口だについては、解析部802による形態素解析および単語抽出により、カレーライス,甘口が抽出される。それぞれの抽出単語については、第2特定部1203により対象階層第3階層の分類コードが得られる。本例の場合、抽出単語カレーライス,甘口の小分類コード1032,4110が特定される。また、これらの出現回数はそれぞれ1回である。Bにおいて、比較文字列このハヤシライスはマイルドだについては、解析部802による形態素解析および単語抽出により、ハヤシライス,マイルドが抽出される。それぞれの抽出単語については、第2特定部1203により対象階層第3階層の分類コードが得られる。本例の場合、抽出単語ハヤシライス,マイルドの小分類コード1033,4111が特定される。また、これらの出現回数はそれぞれ1回である。しかしながら、小分類コード1033,4111の出現回数は検索単語の分類コードと不一致のため、ともに除外される。Cにおいて、第2算出部1204はAで求めた出現回数をベクトル化して、検索文字列の類語ベクトルを生成する。同様に、第2算出部1204はBで求めた出現回数をベクトル化して、比較文字列の類語ベクトルを生成する。そして、第2算出部1204は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は0となる。図16は、第2算出部1204による類似度算出の具体例2を示す説明図である。具体例2は、図15の具体例1において、対象階層を第3階層から第2階層に変更した例である。Aにおいて、検索文字列このカレーライスは甘口だの抽出単語カレーライス,甘口について、第2特定部1203により第3階層の分類コードのほか、第2階層の分類コードも得られる。本例の場合、抽出単語カレーライス,甘口の具体例1で特定された小分類コード1032,4110のほか、小分類コードの先頭2桁から中分類コード10飯,41甘いが特定される。また、これらの出現回数はそれぞれ1回である。Bにおいて、比較文字列このハヤシライスはマイルドだの抽出単語ハヤシライス,マイルドについて、第2特定部1203により第3階層の分類コードのほか、第2階層の分類コードも得られる。本例の場合、抽出単語ハヤシライス,マイルドの小分類コード1033,4111のほか、小分類コードの先頭2桁から中分類コード10飯,41甘いが特定される。また、これらの出現回数はそれぞれ1回である。また、図15の具体例1と同様、小分類コード1033,4111の出現回数は検索単語の分類コードと不一致のため、ともに除外される。Cにおいて、第2算出部1204はAで求めた出現回数をベクトル化して、検索文字列の類語ベクトルを生成する。同様に、第2算出部1204はBで求めた出現回数をベクトル化して、比較文字列の類語ベクトルを生成する。そして、第2算出部1204は、両類語ベクトルの内積をとることで類似度を算出する。Cでは、類似度は2となる。このように、図15の具体例1に示した第3階層のみの分類コードで算出された類似度よりも、第3階層~第2階層の分類コードを用いて算出された類似度のほうが高くなることがある。このように、階層を上位にまで拡大していくことで所定類似度以上の類似度の数が増加することとなる。したがって、類似度の高いあいまい検索のヒット数を段階的に増加することができる。<検索処理手順>つぎに、図17~図25を用いて、検索装置800による検索処理手順について説明する。図17は、検索装置800による検索処理手順例を示すフローチャートである。まず、検索装置800は、入力部801により検索文字列が入力されるのを待ち受けるステップS1701:No。そして、検索文字列が入力された場合ステップS1701:Yes、検索装置800は、解析部802により、検索文字列を形態素解析して単語に分解するステップS1702。このあと、検索装置800は、分解された単語群の中からあいまい検索に必要な品詞に該当する検索単語を抽出するステップS1703。そして、検索装置800は、入力部801により検索モードの指定があったか否かを判断するステップS1704。検索モードの指定があった場合ステップS1704:Yes、検索装置800は、指定された検索モードが第1検索モードであるか第2検索モードであるかを判断するステップS1705。第1検索モードである場合ステップS1705:第1検索、検索装置800は、第1検索処理部804により第1検索処理を実行するステップS1706。一方、第2検索モードである場合ステップS1705:第2検索、検索装置800は、第2検索処理部805により第2検索処理を実行するステップS1707。また、ステップS1704において、検索モードの指定がない場合ステップS1704:No、検索装置800は、判別部803により検索単語の数が所定単語数以上であるか否かを判断するステップS1708。所定単語数以上でない場合ステップS1708:No、検索装置800は、第1検索処理部804により第1検索処理を実行するステップS1709。一方、所定単語数以上である場合ステップS1708:Yes、検索装置800は、第2検索処理部805により第2検索処理を実行するステップS1710。そして、検索装置800は、第1検索処理ステップS1706、S1709または第2検索処理ステップS1707、S1710が終了した場合、出力部806による出力処理を実行するステップS1711。これにより、検索処理を終了する。このように、検索装置800は、検索モードの指定が受け付けられている場合はその指定内容にしたがって検索処理を実行することになる。一方で、検索モードの指定がない場合は、検索単語の数の多さにより第1検索処理か第2検索処理かを決定することとなる。検索単語の数が多い所定単語数以上場合は、第2検索処理を実行することで、検索対象となる階層範囲を絞って段階的にあいまい検索のヒット数を増加させることができる。一方、検索単語の数が少ない所定単語数未満場合は、あいまい検索のヒット数が多くはならないと考えられるため、検索単語の階層から最上位階層までの範囲を検索対象範囲としてあいまい検索のヒット数を適切に得ることができる。<第1検索処理手順>図18は、図17に示した第1検索処理ステップS1706、ステップS1709の詳細な処理手順例を示すフローチャートである。まず、検索装置800は、第1特定部902により、類語辞書データ100から、検索単語の分類コードを、最上位階層にまでさかのぼって、検索単語ごとに特定するステップS1801。つぎに、検索装置800は、検索単語群の各々の検索単語から特定された階層ごとの分類コードのビット列で、ONとなっているファイル番号の対象ファイルを分類マップ群Mから検出するステップS1802。そして、検索装置800は、中間分類コード一致数集計処理ステップS1803、類似度算出処理ステップS1804を実行する。これにより、第1検索処理を終了する。<中間分類コード一致数集計処理手順>図19は、図18に示した中間分類コード一致数集計処理ステップS1803の詳細な処理手順例を示すフローチャートその1である。まず、検索装置800は、中間分類コード一致数NをN=0に設定するステップS1901。つぎに、検索装置800は、特定対象ファイル数をKとし、特定対象ファイル番号kをk=1とするステップS1902。特定対象ファイル数Kは、図18のステップS1802で検出された対象ファイル数である。このあと、検索装置800は、k>Kであるか否かを判断するステップS1903。k>Kでない場合ステップS1903:No、検索装置800は、特定対象ファイルFkを選択するステップS1904。そして、検索装置800は、特定対象ファイルFkでの計数が終了したか否かを判断するステップS1905。具体的には、未選択の比較文字列がなくなった場合に終了する。計数終了である場合ステップS1905:Yes、検索装置800は、特定対象ファイル番号kをインクリメントしステップS1906、ステップS1903に戻る。一方、計数終了でない場合ステップS1905:No、図20のステップS2001に移行する。なお、ステップS1903において、k>Kとなった場合ステップS1903:Yes、類似度算出処理ステップS1804に移行する。図20は、図18に示した中間分類コード一致数集計処理ステップS1803の詳細な処理手順例を示すフローチャートその2である。まず、図19のステップS1905において計数終了でない場合ステップS1905:No、検索装置800は、特定対象ファイルFkから比較単位で比較文字列を抽出するステップS2001。つぎに、検索装置800は、解析部802により、検索文字列を形態素解析して単語に分解するステップS2002。このあと、検索装置800は、分解された単語群の中からあいまい検索に必要な品詞に該当する比較単語を抽出するステップS2003。このあと、検索装置800は、第1特定部902により、類語辞書データ100から比較単語の分類コードを階層ごとに特定するステップS2004。そして、検索装置800は、階層番号jをj=1としステップS2005、j=t1であるか否かを判断するステップS2006。ここでは、中間階層の範囲を第t1階層から第t2階層t1<t2、t1≠1、t2≠m、mは最下層の階層番号とする。j=t1でない場合ステップS2006:No、図19のステップS1905に移行する。一方、j=t1である場合ステップS2006:Yes、検索装置800は、判定部904により、検索文字列内の検索単語および比較文字列内の比較単語において、第j階層での分類コードどうしを比較するステップS2007。そして、検索装置800は、第1計数部905により、第j階層での分類コードの一致数aを計数しステップS2008、計数された一致数aを中間分類コード一致数N初期値はN=0に加算するステップS2009。このあと、検索装置800は、j>t2であるか否かを判断するステップS2010。j>t2でない場合ステップS2010:No、検索装置800は、階層番号jをインクリメントしステップS2011、ステップS2007に戻る。一方、j>t2である場合ステップS2010:Yes、図19のステップS1905に移行する。このような中間分類コード一致数集計処理ステップS1803により、中間階層第t1階層から第t2階層での分類コードの一致数が計数されることとなる。<類似度算出処理手順>図21は、図18に示した類似度算出処理ステップS1804の詳細な処理手順例を示すフローチャートその1である。まず、検索装置800は、特定対象ファイル数をKとし、特定対象ファイル番号kをk=1とするステップS2101。特定対象ファイル数Kは、図18のステップS1802で検出された対象ファイル数である。つぎに、検索装置800は、k>Kであるか否かを判断するステップS2102。k>Kである場合ステップS2102:Yes、出力処理ステップS1711に移行する。一方、k>Kでない場合ステップS2102:No、検索装置800は、特定対象ファイルFkを選択するステップS2103。そして、検索装置800は、特定対象ファイルFkでの比較が終了したか否かを判断するステップS2104。具体的には、未選択の比較文字列がなくなった場合に終了する。特定対象ファイルFkでの比較が終了した場合ステップS2104:Yes、抽出すべき比較文字列がないため、検索装置800は、特定対象ファイル番号kをインクリメントしステップS2105、ステップS2102に戻る。一方、特定対象ファイルFkでの比較が終了しない場合ステップS2104:No、検索装置800は、比較単位で比較文字列を特定対象ファイルFkから抽出するステップS2106。そして、検索装置800は、第1特定部902により、類語辞書データ100から比較単語の分類コードを階層ごとに特定しステップS2107、図22のステップS2201に移行する。図22は、図18に示した類似度算出処理ステップS1804の詳細な処理手順例を示すフローチャートその2である。まず、ステップS2107のあと、検索装置800は、階層番号jをj=1に設定しステップS2201、j=t1であるか否かを判断するステップS2202。j=t1でない場合ステップS2202:No、すなわち、上位階層である場合、検索装置800は、判定部904により、検索文字列の検索単語と比較文字列の比較単語との間で、第j階層の分類コードが一致するか否かを判定するステップS2203。一致する場合ステップS2203:Yes、検索装置800は、階層番号jをインクリメントしステップS2204、ステップS2202に戻る。一方、不一致である場合ステップS2203:No、図21のステップS2104に戻る。また、ステップS2202において、j=t1である場合ステップS2202:Yes、検索装置800は、判定部904により、検索文字列の検索単語と比較文字列の比較単語との間で、第j階層の分類コードが一致するか否かを判定するステップS2205。不一致である場合ステップS2205:No、検索装置800は、中間分類コード一致数Nがしきい値Nt以上であるか否かを判断するステップS2206。N≧Ntである場合ステップS2206:Yes、不一致な比較単語を有する比較文字列をあいまい検索の対象にする必要はないため、類似度算出対象から除外してステップS2104に戻る。一方、N≧Ntでない場合ステップS2206:No、あいまい検索の対象が不足しているため、ステップS2207に移行する。また、ステップS2205において、一致すると判定された場合ステップS2205:Yes、ステップS2207に移行する。ステップS2207では、検索装置800は、階層番号jをインクリメントしステップS2207、j>t2であるか否かを判断するステップS2208。j>t2でない場合ステップS2208:No、まだ中間階層であるため、ステップS2205に戻る。一方、j>t2である場合ステップS2208:Yes、検索装置800は、第1算出部907により検索文字列の類語ベクトルおよび比較文字列の類語ベクトルを生成して、カーネル法により検索文字列と比較文字列との類似度を算出するステップS2209。そして、図21のステップS2104に戻る。このように、中間階層第t1階層~第t2階層においては、中間分類コード一致数Nの多さに応じて、比較文字列をあいまい検索の対象にしたり除外したりと、状況に応じて取捨選択することができる。したがって、類似性の高い適切な数の比較文字列についてあいまい検索をおこなうことができる。<第2検索処理手順>図23は、図17に示した第2検索処理ステップS1707、ステップS1710の詳細な処理手順例を示すフローチャートその1である。図23において、まず、検索装置800は、階層番号jをj=mに設定するステップS2301。mは指定階層の階層番号であり、たとえば、最下位の階層番号とする。つぎに、検索装置800は、第2特定部1203により、類語辞書データ100から検索単語の第j階層~第m階層の分類コードを特定するステップS2302。そして、検索装置800は、第j階層~第m階層の分類マップを参照して、検索単語の第j階層~第m階層の分類コードのビット列を特定する。そして、検索装置800は、第2検出部1201により、特定されたビット列においてすべてONになっている対象ファイルを検出するステップS2303。これにより、検索対象が特定対象ファイルに絞り込まれたこととなる。このあと、図24のステップS2401に移行する。図24は、図18に示した第2検索処理ステップS1707、ステップS1710の詳細な処理手順例を示すフローチャートその2である。まず、図23のステップS2303のあと、検索装置800は、特定対象ファイル数をKとし、特定対象ファイル番号kをk=1とするステップS2401。特定対象ファイル数Kは、図23のステップS2303で検出された対象ファイル数である。つぎに、検索装置800は、k>Kであるか否かを判断するステップS2402。k>Kでない場合ステップS2402:No、検索装置800は、特定対象ファイルFkを選択するステップS2403。そして、検索装置800は、特定対象ファイルFkでの比較が終了したか否かを判断するステップS2404。具体的には、未選択の比較文字列がなくなった場合に終了する。特定対象ファイルFkでの比較が終了しない場合ステップS2404:No、検索装置800は、比較単位で比較文字列を特定対象ファイルFkから抽出するステップS2405。そして、検索装置800は、解析部802により、抽出された比較文字列を形態素解析して単語に分解するステップS2406。このあと、検索装置800は、分解された単語群の中からあいまい検索に必要な品詞に該当する比較単語を抽出するステップS2407。つぎに、検索装置800は、第2特定部1203により、類語辞書データ100から比較単語の第j階層~第m階層の分類コードを特定するステップS2408。そして、検索装置800は、第2算出部1204により、検索文字列内の検索単語の第j階層~第m階層の分類コードで検索文字列の類語ベクトルを生成する。同様に、検索装置800は、第2算出部1204により、比較文字列内の比較単語の第j階層~第m階層の分類コードで比較文字列の類語ベクトルを生成する。そして、検索装置800は、第2算出部1204により両類語ベクトルから検索文字列と比較文字列との類似度を算出するステップS2409。そして、ステップS2404に戻る。一方、ステップS2404において、特定対象ファイルFkでの比較が終了した場合ステップS2404:Yes、抽出すべき比較文字列がないため、検索装置800は、特定対象ファイル番号kをインクリメントしステップS2410、ステップS2402に戻る。また、ステップS2402において、k>Kである場合ステップS2402:Yes、検索装置800は、第2計数部1205により、ステップS2409で算出された類似度が所定類似度以上である比較文字列の数を計数するステップS2411。そして、検索装置800は、計数結果がしきい値以上であるか否かを判断するステップS2412。しきい値以上でない場合ステップS2412:No、検索装置800は、階層番号がj=1であるか否かを判断するステップS2413。そして、j=1でない場合ステップS2413:No、検索装置800は、階層番号jをデクリメントしてステップS2414、図23のステップS2302に戻る。一方、ステップS2412においてしきい値以上と判定された場合ステップS2412:Yes、または、ステップS2413において階層番号j=1と判定された場合ステップS2413:Yes、第2検索処理を終了する。このように、上述した実施の形態では、中間階層の分類コードで検索文字列と不一致と判定された比較文字列に対して、比較文字列をあいまい検索の対象にしたり除外したりと、状況に応じて取捨選択することができる。したがって、類似性の高い適切な数の比較文字列についてあいまい検索をおこなうことができる。また、分類マップ群Mを用いて対象ファイル群Fの絞込みをおこなうことで、類似性の高い比較文字列を含む対象ファイルに狙い撃ちしてあいまい検索を実行することができる。したがって、無駄なあいまい検索を未然に防止することができ、あいまい検索速度の向上を図ることができる。また、検索文字列を構成する検索単語の個数の多さに応じて、第1検索処理と第2検索処理のいずれか一方を選択することができる。すなわち、検索単語の個数が少ないと第1検索処理が選択され、検索文字列の類語ベクトルが大きくなるものの、類似度計算は一度で完了するため、あいまい検索の高速化を図ることができる。一方、検索単語の個数が多いと第2検索処理が選択され、下位階層から段階的に検索対象範囲を拡大していくことができるため、最初のうちは類語ベクトルの大きさが小さく済み、検索効率の向上を図ることができる。以上説明したように、検索プログラム、検索装置、および検索方法によれば、あいまい検索の対象範囲を自動的に取捨選択することにより、あいまい検索精度の向上を図ることができるという効果を奏する。なお、本実施の形態で説明した検索方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検索プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検索プログラムは、インターネット等のネットワークを介して配布してもよい。"