(57)【要約】【課題】  種々の検索条件に対して検索時間の短縮化を図ることのできる文書検索装置を得る。【解決手段】  複数のキーワード集合の近傍条件の検索指示があった場合、検索処理実行部１０５の近傍条件判定部１０８は、複数のキーワード集合の文書中での出現位置をキーワード集合照合部１０７から取得する。次に、取得した出現位置が、指示された所定の近傍条件を満たすか否かを判定する。この出現位置の取得処理と近傍条件判定処理とを交互に実行し、近傍条件判定部１０８で近傍条件が真と判定された場合、その時点で判定結果を検索結果として出力する。【選択図】        図１
2005339150.tif 000002
【特許請求の範囲】
【請求項１】
複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部と、当該キーワード集合照合部で取得した複数のキーワード集合の出現位置が、所定の近傍条件を満たすか否かを判定する近傍条件判定部とを有し、
前記キーワード集合照合部における出現位置の取得処理と、前記近傍条件判定部における近傍条件判定処理とを交互に実行し、近傍条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたことを特徴とする文書検索装置。
【請求項２】
近傍条件は、キーワード集合が指定された順序で出現し、かつ、前後のキーワード集合間の距離が指定された距離以下である順序指定あり近傍内条件であることを特徴とする請求項１記載の文書検索装置。
【請求項３】
近傍条件は、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以下である順序指定なし近傍内条件であることを特徴とする請求項１記載の文書検索装置。
【請求項４】
近傍条件は、キーワード集合が指定された順序で出現し、かつ、前後のキーワード集合間の距離が指定された距離に等しい順序指定あり近傍等条件であることを特徴とする請求項１記載の文書検索装置。
【請求項５】
近傍条件は、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離に等しい順序指定なし近傍等条件であることを特徴とする請求項１記載の文書検索装置。
【請求項６】
近傍条件は、キーワード集合が指定された順序で出現し、かつ、前後のキーワード集合間の距離が指定された距離以上である順序指定あり近傍外条件であることを特徴とする請求項１記載の文書検索装置。
【請求項７】
近傍条件は、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以上である順序指定なし近傍外条件であることを特徴とする請求項１記載の文書検索装置。
【請求項８】
複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部と、当該キーワード集合照合部で取得した複数のキーワード集合が、同一文書の構成単位中に出現することを示す文脈条件を満たすか否かを判定する文脈条件判定部とを有し、
前記キーワード集合照合部における出現位置の取得処理と、前記文脈条件判定部における文脈条件判定処理とを交互に実行し、文脈条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたことを特徴とする文書検索装置。
【請求項９】
複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部と、当該キーワード集合照合部で取得した複数のキーワード集合が、特定の文書範囲中に出現することを示す範囲条件を満たすか否かを判定する範囲条件判定部とを有し、
前記キーワード集合照合部における出現位置の取得処理と、前記範囲条件判定部における範囲条件判定処理とを交互に実行し、範囲条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたことを特徴とする文書検索装置。
【請求項１０】
複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部と、当該キーワード集合照合部で取得した複数のキーワード集合が、所定の近傍条件、同一文書の構成単位中に出現することを示す文脈条件、特定の文書範囲中に出現することを示す範囲条件、およびこれら条件の論理条件を組み合わせた複合条件を満たすか否かを判定する複合条件判定部とを有し、
前記キーワード集合照合部における出現位置の取得処理と、前記複合条件判定部における複合条件判定処理とを交互に実行し、複合条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたことを特徴とする文書検索装置。
【請求項１１】
キーワード集合照合部は、キーワード集合として直前に出力した出現位置にあるキーワードの次の出現位置のみを取得し、当該取得した出現位置と、他のキーワードの出現位置とを比較し、最も小さいものを前記キーワード集合の次の出現位置として出力することを特徴とする請求項１から請求項１０のうちのいずれか１項記載の文書検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、キーワード集合に対して、所定の検索条件に一致した文書を出力する文書検索装置に関するものである。
【背景技術】
【０００２】
従来、文書検索装置としては、例えば、特許文献１に示すように、キーワードの文書中での出現位置情報の無駄なデータ転送を削減し、複合条件判定の判定を高速化するようにしたものがあった。ここで、複合条件とは、近傍条件、範囲条件、属性条件、文脈条件およびそれらの論理条件のことである。
【０００３】
【特許文献１】特開平４−２９３１６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された従来の文書検索装置は、キーワードの文書中での出現位置情報のデータ転送を効率化し、複合条件判定の判定を高速化するものであるが、例えば、近傍条件を判定する場合では、二つ以上のキーワードの出現位置を総当りで判定するしかなく、従って、キーワードの文書中での出現位置が増えるに従って、判定に要する計算量が膨大になるという課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、種々の検索条件に対しても検索時間の短縮化を図ることのできる文書検索装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る文書検索装置は、複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得する処理と、複数のキーワード集合の出現位置が、所定の近傍条件を満たすか否かを判定する近傍条件判定処理とを交互に実行し、近傍条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたものである。
【発明の効果】
【０００７】
この発明の文書検索装置は、キーワード集合照合部における出現位置の取得処理と、近傍条件判定部における近傍条件判定処理とを交互に実行し、近傍条件が真と判定された時点でその判定結果を検索結果として出力するようにしたので、近傍条件が満たされた時点で検索結果を出すことができ、従って、キーワードの数や文書中のキーワードの出現位置が多い場合でも検索時間の短縮化を図ることができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１による文書検索装置を示す構成図である。
この文書検索装置は、１件以上の文書を蓄積したデーターベースから、検索条件に指定された近傍条件に適合した文書を出力する文書検索装置である。
【０００９】
図において、文書検索装置は、検索条件入力部１０３、検索条件解析部１０４、検索処理実行部１０５、検索結果出力部１０６、キーワード集合照合部１０７、近傍条件判定部１０８、キーワード照合部１０９、データベース１１０、文書索引１１１からなる。
【００１０】
検索条件入力部１０３は、検索ユーザからの検索条件１０１の入力を受け付ける機能部である。検索条件１０１には、検索の対象とする二つ以上のキーワード集合の情報と、そのキーワード集合間の近傍条件などが指定されている。検索条件解析部１０４は、検索条件入力部１０３から入力された検索条件を解析し、例えば所定の近傍条件検索といった検索の実行プランを生成する機能部である。検索処理実行部１０５は、検索条件解析部１０４より出力された検索実行プランに従って検索処理を実行する機能部である。検索結果出力部１０６は、検索処理実行部１０５で得られた検索結果１０２を検索のユーザに対して出力する機能部である。
【００１１】
検索処理実行部１０５は、キーワード集合照合部１０７と、近傍条件判定部１０８を備えている。キーワード集合照合部１０７は、キーワード照合部１０９を繰り返し呼び出すことで、検索条件に指定されたキーワード集合に含まれるキーワードの、文書中での出現位置を取得する機能を有している。キーワード照合部１０９は、データベース１１０に蓄積された文書索引１１１を参照しながら、キーワードの文書中での出現位置を取得する機能を有している。また、近傍条件判定部１０８は、キーワード集合照合部１０７から出力された、二つ以上のキーワード集合の文書中で出現位置の情報を元に、検索条件に指定された近傍条件を判定する機能を有している。即ち、検索処理実行部１０５は、キーワード集合照合部１０７における出現位置の取得処理と、近傍条件判定部１０８における近傍条件判定処理とを交互に実行し、近傍条件が真と判定された時点でその判定結果を検索結果として出力するよう構成されている。
【００１２】
尚、上記の文書検索装置はコンピュータで実現され、検索条件解析部１０４および検索処理実行部１０５は、それぞれの機能に対応したソフトウェアと、これらのソフトウェアを実行するためのＣＰＵやメモリ等のハードウェアから構成されている。
【００１３】
キーワード集合とは、一つ以上のキーワードを含む集合である。キーワードを一つも含まないキーワード集合は、そもそも文書中での出現位置が存在しないため、ここでは考慮しない。
【００１４】
あるキーワードｋと同じ文字の並びが文書Ｄ中に存在するとき、キーワードｋは文書Ｄ中に出現するという。キーワードｋが文書Ｄ中に出現するとき、キーワードｋの出現位置を、文書Ｄの先頭の文字からキーワードｋの先頭の文字までの文字数で表わす。キーワードｋは、文書Ｄ中に０回以上出現するため、キーワードｋはｋのＤ中での出現位置の集合とみなすこともできる。
【００１５】
図２は、文書とキーワードとの関係を示す説明図である。
キーワードｋの文書Ｄ中の出現位置の集合をｋＤと表わす。図２の例では、キーワードｋ＝“キーワード”のとき、文書２０１中でのｋの出現位置は、図中の２０２に示すようにｋＤ＝｛１，１８，３５｝である。キーワードｋの文字数を、キーワード長といい、ＬＥＮ（ｋ）と表わす。キーワードｋの文書Ｄ中の出現位置を一つ取得する処理をＳＴＲＤ（ｋ）と表わす。また、ｋの末尾の文字の位置をＥＮＤＤ（ｋ）と表わす。ＳＴＲＤ（ｋ）と、ＥＮＤＤ（ｋ）の関係を以下に示す。
【数１】
2005339150.tif 000003
【００１６】
二つのキーワードｋ１とｋ２（ＳＴＲＤ（ｋ１）＜ＳＴＲＤ（ｋ２）とする）があるとき、このキーワード間の距離を、キーワードｋ１の末尾の文字とキーワードｋ２の先頭の文字の間の文字数で表わし、ＤＩＳＴＤ（ｋ１，ｋ２）と表わす。ＤＩＳＴＤ（ｋ１，ｋ２）を以下のように定義する。
【数２】
2005339150.tif 000004
図２の文書２０１の例では、最初の”キーワード”と”出現”の距離は３である。
【００１７】
キーワード集合をＳとすると、Ｓ＝｛ｋ１，ｋ２，…，ｋｎ｝（ｎ≧１）である。キーワード集合Ｓの文書Ｄ中での出現位置を、Ｓ中のキーワードｋｉ（ｉ＝１〜ｎ）の出現位置とする。ＳＤをキーワード集合Ｓの文書中での出現位置の集合とすると、ＳＤ＝ｋ１Ｄ∪ｋ２Ｄ∪…∪ｋｎＤとなる。図２の例では、キーワード集合をＳ＝｛“キーワード”，“出現”｝としたとき、図２の２０３に示したようにＳＤ＝｛１，９，１８，３５，４３｝である。キーワード集合の文書中での出現位置の中で最も値の小さいものをＳの最初の出現位置と呼ぶこととする。また、直前に取得したキーワード集合の出現位置以降で、文書中での最初の出現位置をキーワード集合の次の出現位置と呼ぶ。図２の例では、キーワード集合Ｓの最初の出現位置は１である。キーワード集合Ｓのその次の出現位置は９である。
二つのキーワード集合間の距離は、その二つのキーワード集合に含まれるキーワード間の距離によって定義する。
【００１８】
近傍条件とは、二つ以上のキーワード集合間の距離によって真偽を判定する検索条件である。
【００１９】
図３は、本発明の文書検索装置における検索処理の流れ図である。
先ず、ステップＳＴ３０１で、検索条件入力部１０３に検索条件１０１が入力されると、ステップＳＴ３０２で、検索条件解析部１０４により検索実行プランが生成される。次に、検索処理実行部１０５で、データベース１１０に蓄積された文書を１件ずつ、近傍条件に適合するか判定する。
【００２０】
先ず、ステップＳＴ３０３で、一つの文書が近傍条件に適合するか判定する。近傍条件に適合していたら（ＹＥＳ）、その文書を検索結果に追加する（ステップＳＴ３０４）。検索結果は、文書の識別子のみを保持しても良いし、他に付加的な情報を保持しても良い。検索結果に文書を追加したら、その次の文書に対してステップＳＴ３０３の近傍条件判定を実施する。ステップＳＴ３０３で、文書が近傍条件に適合していなければ（ＮＯ）、文書を検索結果に追加せずに、次の文書に対して近傍条件判定を実施する（ステップＳＴ３０３）。この様にして、全ての文書に対して１回ずつ近傍条件を判定し終えたら、ステップＳＴ３０５で、検索結果出力部１０６より検索結果１０２を出力する。
【００２１】
図４は、図１の検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
ここでは、キーワード集合Ｓ１〜Ｓｎの近傍条件を判定するものとする。先ず、近傍条件判定部１０８は、キーワード集合照合部１０７から、各キーワード集合Ｓ１〜Ｓｎの、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１〜ｋｎを取得する（ステップＳＴ４０１）。ここで取得する情報は、キーワード集合の出現位置とキーワードの長さであっても良い。
【００２２】
キーワード集合照合部１０７は、キーワード集合の出現位置取得要求がある度に、キーワード照合部１０９を呼び出しながら、文書の先頭から一つずつ順にキーワード集合の出現位置と、その位置のキーワード、もしくはキーワード長を出力する。
【００２３】
次に、近傍条件判定部１０８は、ステップＳＴ４０２で、取得したキーワード集合の位置が近傍条件に適合するか否かを判定する。ステップＳＴ４０２において、判定対象の文書が近傍条件に適合していれば（ＹＥＳ）、ステップＳＴ４０６に移行し、「適合した」を出力して判定処理を終了する。一方、ステップＳＴ４０２でキーワード集合の出現位置が近傍条件に適合していなければ（ＮＯ）、ステップＳＴ４０３に移行して、近傍条件を満たさなかったキーワード集合Ｓｉ（ｉ＝１〜ｎ）の文書中での次の出現位置を取得する。
【００２４】
ステップＳＴ４０４では、ステップＳＴ４０３でキーワード集合の次の出現位置が取得できたかどうか判定し、取得できていた場合は（ＹＥＳ）、ステップＳＴ４０２に戻って、それらの出現位置が近傍条件に適合するか否かを判定する。ステップＳＴ４０４でキーワード集合の次の出現位置が取得できていなければ（ＮＯ）、その判定対象の文書中に、近傍条件に適合する出現位置はないということなので、ステップＳＴ４０５で「適合しない」を出力して終了する。
【００２５】
キーワード照合部１０９は、データベース１１０に記録された文書索引１１１を参照しながら、キーワードの文書中での出現位置を出力する。ここで、データベース１１０に記録されている文書索引１１１は、ｎ−ｇｒａｍ索引やサフィックスアレイといった、文字列とその文書中での出現位置を記録した索引でも良いし、キーワード照合部１０９が判定対象の文書を直接走査することで、キーワードの文書中での出現位置を取得するものであっても良い。即ち、判定対象の文書中でのキーワードの出現位置を取得できる機能を備えていればその実現手段はどのようなものであっても良い。
【００２６】
以上のように、実施の形態１によれば、複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部１０７と、キーワード集合照合部１０７で取得した複数のキーワード集合の出現位置が、所定の近傍条件を満たすか否かを判定する近傍条件判定部１０８とを有し、キーワード集合照合部１０７における出現位置の取得処理と、近傍条件判定部１０８における近傍条件判定処理とを交互に実行し、近傍条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部１０５を備えたので、キーワードの数やキーワードの文書中での出現位置が増大しても、判定に要する計算量を抑えることができ、このような場合の検索時間の短縮化に寄与することができる。
【００２７】
例えば、キーワード「デジタル」と「カメラ」を同義語・異表記展開したキーワード集合｛「デジタル」，「ｄｉｇｉｔａｌ」，「ディジタル」｝と、｛「カメラ」，「ｃａｍｅｒａ」，「写真機」｝の近傍条件を判定するといった場合でも、本実施の形態では、これらのキーワードをキーワード集合として直接判定することができ、従って、検索時間の短縮化を図ることができる。
【００２８】
実施の形態２．
実施の形態２は、キーワード集合の順序指定あり近傍内条件を判定するようにしたものである。
【００２９】
実施の形態２における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。実施の形態２の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定あり近傍内条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【００３０】
ここで、キーワード集合の順序指定あり近傍内条件について説明する。キーワード集合の順序指定あり近傍内条件とは、キーワード集合が指定された順序で出現し、かつ前後のキーワード集合間の距離が指定された距離以下であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎがこの順序で指定されたとする。また、そのキーワード集合間の距離ｄが指定されたとする。このとき、条件は以下のように判定される。
【数３】
2005339150.tif 000005
【００３１】
図５は、実施の形態２における、図１の検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
検索処理実行部１０５は、検索条件解析部１０４から、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離ｄおよび順序指定あり近傍内条件の判定指示が与えられると、近傍条件判定部１０８が、ステップＳＴ５０１でキーワード集合Ｓ１〜Ｓｎの、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１〜ｋｎを、キーワード集合照合部１０７から取得する。次に、ステップＳＴ５０２において、近傍条件判定部１０８は、取得したキーワード集合の出現位置が、順序指定あり近傍内条件に適合しているか否かを判定する。即ち、ｉ＝１〜ｎ−１に対して、ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）≦ｄを全て満たしているか否かを判定する。
【００３２】
ステップＳＴ５０２において、判定対象の文書に対して、取得したキーワード集合の出現位置が、順序指定あり近傍内条件に適合しているならば（ＹＥＳ）、ステップＳＴ５０６に移行し、「適合した」を出力して終了する。一方、ステップＳＴ５０２において、順序指定あり近傍内条件に適合していなければ（ＮＯ）、ステップＳＴ５０３に移行する。ステップＳＴ５０３では、ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）≦ｄを満たさなかったｋｉ、ｋｉ＋１の組で、ｉが最も小さいものに対して、どちらのキーワードが文書中で先に出現しているか判定する。
【００３３】
ステップＳＴ５０３において、判定対象の文書中で、ｋｉのほうがｋｉ＋１より先に出現していれば（ＹＥＳ）、ステップＳＴ５０４でＳｉの次の出現位置と、その出現位置にあるキーワードｋｉを取得する。一方、ステップＳＴ５０３で、判定対象の文書中で、ｋｉ＋１の方がｋｉより先に出現していれば（ＮＯ）、ステップＳＴ５０５に移行してＳｉ＋１の次の出現位置と、その出現位置にあるキーワードｋｉ＋１を取得する。ステップＳＴ５０４もしくはステップＳＴ５０５で、キーワード集合の次の出現位置と、その出現位置にあるキーワードを取得したら、ステップＳＴ５０２に戻って、取得したキーワード集合の位置が順序指定あり近傍内条件に適合するか否かを判定する。
【００３４】
尚、図５の処理の流れ図では省略したが、ステップＳＴ５０１、ステップＳＴ５０４、ステップＳＴ５０５で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に順序指定あり近傍内条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。
【００３５】
図６は、実施の形態２の図５に示した処理の流れによる、キーワード集合の順序指定あり近傍内条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３がこの順序で与えられ、距離の指定がｄであったとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６｝、Ｓ３Ｄ＝｛ｐ７，ｐ８，ｐ９｝とする。それらの出現位置の関係は、図６の通りであるとする。また、キーワード集合Ｓ１、Ｓ２、Ｓ３としては、例えば、Ｓ１は｛デジタル，ｄｉｇｉｔａｌ，ディジタル｝、Ｓ２は｛カメラ，ｃａｍｅｒａ，写真機｝といったように、それぞれのキーワード集合が複数のキーワードを含むものである。
【００３６】
このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（４）の処理は図６中の（１）〜（４）に対応している。
【００３７】
（１）図５のステップＳＴ５０１でキーワード集合Ｓ１〜Ｓ３の文書Ｄ中での最初の出現位置ｐ１、ｐ４、ｐ７が取得される。次にステップＳＴ５０２でこの出現位置が順序指定あり近傍内条件に適合しているか否かを判定する。図６の場合、キーワード集合Ｓ２がＳ１よりも先に出現しているため、順序指定あり近傍内条件に適合していない。よって、ステップＳＴ５０３に移行する。ステップＳＴ５０３で、キーワード集合Ｓ１、Ｓ２の文書Ｄ中での出現位置を判定し、Ｓ２の方が先に出現しているため、ステップＳＴ５０５で、キーワード集合Ｓ２の次の出現位置ｐ５を取得する。
【００３８】
（２）今度は、Ｓ１、Ｓ３の出現位置ｐ１、ｐ７と、ステップＳＴ５０５で取得したｐ５に対してステップＳＴ５０２で順序指定あり近傍内条件の判定を実施する。今度はＳ１、Ｓ２間の距離がｄより大きいため、順序指定あり近傍内条件に適合していない。よって、ステップＳＴ５０３に移行する。ステップＳＴ５０３で、Ｓ１の方がＳ２よりも先に文書Ｄ中に出現しているため、ステップＳＴ５０４でＳ１の次の出現位置ｐ２を取得する。
【００３９】
（３）ステップＳＴ５０２で、出現位置ｐ２、ｐ５、ｐ７に対して順序あり近傍内条件を判定する。今度はＳ３の方がＳ２よりも文書Ｄ中で先に出現しているため、ステップＳＴ５０５でＳ３の次の出現位置ｐ８を取得する。
【００４０】
（４）ステップＳＴ５０２で、出現位置ｐ２、ｐ５、ｐ７に対して順序指定あり近傍内条件を判定し、条件に適合しているため、ステップＳＴ５０６で「適合した」を出力する。
【００４１】
キーワードの文書中での出現位置の数は、文書の文字数Ｎに比例するとみなすことができる。即ち、キーワードの文書中での出現位置の数はオーダ記法でＯ（Ｎ）（オーダＮ）と表せる。キーワード集合に含まれるキーワード数をＭとする。今、Ｋ個のキーワード集合間の順序指定あり近傍内条件を判定する場合を考える。
【００４２】
従来の特許文献１記載の方式では、キーワードの出現位置を、総当りによって順序指定あり近傍内条件を判定する。このとき、Ｋ個のキーワード間の条件判定に要する計算量はＯ（ＮＫ）であった。また、キーワード集合間の判定は、キーワード集合を展開して個々に条件を判定しなければならなかった。よって、組み合わせの数はＭＫとなる。よって、Ｋ個のキーワード集合間の順序指定あり近傍内条件の判定に要する計算量は、Ｏ（（ＭＮ）Ｋ）となる。
【００４３】
これに対して、実施の形態２の順序指定あり近傍内条件の判定の場合を考える。キーワード集合の文書中での出現位置の数は、文書中の全文字数Ｎと、キーワード集合内のキーワード数Ｍに比例するとみなすことができる。即ち、Ｏ（ＭＮ）である。本実施の形態の判定方式では、キーワード集合の順序指定あり近傍内条件を、最大でも全てのキーワード集合の出現位置の和の回数で判定可能である。よって、Ｋ個のキーワード間の順序指定あり近傍内条件の判定に要する計算量は、Ｏ（ＫＭＮ）である。
【００４４】
このように、実施の形態２の文書検索装置では、キーワード集合間の順序指定あり近傍内条件を、従来の方式と比較して高速に判定することが可能である。
【００４５】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、順序指定あり近傍内条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【００４６】
以上のように、実施の形態２によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以下である順序指定あり近傍内条件としたので、従来に比べて、順序指定あり近傍内条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【００４７】
実施の形態３．
実施の形態３は、キーワード集合の順序指定なし近傍内条件を判定するようにしたものである。
【００４８】
実施の形態３における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。また、実施の形態３の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定なし近傍内条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【００４９】
ここで、キーワード集合の順序指定なし近傍内条件について説明する。キーワード集合の順序指定なし近傍内条件とは、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以下であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離ｄが与えられたとき、順序指定なし近傍内条件は以下のように判定される。
【数４】
2005339150.tif 000006
【００５０】
図７は、実施の形態３における、キーワード集合が二つの場合の、図１の検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
検索処理実行部１０５に対してキーワード集合Ｓ１、Ｓ２とキーワード集合間の距離ｄが与えられると、近傍条件判定部１０８は、ステップＳＴ７０１でキーワード集合Ｓ１、Ｓ２の、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１、ｋ２を、キーワード集合照合部１０７から取得する。次に、近傍条件判定部１０８は、ステップＳＴ７０２において、取得したキーワード集合の出現位置が、順序指定あり近傍内条件に適合しているか否かを判定する。即ち、ＤＩＳＴＤ（ｋ１，ｋ２）≦ｄまたはＤＩＳＴＤ（ｋ２，ｋ１）≦ｄを満たしているか否かを判定する。
【００５１】
ステップＳＴ７０２において、判定対象の文書に対して、取得したキーワード集合の出現位置が、順序指定なし近傍内条件に適合しているならば（ＹＥＳ）、ステップＳＴ７０６に移行し、「適合した」を出力して終了する。一方、ステップＳＴ７０２において、順序指定あり近傍内条件に適合していなければ（ＮＯ）、ステップＳＴ７０３に移行する。ステップＳＴ７０３では、ｋ１とｋ２のどちらのキーワードが文書中で先に出現しているか判定する。判定対象の文書中で、ｋ１のほうがｋ２より先に出現していれば（ＹＥＳ）、ステップＳＴ７０４でＳ１の次の出現位置と、その出現位置にあるキーワードｋ１を取得する。
【００５２】
ステップＳＴ７０３で、判定対象の文書中で、ｋ２のほうがｋ１より先に出現していれば（ＮＯ）、ステップＳＴ７０５でＳ２の次の出現位置と、その出現位置にあるキーワードｋ２を取得する。ステップＳＴ７０４もしくはステップＳＴ７０５で、キーワード集合の次の出現位置と、その出現位置にあるキーワードを取得したら、ステップＳＴ７０２に戻って、取得したキーワード集合の位置が順序指定あり近傍内条件に適合するか否かを判定する。
【００５３】
尚、図７の処理の流れ図では省略したが、ステップＳＴ７０１、ステップＳＴ７０４、ステップＳＴ７０５で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に順序指定なし近傍内条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。
【００５４】
図８は、実施の形態３の図７に示した処理の流れによる、二つのキーワード集合の順序指定なし近傍内条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２と距離ｄが与えられたとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２｝、Ｓ２Ｄ＝｛ｐ３，ｐ４，ｐ５｝とする。それらの出現位置の関係は、図８の通りであるとする。このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（３）の処理は、図８中の（１）〜（３）に対応している。
【００５５】
（１）図７のステップＳＴ７０１でＳ１、Ｓ２の文書Ｄ中での最初の出現位置ｐ１、ｐ３が取得される。次に、ステップＳＴ７０２で、この出現位置が順序指定なし近傍内条件に適合しているか否かを判定する。図８の場合、キーワード集合Ｓ２とＳ１間の距離がｄより大きいため順序指定なし近傍内条件に適合していない。よって、ステップＳＴ７０３に移行する。ステップＳＴ７０３で、キーワード集合Ｓ１、Ｓ２の文書Ｄ中での出現位置を判定し、Ｓ２の方が先に出現しているため、ステップＳＴ７０５で、キーワード集合Ｓ２の次の出現位置ｐ４を取得する。
【００５６】
（２）今度は、Ｓ１の出現位置ｐ１と、ステップＳＴ７０５で取得したｐ４に対してステップＳＴ７０２で順序指定なし近傍内条件の判定を実施する。今度もＳ１、Ｓ２間の距離がｄより大きいため、順序指定なし近傍内条件に適合していない。よって、ステップＳＴ７０３に移行する。ステップＳＴ７０３で、Ｓ１の方がＳ２よりも先に文書Ｄ中に出現しているため、ステップＳＴ７０４でＳ１の次の出現位置ｐ２を取得する。
【００５７】
（３）ステップＳＴ７０２で出現位置ｐ２、ｐ４に対して順序なし近傍内条件を判定し、条件に適合しているため、ステップＳＴ７０６に移行して「適合した」を出力する。
【００５８】
次に、三つ以上のキーワード集合に対する検索処理を説明する。
図９は、実施の形態３における、三つ以上のキーワード集合に対する、検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
検索処理実行部１０５は、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離ｄが与えられると、ステップＳＴ９０１でキーワード集合Ｓ１〜Ｓｎの順序を一つ決定する。尚、最初の順序は任意である。次に、近傍条件判定部１０８は、ステップＳＴ９０２において、ステップＳＴ９０１で決められたキーワード集合の順序で、順序指定あり近傍内条件を判定する。この順序指定あり近傍内条件の判定処理は、実施の形態２と同様に実施される。
【００５９】
ステップＳＴ９０２において、判定対象の文書が、ステップＳＴ９０１で決められたキーワード集合の順序で順序指定あり近傍内条件に適合しているならば（ＹＥＳ）、ステップＳＴ９０５に移行し、「適合した」を出力する。一方、ステップＳＴ９０２で、順序指定あり近傍内条件に適合していなければ（ＮＯ）、ステップＳＴ９０３で、まだステップＳＴ９０２で判定していないキーワード集合の順序の組み合わせがあるか否か判定する。ステップＳＴ９０３において、まだ判定していないキーワード集合の順序の組み合わせがある場合（ＹＥＳ）、ステップＳＴ９０１で、まだ判定していないキーワード集合の順序を決定し、ステップＳＴ９０２で、その順序による順序指定あり近傍内条件を判定する。ステップＳＴ９０３で、全てのキーワード集合の順序の組み合わせに対して、順序指定あり近傍内条件の判定を実施したと判定された場合（ＮＯ）、ステップＳＴ９０４で「適合しない」を出力して終了する。
【００６０】
この順序指定なし近傍内条件の判定処理で、近傍条件判定部１０８はキーワード集合照合部１０７より取得したキーワード集合の出現位置の情報を、図示しないメモリ上に記憶しておいてもよい。そうすることで、一度取得したキーワード集合の出現位置を再度取得する場合に、キーワード集合照合部１０７を呼び出さなくて良い。
【００６１】
文書の文字数をＮ、キーワード集合に含まれるキーワード数をＭとする。先ず、２個のキーワード集合間の順序指定なし近傍内条件を判定する場合を考える。従来の特許文献１の方式の、キーワードの出現位置を総当りによって順序指定なし近傍内条件を判定するものでは、２個のキーワード集合間の条件の判定に要する計算量は、Ｏ（（ＭＮ）２）となる。一方、実施の形態３の順序指定なし近傍内条件の判定の場合は、２個のキーワード間の順序指定あり近傍内条件の判定に要する計算量は、Ｏ（２ＭＮ）である。
【００６２】
次にＫ個のキーワード集合間の順序指定なし近傍内条件を判定する場合を考える。ここでは、一つのキーワード集合の文書中での出現位置の数をＮとする。従来の特許文献１の方式では、Ｋ個のキーワード集合間の順序指定なし近傍内条件の判定に要する計算量は、Ｏ（ＮＫ）となる。
【００６３】
本実施の形態２の順序指定あり近傍内条件の判定に要する計算量はＯ（ＫＮ）である。Ｋ個のキーワード間の順序指定なし近傍内条件の場合は、キーワード集合の順序の組み合わせを変更しながら、順序指定あり近傍内条件を判定する。Ｋ個のキーワード集合の順序の組み合わせは、Ｋ！（Ｋの階乗）通りある。よって、Ｋ個のキーワード集合間の順序指定なし近傍内条件の判定に要する計算量は、Ｏ（Ｋ！ＫＮ）である。この計算量は、ＫがＮより小さければ、従来方式よりも少ない計算量である。
【００６４】
以上のように、実施の形態３によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以下である順序指定なし近傍内条件としたので、従来に比べて、順序指定なし近傍内条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【００６５】
実施の形態４．
実施の形態４は、キーワード集合の順序指定あり近傍等条件を判定するようにしたものである。
【００６６】
実施の形態４における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。実施の形態４の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定あり近傍等条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【００６７】
ここで、キーワード集合の順序指定あり近傍等条件について説明する。キーワード集合の順序指定あり近傍等条件とは、キーワード集合が指定された順序で出現し、かつ前後のキーワード集合間の距離が真に指定された距離であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎがこの順序で指定されたとする。また、そのキーワード集合間の距離ｄが指定されたとする。このとき、条件は以下のように判定される。
【数５】
2005339150.tif 000007
【００６８】
図１０は、実施の形態４における、検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
検索処理実行部１０５は、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離ｄが与えられると、近傍条件判定部１０８は、ステップＳＴ１００１でキーワード集合Ｓ１〜Ｓｎの、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１〜ｋｎを、キーワード集合照合部１０７から取得する。次に、近傍条件判定部１０８は、ステップＳＴ１００２において、取得したキーワード集合の出現位置が、順序指定あり近傍等条件に適合しているか否かを判定する。即ち、ｉ＝１〜ｎ−１に対して、ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）＝ｄを全て満たしているか否かを判定する。
【００６９】
ステップＳＴ１００２において、判定対象の文書に対して、取得したキーワード集合の出現位置が、順序指定あり近傍等条件に適合しているならば（ＹＥＳ）、ステップＳＴ１００３に移行し、「適合した」を出力して終了する。一方、ステップＳＴ１００２において、判定対象の文書に対して、取得したキーワード集合の出現位置が、順序指定あり近傍等条件に適合していなければ（ＮＯ）、ステップＳＴ１００４に移行する。
【００７０】
ステップＳＴ１００４では、ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）＝ｄを満たさなかったｋｉ、ｋｉ＋１の組で、ｉが最も小さいものに対して、どちらのキーワード集合が、文書中でより先に出現しているか判定する。Ｓｉが文書中で先に出現していた場合（ＹＥＳ）、ステップＳＴ１００５でＤＩＳＴＤ（ｋｉ，ｋｉ＋１）がｄ未満か否かを判定する。ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）がｄ未満の場合（ＹＥＳ）、ステップＳＴ１００７でキーワード集合Ｓｉ＋１の次の出現位置と、その出現位置にあるキーワードｋｉ＋１を取得する。ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）がｄより大きい場合（ＮＯ）、ステップＳＴ１００６でキーワード集合Ｓｉの次の文書中での出現位置と、その出現位置にあるキーワードｋｉを取得する。
【００７１】
ステップＳＴ１００４で、Ｓｉ＋１が文書中で先に出現していた場合（ＮＯ）、ステップＳＴ１００７でキーワード集合Ｓｉ＋１の次の出現位置と、その出現位置にあるキーワードｋｉ＋１を取得する。ステップＳＴ１００６またはステップＳＴ１００７でキーワード集合の次の出現位置と、その出現位置にあるキーワードを取得したら、ステップＳＴ１００２に戻り、取得したキーワード集合の位置が順序指定あり近傍等条件に適合するか否かを判定する。
【００７２】
尚、図１０の処理の流れ図では省略したが、ステップＳＴ１００１、ステップＳＴ１００６、ステップＳＴ１００７のキーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に順序指定あり近傍等条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。
【００７３】
図１１は、実施の形態４の図１０に示した処理の流れによる、キーワード集合の順序指定あり近傍等条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３がこの順序で与えられ、距離の指定がｄであったとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６｝、Ｓ３Ｄ＝｛ｐ７，ｐ８，ｐ９｝とする。それらの出現位置の関係は、図１１の通りであるとする。このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（５）の処理は、図１１中の（１）〜（５）に対応しているものである。
【００７４】
（１）図１１のステップＳＴ１００１でＳ１〜Ｓ３の文書Ｄ中での最初の出現位置ｐ１、ｐ４、ｐ７が取得される。次に、ステップＳＴ１００２でこの出現位置が順序指定あり近傍等条件に適合しているか否かを判定する。図１１の場合、キーワード集合Ｓ２が、Ｓ１よりも先に出現しているため、順序指定あり近傍等条件に適合していない。よって、ステップＳＴ１００４に移行する。ステップＳＴ１００４で、キーワード集合Ｓ１、Ｓ２の文書Ｄ中での出現位置を判定し、Ｓ２の方が先に出現しているため、ステップＳＴ１００７で、キーワード集合Ｓ２の次の出現位置ｐ５を取得する。
【００７５】
（２）ステップＳＴ１００２で、出現位置ｐ１、ｐ５、ｐ７に対して順序指定あり近傍等条件を判定する。今度はＳ１、Ｓ２間の距離がｄより大きいため、順序指定あり近傍等条件に適合していない。よって、ステップＳＴ１００４に移行する。ステップＳＴ１００４で、Ｓ１の方がＳ２よりも先に文書Ｄ中に出現しているため、ステップＳＴ１００５でＳ１とＳ２との間の距離がｄ未満であるか否かを判定する。図１１の場合、Ｓ１、Ｓ２間の距離がｄより大きいので、ステップＳＴ１００６でＳ１の次の出現位置ｐ２を取得する。
【００７６】
（３）ステップＳＴ１００２で、出現位置ｐ２、ｐ５、ｐ７に対して順序指定あり近傍等条件を判定する。今度はＳ３の方がＳ２よりも文書Ｄ中で先に出現しているため、ステップＳＴ１００７でＳ３の次の出現位置ｐ８を取得する。
【００７７】
（４）ステップＳＴ１００２で、出現位置ｐ２、ｐ５、ｐ８に対して順序指定あり近傍等条件を判定する。Ｓ２、Ｓ３間の距離がｄ未満なので、順序指定あり近傍等条件に適合しない。よって、ステップＳＴ１００４に移行する。ステップＳＴ１００４で、Ｓ２の方がＳ３よりも先に文書中に出現しているため、ステップＳＴ１００５でＳ２、Ｓ３間の距離がｄ未満であるか否かを判定する。Ｓ２、Ｓ３間の距離がｄ未満なので、ステップＳＴ１００７でＳ３の次の出現位置ｐ９を取得する。
【００７８】
（５）ステップＳＴ１００２で、出現位置ｐ２、ｐ５、ｐ９に対して順序指定あり近傍等条件を判定し、条件に適合するため、ステップＳＴ１００３で「適合した」を出力して終了する。
【００７９】
文書の文字数をＮ、キーワード集合に含まれるキーワード数をＭとする。従来の特許文献１記載の方式では、Ｋ個のキーワード集合間の順序指定あり近傍等条件の判定に要する計算量は、Ｏ（（ＭＮ）Ｋ）となる。一方、実施の形態４の順序指定なし近傍等条件の判定の場合は、Ｋ個のキーワード間の順序指定あり近傍等条件の判定に要する計算量は、実施の形態２と同様にＯ（ＫＭＮ）である。
【００８０】
このように、実施の形態４の文書検索装置では、キーワード集合間の順序指定あり近傍等条件を、従来の方式と比較して高速に判定することが可能である。
【００８１】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、順序指定あり近傍等条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【００８２】
以上のように、実施の形態４によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、キーワード集合が指定された順序で出現し、かつ、前後のキーワード集合間の距離が指定された距離に等しい順序指定あり近傍等条件としたので、従来に比べて、順序指定あり近傍等条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【００８３】
実施の形態５．
実施の形態５は、キーワード集合の順序指定無し近傍等条件を判定するようにしたものである。
【００８４】
実施の形態５における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。実施の形態５の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定あり近傍等条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【００８５】
ここで、キーワード集合の順序指定なし近傍等条件について説明する。キーワード集合の順序指定なし近傍条件とは、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が真に指定された距離であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離がｄに対して、順序指定なし近傍等条件は以下のように判定される。
【数６】
2005339150.tif 000008
【００８６】
実施の形態５における、検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れは、図９のステップＳＴ９０２でキーワード集合間の順序指定あり近傍等条件を判定するように構成したものと同等であるため、ここでの説明は省略する。
【００８７】
今、一つのキーワード集合の文書中での出現位置の数をＮとする。従来の特許文献１記載の方式では、Ｋ個のキーワード集合間の順序指定なし近傍等条件の判定に要する計算量は、Ｏ（ＮＫ）となる。一方、本実施の形態の場合は、Ｋ個のキーワード間の順序指定なし近傍等条件の判定に要する計算量は、実施の形態３と同様にＯ（Ｋ！ＫＮ）である。この計算量は、ＫがＮより小さければ、従来方式よりも少ない計算量である。
【００８８】
以上のように、実施の形態５によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離に等しい順序指定なし近傍等条件としたので、従来に比べて、順序指定なし近傍等条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【００８９】
実施の形態６．
実施の形態６は、キーワード集合の順序指定あり近傍外条件を判定するようにしたものである。
【００９０】
実施の形態６における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。実施の形態６の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定あり近傍外条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【００９１】
ここで、キーワード集合の順序指定あり近傍外条件について説明する。キーワード集合の順序指定あり近傍外条件とは、キーワード集合が指定された順序で出現し、かつ前後のキーワード集合間の距離が指定された距離以上であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎがこの順序で指定されたとする。また、そのキーワード集合間の距離ｄが指定されたとする。このとき、条件は以下のように判定される。
【数７】
2005339150.tif 000009
【００９２】
図１２は、実施の形態６における、検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れ図である。
検索処理実行部１０５は、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離ｄが与えられると、近傍条件判定部１０８は、ステップＳＴ１２０１でキーワード集合Ｓ１の、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１を、キーワード集合照合部１０７から取得する。その後は、以下の処理をｉが１〜ｎ−１について繰り返す。
【００９３】
ステップＳＴ１２０２では、キーワード集合Ｓｉ＋１の判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋｉ＋１を取得する。次に、ステップＳＴ１２０３で、取得したキーワード集合ＳｉとＳｉ＋１の出現位置が、順序指定あり近傍等条件に適合しているか否かを判定する。即ち、ＤＩＳＴＤ（ｋｉ，ｋｉ＋１）≧ｄを満たしているか否かを判定する。
【００９４】
ステップＳＴ１２０３で判定対象の文書に対して、条件に適合していない場合（ＮＯ）、ステップＳＴ１２０５でＳｉ＋１の次の出現位置を取得し、ステップＳＴ１２０３で取得したキーワード集合間の順序指定あり近傍外条件を判定する。ステップＳＴ１２０３で条件に適合していた場合（ＹＥＳ）、ステップＳＴ１２０２で次のｉに対してキーワード集合Ｓｉ＋１の最初の出現位置と、その出現位置にあるキーワードｋｉ＋１を取得する。この処理を、ｉが１〜ｎ−１について繰り返し、全てのｉについて順序指定あり近傍等条件に適合した場合、ステップＳＴ１２０４で「適合した」を出力して終了する。
【００９５】
尚、図１２の処理の流れ図では省略したが、ステップＳＴ１２０１、ステップＳＴ１２０５で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に順序指定あり近傍等条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。
【００９６】
図１３は、実施の形態６の図１２に示した処理の流れによる、キーワード集合の順序指定あり近傍外条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３がこの順序で与えられ、距離の指定がｄであったとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６｝、Ｓ３Ｄ＝｛ｐ７，ｐ８｝とする。それらの出現位置の関係は、図１３の通りであるとする。このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（５）の処理は、図１３中の（１）〜（５）に対応している。
【００９７】
（１）図１２のステップＳＴ１２０１でＳ１の文書Ｄ中での最初の出現位置ｐ１が取得される。次に、ステップＳＴ１２０２でＳ２の文書中での最初の出現位置ｐ４を取得する。ステップＳＴ１２０３でこの出現位置が順序指定あり近傍外条件に適合しているか否かを判定する。図１３の場合、キーワード集合Ｓ２が、Ｓ１よりも先に出現しているため、順序指定あり近傍外条件に適合していない。よって、ステップＳＴ１２０５に移行する。ステップＳＴ１２０５で、キーワード集合Ｓ２の次の出現位置ｐ５を取得する。
【００９８】
（２）ステップＳＴ１２０３で、出現位置ｐ１、ｐ５に対して順序指定あり近傍外条件を判定する。今度は、Ｓ１、Ｓ２間の距離がｄより小さいため、順序指定あり近傍外条件に適合していない。よって、ステップＳＴ１２０５に移行し、キーワード集合Ｓ２の次の出現位置ｐ６を取得する。
【００９９】
（３）ステップＳＴ１２０３で、出現位置ｐ１、ｐ６に対して順序指定あり近傍外条件を判定する。今度は順序指定あり近傍外条件に適合しているため、ステップＳＴ１２０２でキーワード集合Ｓ３の文書中での最初の出現位置ｐ７を取得する。
【０１００】
（４）ステップＳＴ１２０３で、出現位置ｐ６、ｐ７に対して順序指定あり近傍外条件を判定する。キーワード集合Ｓ３が、Ｓ２よりも先に出現しているため、順序指定あり近傍外条件に適合していない。よって、ステップＳＴ１２０５でキーワード集合Ｓ３の次の出現位置ｐ８を取得する。
【０１０１】
（５）ステップＳＴ１２０３で、出現位置ｐ６、ｐ８に対して順序指定あり近傍外条件を判定する。ここで条件に適合し、かつ全てのキーワード集合について判定したので、ステップＳＴ１２０６で「適合した」を出力して終了する。
【０１０２】
文書の文字数をＮ、キーワード集合に含まれるキーワード数をＭとする。従来方式の、キーワードの出現位置を総当りによって順序指定あり近傍外条件を判定するものでは、Ｋ個のキーワード集合間の順序指定あり近傍外条件の判定に要する計算量は、Ｏ（（ＭＮ）Ｋ）となる。一方、本実施の形態の順序指定あり近傍外条件の判定の場合は、実施の形態２と同様にＯ（ＫＭＮ）である。
【０１０３】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、順序指定あり近傍外条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【０１０４】
以上のように、実施の形態６によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、キーワード集合が指定された順序で出現し、かつ、前後のキーワード集合間の距離が指定された距離以上である順序指定あり近傍外条件としたので、従来に比べて、順序指定あり近傍外条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【０１０５】
実施の形態７．
実施の形態７は、キーワード集合の順序指定無し近傍外条件を判定するようにしたものである。
【０１０６】
実施の形態７における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。実施の形態５の文書検索装置は、実施の形態１の文書検索装置の近傍条件判定部１０８で、キーワード集合の順序指定無し近傍外条件を判定できるように構成したものである。また、検索処理の全体の流れは図３に示したものと同等であるため、ここでの説明は省略する。
【０１０７】
ここで、キーワード集合の順序指定なし近傍外条件について説明する。キーワード集合の順序指定なし近傍外条件とは、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以上であるか否かを判定する近傍条件である。今、キーワード集合Ｓ１〜Ｓｎとキーワード集合間の距離がｄに対して、順序指定なし近傍外条件は以下のように判定される。
【数８】
2005339150.tif 000010
【０１０８】
実施の形態７における、図１の検索処理実行部１０５の処理（図３のステップＳＴ３０３）の流れは、図９のステップＳＴ９０２でキーワード集合間の順序指定無し近傍外条件を判定するように構成したものと同等であるため、ここでの説明は省略する。
【０１０９】
一つのキーワード集合の文書中での出現位置の数をＮとする。従来の特許文献１記載の方式の、キーワードの出現位置を総当りによって、順序指定無し近傍外条件を判定するものでは、Ｋ個のキーワード集合間の順序指定無し近傍外条件の判定に要する計算量は、Ｏ（ＮＫ）となる。一方、本実施の形態の場合は、Ｋ個のキーワード間の順序指定無し近傍外条件の判定に要する計算量は、実施の形態３と同様にＯ（Ｋ！ＫＮ）である。この計算量は、ＫがＮより小さければ、従来方式よりも少ない計算量である。
【０１１０】
以上のように、実施の形態７によれば、近傍条件判定部１０８が行う判定処理の近傍条件として、全てのキーワード集合が文書中に出現したとき、前後のキーワード集合間の距離が指定された距離以上である順序指定なし近傍外条件としたので、従来に比べて、順序指定なし近傍外条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【０１１１】
実施の形態８．
実施の形態８は、キーワード集合の文脈条件を判定するようにしたものである。
【０１１２】
図１４は、実施の形態８の文書検索装置を示す構成図である。
図示の文書検索装置は、図１に示す検索処理実行部１０５の近傍条件判定部１０８を文脈条件判定部１１２に置き換えたものである。それ以外の構成は、図１と同様であるため、対応する部分に同一符号を付してその説明を省略する。文脈条件判定部１１２は、検索処理実行部１０５ａに設けられ、複数のキーワード集合が与えられたとき、その全てのキーワード集合が同じ文書の構成単位中に出現するか否かを判定する機能を有するものである。
【０１１３】
検索処理における全体の流れは、図３のステップＳＴ３０３の近傍条件に適合しているか否かの判定処理を、文脈条件の判定処理に置き換えたものと同等であるため、ここでの説明は省略する。
【０１１４】
ここで、キーワード集合の文脈条件について説明する。キーワード集合の文脈条件とは、二つ以上のキーワード集合が与えられたとき、その全てのキーワード集合が同じ文書の構成単位中に出現するか否かを判定する条件である。ここで、文書の構成単位とは、文書中の文、段落、章、節、ページのような文書を構成する要素のことである。キーワード集合Ｓ１〜Ｓｎが指定されたとする。このとき、条件は以下のように判定される。ここでは、文書Ｄの構成単位をｃｏｍｐＤとし、その構成単位の先頭の位置をＳＴＲＤ（ｃｏｍｐＤ）、末尾の位置をＥＮＤＤ（ｃｏｍｐＤ）とする。構成単位の先頭位置、末尾位置は、それぞれ文書の先頭からの文字数で表されるとする。
【数９】
2005339150.tif 000011
【０１１５】
図１５は、実施の形態８における検索処理実行部１０５ａの処理の流れ図である。
検索処理実行部１０５ａは、キーワード集合Ｓ１〜Ｓｎが与えられると、先ず、ステップＳＴ１５０１で判定対象の文書の全ての文書構成単位の先頭位置と末尾位置の情報を取得する。次に、文脈条件判定部１１２は、ステップＳＴ１５０２でキーワード集合Ｓ１〜Ｓｎの、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１〜ｋｎを、キーワード集合照合部１０７から取得する。
【０１１６】
ステップＳＴ１５０３では、取得したキーワード集合の出現位置が、文脈条件に適合しているか否かを判定する。即ち、全てのｉ＝１〜ｎとある文書の構成単位ｃｏｍｐＤｊ（ｊ＝１〜ｍ）に対して、ＳＴＲＤ（ｃｏｍｐＤｊ）≦ＳＴＲＤ（ｋｉ）、ＥＮＤＤ（ｋｉ）≦ＥＮＤＤ（ｃｏｍｐＤｊ）を満たしているか否かを判定する。ステップＳＴ１５０３で判定対象の文書に対して、取得したキーワード集合の出現位置が、文脈条件に適合しているならば（ＹＥＳ）、ステップＳＴ１５０７に移行し、「適合した」を出力して終了する。一方、ステップＳＴ１５０３で、判定対象の文書に対して、取得したキーワード集合の出現位置が、文脈条件に適合していなければ（ＮＯ）、ステップＳＴ１５０４で、文書中でのキーワードの末尾の出現位置が最も後ろのｋｉが、二つ以上の文書の構成単位に跨っていないか判定する。即ち、あるｊに対してＳＴＲＤ（ｋｉ）≦ＥＮＤＤ（ｃｏｍｐＤｊ）≦ＥＮＤＤ（ｋｉ）であるか否かを判定する。
【０１１７】
ステップＳＴ１５０４において、跨っていた場合（ＹＥＳ）、ステップＳＴ１５０５でＳｉの次の出現位置を取得し、ステップＳＴ１５０６に移行する。ステップＳＴ１５０４で、ｋｉが二つ以上の文書の構成単位に跨っていない場合（ＮＯ）、ステップＳＴ１５０６に移行する。ステップＳＴ１５０６では、キーワードの末尾の文書中での出現位置が最も後ろのｋｉと同じ文書の構成単位に含まれない、全てのキーワード集合の次の出現位置を取得する。ステップＳＴ１５０６でキーワード集合の次の出現位置を取得したら、ステップＳＴ１５０３に戻り、取得したキーワード集合の出現位置が文脈条件に適合するか否かを判定する。
【０１１８】
尚、図１５の処理の流れ図では省略したが、ステップＳＴ１５０２、ステップＳＴ１５０５、ステップＳＴ１５０６で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に文脈条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。
【０１１９】
また、ステップＳＴ１５０１で、文書の構成単位の先頭位置と末尾位置を取得するとしたが、文書の構成単位の先頭・末尾位置の情報は、文書をデータベース１１０に登録するときに、文書から自動的に抽出してデータベース１１０に記録しておいても良いし、検索時に判定対象の文書を走査して取得してくるようにしても良い。どちらの場合も、文書の構成単位が文であるときは、句点の直後の文字の位置を先頭位置、次の句点の位置を末尾位置とすることで、自動的に文書から抽出できる。文書の構成単位が段落の場合は、句点の代わりに改行文字を、構成単位の区切り文字とすればよい。
【０１２０】
図１６は、実施の形態８の図１５に示した処理の流れによる、キーワード集合の文脈条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３が与えられたとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６｝、Ｓ３Ｄ＝｛ｐ７，ｐ８，ｐ９｝とする。それらの出現位置の関係は、図１６の通りであるとする。このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（３）の処理は図１６中の（１）〜（３）に対応している。
【０１２１】
（１）図１５のステップＳＴ１５０１で、文書Ｄの全ての構成単位の先頭位置と末尾位置の情報を取得する。次に、ステップＳＴ１５０２で、Ｓ１〜Ｓ３の文書Ｄ中での最初の出現位置ｐ１、ｐ４、ｐ７が取得される。ステップＳＴ１５０３で、取得した出現位置が文脈条件に適合しているか否かを判定する。図１６の場合、キーワード集合Ｓ１、Ｓ３が、構成単位１６０２に、Ｓ２が構成単位１６０１に含まれるため、文脈条件に適合しない。よって、ステップＳＴ１５０４を経てステップＳＴ１５０６に移行する。ステップＳＴ１５０６では、ｐ１が文書中で最も後ろの位置にあるため、キーワード集合Ｓ１が含まれる構成単位１６０２に含まれていないＳ２の次の出現位置ｐ５を取得する。
【０１２２】
（２）ステップＳＴ１５０３で、出現位置ｐ１、ｐ５、ｐ７に対して文脈条件の判定を実施する。今度はＳ１、Ｓ３は構成単位１６０２に、Ｓ２は構成単位１６０４に含まれているため、文脈条件に適合しない。ステップＳＴ１５０６で、ｐ５が文書中で最も後ろに位置するため、構成単位１６０４に含まれないキーワード集合Ｓ１とＳ２の次の出現位置ｐ２、ｐ８を取得する。
【０１２３】
（３）ステップＳＴ１５０３で、出現位置ｐ２、ｐ５、ｐ８に対して文脈条件を判定する。今度は、Ｓ１、Ｓ２、Ｓ３が、同じ構成単位１６０４に含まれるため、文脈条件に適合する。よって、ステップＳＴ１５０７で「適合した」を出力して終了する。
【０１２４】
文書の文字数をＮ、キーワード集合に含まれるキーワード数をＭとする。従来の特許文献１記載の方式では、Ｋ個のキーワード集合間の文脈条件の判定に要する計算量は、Ｏ（（ＭＮ）Ｋ）となる。一方、本実施の形態の文脈条件の判定の場合は、実施の形態２と同様にＯ（ＫＭＮ）である。
【０１２５】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、文脈条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【０１２６】
以上のように、実施の形態８によれば、複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部１０７と、キーワード集合照合部１０７で取得した複数のキーワード集合が、同一文書の構成単位中に出現することを示す文脈条件を満たすか否かを判定する文脈条件判定部１１２とを有し、キーワード集合照合部１０７における出現位置の取得処理と、文脈条件判定部１１２における文脈条件判定処理とを交互に実行し、文脈条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部１０５ａを備えたので、従来に比べて、文脈条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【０１２７】
実施の形態９．
実施の形態９は、キーワード集合の範囲条件を判定するようにしたものである。
【０１２８】
図１７は、実施の形態９の文書検索装置を示す構成図である。
図示の文書検索装置は、図１に示す検索処理実行部１０５の近傍条件判定部１０８を範囲条件判定部１１３に置き換えたものである。それ以外の構成は、図１と同様であるため、対応する部分に同一符号を付してその説明を省略する。範囲条件判定部１１３は、検索処理実行部１０５ｂに設けられ、複数のキーワード集合と、一つの文書範囲が与えられたとき、その全てのキーワード集合が同じ文書範囲中に出現するか否かを判定する機能を有するものである。
【０１２９】
検索処理における全体の流れは、図３のステップＳＴ３０３の近傍条件に適合しているか否かの判定処理を、範囲条件の判定処理に置き換えたものと同等であるため、ここでの説明は省略する。
【０１３０】
ここで、キーワード集合の範囲条件について説明する。キーワード集合の範囲条件とは、二つ以上のキーワード集合と、一つの文書範囲が与えられたとき、その全てのキーワード集合が同じ文書範囲中に出現するか否かを判定する条件である。ここで、文書範囲とは、要約、前書き、後書き、本文などのように、文書中のあるまとまりを構成する範囲のことである。キーワード集合Ｓ１〜Ｓｎと文書範囲が指定されたとする。このとき、範囲条件は以下のように判定される。ここでは、文書Ｄ中の範囲をｒａｎｇｅＤとし、その文書範囲の先頭の位置をＳＴＲＤ（ｒａｎｇｅＤ）、末尾の位置をＥＮＤＤ（ｒａｎｇｅＤ）とする。
【数１０】
2005339150.tif 000012
【０１３１】
図１８は、実施の形態９における、検索処理実行部１０５ｂの処理の流れ図である。
検索処理実行部１０５ｂは、キーワード集合Ｓ１〜Ｓｎと文書範囲ｒａｎｇｅＤが与えられると、先ず、ステップＳＴ１８０１で判定対象の文書の範囲の先頭位置と末尾位置の情報を取得する。次に、範囲条件判定部１１３は、ステップＳＴ１８０２でキーワード集合Ｓ１〜Ｓｎの、判定対象の文書中での最初の出現位置と、その出現位置にあるキーワードｋ１〜ｋｎを、キーワード集合照合部１０７から取得する。ステップＳＴ１８０３では、取得したキーワード集合の出現位置が、範囲条件に適合しているか否かを判定する。即ち、全てのｉ＝１〜ｎと文書範囲ｒａｎｇｅＤに対して、ＳＴＲＤ（ｒａｎｇｅＤ）≦ＳＴＲＤ（ｋｉ）、ＥＮＤＤ（ｋｉ）≦ＥＮＤＤ（ｒａｎｇｅＤ）を満たしているか否かを判定する。
【０１３２】
ステップＳＴ１８０３で判定対象の文書に対して、取得したキーワード集合の出現位置が、範囲条件に適合しているならば（ＹＥＳ）、ステップＳＴ１８０５に移行し、「適合した」を出力して終了する。一方、ステップＳＴ１８０３で、判定対象の文書に対して、取得したキーワード集合の出現位置が、範囲条件に適合していなければ（ＮＯ）、ステップＳＴ１８０４で、範囲条件を満たしていない全てのキーワード集合の次の出現位置を取得する。ステップＳＴ１８０４でキーワード集合の次の出現位置を取得したら、ステップＳＴ１８０３で、取得したキーワード集合の出現位置が範囲条件に適合するか否かを判定する。
【０１３３】
尚、図１８の処理の流れ図では省略したが、ステップＳＴ１８０２、ステップＳＴ１８０４で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に範囲条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。また、ステップＳＴ１８０３でＥＮＤＤ（ｒａｎｇｅＤ）＜ＥＮＤＤ（ｋｉ）となるキーワードがあった場合も、「適合しない」を出力して終了する。
【０１３４】
図１８のステップＳＴ１８０１で、文書範囲の先頭位置と末尾位置を取得するとしたが、文書範囲の先頭・末尾位置の情報は、文書をデータベース１１０に登録するときに、文書から自動的に抽出してデータベース１１０に記録しておいても良いし、検索時に判定対象の文書を走査して取得してくるようにしても良い。どちらの場合も、文書範囲の抽出ルールを予め決めておく必要がある。
【０１３５】
図１９は、実施の形態９の図１８に示した処理の流れよる、キーワード集合の範囲条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３が与えられたとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６｝、Ｓ３Ｄ＝｛ｐ７，ｐ８，ｐ９｝とする。それらの出現位置の関係は、図１９の通りであるとする。このような検索条件が与えられたとき、以下のようにして判定が実行される。尚、以下の（１）〜（３）の処理は、図１９中の（１）〜（３）に対応しているものである。
【０１３６】
（１）図１８のステップＳＴ１８０１で、文書Ｄの指定された範囲の先頭位置と末尾位置の情報を取得する。次に、ステップＳＴ１８０２で、Ｓ１〜Ｓ３の文書Ｄ中での最初の出現位置ｐ１、ｐ４、ｐ７が取得される。ステップＳＴ１８０３で、取得した出現位置が範囲条件に適合しているか否かを判定する。図１９の場合、いずれのキーワード集合も指定された範囲に含まれないため、範囲条件に適合しない。よって、ステップＳＴ１８０４では、Ｓ１、Ｓ２、Ｓ３の次の出現位置ｐ２、ｐ５、ｐ８を取得する。
【０１３７】
（２）ステップＳＴ１８０３で、出現位置ｐ２、ｐ５、ｐ８に対して範囲条件の判定を実施する。今度はＳ１、Ｓ２が指定された文書範囲に含まれないため、範囲条件に適合しない。ステップＳＴ１８０４で、Ｓ１とＳ２の次の出現位置ｐ３、ｐ６を取得する。
【０１３８】
（３）ステップＳＴ１８０３で、出現位置ｐ３、ｐ６、ｐ８に対して文脈条件を判定する。今度は、Ｓ１、Ｓ２、Ｓ３が、指定された文書範囲に含まれるため、範囲条件に適合する。よって、ステップＳＴ１８０５で「適合した」を出力して終了する。
【０１３９】
文書の文字数をＮ、キーワード集合に含まれるキーワード数をＭとする。従来の特許文献１記載の方式では、Ｋ個のキーワード集合間の範囲条件の判定に要する計算量は、Ｏ（ＭＫＫＮ）となる。一方、本実施の形態の文脈条件の判定の場合は、実施の形態２と同様にＯ（ＫＭＮ）である。
【０１４０】
このように、実施の形態９の文書検索装置では、キーワード集合間の範囲条件を、従来の方式と比較して高速に判定することが可能である。
【０１４１】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、範囲条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【０１４２】
以上のように、実施の形態９によれば、複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部１０７と、キーワード集合照合部１０７で取得した複数のキーワード集合が、特定の文書範囲中に出現することを示す範囲条件を満たすか否かを判定する範囲条件判定部１１３とを有し、キーワード集合照合部１０７における出現位置の取得処理と、範囲条件判定部１１３における範囲条件判定処理とを交互に実行し、範囲条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部を備えたので、従来に比べて、範囲条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【０１４３】
実施の形態１０．
実施の形態１０は、キーワード集合の複合条件を判定するようにしたものである。
【０１４４】
図２０は、実施の形態１０の文書検索装置を示す構成図である。
図示の文書検索装置は、図１に示す検索処理実行部１０５の近傍条件判定部１０８を複合条件判定部１１４に置き換えたものである。それ以外の構成は、図１と同様であるため、対応する部分に同一符号を付してその説明を省略する。複合条件判定部１１４は、検索処理実行部１０５ｃに設けられ、二つ以上のキーワード集合が与えられたとき、その全てのキーワード集合が、上記実施の形態２〜実施の形態７のいずれかの近傍条件、実施の形態８の文脈条件、実施の形態９の範囲条件、およびそれらを論理演算で組み合わせた論理条件に適合するか否かを判定する機能を有するものである。
【０１４５】
検索処理における全体の流れは、図３のステップＳＴ３０３の近傍条件に適合しているか否かの判定処理を、複合条件の判定処理に置き換えたものと同等であるため、ここでの説明は省略する。
【０１４６】
ここで、キーワード集合の複合条件について説明する。キーワード集合の複合条件とは、二つ以上のキーワード集合が与えられたとき、その全てのキーワード集合が、近傍条件、文脈条件、範囲条件、およびそれらを論理演算（ＡＮＤ／ＯＲ／ＮＯＴ等）で組み合わせた論理条件に適合するか否かを判定する条件である。複合条件に範囲条件の判定を含む場合は、検索条件として一つの文書範囲も与える。
【０１４７】
図２１は、実施の形態１０における検索処理実行部１０５ｃの処理の流れ図である。
今、検索条件として、キーワード集合の順序指定あり近傍内条件と、文脈条件と、範囲条件とを論理条件ＡＮＤで結合した複合条件が与えられたとする。検索処理実行部１０５ｃは、キーワード集合と、キーワード集合間の距離と、一つの文書範囲が指定されると、キーワード集合照合部１０７によって、ステップＳＴ２１０１で、判定対象の文書の、全ての構成単位と、指定された文書範囲の先頭と末尾の位置を取得する。次に、キーワード集合照合部１０７は、ステップＳＴ２１０２で全てのキーワード集合の最初の出現位置を取得する。そして、複合条件判定部１１４は、ステップＳＴ２１０３で、取得したキーワード集合の出現位置が範囲条件に適合するか判定する。
【０１４８】
ステップＳＴ２１０３において、範囲条件に適合した場合（ＹＥＳ）、ステップＳＴ２１０４に移行し、取得したキーワード集合の出現位置が文脈条件に適合するか判定する。ステップＳＴ２１０４で、文脈条件に適合した場合（ＹＥＳ）、ステップＳＴ２１０５で、取得したキーワード集合の出現位置が近傍条件に適合するか判定する。ステップＳＴ２１０５で、近傍条件に適合した場合、ステップＳＴ２１０６で、「適合した」を出力して終了する。
【０１４９】
一方、ステップＳＴ２１０３、ステップＳＴ２１０４、ステップＳＴ２１０５の各条件判定で、条件に適合しなかった場合（ＮＯ）は、ステップＳＴ２１０７で、キーワード集合の次の出現位置を取得する。ステップＳＴ２１０７で、出現位置を取得するキーワード集合は、判定で適合しなかった条件によって異なる。範囲条件に適合しなかった場合は、実施の形態９に従ってキーワード集合の出現位置を取得する。文脈条件に適合しなかった場合は、実施の形態８に従ってキーワード集合の出現位置を取得する。近傍条件に適合しなかった場合は、実施の形態２乃至実施の形態７のいずれかに従ってキーワード集合の出現位置を取得する。ステップＳＴ２１０７で、キーワード集合の出現位置を取得したら、ステップＳＴ２１０３に戻って、再び範囲条件を判定する。
【０１５０】
図２１の処理の流れ図では省略したが、ステップＳＴ２１０２、ステップＳＴ２１０７で、キーワード集合の出現位置が取得できなかった場合は、その判定対象の文書中に範囲条件に適合する出現位置はないということなので、「適合しない」を出力して終了する。また、ステップＳＴ２１０３で、キーワード集合の文書中での出現位置が、文書範囲より後ろであった場合も「適合しない」を出力して終了する。
【０１５１】
図２２は、実施の形態１０の図２１に示した処理の流れによる、キーワード集合の複合条件の判定のパスを示したものである。
今、検索条件としてキーワード集合Ｓ１、Ｓ２、Ｓ３が与えられたとする。各キーワード集合の、判定対象の文書Ｄ中での出現位置を、Ｓ１Ｄ＝｛ｐ１，ｐ２，ｐ３｝、Ｓ２Ｄ＝｛ｐ４，ｐ５，ｐ６，ｐ７｝、Ｓ３Ｄ＝｛ｐ８，ｐ９，ｐ１０｝とする。それらの出現位置の関係は、図２２の通りであるとする。尚、これらキーワード集合Ｓ１、Ｓ２、Ｓ３の複合条件を満たす具体的な動作は、実施の形態９における範囲条件、実施の形態８における文脈条件、および実施の形態２〜実施の形態７のいずれかによる近傍条件の各条件を全て満たす動作であるため、ここでの説明は省略する。
【０１５２】
範囲条件に適合する文書中の領域は、近傍条件や文脈条件と比べて局所的である。よって、論理条件ＡＮＤで結合された複合条件は、範囲条件から判定することで、より早く条件に適合する領域を絞り込むことができる。論理条件ＯＲで結合された複合条件の場合は、条件に適合する領域が広いものを先に判定することで、より早く判定結果を取得することができる。
【０１５３】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得して、複合条件を判定する方法を示したが、文書の末尾から先頭に向かって順に条件を判定しても、同様の効果が得られる。
【０１５４】
以上のように、実施の形態１０によれば、複数のキーワード集合の文書中での出現位置をそれぞれのキーワード集合の出現位置順に取得するキーワード集合照合部１０７と、キーワード集合照合部１０７で取得した複数のキーワード集合が、所定の近傍条件、同一文書の構成単位中に出現することを示す文脈条件、特定の文書範囲中に出現することを示す範囲条件、およびこれら条件の論理条件を組み合わせた複合条件を満たすか否かを判定する複合条件判定部１１４とを有し、キーワード集合照合部１０７における出現位置の取得処理と、複合条件判定部１１４における複合条件判定処理とを交互に実行し、複合条件が真と判定された時点でその判定結果を検索結果として出力する検索処理実行部１０５ｃを備えたので、従来に比べて、複合条件の判定に要する計算量を削減することができ、このような検索処理における検索時間を短縮することができる。
【０１５５】
実施の形態１１．
実施の形態１１は、上記各実施の形態１乃至１０において、キーワード集合照合部１０７で、キーワード集合の文書中での出現位置を高速に取得するようにしたものである。
【０１５６】
実施の形態１１の図面上の構成は、各実施の形態１〜１１のいずれかと同様であるため、その図示およびキーワード集合照合部１０７以外の構成の説明は省略する。実施の形態１１のキーワード集合照合部１０７は、キーワード集合として直前に出力した出現位置にあるキーワードの次の出現位置のみを取得し、その取得した出現位置と、他のキーワードの出現位置とを比較し、最も小さいものをキーワード集合の次の出現位置として出力するよう構成されている。
【０１５７】
次に、実施の形態１１における、キーワード集合照合部１０７の動作について説明する。
キーワード集合照合部１０７は、キーワード集合の文書中での最初の出現位置取得要求があると、キーワード集合中の全てのキーワードについて、キーワード照合部１０９からその最初の出現位置を取得する。キーワード照合部１０９は、キーワードの出現位置取得要求がある度に、キーワードの出現位置を文書の先頭から順番に一つずつ出力する。例えば、図２の例で説明すると、キーワード集合｛キーワード，出現｝では、“キーワード”の最初の出現位置である１と、“出現”の最初の出現位置である９を出力する。
【０１５８】
キーワード集合照合部１０７は、キーワード集合中のどのキーワードについても、その出現位置が取得できなかった場合、「ヒットしない」を出力して終了する。一方、キーワード集合中の一つ以上のキーワードについて、その出現位置が取得できたら、その得られた出現位置の中で、文書中で最も早く出現するものを出力して終了する。図２の例では、各キーワードの最初の出現位置は［１，９］であるため、１をキーワード集合の出現位置として出力する。このとき、必要に応じて、その出現位置にあるキーワードやそのキーワード長もあわせて出力するようにしても良い。そして、キーワード集合照合部１０７は、終了時に出力した出現位置にあるキーワード（図２の例では「キーワード」）と、全てのキーワードについて取得した出現位置の情報（図２の例では［１，９］）を内部で記憶しておく。
【０１５９】
図２３は、２回目以降のキーワード集合の出現位置の取得処理の流れである。
キーワード集合照合部１０７は、２回目以降のキーワード集合の出現位置の取得要求があった場合、ステップＳＴ２３０１で、前回出力した出現位置にあるキーワードについて、キーワード照合部１０９から次の出現位置を取得する。ステップＳＴ２３０２で、そのキーワードの出現位置が取得できたか否かを判定する。
【０１６０】
ステップＳＴ２３０２において、取得できていた場合（ＹＥＳ）、ステップＳＴ２３０３で、ステップＳＴ２３０１で取得してキーワードの出現位置と、前回以前のキーワード集合照合処理で取得したキーワードの出現位置の中で、最も文書中で早く出現するものを出力する。例えば、図２の例では、前回出力した出現位置にあるキーワードは“キーワード”であるため、ステップＳＴ２３０２において、“キーワード”の次の出現位置である１８を取得する。次に、ステップＳＴ２３０３において、その他のキーワードである“出現”の出現位置９とを比較し、最も小さいものとして９をキーワード集合｛キーワード，出現｝の次の出現位置として出力する。
【０１６１】
ステップＳＴ２３０２で、出現位置が取得できなかった場合（ＮＯ）、ステップＳＴ２３０４に移行する。ステップＳＴ２３０４では、前回以前のキーワード集合照合処理で取得したキーワードの出現位置の情報があるか否かを判定する。出現位置の情報があった場合（ＹＥＳ）、ステップＳＴ２３０３に移行する。ステップＳＴ２３０４で、出現位置の情報がなかった場合（ＮＯ）、ステップＳＴ２３０５で、「ヒットしない」を出力して終了する。例えば、図２の例では、キーワード集合の出現位置として３５を出力した後、次の出現位置要求があった場合、その出現位置３５にある“キーワード”の次の出現位置は取得できないため、他のキーワードである“出現”の出現位置４３をキーワード集合の次の出現位置として出力する。その後は、ステップＳＴ２３０４において、次の出現位置の候補が存在しないため、「ヒットしない」を出力する。
【０１６２】
キーワード照合部１０９の処理の詳細については触れなかったが、キーワード照合部１０９は、キーワードの出現位置取得要求に対して、そのキーワードが文書の先頭から何文字目に出現しているかの情報を返すことができれば、どのような方式で実現しても良い。即ち、記憶装置に文字や文字列と、その文書中での出現位置の組の情報を索引として記録しておいても良いし、出現位置取得要求があったときに文書を直接走査して、キーワードの出現位置を取得しても良い。
【０１６３】
以上のように、キーワード集合照合部１０７を構成したので、キーワード集合の出現位置取得要求がある度に、一つのキーワードについて出現位置を取得するだけで、キーワード集合の出現位置を出力することができる。このように、キーワード集合中の全てのキーワードについて、全ての出現位置を取得することなく、必要最小限のキーワード照合の実行でキーワード集合の出現位置を取得できる。
【０１６４】
尚、ここでは文書の先頭から順にキーワード集合の出現位置を取得する方式について示したが、実施の形態１乃至実施の形態１０の条件判定の方法によっては、文書の末尾から順にキーワード集合の出現位置を取得することも可能である。その場合は、キーワード照合部１０９を、文書の末尾から順番に一つずつ出力するように構成する。また、ステップＳＴ２３０３では、キーワードの出現位置の中で、文書中で最も後ろに出現するものを出力すればよい。
【０１６５】
以上のように、実施の形態１１によれば、キーワード集合照合部１０７を、キーワード集合として直前に出力した出現位置にあるキーワードの次の出現位置のみを取得し、その取得した出現位置と、他のキーワードの出現位置とを比較し、最も小さいものをキーワード集合の次の出現位置として出力するよう構成したので、キーワード集合の文書中での出現位置を高速に取得することができる。
【図面の簡単な説明】
【０１６６】
【図１】この発明の実施の形態１による文書検索装置を示す構成図である。
【図２】文書とキーワードとの関係を示す説明図である。
【図３】実施の形態１の文書検索装置における検索処理の流れ図である。
【図４】実施の形態１の文書検索装置における検索処理実行部の処理の流れ図である。
【図５】実施の形態２における検索処理実行部の処理の流れ図である。
【図６】実施の形態２のキーワード集合の順序指定あり近傍内条件の判定のパスを示す説明図である。
【図７】実施の形態３におけるキーワード集合が二つの場合の検索処理実行部の処理の流れ図である。
【図８】実施の形態３の二つのキーワード集合の順序指定なし近傍内条件の判定のパスを示す説明図である。
【図９】実施の形態３における三つ以上のキーワード集合に対する検索処理実行部の処理の流れ図である。
【図１０】実施の形態４における検索処理実行部の処理の流れ図である。
【図１１】実施の形態４のキーワード集合の順序指定あり近傍等条件の判定のパスを示す説明図である。
【図１２】実施の形態６における検索処理実行部の処理の流れ図である。
【図１３】実施の形態６のキーワード集合の順序指定あり近傍外条件の判定のパスを示す説明図である。
【図１４】実施の形態８の文書検索装置を示す構成図である。
【図１５】実施の形態８における検索処理実行部の処理の流れ図である。
【図１６】実施の形態８のキーワード集合の文脈条件の判定のパスを示す説明図である。
【図１７】実施の形態９の文書検索装置を示す構成図である。
【図１８】実施の形態９における検索処理実行部の処理の流れ図である。
【図１９】実施の形態９のキーワード集合の範囲条件の判定のパスを示す説明図である。
【図２０】実施の形態１０の文書検索装置を示す構成図である。
【図２１】実施の形態１０における検索処理実行部の処理の流れ図である。
【図２２】実施の形態１０のキーワード集合の複合条件の判定のパスを示す説明図である。
【図２３】実施の形態１１における２回目以降のキーワード集合の出現位置の取得処理の流れである。
【符号の説明】
【０１６７】
１０１  検索条件、１０５，１０５ａ，１０５ｂ，１０５ｃ  検索処理実行部、１０７  キーワード集合照合部、１０８  近傍条件判定部、１１０  データベース、１１２  文脈条件判定部、１１３  範囲条件判定部、１１４  複合条件判定部。
【図１】
2005339150.tif 000013
【図２】
2005339150.tif 000014
【図３】
2005339150.tif 000015
【図４】
2005339150.tif 000016
【図５】
2005339150.tif 000017
【図６】
2005339150.tif 000018
【図７】
2005339150.tif 000019
【図８】
2005339150.tif 000020
【図９】
2005339150.tif 000021
【図１０】
2005339150.tif 000022
【図１１】
2005339150.tif 000023
【図１２】
2005339150.tif 000024
【図１３】
2005339150.tif 000025
【図１４】
2005339150.tif 000026
【図１５】
2005339150.tif 000027
【図１６】
2005339150.tif 000028
【図１７】
2005339150.tif 000029
【図１８】
2005339150.tif 000030
【図１９】
2005339150.tif 000031
【図２０】
2005339150.tif 000032
【図２１】
2005339150.tif 000033
【図２２】
2005339150.tif 000034
【図２３】
2005339150.tif 000035