(57)【特許請求の範囲】
【請求項１】
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出する単語抽出手段と、
前記単語抽出手段によって抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出する連字抽出手段と、
前記連字抽出手段によって抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定する判定手段と、
前記判定手段によって見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成する生成手段と、
検索が要求された単語を前記複数のファイルの中から検索するときに、前記生成手段によって生成された前記連字シーケンスマップに基づいて、検索が要求された前記単語と一致する単語を含むファイルを前記複数のファイルの中から特定する特定手段と、
を備えたことを特徴とする検索装置。
【請求項２】
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出する単語抽出手段と、
前記単語抽出手段によって抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出する連字抽出手段と、
前記連字抽出手段によって抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定する判定手段と、
前記判定手段によって見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成する生成手段と、
を備えたことを特徴とする生成装置。
【請求項３】
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出し、
抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出し、
抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定し、
見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成し、
検索が要求された単語を前記複数のファイルの中から検索するときに、生成された前記連字シーケンスマップに基づいて、検索が要求された前記単語と一致する単語を含むファイルを前記複数のファイルの中から特定する、
処理をコンピュータに実行させるプログラム。
【請求項４】
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出し、
抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出し、
抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定し、
見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成する、
処理をコンピュータに実行させるプログラム。
【請求項５】
コンピュータが、
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出する単語抽出工程と、
前記単語抽出工程によって抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出する連字抽出工程と、
前記連字抽出工程によって抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定する判定工程と、
前記判定工程によって見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成する生成工程と、
検索が要求された単語を前記複数のファイルの中から検索するときに、前記生成工程によって生成された前記連字シーケンスマップに基づいて、検索が要求された前記単語と一致する単語を含むファイルを前記複数のファイルの中から特定する特定工程と、
を実行することを特徴とする検索方法。
【請求項６】
コンピュータが、
見出し語を含む文字列が記述されている複数のファイルの中から複数の文字を含む単語を抽出する単語抽出工程と、
前記単語抽出工程によって抽出された単語の中から、当該単語の所定の文字位置から所定の文字数の連字を抽出する連字抽出工程と、
前記連字抽出工程によって抽出された前記連字のそれぞれについて、前記複数のファイルに含まれる複数の見出し語それぞれと当該見出し語が含まれるファイルとを関連付けた情報に基づいて、前記情報に含まれる見出し語と一致するか否かを判定する判定工程と、
前記判定工程によって見出し語と一致すると判定された各前記連字のそれぞれについて、前記複数のファイルそれぞれに連字が含まれるか否かを表すフラグ列を有する連字シーケンスマップを生成する生成工程と、
を実行することを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報を検索するための連字シーケンスマップ生成プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法に関する。
【背景技術】
【０００２】
従来、下記特許文献１により、検索文字列をそれを構成する各文字に分解し、該当する文字の出現マップ上のフラグ列のＡＮＤ演算により、対象ファイルを絞り込むことで全文検索の高速化を実現している。日本語の標準的な国語辞典を例に約４０００文字を１ファイルとして、約５０００ファイルでまとめると、ある漢字１文字が含まれる確率は平均１／１３である。
【０００３】
検索文字列が１文字の場合は１／１３、２文字の場合は１／１６９、３文字の場合は１／２１９７となり、文字の出現マップの処理が必要であるが、かなりの高速化を図ることができる。例えば、「森鴎外」にて全文検索を行うと、１．５秒（２回目は０．２秒）で、約１７０倍の高速化が実現できる。３種類の文字マップにより、３２／５１５１ファイルに絞り込まれ、２８件が該当項目として表示される。また、下記特許文献２〜４にも関連する技術が開示されている。
【０００４】
【特許文献１】国際公開第２００６／１２３４４８号パンフレット
【特許文献２】特許第３３３３５４９号公報
【特許文献３】特許第３０４６２２１号公報
【特許文献４】特許第３２６３９６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、「平」や「和」など、出現頻度が５０％を超える漢字が数十種、存在する。したがって、検索文字列「平和」にて全文検索を行うと、３５秒（２回目は１３秒）かかり、約２倍の高速化に留まる。文字２種のフラグ列により、３３１２／５１５１ファイルに絞り込まれ、１５８件が該当項目として表示される。出現頻度の高い文字で構成される文字列を検索キーワードとすると、ファイルを特定する確率が低いため、検索精度の低下を招くとともに、無駄なオープン・リード処理が発生して、検索速度の低下を招くこととなる。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、検索速度および検索精度の向上を図ることができる連字シーケンスマップ生成プログラム、情報検索プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、連字シーケンスマップ生成プログラム、情報検索プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法では、以下の手段により上記課題を解決する。
【０００８】
ファイル内に記述されている英数字、仮名（かなとカタカナ含む）の単語に関して、連字シーケンスマップと呼ばれる各連字の存否をあらわすファイルごとのフラグ列の集合を生成する。連字とは複数の連続する文字であり、連字シーケンスマップは、単語中の文字位置および連字の文字数ごとに生成される。このように、単語を構成する文字列の連接の確率低下を利用し、連字シーケンスマップによる対象ファイルの絞込みを高速かつ高精度におこなうことができる。
【０００９】
また、漢字列の単語に関しても、連字シーケンスマップを生成する。漢字の文字種は５０００〜８０００種であるため、その連字シーケンスマップのサイズは膨大となり、キャッシュメモリでの常駐化が困難となる。そこで、ＪＩＳの区点コードの点コードに着目し、仮名漢字文字の点コードにより、連字シーケンスマップを作成する。また、連字シーケンスのマップサイズも９４種×９４種＝８８３６種となり、妥当なサイズに納めることができる。
【００１０】
一方、中国語や韓国語などの外国語に関しては、ユニコード（ＵＴＦ１６）の該当の文字コードを除数８０で割った余数を利用することで連携シーケンスマップのサイズ８０種×８０種＝６４００種となり、妥当なサイズに納めることができる。
【００１１】
しかし、マップサイズの縮小のため、数十種類の文字が同一のマップに割り付けられる。また、文字コード化には偏りがあるため、これらが原因となり特定の単語に対し、対象ファイルの絞込みの確立が急激に低下する危険性が生じる。
【００１２】
そこで除数を√２し、サイズが半減した連字シーケンスマップと文字コードをデシット毎にスワップしたコードに対し、同様にマップを作成し、２種類の連字シーケンスマップを利用し、「たすきがけ」により対象ファイルの絞込みの確立を安定化することができる。
【００１３】
また、複文節で構成される単語については、内在する単語を抽出することで、連字シーケンスマップの生成に際し、連字の抽出対象となる単語の網羅性を高めることができる連字シーケンスマップを作成する必要がある。
【００１４】
また、連字シーケンスマップは、単語の先頭／末尾からの文字位置およびその文字位置からの連字の文字数ごとに生成される。したがって、単語の文字数をｑ（ｑ≧２）、連字の文字数をｒ（ｒ≦ｑ）、単語の先頭からの文字位置をｓ（１≦ｓ≦ｑ−ｒ＋１）とすると、先頭からｓ番目の文字位置から（ｓ＋ｒ−１）番目の文字位置の連字について先頭連字シーケンスマップを生成する。同様に、単語の末尾からの文字位置をｔ（１≦ｔ≦ｑ−ｒ＋１）とすると、末尾からｔ番目の文字位置から（ｔ＋ｒ−１）番目の文字位置の連字について末尾連字シーケンスマップを生成する。
【００１５】
このように、文字位置に対応し、複数の連字シーケンスマップを用意しておくことで、検索文字列が与えられると、検索に先だって、連字シーケンスマップにより、検索文字列がその文字列順で記述されているファイルを絞り込むことができる。特に、先頭連字シーケンスマップを用いることで前方一致検索をおこなう場合のファイルの絞込みを高速かつ高精度におこなうことができる。
【００１６】
また、末尾連字シーケンスマップを用いることで後方一致検索をおこなう場合のファイルの絞込みを高速かつ高精度におこなうことができる。さらに、先頭連字シーケンスマップおよび末尾連字シーケンスマップを用いることで完全一致検索をおこなう場合のファイルの絞込みを高速かつ高精度におこなうことができる。
【００１７】
また、連字について、連字を構成する文字列が英数字である場合、半角文字と全角文字が存在する。したがって、半角および全角のうちいずれか一方をデフォルトとして連字の文字コードをデフォルト側に統一することで、連字の文字コード列の共通化を図ることができ、連字シーケンスマップのサイズの縮小化も図ることができる。
【００１８】
また、連字が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換することで、連字の文字コード列の共通化を図ることができ、連字シーケンスマップのサイズの縮小化も図ることができる。
【００１９】
また、連字シーケンスマップをサイクリックな構造とする。すなわち、サイクリック数をｃとすると、先頭からｓ番目の連字に関する先頭連字シーケンスマップ、先頭から（ｓ＋ｃ）番目の連字に関する先頭連字シーケンスマップ、先頭から（ｓ＋２ｃ）番目の連字に関する先頭連字シーケンスマップ、先頭から（ｓ＋３ｃ）番目の連字に関する先頭連字シーケンスマップ、…を、先頭から（ｓ＋ｋｃ）番目の連字に関する単一の連字シーケンスマップ（ｋは非負整数）に統合する。
【００２０】
同様に、末尾からｔ番目の連字に関する末尾連字シーケンスマップ、末尾から（ｔ＋ｃ）番目の連字に関する末尾連字シーケンスマップ、末尾から（ｔ＋２ｃ）番目の連字に関する末尾連字シーケンスマップ、末尾から（ｔ＋３ｃ）番目の連字に関する末尾連字シーケンスマップ、…を、末尾から（ｔ＋ｋｃ）番目の連字に関する単一の連字シーケンスマップ（ｋは非負整数）に統合する。
【００２１】
このように、多数の連字シーケンスマップ群をサイクリックな構造化とすることにより、ｃ個の連字シーケンスマップに統合でき、連字シーケンスマップの総合サイズを最適化することができる。また、サイクリック数ｃを適宜設定することでキャッシュメモリのサイズに応じた構造とすることができる。また、先頭および末尾の連字シーケンスマップと従来の単字および連字マップを組み合わせることで、有効な対象ファイルの絞込み確立を維持し、文字出現マップのトータルサイズの縮小を図ることができる。
【００２２】
さらに、連字シーケンスマップの参照回数を計数しておき、参照回数の多い連字シーケンスマップをキャッシュメモリにロードして常駐化することで、検索速度の向上を図ることができる。
【発明の効果】
【００２３】
本連字シーケンスマップ生成プログラム、情報検索プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法によれば、検索速度および検索精度の向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明にかかる連字シーケンスマップ生成プログラム、情報検索プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法の好適な実施の形態を詳細に説明する。
【００２５】
（コンピュータのハードウェア構成）
図１は、この発明の実施の形態にかかるコンピュータのハードウェア構成を示すブロック図である。図１において、コンピュータは、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２６】
ここで、ＣＰＵ１０１は、コンピュータの全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２７】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２８】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２９】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３０】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３１】
スキャナ１１２は、画像を光学的に読み取り、コンピュータ内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３２】
（検索システムの機能的構成）
図２は、検索システムの機能的構成を示すブロック図である。図２において、検索システム２００は、マップ生成装置２０１と情報検索装置２０２と検索対象コンテンツ２１０と見出し語データ２１１とマップ群２１２とから構成されている。マップ生成装置２０１はマップ群２１２を生成する。マップ生成装置２０１は、図１に示したハードウェアにより実現される。情報検索装置２０２は、検索対象コンテンツ２１０から検索文字列と一致または関連する文字列を検索する。情報検索装置２０２は、図１に示したハードウェアにより実現される。マップ生成装置２０１と情報検索装置２０２は一体でもよく別体でもよい。
【００３３】
検索対象コンテンツ２１０とは、辞書や用語辞典など文字列が記述されたコンテンツである。見出し語データ２１１とは、検索対象コンテンツ２１０内の見出し語となる文字列と当該見出し語の一覧を示すテーブルである。マップ群２１２とは、各種マップ（後述する単字マップおよび連字シーケンスマップ）をあらわす。
【００３４】
図３は、検索対象コンテンツ２１０を示す説明図である。検索対象コンテンツ２１０は、複数のファイルｆ０〜ｆｎにより構成されている。各ファイルｆｉは、たとえば、ＨＴＭＬやＸＭＬといった形式のデータであり、各種文字列が記述されている。日本語の標準的な国語辞典を例にあげると、１ファイルに約４０００文字が記述されており、約５０００ファイルでまとめられている。
【００３５】
図４は、見出し語データ２１１を示す説明図である。見出し語データ２１１は、見出し語とともにその見出し語が存在するファイルｆｉのファイルＩＤとそのファイル内位置とを記憶する。したがって、検索の際、見出し語が検索されると、ファイルＩＤおよびファイル内位置により、検索された見出し語を含むファイルにおける該当箇所が切り出されてディスプレイに表示されることとなる。
【００３６】
（出現マップの概要）
本実施の形態では、辞書などの検索対象コンテンツ２１０を構成するＨＴＭＬやＸＭＬ形式のファイル群ｆ０〜ｆｎに記述されている文字の存否をあらわすファイルｆｉごとのフラグ列からなるマップを生成する。そして、検索文字列と一致または関連する文字列をファイル群の中から検索する検索処理に先立って、生成されたマップにより検索文字列を構成する文字が存在するファイルｆｉを絞り込む。これにより、全ファイルｆ０〜ｆｎではなく、絞り込まれたファイルｆｉのみを検索することで、ヒット率および検索速度の向上を図る。マップには、単字マップと連字シーケンスマップがある。
【００３７】
図５は、単字マップを示す説明図である。単字マップＭ１とは、ファイル群ｆ０〜ｆｎに記述されている単字（１文字）の存否をあらわすファイルｆｉごとのフラグ列からなるマップである。単字マップＭ１において、文字種とは、検索対象コンテンツ２１０に出現する単字の種類を示しており、たとえば、数字、アルファベット小文字、アルファベット大文字、かな、カタカナ、漢字、韓国文字や中国文字といった外国文字（アルファベット除く）があげられている。アルファベットやカタカナは、半角／全角の区別があるが、半角／全角をわけてもよく、まとめてもよい（後述する連字シーケンスマップでも同様。）。
【００３８】
また、ファイルＩＤとは、ファイルｆ０〜ｆｎを識別する情報である。ファイルＩＤに対応する“０”または“１”のビット値は、その文字の存否をあらわすフラグである。“０”のときはそのファイルｆｉには存在せず、“１”のときはそのファイルｆｉに存在することを示す。このフラグをファイルＩＤ順に並べたデータをフラグ列と称す（後述する連字シーケンスマップでも同様。）。また、文字とフラグ列の組み合わせをエントリと称す。
【００３９】
図６は、連字シーケンスマップ群を示す説明図である。連字シーケンスマップ群Ｍｈｅとは、ファイル群ｆ０〜ｆｎに記述されている連字の存否をあらわすファイルごとのフラグ列からなるマップの集合である。連字とは、連続する複数の文字からなる文字列である。また、連字とフラグ列の組み合わせをエントリと称す。
【００４０】
連字シーケンスマップ群Ｍｈｅは、先頭連字シーケンスマップ群Ｍｈと末尾連字シーケンスマップ群Ｍｅに分けられる。先頭連字シーケンスマップ群Ｍｈは、先頭連字シーケンスマップＭｈｓ，ｒの集合である。末尾連字シーケンスマップ群Ｍｅは、末尾連字シーケンスマップＭｅｔ，ｒの集合である。先頭連字シーケンスマップＭｈｓ，ｒとは、対象となる単語の文字数をｑとすると、その単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字の存否をあらわす連字シーケンスマップである。文字数ｒの上限をＲとする。図７は、先頭連字シーケンスマップＭｈ１，２を示す説明図である。
【００４１】
先頭連字シーケンスマップＭｈｓ，ｒでは、先頭ｓ文字目から末尾へ向かう連字を基準としている。たとえば、『織田信長』という単語について先頭連字シーケンスマップＭｈｓ，ｒ（ｒ＝２）を生成する場合、先頭連字シーケンスマップＭｈ１，２には“織田”という連字のフラグ列が記録される。また、先頭連字シーケンスマップＭｈ２，２には“田信”という連字のフラグ列が記録される。また、先頭連字シーケンスマップＭｈ３，２には“信長”という連字のフラグ列が記録される。
【００４２】
また、末尾連字シーケンスマップＭｅｔ，ｒとは、対象となる単語の文字数をｑとすると、その単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字の存否をあらわす連字シーケンスマップである。図８は、末尾連字シーケンスマップＭｅ１，２を示す説明図である。
【００４３】
末尾連字シーケンスマップＭｅｔ，ｒでは、末尾ｔ文字目から先頭へ向かう連字を基準としている。たとえば、『織田信長』という単語について末尾連字シーケンスマップＭｅｔ，ｒ（ｒ＝２）を生成する場合、末尾連字シーケンスマップＭｅ１，２には“長信”という連字のフラグ列が記録される。また、末尾連字シーケンスマップＭｅ２，２には“信田”という連字のフラグ列が記録される。また、末尾連字シーケンスマップＭｅ３，２には“田織”という連字のフラグ列が記録される。
【００４４】
つぎに、マップ生成装置２０１による連字シーケンスマップ群の生成について説明する。連字シーケンスマップ群の生成では、ファイルｆｉから順次単語を抽出し、その抽出単語を先頭／末尾の文字位置ｓ／ｔから指定された文字数ｒまでの連字を切り出して、フラグ列のファイルＩＤ：ｉのフラグを“０”から“１”にする。この処理を０番目のファイルｆ０からｎ番目のファイルｆｎまでおこなうことにより、図６に示した連字シーケンスマップ群Ｍｈ，Ｍｅが生成される。以下、文字数ｒ＝２とし、ファイルｆｉに『ｂｅａｕｔｉｆｕｌ』という英単語が記述されているものとして説明する。
【００４５】
図９は、先頭連字シーケンスマップ群Ｍｈの生成例を示す説明図である。ファイルｆｉから『ｂｅａｕｔｉｆｕｌ』が抽出されると、先頭から順次、文字位置ｓに応じた連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”が切り出される。そして、各先頭連字シーケンスマップＭｈ１，２〜Ｍｈ８，２において、対応する文字位置ｓの連字のフラグ列中、ファイルＩＤ：ｉのフラグを“０”から“１”にする。
【００４６】
図１０は、末尾連字シーケンスマップ群Ｍｅの生成例を示す説明図である。ファイルｆｉから『ｂｅａｕｔｉｆｕｌ』が抽出されると、末尾から順次、文字位置ｔに応じた連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”が切り出される。そして、各末尾連字シーケンスマップＭｅ１，２〜Ｍｅ８，２において、対応する文字位置ｔの連字のフラグ列中、ファイルＩＤ：ｉのフラグを“０”から“１”にする。
【００４７】
つぎに、情報検索装置２０２による連字シーケンスマップ群Ｍｈｅを用いた絞込みについて説明する。連字シーケンスマップ群Ｍｈｅを用いた検索では、検索に先立って、検索すべきファイルｆｉの絞込みをおこなう。この検索の検索条件が前方一致検索である場合、先頭連字シーケンスマップ群Ｍｈを用いて絞込みをおこなう。一方、後方一致検索である場合、末尾連字シーケンスマップ群Ｍｅを用いて絞込みをおこなう。以下、図９および図１０にあわせて、文字数ｒ＝２とし、検索文字列を『ｂｅａｕｔｉｆｕｌ』という英単語として説明する。
【００４８】
図１１は、先頭連字シーケンスマップ群Ｍｈを用いた絞込み例を示す説明図である。検索文字列『ｂｅａｕｔｉｆｕｌ』が入力されると、『ｂｅａｕｔｉｆｕｌ』の先頭からｓ番目の各連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”のエントリを抜き出して、各フラグ列の論理積演算をおこなう。この論理積演算により、フラグが“１”であるファイルが、先頭からの文字列が“ｂｅａｕｔｉｆｕｌ”である単語を含むファイルとなる。この例では、『ｂｅａｕｔｉｆｕｌ』が記述されているファイルｆｉと、『ｂｅａｕｔｉｆｕｌｌｙ』が記述されているファイルｆｎに絞り込まれる。したがって、検索対象となるファイルは、ファイルｆｉとファイルｆｎとなり、他のファイルは検索する必要がない。
【００４９】
図１２は、末尾連字シーケンスマップ群Ｍｅを用いた絞込み例を示す説明図である。検索文字列『ｂｅａｕｔｉｆｕｌ』が入力されると、『ｂｅａｕｔｉｆｕｌ』の末尾からｔ番目の各連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”のエントリを抜き出して、各フラグ列の論理積演算をおこなう。この論理積演算により、フラグが“１”であるファイルが、末尾からの文字列が“ｌｕｆｉｔｕａｅｂ”である単語を含むファイルとなる。この例では、『ｂｅａｕｔｉｆｕｌ』が記述されているファイルｆｉに絞り込まれる。したがって、検索対象となるファイルは、ファイルｆｉとなり、他のファイルは検索する必要がない。
【００５０】
また、完全一致検索をおこなうときの絞込みをおこなう場合、図１１に示した論理積演算の結果と、図１２に示した論理積演算の結果とを、さらに論理積演算することにより、フラグが“１”であるファイルが、先頭からの文字列が“ｂｅａｕｔｉｆｕｌ”である単語を含み、かつ、末尾からの文字列が“ｌｕｆｉｔｕａｅｂ”である単語を含むファイルとなる。この例では、ファイルｆｉに絞り込まれる。このように、連字シーケンスマップ群を生成することで、検索のヒット率が向上するとともに、無駄なファイルアクセスが低減するため、検索速度が向上することとなる。
【００５１】
（マップ生成装置２０１の機能的構成１）
図１３は、マップ生成装置２０１の機能的構成１を示すブロック図である。図１３では、単字マップＭ１を生成する機能について説明する。図１３において、マップ生成装置２０１は、文字抽出部１３０１と、外国文字抽出部１３０２と、外国文字変換部１３０３と、単字マップ生成部１３０４と、から構成されている。各機能は、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記憶領域に記憶されたプログラムをＣＰＵ１０１に実行させることによりその機能を実現する。
【００５２】
文字抽出部１３０１は、検索対象コンテンツ２１０を構成する各ファイルｆｉから文字を抽出する機能を有する。文字抽出部１３０１は、１文字ずつ抽出する。外国文字抽出部１３０２は、文字抽出部１３０１による抽出文字が韓国語の文字や中国語の文字といった外国文字である場合、その外国文字を抽出する機能を有する。外国文字であるか否かは、その文字の文字コードにより判断できる。
【００５３】
外国文字変換部１３０３は、外国文字抽出部１３０２により抽出された外国文字を一方向性関数によりコード化する機能を有する。外国文字変換部１３０３では、同一の一方向性関数により２つの異なるコードを生成する。外国文字変換部１３０３の詳細な内容については後述する。
【００５４】
単字マップ生成部１３０４は、文字抽出部１３０１により抽出された単字（１文字）の存否をあらわすファイルｆ０〜ｆｎごとのフラグ列からなる単字マップＭ１を生成する機能を有する。具体的には、たとえば、単字が出現したファイルＩＤのフラグを“０”から“１”にする。また、外国文字については、外国文字変換部１３０３により１つの外国文字について２つの異なるコードが得られるため、コードごとにフラグ列が生成される。
【００５５】
（外国文字変換部１３０３の変換処理）
図１４は、外国文字変換部１３０３の変換処理を示す説明図である。図１４において、（Ａ）は、バイト演算処理と呼ばれるコード変換処理であり、（Ｂ）は、デジット演算処理と呼ばれるコード変換処理である。中国語や韓国語などのＵＮＩコード（ＵＴＦ１６）に対して、連字シーケンスマップを適用する場合は、ＵＮＩコードを、例えば、「８０」で除算を行った余数の組合せた値にて、フラグ列を作成する。これにより、６４００（８０ｘ８０）種のサイズに縮小することができる。また、除数の数値を変更することで、単字マップＭ１のサイズを調整することができる。
【００５６】
また、余数の組合せた値でコード変換するため、異なる文字でも同一コードとなる可能性がある。このため、コード変換を２種類おこなって、１つの外国文字について２つのコードのフラグ列を生成する。このフラグ列の論理積演算（たすきがけ）をおこなうことで、外国文字を正確に絞り込むことができる。図１４では、韓国文字『ュ』（文字コード“０ｘＡＤＦ８”）を例に挙げて説明する。
【００５７】
まず、（Ａ）のバイト演算処理について説明する。バイト演算処理では、文字コード“０ｘＡＤＦ８”を上位バイト“ＡＤ”と下位バイト“Ｆ８”に分け、上位バイト“ＡＤ”を２つ連結した上位連結コード“０ｘＡＤＡＤ”と、下位バイト“Ｆ８”を２つ連結した下位連結コード“０ｘＦ８Ｆ８”とを生成する。
【００５８】
つぎに、上位連結コード“０ｘＡＤＡＤ”と下位連結コード“０ｘＦ８Ｆ８”とを、上位連結コード、下位連結コードの順に連結することで、上位・下位連結コード“０ｘＡＤＡＤＦ８Ｆ８”を生成する。また、上位連結コード“０ｘＡＤＡＤ”と下位連結コード“０ｘＦ８Ｆ８”とを、下位連結コード、上位連結コードの順に連結することで、下位・上位連結コード“０ｘＦ８Ｆ８ＡＤＡＤ”を生成する。
【００５９】
つぎに、上位・下位連結コード“０ｘＡＤＡＤＦ８Ｆ８”と下位・上位連結コード“０ｘＦ８Ｆ８ＡＤＡＤ”を同一の関数に与える。具体的には、同一の値４７（０ｘ２Ｆ）で除算してそれぞれ除数“０ｘ２１”と“０ｘ１８”を得る。この除数を連結することで、バイト演算処理による変換コード“０ｘ２１１８”を得ることができる。
【００６０】
つぎに、（Ｂ）のデジット演算処理について説明する。デジット演算処理では、文字コード“０ｘＡＤＦ８”を奇数番目のデジット“Ａ”および“Ｆ”と、偶数番目のデジット“Ｄ”および“８”に分け、奇数デジット“Ａ”および“Ｆ”を２つ連結した奇数連結コード“０ｘＡＦＡＦ”と、偶数デジット“Ｄ”および“８”を２つ連結した偶数連結コード“０ｘＤ８Ｄ８”とを生成する。
【００６１】
つぎに、奇数連結コード“０ｘＡＦＡＦ”と偶数連結コード“０ｘＤ８Ｄ８”とを、奇数連結コード、偶数連結コードの順に連結することで、奇数・偶数連結コード“０ｘＡＦＡＦＤ８Ｄ８”を生成する。また、奇数連結コード“０ｘＡＦＡＦ”と偶数連結コード“０ｘＤ８Ｄ８”とを、偶数連結コード、奇数連結コードの順に連結することで、偶数・奇数連結コード“０ｘＤ８Ｄ８ＡＦＡＦ”を生成する。
【００６２】
つぎに、奇数・偶数連結コード“０ｘＡＦＡＦＤ８Ｄ８”と偶数・奇数連結コード“０ｘＤ８Ｄ８ＡＦＡＦ”をバイト演算処理で用いた関数と同一の関数に与える。具体的には、同一の値４７（０ｘ２Ｆ）で除算してそれぞれ除数“０ｘ１Ｂ”と“０ｘ２７”を得る。この除数を連結することで、デジット演算処理による変換コード“０ｘ１Ｂ２７”を得ることができる。
【００６３】
図１５は、図１４で得られた変換コードの単字マップＭ１でのエントリ例を示す説明図である。この韓国文字『ュ』については、バイト演算処理による変換コード“０ｘ２１１８”とデジット演算処理による変換コード“０ｘ１Ｂ２７”についてそれぞれフラグ列が設定される。
【００６４】
（マップ生成装置２０１の機能的構成２）
図１６は、マップ生成装置２０１の機能的構成２を示すブロック図である。図１６では、連字シーケンスマップ群Ｍｈｅを生成する機能について説明する。図１６において、マップ生成装置２０１は、単語抽出部１６０１と、連字抽出部１６０２と、見出し語検索部１６０３と、連字シーケンスマップ生成部１６０４と、抽出連字変換部１６０５と、マップ群抽出部１６０６と、統合部１６０７と、から構成されている。各機能は、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記憶領域に記憶されたプログラムをＣＰＵに実行させることによりその機能を実現する。
【００６５】
単語抽出部１６０１は、検索対象コンテンツ２１０を構成する各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する機能を有する。具体的には、たとえば、ファイルｆｉ内の文章が英語などで記述されている場合、単語間にはスペースがあるため、スペースを検出することで単語を抽出することができる。また、ファイルｆｉ内の文章が日本語である場合、形態素解析により単語の境界を検出することで、単語を抽出することができる。
【００６６】
連字抽出部１６０２は、単語抽出部１６０１によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置（ｓ＋ｒ−１）までの連字を抽出する機能を有する。具体的には、たとえば、図９に示したように、文字数ｒ＝２の連字を抽出する場合、先頭からの文字位置ｓに応じた連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”を抽出する。
【００６７】
また、連字抽出部１６０２は、単語抽出部１６０１によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置（ｔ＋ｒ−１）までの連字を抽出する機能を有する。具体的には、たとえば、図１０に示したように、末尾からの文字位置ｔに応じた連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”を抽出する。
【００６８】
見出し語検索部１６０３は、単語抽出部１６０１によって抽出された単語の中に含まれている文字列の中から見出し語と一致する単語を検索する機能を有する。具体的には、たとえば、抽出単語の中から見出し語データ２１１に登録されている見出し語と一致する単語を抽出する。たとえば、単語抽出部１６０１による単語が『国際通貨基金』のような複文節の単語である場合、『国際』、『国際通貨』、『通貨』、『基金』といった抽出単語『国際通貨基金』に含まれている単語をさらに抽出する。これにより、連字シーケンスマップにおける見出し語と一致する単語の網羅性を高めることができる。この見出し語検索処理の詳細については後述する。
【００６９】
連字シーケンスマップ生成部１６０４は、先頭からｓ番目の文字位置ごとに、先頭連字シーケンスマップＭｈｓ，ｒを生成する機能を有する。具体的には、たとえば、図９に示した手法により、先頭連字シーケンスマップＭｈｓ，ｒを生成する。また、連字シーケンスマップ生成部１６０４は、末尾からｔ番目の文字位置ごとに、末尾連字シーケンスマップＭｅｔ，ｒを生成する機能を有する。具体的には、たとえば、図１０に示した手法により、末尾連字シーケンスマップＭｅｔ，ｒを生成する。
【００７０】
抽出連字変換部１６０５は、連字抽出部１６０２により抽出された連字の文字コード列を変換する機能を有する。この変換処理を共通化処理と呼ぶ。具体的には、抽出連字が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する。たとえば、デフォルトを半角と設定した場合、半角の英数字列が読み込まれてきた場合には、そのまま連字シーケンスマップ生成部１６０４に渡す。一方、全角の英数字列が読み込まれてきた場合には、半角の同一英数字列の文字コード列に変換する。これにより、英数字の文字種を半角または全角のいずれか一方（デフォルトの方）に共通化されるため、英数字列の連字数を半分にすることができ、連字シーケンスマップ群Ｍｈｅのサイズの縮小化を図ることができる。
【００７１】
また、抽出連字変換部１６０５は、抽出連字が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する機能を有する。この変換処理を清字処理と呼ぶ。たとえば、『なすび』というかな連字が読み込まれてきた場合には、『なすひ』の文字コード列に変換する。同様に、『パケット』というカタカナ連字が読み込まれてきた場合には、『ハケツト』の文字コード列に変換する。このような清字処理を施すことにより、仮名（かなまたはカタカナ）の連字数が抑制されるため、連字シーケンスマップ群Ｍｈｅのサイズの縮小化を図ることができる。
【００７２】
また、抽出連字変換部１６０５は、抽出連字を当該連字の文字コード列よりも短いコードに変換する機能を有する。具体的には、ＪＩＳの区点コードに着目する。たとえば、連字が仮名漢字文字列である場合、仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換する。たとえば、『山川』という連字は、『山』という単字の区点コード“２７１９”と『川』という単字の区点コード“３２７８”からなるコード列となる。これを、各単字の点コードを連結したコード列に変換する。たとえば、『山川』の場合、単字『山』の点コード“１９”と単字『川』の点コード“７８”を連結する。これにより、連結コード“１９７８”が連字『山川』のコードとなる。
【００７３】
漢字の文字種は５０００〜８０００種である。漢字２文字の連字マップのサイズは、漢字一文字の単字マップＭ１の２乗であり、５０００〜８０００倍となり、膨大なためキャッシュメモリでの常駐化が困難となる。そこで、上述したように点コードを連結したコードにより、連字シーケンスマップ群Ｍｈｅを作成する。また、連字シーケンスマップ群Ｍｈｅのマップサイズも９４種×９４種＝８８３６種となり、妥当なサイズに納めることができる。
【００７４】
また、抽出連字変換部１６０５は、連字が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、仮名漢字文字列等の文字コード列から得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第１の変換コード（バイト演算処理による変換コード）と、仮名漢字文字列等の文字コード列から得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第２の変換コード（デジット演算処理による変換コード）と、に変換する。
【００７５】
また、連字が英数字列または仮名文字列（以下、「英数字列等」という）である場合、英数字列等の文字コード列から得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第１の変換コード（バイト演算処理による変換コード）と、英数字列等の文字コード列から得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第２の変換コード（デジット演算処理による変換コード）と、に変換する。これらの変換内容については後述する。
【００７６】
また、マップ群抽出部１６０６は、所定のサイクリック数ｃが設定された場合、生成部によって生成された先頭連字シーケンスマップ群Ｍｈのうち、（ｓ＋ｋｃ）番目（ｋは非負整数）の文字位置の連字シーケンスマップ群Ｍｈを抽出する機能を有する。具体的には、たとえば、連字の文字数ｒをｒ＝２としサイクリック数ｃをｃ＝３とした場合、文字位置ｓ＝１のときは、先頭連字シーケンスマップＭｈ１，２、Ｍｈ４，２、Ｍｈ７，２、…のマップ群が抽出される。
【００７７】
同様に、文字位置ｓ＝２のときは、先頭連字シーケンスマップＭｈ２，２、Ｍｈ５，２、Ｍｈ８，２、…、Ｍｈ（２＋３ｋ），２、のマップ群が抽出される。また同様に、文字位置ｓ＝２のときは、先頭連字シーケンスマップＭｈ２，２、Ｍｈ５，２、Ｍｈ８，２、…のマップ群が抽出される。
【００７８】
また、マップ群抽出部１６０６は、所定のサイクリック数ｃが設定された場合、生成部によって生成された末尾連字シーケンスマップ群のうち、（ｔ＋ｋｃ）番目（ｋは非負整数）の文字位置の連字シーケンスマップ群を抽出する機能を有する。具体的には、たとえば、連字の文字数ｒをｒ＝２としサイクリック数ｃをｃ＝３とした場合、文字位置ｔ＝１のときは、末尾連字シーケンスマップＭｅ１，２、Ｍｅ４，２、Ｍｅ７，２、…のマップ群が抽出される。
【００７９】
同様に、文字位置ｔ＝２のときは、末尾連字シーケンスマップＭｅ２，２、Ｍｅ５，２、Ｍｅ８，２、…、Ｍｅ（２＋３ｋ），２、のマップ群が抽出される。また同様に、文字位置ｔ＝２のときは、末尾連字シーケンスマップＭｅ２，２、Ｍｅ５，２、Ｍｅ８，２、…のマップ群が抽出される。
【００８０】
統合部１６０７は、マップ群抽出部１６０６により抽出されたマップ群を統合して、単一の連字シーケンスマップを生成する。具体的には、マップ群抽出部１６０６によって抽出された（ｓ＋ｋｃ）番目の文字位置の連字シーケンスマップ群の中の同一連字でかつ同一ファイルで特定されるフラグの論理積を算出することにより、（ｓ＋ｋｃ）番目の文字位置の連字シーケンスマップ群を単一の連字シーケンスマップに統合する。
【００８１】
図１７は、統合部１６０７による統合処理を示す説明図である。図１７では、連字の文字数ｒをｒ＝２としサイクリック数ｃをｃ＝３としている。（Ａ）は、文字位置ｓ＝１のときの先頭連字シーケンスマップＭｈ１，２、Ｍｈ４，２、Ｍｈ７，２からなるマップ群の統合処理を示している。すなわち、同一連字のフラグ列の論理和を算出することで、統合された先頭連字シーケンスマップＭｈ（１＋ｋｃ），２を生成することができる。
【００８２】
（Ｂ）は、文字位置ｓ＝２のときの先頭連字シーケンスマップＭｈ２，２、Ｍｈ５，２、Ｍｈ８，２からなるマップ群の統合処理を示している。すなわち、同一連字のフラグ列の論理和を算出することで、統合された先頭連字シーケンスマップＭｈ（２＋ｋｃ），２を生成することができる。
【００８３】
（Ｃ）は、文字位置ｓ＝３のときの先頭連字シーケンスマップＭｈ３，２、Ｍｈ６，２、Ｍｈ９，２からなるマップ群の統合処理を示している。すなわち、同一連字のフラグ列の論理和を算出することで、統合された先頭連字シーケンスマップＭｈ（３＋ｋｃ），２を生成することができる。
【００８４】
このように、（Ａ）〜（Ｃ）において、それぞれのマップ群を単一の先頭連字シーケンスマップＭｈ（ｓ＋ｋｃ），ｒとすることで、マップサイズの縮小化を図ることができる。（Ａ）〜（Ｃ）の９枚の先頭連字シーケンスマップＭｈ１，２〜Ｍｈ９，２が統合部１６０７により３枚のマップＭｈ（１＋ｋｃ），２〜Ｍｈ（３＋ｋｃ），ｃに縮小化することができる。なお、末尾連字シーケンスマップＭｅｔ，ｒについても同様である。
【００８５】
（見出し語検索部１６０３による見出し語検索処理）
図１８は、図１６に示した見出し語検索部１６０３による見出し語検索処理を示す説明図である。英語などは、各単語が空白（スペース）で区切られており、たとえば、『ｂｅａｕｔｉｆｕｌ』の検索について、容易に、前方、後方、および完全一致の全文検索を行うことができる。一方、日本語の各単語は、空白（スペース）で区切られていない。また、たとえば、『国際通貨基金』のように『国際』や『通貨』、『基金』などの複数の文節（単語）で構成されている。このため、『国際通貨基金』を『通貨』で検索しても、『通貨』の単語でフラグ列が作成されない場合がある。
【００８６】
したがって、複数の文節（単語）で構成されている単語の場合、各文節（単語）を抽出することで、単語の網羅性の向上を図る。この処理は、単語抽出部１６０１による抽出単語が複文節である場合、その中から見出し語と一致する単語を切り出して、連字抽出部１６０２による抽出対象とする。ここでは、例として抽出単語を『国際通貨基金』とする。
【００８７】
（Ａ）において、『国際通貨基金』という単語には、５つの連字がある。この５つの連字のうち見出し語検索により見出し語と一致する連字は、『国際』、『国際通貨』、および『国際通貨基金』の３つである。そして、抽出単語である『国際通貨基金』を一文字シフトして先頭の『国』を欠落させて、『際通貨基金』とする。
【００８８】
（Ｂ）において、このシフト後の『際通貨基金』という単語には、４つの連字がある。この４つの連字のうち見出し語検索により見出し語と一致する連字はない。そして、見出し語検索元である『際通貨基金』を一文字シフトして先頭の『際』を欠落させて、『通貨基金』とする。
【００８９】
（Ｃ）において、『通貨基金』という単語には、３つの連字がある。この３つの連字のうち見出し語検索により見出し語と一致する連字は、『通貨』のみである。そして、見出し語検索元である『通貨基金』を一文字シフトして先頭の『通』を欠落させて、『貨基金』とする。
【００９０】
（Ｄ）において、『貨基金』という単語には、２つの連字がある。この２つの連字のうち見出し語検索により見出し語と一致する連字はない。そして、見出し語検索元である『貨基金』を一文字シフトして先頭の『貨』を欠落させて、『基金』とする。
【００９１】
（Ｅ）において、『基金』という単語には、１つの連字がある。この連字は、見出し語検索により見出し語と一致する。このように、抽出単語『国際通貨基金』のほか、（Ａ）〜（Ｅ）において見出し語検索により一致した連字『国際』、『国際通貨』、『通貨』、『基金』をあらたに抽出単語として加えて、連字抽出部１６０２による連字抽出元とする。これにより、連字シーケンスマップにおける見出し語と一致する単語の網羅性を高めることができる。
【００９２】
（抽出連字変換部１６０５による仮名漢字文字列等のコード変換処理）
図１９は、図１６に示した抽出連字変換部１６０５による仮名漢字文字列等のコード変換処理を示す説明図である。図１９において、（Ａ）は、バイト演算処理と呼ばれるコード変換処理であり、（Ｂ）は、デジット演算処理と呼ばれるコード変換処理である。図１９では、漢字の連字『山川』を例に挙げて説明する。
【００９３】
まず、（Ａ）のバイト演算処理について説明する。バイト演算処理では、『山』の文字コード“０ｘ５Ｃ７１”を上位バイト“５Ｃ”と下位バイト“７１”に分ける。同様に、『川』の文字コード“０ｘ５ＤＤＤ”を上位バイト“５Ｄ”と下位バイト“ＤＤ”に分ける。そして、各文字の上位バイト“５Ｃ”と“５Ｄ”とを連結して上位連結コード“０ｘ５Ｃ５Ｄ”を生成する。同様に、各文字の下位バイト“７１”および“ＤＤ”とを連結して下位連結コード“０ｘ７１ＤＤ”を生成する。
【００９４】
つぎに、上位連結コード“０ｘ５Ｃ５Ｄ”と下位連結コード“０ｘ７１ＤＤ”とを、上位連結コード、下位連結コードの順に連結することで、上位・下位連結コード“０ｘ５Ｃ５Ｄ７１ＤＤ”を生成する。また、上位連結コード“０ｘ５Ｃ５Ｄ”と下位連結コード“０ｘ７１ＤＤ”とを、下位連結コード、上位連結コードの順に連結することで、下位・上位連結コード“０ｘ７１ＤＤ５Ｃ５Ｄ”を生成する。
【００９５】
そして、上位・下位連結コード“０ｘ５Ｃ５Ｄ７１ＤＤ”と下位・上位連結コード“０ｘ７１ＤＤ５Ｃ５Ｄ”を同一の関数に与える。具体的には、同一の値７９（０ｘ４Ｆ）で除算してそれぞれ除数“０ｘ４４”と“０ｘ０Ｄ”を得る。この除数を連結することで、バイト演算処理による変換コード“０ｘ４４０Ｄ”を得ることができる。
【００９６】
つぎに、（Ｂ）のデジット演算処理について説明する。デジット演算処理では、『山』の文字コード“０ｘ５Ｃ７１”を奇数番目のデジット“５”および“７”と偶数番目のデジット“Ｃ”および“１”に分ける。同様に、『川』の文字コード“０ｘ５ＤＤＤ”を奇数番目のデジット“５”および“Ｄ”と偶数番目のデジット“Ｄ”および“Ｄ”に分ける。そして、各文字の奇数デジット“５７”と“５Ｄ”とを連結して奇数連結コード“０ｘ５７５Ｄ”を生成する。同様に、各文字の偶数デジット“Ｃ１”および“ＤＤ”とを連結して偶数連結コード“０ｘＣ１ＤＤ”を生成する。
【００９７】
つぎに、奇数連結コード“０ｘ５７５Ｄ”と偶数連結コード“０ｘＣ１ＤＤ”とを、奇数連結コード、偶数連結コードの順に連結することで、奇数・偶数連結コード“０ｘ５７５ＤＣ１ＤＤ”を生成する。また、奇数連結コード“０ｘ５７５Ｄ”と偶数連結コード“０ｘＣ１ＤＤ”とを、偶数連結コード、奇数連結コードの順に連結することで、偶数・奇数連結コード“０ｘＣ１ＤＤ５７５Ｄ”を生成する。
【００９８】
そして、奇数・偶数連結コード“０ｘ５７５ＤＣ１ＤＤ”と偶数・奇数連結コード“０ｘＣ１ＤＤ５７５Ｄ”を同一の関数に与える。具体的には、同一の値７９（０ｘ４Ｆ）で除算してそれぞれ除数“０ｘ２Ｄ”と“０ｘ３Ｅ”を得る。この除数を連結することで、デジット演算処理による変換コード“０ｘ２Ｄ３Ｅ”を得ることができる。
【００９９】
図２０は、図１９で得られた変換コードの先頭連字シーケンスマップＭｈｓ，２でのエントリ例を示す説明図である。この字の連字『山川』については、バイト演算処理による変換コード“０ｘ４４０Ｄ”とデジット演算処理による変換コード“０ｘ２Ｄ３Ｅ”についてそれぞれフラグ列が設定される。
【０１００】
このように、余数の組合せた値でコード変換するため、異なる連字でも同一変換コードとなる可能性がある。このため、コード変換を２種類おこなって、１つの外国文字について２つの変換コードのフラグ列を生成する。検索時には、このフラグ列の論理積演算（たすきがけ）をおこなうことで、仮名漢字文字列等を正確に絞り込むことができる。
【０１０１】
（抽出連字変換部１６０５による英数字列等のコード変換処理）
図２１は、図１６に示した抽出連字変換部１６０５による英数字列等のコード変換処理を示す説明図である。図２１において、（Ａ）は、バイト演算処理と呼ばれるコード変換処理であり、（Ｂ）は、デジット演算処理と呼ばれるコード変換処理である。図２１では、３文字のかな連字『なすび』を例に挙げて説明する。
【０１０２】
まず、（Ａ）のバイト演算処理について説明する。バイト演算処理では、『な』の文字コード“０ｘ３０６Ａ”を上位バイト“３０”と下位バイト“６Ａ”に分ける。同様に、『す』の文字コード“０ｘ３０５９”を上位バイト“３０”と下位バイト“５９”に分ける。また同様に、『び』の文字コード“０ｘ３０７３”を上位バイト“３０”と下位バイト“７３”に分ける。
【０１０３】
そして、各文字の上位バイト“３０”、“３０”、および“３０”を連結して上位連結コード“０ｘ３０３０３０”を生成する。同様に、各文字の下位バイト“６Ａ”、“５９”および“７３”を連結して下位連結コード“０ｘ６Ａ５９７３”を生成する。
【０１０４】
つぎに、上位連結コード“０ｘ３０３０３０”と下位連結コード“０ｘ６Ａ５９７３”とを、上位連結コード、下位連結コードの順に連結することで、上位・下位連結コード“０ｘ３０３０３０６Ａ５９７３”を生成する。また、上位連結コード“０ｘ３０３０３０”と下位連結コード“０ｘ６Ａ５９７３”とを、下位連結コード、上位連結コードの順に連結することで、下位・上位連結コード“０ｘ６Ａ５９７３３０３０３０”を生成する。
【０１０５】
そして、上位・下位連結コード“０ｘ３０３０３０６Ａ５９７３”と下位・上位連結コード“０ｘ６Ａ５９７３３０３０３０”を同一の関数に与える。具体的には、同一の値４７（０ｘ２Ｆ）で除算してそれぞれ除数“０ｘ１Ａ”と“０ｘ０Ａ”を得る。この除数を連結することで、バイト演算処理による変換コード“０ｘ１Ａ０Ａ”を得ることができる。
【０１０６】
つぎに、（Ｂ）のデジット演算処理について説明する。デジット演算処理では、『な』の文字コード“０ｘ３０６Ａ”を奇数番目のデジット“３”および“６”と偶数番目のデジット“０”および“Ａ”に分ける。同様に、『す』の文字コード“０ｘ３０５９”を奇数番目のデジット“３”および“５”と偶数番目のデジット“０”および“９”に分ける。また同様に、『び』の文字コード“０ｘ３０７３”を奇数番目のデジット“３”および“７”と偶数番目のデジット“０”および“３”に分ける。
【０１０７】
そして、各文字の奇数デジット“３６”、“３５”、および“３７”を連結して奇数連結コード“０ｘ３６３５３７”を生成する。同様に、各文字の偶数デジット“０Ａ”、“０９”および“０３”を連結して偶数連結コード“０ｘ０Ａ０９０３”を生成する。
【０１０８】
つぎに、奇数連結コード“０ｘ３６３５３７”と偶数連結コード“０ｘ０Ａ０９０３”とを、奇数連結コード、偶数連結コードの順に連結することで、奇数・偶数連結コード“０ｘ３６３５３７０Ａ０９０３”を生成する。また、奇数連結コード“０ｘ３６３５３７”と偶数連結コード“０ｘ０Ａ０９０３”とを、偶数連結コード、奇数連結コードの順に連結することで、偶数・奇数連結コード“０ｘ０Ａ０９０３３６３５３７”を生成する。
【０１０９】
そして、奇数・偶数連結コード“０ｘ３６３５３７０Ａ０９０３”と偶数・奇数連結コード“０ｘ０Ａ０９０３３６３５３７”を同一の関数に与える。具体的には、同一の値４７（０ｘ２Ｆ）で除算してそれぞれ除数“０ｘ０５”と“０ｘ３１”を得る。この除数を連結することで、デジット演算処理による変換コード“０ｘ０５３１”を得ることができる。
【０１１０】
図２２は、図２１で得られた変換コードの先頭連字シーケンスマップＭｈｓ，３でのエントリ例を示す説明図である。この字の連字『なすび』については、バイト演算処理による変換コード“０ｘ１Ａ０Ａ”とデジット演算処理による変換コード“０ｘ０５３１”についてそれぞれフラグ列が設定される。
【０１１１】
このように、余数の組合せた値でコード変換するため、異なる連字でも同一変換コードとなる可能性がある。このため、コード変換を２種類おこなって、１つの外国文字について２つの変換コードのフラグ列を生成する。検索時には、このフラグ列の論理積演算（たすきがけ）をおこなうことで、英数字列等を正確に絞り込むことができる。
【０１１２】
（情報検索装置２０２の機能的構成１）
図２３は、情報検索装置２０２の機能的構成１を示すブロック図である。図２３では、検索に先立って単字マップＭ１を用いてファイルの絞込みとその後の検索をおこなう機能について説明する。図２３において、情報検索装置２０２は、入力部２３０１と、判断部２３０２と、検索単字抽出部２３０３と、検索文字列変換部２３０４と、フラグ列抽出部２３０５と、絞込み処理部２３０６と、検索部２３０７と、出力部２３０８と、から構成されている。各機能は、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記憶領域に記憶されたプログラムをＣＰＵ１０１に実行させることにより、またはＩ／Ｆ１０９によりその機能を実現する。
【０１１３】
入力部２３０１は、検索文字列と検索条件の入力を受け付ける機能を有する。ここで、検索条件とは、前方一致、後方一致、完全一致、および部分一致である。単字マップＭ１を用いる場合には、部分一致によりファイルを絞り込む。
【０１１４】
判断部２３０２は、検索条件が部分一致であるか否かを判断する機能を有する。部分一致であればフラグ列抽出部２３０５によるフラグ列の抽出をおこなう。一方、部分一致ではない場合、前方一致、後方一致または完全一致のいずれかであるため、後述する。
【０１１５】
検索単字抽出部２３０３は、検索文字列の先頭から順次、一文字ずつ抽出する機能を有する。たとえば、検索文字列が『織田信長』である場合、『織』、『田』、『信』、『長』を検索単字として抽出する。
【０１１６】
フラグ列抽出部２３０５は、判断部２３０２により検索条件が部分一致であると判断された場合、単字マップＭ１における検索単字のエントリからそのフラグ列を抽出する機能を有する。検索単字が『織』、『田』、『信』、『長』である場合、それぞれのフラグ列を抽出する。
【０１１７】
検索文字列変換部２３０４は、検索文字列がアルファベットを除く外国文字を含む場合、当該外国文字の文字コードから得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第１の変換コードと、外国文字の文字コードから得られる２つのコード列を所定コードで除算する関数に与えたときに得られる各除数を連結した第２の変換コードと、に変換する機能を有する。
【０１１８】
具体的には、たとえば、図１３に示した外国文字変換部１３０３と同じバイト演算処理とデジット演算処理を実行する。これにより、外国文字を図１４に示したようにバイト演算処理による変換コードとデジット演算処理による変換コードを生成することができる。この場合、フラグ列抽出部２３０５は、単字マップＭ１から、バイト演算処理による変換コードのフラグ列とデジット演算処理による変換コードのフラグ列を抽出することとなる。
【０１１９】
絞込み処理部２３０６は、単字マップＭ１を参照して検索単字抽出部２３０３から抽出された単字がすべて存在するファイルを絞り込む機能を有する。具体的には、フラグ列抽出部２３０５により抽出された各単字のフラグ列の論理積演算をおこなうことにより、検索単字抽出部２３０３から抽出された単字がすべて存在するファイルを絞り込む。
【０１２０】
また、単字が外国文字である場合、その単字に対して変換コードが２種類存在するため、他の単字との論理積演算の前に、その単字の２つの変換コードのフラグ列による論理積演算をおこなう。この論理積演算結果が外国文字のフラグ列となる。図１５に示した韓国文字では、ファイルｆｉに存在することとなる。
【０１２１】
検索部２３０７は、絞込み処理部２３０６により絞り込まれたファイルの中から検索文字列と一致または関連する文字列を検索する機能を有する。また、出力部２３０８は、検索部２３０７により検索された検索結果を出力する機能を有する。具体的には、たとえば、検索結果となる見出し語や全文検索による該当箇所をディスプレイに表示する。なお出力形式は、ディスプレイへの表示のほか、外部装置への送信、印刷出力、音声読み上げ、内部の記憶領域への保存などがある。
【０１２２】
（情報検索装置２０２の機能的構成２）
図２４は、情報検索装置２０２の機能的構成２を示すブロック図である。図２４では、検索に先立って連字シーケンスマップ群Ｍｈｅを用いてファイルの絞込みとその後の検索をおこなう機能について説明する。なお、図２３に示した機能と同一機能については同一符号を付し、その説明を省略する。
【０１２３】
図２４において、情報検索装置２０２は、入力部２３０１と、判断部２３０２と、検索対象連字抽出部２４０３と、検索文字列変換部２４０４と、フラグ列抽出部２４０５と、絞込み処理部２４０６と、検索部２３０７と、出力部２３０８と、計数部２４０７と、格納部２４０８と、から構成されている。各機能は、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記憶領域に記憶されたプログラムをＣＰＵ１０１に実行させることにより、またはＩ／Ｆ１０９によりその機能を実現する。
【０１２４】
検索対象連字抽出部２４０３は、検索条件が前方一致である場合、検索文字列の中から、当該検索文字列の先頭からｗ番目（１≦ｗ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置（ｗ＋ｒ−１）までの検索対象連字を抽出する機能を有する。たとえば、ｒ＝２とすると、検索文字列『ｂｅａｕｔｉｆｕｌ』が入力されると、『ｂｅａｕｔｉｆｕｌ』の先頭からｓ番目の各連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”を抽出する。
【０１２５】
一方、検索条件が後方一致である場合、検索文字列の中から、当該検索文字列の末尾からｘ番目（１≦ｘ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置（ｘ＋ｒ−１）までの検索対象連字を抽出する機能を有する。たとえば、ｒ＝２とすると、検索文字列『ｂｅａｕｔｉｆｕｌ』が入力されると、末尾からｘ番目の各連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”を抽出する。完全一致の場合には、先頭からｗ番目の各連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”と、末尾からｘ番目の各連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”とを抽出する。
【０１２６】
検索文字列変換部２４０４は、図１６の抽出連字変換部１６０５の変換ルールにしたがって、検索文字列の文字コード列を変換する。具体的には、検索文字列が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する。たとえば、デフォルトを半角と設定した場合、半角の英数字列が読み込まれてきた場合には、そのままフラグ列抽出部２４０５に渡す。一方、全角の英数字列が読み込まれてきた場合には、半角の同一英数字列の文字コード列に変換する。
【０１２７】
また、検索文字列が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する。たとえば、『なすび』というかな連字が読み込まれてきた場合には、『なすひ』の文字コード列に変換する。同様に、『パケット』というカタカナ連字が読み込まれてきた場合には、『ハケツト』の文字コード列に変換する。
【０１２８】
また、検索文字列が仮名漢字文字列である場合、仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換する。たとえば、『山川』という検索文字列は、『山』という単字の区点コード“２７１９”と『川』という単字の区点コード“３２７８”からなるコード列となる。これを、各単字の点コードを連結したコード列に変換する。たとえば、『山川』の場合、単字『山』の点コード“１９”と単字『川』の点コード“７８”を連結する。これにより、連結コード“１９７８”が連字『山川』のコードとなる。
【０１２９】
また、検索文字列変換部２４０４は、連字が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、図１９に示したように、バイト演算処理による変換コードとデジット演算処理による変換コードとに変換する。同様に、英数字列または仮名文字列（以下、「英数字列等」という）である場合、図２１に示したように、バイト演算処理による変換コードと、デジット演算処理による変換コードとに変換する。
【０１３０】
フラグ列抽出部２４０５は、同一連字でかつ同一文字位置の連字のエントリ内のフラグ列を、対応する連字シーケンスマップ群から抽出する機能を有する。具体的には、先頭ｗ文字目から始まる連字については、先頭連字シーケンスマップＭｈｓ，ｒ（ただし、ｓ＝ｗ）の中の同一連字のエントリ内のフラグ列を抽出する。同様に、末尾ｘ文字目から始まる連字については、末尾連字シーケンスマップＭｅｔ，ｒ（ただし、ｔ＝ｘ）の中の同一連字のエントリ内のフラグ列を抽出する。
【０１３１】
絞込み処理部２４０６は、フラグ列抽出部２４０５により抽出されたフラグ列の論理積演算をおこなうことにより、検索文字列が含まれているファイルを絞り込む機能を有する。具体的には、図１１に示したように、前方一致の場合、先頭からｓ番目の各連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”の各フラグ列の論理積演算をおこなう。この論理積演算により、フラグが“１”であるファイルが、先頭からの文字列が“ｂｅａｕｔｉｆｕｌ”である単語を含むファイルとなる。
【０１３２】
後方一致の場合、末尾からｔ番目の各連字“ｌｕ”，“ｕｆ”，“ｆｉ”，“ｉｔ”，“ｔｕ”，“ｕａ”，“ａｅ”，“ｅｂ”の各フラグ列の論理積演算をおこなう。この論理積演算により、フラグが“１”であるファイルが、末尾からの文字列が“ｌｕｆｉｔｕａｅｂ”である単語を含むファイルとなる。
【０１３３】
また、完全一致検索をおこなうときの絞込みをおこなう場合、図１１に示した論理積演算の結果と、図１２に示した論理積演算の結果とを、さらに論理積演算することにより、フラグが“１”であるファイルが、先頭からの文字列が“ｂｅａｕｔｉｆｕｌ”である単語を含み、かつ、末尾からの文字列が“ｌｕｆｉｔｕａｅｂ”である単語を含むファイルとなる。
【０１３４】
計数部２４０７は、連字シーケンスマップの参照回数を計数する機能を有する。図２５は、連字シーケンスマップごとの参照回数の計数結果を示す説明図である。図２５において、参照回数は、１回参照される都度、１加算される。たとえば、先頭からｓ番目の各連字“ｂｅ”，“ｅａ”，“ａｕ”，“ｕｔ”，“ｔｉ”，“ｉｆ”，“ｆｕ”，“ｕｌ”が与えられた場合、フラグ列抽出部２４０５では、各連字が存在する先頭連字シーケンスマップＭｈ１，２〜Ｍｈ８，２の参照回数を１加算する。
【０１３５】
格納部２４０８は、参照回数に基づいて一部の連字シーケンスマップを検索処理に先立ってキャッシュメモリに格納させる機能を有する。格納の基準としては、所定回数以上でもよく、参照回数が上位ｘ番目までの連字シーケンスマップＭｈｅをキャッシュに書き込む。このように、アクセス回数が多いマップを優先的にキャッシュメモリに書き込んでおくことにより、高速処理を実現することができる。
【０１３６】
（検索システム２００の全体処理）
図２６は、検索システム２００の全体処理手順を示すフローチャートである。図２６において、まず、マップ生成装置２０１によりマップ生成処理を実行する（ステップＳ２６０１）。その後、初期化処理（ステップＳ２６０２）、入力処理（ステップＳ２６０３）、ファイル絞込み処理（ステップＳ２６０４）、検索実行処理（ステップＳ２６０５）、および出力処理（ステップＳ２６０６）を実行する。以下、各処理について説明する。
【０１３７】
（マップ生成処理）
図２７は、マップ生成処理（ステップＳ２６０１）の詳細な処理手順を示すフローチャートである。まず、連字の文字数ｒをｒ＝１とし（ステップＳ２７０１）、最大連字数Ｒを設定する（ステップＳ２７０２）。以降、文字数ｒの連字を「ｒ連字」と称す。そして、ｒ＝１であるか否かを判断する（ステップＳ２７０３）。ｒ＝１である場合（ステップＳ２７０３：Ｙｅｓ）、単字マップＭ１生成処理を実行して（ステップＳ２７０４）、ステップＳ２７０６に移行する。
【０１３８】
一方、ｒ＝１でない場合（ステップＳ２７０３：Ｎｏ）、ｒ連字の連字シーケンスマップ生成処理を実行して（ステップＳ２７０５）、ステップＳ２７０６に移行する。ステップＳ２７０６では、連字の文字数ｒをインクリメントし（ステップＳ２７０６）、ｒ＞Ｒであるか否かを判断する（ステップＳ２７０７）。このあと、ｒ＞Ｒでない場合（ステップＳ２７０７：Ｎｏ）、ステップＳ２７０３に戻る。一方、ｒ＞Ｒである場合（ステップＳ２７０７：Ｙｅｓ）、初期化処理（ステップＳ２６０２）に移行する。
【０１３９】
（単字マップ生成処理）
図２８は、単字マップ生成処理（ステップＳ２７０４）の詳細な処理手順を示すフローチャートである。まず、ファイルＩＤ：ｉをｉ＝０とし（ステップＳ２８０１）、ファイルｆｉから先頭文字を取り出す（ステップＳ２８０２）。そして、単字登録処理を実行する（ステップＳ２８０３）。そして、ファイルｆｉに後続文字があるか否かを判断する（ステップＳ２８０４）。後続文字がある場合（ステップＳ２８０４：Ｙｅｓ）、１文字シフトしてシフト後の該当文字を取り出し（ステップＳ２８０５）、ステップＳ２８０３に戻る。
【０１４０】
一方、後続文字がない場合（ステップＳ２８０４：Ｎｏ）、ファイルＩＤ：ｉをインクリメントして（ステップＳ２８０６）、ｉ＞ｎであるか否かを判断する（ステップＳ２８０７）。ｉ＞ｎでない場合（ステップＳ２８０７：Ｎｏ）、ステップＳ２８０２に戻る。一方、ｉ＞ｎである場合（ステップＳ２８０７：Ｙｅｓ）、ステップＳ２７０６に移行する。
【０１４１】
（単字登録処理）
図２９は、単字登録処理（ステップＳ２８０３）の詳細な処理手順を示すフローチャートである。まず、取り出された単字のエントリが単字マップＭ１にあるか否かを判断する（ステップＳ２９０１）。エントリがある場合（ステップＳ２９０１：Ｙｅｓ）、ステップＳ２９０４に移行する。一方、エントリがない場合（ステップＳ２９０１：Ｎｏ）、その単字が外国文字であるか否かを判断する（ステップＳ２９０２）。
【０１４２】
外国文字でない場合（ステップＳ２９０２：Ｎｏ）、その文字コードをエントリとして登録する（ステップＳ２９０３）。このあと、単字マップＭ１においてファイルＩＤ：ｉのフラグが“１”であるか否かを判断する（ステップＳ２９０４）。フラグが“０”である場合（ステップＳ２９０４：Ｎｏ）、フラグを“０”から“１”にする（ステップＳ２９０５）。そして、ステップＳ２８０４に移行する。一方、フラグが“１”である場合（ステップＳ２９０４：Ｙｅｓ）、ステップＳ２８０４に移行する。
【０１４３】
また、ステップＳ２９０２において、外国文字であると判断された場合（ステップＳ２９０２：Ｙｅｓ）、外国文字変換部１３０３により、単一外国文字のバイト演算によるコード変換処理（ステップＳ２９０６）、単一外国文字のデジット演算によるコード変換処理（ステップＳ２９０７）を実行する。そして、外国文字の各変換コードをその外国文字のエントリとして登録して（ステップＳ２９０８）、ステップＳ２８０４に移行する。
【０１４４】
（単一外国文字のバイト演算によるコード変換処理）
図３０は、単一外国文字のバイト演算によるコード変換処理（ステップＳ２９０６）の詳細な処理手順を示すフローチャートである。まず、図１４に示したように、外国文字のコードの上位バイトを２つ連結して、上位連結コードとする（ステップＳ３００１）。
【０１４５】
つぎに、外国文字のコードの下位バイトを２つ連結して、下位連結コードとする（ステップＳ３００２）。つぎに、上位連結コードと下位連結コードを、上位連結コード、下位連結コードの順に連結して、上位・下位連結コードとする（ステップＳ３００３）。また、上位連結コードと下位連結コードを、下位連結コード、上位連結コードの順に連結して、下位・上位連結コードとする（ステップＳ３００４）。
【０１４６】
そして、上位・下位連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ３００５）。また、下位・上位連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ３００６）。この後、取得された除数を連結してバイト演算による変換コードを生成する（ステップＳ３００７）。そして、ステップＳ２９０７に移行する。
【０１４７】
（単一外国文字のデジット演算によるコード変換処理）
図３１は、単一外国文字のデジット演算によるコード変換処理（ステップＳ２９０７）の詳細な処理手順を示すフローチャートである。まず、図１４に示したように、外国文字のコードの先頭から奇数番目のデジットを２つ連結して、奇数連結コードとする（ステップＳ３１０１）。つぎに、外国文字のコードの先頭から偶数番目のデジットを２つ連結して、偶数連結コードとする（ステップＳ３１０２）。
【０１４８】
つぎに、奇数連結コードと偶数連結コードを、奇数連結コード、偶数連結コードの順に連結して、奇数・偶数連結コードとする（ステップＳ３１０３）。また、奇数連結コードと偶数連結コードを、偶数連結コード、奇数連結コードの順に連結して、偶数・奇数連結コードとする（ステップＳ３１０４）。
【０１４９】
そして、奇数・偶数連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ３１０５）。また、偶数・奇数連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ３１０６）。この後、取得された除数を連結してデジット演算による変換コードを生成する（ステップＳ３１０７）。そして、ステップＳ２９０８に移行する。
【０１５０】
（ｒ連字の連字シーケンスマップ生成処理）
図３２および図３３は、ｒ連字の連字シーケンスマップ生成処理（ステップＳ２７０５）の詳細な処理手順を示すフローチャートである。図３２において、まず、ファイルＩＤ：ｉをｉ＝０とし（ステップＳ３２０１）、ファイルｆｉを形態素解析する（ステップＳ３２０２）。そして、先頭からの単語位置ｐをｐ＝１とし（ステップＳ３２０３）、ｐ番目の単語があるか否かを判断する（ステップＳ３２０４）。
【０１５１】
ｐ番目の単語がない場合（ステップＳ３２０４：Ｎｏ）、ファイルＩＤ：ｉをインクリメントして次のファイルｆｉとし（ステップＳ３２０５）、ｉ＞ｎであるか否かを判断する（ステップＳ３２０６）。ｉ＞ｎでない場合（ステップＳ３２０６：Ｎｏ）、ステップＳ３２０２に戻る。一方、ｉ＞ｎである場合（ステップＳ３２０６：Ｙｅｓ）、ステップＳ２７０６に移行する。
【０１５２】
また、ステップＳ３２０４において、ｐ番目の単語がある場合（ステップＳ３２０４：Ｙｅｓ）、図３３のステップＳ３３０１に移行する。ステップＳ３３０１では、ファイルｆｉの中から先頭からｐ番目の単語を抽出する。そして、抽出単語の文字数ｑを取得し（ステップＳ３３０２）、連字抽出部１６０２および連字シーケンスマップ生成部１６０４により、先頭連字シーケンスマップ生成処理（ステップＳ３３０３）と末尾連字シーケンスマップ生成処理（ステップＳ３３０４）を実行する。そして、見出し語検索部１６０３により見出し語検索処理済みであるか否かを判断する（ステップＳ３３０５）。
【０１５３】
見出し語検索処理済みでない場合（ステップＳ３３０５：Ｎｏ）、見出し語検索処理を実行して（ステップＳ３３０６）、ステップＳ３３０７に移行する。一方、見出し語検索処理済みである場合（ステップＳ３３０５：Ｙｅｓ）、ステップＳ３３０７に移行する。ステップＳ３３０７では、図１８に示したように、抽出単語内に見出し語があるか否かを判断する（ステップＳ３３０７）。見出し語がない場合（ステップＳ３３０７：Ｎｏ）、ステップＳ３３１０に移行する。
【０１５４】
一方、見出し語がある場合（ステップＳ３３０７：Ｙｅｓ）、未処理の見出し語があるか否かを判断する（ステップＳ３３０８）。未処理の見出し語がない場合（ステップＳ３３０８：Ｎｏ）、ステップＳ３３１０に移行する。一方、未処理の見出し語がある場合（ステップＳ３３０８：Ｙｅｓ）、未処理の見出し語を抽出単語として取り出して（ステップＳ３３０９）、ステップＳ３３０２に戻る。また、ステップＳ３３１０では、単語位置ｐをインクリメントして、ステップＳ３２０４に移行する。
【０１５５】
（先頭連字シーケンスマップ生成処理）
図３４および図３５は、先頭連字シーケンスマップ生成処理（ステップＳ３３０３）の詳細な処理手順を示すフローチャートである。図３４において、まず、抽出単語の文字数ｑがｑ≧ｒであるか否かを判断する（ステップＳ３４０１）。ｑ≧ｒでない場合（ステップＳ３４０１：Ｎｏ）、単字またはすでにエントリ済みの連字となるため、末尾連字シーケンスマップ生成処理（ステップＳ３３０４）に移行する。
【０１５６】
一方、ｑ≧ｒである場合（ステップＳ３４０１：Ｙｅｓ）、抽出単語の先頭からの文字位置ｓをｓ＝１とし（ステップＳ３４０２）、ｓ＋ｒ−１番目の文字が抽出単語にあるか否かを判断する（ステップＳ３４０３）。ｓ＋ｒ−１番目の文字がない場合（ステップＳ３４０３：Ｎｏ）、その抽出単語から連字を取り出せないため、末尾連字シーケンスマップ生成処理（ステップＳ３３０４）に移行する。
【０１５７】
一方、ｓ＋ｒ−１番目の文字がある場合（ステップＳ３４０３：Ｙｅｓ）、抽出単語の文字位置ｓからのｒ連字を抽出する（ステップＳ３４０４）。そして、この抽出ｒ連字が英数字列か否かを判断する（ステップＳ３４０５）。英数字列でない場合（ステップＳ３４０５：Ｎｏ）、ステップＳ３４０７に移行する。
【０１５８】
一方、英数字列である場合（ステップＳ３４０５：Ｙｅｓ）、抽出連字変換部１６０５により共通化処理を実行する（ステップＳ３４０６）。このあと、抽出ｒ連字が仮名文字列であるか否かを判断する（ステップＳ３４０７）。仮名文字列でない場合（ステップＳ３４０７：Ｎｏ）、図３５のステップＳ３５０１に移行する。また、抽出ｒ連字が仮名文字列である場合（ステップＳ３４０７：Ｙｅｓ）、抽出連字変換部１６０５により清字処理を実行して（ステップＳ３４０８）、図３５のステップＳ３５０１に移行する。
【０１５９】
また、図３５において、先頭連字シーケンスマップＭｈｓ，ｒに抽出ｒ連字のエントリがあるか否かを判断する（ステップＳ３５０１）。すでにエントリがある場合（ステップＳ３５０１：Ｙｅｓ）、ステップＳ３５０３に移行する。一方、エントリがない場合（ステップＳ３５０１：Ｎｏ）、先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理を実行して（ステップＳ３５０２）、ステップＳ３５０３に移行する。
【０１６０】
そして、先頭連字シーケンスマップＭｈｓ，ｒにおいて抽出ｒ連字のファイルｆｉのフラグが“１”であるか否かを判断する（ステップＳ３５０３）。“１”である場合（ステップＳ３５０３：Ｙｅｓ）、ステップＳ３５０５に移行する。一方、“０”である場合（ステップＳ３５０３：Ｎｏ）、そのフラグを“０”→“１”にして（ステップＳ３５０４）、先頭からの文字位置ｓをインクリメントし（ステップＳ３５０５）、ステップＳ３４０３に移行する。
【０１６１】
（先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理１）
図３６は、先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理１（ステップＳ３５０２）の詳細な処理手順を示すフローチャートである。この処理手順１は、抽出ｒ連字の文字コードがＪＩＳの区点コードである場合に適用される。
【０１６２】
まず、抽出ｒ連字の各文字の区点コードのうち点コードを抽出する（ステップＳ３６０１）。そして、各点コードを連字順に連結し、連結点コードとする（ステップＳ３６０２）、先頭連字シーケンスマップＭｈｓ，ｒに抽出ｒ連字の連結点コードのエントリを登録する（ステップＳ３６０３）。そして、ステップＳ３５０３に移行する。
【０１６３】
（先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理２）
図３７は、先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理２（ステップＳ３５０２）の詳細な処理手順を示すフローチャートである。この処理手順２は、抽出ｒ連字の文字コードがＵＮＩコードである場合に適用される。
【０１６４】
まず、抽出ｒ連字が仮名漢字文字列等であるか否かを判断する（ステップＳ３７０１）。仮名漢字列等である場合（ステップＳ３７０１：Ｙｅｓ）、連字の文字数ｒがｒ＝２であるか否かを判断する（ステップＳ３７０２）。ｒ＝２でない場合（ステップＳ３７０２：Ｎｏ）、先頭連字シーケンスマップＭｈｓ，ｒに抽出ｒ連字のエントリを登録する（ステップＳ３７０３）。そして、ステップＳ３５０３に移行する。
【０１６５】
一方、ステップＳ３７０２において、ｒ＝２である場合（ステップＳ３７０２：Ｙｅｓ）、図１９に示したように、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ３７０４）と仮名漢字列等のデジット演算によるコード変換処理（ステップＳ３７０５）とを実行する。そして、図２０に示したように、先頭連字シーケンスマップＭｈｓ，ｒに、各コード化された抽出ｒ連字のエントリを登録して（ステップＳ３７０６）、ステップＳ３５０３に移行する。
【０１６６】
また、ステップＳ３７０１において、抽出ｒ連字が仮名漢字列等でない場合（ステップＳ３７０１：Ｎｏ）、抽出ｒ連字が英数字列等であるか否かを判断する（ステップＳ３７０７）。英数字列等でない場合（ステップＳ３７０７：Ｎｏ）、ステップＳ３５０３に移行する。一方、英数字列等である場合（ステップＳ３７０７：Ｙｅｓ）、連字の文字数ｒがｒ＝３であるか否かを判断する（ステップＳ３７０８）。ｒ＝３でない場合（ステップＳ３７０８：Ｎｏ）、ステップＳ３５０３に移行する。
【０１６７】
一方、ｒ＝３である場合（ステップＳ３７０８：Ｙｅｓ）、図２１に示したように、英数字列等のバイト演算によるコード変換処理（ステップＳ３７０９）と英数字列等のデジット演算によるコード変換処理（ステップＳ３７１０）とを実行する。そして、図２２に示したように、先頭連字シーケンスマップＭｈｓ，ｒに、各コード化された抽出ｒ連字のエントリを登録して（ステップＳ３７１１）、ステップＳ３５０３に移行する。
【０１６８】
（仮名漢字列等のバイト演算によるコード変換処理）
図３８は、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ３７０４）の詳細な処理手順を示すフローチャートである。まず、図１９に示したように、各文字のコードの上位バイトを連字順に連結して、上位連結コードとする（ステップＳ３８０１）。
【０１６９】
つぎに、各文字のコードの下位バイトを連字順に連結して、下位連結コードとする（ステップＳ３８０２）。つぎに、上位連結コードと下位連結コードを、上位連結コード、下位連結コードの順に連結して、上位・下位連結コードとする（ステップＳ３８０３）。また、上位連結コードと下位連結コードを、下位連結コード、上位連結コードの順に連結して、下位・上位連結コードとする（ステップＳ３８０４）。
【０１７０】
そして、上位・下位連結コードを７９（０ｘ４Ｆ）で除算し、除数を取得する（ステップＳ３８０５）。また、下位・上位連結コードを７９（０ｘ４Ｆ）で除算し、除数を取得する（ステップＳ３８０６）。この後、取得された除数を連結してバイト演算による変換コードを生成する（ステップＳ３８０７）。そして、ステップＳ３７０５に移行する。
【０１７１】
（仮名漢字列等のデジット演算によるコード変換処理）
図３９は、仮名漢字列等のデジット演算によるコード変換処理（ステップＳ３７０５）の詳細な処理手順を示すフローチャートである。まず、図１９に示したように、各文字のコードの先頭から奇数番目のデジットを連字順に連結して、奇数連結コードとする（ステップＳ３９０１）。つぎに、各文字のコードの先頭から偶数番目のデジットを連字順に連結して、偶数連結コードとする（ステップＳ３９０２）。
【０１７２】
つぎに、奇数連結コードと偶数連結コードを、奇数連結コード、偶数連結コードの順に連結して、奇数・偶数連結コードとする（ステップＳ３９０３）。また、奇数連結コードと偶数連結コードを、偶数連結コード、奇数連結コードの順に連結して、偶数・奇数連結コードとする（ステップＳ３９０４）。
【０１７３】
そして、奇数・偶数連結コードを７９（０ｘ４Ｆ）で除算し、除数を取得する（ステップＳ３９０５）。また、偶数・奇数連結コードを７９（０ｘ４Ｆ）で除算し、除数を取得する（ステップＳ３９０６）。この後、取得された除数を連結してデジット演算による変換コードを生成する（ステップＳ３９０７）。そして、ステップＳ３７０６に移行する。
【０１７４】
（英数字列等のバイト演算によるコード変換処理）
図４０は、英数字列等のバイト演算によるコード変換処理（ステップＳ３７０９）の詳細な処理手順を示すフローチャートである。まず、図２１に示したように、各文字のコードの上位バイトを連字順に連結して、上位連結コードとする（ステップＳ４００１）。
【０１７５】
つぎに、各文字のコードの下位バイトを連字順に連結して、下位連結コードとする（ステップＳ４００２）。つぎに、上位連結コードと下位連結コードを、上位連結コード、下位連結コードの順に連結して、上位・下位連結コードとする（ステップＳ４００３）。また、上位連結コードと下位連結コードを、下位連結コード、上位連結コードの順に連結して、下位・上位連結コードとする（ステップＳ４００４）。
【０１７６】
そして、上位・下位連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ４００５）。また、下位・上位連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ４００６）。この後、取得された除数を連結してバイト演算による変換コードを生成する（ステップＳ４００７）。そして、ステップＳ３７１０に移行する。
【０１７７】
（英数字列等のデジット演算によるコード変換処理）
図４１は、英数字列等のデジット演算によるコード変換処理（ステップＳ３７１０）の詳細な処理手順を示すフローチャートである。まず、図２１に示したように、各のコードの先頭から奇数番目のデジットを連字順に連結して、奇数連結コードとする（ステップＳ４１０１）。つぎに、各文字のコードの先頭から偶数番目のデジットを連字順に連結して、偶数連結コードとする（ステップＳ４１０２）。
【０１７８】
つぎに、奇数連結コードと偶数連結コードを、奇数連結コード、偶数連結コードの順に連結して、奇数・偶数連結コードとする（ステップＳ４１０３）。また、奇数連結コードと偶数連結コードを、偶数連結コード、奇数連結コードの順に連結して、偶数・奇数連結コードとする（ステップＳ４１０４）。
【０１７９】
そして、奇数・偶数連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ４１０５）。また、偶数・奇数連結コードを４７（０ｘ２Ｆ）で除算し、除数を取得する（ステップＳ４１０６）。この後、取得された除数を連結してデジット演算による変換コードを生成する（ステップＳ４１０７）。そして、ステップＳ３７１１に移行する。
【０１８０】
（末尾連字シーケンスマップ生成処理）
図４２および図４３は、末尾連字シーケンスマップ生成処理（ステップＳ３３０４）の詳細な処理手順を示すフローチャートである。図４２において、まず、抽出単語の文字数ｑがｑ≧ｒであるか否かを判断する（ステップＳ４２０１）。ｑ≧ｒでない場合（ステップＳ４２０１：Ｎｏ）、単字またはすでにエントリ済みの連字となるため、ステップＳ３３０５に移行する。
【０１８１】
一方、ｑ≧ｒである場合（ステップＳ４２０１：Ｙｅｓ）、抽出単語の末尾からの文字位置ｔをｔ＝１とし（ステップＳ４２０２）、ｔ＋ｒ−１番目の文字が抽出単語にあるか否かを判断する（ステップＳ４２０３）。ｔ＋ｒ−１番目の文字がない場合（ステップＳ４２０３：Ｎｏ）、その抽出単語から連字を取り出せないため、ステップＳ３３０５に移行する。
【０１８２】
一方、ｔ＋ｒ−１番目の文字がある場合（ステップＳ４２０３：Ｙｅｓ）、抽出単語の文字位置ｔからのｒ連字を抽出する（ステップＳ４２０４）。そして、この抽出ｒ連字が英数字列か否かを判断する（ステップＳ４２０５）。英数字列でない場合（ステップＳ４２０５：Ｎｏ）、ステップＳ４２０７に移行する。
【０１８３】
一方、英数字列である場合（ステップＳ４２０５：Ｙｅｓ）、抽出連字変換部１６０５により共通化処理を実行する（ステップＳ４２０６）。このあと、抽出ｒ連字が仮名文字列であるか否かを判断する（ステップＳ４２０７）。仮名文字列でない場合（ステップＳ４２０７：Ｎｏ）、図４３のステップＳ４３０１に移行する。また、抽出ｒ連字が仮名文字列である場合（ステップＳ４２０７：Ｙｅｓ）、抽出連字変換部１６０５により清字処理を実行して（ステップＳ４２０８）、図４３のステップＳ４３０１に移行する。
【０１８４】
また、図４３において、末尾連字シーケンスマップＭｅｔ，ｒに抽出ｒ連字のエントリがあるか否かを判断する（ステップＳ４３０１）。すでにエントリがある場合（ステップＳ４３０１：Ｙｅｓ）、ステップＳ４３０３に移行する。一方、エントリがない場合（ステップＳ４３０１：Ｎｏ）、末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理を実行して（ステップＳ４３０２）、ステップＳ４３０３に移行する。
【０１８５】
そして、末尾連字シーケンスマップＭｅｔ，ｒにおいて抽出ｒ連字のファイルｆｉのフラグが“１”であるか否かを判断する（ステップＳ４３０３）。“１”である場合（ステップＳ４３０３：Ｙｅｓ）、ステップＳ４３０５に移行する。一方、“０”である場合（ステップＳ４３０３：Ｎｏ）、そのフラグを“０”→“１”にして（ステップＳ４３０４）、末尾からの文字位置ｔをインクリメントし（ステップＳ４３０５）、ステップＳ４２０３に移行する。
【０１８６】
（末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理１）
図４４は、末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理１（ステップＳ４３０２）の詳細な処理手順を示すフローチャートである。この処理手順１は、抽出ｒ連字の文字コードがＪＩＳの区点コードである場合に適用される。
【０１８７】
まず、抽出ｒ連字の各文字の区点コードのうち点コードを抽出する（ステップＳ４４０１）。そして、各点コードを連字順に連結し、連結点コードとする（ステップＳ４４０２）、末尾連字シーケンスマップＭｅｔ，ｒに抽出連字の連結点コードのエントリを登録する（ステップＳ４４０３）。そして、ステップＳ４３０３に移行する。
【０１８８】
（末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理２）
図４５は、末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理２（ステップＳ４３０２）の詳細な処理手順を示すフローチャートである。この処理手順２は、抽出ｒ連字の文字コードがＵＮＩコードである場合に適用される。
【０１８９】
まず、抽出ｒ連字が仮名漢字文字列等であるか否かを判断する（ステップＳ４５０１）。仮名漢字列等である場合（ステップＳ４５０１：Ｙｅｓ）、連字の文字数ｒがｒ＝２であるか否かを判断する（ステップＳ４５０２）。ｒ＝２でない場合（ステップＳ４５０２：Ｎｏ）、末尾連字シーケンスマップＭｅｔ，ｒに抽出ｒ連字のエントリを登録する（ステップＳ４５０３）。そして、ステップＳ４３０３に移行する。
【０１９０】
一方、ステップＳ４５０２において、ｒ＝２である場合（ステップＳ４５０２：Ｙｅｓ）、図１９に示したように、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ４５０４）と仮名漢字列等のデジット演算によるコード変換処理（ステップＳ４５０５）とを実行する。
【０１９１】
仮名漢字列等のバイト演算によるコード変換処理（ステップＳ４５０４）は、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ３７０４）と同一処理内容である。同様に、仮名漢字列等のデジット演算によるコード変換処理（ステップＳ４５０５）も、仮名漢字列等のデジット演算によるコード変換処理（ステップＳ３７０５）と同一処理内容である。
【０１９２】
そして、図２０に示したように、末尾連字シーケンスマップＭｅｔ，ｒに、各コード化された抽出ｒ連字のエントリを登録して（ステップＳ４５０６）、ステップＳ４３０３に移行する。
【０１９３】
また、ステップＳ４５０１において、抽出ｒ連字が仮名漢字列等でない場合（ステップＳ４５０１：Ｎｏ）、抽出ｒ連字が英数字列等であるか否かを判断する（ステップＳ４５０７）。英数字列等でない場合（ステップＳ４５０７：Ｎｏ）、ステップＳ４３０３に移行する。一方、英数字列等である場合（ステップＳ４５０７：Ｙｅｓ）、連字の文字数ｒがｒ＝３であるか否かを判断する（ステップＳ４５０８）。ｒ＝３でない場合（ステップＳ４５０８：Ｎｏ）、ステップＳ４３０３に移行する。
【０１９４】
一方、ｒ＝３である場合（ステップＳ４５０８：Ｙｅｓ）、図２１に示したように、英数字列等のバイト演算によるコード変換処理（ステップＳ４５０９）と英数字列等のデジット演算によるコード変換処理（ステップＳ４５１０）とを実行する。
【０１９５】
英数字列等のバイト演算によるコード変換処理（ステップＳ４５０９）は、英数字列等のバイト演算によるコード変換処理（ステップＳ３７０９）と同一処理内容である。同様に、英数字列等のデジット演算によるコード変換処理（ステップＳ４５１０）も、英数字列等のデジット演算によるコード変換処理（ステップＳ３７１０）と同一処理内容である。
【０１９６】
そして、図２２に示したように、末尾連字シーケンスマップＭｅｔ，ｒに、各コード化された抽出ｒ連字のエントリを登録して（ステップＳ４５１１）、ステップＳ４３０３に移行する。
【０１９７】
（初期化処理手順）
図４６は、図２６に示した初期化処理（ステップＳ２６０２）の詳細な処理手順を示すフローチャートである。まず、連字の文字数ｒを設定し（ステップＳ４６０１）、サイクリック数ｃが指定されているか否かを判断する（ステップＳ４６０２）。サイクリック数ｃが指定されていない場合（ステップＳ４６０２：Ｎｏ）、図２５に示したテーブルを参照して、連字シーケンスマップ群を参照回数の降順にソートする（ステップＳ４６０３）。
【０１９８】
この降順の順位ｊをｊ＝１とし（ステップＳ４６０４）、連字シーケンスマップＭｒ１〜ＭｒｊまでのサイズＺ１ｊを取得する（ステップＳ４６０５）。ここで、連字シーケンスマップＭｒｊとする場合には、先頭連字シーケンスマップＭｈｓ，ｒであるか末尾連字シーケンスマップＭｅｔ，ｒであるかを区別しない。
【０１９９】
そして、取得サイズＺ１ｊがＺ１ｊ＞Ｚ（キャッシュメモリでの許容サイズ）であるか否かを判断する（ステップＳ４６０６）。Ｚ１ｊ＞Ｚでない場合（ステップＳ４６０６：Ｎｏ）、ｊをインクリメントし（ステップＳ４６０７）、ステップＳ４６０５に戻る。一方、Ｚ１ｊ＞Ｚである場合（ステップＳ４６０６：Ｙｅｓ）、連字シーケンスマップＭｒ１〜Ｍｒ（ｊ＋１）をキャッシュメモリに保存する（ステップＳ４６０８）。そして、入力処理（ステップＳ２６０３）に移行する。
【０２００】
一方、ステップＳ４６０２において、サイクリック数ｃが指定されている場合（ステップＳ４６０２：Ｙｅｓ）、先頭統合連字シーケンスマップ群生成処理（ステップＳ４６０９）と末尾統合連字シーケンスマップ群生成処理（ステップＳ４６１０）を実行して、入力処理（ステップＳ２６０３）に移行する。
【０２０１】
（先頭統合連字シーケンスマップ群生成処理）
図４７は、先頭統合連字シーケンスマップ群生成処理（ステップＳ４６０９）の詳細な処理手順を示すフローチャートである。図４７において、先頭からの文字位置ｓをｓ＝１とし（ステップＳ４７０１）、図１７に示したように、先頭連字シーケンスマップ群Ｍｈの中から先頭連字シーケンスマップＭｈｓ，ｒ、Ｍｈ（ｓ＋ｃ），ｒ、Ｍｈ（ｓ＋２ｃ），ｒ、…を抽出する（ステップＳ４７０２）。
【０２０２】
つぎに、これらのマップの同一エントリごとに論理和を算出する（ステップＳ４７０３）。そして、先頭統合連字シーケンスマップＭｈ（ｓ＋ｋｃ），ｒを生成する（ステップＳ４７０４）。このあと、文字位置ｓがｓ＞ｃであるか否かを判断する（ステップＳ４７０５）。ｓ＞ｃでない場合（ステップＳ４７０５：Ｎｏ）、文字位置ｓをインクリメントし（ステップＳ４７０６）、ステップＳ４７０２に戻る。一方、ｓ＞ｃである場合（ステップＳ４７０５：Ｙｅｓ）、先頭統合連字シーケンスマップ群をキャッシュメモリに保存する（ステップＳ４７０７）。そして、末尾統合連字シーケンスマップ群生成処理（ステップＳ４６１０）に移行する。
【０２０３】
（末尾統合連字シーケンスマップ群生成処理）
図４８は、末尾統合連字シーケンスマップ群生成処理（ステップＳ４６１０）の詳細な処理手順を示すフローチャートである。図４８において、末尾からの文字位置ｔをｔ＝１とし（ステップＳ４８０１）、図１７に示したように、末尾連字シーケンスマップ群Ｍｅの中から末尾連字シーケンスマップＭｅｔ，ｒ、Ｍｅ（ｔ＋ｃ），ｒ、Ｍｅ（ｔ＋２ｃ），ｒ、…を抽出する（ステップＳ４８０２）。
【０２０４】
つぎに、これらのマップの同一エントリごとに論理和を算出する（ステップＳ４８０３）。そして、末尾統合連字シーケンスマップＭｅ（ｔ＋ｋｃ），ｒを生成する（ステップＳ４８０４）。このあと、文字位置ｔがｔ＞ｃであるか否かを判断する（ステップＳ４８０５）。ｔ＞ｃでない場合（ステップＳ４８０５：Ｎｏ）、文字位置ｔをインクリメントし（ステップＳ４８０６）、ステップＳ４８０２に戻る。一方、ｔ＞ｃである場合（ステップＳ４８０５：Ｙｅｓ）、末尾統合連字シーケンスマップ群をキャッシュメモリに保存する（ステップＳ４８０７）。このあと、入力処理（ステップＳ２６０３）に移行する。
【０２０５】
（入力処理手順）
図４９は、図２６に示した入力処理（ステップＳ２６０３）の詳細な処理手順を示すフローチャートである。まず、検索文字列および検索条件（前方一致、後方一致、完全一致、または部分一致）の入力を受け付ける（ステップＳ４９０１）。つぎに、検索文字列変換部２４０４により共通化処理（ステップＳ４９０２）および清字処理（ステップＳ４９０３）を実行する。そして、ファイル絞込み処理（ステップＳ２６０４）に移行する。
【０２０６】
（ファイル絞込み処理）
図５０は、ファイル絞込み処理（ステップＳ２６０４）の詳細な処理手順を示すフローチャートである。まず、検索条件が部分一致検索である場合（ステップＳ５００１：Ｙｅｓ）、単字マップＭ１によるファイル絞込み処理を実行して（ステップＳ５００２）、検索実行処理（ステップＳ２６０５）に移行する。一方、部分一致検索でない場合（ステップＳ５００１：Ｎｏ）、連字シーケンスマップによるファイル絞込み処理を実行して（ステップＳ５００３）、検索実行処理（ステップＳ２６０５）に移行する。
【０２０７】
（単字マップＭ１によるファイル絞込み処理）
図５１は、単字マップＭ１によるファイル絞込み処理（ステップＳ５００２）の詳細な処理手順を示すフローチャートである。まず、検索文字列の先頭からの文字位置ｓをｓ＝１とし（ステップＳ５１０１）、文字位置ｓの文字が外国文字であるか否かを判断する（ステップＳ５１０２）。外国文字である場合（ステップＳ５１０２：Ｙｅｓ）、単一外国文字のバイト演算によるコード変換処理（ステップＳ５１０３）と単一外国文字のデジット演算によるコード変換処理（ステップＳ５１０４）を実行して、ステップＳ５１０５に移行する。
【０２０８】
なお、単一外国文字のバイト演算によるコード変換処理（ステップＳ５１０３）は、単一外国文字のバイト演算によるコード変換処理（ステップＳ２９０６）と同一処理である。同様に、単一外国文字のデジット演算によるコード変換処理（ステップＳ５１０４）も
単一外国文字のデジット演算によるコード変換処理（ステップＳ２９０７）と同一処理である。
【０２０９】
一方、ステップＳ５１０２において、外国文字でない場合（ステップＳ５１０２：Ｎｏ）、単字マップＭ１からｓ番目の文字のエントリを特定し（ステップＳ５１０５）、特定されたエントリのフラグ列を抽出する（ステップＳ５１０６）。そして、文字位置ｓをインクリメントして（ステップＳ５１０７）、ｓ番目の文字があるか否かを判断する（ステップＳ５１０８）。
【０２１０】
ｓ番目の文字がある場合（ステップＳ５１０８：Ｙｅｓ）、ステップＳ５１０２に移行する。一方、ｓ番目の文字がない場合（ステップＳ５１０８：Ｎｏ）、抽出されたすべてのフラグ列の論理積を算出する（ステップＳ５１０９）。そして、論理積演算結果によりフラグの値が“１”であるファイルＩＤのファイルを、検索文字列の文字がすべて存在するファイルとして特定して（ステップＳ５１１０）、検索実行処理（ステップＳ２６０５）に移行する。
【０２１１】
（連字シーケンスマップによるファイル絞込み処理）
図５２は、連字シーケンスマップによるファイル絞込み処理（ステップＳ５００３）の詳細な処理手順を示すフローチャートである。まず、検索条件が完全一致検索であるか否かを判断する（ステップＳ５２０１）。完全一致検索である場合（ステップＳ５２０１：Ｙｅｓ）、先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理（ステップＳ５２０２）と末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理（ステップＳ５２０３）とを実行する。
【０２１２】
そして、各ファイル絞込み処理から得られるフラグ列の論理積を算出する（ステップＳ５２０４）。そして、論理積演算結果によりフラグの値が“１”であるファイルＩＤのファイルを、検索文字列と完全一致する文字列が存在するファイルとして特定して（ステップＳ５２０５）、検索実行処理（ステップＳ２６０５）に移行する。
【０２１３】
一方、ステップＳ５２０１において、完全一致検索でないと判断された場合（ステップＳ５２０１：Ｎｏ）、前方一致検索であるか否かを判断する（ステップＳ５２０６）。前方一致検索である場合（ステップＳ５２０６：Ｙｅｓ）、先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理（ステップＳ５２０７）を実行する。この処理は、ステップＳ５２０２と同一処理である。その後、検索実行処理（ステップＳ２６０５）に移行する。
【０２１４】
一方、ステップＳ５２０６において、前方一致検索でない場合（ステップＳ５２０６：Ｎｏ）、後方一致検索であるため、末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理（ステップＳ５２０８）を実行する。この処理は、ステップＳ５２０３と同一処理である。その後、検索実行処理（ステップＳ２６０５）に移行する。
【０２１５】
（先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理１）
図５３は、先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理１（ステップＳ５２０２、Ｓ５２０７）の詳細な処理手順を示すフローチャートである。まず、検索文字列の先頭からの文字位置ｓをｓ＝１とし（ステップＳ５３０１）、先頭連字シーケンスマップＭｈｓ，ｒを読み込む（ステップＳ５３０２）。検索文字列にｓ＋ｒ−１番目の文字があるか否かを判断する（ステップＳ５３０３）。
【０２１６】
該当文字がある場合（ステップＳ５３０３：Ｙｅｓ）、先頭連字シーケンスマップＭｈｓ，ｒからｓ番目のｒ連字のエントリを特定する（ステップＳ５３０４）。そして、その先頭連字シーケンスマップＭｈｓ，ｒの参照回数を１加算して（ステップＳ５３０５）、特定されたエントリのフラグ列を抽出する（ステップＳ５３０６）。このあと、文字位置ｓをインクリメントして（ステップＳ５３０７）、ステップＳ５３０３に移行する。
【０２１７】
一方、ステップＳ５３０３において、該当文字がない場合（ステップＳ５３０３：Ｎｏ）、ファイル絞込み処理から得られるフラグ列の論理積を算出する（ステップＳ５３０８）。そして、論理積演算結果によりフラグの値が“１”であるファイルＩＤのファイルを、検索文字列と前方一致する文字列が存在するファイルとして特定して（ステップＳ５３０９）、つぎの処理（ステップＳ５２０３、Ｓ２６０５）に移行する。
【０２１８】
（末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理１）
図５４は、末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理１（ステップＳ５２０３、Ｓ５２０８）の詳細な処理手順を示すフローチャートである。まず、検索文字列の末尾からの文字位置ｔをｔ＝１とし（ステップＳ５４０１）、末尾連字シーケンスマップＭｅｔ，ｒを読み込む（ステップＳ５４０２）。検索文字列にｔ＋ｒ−１番目の文字があるか否かを判断する（ステップＳ５４０３）。
【０２１９】
該当文字がある場合（ステップＳ５４０３：Ｙｅｓ）、末尾連字シーケンスマップＭｅｔ，ｒからｔ番目のｒ連字のエントリを特定する（ステップＳ５４０４）。そして、その末尾連字シーケンスマップＭｅｔ，ｒの参照回数を１加算して（ステップＳ５４０５）、特定されたエントリのフラグ列を抽出する（ステップＳ５４０６）。このあと、文字位置ｔをインクリメントして（ステップＳ５４０７）、ステップＳ５４０３に移行する。
【０２２０】
一方、ステップＳ５４０３において、該当文字がない場合（ステップＳ５４０３：Ｎｏ）、ファイル絞込み処理から得られるフラグ列の論理積を算出する（ステップＳ５４０８）。そして、論理積演算結果によりフラグの値が“１”であるファイルＩＤのファイルを、検索文字列と後方一致する文字列が存在するファイルとして特定して（ステップＳ５４０９）、つぎの処理（ステップＳ５２０４、Ｓ２６０５）に移行する。
【０２２１】
（先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理２）
図５５は、先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理２（ステップＳ５２０２、Ｓ５２０７）の詳細な処理手順を示すフローチャートである。先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理２では、ステップＳ５３０１〜Ｓ５３０９に先だって、検索文字列変換部２４０４によるコード変換処理（ステップＳ５５００）を実行する。コード変換処理（ステップＳ５５００）については後述する。
【０２２２】
（末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理２）
図５６は、末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理２（ステップＳ５２０３、Ｓ５２０８）の詳細な処理手順を示すフローチャートである。末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理２では、ステップＳ５４０１〜Ｓ５４０９に先だって、検索文字列変換部２４０４によるコード変換処理（ステップＳ５６００）を実行する。コード変換処理（ステップＳ５６００）については後述する。
【０２２３】
（コード変換処理）
図５７は、図５５および図５６に示したコード変換処理（ステップＳ５５００、Ｓ５６００）の詳細な処理手順を示すフローチャートである。まず、検索文字列が仮名漢字列等であるか否かを判断する（ステップＳ５７０１）。仮名漢字列等でない場合（ステップＳ５７０１：Ｎｏ）、英数字列等であるか否かを判断する（ステップＳ５７０２）。英数字列等でない場合（ステップＳ５７０２：Ｎｏ）、ステップＳ５３０１（Ｓ５４０１）に移行する。
【０２２４】
一方、ステップＳ５７０１において、仮名漢字列等である場合（ステップＳ５７０１：Ｙｅｓ）、連字の文字数ｒがｒ＝２であるか否かを判断する（ステップＳ５７０３）。ｒ＝２でない場合（ステップＳ５７０３：Ｎｏ）、ステップＳ５７０２に移行する。一方、ｒ＝２である場合（ステップＳ５７０３：Ｙｅｓ）、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ５７０４）と仮名漢字列等のデジット演算によるコード変換処理（ステップＳ５７０５）を実行して、ステップＳ５３０１（Ｓ５４０１）に移行する。
【０２２５】
なお、仮名漢字列等のバイト演算によるコード変換処理（ステップＳ５７０４）は、ステップＳ３７０４と同一処理である。同様に、仮名漢字列等のデジット演算によるコード変換処理（ステップＳ５７０５）もステップＳ３７０５と同一処理である。
【０２２６】
一方、ステップＳ５７０２において、英数字列等であると判断された場合（ステップＳ５７０２：Ｙｅｓ）、連字の文字数ｒがｒ＝３であるか否かを判断する（ステップＳ５７０６）。ｒ＝３でない場合（ステップＳ５７０６：Ｎｏ）、ステップＳ５３０１（Ｓ５４０１）に移行する。一方、ｒ＝３である場合（ステップＳ５７０６：Ｙｅｓ）、英数字列等のバイト演算によるコード変換処理（ステップＳ５７０７）と英数字列等のデジット演算によるコード変換処理（ステップＳ５７０８）を実行して、ステップＳ５３０１（Ｓ５４０１）に移行する。
【０２２７】
なお、英数字列等のバイト演算によるコード変換処理（ステップＳ５７０７）は、ステップＳ３７０９と同一処理である。同様に、英数字列等のデジット演算によるコード変換処理（ステップＳ５７０８）もステップＳ３７１０と同一処理である。このように、連字シーケンスマップのコード変換に応じて検索文字列をコード変換することで、連字シーケンスマップと検索文字列との対応をとることができる。
【０２２８】
このように、上述した実施の形態では、英数字、かな・カタカナの単語に関し、連字シーケンスマップ群Ｍｈｅを生成するため、対象ファイルの絞込み確率の向上により、全文検索の高速化を図ることができる。具体的には、単語を構成する文字列の連接の確率低下を利用し、連字シーケンスマップ群Ｍｈｅによる対象ファイルの絞込みによる高速化を図ることができる。
【０２２９】
また、前方一致検索の場合には先頭連字シーケンスマップ群Ｍｈ、後方一致検索の場合には末尾連字シーケンスマップ群Ｍｅ、完全一致検索の場合には両マップ群Ｍｈ、Ｍｅを用いることで、対象ファイルの絞込み確率の向上と検索速度の向上を図ることができる。また、入力された検索文字列の各文字の文字位置に応じた連字シーケンスマップを適用することで、対象ファイルをの絞込み確率の向上を図ることができる。
【０２３０】
なお、上述した実施の形態では、検索対象コンテンツ２１０のファイルｆｉから検索する例を説明したが、見出し語データ２１１から検索することとしてもよい。
【０２３１】
また、英数字、かな、カタカナの共通化を図ることで、連字シーケンスマップ群Ｍｈｅのサイズ縮小化を図ることができる。また、ファイル内に文字数が多い単語が含まれていると、その各文字位置に応じた連字シーケンスマップを生成することとなり、マップサイズが大きくなるが、連字シーケンスマップ群Ｍｈｅをサイクリックな構造とすることにより、文字数の多い単語の対応を図ることができ、連字シーケンスマップ群Ｍｈｅの総合サイズを最適化することができる。
【０２３２】
また、漢字の文字種は５０００〜８０００種である。そこで、連字シーケンスマップ群Ｍｈｅのキャッシュメモリでの常駐化を実現するため、ＪＩＳの区点コードの点コードに着目し、漢字かな文字の点コードにより、連字の文字コード列を生成する。これにより、仮名漢字文字列のコード列よりも短くすることができ、マップサイズの増加を抑制することができる。
【０２３３】
複文節で構成される単語を分割することで、連字シーケンスマップ群Ｍｈｅにおける連字の網羅性の向上を図るとともに、検索時には網羅された連字により対象ファイルの絞込みをおこなうことができるため、絞込み確率の向上と検索速度の向上を図ることができる。
【０２３４】
また、あらたな専門用語や新語を見出しデータやファイルに追加して、マップ生成装置２０１にて連字シーケンスマップ群Ｍｈｅを更新することで、カスタイマイズをおこなうことができる。
【０２３５】
また、検索時における連字シーケンスマップ群Ｍｈｅの参照回数を計数しておくことで、アクセス頻度が高い連字シーケンスマップを初期ローディングし、常駐化することで、全文検索の高速化を図ることができる。
【０２３６】
また、上述した実施の形態では、２連字の仮名漢字列等を２種類にコード変換して、その２連字の仮名漢字列等について変換コードごとにフラグ列を設定している。これにより、ファイルｆ０〜ｆｎの全文検索時には、両フラグ列の論理積演算（たすきがけ）によりヒットした対象ファイルに絞り込むことができるため、絞込み確率の向上を図ることができる。
【０２３７】
また、３連字の英数字列等を２種類にコード変換して、その３連字の英数字列等について変換コードごとにフラグ列を設定している。これにより、見出し語データ２１１の見出し語検索時には、両フラグ列の論理積演算（たすきがけ）によりヒットした見出し語に絞り込むことができるため、見出し語の絞込み確率の向上を図ることができる。
【０２３８】
以上のことから、本実施の形態によれば、連字シーケンスマップにより、ファイルの絞込み精度の向上により、全文検索の高速化を図ることができる。
【０２３９】
なお、本実施の形態で説明した方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０２４０】
（付記１）コンピュータを、
文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段、
前記単語抽出手段によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出手段、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出手段によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段、
として機能させることを特徴とする連字シーケンスマップ生成プログラム。
【０２４１】
（付記２）前記コンピュータを、
前記単語抽出手段によって抽出された単語の中に含まれている文字列の中から見出し語と一致する単語を検索する見出し語検索手段として機能させ、
前記連字抽出手段は、
前記見出し語検索手段によって検索された単語の中から、当該単語の先頭からｓ番目の文字位置（１≦ｓ≦ｑ−ｒ＋１）から文字数ｒの文字位置までの連字を抽出することを特徴とする付記１に記載の連字シーケンスマップ生成プログラム。
【０２４２】
（付記３）前記コンピュータを、
前記連字が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する変換手段として機能させ、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって半角または全角のいずれか一方に決められたコード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１または２に記載の連字シーケンスマップ生成プログラム。
【０２４３】
（付記４）前記コンピュータを、
前記連字が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する変換手段として機能させ、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって清字のコード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１または２に記載の連字シーケンスマップ生成プログラム。
【０２４４】
（付記５）前記コンピュータを、
前記連字を当該連字の文字コード列よりも短いコードに変換する変換手段として機能させ、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１または２に記載の連字シーケンスマップ生成プログラム。
【０２４５】
（付記６）前記変換手段は、
前記連字が仮名漢字文字列である場合、前記仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換し、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって区点コード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記５に記載の連字シーケンスマップ生成プログラム。
【０２４６】
（付記７）前記変換手段は、
前記連字が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、前記連字を、当該連字の文字コード列に基づいて第１および第２の変換コードに変換する変換手段として機能させ、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって第１の変換コードに変換された連字の存否をあらわす前記ファイルごとの第１のフラグ列と前記第２の変換コードに変換された連字の存否をあらわす前記ファイルごとの第２のフラグ列とを含む連字シーケンスマップを生成することを特徴とする付記５に記載の連字シーケンスマップ生成プログラム。
【０２４７】
（付記８）前記変換手段は、
前記連字が英数字列または仮名文字列（以下、「英数字列等」という）である場合、前記連字を、当該連字の文字コード列に基づいて第１および第２の変換コードに変換する変換手段として機能させ、
前記生成手段は、
前記先頭からｓ番目の文字位置ごとに、前記変換手段によって第１の変換コードに変換された連字の存否をあらわす前記ファイルごとの第１のフラグ列と前記第２の変換コードに変換された連字の存否をあらわす前記ファイルごとの第２のフラグ列とを含む連字シーケンスマップを生成することを特徴とする付記５に記載の連字シーケンスマップ生成プログラム。
【０２４８】
（付記９）所定のサイクリック数ｃが設定された場合、前記生成手段によって生成された連字シーケンスマップ群のうち、（ｓ＋ｋｃ）番目（ｋは非負整数）の文字位置の連字シーケンスマップ群を抽出するマップ群抽出手段、
前記マップ群抽出手段によって抽出された（ｓ＋ｋｃ）番目の文字位置の連字シーケンスマップ群の中の同一連字でかつ同一ファイルで特定されるフラグの論理積を算出することにより、前記（ｓ＋ｋｃ）番目の文字位置の連字シーケンスマップ群を単一の連字シーケンスマップに統合する統合手段、
として機能させることを特徴とする付記１または２に記載の連字シーケンスマップ生成プログラム。
【０２４９】
（付記１０）コンピュータを、
文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段、
前記単語抽出手段によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出手段、
前記末尾からｔ番目の文字位置ごとに、前記連字抽出手段によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段、
として機能させることを特徴とする連字シーケンスマップ生成プログラム。
【０２５０】
（付記１１）前記コンピュータを、
前記単語抽出手段によって抽出された単語の中に含まれている文字列の中から見出し語と一致する単語を検索する見出し語検索手段として機能させ、
前記連字抽出手段は、
前記見出し語検索手段によって検索された単語の中から、当該単語の末尾からｔ番目の文字位置（１≦ｔ≦ｑ−ｒ＋１）から文字数ｒの文字位置までの連字を抽出することを特徴とする付記１０に記載の連字シーケンスマップ生成プログラム。
【０２５１】
（付記１２）前記コンピュータを、
前記連字が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する変換手段として機能させ、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって半角または全角のいずれか一方に決められたコード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１０または１１に記載の連字シーケンスマップ生成プログラム。
【０２５２】
（付記１３）前記コンピュータを、
前記連字が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する変換手段として機能させ、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって清字のコード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１０または１１に記載の連字シーケンスマップ生成プログラム。
【０２５３】
（付記１４）前記コンピュータを、
前記連字を当該連字の文字コード列よりも短いコードに変換する変換手段として機能させ、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１０または１１に記載の連字シーケンスマップ生成プログラム。
【０２５４】
（付記１５）前記変換手段は、
前記連字が仮名漢字文字列である場合、前記仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換し、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって区点コード列に変換された連字の存否をあらわす前記ファイルごとのフラグ列を含む連字シーケンスマップを生成することを特徴とする付記１４に記載の連字シーケンスマップ生成プログラム。
【０２５５】
（付記１６）前記変換手段は、
前記連字が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、前記連字を、当該連字の文字コード列に基づいて第１および第２の変換コードに変換する変換手段として機能させ、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって第１の変換コードに変換された連字の存否をあらわす前記ファイルごとの第１のフラグ列と前記第２の変換コードに変換された連字の存否をあらわす前記ファイルごとの第２のフラグ列とを含む連字シーケンスマップを生成することを特徴とする付記１４に記載の連字シーケンスマップ生成プログラム。
【０２５６】
（付記１７）前記変換手段は、
前記連字が英数字列または仮名文字列（以下、「英数字列等」という）である場合、前記連字を、当該連字の文字コード列に基づいて第１および第２の変換コードに変換する変換手段として機能させ、
前記生成手段は、
前記末尾からｔ番目の文字位置ごとに、前記変換手段によって第１の変換コードに変換された連字の存否をあらわす前記ファイルごとの第１のフラグ列と前記第２の変換コードに変換された連字の存否をあらわす前記ファイルごとの第２のフラグ列とを含む連字シーケンスマップを生成することを特徴とする付記１４に記載の連字シーケンスマップ生成プログラム。
【０２５７】
（付記１８）所定のサイクリック数ｃが設定された場合、前記生成手段によって生成された連字シーケンスマップ群のうち、（ｔ＋ｋｃ）番目（ｋは非負整数）の文字位置の連字シーケンスマップ群を抽出するマップ群抽出手段、
前記マップ群抽出手段によって抽出された（ｔ＋ｋｃ）番目の文字位置の連字シーケンスマップ群の中の同一連字でかつ同一ファイルで特定されるフラグの論理積を算出することにより、前記（ｔ＋ｋｃ）番目の文字位置の連字シーケンスマップ群を単一の連字シーケンスマップに統合する統合手段、
として機能させることを特徴とする付記１０または１１に記載の連字シーケンスマップ生成プログラム。
【０２５８】
（付記１９）コンピュータを、
文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段、
前記単語抽出手段によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの第１の連字を抽出するとともに、前記単語抽出手段によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの第２の連字を抽出する連字抽出手段、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出手段によって抽出された各第１の連字の存否をあらわす前記ファイルごとのフラグ列からなる先頭連字シーケンスマップを生成するとともに、前記末尾からｔ番目の文字位置ごとに、前記連字抽出手段によって抽出された各第２の連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段、
として機能させることを特徴とする連字シーケンスマップ生成プログラム。
【０２５９】
（付記２０）付記１または２に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６０】
（付記２１）付記３に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６１】
（付記２２）付記４に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６２】
（付記２３）付記５に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列を当該検索文字列の文字コード列よりも短いコードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６３】
（付記２４）付記６に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が仮名漢字文字列である場合、前記仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６４】
（付記２５）付記７に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、前記検索文字列を、当該検索文字列の文字コード列に基づいて第１および第２の変換コードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を前記変換コードごとに抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置ｓと一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を前記変換コードごとに抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６５】
（付記２６）付記８に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が英数字列または仮名文字列（以下、「英数字列等」という）である場合、前記検索文字列を、当該検索文字列の文字コード列に基づいて第１および第２の変換コードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を前記変換コードごとに抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を前記変換コードごとに抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６６】
（付記２７）付記９に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって前方一致検索であると判断された場合、前記統合手段によって統合された連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６７】
（付記２８）付記１０または１１に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６８】
（付記２９）付記１２に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が英数字列である場合、半角または全角のいずれか一方に決められたコード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２６９】
（付記３０）付記１３に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が濁音、半濁音、または拗促音を含む仮名文字列である場合、清字のコード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７０】
（付記３１）付記１４に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列を当該検索文字列の文字コード列よりも短いコードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７１】
（付記３２）付記１５に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が仮名漢字文字列である場合、前記仮名漢字文字列の区点コード列を各文字の点コードを連結した点コード列に変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７２】
（付記３３）付記１６に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が仮名漢字文字列、韓国語の文字列、または中国語の文字列（以下、「仮名漢字文字列等」という）である場合、前記検索文字列を、当該検索文字列の文字コード列に基づいて第１および第２の変換コードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を前記変換コードごとに抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置ｔと一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を前記変換コードごとに抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７３】
（付記３４）付記１７に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索文字列が英数字列または仮名文字列（以下、「英数字列等」という）である場合、前記検索文字列を、当該検索文字列の文字コード列に基づいて第１および第２の変換コードに変換する検索文字列変換手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記検索文字列変換手段によって変換された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を前記変換コードごとに抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を前記変換コードごとに抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７４】
（付記３５）付記１８に記載の連字シーケンスマップ生成プログラムによって生成された連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって後方一致検索であると判断された場合、前記統合手段によって統合された連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７５】
（付記３６）付記１９に記載の連字シーケンスマップ生成プログラムによって生成された先頭連字シーケンスマップ群および末尾連字シーケンスマップ群を用いて検索処理を実行するコンピュータを、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段、
前記入力手段によって入力された検索条件が完全一致検索であるか否かを判断する判断手段、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第１の検索対象連字を抽出するとともに、前記入力手段によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第２の検索対象連字を抽出する検索対象連字抽出手段、
前記判断手段によって完全一致検索であると判断された場合、前記先頭連字シーケンスマップ群のうち、前記第１の検索対象連字の文字位置と一致する先頭連字シーケンスマップ群を参照して前記第１の検索対象連字のフラグ列を抽出するとともに、前記末尾連字シーケンスマップ群のうち、前記第２の検索対象連字の文字位置と一致する末尾連字シーケンスマップ群を参照して前記第２の検索対象連字のフラグ列を抽出するフラグ列抽出手段、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列と完全一致する文字列が存在するファイルを絞り込む絞込み手段、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と完全一致する文字列を検索する検索手段、
前記検索手段によって検索された検索結果を出力する出力手段、
として機能させることを特徴とする情報検索プログラム。
【０２７６】
（付記３７）前記コンピュータを、
前記フラグ列抽出手段における前記連字シーケンスマップの参照回数を前記連字シーケンスマップごとに計数する計数手段、
前記計数手段によって計数された計数結果に基づいて、前記連字シーケンスマップ群のうち一部の連字シーケンスマップをキャッシュメモリに格納する格納手段として機能させ、
前記フラグ列抽出手段は、
前記検索対象連字の文字位置と一致する連字シーケンスマップ群が前記キャッシュメモリに格納されている場合には、前記キャッシュメモリから参照することを特徴とする付記２０〜３６のいずれか一つに記載の情報検索プログラム。
【０２７７】
（付記３８）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段と、
前記単語抽出手段によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出手段と、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出手段によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段と、
を備えることを特徴とする連字シーケンスマップ生成装置。
【０２７８】
（付記３９）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段と、
前記単語抽出手段によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出手段と、
前記末尾からｔ番目の文字位置ごとに、前記連字抽出手段によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段と、
を備えることを特徴とする連字シーケンスマップ生成装置。
【０２７９】
（付記４０）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出手段と、
前記単語抽出手段によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの第１の連字を抽出するとともに、前記単語抽出手段によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第２の連字を抽出する連字抽出手段と、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出手段によって抽出された各第１の連字の存否をあらわす前記ファイルごとのフラグ列からなる先頭連字シーケンスマップを生成するとともに、前記末尾からｔ番目の文字位置ごとに、前記連字抽出手段によって抽出された各第２の連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成手段と、
を備えることを特徴とする連字シーケンスマップ生成装置。
【０２８０】
（付記４１）付記３８に記載の連字シーケンスマップ生成装置によって生成された連字シーケンスマップ群を用いて検索処理を実行する情報検索装置であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段と、
前記入力手段によって入力された検索条件が前方一致検索であるか否かを判断する判断手段と、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段と、
前記判断手段によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段と、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段と、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索手段と、
前記検索手段によって検索された検索結果を出力する出力手段と、
を備えることを特徴とする情報検索装置。
【０２８１】
（付記４２）付記３９に記載の連字シーケンスマップ生成装置によって生成された連字シーケンスマップ群を用いて検索処理を実行する情報検索装置であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段と、
前記入力手段によって入力された検索条件が後方一致検索であるか否かを判断する判断手段と、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出手段と、
前記判断手段によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出手段と、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み手段と、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索手段と、
前記検索手段によって検索された検索結果を出力する出力手段と、
を備えることを特徴とする情報検索装置。
【０２８２】
（付記４３）付記４０に記載の連字シーケンスマップ生成装置によって生成された先頭連字シーケンスマップ群および末尾連字シーケンスマップ群を用いて検索処理を実行する情報検索装置であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力手段と、
前記入力手段によって入力された検索条件が完全一致検索であるか否かを判断する判断手段と、
前記入力手段によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第１の検索対象連字を抽出するとともに、前記入力手段によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第２の検索対象連字を抽出する検索対象連字抽出手段と、
前記判断手段によって完全一致検索であると判断された場合、前記先頭連字シーケンスマップ群のうち、前記第１の検索対象連字の文字位置と一致する先頭連字シーケンスマップ群を参照して前記第１の検索対象連字のフラグ列を抽出するとともに、前記末尾連字シーケンスマップ群のうち、前記第２の検索対象連字の文字位置と一致する末尾連字シーケンスマップ群を参照して前記第２の検索対象連字のフラグ列を抽出するフラグ列抽出手段と、
前記フラグ列抽出手段によって抽出されたフラグ列に基づいて、前記検索文字列と完全一致する文字列が存在するファイルを絞り込む絞込み手段と、
前記絞込み手段によって絞り込まれたファイルの中から前記検索文字列と完全一致する文字列を検索する検索手段と、
前記検索手段によって検索された検索結果を出力する出力手段と、
を備えることを特徴とする情報検索装置。
【０２８３】
（付記４４）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出工程と、
前記単語抽出工程によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出工程と、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出工程によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成工程と、
を備えることを特徴とする連字シーケンスマップ生成方法。
【０２８４】
（付記４５）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出工程と、
前記単語抽出工程によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの連字を抽出する連字抽出工程と、
前記末尾からｔ番目の文字位置ごとに、前記連字抽出工程によって抽出された各連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成工程と、
を含んだことを特徴とする連字シーケンスマップ生成方法。
【０２８５】
（付記４６）文字列が記述されている各ファイルの中から文字数ｑ（ｑ≧２）の単語を抽出する単語抽出工程と、
前記単語抽出工程によって抽出された単語の中から、当該単語の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒ（ｒ≦ｑ）の文字位置までの第１の連字を抽出するとともに、前記単語抽出工程によって抽出された単語の中から、当該単語の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第２の連字を抽出する連字抽出工程と、
前記先頭からｓ番目の文字位置ごとに、前記連字抽出工程によって抽出された各第１の連字の存否をあらわす前記ファイルごとのフラグ列からなる先頭連字シーケンスマップを生成するとともに、前記末尾からｔ番目の文字位置ごとに、前記連字抽出工程によって抽出された各第２の連字の存否をあらわす前記ファイルごとのフラグ列からなる連字シーケンスマップを生成する生成工程と、
を含んだことを特徴とする連字シーケンスマップ生成方法。
【０２８６】
（付記４７）付記４４に記載の連字シーケンスマップ生成方法によって生成された連字シーケンスマップ群を用いて検索処理を実行する情報検索方法であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力工程と、
前記入力工程によって入力された検索条件が前方一致検索であるか否かを判断する判断工程と、
前記入力工程によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出工程と、
前記判断工程によって前方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出工程と、
前記フラグ列抽出工程によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み工程と、
前記絞込み工程によって絞り込まれたファイルの中から前記検索文字列と前方一致する文字列を検索する検索工程と、
前記検索工程によって検索された検索結果を出力する出力工程と、
を含んだことを特徴とする情報検索方法。
【０２８７】
（付記４８）付記４５に記載の連字シーケンスマップ生成方法によって生成された連字シーケンスマップ群を用いて検索処理を実行する情報検索方法であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力工程と、
前記入力工程によって入力された検索条件が後方一致検索であるか否かを判断する判断工程と、
前記入力工程によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの検索対象連字を抽出する検索対象連字抽出工程と、
前記判断工程によって後方一致検索であると判断された場合、前記連字シーケンスマップ群のうち、前記検索対象連字の文字位置と一致する連字シーケンスマップ群を参照して前記検索対象連字のフラグ列を抽出するフラグ列抽出工程と、
前記フラグ列抽出工程によって抽出されたフラグ列に基づいて、前記検索文字列が存在するファイルを絞り込む絞込み工程と、
前記絞込み工程によって絞り込まれたファイルの中から前記検索文字列と後方一致する文字列を検索する検索工程と、
前記検索工程によって検索された検索結果を出力する出力工程と、
を含んだことを特徴とする情報検索方法。
【０２８８】
（付記４９）付記４６に記載の連字シーケンスマップ生成方法によって生成された先頭連字シーケンスマップ群および末尾連字シーケンスマップ群を用いて検索処理を実行する情報検索方法であって、
文字数ｑ（ｑ≧ｒ）の検索文字列と検索条件の入力を受け付ける入力工程と、
前記入力工程によって入力された検索条件が完全一致検索であるか否かを判断する判断工程と、
前記入力工程によって入力された検索文字列の中から、当該検索文字列の先頭からｓ番目（１≦ｓ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第１の検索対象連字を抽出するとともに、前記入力工程によって入力された検索文字列の中から、当該検索文字列の末尾からｔ番目（１≦ｔ≦ｑ−ｒ＋１）の文字位置から文字数ｒの文字位置までの第２の検索対象連字を抽出する検索対象連字抽出工程と、
前記判断工程によって完全一致検索であると判断された場合、前記先頭連字シーケンスマップ群のうち、前記第１の検索対象連字の文字位置と一致する先頭連字シーケンスマップ群を参照して前記第１の検索対象連字のフラグ列を抽出するとともに、前記末尾連字シーケンスマップ群のうち、前記第２の検索対象連字の文字位置と一致する末尾連字シーケンスマップ群を参照して前記第２の検索対象連字のフラグ列を抽出するフラグ列抽出工程と、
前記フラグ列抽出工程によって抽出されたフラグ列に基づいて、前記検索文字列と完全一致する文字列が存在するファイルを絞り込む絞込み工程と、
前記絞込み工程によって絞り込まれたファイルの中から前記検索文字列と完全一致する文字列を検索する検索工程と、
前記検索工程によって検索された検索結果を出力する出力工程と、
を含んだことを特徴とする情報検索方法。
【産業上の利用可能性】
【０２８９】
以上のように、本発明にかかる連字シーケンスマップ生成プログラム、情報検索プログラム、連字シーケンスマップ生成装置、情報検索装置、連字シーケンスマップ生成方法、および情報検索方法は、辞書や用語辞典などの電子コンテンツの検索に有用であり、特に、携帯型コンピュータ（ノート型パソコン、携帯ゲーム機、携帯電話機、電子辞書）に適している。
【図面の簡単な説明】
【０２９０】
【図１】実施の形態にかかるコンピュータのハードウェア構成を示すブロック図である。
【図２】検索システムの機能的構成を示すブロック図である。
【図３】検索対象コンテンツを示す説明図である。
【図４】見出し語データを示す説明図である。
【図５】単字マップを示す説明図である。
【図６】連字シーケンスマップ群を示す説明図である。
【図７】先頭連字シーケンスマップＭｈ１，２を示す説明図である。
【図８】末尾連字シーケンスマップＭｅ１，２を示す説明図である。
【図９】先頭連字シーケンスマップ群の生成例を示す説明図である。
【図１０】末尾連字シーケンスマップ群の生成例を示す説明図である。
【図１１】先頭連字シーケンスマップ群を用いた絞込み例を示す説明図である。
【図１２】末尾連字シーケンスマップ群を用いた絞込み例を示す説明図である。
【図１３】マップ生成装置の機能的構成１を示すブロック図である。
【図１４】外国文字変換部の変換処理を示す説明図である。
【図１５】図１４で得られた変換コードの単字マップでのエントリ例を示す説明図である。
【図１６】マップ生成装置の機能的構成２を示すブロック図である。
【図１７】統合部による統合処理を示す説明図である。
【図１８】図１６に示した見出し語検索部による見出し語検索処理を示す説明図である。
【図１９】図１６に示した抽出連字変換部による仮名漢字文字列等のコード変換処理を示す説明図である。
【図２０】図１９で得られた変換コードの先頭連字シーケンスマップＭｈｓ，２でのエントリ例を示す説明図である。
【図２１】図１６に示した抽出連字変換部による英数字列等のコード変換処理を示す説明図である。
【図２２】図２１で得られた変換コードの先頭連字シーケンスマップＭｈｓ，３でのエントリ例を示す説明図である。
【図２３】情報検索装置の機能的構成１を示すブロック図である。
【図２４】情報検索装置の機能的構成２を示すブロック図である。
【図２５】連字シーケンスマップごとの参照回数の計数結果を示す説明図である。
【図２６】検索システムの全体処理手順を示すフローチャートである。
【図２７】マップ生成処理の詳細な処理手順を示すフローチャートである。
【図２８】単字マップ生成処理の詳細な処理手順を示すフローチャートである。
【図２９】単字登録処理の詳細な処理手順を示すフローチャートである。
【図３０】単一外国文字のバイト演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図３１】単一外国文字のデジット演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図３２】ｒ連字の連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その１）である。
【図３３】ｒ連字の連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その２）である。
【図３４】先頭連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その１）である。
【図３５】先頭連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その２）である。
【図３６】先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理１の詳細な処理手順を示すフローチャートである。
【図３７】先頭連字シーケンスマップＭｈｓ，ｒへの抽出ｒ連字のエントリ処理２の詳細な処理手順を示すフローチャートである。
【図３８】仮名漢字列等のバイト演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図３９】仮名漢字列等のデジット演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図４０】英数字列等のバイト演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図４１】英数字列等のデジット演算によるコード変換処理の詳細な処理手順を示すフローチャートである。
【図４２】末尾連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その１）である。
【図４３】末尾連字シーケンスマップ生成処理の詳細な処理手順を示すフローチャート（その２）である。
【図４４】末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理１の詳細な処理手順を示すフローチャートである。
【図４５】末尾連字シーケンスマップＭｅｔ，ｒへの抽出ｒ連字のエントリ処理２の詳細な処理手順を示すフローチャートである。
【図４６】図２６に示した初期化処理の詳細な処理手順を示すフローチャートである。
【図４７】先頭統合連字シーケンスマップ群生成処理の詳細な処理手順を示すフローチャートである。
【図４８】末尾統合連字シーケンスマップ群生成処理の詳細な処理手順を示すフローチャートである。
【図４９】図２６に示した入力処理の詳細な処理手順を示すフローチャートである。
【図５０】ファイル絞込み処理の詳細な処理手順を示すフローチャートである。
【図５１】単字マップによるファイル絞込み処理の詳細な処理手順を示すフローチャートである。
【図５２】連字シーケンスマップによるファイル絞込み処理の詳細な処理手順を示すフローチャートである。
【図５３】先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理１の詳細な処理手順を示すフローチャートである。
【図５４】末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理１の詳細な処理手順を示すフローチャートである。
【図５５】先頭連字シーケンスマップＭｈｓ，ｒによるファイル絞込み処理２の詳細な処理手順を示すフローチャートである。
【図５６】末尾連字シーケンスマップＭｅｔ，ｒによるファイル絞込み処理２の詳細な処理手順を示すフローチャートである。
【図５７】図５５および図５６に示したコード変換処理の詳細な処理手順を示すフローチャートである。
【符号の説明】
【０２９１】
２００  検索システム
２０１  マップ生成装置
２０２  情報検索装置
２１０  検索対象コンテンツ
２１１  見出し語データ
１６０１  単語抽出部
１６０２  連字抽出部
１６０３  見出し語検索部
１６０４  連字シーケンスマップ生成部
１６０５  抽出連字変換部
１６０６  マップ群抽出部
１６０７  統合部
２３０１  入力部
２３０２  判断部
２３０７  検索部
２３０８  出力部
２４０３  検索対象連字抽出部
２４０４  検索文字列変換部
２４０５  フラグ列抽出部
２４０６  絞込み処理部
２４０７  計数部
２４０８  格納部
【図１】
0005391583.tif 000002
【図２】
0005391583.tif 000003
【図３】
0005391583.tif 000004
【図４】
0005391583.tif 000005
【図５】
0005391583.tif 000006
【図６】
0005391583.tif 000007
【図７】
0005391583.tif 000008
【図８】
0005391583.tif 000009
【図９】
0005391583.tif 000010
【図１０】
0005391583.tif 000011
【図１１】
0005391583.tif 000012
【図１２】
0005391583.tif 000013
【図１３】
0005391583.tif 000014
【図１４】
0005391583.tif 000015
【図１５】
0005391583.tif 000016
【図１６】
0005391583.tif 000017
【図１７】
0005391583.tif 000018
【図１８】
0005391583.tif 000019
【図１９】
0005391583.tif 000020
【図２０】
0005391583.tif 000021
【図２１】
0005391583.tif 000022
【図２２】
0005391583.tif 000023
【図２３】
0005391583.tif 000024
【図２４】
0005391583.tif 000025
【図２５】
0005391583.tif 000026
【図２６】
0005391583.tif 000027
【図２７】
0005391583.tif 000028
【図２８】
0005391583.tif 000029
【図２９】
0005391583.tif 000030
【図３０】
0005391583.tif 000031
【図３１】
0005391583.tif 000032
【図３２】
0005391583.tif 000033
【図３３】
0005391583.tif 000034
【図３４】
0005391583.tif 000035
【図３５】
0005391583.tif 000036
【図３６】
0005391583.tif 000037
【図３７】
0005391583.tif 000038
【図３８】
0005391583.tif 000039
【図３９】
0005391583.tif 000040
【図４０】
0005391583.tif 000041
【図４１】
0005391583.tif 000042
【図４２】
0005391583.tif 000043
【図４３】
0005391583.tif 000044
【図４４】
0005391583.tif 000045
【図４５】
0005391583.tif 000046
【図４６】
0005391583.tif 000047
【図４７】
0005391583.tif 000048
【図４８】
0005391583.tif 000049
【図４９】
0005391583.tif 000050
【図５０】
0005391583.tif 000051
【図５１】
0005391583.tif 000052
【図５２】
0005391583.tif 000053
【図５３】
0005391583.tif 000054
【図５４】
0005391583.tif 000055
【図５５】
0005391583.tif 000056
【図５６】
0005391583.tif 000057
【図５７】
0005391583.tif 000058