(57)【要約】【課題】文書中から検索キーワードを高速に検索する文書検索手段を得る。【解決手段】文書における検索キーワードの出現位置を照合結果として出力する文字列照合処理部と、所定の検索条件に適合する上記照合結果を検索結果として出力する複合条件判定部とを備える文書検索装置において、上記複合条件判定部は、上記文字列照合処理部がすべての照合結果を出力し終える前に、上記照合結果が上記検索条件に適合するかどうかを判定する判定処理を開始し、上記検索条件に適合する照合結果を検索結果として出力する構成とした。【選択図】          図１
2004157628.tif 000002
【特許請求の範囲】
【請求項１】
入力された検索キーワードと文書とを照合し、文書における検索キーワードの出現位置を照合結果として出力する文字列照合ステップと、
上記出現位置が所定の検索条件に適合する場合に、上記照合結果を検索結果として出力する複合条件判定ステップとを有する文書検索方法において、
上記複合条件判定ステップは、上記文字列照合処理ステップにおいてすべての照合結果を出力される前に、上記照合結果が上記検索条件に適合するかどうかを判定する判定処理を開始し、上記検索条件に適合する照合結果を検索結果として出力し、以後の処理を中止することを特徴とする文書検索方法。
【請求項２】
文書における検索キーワードの出現位置を照合結果として出力する文字列照合処理部と、
所定の検索条件に適合する上記照合結果を検索結果として出力する複合条件判定部とを備える文書検索装置において、
上記複合条件判定部は、上記文字列照合処理部がすべての照合結果を出力し終える前に、上記照合結果が上記検索条件に適合するかどうかを判定する判定処理を開始し、上記検索条件に適合する照合結果を検索結果として出力する構成とされたことを特徴とする文書検索装置。
【請求項３】
前記文字列照合処理部は、文書における文字の出現位置を予め記憶する文書索引情報を参照し、前記検索キーワードが含むそれぞれの文字について出現位置が連続している文書索引情報を取得して、上記検索キーワードの先頭の文字の上記文書索引情報における出現位置を前記照合結果として出力する構成とされたことを特徴とする請求項２に記載された文書検索装置。
【請求項４】
前記文字列照合処理部は、文字が文書のページ内に出現する行とカラムを該文字の上記文書における出現位置として記憶する文書索引情報を参照して、前記照合結果を出力する構成とされたことを特徴とする請求項３に記載された文書検索装置。
【請求項５】
前記複合条件判定部は、複数の検索キーワードの出現位置が所定の関係にあることを指定する近傍条件を、上記検索条件とする構成とされたことを特徴とする請求項２に記載された文書検索装置。
【請求項６】
前記複合条件判定部は、文書の所定の構成部位に検索キーワードが出現する文書を検索対象として指定する文字列範囲条件を、上記検索条件とする構成とされたことを特徴とする請求項２に記載された文書検索装置。
【請求項７】
前記複合条件判定部は、所定の文書属性を有する文書を検索対象として指定する文字属性条件を、上記検索条件とする構成とされたことを特徴とする請求項２に記載された文書検索装置。
【請求項８】
前記複合条件判定部は、所定の文書構成単位中に複数の検索キーワードが同時に出現する文書を検索対象として指定する文脈条件を、上記検索条件とする構成とされたことを特徴とする請求項２に記載された文書検索装置。
【請求項９】
前記複合条件判定部は、複数の検索条件同士が所定の論理関係にあることを指定する論理条件を、上記検索条件とする構成とされたことを特徴とする請求項２乃至請求項９のいずれか一に記載された文書検索装置。
【請求項１０】
コンピュータに、文書における検索キーワードの出現位置を照合結果として出力する文字列照合処理手順と、
所定の検索条件に適合する上記照合結果を検索結果として出力する複合条件判定手順とを実行させる文書検索プログラムにおいて、
上記複合条件判定手順は、上記文字列照合処理手順がすべての照合結果を出力し終える前に、上記照合結果が上記検索条件に適合するかどうかを判定する判定処理を開始し、上記検索条件に適合する照合結果を検索結果として出力することを特徴とする文書検索プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報検索処理の分野において利用可能な文書検索方法及びその装置及びそのプログラムに関するものである。
【０００２】
【従来の技術】
検索対象文書における複数の検索キーワードの出現位置間の距離を判定する近傍条件判定、ある文書単位に検索キーワードが同時に出現する／しないを判定する文脈条件判定、それぞれの検索条件のＡＮＤ／ＯＲ／ＮＯＴを判定する論理条件判定といった、各種の複合条件判定処理を高速に行う従来の手法としては、特許文献１が挙げられる。図１６は、特許文献１に示された従来の文書検索装置である。本図において、文書検索装置１００は、検索制御手段１０１、記憶装置制御手段１０２、複合条件判定手段１０３、文字列照合手段１０４、文字列記憶手段１０５およびホストコンピュータ１０６から構成される。
【０００３】
文書検索装置１００の文書検索時の動作について説明する。文書検索装置１００は、検索制御手段１０１から送られてくる検索キーワードと、文字コードとして文字列記憶手段１０５に蓄積された文書データを基に、文字列照合手段１０４によって文字列照合処理を行い、検索キーワードの文書データ内における出現位置を探索する。文字列照合手段１０４は、文字列照合処理の結果を複合条件判定手段１０３に送る。複合条件判定手段１０３は検索制御手段１０１から送られてくる複合条件と文字列照合手段１０４から送られてくる文字列照合処理の結果を基に、近傍条件判定、文脈条件判定、論理条件判定などの複合条件判定処理を行い、複合条件に合致する文書をホストコンピュータ１０５に出力する。
【０００４】
【発明が解決しようとする課題】
上記文書検索装置１００は、文書検索として検索対象文書中に存在する検索キーワードの出願位置の全ての探索が完了した後に、複合条件判定を実行する。具体的には、文字列照合手段１０４が、文字列記憶手段１０５に蓄積された全ての文書データに対して、文字列照合処理を行い指定された検索キーワードの出現位置を全て探索し、文字列照合処理の結果を複合条件判定手段１０３に転送する。そして、複合条件判定手段１０３が、文字列照合処理の結果を基に複合条件判定処理を行うという２段階のステップを踏む。そのため、結果として、複合条件判定手段１０４が複合条件判定処理に使用しない無駄な文字列照合処理の結果が生成されるといった問題がある。
【０００５】
例えば、図１７に示された文書を検索対象とし、「情報」と「分野」という検索キーワードが５文字以内に近接して現れるか否かの判定を行う時に、最初の１０文字目までの「近年、情報科学の分野」の部分に対してのみ、文字列照合処理を行い、複合条件判定処理を行うことで図１７に示された文書が、検索条件に合致するということがわかる。前述の文書検索装置を用いた場合、図１７に示された文書の全文に対して、文字列照合処理を行い、その後複合条件判定処理を行うため、結果として、図１７に示された１１文字目以降の文字列照合処理は無駄な処理となってしまうという問題がある。
【０００６】
また、文字列記憶手段１０５に文書データを文字コードとして登録するため、文字列照合処理を行う時に、どのような検索キーワードであっても、文字列記憶手段１０５に蓄積されている全ての文書データを文字列照合手段１０４へ転送する必要があった。そのため、文字列記憶手段１０５から文字列照合手段１０４への文書データの転送に時間を要するという問題があった。
【０００７】
【特許文献１】
特許第３０９９２９８号  「文書検索方法および装置」
【０００８】
【課題を解決するための手段】
本発明に係る文書検索方法は、文書における検索キーワードの出現位置を照合結果として出力する文字列照合処理ステップと、所定の検索条件に適合する上記照合結果を検索結果として出力する複合条件判定ステップとを有する文書検索方法において、上記複合条件判定ステップが、上記文字列照合処理部がすべての照合結果を出力し終える前に、上記照合結果が上記検索条件に適合するかどうかを判定する判定処理を開始し、上記検索条件に適合する照合結果を検索結果として出力するものである。
【０００９】
【発明の実施の形態】
実施の形態１．
図１は実施の形態１における文書検索装置の構成図である。図の文書検索装置１において、登録処理部２は、検索対象となる文書データの登録を行う。検索処理部３は、登録処理部２によって登録された文書データを対象として検索を行う。記憶装置管理部４は、登録処理部２からの要求に応じて検索対象となる文書データの保管を行い、また検索処理部３からの要求に応じて検索対象となる文書データの読み出しを行う。記憶装置５は、文書データを記憶する部位であって、記憶装置管理部４からの指示に従って文書データを記憶し、保管している文書データを出力する。データ生成部６は、登録処理部２内にあって、記憶装置５に登録する検索時に必要となる文書データの生成を行う。データ登録部７は、記憶装置管理部４にあって、データ生成部６が生成した文書データを記憶装置５に登録する。またデータ読み出し部８は、同じく記憶装置管理部４にあって、記憶装置５から上記文書データの読み出しを行う。検索制御部９は、文書検索装置１の検索処理の制御を行い、また文字列照合部１０は検索キーワードと記憶装置５に蓄積されている文書データの文字列照合処理を行って、検索キーワードの文書内における出現位置を探索する。複合条件判定部１１は、文字列照合部１０の文字列照合処理の結果を基に近傍条件判定、文字列範囲条件判定、文書属性条件判定、文脈条件判定、論理条件判定の判定処理を行う。バッファ１２には、検索処理の実行時に、記憶装置４に蓄積された文書データが転送される。バッファ１３には、検索処理の実行時に、文字列照合部１０の文字列照合処理の結果や記憶装置５に蓄積された文書データが転送される。
【００１０】
次に、文書検索装置１の動作原理について説明する。文書検索装置１は、文字列照合部１０により文書データ中から検索キーワードの出現位置を検索するが、その検索結果を逐次バッファ１３に書き出し、その一方で複合条件判定部１１が文字列照合部１０によって逐次書き出される検索結果に対して複合条件判定を実行するものである。その結果、複合条件判定処理によって複合条件または論理条件を満たす文字列が検出されるとすぐに処理結果を返すことができ、その一方でそのような文字列が検出された時点で文字列照合部１０の処理を停止することも可能となるので、検索キーワードを検索するための無駄な文字列走査を排除することができる。
【００１１】
初めに、文書検索装置１における文書データ生成処理について説明する。文書データは記憶装置５に最終的に記憶されることになるが、ここで記憶される文書データは登録処理部２におけるデータ生成部６によって記憶装置管理部４のデータ登録部７が呼び出され、その結果データ登録部７から文書データが記憶装置５に転送されて記憶される。データ生成部６は、各文書データに文書ＩＤを付与する。文書ＩＤは、ユニークに文書データを識別しうる値であれば足り、具体的な文書ＩＤの取得方法としては、例えば１から開始される連続した値を順次文書ＩＤとして付す方法が考えられる。
【００１２】
次に、実施の形態１における文書検索装置１の検索処理について説明する。図２は文書検索装置１による検索処理を示すフローチャートである。まずステップＳ１において、ユーザが検索条件を文書検索装置１に指定する。検索条件とは、検索キーワードおよび複合条件のことをいい、検索キーワードとは、文書中に出現する特定の文字又は文字列のことをいう。ここにおいて、検索キーワードを複数個指定するようにしてもよい。また、複合条件としては、近傍条件、論理条件などがある。複合条件についても、複数種類の条件を組み合わせて指定させるようにしてもよい。以下に近傍条件、論理条件の意味について、順に説明する。
【００１３】
近傍条件とは、検索キーワード間の距離情報を条件とした検索条件をいい、例えば、検索キーワードが指定文字数以内に近接して現れる文書を検索対象とする近傍内条件、検索キーワードが指定文字数以上離れて現れる文書を検索対象とする近傍外条件、検索キーワードがちょうど指定文字数だけ離れて現れる文書を検索対象とする近傍等条件に基づく検索処理を行う際に指定する。また、検索キーワードの順序関係を考慮に入れるか否かを指定することもある。
【００１４】
複数の検索キーワードが指定された時の近傍条件についてに説明する。検索条件として、Ｍ個の検索キーワードが指定されたものとし、各検索キーワードを、指定された順にＫＥＹ１，ＫＥＹ２，…，ＫＥＹＭとする。検索キーワードの順序関係を考慮に入れた近傍検索では、ＫＥＹ１−ＫＥＹ２間，ＫＥＹ２−ＫＥＹ３間，…，ＫＥＹＭ−１−ＫＥＹＭ間の全てで近傍条件を満たす文書を検索対象とする。また、検索キーワードの順序関係を考慮に入れない近傍検索では、全ての検索キーワードＫＥＹＸ（Ｘ＝１，２，…，Ｍ）が任意の検索キーワードＫＥＹＹ（Ｘ≠Ｙ）に対して近傍条件を満たす文書を検索対象とする。
【００１５】
論理条件とは、指定した複数の検索条件間の論理関係をいう。検索キーワードを複数指定した場合は必ず論理条件を指定する必要がある。検索キーワード間の条件として指定できる論理条件は、例えば、検索キーワードが同一文書中に同時に出現する文書を検索対象とするＡＮＤ条件、検索キーワードのいずれかが同一文書中に出現する文書を検索対象とするＯＲ条件、検索キーワードの前者は同一文書中に出現するが、後者は同一文書中に出現しない文書を検索対象とするＡＮＤ  ＮＯＴ条件などが考えられる。
【００１６】
以上が近傍条件、論理条件の意味である。ここで、論理条件を複数組み合わせた場合には、一定の優先度を設けて、各論理条件の判定順序を定義することもできる。例えばＡＮＤ、ＡＮＤ  ＮＯＴ、ＯＲの順に優先度を付す場合などである。このような優先度を付した場合、論理条件が、「ＫＥＹ１  ＯＲ  ＫＥＹ２  ＡＮＤ  ＫＥＹ３  ＡＮＤ  ＮＯＴ  ＫＥＹ４」であるならば、まず、「ＫＥＹ２  ＡＮＤ  ＫＥＹ３」の判定が行われる。この結果をＢ１とすると、次に「Ｂ１  ＡＮＤ  ＮＯＴ  ＫＥＹ４」との判定が行われる。この結果をＢ２とすると、次に「Ｂ２  ＯＲ  ＫＥＹ１」の判定が行われる。その他、括弧を用いることで隣接する論理条件間の結合を明示させることで、局所的に論理条件の優先度を変更できるようにしてもよい。その場合には、逆ボーランド記法に対する構文解析木を生成して、木の根（ルート）に近い方から順次論理演算を実行することで、あいまい性を排除した論理条件の適用が可能となる。
【００１７】
再び文書検索装置１の検索処理について説明する。前述の通り、ステップＳ１において検索条件を指定した後、文書検索装置１はステップＳ２において、検索制御部９が検索条件の解析を行う。論理条件を複数組み合わせた場合についての取り扱いについては上述した通りである。続いて、ステップＳ３において、検索制御部９はこの検索条件の解析結果を元に、文字列照合処理に必要となる文書データのデータ転送命令をデータ読み出し部８に発行し、文字列照合部１０に文字列照合処理の実行命令を発行する。次にステップＳ４において、データ読み出し部８は、検索処理の実行時に検索制御部９の命令により指定された文書データを記憶装置５から読出し、バッファ１２へ転送する。さらにステップＳ５においては文字列照合部１０による文字列照合判定処理及び複合条件判定部１１による複合条件判定処理を実行する。これらの処理が終わったら、ステップＳ６において、検索処理部３はユーザへ検索でヒットした文書のリストを返す。以上が文書検索装置１の検索処理である。
【００１８】
次に前述のステップＳ５における文字列照合判定処理及び複合条件判定処理の詳細について説明する。図３は文字列照合処理及び複合条件判定処理の動作を示すフローチャートである。まず図のステップＳ１０において、文字列照合部１０処理はバッファ１２から文書データを取得する。続いてステップＳ１１において文字列照合処理を行い、その処理結果を複合条件判定部１１に渡して、逐次複合条件判定を実施する。ステップＳ１２において、バッファ１２が空であり、データ読み出し部８がバッファへのデータ転送を全て終了している場合には、処理を終了する（ステップＳ１２：ＹＥＳ）。データ転送が未終了である場合（ステップＳ１２：ＮＯ）には、再びステップＳ１０に戻り、次の文書データを処理する。
【００１９】
図４は図３のステップＳ１１における文字列照合判定処理及び複合条件判定処理をさらに詳細に説明したものである。図のステップＳ２０において文字列照合部１０は、バッファ１２に転送された文書データを取得する。ステップＳ２１において文字列照合部１０は、取得した文書データを基に文字列照合処理を行い、文書中に検索キーワードが出現する位置の探索を行う。文字列照合処理部１０が文字列照合処理の結果として出力する出現位置情報の例を図５に示す。出現位置情報は、文書ごとに付した文書ＩＤ単位で生成される。図５の例では、検索キーワード「文書」が文書ＩＤ１の文書の先頭から８９文字目、文書ＩＤ９の文書の先頭から１９文字目および、９９文字目に出現していることを表している。ステップＳ２２において文字列照合処理部１０は、文字列照合処理の結果を基に、文書内での検索キーワードの出現位置情報をバッファ１３に出力する。ステップＳ２３において、文字列照合部１０はデータ読み出し部８へ文書データ転送命令を発行し、これに対してデータ読み出し部８はバッファ１３へ文書データを転送する。ステップＳ２４において複合条件判定部１１は、バッファ１３から出現位置情報と文書データとを取得する。なおステップＳ２３において、データ読み出し部８から文書データをバッファ１３に読み込む処理を行い、またステップＳ２４において複合条件判定部１１は、文書データについても出現位置情報と合わせて読み込んでいるが、これらの処理については省略してもよい。続いてステップＳ２５において複合条件判定部１１は、複合条件判定処理を実行し、その結果、検索にヒットした文書のリストをユーザへ返す。その後、バッファ１２が空であり、データ読み出し部８がバッファ１２へのデータ転送を完了している場合、Ｓ１４の処理へ進む（ステップＳ２６：ＹＥＳ）。そうでなければ、Ｓ１０の処理へ戻る（ステップＳ２６：ＮＯ）。
【００２０】
次に上記ステップＳ２５の複合条件判定処理について詳細に説明する。図６は複合条件判定処理を示すフローチャートである。図のステップＳ３１において複合条件判定部１１は、文書ＩＤが１の文書に対して複合条件判定処理を行う。続いて、ステップＳ３２において全ての文書に対して、複合条件判定処理が終了したならば、処理を終了する（ステップＳ３２：ＮＯ）。
【００２１】
次に、ステップＳ３３において、検索キーワード１（ＫＥＹ１）から検索キーワードＭ（ＫＥＹＭ）までの全ての検索キーワードの現在複合条件判定処理を行っている文書の出現位置情報からの出現位置を１つずつ取得する。またこの時に、出現位置のない検索キーワードに関しては、“出現位置なし”の情報を与える。続いてステップＳ３４において、ＫＥＹ１からＫＥＹＭまでの検索キーワードの出現位置を基に複合条件判定処理を行う。
【００２２】
複合条件に近傍条件を含む場合の複合条件判定手順を以下に説明する。ここで、近傍条件の検索キーワード間の距離をｄとし、文書の先頭から数えた、各検索キーワードの先頭までの文字数をＫＥＹ１Ｓ，ＫＥＹ２Ｓ，…，ＫＥＹＭＳとし、末尾までの文字数をＫＥＹ１Ｅ，ＫＥＹ２Ｅ，…，ＫＥＹＭＥとする。
【００２３】
検索キーワードの順序関係を考慮した近傍条件判定を行う場合、ｎ＝２〜Ｍに対して、ＫＥＹｎＳ−ＫＥＹ（ｎ−１）Ｅ＜ｄを満たす時に、文書が近傍内条件に合致したと判断する。同様に、ＫＥＹｎＳ−ＫＥＹ（ｎ−１）Ｅ＝ｄを満たす時に、近傍等条件に合致したと判断し、ＫＥＹｎＳ−ＫＥＹ（ｎ−１）Ｅ＞ｄを満たす時に近傍外条件に合致したと判断する。
【００２４】
検索キーワードの順序関係を考慮しない近傍条件判定を行う場合は、全ての検索キーワードＫＥＹＸが、任意の検索キーワードＫＥＹＹに対して、｜ＫＥＹＸＳ−ＫＥＹＹＥ｜＜ｄを満たす時に、文書が近傍内条件に合致したと判断する。同様に、｜ＫＥＹＸＳ−ＫＥＹＹＥ｜＝ｄを満たす時に近傍等条件に合致したと判断し、｜ＫＥＹＸＳ−ＫＥＹＹＥ｜＞ｄを満たす時に、近傍外条件に合致したと判断する。
【００２５】
またステップＳ３６において、複合条件に論理条件を含む場合、各検索キーワード間の論理条件が満たされているならば、論理条件に合致したと判断する。
【００２６】
ステップＳ３４において指定された全ての複合条件に合致した場合、ステップＳ３５に進む（ステップＳ３４：ＹＥＳ）。ステップＳ３５において、複合条件判定処理を行った文書をヒット文書リストへ入れ、ステップＳ３９へ進み次の文書の複合条件判定処理を行う。一方、ステップＳ３４において、いずれかの複合条件に合致しなかった場合は、ステップＳ３６へ進む（ステップＳ３４：ＮＯ）。ステップＳ３６において、ＫＥＹ１からＫＥＹＭまでの検索キーワードの出現位置についての複合条件判定において論理条件が合致したどうかを検定し、論理条件が合致しない場合には、ステップＳ３９へ進む（ステップＳ３６：ＮＯ）。またステップＳ３６において、合致しなかった複合条件が近傍条件の場合は、ステップＳ３９に進む。ステップＳ３７において、検索キーワードＫＥＹ１，ＫＥＹ２，…，ＫＥＹＭの先頭までの文字数ＫＥＹ１Ｓ，ＫＥＹｓＳ，…，ＫＥＹＭＳの内、最も値の小さい検索キーワードＫＥＹＬの次の出現位置を取得する。ステップＳ３８においてＫＥＹＬの出現位置が見つかった場合は、ステップＳ３４へ戻り、合致しなかった複合条件に対して再度複合条件判定処理を行う（ステップＳ３８：ＹＥＳ）。ＫＥＹＬの出現位置が見つからなかった場合は、Ｓ３９の処理へ進み、次の文書に対して複合条件判定処理を行う（ステップＳ３８：ＮＯ）。
【００２７】
以上のように、実施の形態１によれば、文字列照合処理と複合条件判定処理とを検出された検索キーワードの単位で繰り返して実行することとしたので、複合条件を満たす検索キーワードが文書中から検出された以降は、文字列照合処理を行う必要がなくなり、文字列検索を高速に実行することができる。
【００２８】
なお、実施の形態１では、文字列照合処理と複合条件判定処理を交互に実行する構成としたが、複合条件判定処理は文字列照合処理の実行回数と同じ回数だけ実行しなければならないわけではなく、また文字列照合処理に対してシリアルに実行しなければならないわけではない。たとえば、複数回実行される文字列照合処理に対して１回だけ複合条件判定処理を実行するという構成を採ることも可能である。すなわち、少なくとも文字列照合処理によって文書データ全体の走査が完了する前に、複合条件判定処理が１度でも実行されれば実施の形態１と同様の効果が得られる。
【００２９】
また、実施の形態１による文書検索方法を、プログラムとして記憶媒体に記憶することもできる。この場合、このプログラムは、図１の検索制御部９に対応する検索制御プログラムと、文字列照合部１０に対応する文字列照合プログラムと、複合条件判定部１１に対応する複合条件判定プログラムから構成されるソフトウエアである。
【００３０】
実施の形態２．
実施の形態１では、近傍条件、論理条件などの複合条件を高速に判定することのできる文書検索装置について説明したが、実施の形態２では、さらに文字列範囲条件、文書属性条件、文脈条件などの複合条件を高速に判定することのできる文書検索装置を提供する。また、実施の形態２では、実施の形態１においても行っていた近傍条件、論理条件の判定をより効率的に行うための手段も提供する。
【００３１】
ここで、近傍条件、論理条件の意味については、実施の形態１で説明したとおりである。また文字列範囲条件、文書属性条件、文脈条件とは次のとおりである。すなわち、文字列範囲条件とは、特定の文書の構成部位に検索キーワードが出現する文書を検索対象とするための検索条件をいう。本条件は、例えば、指定した全ての検索キーワードが「タイトル」に含まれる文書を検索するといった検索処理や、指定したいずれかの検索キーワードが「概要」に含まれる文書を検索するといった検索処理などを行うために指定するものである。
【００３２】
また、文書属性条件とは、特定の文書属性を持つ文書から指定した検索キーワードを検索するための検索条件である。本条件は、例えば、指定した全ての検索キーワードが出現する文書の中で、「生成日付」が２００２年９月以降の文書を検索するといった検索処理や、指定したいずれかの検索キーワードが出現する文書の中で、「文書種別」が特許である文書を検索するといった検索処理などを行うために指定するものである。
【００３３】
さらに、文脈条件とは、指定した複数の検索キーワードが所定の一の文書構成単位中に同時に現れるような文書を検索するための検索条件をいう。文書構成単位とは、文、段落、ページ、項、章、編などの単位をいう。本条件は、例えば、指定した全ての検索キーワードが同一の文に出現する文書を検索するといった検索処理や、指定したいくつかの検索キーワードは同一の文に出現するが、指定したいくつかの検索キーワードは同一の文に出現しない文書を検索するといった検索処理などを行うために指定するものである。
【００３４】
次に、実施の形態２による文書検索装置について説明する。実施の形態２による文書検索装置は、実施の形態１と同じく図１に示した構成を採るので、符号の説明については省略する。
【００３５】
初めに、効率的に文書内におけるキーワード検索を行うために、実施の形態２で用いる文書データの構造について説明する。これらは、登録処理部２のデータ生成部６によって生成される。実施の形態２においても、実施の形態１と同様に各文書にはユニークな文書ＩＤが付される。またデータ生成部６は、登録する文書を解析し、図７に示すような文書データを生成する。図７において、文書データは、文書索引情報１４、文書属性情報１５、文字列範囲情報１６、文脈情報１７から構成される。
【００３６】
文書索引情報１４は、各文書に含まれる各文字コードの出現位置の情報である。図７に示すように、文書索引情報１４は、各文字コードごとに、出現文書とその文書におけるその文字の出現位置とを表現したレコードの集合からなっている。出現文書とその文字の出現位置は、例えば「文書ＩＤ−（出現位置リスト）」という構成で表現される。この例によれば、文字コード「あ」の出現位置として現れる「１−（２，１０，３３）」というデータは、文書ＩＤ１の文書において文字コード「あ」が、文書の先頭から２文字目、１０文字目、３３文字目にそれぞれ出現することを示している。同様に、次のレコード「２−（３，１８）」は、文字コード「あ」が文書ＩＤ２の文書において、文書の先頭から３文字目と１８文字目にそれぞれ出現することを示している。これらのレコードは、出現文書と文字の出現位置について昇順に列挙される。
【００３７】
文書属性情報１５は、各文書の属性情報である。データ生成部６は、例えば各文書の「文書種別」、「文書タイトル」、「生成日付」、「著者名」を文書の属性情報として生成する。図２の例では、文書ＩＤ１の文書は、「文書種別」が“特許”であり、「文書タイトル」が“文書検索装置”であり、「生成日付」が“２００２年９月９日”であり、「著者名」が“金子洋介”であることを示している。なお文書属性情報１５として登録する情報は、前記の例にとどまらず、任意の情報を登録してよい。
【００３８】
文字列範囲情報１６は、各文書を構成する部位、例えば「タイトル」、「概要」、「本文」、「参考文献」などの出現位置情報である。図２に示すように、文書ＩＤ１の文書中において、「タイトル」は文書の先頭から数えて１文字目から始まり、２１文字目までであることを示している。同様に、「概要」は２２文字目から１４０文字目であり、「本文」は１４１文字目から１５９１文字目であり、「参考文献」は１５９２文字目から１７１２文字目までであることを示している。文字列範囲情報を取得するには、文書の構成要素ごとの始端位置と終端位置を検出すればよい。たとえば参考文献の始端位置を取得するためには、「参考文献」という文字列を文書を走査して検出すればよい。また終端位置はページの終わりや参考文献以外の文書の構成要素の出現を検出すればよい。なお文字列範囲情報１６として登録する情報は、前記の例にとどまらず、任意の情報を登録してよい。
【００３９】
文脈情報１７は、各文書中における文書の構成単位の出現位置情報である。図７では、文書の構成単位として文（センテンス）を採った場合の文脈情報を示している、文書ＩＤ１の文書中において、文書の先頭から数えて１文字目から２１文字目までが一つの文を構成していることを示している。同様に、２２文字目から３３文字目、３４文字目から６３文字目がそれぞれ一つの文を構成していることを示している。文の出現位置を取得するためには、一般には、各文書に出現する句点（「。」）の位置を検出すればよい。句点がその文の終端位置であって、その句点の次の文字が、次の文の始端位置である。ただし改行や空白文字を除く必要がある。なお、すでに述べたように、文書の構成単位は、文のほか、項や節や章としてもよい。
【００４０】
なお、図７の文書データは検索対象となる文書を文書検索装置１に登録する時点で、登録処理部２により生成してもよいし、また予めこのような表現形式を有する文書データを別に生成し、その表現形式の文書データを文書検索装置１の記憶装置管理部４に直接記憶させてもよい。後者の構成を採る場合は、文書検索装置１に登録処理部２を備える必要はない。
【００４１】
次に、実施の形態２における文書検索装置１の検索処理について説明する。文書検索装置１の検索処理を表すフローチャートは、実施の形態１の文書検索装置の検索処理を表す図２に示されたフローチャートと同じである。図において、ステップＳ１ではユーザが検索条件を指定するが、ここで指定できる検索条件は実施の形態１の文書検索装置と同じであり、また複合条件については実施の形態１で指定できる種類に加えて、文字列範囲条件、文書属性条件、文脈条件を指定できる。これらは実施の形態１と同様に論理条件ＡＮＤ，ＡＮＤ  ＮＯＴ、ＯＲを用いて組み合わせることができ、さらに論理条件間の結合についても実施の形態１と同様である。したがってステップＳ２における検索条件の解析処理についても実施の形態１と同様である。
【００４２】
次に、ステップＳ３において、検索制御部９は、ユーザが指定した検索キーワードを構成する文字についての文書索引情報１４をバッファ１２に転送するように、データ読み出し部８に転送命令を発行する。たとえば、ユーザが指定した検索キーワードが「文書」および「検索」である場合、検索制御部９は、文書索引情報１４の内、「文」２０、「書」２１、「検」２２、「索」２３の全ての文書索引情報１４をバッファ１２へ転送するように、データ読み出し部８に転送命令を発行する。その結果、ステップＳ４において、データ読み出し部８は、「文」２０、「書」２１、「検」２２、「索」２３についての全ての文書索引情報１４をバッファ１２へ転送する。ここで、記憶装置５は文書索引情報１４を図８に示すような状態で記憶し、データ読み出し部８は転送命令によって同じく図８のバッファ１２に示されるような形式で、「文」、「書」、「検」、「索」についての全ての文書索引情報を格納する。
【００４３】
次にステップＳ５において、文字列照合部１０はバッファ１２に格納された文書索引情報のみを参照して、検索キーワードが含まれるかどうかを調べる。具体的には、一の検索キーワード中の各文字の出現順に、その文字についての文書索引情報レコードの文書ＩＤと、隣接する文字についての文書索引情報レコードの文書ＩＤが一致し、かつそれらのレコード間の出現位置が連続しているレコードが存在するかどうかを調べる。そのようなレコードが存在する場合には、その文書がこの検索キーワードを含んでいることを意味しているので、そのようなレコードを検索することによって、検索キーワードの検出が行うことができることになる。そのため、文書検索装置１によれば、文書の内容を一文字ずつ走査しなくても検索キーワードの検出を行うことができる。
【００４４】
ステップＳ５における文字列照合判定処理及び複合条件判定処理の実行方法については、実施の形態１と同じであるため、説明を省略する。次に、実施の形態２における複合条件判定処理について、図９のフローチャートを用いて詳細に説明する。
【００４５】
図のステップＳ４１において複合条件判定部１１は、文書ＩＤが１の文書に対して複合条件判定処理を行う。続いて、ステップＳ３２において全ての文書に対して、複合条件判定処理が終了したならば、処理を終了する（ステップＳ４２：ＮＯ）。
【００４６】
次に、ステップＳ４３において、ユーザが指定した複合条件に文字列範囲条件が含まれているかどうかを調べ、含まれている場合は（ステップＳ４３：ＹＥＳ）、ステップＳ４４において複合条件判定部１１は、バッファ１２から文字列範囲情報１６を取得する。同様に、ステップＳ４５において複合条件に文書属性条件が含まれているかどうかを調べ、含まれている場合は（ステップＳ４５：ＹＥＳ）、ステップＳ４６において複合条件判定部１１は、文書属性情報１５を取得する。同じく、ステップＳ４７において複合条件に文脈条件が含まれているかどうかを調べ、含まれている場合は（ステップＳ４７：ＹＥＳ）、複合条件判定部１１は文脈情報１７を取得する。
【００４７】
次に、ステップＳ４９において、検索キーワード１（ＫＥＹ１）から検索キーワードＭ（ＫＥＹＭ）までの全ての検索キーワードの出現位置を、現在複合条件判定処理を行っている文書の出現位置リストから１つずつ取得する。この時に、出現位置のない検索キーワードに関しては、“出現位置なし”の情報を与える。続いてステップＳ５０において複合条件判定部１１は、ＫＥＹ１からＫＥＹＭまでの検索キーワードの出現位置と、Ｓ４３〜Ｓ４８の手順で取得した文書データを基に複合条件判定処理を行う。
【００４８】
複合条件に近傍条件を含む場合の複合条件判定手順及び検索キーワードの順序関係を考慮しない近傍条件判定を行う場合については、実施の形態１で説明したので、ここでは説明を省略する。
【００４９】
複合条件に文字列範囲条件を含む場合の複合条件判定手順について、図７に示される文字列範囲情報１６を例として説明する。またここでは、各検索キーワードが「概要」において論理条件を満たす形で出現する文書であるか否かの判定を行うものとする。ステップＳ４４で取得した文字列範囲情報１６より、文書ＩＤ１の「概要」は、文書の先頭から数えて２２文字目から始まり、１４０文字目までであることがわかる。任意の検索キーワードＫＥＹＸ，ＫＥＹＹの検索キーワード間の論理条件がＡＮＤの時、つまり、ＫＥＹＸ  ＡＮＤ  ＫＥＹＹの場合、文書ＩＤ１の文書の先頭から数えた、ＫＥＹＸ，ＫＥＹＹの先頭までの文字数をＫＥＹＸＳ，ＫＥＹＹＳとし、末尾までの文字数をＫＥＹＸＥ，ＫＥＹＹＥとした時に、２２≦ＫＥＹＸＳ  ＫＥＹＸＥ  ＫＥＹＹＳ  ＫＥＹＹＥ≦１４０を満たすときに、文字列範囲条件に合致したと判断する。ＫＥＹＸ  ＯＲ  ＫＥＹＹの場合は、２２≦ＫＥＹＸＳ  ＫＥＹＸＥ≦１４０または２２≦ＫＥＹＹＳ  ＫＥＹＹＥ≦１４０のどちらか一方以上を満たすときに、文字列範囲条件に合致したと判断する。ＫＥＹＸ  ＡＮＤ  ＮＯＴ  ＫＥＹＹの場合は、２２≦ＫＥＹＸＳ  ＫＥＹＸＥ≦１４０かつ（２２≦ＫＥＹＹＳ  ＫＥＹＹＥ≦１４０）を満たすときに、文字列範囲条件に合致したと判断する。文字列範囲条件判定は、論理条件の優先度に従い、上記の判定を行うことで、文字列条件に合致するか否かの判定を行う。
【００５０】
複合条件に文書属性条件を含む場合は、各検索キーワード間の論理条件を満たしており、ステップＳ４６で取得した文書属性情報１５が文書属性条件に合致する場合に、全体として文書属性条件に合致したと判断する。
【００５１】
複合条件に文脈条件を含む場合の複合条件判定手順を以下に説明する。任意の検索キーワードＫＥＹＸ，ＫＥＹＹの検索キーワード間の論理条件がＡＮＤの時、つまり、ＫＥＹＸ  ＡＮＤ  ＫＥＹＹの場合、文書の先頭から数えたＫＥＹＸ，ＫＥＹＹの先頭までの文字数をＫＥＹＸＳ，ＫＥＹＹＳとし、末尾までの文字数をＫＥＹＸＥ，ＫＥＹＹＥとする。文脈情報１７から取得できる任意の文Ｚ（Ｚは任意の数）の開始位置をＳＥＮＺＳ，終了位置をＳＥＮＺＥとした時に、このＺに対して、ＳＥＮＺＳ≦ＫＥＹＸＳ，ＫＥＹＹＳ，ＫＥＹＸＥ，ＫＥＹＹＥ≦ＳＥＮＺＥを満たす場合に、文脈条件に合致したと判断する。また、ＫＥＹＸＯＲ  ＫＥＹＹの場合は、ＳＥＮＺＳ≦ＫＥＹＸＳ  ＫＥＹＸＥ≦ＳＥＮＺＥまたは、ＳＥＮＺＳ≦ＫＥＹＹＳ  ＫＥＹＹＥ≦ＳＥＮＺＥのどちらか一方以上を満たすときに、文脈条件に合致したと判断する。また、ＫＥＹＸ  ＡＮＤ  ＮＯＴ  ＫＥＹＹの場合は、ＳＥＮＺＳ≦ＫＥＹＸＳ  ＫＥＹＸＥ≦ＳＥＮＺＥかつ、ＳＥＮＺＳ≦ＫＥＹＹＳ  ＫＥＹＹＥ≦ＳＥＮＺＥを満たすときに、文脈条件に合致したと判断する。文脈条件判定は、論理条件の優先度に従い、上記の判定を行うことで、文脈条件に合致するか否かの判定を行う。
【００５２】
複合条件に論理条件を含む場合、各検索キーワード間の論理条件が満たされている時に、論理条件に合致したと判断する。
【００５３】
ステップＳ５０において、指定された全ての複合条件に合致した場合（ステップＳ５０：ＹＥＳ）、ステップＳ５１において複合条件判定処理を行った文書をヒット文書リストへ入れ、ステップＳ５５へ進み次の文書の複合条件判定処理を行う。一方、ステップＳ５０において、いずれかの複合条件に合致しなかった場合は、ステップＳ５２へ進む。ステップＳ５２においては、ステップＳ５０の複合条件判定処理でどの条件が合致しなかったかを検定し、文書属性条件または論理条件が合致しなかった場合は、ステップＳ５５へ進み次の文書の複合条件判定処理を行う（ステップＳ５２：ＮＯ）。合致しなかった複合条件が近傍条件、文字列範囲条件、文脈条件の場合は（ステップＳ５２：ＹＥＳ）、ステップＳ５３において、検索キーワードＫＥＹ１，ＫＥＹ２，…，ＫＥＹＭの先頭までの文字数ＫＥＹ１Ｓ，ＫＥＹ２Ｓ，…，ＫＥＹＭＳの内、最も値の小さい検索キーワードＫＥＹＬの次の出現位置を取得する。ステップＳ５４において、ＫＥＹＬの出現位置が見つかった場合は、ステップＳ５０へ戻り、合致しなかった複合条件に対して再度複合条件判定処理を行う（ステップＳ５４：ＮＯ）。ＫＥＹＬの出現位置が見つからなかった場合（ステップＳ５４：ＮＯ）は、ステップＳ５５の処理へ進み、次の文書に対して複合条件判定処理を行う。
【００５４】
以上のように、実施の形態２によれば、文書データを文書索引情報、文書属性情報、文字列範囲情報、文脈情報などの形式で表現することにより、検索対象文書全体を走査しなくても、検索キーワードの検索を行うことができ、また近傍条件、文字列範囲条件や文書属性条件、文脈条件、論理条件などの多彩な複合条件を高速に判定することができる。
【００５５】
なお、実施の形態２では、文書属性情報や文字列範囲情報、文脈情報については、予め文書データとして登録されている状態で、検索キーワードの検索を行う構成としたが、形態素解析や構文解析を利用した自然言語解析によって、文字列照合処理自身が検索と同時にこれらの情報を生成する構成とすることも可能である。この場合は、文字列照合部１０が出現位置情報に加えて、文書属性情報や文字列範囲情報、文脈情報をバッファ１３に出力する構成となる。
【００５６】
また、実施の形態２では、文書索引情報を文字単位に生成する構成を採ったが、文書索引情報をその他の単位、例えば、形態素や語幹、語ごとに生成する構成を採ることも可能である。このような構成を採ることで、複数の文書索引情報間での出現位置情報の連続性を照合する処理の回数を減ずることができる。
【００５７】
さらに、実施の形態２による文書検索方法を、プログラムとして記憶媒体に記憶することもできる。この場合、このプログラムは、図１の検索制御部９に対応する検索制御プログラムと、文字列照合部１０に対応する文字列照合プログラムと、複合条件判定部１１に対応する複合条件判定プログラムから構成されるソフトウエアである。
【００５８】
実施の形態３．
実施の形態１及び２では、文字列照合処理が検索キーワードを検出するごとに、複合条件判定処理を実行することにより、文書データ全体を検索しなくても検索キーワードの出現位置を求め、かつ検出した検索キーワードが複合条件を満たすものかどうかを判定することのできる文書検索装置について説明した。実施の形態３は、さらに文字列照合処理と複合条件判定処理とを並列実行することにより、それぞれの処理の待ち時間を減少させることで高速な文書検索を行う手段を提供する。また、データ読み出し処理と文字列照合処理についても並列実行させることで、よりオーバーヘッドの少ない文書検索を実現する手段を提供する。
【００５９】
次に、実施の形態３の文書検索装置について説明する。実施の形態３による文書検索装置は、実施の形態１及び２と同じく図１に示した構成を採るので、符号の説明については省略する。また実施の形態３の文書検索装置における検索処理を表すフローチャートは、実施の形態１及び実施の形態２の文書検索装置の検索処理を表す図２に示されたフローチャートと同じである。このうち、ステップＳ１からステップＳ３については、実施の形態１及び実施の形態２と同じであり、説明を省略する。
【００６０】
文字列照合部１０が文字列照合判定処理を実行するためには、データ読み出し部８がデータ読み出し処理によって必要な文書データを読み出していなければならないため、文字列照合判定処理とデータ読み出し処理との間には依存関係が存在する。しかしこの二つの処理は並列実行が可能である。そこで次に、データ読み出し処理と文字列照合判定処理の並列処理について説明する。図１０は本並列処理の処理の流れを示す図である。ここで、データ読み出し処理が行う処理を、処理Ａ１８、処理Ｂ、処理Ｃとし、文字列照合判定処理が行う処理を、処理Ｄ１９、処理Ｅ、処理Ｆとする。上述のとおり、データ読み出し処理と文字列照合判定処理には依存関係が存在し、処理Ｄ１９を行うためには処理Ａ１８の結果が必要であり、処理Ｅを行うためには処理Ｂの結果が必要であり、処理Ｆを行うためには処理Ｃの結果が必要である。データ読み出し処理は、処理Ａ１８の処理が完了すると、次の処理Ｂに移る。文字列照合判定処理は、処理Ａ１８の完了を待って、処理Ｄ１９を実行し、処理Ｂと処理と処理Ｄの完了を待って処理Ｅを実行する。
【００６１】
上記のような処理を並列に実行するために、それぞれの処理間で情報を受け渡すための領域としてバッファ１２を用いる。バッファ１２は、データ読み出し部４が読み出したデータを記憶する記憶領域であって、文字列照合部１０からも記憶しているデータを読み出せるようにしている。文字列照合部１０はバッファ１２に保管されたデータを順次処理する。
【００６２】
次にステップＳ５における、文字列照合処理と複合条件判定処理との間の並列実行について説明する。図１１は本文字列照合処理を示すフローチャートである。図においてステップＳ７０、ステップＳ７１、ステップＳ７２については、実施の形態１及び２の文字列照合処理を表す図４のフローチャートのステップＳ２０、ステップＳ２１、ステップＳ２２とそれぞれ同じ処理を行う。また図１１のステップ７３は図４のフローチャートのステップＳ２６と同じ処理を行う。また図１２は本複合条件判定処理を示すフローチャートである。図においてステップＳ７４、ステップＳ７５は図４のフローチャートのステップＳ２４、ステップＳ２５とそれぞれ同じ処理を行う。またステップＳ７６は、複合条件判定処理の停止条件を満たしているかどうかを判定する処理である。複合条件判定処理の停止条件としては、例えば複合条件を満たす検索キーワードが少なくとも１つ検出されたことや、データ読み出し部８が全データをバッファ１２に転送し終えていることなどが考えられる。またオペレーティングシステムとして複数プロセスやタスク、スレッド間の同期イベントを取得できる場合には、その同期イベントを検出することによって、停止条件が満たされているかどうかを取得してもよい。
【００６３】
これらの並列処理は、中央演算装置（以下ＣＰＵ）を複数個搭載したコンピュータを初めとして、複数台のコンピュータを疎結合してなる分散処理システム、あるいはＣＰＵと記憶装置５をコントローラ用演算装置、若しくは単一のＣＰＵであっても時分割マルチタスクシステムを採用したものや、記憶装置５からの入出力割り込みで処理を切り換えるごく一般的なオペレーティングシステムを搭載したコンピュータシステムにおいても実行が可能である。
【００６４】
以上のように、実施の形態３によれば、データ読み出し処理と文字列照合処理、さらに複合条件判定処理とを並列に実行するので、それぞれの処理の待ち時間を少なくすることができるため、文書検索処理全体のスループットを向上し、高速な検索処理を実現することができる。
【００６５】
なお、上記で示した並列処理で各処理間のデータ受け渡しのために、バッファ１２及びバッファ１３を介した構成としたが、これらの領域を一種の待ち行列であるとみなしてもよい。待ち行列としてバッファ１２及びバッファ１３を構成する場合は、データ読み出し部４が読み出したデータがＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式で文字列照合部１０に処理され、また文字列照合部１０が出力したデータがＦＩＦＯ方式で複合条件判定部１１に処理されることとなる。ただし、データは必ずしもＦＩＦＯで処理しなくてはならないわけではなく、文字列照合部１０及び複合条件判定部１１は、すでにバッファ１２とバッファ１３が記憶しているデータであれば、どのデータから処理を開始してもよい。この場合には、待ち行列にキューが置かれるのをポーリングによって検知するようにしてもよい。
【００６６】
またデータ読み出し処理と文字列照合処理に対して個別のＣＰＵを割り当て、それぞれのＣＰＵに対してパイプラインフロー制御を行ってもよい。こうすることで、データ読み出し処理を実行するＣＰＵから文字列照合処理を実行するＣＰＵに直接データが送信されるため、バッファ１２及びバッファ１３を介する必要はなくなる。
【００６７】
さらに、実施の形態３による文書検索方法を、プログラムとして記憶媒体に記憶することもできる。この場合、このプログラムは、図１のデータ読み出し部８に対応するデータ読み出しプログラム、検索制御部９に対応する検索制御プログラムと、文字列照合部１０に対応する文字列照合プログラムと、複合条件判定部１１に対応する複合条件判定プログラムから構成されるソフトウエアである。
【００６８】
実施の形態４．
実施の形態４による文書検索装置は、データ登録時に、文字位置情報の登録を行うことを特徴とする。なお、実施の形態４による文書検索装置についても図１に示した構成を採るので、符号の説明については省略する。
【００６９】
まず図１３と図１４を用いて、文字位置情報について説明する。文字位置情報とは、例えばある文字のページに出現する位置について行およびカラム（列）及び文字サイズ（幅・高さ）で表したものである。またページの左上隅やその他の点を原点とし、かつその文字における左上隅の点を基準点とする座標位置で表してもよい。図１４において、基準点２５に対して、「技」という文字の文字位置情報は基準点２５から右端までの幅２６と基準点２５からの下端までの高さ２７で表現することができる。この場合、「技」という文字の文字位置情報２４は、例えば（基準点２５のＸ座標、基準点２５のＹ座標、幅２６、高さ２７）として表される。図１３の例では、文書ＩＤ１の文書は、１番目の文字の文字情報２４が（１，１，２，２）であり、基準点２５のＸ座標が１、基準点２５のＹ座標が１、幅２６が２、高さ２７が２であることを示している。
【００７０】
実施の形態４によれば、複合条件判定処理時に、文字位置情報を用いた近傍条件判定（以下、文字位置近傍条件判定）を行うことが可能となる。文字位置近傍条件判定手順を図１５のフローチャートを用いて説明する。まずステップＳ８０において、文書ＩＤが１の文書に対して、文字位置近傍条件判定を行う。次にステップＳ８１において、全ての文書に対して文字位置近傍条件判定が終了したならば処理を終了する。
【００７１】
またステップＳ８２において、検索キーワードＫＥＹ１〜ＫＥＹＭの文書中の出現位置を取得し、ステップＳ８３において、ＫＥＹ１〜ＫＥＹＭの文字位置情報２４を取得し、ステップＳ８４において、取得した文字位置情報２４を基に文字位置近傍条件判定を行う。
【００７２】
文字位置近傍条件判定の手順を以下に説明する。ここで、文字位置近傍条件として、検索キーワード間の距離をｄとする。また、検索キーワードＫＥＹＳの文字列は、文字ＷＯＲＤＳ１，ＷＯＲＤＳ２，…，ＷＯＲＤＳＮから構成されているとする。この時に、文字位置情報２４を基に、ＷＯＲＤＳＴのＸ，Ｙ座標を求め、（ＷＯＲＤＳＴ＿Ｘ，  ＷＯＲＤＳＴ＿Ｙ）とする。座標の各値は、ＷＯＲＤＳＴ＿Ｘ＝（ＷＯＲＤＳＴの基準点２４のＸ座標＋ＷＯＲＤＳＴの幅２６）／２、ＷＯＲＤＳＴ＿Ｙ＝（ＷＯＲＤＳＴの基準点２４のＹ座標＋ＷＯＲＤＳＴの高さ２７）／２で求められる。
【００７３】
この場合において、全ての検索キーワードＫＥＹＳの全ての文字ＷＯＲＤＳＴが、任意の検索キーワードＫＥＹＵの任意の文字ＷＯＲＤＵＶに対して、式１を満たすならば、文字位置近傍内条件に合致したと判断する。同様に、式２を満たすならば、文字位置近傍等条件に合致したと判断し、式３を満たすならば、文字位置近傍外条件に合致したと判断する。
【００７４】
【数１】
2004157628.tif 000003
【００７５】
【数２】
2004157628.tif 000004
【００７６】
【数３】
2004157628.tif 000005
【００７７】
ＫＥＹ１〜ＫＥＹＭが文字位置近傍条件を満たすならば（ステップＳ８４：ＹＥＳ）、ステップＳ８５において、文書をヒット位置リストへ入れ、ステップＳ８８において、次の文書の文字位置近傍条件判定に進む。ＫＥＹ１〜ＫＥＹＭが文字位置近傍条件を満たさないならば（ステップＳ８４：ＮＯ）、ステップＳ８６において、ＫＥＹ１〜ＫＥＹＭの中で、最も出現位置が小さい検索キーワードＫＥＹＬの次の出現位置を取得する。ステップＳ８７において、ＫＥＹＬの出現位置が見つかった場合はＳ８３の処理へ戻る（ステップＳ８７：ＹＥＳ）。出現位置が見つからなかった場合は、Ｓ８８に進み次の文書の文字位置近傍条件判定に進む（ステップＳ８７：ＮＯ）。
【００７８】
以上のように、実施の形態４によれば、文字の位置情報を基に近傍条件判定を行うため、物理的に近い位置に出現する検索キーワードを含む文書を検索することが可能となる。
【００７９】
【発明の効果】
本発明は、文字列照合処理が全ての照合結果を出力し終える前に、複合条件判定処理を開始して、その時点で検出されている照合結果が所定の検索条件を満たすものかどうかを判定し、この検索条件を満たす照合結果を検索結果として出力することとしたので、文字列照合処理が文書全体を走査する前に検索結果を出力する文書検索手段を提供できるという効果を有する。
【図面の簡単な説明】
【図１】実施の形態１〜４による文書検索装置の構成図である。
【図２】実施の形態１〜４による文書検索処理のフローチャートである。
【図３】実施の形態１〜４による文字列照合処理と複合条件判定処理のフローチャートである。
【図４】実施の形態１及び２、４による文字列照合処理と複合条件判定処理のフローチャートである。
【図５】実施の形態１〜４による文字列照合処理の出力結果例を示す図である。
【図６】実施の形態１による複合条件判定処理のフローチャートである。
【図７】実施の形態２による文字索引情報、文書属性情報、文字列範囲情報、文脈情報の例を示す図である。
【図８】実施の形態２による文書索引情報の例を示す図である。
【図９】実施の形態２による複合条件判定処理のフローチャートである。
【図１０】実施の形態３によるデータ読み出し処理と文字列照合処理の関係図である。
【図１１】実施の形態３による文字列照合処理のフローチャートである。
【図１２】実施の形態３による複合条件判定処理のフローチャートである。
【図１３】実施の形態４による文書索引情報の例を示す図である。
【図１４】実施の形態４による文字の出現位置の説明図である。
【図１５】従来例による文書検索手段のフローチャートである。
【図１６】従来例による文書検索装置の構成図である。
【図１７】従来例及び実施の形態１〜４の文書検索装置の検索対象となる文書の例を示す図である。
【符号の説明】
１：文書検索装置、２：登録処理部、３検索処理部、４：記憶装置管理部、
５：記憶装置、６：データ生成部、７：データ登録部、
８：データ読み出し部、９：検索制御部、１０文字列照合部、
１１：複合条件判定部、１２：バッファ、１３：バッファ、
１４：文書索引情報、１５：文書属性情報、１６：文字列範囲情報、
１７：文脈情報、１８：データ読み出し処理、１９：文字列照合処理、
２０〜２３：文書索引情報、２４：文字位置情報、２５：基準点、
２６：文字のカラム方向幅、２７：文字の行方向幅、１００：文書検索装置、
１０１：検索手段、１０２：記憶装置制御手段、１０３：複合条件判定手段、
１０４：文字列照合手段、１０５：文字列記憶手段、
１０６：ホストコンピュータ
【図１】
2004157628.tif 000006
【図２】
2004157628.tif 000007
【図３】
2004157628.tif 000008
【図４】
2004157628.tif 000009
【図５】
2004157628.tif 000010
【図６】
2004157628.tif 000011
【図７】
2004157628.tif 000012
【図８】
2004157628.tif 000013
【図９】
2004157628.tif 000014
【図１０】
2004157628.tif 000015
【図１１】
2004157628.tif 000016
【図１２】
2004157628.tif 000017
【図１３】
2004157628.tif 000018
【図１４】
2004157628.tif 000019
【図１５】
2004157628.tif 000020
【図１６】
2004157628.tif 000021
【図１７】
2004157628.tif 000022