(57)【要約】【課題】全文書内の各文書のＮグラムに特別な関係を付与し、この情報をＮ文字インデックス情報として記憶装置に構造化して格納することにより、全文検索の処理効率の向上と、Ｎ文字インデックスの作成および変更に寄与すること。【解決手段】Ｎ文字インデックス作成部２０１が、文書データ記憶部１０１の文書を、ハッシュテーブル２０１ｂを参照しながら、各文書から切り出される部分Ｎ文字列の全文書内の位置情報と部分Ｎ文字列間のつながりを特定する連結関係および同一文字列接続関係を位置情報リスト２０１ａに書き込むことによってＮ文字インデックスを作成し、Ｎ文字インデックス検索部２０２は、Ｎ文字インデックス作成部２０１によって作成されたＮ文字インデックスを用いて、入力端末２０から入力された検索文字列に関連する文書を検索する。【選択図】      図１
2004164223.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係を指定することによって前記複数の文書を構造化するためのＮ文字インデックス作成プログラムであって、
前記部分Ｎ文字列の全文書内の出現位置を指定する出現位置指定工程と、
前記出現位置指定工程により同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定する連結関係指定工程と、
前記出現位置指定工程により前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定する接続関係指定工程と、
をコンピュータに実行させることを特徴とするＮ文字インデックス作成プログラム。
【請求項２】
複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係が指定されたＮ文字インデックス情報によって、複数の文書から検索文字列を含む文書を検索するＮ文字インデックス検索プログラムであって、
前記複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係、および前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持するＮ文字インデックス保持工程と、
分割された検索文字列の各分割文字列間の長さを算出する分割文字列長さ算出工程と、
前記Ｎ文字インデックス保持工程により保持された前記接続関係をもとに、前記分割文字列に対応する部分Ｎ文字列の前記出現位置毎に、該出現位置から前記分割文字列長さ算出工程により算出された長さを用いて、前記分割文字列に対応する部分Ｎ文字列を前記連結関係によって連結して得られた文字列と前期検索文字列とを照合して、検索する文字列検索工程と、
を含んだことを特徴とするＮ文字インデックス検索プログラム。
【請求項３】
分割文字列長さ算出工程は、前記検索文字列の文字数とＮ文字列の長さＮとを比較し、検索文字列の各分割文字列間の長さを算出することを特徴とする請求項２に記載のＮ文字インデックス検索プログラム。
【請求項４】
前記文字列検索工程は、前記各分割文字列の先頭が前記Ｎ文字インデックスによって指定され、指定された各先頭部分Ｎ文字列の位置から前記Ｎ文字インデックスの前記連結関係を辿ることにより、前記先頭部分Ｎ文字列を隣接する部分Ｎ文字列と連結し、連結された部分Ｎ文字列と検索文字列とを照合して検索することを特徴とする請求項２に記載のＮ文字インデックス検索プログラム。
【請求項５】
全文書の部分Ｎ文字列に関する前記出現位置、前記連結関係および前記接続関係を保持したＮ文字インデックス情報を用いて、全文書の中から、特定文書の文字列を前記検索文字列として検索し、検索結果をもとに特定文書に関連するＮ文字インデックスを削除する削除工程をさらに含んだことを特徴とする請求項２、３、または４に記載のＮ文字インデックス検索プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数の文書の文字列および検索情報の文字列から作成したＮ文字インデックスを作成し、そのＮ文字インデックス上の部分Ｎ文字列の関係を辿ることによって検索文字列に関連する文書を複数の文書の中から検索するＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムに関し、特に、検索情報の文字列が効率よく検索でき、もって文書の更新を容易に行うことが可能なＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムに関する。
【０００２】
【従来の技術】
最近のネットワーク技術の進展に伴って、ネットワーク上に存在する大量の文書、場合によってはギガバイトクラスの情報を扱えるようになってきた。これに対し、ある検索キーワードをもとに有用な情報とそうでない情報とを取捨選択する全文検索（すべての文書のすべての文字列を検索すること）の必要性が重要になりつつある。
【０００３】
かかる検索において、あるキーワードを含む文書を見つけ出す単純な方法として、蓄積された文書について、文書とキーワードを単純に文字照合するものである。通常、大量に蓄積された文書は磁気ディスク装置や光ディスク装置などの記憶装置に格納されており、全文書を順次、ディスクから読み出し単純文字照合を行っていたのでは、物理的に高速な検索速度は望めない。
【０００４】
そこで、蓄積すべき文書の構造化を行い記憶装置に格納することにより、全文検索速度の向上が図られてきた（例えば、構造化の例として特許文献１参照）。従って、ソフトウェアによる検索速度を向上させるために、文書をいかに構造的に格納し、格納の仕方に合わせた検索アルゴリズムをいかに設計するかが焦点とされてきた（例えば、特許文献２参照）。
【０００５】
以下、特許文献２において開示されている技術を説明するために必要となる概念を説明する。全文検索方法のひとつにＮグラム方式と呼ばれるものがあり、特許文献２では、これを各文書のインデックスの作成に応用する技術を開示している。以下、本発明に関連するＮグラム方式について説明する。
【０００６】
日本語の文書では分かち書きをしないため、単語の切り出し方が問題となる。自然言語の語句や文を構成する隣接する２文字や３文字の文字列を２グラム、３グラム、一般に隣接する文字からなる長さＮの文字列は、Ｎグラムと呼ばれている。例えば、「図書目録」という語を、先頭から１文字ずつずらして順に２文字ずつ切り出せば、連鎖する２文字の文字列である「図書」、「書目」、「目録」が２グラムとなる。グラムとは、「書かれたもの」を意味する語で、ＮグラムはＮ文字と読み返ることができる。
【０００７】
Ｎグラム方式の検索では、Ｎグラムの連結とそれらに対応する出現位置情報の連結を照合することで、任意の長さの文字列の出現位置を特定する。
【０００８】
特許文献２では、データベースにＮグラムの文字位置情報をそのＮグラムの種類と文脈に分類し、インデックスとして格納することにより、検索時において、検索キーワードのＮグラムを種類と文脈に分類し、インデックスを検索することにより該当する検索キーワードの出現位置を読み出す技術を開示している。
【０００９】
【特許文献１】
特開平５−１２０３２５号公報
【特許文献２】
特開平９−２８８６７６号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、特許文献２の検索方法では、検索の対象となる文書の数が大きくなれば、検索キーワードと全文書とのＮグラム方式による照合において、照合の組み合わせの数が巨大になり、検索処理速度の向上が望めない。また、複数の文書の部分データを書き換える必要性が生じた場合、一旦インデックスが作成されてしまうと、巨大なデータであるインデックス情報のどの部分を書き換え修正すればよいのかという組み合わせ的に困難な問題が生じる。
【００１１】
このため、文書が効率よく抽出でき、文書の修正時においてインデックスの作成変更が容易であるように、文書をいかにデータベースに構造化して格納するかという問題と、この構造化された情報を利用して、目的（文書検索、文書更新など）に応じた効率のよいアルゴリズムを設計することが極めて重要な課題となっている。
【００１２】
この発明は、上記従来技術による課題を解決するためになされたものであり、全文書内の各文書のＮグラムに特別な関係を付与し、この情報をＮ文字インデックス情報として記憶装置に構造化して格納することにより、全文検索の処理効率の向上と、Ｎ文字インデックス作成および変更に大きく寄与することが可能なＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、上記目的を達成するためになされたものであり、請求項１の発明に係るＮ文字インデックス作成プログラムは、複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係を指定することによって前記複数の文書を構造化するためのＮ文字インデックス作成プログラムであって、前記部分Ｎ文字列の全文書内の出現位置を指定する出現位置指定工程と、前記出現位置指定工程により同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定する連結関係指定工程と、前記出現位置指定工程により前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定する接続関係指定工程と、をコンピュータに実行させることを特徴とする。
【００１４】
この請求項１の発明によれば、部分Ｎ文字列の全文書内の出現位置を指定し、同一文書内の部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定し、部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定することとしたので、部分Ｎ文字列の出現位置に関する情報を縮約することができる。
【００１５】
また、請求項２の発明に係るＮ文字インデックス検索プログラムは、複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係が指定されたＮ文字インデックス情報によって、複数の文書から検索文字列を含む文書を検索するＮ文字インデックス検索プログラムであって、前記複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係、および前記部分文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持するＮ文字インデックス保持工程と、分割された検索文字列の各分割文字列間の長さを算出する分割文字列長さ算出工程と、前記Ｎ文字インデックス保持工程により保持された前記接続関係をもとに、前記分割文字列に対応する部分Ｎ文字列の前記出現位置毎に、該出現位置から前記分割文字列長さ算出工程により算出された長さを用いて、前記分割文字列に対応する部分Ｎ文字列を前記連結関係によって連結して得られた文字列と前記検索文字列とを照合して、検索する文字列検索工程と、を含んだことを特徴とする。
【００１６】
この請求項２の発明によれば、複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の部分文字列とその隣接部分Ｎ文字列との連結関係、および部分文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持し、分割された検索文字列の各分割文字列間の長さを算出し、保持された接続関係をもとに、分割文字列に対応する部分Ｎ文字列の出現位置毎に、該出現位置から分割文字列の長さを用いて、分割文字列に対応する部分Ｎ文字列を連結関係によって連結して得られた文字列と検索文字列とを照合して、検索するこことしたので、Ｎ文字インデックスを効率的に辿ることができ、もって効率のよい検索を実行することができる。
【００１７】
また、請求項３の発明に係るＮ文字インデックス検索プログラムは、請求項２の発明において、分割文字列長さ算出工程は、前記検索文字列の文字数とＮ文字列の長さＮとを比較し、検索文字列の各分割文字列間の長さを算出することを特徴とする。
【００１８】
この請求項３の発明によれば、分割文字列長さ算出工程は、前記検索文字列の文字数とＮ文字列の長さＮとを比較し、検索文字列の各分割文字列間の長さを算出することとしたので、検索文字列の文字の数と同じ文字数分の連結された部分Ｎ文字列を作成することができる。
【００１９】
また、請求項４の発明に係るＮ文字インデックス検索プログラムは、請求項２の発明において、前記文字列検索工程は、前記各分割文字列の先頭が前記Ｎ文字インデックスによって指定され、指定された各先頭部分Ｎ文字列の位置から前記Ｎ文字インデックスの前記連結関係を辿ることにより、前記先頭部分Ｎ文字列を隣接する部分Ｎ文字列と連結し、連結された部分Ｎ文字列と検索文字列とを照合して検索することを特徴とする。
【００２０】
この請求項４の発明によれば、各分割文字列の先頭が前記Ｎ文字インデックスによって指定され、指定された各先頭部分Ｎ文字列の位置からＮ文字インデックスの連結関係を辿ることにより、先頭部分Ｎ文字列が隣接する部分Ｎ文字列と連結し、連結された部分Ｎ文字列と検索文字列とを照合して検索することとしたので、各先頭部分Ｎ文字列の連結関係を辿りながら、全文書の中から検索文字列の検索をおこなうことができる。
【００２１】
また、請求項５の発明に係るＮ文字インデックス検索プログラムは、請求項２、３、または４の発明において、全文書の部分Ｎ文字列に関する前記出現位置、前記連結関係および前記接続関係を保持したＮ文字インデックス情報を用いて、全文書の中から、特定文書の文字列を前記検索文字列として検索し、検索結果をもとに特定文書に関連するＮ文字インデックスを削除する削除工程をさらに含んだことを特徴とする。
【００２２】
この請求項５の発明によれば、全文書の部分Ｎ文字列に関する出現位置、連結関係および接続関係を保持したＮ文字インデックス情報を全文書の中から、特定文書の文字列を前記検索文字列として検索し、検索結果をもとに特定文書に関連するＮ文字インデックスを削除することとしたので、Ｎ文字インデックスから不必要になった文書を削除し、新たなＮ文字インデックスを作成することができる。
【００２３】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの好適な実施の形態を詳細に説明する。なお、以下に示す実施の形態１では、Ｎ文字インデックスの作成プログラムとそれに基づくＮ文字インデックス検索プログラムの概念と、それらを実行するコンピュータシステムについて具体的に説明し、実施の形態２では、全文書中からある特定文書に関する情報を削除する場合、全文書を保持したＮ文字インデックスを特定文書の情報を削除したＮ文字インデックスに更新するＮ文字インデックス更新プログラムについて具体的に説明する。さらに、実施の形態３では、Ｎ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムについて詳細に説明する。
【００２４】
（実施の形態１）
まず、本実施の形態１に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの概念構成について説明する。図１は、本発明の実施の形態１に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの処理概念を示すフローチャートである。図１の説明の前に、図１で必要となるＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムについて概略を説明する。
【００２５】
図２に示すように、このＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムは、モニタ１０、入力端末２０、サーバ３０を備えている。
【００２６】
モニタ１０、入力端末２０、サーバ３０はコンピュータシステムを管理する管理者およびコンピュータシステムを利用するユーザによって使用される。入力端末２０は、検索時における検索キーワード（以下の説明において、検索文字列と呼ぶことにする）の入力や、文書を変更する場合に使用される。
【００２７】
サーバ３０は、文書データ記憶部１０１、検索部１０２を備える。文書データ記憶部１０１は、複数の文書が格納されており、各文書には、数値で表される文書番号や非数値、数字や記号列など（例えば、文書番号００１、文書番号ｄｏｃなど）で表される文書番号とともに、各文書に文字列または記号列からなる題名が付与されている。なお、全文書のデータがサーバ３０の記憶容量を越える場合は文書データ記憶部１０１の文書データをデータベースに格納してもよい。
【００２８】
検索部１０２は、Ｎ文字インデックス作成部２０１およびＮ文字インデックス検索部２０２を備えている。Ｎ文字インデックス作成部２０１は、文書データ記憶部１０１の文書を、ハッシュテーブル２０１ｂを参照しながら、各文書から切り出される部分Ｎ文字列の全文書内の位置情報と部分Ｎ文字列間のつながりを特定する関係をＮ文字インデックスとして位置情報リスト２０１ａに書き込む。
【００２９】
ここで、Ｎ文字インデックス作成部２０１は、ハッシュテーブル２０１ｂを、いろいろなデータに対して、なるべく一様になる数値を発生されるようなハッシュ関数とよばれる一般によく知られた関数を用いて作成する。
【００３０】
Ｎ文字インデックス検索部２０２は、Ｎ文字インデックス作成部２０１によって作成されたＮ文字インデックスを用いて、入力端末２０から入力された検索文字列に関連する文書を検索する。
【００３１】
ここで、本発明の実施の形態１に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの処理概念を説明する。図１は、本発明の実施の形態１に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの処理概念を示すフローチャートである。処理手順は、Ｎ文字インデックス作成処理（ステップＳ１〜ステップＳ３）とＮ文字インデックス検索処理（ステップＳ１０〜ステップＳ１４）の２つの処理手順からなる。
【００３２】
Ｎ文字インデックス作成処理手順を説明する。文書データ記憶部１０１に格納されている各文書の文書データ（題名）を検索部１０２に入力し（ステップＳ１）、これをもとに検索部１０２がＮ文字インデックスを作成する（ステップＳ２）。その後、検索部１０２が作成したＮ文字インデックスは文書データ記憶部１０１に出力（ステップＳ３）し、文書データ記憶部１０１は該Ｎ文字インデックスを記憶する。
【００３３】
Ｎ文字インデックス検索処理手順を説明する。ユーザまたはシステム管理者が入力端末２０から検索文字列を入力し（ステップＳ１０）、Ｎ文字インデックス検索部２０２は、この入力された検索文字列を分割し（ステップＳ１１）、その後、検索文字列の文字数とＮ文字列の数値Ｎによって決まる各分割文字列間の長さを算出する（ステップＳ１２）。Ｎ文字インデックス検索部２０２は、Ｎ文字インデックス作成処理手順において作成され文書データ記憶部１０１に記憶されているＮ文字インデックスを用いて、各文書の部分Ｎ文字情報をつないだものと、検索文字列の分割文字列をつないだものとを逐次照合しつつ、文字列検索を行い（ステップＳ１３）、全文書内の中から検索文字列に関連する文書を照合結果として出力する（ステップＳ１４）。
【００３４】
上述のＮ文字インデックス作成工程（ステップＳ２）、検索文字列分割工程（ステップＳ１１）、および文字列検索工程（ステップＳ１３）の詳細な説明は、それを説明するために必要なＮ文字インデックスについて、図３、４、および５の説明をした後におこなう。また、説明の便宜上、分割文字列長さ算出工程（ステップＳ１２）も併せて後で行う。
【００３５】
図３〜６を用いてＮ文字インデックス作成部２０１の具体的な作成および構成概念について説明する。図３は、Ｎ文字インデックスの概念を説明する説明図である。Ｎ文字インデックスは、位置情報リストとハッシュテーブルを有する。
【００３６】
位置情報リスト（図３の（ｂ））は、二次元配列となっており、行の要素としては文書番号、同一文字列接続関係、および連結関係が存在する。列毎に各Ｎグラムに関する情報を記載する。Ｎグラムは、各文書番号中の題名を一文字ずつずらしてＮ文字分切り出すことで作成する。
【００３７】
行の各要素は以下のようになっている。文書番号は、Ｎグラムが出現した文書番号である。同一文字列接続関係は、位置情報リストの中で、文字列が同一で前回（または後）に出現したＮグラムに関する情報が記載されている列の配列番号である。連結関係は、位置情報リストの中で、同一題名で一回前に切り出されたＮグラムに関する情報が記載されている列の配列番号である。
【００３８】
あるＮグラムを基点とすると、一回前に切り出されたＮグラムと、一回後に切り出されたＮグラムを考えることができるが、次のＮグラムの切り出し方として前あるいは後の何れか１つの連結関係の切り出し方を一方向連結関係と呼ぶことにする。これに対し、前後、両方の連結関係の切り出し方を双方向連結関係と呼ぶことにする。したがって、一方向連結関係を考える場合には、あるＮグラムの先頭あるいは末尾がある。
【００３９】
なお、図３の位置情報リストの配列番号に、ｌｉｓｔの隣にｌｉｓｔ＿ｂｅｆｏｒｅがあるがｌｉｓｔの隣にｌｉｓｔ＿ａｆｔｅｒであってもよい。
【００４０】
ハッシュテーブル（図３の（ａ））も位置リストと同様に、二元配列となっており、列の要素としては、Ｎ文字列、同一文字列接続関係が存在する。行毎に各Ｎグラムに関する情報を記憶する。行数は、少なくとも出現したＮグラムの全種類を格納できるくらい十分であるとする。
【００４１】
列の各要素の概要は、以下のようになっている。Ｎ文字列は、Ｎグラムの文字列がバイト配列されている。同一文字接続関係は、位置情報リストの中で、文字列が同一で前回（または後）に出現したＮグラムに関する情報が記載されている列の配列番号である。
【００４２】
図４は、Ｎ文字インデックスの接続関係の概念を説明する説明図である。ハッシュテーブルと位置情報リストは、ハッシュテーブルの中の同一文字列接続関係で繋がっている。位置情報リスト内部では、各Ｎグラムに関する一方向連結関係が同一文字列接続関係によって形成されている。同一文字列接続関係により各Ｎグラムのリストが隣り合った形で作成され、ハッシュテーブルの中の同一文字列接続関係が各Ｎグラムのリストの先頭になっており、同一文字列接続関係を辿りつづけることで、これらのリストすべてを参照することができる。また、同一文字列接続関係および連結関係の最後尾には、つながりの終わりを示す数値「−１」が記憶されている。
【００４３】
図５は、図３のＮ文字インデックス作成の具体例を示す図（その１）である。同図が示すとおり、Ｎ文字インデックス作成部２０１において、ハッシュテーブルが格納されており、文書データは文書データ記憶部１０１に格納されている。図５の（ａ）は、文書データであり、この例では、文書番号００１は題名「図書目録」、文書番号００２は題名「図書情報」、文書番号００３は題名「目録情報」をそれぞれ文書データとして持っている。
【００４４】
次に、ハッシュテーブルの具体例である図５の（ｂ）を説明する。文書番号００１の「図書目録」を２グラムに切り分け「図書」、「書目」、「目録」とし、それぞれに配列番号０、１、２を割り振り、同様に、その他の文書に関しても、それぞれの２グラムに配列番号を割り振る。
【００４５】
その結果、文書番号００１の「図書」は「０」、「書目」は「１」、「目録」は「２」と配列番号が付与され、文書番号００２の「図書」は「３」、「書情」は「４」、「情報」は「５」と配列番号が付き、文書番号００３の「目録」は「６」、「録情」は「７」、「情報」は「８」と配列番号が付く。
【００４６】
ハッシュ関数は、配列番号「０」と「３」の「図書」の重複、配列番号「２」と「６」の「目録」の重複、配列番号「５」と「８」の「情報」の重複なしで、番号の付け替えを行う。例えば、ハッシュ関数は、「図書」は「０」、「書目」は「１」、「目録」は「２」、「書情」は「３」、「情報」は「４」、「録情」は「５」と新たな番号を付与する。ここで、「０」〜「５」という数字を用いたが、実際はランダムな６個の異なる数字でもよいが、説明の便宜上これを用いる。
【００４７】
この新たなハッシュ関数による番号と、各２グラムのもともとの配列番号の中で最初に出現した配列番号からなるテーブルがハッシュテーブルである。例えば、「情報」は文書番号００２と文書番号００３の中に出現するが、もともとの配列番号の中に最初に出現する配列番号（これを先頭配列番号と呼ぶことにする）「５」であるから、新たなハッシュ関数による番号「４」を持つ「情報」は、テーブルの中に「５」を先頭配列番号として持つ。
【００４８】
図６は図３のＮ文字インデックス作成の具体例を示す図（その２）である。次に、「図書」に関するリストを示す図６の（ａ）を説明する。図５の（ｂ）のハッシュテーブルに基づいて、最初の列の文書番号は「００１」、連結関係の欄は、配列番号０の「図書」が配列番号１の「書目」につながっているので、「１」と記憶される。
【００４９】
次に、同一文字列接続関係の欄は、全文書中で、先頭の配列番号である「図書」、すなわち配列番号０の同一文字列接続関係が、配列番号３の「図書」と同一文字列であるから、「３」と記憶される。配列番号３の「図書」は、他に出現しないので、同一文字列接続関係「−１」を記憶し、「図書」に関するリストの２列目は、文書番号は「００２」、連結関係は「５」、同一文字列接続関係は「−１」となる。
【００５０】
図６の（ｂ）は、位置情報リストであり、その情報はハッシュテーブルに文書番号と連結関係を付加したものになっている。位置情報リストの欄の数値は、上記において説明したので省略する。
【００５１】
図１に示したＮ文字インデックス作成の処理手順について説明する。図７は、図１に示したＮ文字インデックス作成の処理手順を示したフローチャートである。処理は基本的には各文書番号の題名を一文字ずつずらしてＮ文字をきりだしてゆき、それらを位置情報リストに格納する。以下に処理の詳細を説明する。
【００５２】
同図に示すように、次に入力する位置情報リストの配列番号を示す値「ｌｉｓｔ」（図３参照）に初期値「１」を代入し、文書番号を示す値「ｄｏｃ」（図２参照）に初期値「１」を代入する（ステップＳ１００）。Ｎグラムの切り出しを開始し始める位置を示す値「ｐｏｓ」に初期値「１」を代入し、前回切り出したＮグラムの配列番号を示す値「ｌｉｓｔ＿ｂｅｆｏｒｅ」（図３参照）に初期値「−１」を代入する（ステップＳ１０１）。文書番号ｄｏｃ番の題名中のｐｏｓ番目から（ｐｏｓ＋Ｎ）番目を切り出す（ステップＳ１０２）。ステップＳ１０１で切り出したＮグラムをハッシュ関数に入力し、ハッシュ値「ｈａｓｈ＿ｖａｌ」を算出する（ステップＳ１０３）。位置情報リストｌｉｓｔ番目の同一文字列接続関係にハッシュテーブルｈａｓｈ＿ｖａｌ番目の同一文字列接続関係の値を代入する（ステップＳ１０４）。位置情報リストｌｉｓｔ番目の連結関係に「ｌｉｓｔ＿ｂｅｆｏｒｅ」を代入する（ステップＳ１０５）。「ｌｉｓｔ＿ｂｅｆｏｒｅ」に「ｌｉｓｔ」を代入する（ステップＳ１０６）。「ｌｉｓｔ」に「１」を加算し、「ｐｏｓ」に「１」を加算する（ステップＳ１０７）。文書番号ｄｏｃ番目の題名から全て切り出すまで、ステップＳ１０２からステップＳ１０７までを繰り返す（ステップＳ１０８）。「ｄｏｃ」に１加算する（ステップＳ１０９）。全文書が終了するまでステップＳ１０１からステップＳ１０９）を繰り返す（ステップＳ１１０）。
【００５３】
次に、図８および９を用いて、図１で示した検索文字列の分割処理の手順について説明する。検索文字列の分割処理では、検索文字列を複数のＮグラムに分割し、各分割された文字列をｓｔｒｉｎｇｉという変数で表し、その文字列間の長さをｃｏｎｎｅｃｔ＿ｎｅｘｔｊという変数で表すことにする。ここで、添え字ｉ＝１〜ｋ、ｊ＝１〜ｋ−１を走る。ｋは検索文字列の長さＭをＮで割った数を小数第一位で繰り上げた数である。ｃｏｎｎｅｃｔ＿ｎｅｘｔｊの数値は通常Ｎであるが、検索文字列がＮで割り切れない場合は、最後のｃｏｎｎｅｃｔ＿ｎｅｘｔｊはＮ未満になる場合がある。
【００５４】
図８は図１に示した検索文字列分割の一例を示す図である。同図示すとおり、Ｎが３であり、検索文字列が「検索データベース」である場合、最後のＮグラムが「ベース」になるようにするため、検索文字列を「検索デ」、「ータベ」、
「ベース」と２番目と３番目の分割文字列に重なりを作る。１番目の分割文字列の長さは３であるが、２番目の分割文字列の長さは２となる。また、分割文字列「ベース」に対応する「ｃｏｎｎｅｃｔ＿ｎｅｘｔ」は存在しない。
【００５５】
図９は、図８の検索文字列から分割文字列を作成し、分割文字列間の長さを算出する検索文字列長さ算出のフローチャートである。以下、処理手順を説明する。総文字数を示す値「ｌｅｎｇｔｈ」に初期値として検索文字列の文字数を代入する（ステップＳ２００）。「ｉ」に「１」を代入する（ステップＳ２０１）。「ｐｏｓ」に「１」を代入する（ステップＳ２０２）。ｌｅｎｇｔｈがＮより大きい場合は、ステップＳ２０４に、そうでない場合は、ステップＳ２１１に進む（ステップＳ２０３）。検索文字列のｐｏｓ〜（ｐｏｓ＋Ｎ−１）番目をｓｔｒｉｎｇｉに代入する（ステップＳ２０４）。ｌｅｎｇｔｈからＮを減算し、減算した値を新たにｌｅｎｇｔｈと定義する（ステップＳ２０５）。ｌｅｎｇｔｈがＮ以上の場合はステップＳ２０７へ、そうでない場合はステップＳ２０９へ進む（ステップＳ２０６）。「ｃｏｎｎｅｃｔ＿ｎｅｘｔｉ」に「Ｎ」を代入し、ステップＳ２０８に進む（ステップＳ２０７）。「ｃｏｎｎｅｃｔ＿ｎｅｘｔｉ」に「ｌｅｎｇｔｈ」を代入し、ステップＳ２０９へ進む（ステップＳ２０８）。「ｐｏｓ」に「ｃｏｎｎｅｃｔ＿ｎｅｘｔｉ」を加算する（ステップＳ２０９）。「ｉ」に「１」を加算し、ステップＳ２０３に進む（ステップＳ２１０）。検索文字列のｐｏｓ〜（ｐｏｓ＋Ｎ−１）番目をｓｔｒｉｎｇｉに代入（ステップＳ２１１）。
【００５６】
図１に示した文字列検索の処理手順を説明する前に、文字列検索の処理手順を、図５および図６を用いて具体的に説明する。図５の（ａ）に記載の全文書の中から「図書目録」を検索文字列として、Ｎ＝２の場合のＮ文字インデックステーブルを作成した場合の具体的な検索の手続きを説明する。
【００５７】
入力としての検索文字列「図書情報」は、「図書」と「情報」に分割される。「図書情報」は４文字の長さであり、２グラムで文書を記述するので、「図書」は長さ２と算出される。「情報」は最後の分割文字列なので長さが定義されていない。「図書」と「目録」をハッシュ関数に入力し、「図書」に関する情報が記載されている先頭の配列番号「０」と「目録」に関する情報が記載されている先頭の配列番号「２」が導出される。
【００５８】
次に、配列番号「０」から同一文字列接続関係を位置情報リスト（図６の（ｂ））上で辿り「３」を取得、また、配列番号「２」から同一文字列接続関係を位置情報リスト（図６の（ｂ））上で辿り「６」を取得。この例では、「図書」と「目録」はともに全文書内に２回しか出現していないので位置情報リスト（図６の（ｂ））を容易に辿ることが出来る。従って、接続関係により「図書目録」を表現する組み合わせとして「０−２」、「０−６」、「３−２」、「３−６」を考えることが出来る。
【００５９】
一方で、検索文字列の先頭である分割文字列「図書」から、長さ２すなわち、２つの連結関係を配列番号「０」から辿り「２」を取得し、同様に「３」から「５」を取得する。従って、連結関係により「図書目録」を表現するつながりは「０−２」と「３−５」の組み合わせであることがわかる。
【００６０】
上記接続関係によって得られた組み合わせと上記連結関係によって得られた組み合わせとを比較照合すると共通の検索照合文字列として「０−２」の組み合わせが抽出され、「０−２」に関連する文書番号００１の文書が検索結果として出力される。
【００６１】
なお、検索文字列が「図書情」であった場合の分割文字列の長さについて説明する。検索文字列「図書情」は「図書」と「書情」の２グラムに分割される。「書情」は最後の分割文字列なので長さが定義されない。この場合の「図書」は見かけ上、長さ２であるが「書情」と「書」を共有しているので、「図書」は長さ「１」と算出される。
【００６２】
次に、図１に示した文字列検索の処理手順を説明する。図１０は、図１に示した文字列検索の処理手順のフローチャートである。文字列検索では、位置情報リストから各ｓｔｒｉｎｇｉに関する同一文字列接続関係を辿りつつ、前回の連結関係であるｃｏｎｎｅｃｔ１との照合を行う。照合した結果、連結するものはｃｏｎｎｅｃｔ２（中間バッファの役割をする）を連結結果として再度ｃｏｎｎｅｃｔ１に格納する。ｓｔｒｉｎｇｉに対するハッシュ値ｈａｓｈ＿ｖａｌを算出する（ステップＳ３００）。ハッシュテーブルｈａｓｈ＿ｖａｌ番目の同一文字列接続関係から辿りつつ、同一文字列接続関係先の示す配列番号とｃｏｎｎｅｃｔ１内部の値を照合して配列番号が同じものを抽出（ｉ＝１の時は、ステップＳ３０１は行わない。すなわち、初回のループでは行わない。）する（ステップＳ３０１）。ステップＳ３０１で抽出した配列番号に対して、ｃｏｎｎｅｃｔ＿ｎｅｘｔｉ個分連結関係で辿った先の配列番号をｃｏｎｎｅｃｔ２に格納（ｉが最大値を取る場合は、ステップＳ３０２は行わない。すなわち、最後のループでは行わない。）する（ステップＳ３０２）。ステップＳ３０１、ステップＳ３０２を、同一文字列接続関係の値が「−１」になるまでループを繰り返す（ステップＳ３０３）。ｃｏｎｎｅｃｔ２をｃｏｎｎｅｃｔ１に入力する（ステップＳ３０４）。ステップＳ３００〜ステップＳ３０４をｉが最大値より大きくなるまでループを繰り返す（ステップＳ３０５）。ｃｏｎｎｅｃｔ１のリスト番号に記載されている文書番号を検索結果として出力する（ステップＳ３０６）。
【００６３】
なお、ここではＮ文字インデックスからＮ文字列に関する連結関係を抽出するのにハッシュ関数を使用しているが、例えば木構造による探索を行って、連結関係を抽出してもよい。
【００６４】
上述してきたように、本実施の形態１では、複数の文書の文字列および検索情報の文字列から作成したＮ文字インデックスを作成し、そのＮ文字インデックス上の部分Ｎ文字列の関係を辿ることによって、検索情報の文字列が効率よく検索することが可能となる。
【００６５】
（実施の形態２）
ＰＣ内にある文書検索データからある文書番号のデータを削除するため、インデックス内部の情報を削除する実施例を示す。削除処理では、実際にはユーザレスポンスを上昇されるために実際には位置情報リスト内の文書番号を削除記号（例えば「−１」）に置き換えている。実施の形態２を実現するコンピュータシステムは、実施の形態１のものと全く同一とする。同様に、インデックス内部の詳細も全く同一とする。
【００６６】
特定の文書を全文書の中から削除する処理手順について説明する。図１１は、本実施の形態２に特定の文書を全文書の中から削除する処理手順を示すフローチャートである。削除したい文書番号の題名を図１の検索文字列に入力する（ステップＳ２１）と、文字列分割処理において先頭のＮグラム（ｓｔｒｉｎｇ１）が出力される（ステップＳ２２）。文書番号、ｓｔｒｉｎｇ１およびインデックスを文書削除処理に入力する（ステップＳ２３）とインデックスからその文書番号に関する情報が削除された後、新たなインデックスが作成され（ステップＳ２４）、新たなインデックスが出力される（ステップＳ２５）。
【００６７】
文字列分割処理手順は、上述した通りなので省略する。以下、文書削除処理手順の詳細を図１２に基づいて説明する。位置情報リスト内の、ある文書番号に関する情報を削除する。ｓｔｒｉｎｇ１に対するハッシュ値ｈａｓｈ＿ｖａｌを算出する（ステップＳ４００）。ハッシュテーブル中の同一文字列接続関係を辿る（ステップＳ４０１）。辿った同一文字列接続関係先で削除したい文書番号が見つかったら、ステップＳ４０３へ、そうでなかったらステップＳ４０１へ行く（ステップＳ４０２）。削除したい文書番号に削除記号を入力する（ステップＳ４０３）。削除したい文書番号に関する連結関係を辿る（ステップＳ４０４）。削除したい文書番号に削除記号を入力する（ステップＳ４０５）。連結関係先で終端記号「−１」が見つかるまでステップＳ４０４、ステップＳ４０５を繰り返す（ステップＳ４０６）。
【００６８】
上述してきたように、本実施の形態２では、削除後の検索時には、削除記号を有するものが抽出されても検索結果から除外することができる。また、削除記号を有する部分の領域を再利用したい場合や、削除記号を有する部分に張られている連結関係を作成しなおす場合などは、ユーザがシステムを利用していない時などを見計らって位置情報リストに対して処理を行うことができる。また、ユーザレスポンスを重視しない場合は、連結関係を双方向にすると、削除中に連結関係を張りなおすことや、削除された領域の再利用などが可能となる。
【００６９】
また、ここではインデックスからＮ文字に関する連結関係を抽出するのにハッシュ関数を使用しているが、例えば木構造による探索を行って連結関係を抽出しても同様の効果が得られる。
【００７０】
（実施の形態３）
本実施の形態３では、上記実施の形態１、２に示したＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムの詳細について説明する。
【００７１】
図１３に示すコンピュータシステム１０００は、本体部１０１０、本体部１０１０からの指示により表示画面１０２０ａに画像等の情報を表示するディスプレイ１０２０、このコンピュータシステム１０００に種々の情報を入力するためのキーボード１０３０、ディプレイ１０２０の表示画面１０２０ａ上の任意の位置を指定するマウス１０４０、ローカルエリアネットワーク（ＬＡＮ）１０６０または広域エリアネットワーク（ＷＡＮ）に接続するＬＡＮインターフェース、インターネットなどの公衆回線１０７０に接続するモデム１０５０が備えられている。ここで、ＬＡＮ１０６０は、ほかのコンピュータシステム（ＰＣ）１１１０、サーバ１１２０、プリンタ１１３０等とコンピュータシステム１０００とを接続している。また、図１４に示すように、本体部１０１０は、ＣＰＵ１２１０、ＲＡＭ１２２０、ＲＯＭ１２３０、ハードディスクドライブ（ＨＤＤ）１２４０、ＣＤ−ＲＯＭドライブ１２５０、ＦＤドライブ１２６０、Ｉ／Ｏインターフェース１２７０およびＬＡＮインターフェース１２８０を備えている。
【００７２】
このコンピュータシステム１０００においてモデル構築プログラムを実行する場合、フロッピー（Ｒ）ディスク（ＦＤ）１０８０、ＣＤ−ＲＯＭ１０９０、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体、モデム１０５０およびＬＡＮインターフェースを利用し回線を介して接続されたサーバ１１２０のデータベース、あるいは、ほかのコンピュータシステム（ＰＣ）１１１０のデータベースに格納等の記憶媒体に記憶されたモデル構築プログラムをコンピュータシステム１０００にインストールする。インストールされたモデル構築プログラムは、ＨＤＤ１２４０に記憶され、ＲＡＭ１２２０、ＲＯＭ１２３０などを利用してＣＰＵ１２１０により実行される。ここで、記憶媒体とは、ＣＤ−ＲＯＭ１０９０、フロッピー（Ｒ）ディスク１０８０、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体やコンピュータシステム１０００の内外に備えられたハードディスクドライブＨＤＤ１２４０等の記憶装置のほか、ＬＡＮ１０６０を介して接続されたインストール元のモデル構築プログラムを保持するサーバ１１２０のデータベース、あるいは、ほかのコンピュータシステム１１１０並びにそのデータベースや、さらに公衆回線１０７０上の伝送媒体をも含むものである。
【００７３】
上述してきたように、本実施の形態３では、実施の形態１、２に示したＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムをコンピュータシステム１０００上で実行することで、実施の形態１、２に示した実施の形態１、２に示したＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムと同様の効果を、一般的なコンピュータシステムを用いて実現することができる。
【００７４】
（付記１）複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係を指定することによって前記複数の文書を構造化するためのＮ文字インデックス作成プログラムであって、
前記部分Ｎ文字列の全文書内の出現位置を指定する出現位置指定工程と、
前記出現位置指定工程により同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定する連結関係指定工程と、
前記出現位置指定工程により前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定する接続関係指定工程と、
をコンピュータに実行させることを特徴とするＮ文字インデックス作成プログラム。
【００７５】
（付記２）複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係が指定されたＮ文字インデックス情報によって、複数の文書から検索文字列を含む文書を検索するＮ文字インデックス検索プログラムであって、
前記複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係、および前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持するＮ文字インデックス保持工程と、
分割された検索文字列の各分割文字列間の長さを算出する分割文字列長さ算出工程と、
前記Ｎ文字インデックス保持工程により保持された前記接続関係をもとに、前記分割文字列に対応する部分Ｎ文字列の前記出現位置毎に、該出現位置から前記分割文字列長さ算出工程により算出された長さを用いて、前記分割文字列に対応する部分Ｎ文字列を前記連結関係によって連結して得られた文字列と前期検索文字列とを照合して、検索する文字列検索工程と、
を含んだことを特徴とするＮ文字インデックス検索プログラム。
【００７６】
（付記３）分割文字列長さ算出工程は、前記検索文字列の文字数とＮ文字列の長さＮとを比較し、検索文字列の各分割文字列間の長さを算出することを特徴とする付記２に記載のＮ文字インデックス検索プログラム。
【００７７】
（付記４）前記文字列検索工程は、前記各分割文字列の先頭が前記Ｎ文字インデックスによって指定され、指定された各先頭部分Ｎ文字列の位置から前記Ｎ文字インデックスの前記連結関係を辿ることにより、前記先頭部分Ｎ文字列を隣接する部分Ｎ文字列と連結し、連結された部分Ｎ文字列と検索文字列とを照合して検索することを特徴とする付記２に記載のＮ文字インデックス検索プログラム。
【００７８】
（付記５）全文書の部分Ｎ文字列に関する前記出現位置、前記連結関係および前記接続関係を保持したＮ文字インデックス情報を用いて、全文書の中から、特定文書の文字列を前記検索文字列として検索し、検索結果をもとに特定文書に関連するＮ文字インデックスを削除する削除工程をさらに含んだことを特徴とする付記２、３、または４に記載のＮ文字インデックス検索プログラム。
【００７９】
（付記６）複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係を指定することによって前記複数の文書を構造化するためのＮ文字インデックス作成システムであって、
前記部分Ｎ文字列の全文書内の出現位置を指定する出現位置指定手段と、
前記出現位置指定手段により同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定する連結関係指定手段と、
前記出現位置指定手段により前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定する接続関係指定手段と、
を備えたことを特徴とするＮ文字インデックス作成システム。
【００８０】
（付記７）複数の文書の文字列から切り出した各部分Ｎ文字列の位置関係が指定されたＮ文字インデックス情報によって、複数の文書から検索文字列を含む文書を検索するＮ文字インデックス検索システムであって、
前記複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の前記部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係、および前記部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持するＮ文字インデックス保持手段と、
分割された検索文字列の各分割文字列間の長さを算出する分割文字列長さ算出手段と、
前記Ｎ文字インデックス保持手段により保持された前記接続関係をもとに、前記分割文字列に対応する部分Ｎ文字列の前記出現位置毎に、該出現位置から前記分割文字列長さ算出手段により算出された長さを用いて、前記分割文字列に対応する部分Ｎ文字列を前記連結関係によって連結して得られた文字列と前期検索文字列とを照合して、検索する文字列検索手段と、
を備えたことを特徴とするＮ文字インデックス検索システム。
【００８１】
【発明の効果】
以上説明したように、請求項１の発明によれば、部分Ｎ文字列の全文書内の出現位置を指定し、同一文書内の部分Ｎ文字列とその隣接部分Ｎ文字列との連結関係を指定し、部分Ｎ文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係を指定することとしたので、部分Ｎ文字列の出現位置に関する情報を縮約することが可能なＮ文字インデックス作成プログラムが得られるという効果を奏する。
【００８２】
また、請求項２の発明によれば、複数の文書の部分Ｎ文字列に関する全文書内における出現位置、同一文書内の部分文字列とその隣接部分Ｎ文字列との連結関係、および部分文字列と全文書内の他の位置に現れた同一部分Ｎ文字列との接続関係が特定されたＮ文字インデックスを保持し、分割された検索文字列の各分割文字列間の長さを算出し、保持された接続関係をもとに、分割文字列に対応する部分Ｎ文字列の出現位置毎に、該出現位置から分割文字列の長さを用いて、分割文字列に対応する部分Ｎ文字列を連結関係によって連結して得られた文字列と検索文字列とを照合して、検索することとしたので、Ｎ文字インデックスを効率的に辿ることができ、もって効率のよい検索を実行することが可能なＮ文字インデックス検索プログラムが得られるという効果を奏する。
【００８３】
また、請求項３の発明によれば、分割文字列長さ算出工程は、前記検索文字列の文字数とＮ文字列の長さＮとを比較し、検索文字列の各分割文字列の長さを算出することとしたので、検索文字列の文字の数と同じ文字数分の連結された部分Ｎ文字列を作成することが可能なＮ文字インデックス検索プログラムが得られるという効果を奏する。
【００８４】
また、請求項４の発明によれば、各分割文字列の先頭が前記Ｎ文字インデックスによって指定され、指定された各先頭部分Ｎ文字列の位置からＮ文字インデックスの連結関係を辿ることにより、先頭部分Ｎ文字列が隣接する部分Ｎ文字列と連結し、連結された部分Ｎ文字列と検索文字列とを照合して検索することとしたので、各先頭部分Ｎ文字列の連結関係を辿りながら、全文書の中から検索文字列の検索をおこなうことが可能なＮ文字インデックス検索プログラムが得られるという効果を奏する。
【００８５】
また、請求項５の発明によれば、全文書の部分Ｎ文字列に関する出現位置、連結関係および接続関係を保持したＮ文字インデックス情報を全文書の中から、特定文書の文字列を前記検索文字列として検索し、検索結果をもとに特定文書に関するＮ文字インデックスを削除することとしたので、Ｎ文字インデックスから不必要になった文書を削除し、新たなＮ文字インデックスを作成することが可能なＮ文字インデックス検索プログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態１に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムの概念構成を示すフローチャートである。
【図２】本発明をコンピュータ上で実施するためのシステム構成図である。
【図３】Ｎ文字インデックスの概念を説明する説明図である。
【図４】Ｎ文字インデックスの接続関係の概念を説明する説明図である。
【図５】図３のＮ文字インデックスの具体例を示す図（その１）である。
【図６】図３のＮ文字インデックスの具体例を示す図（その２）である。
【図７】Ｎ文字インデックス作成の処理手順を示すフローチャートである。
【図８】検索文字列から分割文字列を作成し、分割文字列の長さを説明するための一例を示す図である。
【図９】検索文字列から分割文字列を作成し、分割文字列の長さを算出する処理手順を示すフローチャートである。
【図１０】検索文字列照合の処理手順を示すフローチャートである。
【図１１】本実施の形態２に係る特定文書の削除処理の手順を示すフローチャートである。
【図１２】特定文書情報の削除処理のフローチャートである。
【図１３】実施の形態１、２に示したＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムの詳細な説明図である。
【図１４】実施の形態１、２に係るＮ文字インデックス作成プログラムおよびＮ文字インデックス検索プログラムを実行するコンピュータシステムの機能ブロック図である。
【符号の説明】
１０  モニタ
２０  入力端末
３０  サーバ
１０１  文書データ記憶部
１０２  検索部
２０１  Ｎ文字インデックス作成部
２０１ａ  位置情報リスト
２０１ｂ  ハッシュテーブル
２０２  Ｎ文字インデックス検索部
１０００，１１１０  コンピュータシステム
１０１０  本体部
１０２０  ディスプレイ
１０２０ａ  表示画面
１０３０  キーボード
１０４０  マウス
１０５０  モデム
１０６０  ＬＡＮ
１０７０  公衆回線
１０８０  フロッピー（Ｒ）ディスク
１０９０  ＣＤ−ＲＯＭ
１１２０  サーバ
１１３０  プリンタ
１２１０  ＣＰＵ
１２２０  ＲＡＭ
１２３０  ＲＯＭ
１２４０  ハードディスクドライブ（ＨＤＤ）
１２５０  ＣＤ−ＲＯＭドライブ
１２６０  ＦＤドライブ
１２７０  Ｉ／Ｏインターフェース
１２８０  ＬＡＮインターフェース
【図１】
2004164223.tif 000003
【図２】
2004164223.tif 000004
【図３】
2004164223.tif 000005
【図４】
2004164223.tif 000006
【図５】
2004164223.tif 000007
【図６】
2004164223.tif 000008
【図７】
2004164223.tif 000009
【図８】
2004164223.tif 000010
【図９】
2004164223.tif 000011
【図１０】
2004164223.tif 000012
【図１１】
2004164223.tif 000013
【図１２】
2004164223.tif 000014
【図１３】
2004164223.tif 000015
【図１４】
2004164223.tif 000016