以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係る情報検索装置のハードウェア構成を示すブロック図である。図1に示すように、コンピュータ10は、例えばハードディスクドライブ(HDD:Hard Disk Drive)のような外部記憶装置20と接続されている。この外部記憶装置20は、コンピュータ10によって実行されるプログラム21を格納する。コンピュータ10および外部記憶装置20は、情報検索装置30を構成する。
図2は、図1に示す情報検索装置30の主として機能構成を示すブロック図である。図2に示すように、情報検索装置30は、入力処理部31、構文解析部32、一次検索部33、部分検索要求生成部34、言い換え検索部35、検索結果決定部36および出力処理部37を含む。本実施形態において、これらの各部31乃至37は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、情報検索装置30は、検索要求文解析結果格納部22、検索対象文格納部23、言い換えパタン格納部24、一次検索結果格納部25、部分検索要求格納部26および言い換え検索結果格納部27を含む。本実施形態において、これらの各部22乃至27は、例えば外部記憶装置20に格納される。
入力処理部31は、ユーザ(利用者)によって検索要求として指定された文(以下、検索要求文と表記)を入力する。検索要求文は例えば複数の文節から構成され、当該文節には自立語が含まれる。なお、自立語には、例えば名詞、動詞および形容動詞等が含まれる。入力処理部31は、ユーザの指示または入力を処理する機能を有する。
構文解析部32は、入力処理部31によって入力された検索要求文に対して構文解析を実行する。これにより、構文解析部32は、入力処理部によって入力された検索要求文の構文解析結果(第2の構文解析結果)を取得する。構文解析部32によって取得される検索要求文の構文解析結果は、当該検索要求文に含まれる自立語間の係り受け構造を示す。
検索要求文解析結果格納部22には、入力処理部31によって入力された検索要求文および構文解析部32によって取得された当該検索要求文の構文解析結果が格納される。
検索対象文格納部23には、情報検索装置30における検索処理の対象となる文書を構成する文(以下、検索対象文と表記)および当該検索対象文の構文解析結果(第1の構文解析結果)が予め対応づけて格納される。
検索対象文格納部23に格納されている検索対象文は例えば複数の文節から構成され、当該文節には自立語が含まれる。
また、検索対象文格納部23に格納されている検索対象文の構文解析結果は、当該検索対象文に含まれる自立語間の係り受け構造を示す。
言い換えパタン格納部24には、複数の自立語間の係り受け構造を示す対象パタン(第1の部分構文木パタン)および当該対象パタン(によって示される自立語間の係り受け構造)の言い換えとなる自立語間の係り受け構造を示すとともに当該対象パタンより自立語の数が少ない置換パタン(第2の部分構文木パタン)が予め対応づけて格納される。
一次検索部33は、入力処理部31によって入力された検索要求文に含まれる自立語(単語)に基づいて、検索対象文格納部23に格納されている検索対象文をキーワード検索する。具体的には、一次検索部33は、検索対象文格納部23に格納されている検索対象文の構文解析結果および検索要求文解析結果格納部22に格納されている検索要求文の構文解析結果に基づいて、入力処理部31によって入力された検索要求文に含まれる自立語を含む検索対象文を検索対象文格納部23から検索する。
一次検索部33は、入力処理部31によって入力された検索要求文に含まれる自立語を含む1の文書において連続する2つの検索対象文のペア(第1および第2の検索対象文)を検索する。つまり、一次検索部33は、1の文書において連続する2つの検索対象文の各々は検索要求文に含まれる自立語の全てを含まないが、当該2つの検索対象文で当該自立語の全てを含む場合に、当該2つの検索対象文のペアを検索する。
一次検索結果格納部25には、一次検索部33による検索結果が格納される。一次検索結果格納部25に格納される検索結果には、一次検索部33によって検索された検索対象文の構文解析結果が含まれる。また、一次検索結果格納部25には、入力処理部31によって入力された検索要求文に関する情報(当該検索要求文の構文解析結果等)が格納される。
部分検索要求生成部34は、一次検索結果格納部25(検索要求文解析結果格納部22)に格納された検索要求文の構文解析結果に基づいて、入力処理部31によって入力された検索要求文から部分検索要求文を生成する。部分検索要求生成部34は、一次検索結果格納部25に格納された検索要求文の構文解析結果によって示される自立語間の係り受け構造において、言い換えパタン格納部24に格納されている対象パタンによって示される複数の自立語間の係り受け構造と一致する部分を当該対象パタンに対応づけて言い換えパタン格納部24に格納されている置換パタンによって示される自立語間の係り受け構造に置換することにより、部分検索要求文を生成する。
部分検索要求生成部34は、検索要求文に動詞が複数含まれる場合には、当該動詞毎に部分検索要求文を生成する。部分検索要求生成部34は、検索要求文の構文解析結果によって示される自立語間の係り受け構造において検索要求文に含まれる動詞と係り受け関係にある自立語に基づいて部分検索要求文を生成する。
また、部分検索要求生成部34は、1の文書において連続する2つの検索対象文(第1および第2の検索対象文)が一次検索部33によって検索された場合、当該検索対象文毎に部分検索要求文(第1および第2の部分検索要求文)を生成する。部分検索要求生成部34は、入力処理部31によって入力された検索要求文に含まれる自立語のうち第1の検索対象文に含まれる自立語に基づいて、当該検索要求文の第1の部分検索要求文を生成する。部分検索要求生成部34は、入力処理部31によって入力された検索要求文に含まれる自立語のうち第2の検索対象文に含まれる自立語に基づいて、当該検索要求文の第2の部分検索要求文を生成する。
なお、部分検索要求生成部34によって生成された部分検索要求文は、部分検索要求格納部26に格納される。
言い換え検索部35は、部分検索要求生成部34によって生成された部分検索要求文(部分検索要求格納部26に格納された部分検索要求文)を用いて、言い換え検索処理を実行する。
言い換え検索部35は、部分検索要求生成部34によって生成された部分検索要求文および一次検索部33によって検索された検索対象文の構文解析結果に基づいて、当該検索対象文から当該検索対象文の言い換え文を生成する。言い換え検索部35は、部分検索要求格納部26に格納された部分検索要求文に含まれる自立語に基づいて、一次検索部33によって検索された検索対象文の構文解析結果によって示される自立語間の係り受け構造において、言い換えパタン格納部24に格納されている対象パタンによって示される複数の自立語間の係り受け構造と一致する部分を当該対象パタンに対応づけて言い換えパタン格納部24に格納されている置換パタンによって示される自立語間の係り受け構造に置換することにより、当該検索対象文の言い換え文を生成する。
言い換え検索部35は、部分検索要求生成部34によって検索要求文に含まれる動詞毎に部分検索要求文が生成された場合、一次検索部33によって検索された検索対象文の言い換え文を当該部分検索要求文毎に生成する。このとき、言い換え検索部35は、部分検索要求生成部34によって検索要求文に含まれる動詞毎に生成された部分検索要求文に含まれる自立語に基づいて当該部分検索要求文に対応する検索対象文の言い換え文を生成する。
また、言い換え検索部35は、1の文書において連続する2つの検索対象文(第1および第2の検索対象文)毎に部分検索要求生成部34によって部分検索要求文(第1および第2の部分検索要求文)が生成された場合、当該部分検索要求文毎に当該検索対象文の言い換え文を生成する。つまり、言い換え検索部35は、第1の部分検索要求文に含まれる自立語に基づいて、一次検索部33によって検索された第1の検索対象文の言い換え文を生成する。言い換え検索部35は、第2の部分検索要求文に含まれる自立語に基づいて、一次検索部33によって検索された第2の検索対象文の言い換え文を生成する。
言い換え検索部35は、部分検索要求格納部26に格納された部分検索要求文に含まれる自立語間の係り受け構造および当該部分検索要求文に基づいて生成された検索対象文の言い換え文に含まれる自立語間の係り受け構造を比較することにより、当該部分検索要求文および当該検索対象文の言い換え文が類似するか否かを判定する。
言い換え検索部35は、一次検索部33によって検索された検索対象文および判定結果を言い換え検索結果格納部27に格納する。
検索結果決定部36は、言い換え検索結果格納部27に格納された判定結果に基づいて、一次検索部33によって検索された検索対象文を入力処理部31によって入力された検索要求文に対する検索結果として決定する。
出力処理部37は、検索結果決定部36によって検索結果として決定された検索対象文を出力する。出力処理部37は、検索対象文を例えば表示装置(図示せず)に表示することにより、ユーザに対して当該検索対象文を検索結果として提示する。
図3は、図2に示す検索要求文解析結果格納部22のデータ構造の一例を示す。検索要求文解析結果格納部22には、検索要求文および当該検索要求文の構文解析結果が格納される。
図3に示すように、検索要求文解析結果格納部22には、検索要求文、文節ID、文節の自立語、品詞、親IDおよび関係が対応づけて格納される。つまり、検索要求文の構文解析結果には、文節ID、文節の自立語、品詞、親IDおよび関係が含まれる。この文節ID、文節の自立語、品詞、親IDおよび関係により検索要求文に含まれる自立語間の係り受け構造が示される。
文節IDは、入力処理部31によって入力された検索要求文を構成する各文節を識別するための識別子である。文節の自立語は、文節IDによって識別される文節に含まれる自立語を示す。品詞は、文節の自立語の品詞を示す。親IDは、文節の自立語と係り受け関係にある自立語を含む文節(親の文節)を識別するための文節IDを示す。関係は、文節IDによって識別される文節(に含まれる自立語)と親IDによって識別される文節(に含まれる自立語)との係り受け関係を示す。
図3に示す例では、検索要求文解析結果格納部22には、検索要求文が「容器に入れたインクを移動する」である場合の検索要求文の構文解析結果が格納されている。
検索要求文解析結果格納部22には、文節ID「1」、文節の自立語「容器」、品詞「名詞」、親ID「2」および関係「に」が対応づけて格納されている。検索要求文解析結果格納部22には、文節ID「2」、文節の自立語「入れる」、品詞「動詞」、親ID「3」および関係「を_埋め込み」が対応づけて格納されている。また、検索要求文解析結果格納部22には、文節ID「3」、文節の自立語「インク」、品詞「名詞」、親ID「4」および関係「を」が対応づけて格納されている。更に、検索要求文解析結果格納部22には、文節ID「4」、文節の自立語「移動」、品詞「動詞」が対応づけて格納されている。
この例によると、検索要求文「容器に入れたインクを移動する」は4つの文節を含み、名詞「容器」が動詞「入れる」に「に」の関係で係り、動詞「入れる」が名詞「インク」に「を_埋め込み」の関係で係り、名詞「インク」が動詞「移動」に「を」の関係で係ることが示されている。
図4は、図3に示す検索要求文解析結果格納部22に格納されている検索要求文「容器に入れたインクを移動する」の構文解析結果をいわゆる依存構造の構文木の形式で示す図である。
図4に示す構文木は、図3に示す検索要求文解析結果格納部22に格納されている文節の自立語、親IDおよび関係に基づいて構文木構造が実現される。図4に示す構文木においては、「移動」の下に「インク」が関係「を」で関連付けられており、「インク」の下に「入れる」が関係「を_埋め込み」で関連付けられており、「入れる」の下に「容器」が関係「に」で関連付けられている。
後述する処理では、このような構文木構造を用いて検索要求文および検索対象文の言い換え処理(パラフレーズ処理)が実行される。
図5は、図2に示す検索対象文格納部23のデータ構造の一例を示す。検索対象文格納部23には、検索対象文および当該検索対象文の構文解析結果が対応づけて格納される。
図5に示すように、検索対象文格納部23には、文書ID、文ID、検索対象文、文節ID、文節の自立語、品詞、親IDおよび関係が対応づけて格納される。つまり、上記した検索要求文の構文解析結果と同様に、検索対象文の構文解析結果には、文節ID、文節の自立語、品詞、親IDおよび関係が含まれる。この文節ID、文節の自立語、品詞、親IDおよび関係により検索対象文に含まれる自立語間の係り受け構造が示される。
文書IDは、検索対象文によって構成される文書を識別するための識別子である。文IDは、検索対象文書を識別するための識別子である。
文節IDは、検索対象文を構成する各文節を識別するための識別子である。文節の自立語は、文節IDによって識別される文節に含まれる自立語を示す。品詞は、文節の自立語の品詞を示す。親IDは、文節の自立語と係り受け関係にある自立語を含む文節(親の文節)を識別するための文節IDを示す。関係は、文節IDによって識別される文節(に含まれる自立語)と親IDによって識別される文節(に含まれる自立語)との係り受け関係を示す。
図5に示す例では、検索対象文格納部23には、文書ID「1」、文ID「1−1」、検索対象文「インクを入れた容器を高速で移動する」が対応づけて格納されている。これによれば、文書ID「1」によって識別される文書を構成する文ID「1−1」によって識別される検索対象文が「インクを入れた容器を高速で移動する」であることが示される。
また、検索対象文格納部23には、文節ID「1」、文節の自立語「インク」、品詞「名詞」、親ID「2」および関係「を」が対応づけて格納されている。検索対象文格納部23には、文節ID「2」、文節の自立語「入れる」、品詞「動詞」、親ID「3」および関係「に_埋め込み」が対応づけて格納されている。検索対象文格納部23には、文節ID「3」、文節の自立語「容器」、品詞「名詞」、親ID「5」および関係「を」が対応づけて格納されている。検索対象文格納部23には、文節ID「4」、文節の自立語「高速」、品詞「形容動詞」、親ID「5」および関係「副詞句」が対応づけて格納されている。また検索対象文格納部23には、文節ID「5」、文節の自立語「移動」および品詞「名詞」が対応づけて格納されている。
この例によると、検索対象文「インクを入れた容器を高速で移動する」は5つの文節を含み、名詞「インク」が動詞「入れる」に「を」の関係で係り、動詞「入れる」が名詞「容器」に「に_埋め込み」の関係で係り、名詞「容器」が動詞「移動」に「を」の関係で係り、形容動詞「高速」が動詞「移動」に「副詞句」の関係で係ることが示されている。
ここでは、検索対象文格納部23に格納されている検索対象文のうち検索対象文「インクを入れた容器を高速で移動する」について説明したが、他の検索対象文についても同様である。
なお、図5に示す例において、例えば文ID「1−1」および「1−2」によって識別される2つの検索対象文は、文書ID「1」によって識別される文書を構成する文である。文ID「1−1」および「1−2」によって識別される2つの検索対象文は、文書ID「1」によって識別される文書において連続する文である。
文ID「2−1」、「2−2」および「2−3」によって識別される3つの検索対象文は、文書ID「2」によって識別される文書を構成する文である。文ID「2−1」および「2−2」によって識別される2つの検索対象文、または、文ID「2−2」および「2−3」によって識別される2つの検索対象文は、文書ID「2」によって識別される文書において連続する文である。
文ID「3−1」および「3−2」によって識別される2つの検索対象文は、文書ID「3」によって識別される文書を構成する文である。文ID「3−1」および「3−2」によって識別される2つの検索対象文は、文書ID「3」によって識別される文書において連続する文である。
図6は、図2に示す言い換えパタン格納部24のデータ構造の一例を示す。上記したように言い換えパタン格納部24には、言い換え処理に用いられる置換ルール(言い換えパタン)が格納される。図6に示すように、言い換えパタン格納部24に格納される置換ルールには、分類ID、ルールID、対象パタン、置換パタン、係り受け条件、品詞条件および一致条件/保護条件が対応づけて含まれる。なお、分類とは、文の区切りとなる所定のまとまりを指す。本実施形態では、分類として、名詞句、動詞句、格共有等が挙げられる。
分類IDは、上記した分類毎に割り当てられた識別子である。ルールIDは、分類毎に設定された各置換ルールに割り当てられた識別子である。なお、ルールIDの値が小さい方については、係り受け構造等が複雑な置換ルールが設定され、ルールIDの値が大きい方については、係り受け構造等が簡単な置換ルールが設定される。
つまり、本実施形態では、情報検索装置30は、例えば検索要求文および検索対象文のような言い換え処理の対象となる文(言い換え対象文)において複雑な置換ルールに一致すれば当該置換ルールと対応づけられた置換を行い、複雑な置換ルールに一致しない場合には単純な置換ルールと一致するか否かの判定を行い、当該単純な置換ルールと一致した場合に当該置換ルールと対応づけられた置換を行う。このように、情報検索装置30が複雑な置換ルールから順に言い換え対象文が一致するか否かを判定することで、構文木を置換する精度を向上させることができる。
対象パタンは、言い換え対象文に対して適用される自立語間の係り受け構造を示す構文木のパタンである。置換パタンは、言い換え対象文に含まれる部分構文木が対象パタンと一致するとともに後述する置換条件を満足した場合に実行される置換処理後の構文木のパタンである。対象パタンおよび置換パタンの「−」は、2つの単語(自立語)間に係り受け関係が存在していることを示す。
図6に示すように、対象パタンより置換パタンの方が自立語の数(ノード数)が少なく設定されている。なお、対象パタンの構文木と置換パタンの構文木は、ノード数こそ異なるが意味的には言い換えとなるものである。これにより、複数のパタンを用いて言い換え対象文を置換しても言い換え関係が成立する。
係り受け条件、品詞条件および一致条件/保護条件は、言い換え対象文において、当該言い換え対象文に含まれる自立語を残すとともに対象パタンを置換パタンに置換するための置換条件として設定される。これら全ての置換条件を満たした場合、言い換え対象文に対して置換処理が行われる。
係り受け条件は、文節間の係り受け(関係)についての条件を示す。例えば図6に示す言い換えパタン格納部24を用いた場合、文節B−A間の係り受けが「の」または「隣」の場合には条件を満たしていると判定される。品詞条件は、各文節の自立語の品詞の条件を示す。一致条件/保護条件は、言い換え対象文の各文節の自立語が後述する「保護」と設定されているか否かという条件を示す。
つまり、図6に示す例えば分類ID「2」およびルールID「1」を含む置換ルールにおいては、名詞Bが名詞Aに係り、名詞Aが単語(品詞は任意の単語)Cに係るパタンが言い換え対象文に含まれる場合であって、これら文節(に含まれる自立語)間において名詞Bと名詞Aの関係が「の」または「隣」であり、名詞Bが「保護」と設定され、名詞Aが「保護」と設定されていない場合には、置換条件を満たしていると判定される。この場合、言い換え対象文の名詞Bが名詞Aに係り、名詞Aが単語Cに係るパタン(対象パタン)が、名詞Bが単語Cに係るパタン(置換パタン)に置換される。
次に、図7のフローチャートを参照して、本実施形態に係る情報検索装置30の処理手順について説明する。
まず、情報検索装置30に含まれる入力処理部31は、ユーザによって検索要求として指定された検索要求文を入力する(ステップS1)。検索要求文には、複数の自立語が含まれる。
次に、構文解析部32は、入力処理部31によって入力された検索要求文を構文解析する(ステップS2)。これにより、構文解析部32は、入力処理部31によって入力された検索要求文に含まれる自立語間の係り受け構造を示す構文解析結果を取得する。
構文解析部32は、取得された検索要求文の構文解析結果を検索要求文解析結果格納部22に格納する(ステップS3)。
一次検索部33は、検索要求文解析結果22に格納された検索要求文の構文解析結果および検索対象文格納部23に格納されている検索対象文の構文解析結果に基づいて、一次検索処理を実行する(ステップS4)。一次検索部33は、一次検索処理により、検索要求文に含まれる自立語を含む検索対象文を検索対象文格納部23から検索する。一次検索部33は、一次検索処理における検索結果(一次検索結果)を一次検索結果格納部25に格納する。一次検索結果格納部25に格納される検索結果には、一次検索部33によって検索された検索対象文および当該検索対象文の構文解析結果が含まれる。また、一次検索結果格納部25には、検索要求文の情報(検索要求文情報)が格納される。なお、一次検索処理の詳細については後述する。
上記した一次検索処理が実行されると、部分検索要求生成部34、言い換え検索部35および検索結果決定部36によって検索結果決定処理が実行される(ステップS5)。この検索結果決定処理においては、言い換えパタン格納部24および一次検索結果格納部25を参照して、上記した一次検索部33によって検索された検索対象文の中から入力処理部31によって入力された検索要求文に対する検索結果となる検索対象文(ユーザに対して提示される検索対象文)が決定される。なお、検索結果決定処理の詳細については後述する。
出力処理部37は、上記した検索結果決定処理において検索結果として決定された検索対象文を出力(ユーザに対して提示)する(ステップS6)。
次に、図8のフローチャートを参照して、上記した一次検索処理(図7に示すステップS4の処理)の処理手順について説明する。
まず、一次検索部33は、検索要求文解析結果格納部22から検索要求文の構文解析結果を取得する(ステップS11)。この検索要求文の構文解析結果には、上述した図3に示すように文節ID、文節の自立語、品詞、親IDおよび関係が含まれる。
次に、一次検索部33は、取得された検索要求文の構文解析結果に含まれる各自立語を含む検索対象文を検索対象文格納部23に格納されている検索対象文の構文解析結果に基づいて特定する(ステップS12)。
一次検索部33は、特定された検索対象文を識別するための文IDを検索対象文格納部23から取得する。一次検索部33は、検索要求文を構成する文節を識別する文節ID(当該文節に含まれる自立語)毎に、取得された文ID(当該自立語を含む検索対象文を識別するための文ID)を第1のリストに追加する(ステップS13)。一次検索部33は、第1のリストを一次検索結果格納部25に格納する。
ここで、図9は、一次検索結果格納部25に格納された第1のリストのデータ構造の一例を示す。図9に示すように、第1のリストには、文節ID、文節の自立語および文IDが保持される。
文節IDは、検索要求文を構成する文節を識別するための識別子である。文節の自立語は、文節IDによって識別される文節に含まれる自立語を示す。文IDは、文節の自立語を含む検索対象文を識別するための識別子である。
図9に示す例では、第1のリストには、文節ID「1」、文節の自立語「容器」、文ID「1−1」、「2−2」、「2−3」および「3−1」が保持されている。これによれば、検索要求文を構成する文節ID「1」によって識別される文節に含まれる自立語「容器」は、文ID「1−1」、「2−2」、「2−3」および「3−1」によって識別される検索対象文に含まれることが示される。
第1のリストには、文節ID「2」、文節の自立語「入れる」、文ID「1−1」、「2−2」および「3−2」が保持されている。これによれば、検索要求文を構成する文節ID「2」によって識別される文節に含まれる自立語「入れる」は、文ID「1−1」、「2−2」および「3−2」によって識別される検索対象文に含まれることが示される。
第1のリストには、文節ID「3」、文節の自立語「インク」、文ID「1−1」、「2−1」、「2−2」および「3−2」が保持されている。これによれば、検索要求文を構成する文節ID「3」によって識別される文節に含まれる自立語「インク」は、文ID「1−1」、「2−1」、「2−2」および「3−2」によって識別される検索対象文に含まれることが示される。
また、第1のリストには、文節ID「4」、文節の自立語「移動」、文ID「1−1」、「2−3」および「3−1」が保持されている。これによれば、検索要求文を構成する文節ID「4」によって識別される文節に含まれる自立語「移動」は、文ID「1−1」、「2−3」および「3−1」によって識別される検索対象文に含まれることが示される。
再び図8に戻ると、一次検索部33は、一次検索結果格納部25に格納された第1のリストを参照して、第1のリストに保持されている文IDを一致文IDとして第2のリストに追加する(ステップS14)。第2のリストに追加される一致文IDには、第1のリストに保持されている単独の文IDまたは当該第1のリストに保持されている文IDのうち同一の文書において連続する検索対象文(第1および第2の検索対象文)を識別するための文IDのペア(2つの文IDのペア)が含まれる。
次に、一次検索部33は、第2のリストに追加された一致文IDに対応づけて当該一致文IDに該当する文節ID(以下、該当文節IDと表記)を当該第2のリストに追加する(ステップS15)。ここで、該当文節IDとは、第2のリストに追加された一致文IDに対応づけて第1のリストに保持されている文節IDである。なお、第2のリストには、該当文節IDが1つしか存在しない検索対象文(つまり、検索要求文に含まれる自立語を1つしか含まない検索対象文)を識別するための文ID(以下、1語一致文IDと表記)が保持される。一次検索部33は、第2のリストを一次検索結果格納部25に格納する。
一次検索部33は、一次検索結果格納部25に格納された第2のリストを参照して、当該第2のリストに保持されている一致文ID毎に、当該一致文ID(によって識別される検索対象文)が検索結果となるか否かを判定する処理(以下、検索結果判定処理と表記)を実行する(ステップS16)。
次に、図10のフローチャートを参照して、上記した検索結果判定処理(図8に示すステップS16の処理)の処理手順について説明する。
まず、検索結果判定処理においては、上記した第2のリストに保持されている一致文IDの各々について後述するステップS21以降の処理が実行される。以下、処理の対象となる一致文IDを対象一致文IDと称する。なお、対象一致文IDには、上記したように単独の文IDまたは2つの文ID(のペア)が含まれる。
一次検索部33は、検索要求文を構成する文節を識別するための文節IDの全てが該当文節IDとして対象一致文IDに対応づけて第2のリストに保持されているか否かを判定する(ステップS21)。つまり、ステップS21においては、対象一致文IDによって識別される検索対象文に検索要求文に含まれる全ての自立語が含まれているか否かが判定される。
文節IDの全てが第2のリストに保持されていると判定された場合(ステップS21のYES)、一次検索部33は、対象一致文IDに1語一致文IDがあるか否かを判定する(ステップS22)。このステップS22は対象一致文IDに2つの文IDが含まれる場合を想定しており、当該2つの文IDのいずれかが1語一致文IDである場合には、対象一致文IDに1語一致文IDがあると判定される。
対象一致文IDに1語一致文IDがないと判定された場合(ステップS22のNO)、一次検索部33は、対象一致文ID(によって識別される検索対象文)に対する検索結果判定処理の結果(検索結果)をOKとする(ステップS23)。この場合、対象一致文IDに対応づけて結果「OK」が第2のリストに追加される。
一方、ステップS21において文節IDの全てが第2のリストに保持されていないと判定された場合、または、ステップS22において対象一致文IDが1語一致文IDであると判定された場合、一次検索部33は、対象一致文IDを検索結果としない、つまり、当該対象一致文IDに対する検索結果判定処理の結果をNGとする(ステップS24)。この場合、対象一致文IDに対応づけて結果「NG」が第2のリストに追加される。
ステップS23またはステップS24の処理が実行されると、一次検索部33は、第2のリストに保持されている一致文ID(一致文IDのペア)の全てについて上記した処理が実行されたか否かを判定する(ステップS25)。
第2のリストに保持されている一致文IDの全てについて処理が実行されていないと判定された場合(ステップS25のNO)、ステップS21に戻って処理が繰り返される。この場合、処理が実行されていない一致文IDを対象一致文IDとして処理が実行される。
一方、第2のリストに保持されている一致文IDの全てについて処理が実行されたと判定された場合、ステップS26の処理が実行される。
ここで、図11は、検索結果判定処理における判定結果(上記したステップS23またはステップS24の結果)が追加された第2のリストのデータ構造の一例を示す。図11に示すように、第2のリストには、一致文ID、該当文節ID、1語一致文IDおよび結果(検索結果判定処理における判定結果)が保持される。
図11に示す例では、第2のリストには、一致文ID「1−1」および該当文節ID「1,2,3,4」が対応づけて保持されている。これによれば、一致文IDに含まれる単独の文ID「1−1」によって識別される検索対象文には、検索要求文を構成する文節のうち文節ID「1」、「2」、「3」および「4」によって識別される文節に含まれる自立語が含まれることが示される。この場合、一致文IDに含まれる単独の文ID「1−1」によって識別される検索対象文には、検索要求文に含まれる自立語の全てが含まれており、当該文ID「1−1」は1語一致文IDでないため、第2のリストには、一致文ID「1−1」に対応づけて当該検索対象文が検索結果となる旨を示す結果「OK」が保持されている。
第2のリストには、一致文ID「2−1」、該当文節ID「1」および1語一致文ID「2−1」が対応づけて保持されている。これによれば、一致文IDに含まれる単独の文ID「2−1」によって識別される検索対象文には、検索要求文を構成する文節のうち文節ID「1」によって識別される文節に含まれる自立語が含まれることが示される。この場合、一致文IDに含まれる文ID「2−1」によって識別される検索対象文には検索要求文に含まれる自立語の全てが含まれておらず、当該文ID「2−1」は1語一致文IDであるため、第2のリストには、一致文ID「2−1」に対応づけて当該検索対象文が検索結果とならない旨を示す結果「NG」が保持されている。
第2のリストには、一致文ID「2−1,2−2(2つの文IDのペア)」、該当文節ID「1,2,3」および1語一致文ID「2−1」が保持されている。これによれば、一致文IDに含まれる2つの文ID「2−1」および「2−2」によって識別される検索対象文(のペア)には、検索要求文を構成する文節のうち文節ID「1」、「2」および「3」によって識別される文節に含まれる自立語が含まれることが示される。この場合、一致文IDに含まれる2つの文ID「2−1」および「2−2」によって識別される検索対象文には検索要求文に含まれる自立語の全てが含まれておらず、当該文ID「2−1」は1語一致文IDであるため、第2のリストには、一致文ID「2−1,2−2」に対応づけて当該検索対象文(のペア)が検索結果とはならない旨を示す結果「NG」が保持されている。
また、第2のリストには、一致文ID「2−2,2−3」および該当文節ID「1,2,3,4」が保持されている。これによれば、一致文IDに含まれる2つの文ID「2−2」および「2−3」によって識別される検索対象文には、検索要求文を構成する文節のうち文節ID「1」、「2」、「3」および「4」によって識別される文節に含まれる自立語が含まれることが示される。この場合、一致文IDに含まれる2つの文ID「2−1」および「2−2」によって識別される検索対象文には検索要求文に含まれる自立語の全てが含まれており、当該文ID「2−2」および「2−3」は1語一致文IDでないため、一致文ID「2−1,2−2」に対応づけて当該検索対象文(のペア)が検索結果となる旨を示す結果「OK」が保持されている。
なお、上記説明した一致文ID以外についても同様であるため、その詳しい説明を省略する。
つまり、一次検索部33は、対象一致文IDに単独の文IDが含まれるときは、当該文IDによって識別される検索対象文に検索要求文に含まれる自立語の全てが含まれている場合に当該検索対象文を検索結果とする。また、一次検索部33は、対象一致文IDに2つの文IDが含まれるときは、当該文IDの各々によって識別される2つの検索対象文が検索要求文に含まれる自立語の全てを含み、かつ、当該検索対象文の各々が当該検索要求文に含まれる自立語を2以上含む場合に当該2つの検索対象文(第1および第2の検索対象文)を検索結果とする。
再び図10に戻ると、一次検索部33は、上記した第2のリストにおいて結果「OK」に対応づけられている一致文IDによって識別される検索対象文を検索結果として一次検索格納部25に格納する(ステップS26)。
また、一次検索部33は、検索結果に対応する検索要求文の情報(以下、検索要求文情報と表記)を一次検索結果格納部25に格納する(ステップS27)。
ここで、図12は、図10に示すステップS26において一次検索結果格納部25に格納された検索結果のデータ構造の一例を示す。
図12に示すように、一次検索結果格納部25に格納された検索結果には、検索結果番号、検索結果ID、一次検索部33によって検索された検索対象文(文IDおよび検索対象文)および当該検索対象文の構文解析結果(文節ID、文節の自立語、品詞、親IDおよび関係)が対応づけて含まれる。
検索結果番号は、検索結果毎に付与される当該検索結果を識別するための識別番号である。検索結果IDは、検索結果番号によって識別される検索結果に含まれる検索対象文毎に付与される識別子である。なお、検索結果が1文(1つの検索対象文)である場合には、検索結果IDとして、検索結果番号と同一の値が付与される。一方、検索結果が2文(2つの検索対象文)である場合には、検索結果IDとして、一方の検索対象文に「検索結果番号−1」、他方の検索対象文に「検索結果番号−2」が付与される。
図12に示す例では、一次検索結果格納部25に格納された検索結果には、検索結果番号「1」、検索結果ID「1」、文ID「1−1」、検索対象文「インクを入れた容器を高速で移動する」および当該検索対象文の構文解析結果が含まれる。これによれば、検索結果番号「1」によって識別される検索結果が、検索結果ID「1」が付与された検索対象文「インクを入れた容器を高速で移動する」である旨が示されている。なお、検索対象文「インクを入れた容器を高速で移動する」は、文ID「1−1」によって識別される検索対象文である。
一次検索結果格納部25に格納された検索結果には、検索結果番号「2」、検索結果ID「2−1」、文ID「2−2」、検索対象文「インクを容器に入れる」および当該検索対象文の構文解析結果が含まれる。また、一次検索結果格納部25に格納された検索結果には、検索結果番号「2」、検索結果ID「2−2」、文ID「2−3」、検索対象文「容器を高速で移動する」および当該検索対象文の構文解析結果が含まれる。これによれば、検索結果番号「2」によって識別される検索結果が、検索結果ID「2−1」が付与された検索対象文「インクを容器に入れる」および検索結果ID「2−2」が付与された検索対象文「容器を高速で移動する」である旨が示されている。なお、検索対象文「インクを容器に入れる」は、文ID「2−2」によって識別される検索対象文である。また、検索対象文「容器を高速で移動する」は、文ID「2−3」によって識別される検索対象文である。
また、一次検索結果格納部25に格納された検索結果には、検索結果番号「3」、検索結果ID「3−1」、文ID「3−1」、検索対象文「容器を高速で移動する」および当該検索対象文の構文解析結果が含まれる。また、一次検索結果格納部25に格納された検索結果には、検索結果番号「3」、文ID「3−2」、検索結果ID「3−2」、検索対象文「インクにペン先を入れる」および当該検索対象文の構文解析結果が含まれる。これによれば、検索結果番号「3」によって識別される検索結果が、検索結果ID「3−1」が付与された検索対象文「容器を高速で移動する」および検索結果ID「3−2」が付与された検索対象文「インクにペン先を入れる」である旨が示されている。なお、検索対象文「容器を高速で移動する」は、文ID「3−1」によって識別される検索対象文である。また、検索対象文「インクにペン先を入れる」は、文ID「3−2」によって識別される検索対象文である。
図13は、図10に示すステップS27において一次検索結果格納部25に格納された検索要求文情報のデータ構造の一例を示す。
図13に示すように、一次検索結果格納部25に格納された検索要求文情報には、検索結果ID、一致文ID、検索要求文および当該検索要求文の構文解析結果が対応づけて含まれる。
検索結果IDは、上記した図12に示す検索結果に含まれる検索結果IDである。一致文IDは、検索結果IDに対応づけて上記した図12に示す検索結果に含まれる検索対象文を識別するための文IDである。つまり、一致文IDは、検索結果IDが付与された検索対象文を識別するための文IDである。
図13に示す例では、一次検索結果格納部25に格納された検索要求文情報には、検索結果ID「1」、一致文ID「1−1」、検索要求文「容器に入れたインクを移動する」および当該検索要求文の構文解析結果が含まれる。これによれば、検索要求文「容器に入れたインクを移動する」によって検索された検索対象文であって検索結果ID「1」が付与された検索対象文が、一致文ID「1−1」によって識別される検索対象文(つまり、図12に示す検索結果において文ID「1−1」に対応づけられている検索対象文)であることが示される。
一次検索結果格納部25に格納された検索要求文情報には、検索結果ID「2−1」、一致文ID「2−2」、検索要求文「容器に入れたインクを移動する」および当該検索要求文の構文解析結果が含まれる。これによれば、検索要求文「容器に入れたインクを移動する」によって検索された検索対象文であって検索結果ID「2−1」が付与された検索対象文が、一致文ID「2−2」によって識別される検索対象文(つまり、図12に示す検索結果において文ID「2−2」に対応づけられている検索対象文)であることが示される。
一次検索結果格納部25に格納された検索要求文情報には、検索結果ID「2−2」、一致文ID「2−3」、検索要求文「容器に入れたインクを移動する」および当該検索要求文の構文解析結果が含まれる。これによれば、検索要求文「容器に入れたインクを移動する」によって検索された検索対象文であって検索結果ID「2−2」が付与された検索対象文が、一致文ID「2−3」によって識別される検索対象文(つまり、図12に示す検索結果において文ID「2−3」に対応づけられている検索対象文)であることが示される。
一次検索結果格納部25に格納された検索要求文情報には、検索結果ID「3−1」、一致文ID「3−1」、検索要求文「容器に入れたインクを移動する」および当該検索要求文の構文解析結果が含まれる。これによれば、検索要求文「容器に入れたインクを移動する」によって検索された検索対象文であって検索結果ID「3−1」が付与された検索対象文が、一致文ID「3−1」によって識別される検索対象文(つまり、図12に示す検索結果において文ID「3−1」に対応づけられている検索対象文)であることが示される。
また、一次検索結果格納部25に格納された検索要求文情報には、検索結果ID「3−2」、一致文ID「3−2」、検索要求文「容器に入れたインクを移動する」および検索要求文の構文解析結果が含まれる。これによれば、検索要求文「容器に入れたインクを移動する」によって検索された検索対象文であって検索結果ID「3−2」が付与された検索対象文が、一致文ID「3−2」によって識別される検索対象文(つまり、図12に示す検索結果において文ID「3−2」に対応づけられている検索対象文)であることが示される。
なお、図13に示すように、一次検索結果格納部25に格納された検索要求文情報には、検索要求文の構文解析結果に含まれる各文節IDに対応づけて一致文節IDが含まれる。この一致文節IDは、検索要求文情報に含まれる検索結果IDが付与された検索対象文を構成する文節であって、対応づけられている文節IDによって識別される検索要求文の文節に一致する当該検索対象文の文節(当該検索要求文の文節に含まれる自立語を含む検索対象文の文節)を識別するための文節IDである。
次に、図14のフローチャートを参照して、上述した検索結果決定処理(図7に示すステップS5の処理)の処理手順について説明する。なお、検索結果決定処理においては、上記した図13に示す検索要求文情報に含まれる検索結果ID(図12に示す検索結果に含まれる検索結果ID)毎に、後述するステップS31〜ステップS36の処理が実行される。以下、処理の対象となる検索結果IDを対象検索結果IDと称する。
まず、部分検索要求生成部34は、対象検索結果IDに基づいて、当該対象検索結果IDを含む検索結果(に含まれる検索対象文)が1文であるか否かを判定する(ステップS31)。この場合、対象検索結果IDが上記したように「検索結果番号−1」または「検索結果番号−2」であれば、検索結果に含まれる検索対象文が1文でないと判定する。
検索結果に含まれる検索対象文が1文でないと判定された場合(ステップS31のNO)、部分検索要求生成部34は、検索要求文を構成する文節のうち、対象検索結果IDが付与された検索対象文を構成する文節と一致する文節(当該検索対象文に含まれる自立語を含む検索要求文の文節)に一致文節IDを設定する(ステップS32)。部分検索要求生成部34は、一次検索結果格納部25において対象検索結果IDに対応づけて検索要求文情報に含まれる一致文節IDに基づいて設定処理を実行する。
部分検索要求生成部34は、設定された一致文節IDを部分検索要求格納部26に格納する。
部分検索要求生成部34は、部分検索要求格納部26を参照して、ステップS32において一致文節IDが設定された検索要求文の文節を保護に設定する(ステップS33)。
次に、部分検索要求生成部34は、検索要求文を構成する文節のうち、保護に設定されていない各文節(検索要求文の保護未設定の各文節)に対してステップS34の処理を実行する。
部分検索要求生成部34は、検索要求文の保護未設定の文節に含まれる単語(自立語)に対して言い換えパタン格納部24に格納されている置換ルール(言い換えパタン)を適用する(ステップS34)。
このステップS34の処理が検索要求文の保護未設定の文節(に含まれる単語)の全てに対して実行されることにより、検索要求文の言い換え処理が実行される。
ここで、言い換え処理の詳細について説明する。言い換え処理においては、言い換え対象文(ここでは、検索要求文)の文節(の自立語)を含む構文木について、言い換えパタン格納部24に格納されている置換ルール(言い換えパタン)の条件と一致するか否かが判定される。このとき、言い換え対象文を構成する文節を含む構文木について、対象パタンの係り受け構造が成り立つとともに、言い換え対象文の文節が当該対象パタンと対応づけられている係り受け条件、品詞条件、および一致条件/保護条件を満足している場合に、言い換え対象文の各文節が置換ルールの置換条件と一致すると判定される。この場合、言い換え処理においては、置換ルールと対応づけられた対象パタンと一致する部分構文木を当該置換ルールと対応づけられた置換パタンに一致する構文木に置換する。これにより、言い換え対象文を言い換えることができる。なお、以下の言い換え処理についても同様であるため、その詳しい説明は省略する。
上記したような言い換え処理が検索要求文に対して実行されると、当該検索要求文の部分検索要求文が生成される。
なお、検索要求文の部分検索要求文の生成に伴い、当該部分検索要求文の構文解析結果が取得される。検索要求文の部分検索要求文および当該部分検索要求文の構文解析結果は、部分検索要求格納部26に格納される。
部分検索要求生成部34は、ステップS35の処理が実行されていない検索要求文の保護未設定の文節があるか否かを判定する(ステップS35)。
ステップS34の処理が実行されていない検索要求文の保護未設定の文節があると判定された場合(ステップS35のYES)、当該文節に含まれる単語に対してステップS34の処理が実行される。
一方、ステップS35の処理が実行されていない検索要求文の保護未設定の文節がないと判定された場合(ステップS35のNO)、複数用言処理が実行される(ステップS36)。複数用言処理においては、上記したように生成された検索要求文の部分検索要求文を用いて、一次検索結果格納部25に格納された対象検索結果IDが付与された検索対象文に対して言い換え検索処理が実行される。この言い換え検索結果は、後述する検索結果管理リストに追加される。検索結果管理リストは、言い換え検索結果格納部27にその領域が確保されている。なお、複数用言処理の詳細については後述する。
次に、一次検索結果格納部25に格納された検索要求文情報に含まれる検索結果IDの全てについて上記したステップS31〜ステップS36の処理が実行されたか否かが判定される(ステップS37)。
検索要求文情報に含まれる検索結果IDの全てについてステップS31〜ステップS36の処理が実行されていないと判定された場合(ステップS37のNO)、ステップS31に戻って処理が繰り返される。この場合、処理が実行されていない検索結果IDを対象検索結果IDとしてステップS31の処理が実行される。
一方、検索要求文情報に含まれる検索結果IDの全てについてステップS31〜ステップS36の処理が実行されたと判定された場合(ステップS37のYES)、検索結果決定部36は、複数用言処理において検索結果管理リストに追加された言い換え検索結果に基づいて、一次検索結果格納部25に格納された検索結果の中からユーザに提示される検索結果を決定する(ステップS38)。この検索結果の決定処理は、一次検索結果格納部25に格納されて検索結果に含まれる検索結果番号毎に実行される。
なお、ステップS31において検索結果に含まれる検索対象文が1文でない(つまり、2文である)と判定された場合、ステップS36の処理が実行される。この場合、複数用言処理においては、検索要求文を用いて処理が実行される。
次に、図15のフローチャートを参照して、上記した複数用言処理(図13に示すステップS36の処理)の処理手順について説明する。
複数用言処理においては、上記した図14に示す検索結果決定処理に応じて検索要求文または当該検索要求文の部分検索要求文が用いられる。以下、複数用言処理において用いられる検索要求文または当該検索要求文の部分検索要求文を複数用言処理における入力文(以下、単に入力文と表記)として説明する。
なお、上記した図14に示す検索結果決定処理と同様に、処理の対象となる検索結果IDを対象検索結果IDと称する。
まず、部分検索要求生成部34は、入力文に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。部分検索要求生成部34は、一次検索結果格納部25に格納された検索要求文情報に含まれる検索要求文の構文解析結果に基づいて、入力文の動詞の数Nをカウントする。
次に、部分検索要求生成部34は、カウントされた入力文の動詞の数Nが1以下であるか否かを判定する(ステップS42)。
カウントされた入力文の動詞の数Nが1以下でないと判定された場合(ステップS42のNO)、部分検索要求生成部34は、Mの値を1(つまり、M=1)とする(ステップS43)。
部分検索要求生成部34は、入力文の情報を複数用言リストに追加する(ステップS44)。このとき、部分検索要求生成部34は、入力文の情報として、入力文、検索要求IDおよび当該入力文の構文解析結果を複数用言リストに追加する。また、複数用言リストに追加される入力文の情報には、図14に示す検索結果決定処理における対象検索結果ID、当該対象検索結果IDに対応づけて検索要求文情報に含まれる一致文IDおよび一致文節IDが含まれる。
このとき、複数用言リストに追加される検索要求IDは、図14に示す検索結果決定処理における対象検索結果IDに基づいて、「(対象)検索結果ID−M」とする。
また、入力文が検索要求文である場合には、一次検索結果格納部25に格納された検索要求文情報に含まれる検索要求文および検索要求文の構文解析結果が複数用言リストに追加される。一方、入力文が部分検索要求文である場合には、当該部分検索要求文および当該部分検索要求文の生成に伴って取得された当該部分検索要求文の構文解析結果(部分検索要求格納部26に格納された当該部分検索要求文の構文解析結果)が複数用言リストに追加される。なお、複数用言リストは、部分検索要求格納部26にその領域が確保されている。
部分検索要求生成部34は、複数用言リストに追加された入力文の構文解析結果に基づいて、入力文に含まれる動詞のうちのM番目の動詞および当該動詞と係り受け関係にある単語(自立語)を保護に設定する(ステップS45)。
次に、部分検索要求生成部34は、複数用言リストを参照して、入力文に対する言い換え処理を実行する(ステップS46)。このとき、部分検索要求生成部34は、入力文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより上記した言い換え処理を実行する。
部分検索要求生成部34は、言い換え処理により、入力文が言い換えられた文(入力文の言い換え文)を当該入力文の部分検索要求文として生成する。なお、入力文の部分検索要求文の生成に伴い、当該部分検索要求文の構文解析結果が取得される。
部分検索要求生成部34は、生成された入力文の部分検索要求文(言い換え処理結果)を複数検索要求リストに追加する(ステップS47)。複数検索要求リストには、入力文の部分検索要求文以外に、上記した複数用言リストに保持されている検索結果ID、一致文IDおよび検索要求IDが保持される。なお、複数検索要求リストは、言い換え検索結果格納部27にその領域が確保されている。
次に、言い換え検索部35は、複数検索要求リストに追加された入力文の部分検索要求文を用いて、対象検索結果IDが付与された検索対象文に対して言い換え検索処理を実行する(ステップS48)。
言い換え検索処理においては、言い換え検索部35は、一次検索結果格納部25に格納された検索結果に含まれる対象検索結果IDが付与された検索対象文の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち入力文の部分検索要求に含まれる自立語を保護に設定する。
言い換え検索部35は、対象検索結果IDが付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより言い換え処理を実行する。
言い換え検索部35は、この言い換え処理により、対象検索IDが付与された検索対象文が言い換えられた文(当該検索対象文の言い換え文)を生成する。なお、検索対象文の言い換え文の生成に伴い、当該検索対象文の言い換え文の構文解析結果が取得される。
言い換え検索部35は、複数検索要求リストに追加された入力文の部分検索要求文および生成された検索対象文の言い換え文の構文解析結果を比較することにより、当該部分検索要求文および当該検索対象文の言い換え文が類似するか否かを判定する。具体的には、言い換え検索部35は、部分検索要求文および検索対象文の言い換え文に含まれる自立語間の係り受け構造が一致する場合には、当該部分検索要求文および当該検索対象文の言い換え文が類似すると判定する。
言い換え検索部35は、上記した言い換え検索処理における判定結果(言い換え検索結果)を複数検索要求リストに追加する(ステップS49)。言い換え検索処理において部分検索要求文および検索対象文の言い換え文が類似すると判定された場合、言い換え検索結果として例えばOKが複数検索要求リストに追加される。一方、言い換え検索処理において部分検索要求文および検索対象文の言い換え文が類似しないと判定された場合、言い換え検索結果として例えばNGが複数検索要求リストに追加される。なお、言い換え検索結果は、上記した複数検索要求リストに保持されている対象検索結果ID、一致文ID、検索要求IDおよび部分検索要求文に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、MをM+1(つまり、M=M+1)とする(ステップS50)。
ステップS50の処理が実行されると、部分検索要求生成部34は、MがN以下であるか否かを判定する(ステップS51)。
MがN以下であると判定された場合(ステップS51のYES)、上記したステップS44に戻って処理が繰り返される。
MがN以下でないと判定された場合(ステップS51のNO)、後述するステップS55の処理が実行される。
このように、ステップS44〜ステップS51の処理が繰り返されることにより、入力文に含まれる動詞毎に部分検索要求文が生成され、言い換え検索処理が実行される。
一方、上記したステップS42において入力文の動詞の数Nが1以下でない(つまり、Nが2以上である)と判定された場合、部分検索要求生成部34は、入力文(および当該入力文の構文解析結果)を複数用言リストに追加する(ステップS52)。
次に、言い換え検索部35は、複数用言リストに追加された入力文を用いて、対象検索結果IDが付与された検索対象文に対して言い換え検索処理を実行する(ステップS53)。なお、ステップS53の処理は、上記したステップS48の処理における入力文の部分検索要求文の代わりに入力文自体を用いる点以外は、当該ステップS48の処理と同様であるためその詳しい説明は省略する。つまり、ステップS53の処理においては、入力文および検索対象文(対象検索結果IDが付与された検索対象文)の言い換え文が類似するか否かが判定される。
言い換え検索部35は、上記したステップS53の言い換え検索処理における判定結果(言い換え検索結果)を複数検索要求リストに追加する(ステップS54)。言い換え検索処理において入力文および検索対象文の言い換え文が類似すると判定された場合、言い換え検索結果として例えばOKが複数検索要求リストに追加される。一方、言い換え検索処理において入力文および検索対象文の言い換え文が類似しないと判定された場合、言い換え検索結果として例えばNGが複数検索要求リストに追加される。
上記したステップS51においてMがN以下でないと判定された場合、または、上記したステップS54の処理が実行された場合、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
言い換え検索結果の全てがOKであると判定された場合(ステップS55のYES)、部分検索要求生成部34は、対象検索結果ID(が付与された検索対象文)に対するマッチ結果をOKとする(ステップS56)。
一方、言い換え検索結果の全てがOKでないと判定された場合(ステップS55のNO)、部分検索要求生成部34は、対象検索結果ID(が付与された検索対象文)に対するマッチ結果をNGとする(ステップS57)。
ステップS56またはステップS57の処理が実行されると、部分検索要求生成部34は、マッチ結果(OKまたはNG)を検索結果管理リストに追加する(ステップS58)。このとき、部分検索要求生成部34は、対象検索結果IDに対応づけて検索結果に含まれる検索結果番号、当該対象検索結果ID、当該対象検索結果IDが付与された検索対象文の文ID(当該対象検索結果IDに対応づけて検索要求文情報に含まれる一致文ID)および当該検索対象文(対象検索結果IDが付与された検索対象文)に対応づけてマッチ結果を検索結果管理リストに追加する。
上記したように図15に示す複数用言処理は、検索要求文情報に含まれる検索結果ID毎に実行されるため、検索結果管理リストには、検索結果ID(が付与された検索対象文)毎にマッチ結果が保持される。これにより、検索結果決定部36は、検索結果管理リストに保持されている検索結果番号によって識別される検索結果に含まれる検索結果IDの全てに対してマッチ結果としてOKが保持されている場合、当該検索結果に含まれる検索対象文をユーザに提示される検索結果として決定する。つまり、検索結果管理リストにおいて検索結果番号毎に対応づけられているマッチ結果の全てがOKである場合に、当該検索結果番号によって識別される検索結果に含まれる検索対象文が検索結果として決定される。
以下、図14および図15を用いて、上述した検索結果決定処理および複数用言処理について具体的に説明する。ここでは、図8および図10に示す一次検索処理の結果として図12に示す検索結果および図13に示す検索要求文情報が一次検索結果格納部25に格納されているものとする。
上記したように検索結果決定処理(および複数用言処理)においては、一次検索結果格納部25に格納されている検索要求文情報(検索結果)に含まれる検索結果ID毎に図14に示すステップS31〜ステップS36の処理が実行される。つまり、図13に示す検索要求文情報に含まれる検索結果ID「1」、「2−1」、「2−2」、「3−1」および「3−2」の各々に対して図14に示すステップS31〜ステップS36の処理が実行される。
まず、検索結果決定処理においては、図13に示す検索要求文情報が部分検索要求部34に引き渡される。
ここで、図13に示す検索要求文情報に含まれる検索結果ID「1」に対する処理(ステップS31〜ステップS36の処理)について説明する。つまり、検索結果ID「1」が上記した対象検索結果IDである場合の処理について説明する。
なお、図12に示すように、検索結果ID「1」を含む検索結果を識別するための検索結果番号は検索結果番号「1」であり、当該検索結果ID「1」が付与された検索対象文は「インクを入れた容器を高速で移動する」である。
部分検索要求生成部34は、検索要求文情報に含まれる検索結果ID「1」に基づいて、当該検索結果IDを含む検索結果(図12に示す検索結果)に含まれる検索対象文が1文であるか否かを判定する(ステップS31)。この場合、検索結果IDが検索結果ID「1」であるため、検索結果に含まれる検索対象文が1文であると判定される。
検索結果に含まれる検索対象文が1文であると判定された場合(ステップS31のYES)、図15に示す複数用言処理が実行される(ステップS36)。この複数用言処理においては、図13に示す検索要求文情報に含まれる検索要求文「容器に入れたインクを移動する」を入力文として処理が実行される。
部分検索要求生成部34は、検索要求文(入力文)に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。図13に示す検索要求文の構文解析結果によれば、検索要求文の動詞の数Nは2(「入れる」および「移動」)である。
この場合、カウントされた検索要求文の動詞の数Nは1以下でないため(ステップS42のNO)、M=1とする(ステップS43)。
部分検索要求生成部34は、検索要求文の情報を複数用言リストに追加する(ステップS44)。部分検索要求生成部34は、検索要求文の情報として、検索要求ID「1−1」、検索要求文および当該検索要求文の構文解析結果を複数用言リストに追加する。また、複数用言リストに追加される検索要求文の情報には、検索結果ID「1」、当該検索結果ID「1」に対応づけて検索要求文情報に含まれる一致文IDおよび一致文節IDが含まれる。
なお、複数用言リストに追加される検索要求IDは、「検索結果ID−M」であるため、ここでは検索要求ID「1−1」である。
部分検索要求生成部34は、複数用言リストに追加された検索要求文の構文解析結果に基づいて、当該検索要求文に含まれる動詞のうちのM番目(ここでは、1番目)の動詞および当該動詞と係り受け関係にある単語(自立語)を保護に設定する(ステップS45)。
この場合、入力文である検索要求文に含まれる動詞のうちの1番目の動詞は「入れる」であり、当該動詞「入れる」と係り受け関係にある自立語は「容器」および「インク」である。よって、部分検索要求生成部34は、複数用言リストにおいて検索要求文に含まれる自立語「容器」、「入れる」および「インク」を保護に設定する。
ここで、図16は、検索要求ID「1−1」が追加された複数用言リストのデータ構造の一例を示す。図16に示すように、複数用言リストには、検索結果ID「1」、一致文ID「1−1」、検索要求文「容器に入れたインクを移動する」、検索要求ID「1−1」、当該検索要求文の構文解析結果(文節ID、文節、品詞、親ID、関係)および一致文節IDが保持されている。また、図16に示す複数用言リストにおいては、上記したように検索要求文に含まれる自立語「容器」、「入れる」および「インク」に保護が設定されている。
次に、部分検索要求生成部34は、図16に示す複数用言リストを参照して、検索要求文に対する言い換え処理を実行する(ステップS46)。部分検索要求生成部34は、検索要求文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより言い換え処理を実行する。これにより、検索要求文の部分検索要求文(以下、単に部分検索要求文と表記)が生成される。
ここで、図17は、検索結果ID「1」に対する処理における検索要求ID「1−1」の場合の検索要求文の言い換え処理結果を示す。図17において、言い換え回数0として示されている文は、言い換え処理の対象となる文(つまり、検索要求文)である。また、言い換え回数1として示されている文は、検索要求文に対して言い換えパタン(置換ルール)を1回適用することによって生成された言い換え文(部分検索要求文)である。図17に示すように、言い換え処理によって検索要求文「容器に入れたインクを移動する」から部分検索要求文「容器に入れたインク」が生成される。また、図17に示すように、言い換え処理によって部分検索要求文の構文解析結果(文節ID、文節の自立語、品詞、親IDおよび関係)が取得される。
部分検索要求生成部34は、言い換え処理結果として生成された部分検索要求文「容器に入れたインク」を複数検索要求リストに追加する(ステップS47)。部分検索要求生成部34は、図16に示す複数用言リストに保持されている検索結果ID、一致文IDおよび検索要求IDに対応づけて部分検索要求文を複数検索要求リストに追加する。
次に、言い換え検索部35は、複数検索要求リストに追加された部分検索要求文を用いて、検索結果ID「1」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS48)。この場合、言い換え検索部35は、一次検索結果格納部25に格納されている検索結果ID「1」が付与された検索対象文「インクを入れた容器を高速で移動する」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち複数検索要求リストに追加された部分検索要求文「容器に入れたインク」に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語のうち自立語「インク」、「入れた」および「容器」に保護が設定される。
言い換え検索部35は、検索結果ID「1」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより言い換え処理を実行する。
ここで、図18は、部分検索要求文「容器に入れたインク」に対する検索結果ID「1」が付与された検索対象文の言い換え処理結果を示す。図18に示すように、言い換え処理によって検索対象文「インクを入れた容器を高速で移動する」から当該検索対象文の言い換え文「インクを入れた容器」が生成される。また、図18に示すように、言い換え処理によって検索対象文の言い換え文の構文解析結果(文節ID、文節の自立語、品詞、親IDおよび関係)が取得される。
言い換え検索部35は、複数検索要求リストに追加された部分検索要求文「容器に入れたインク」および生成された検索対象文の言い換え文「インクを入れた容器」の構文解析結果を比較することにより、当該部分検索要求文および当該検索対象文の言い換え文が類似するか否かを判定する。
ここで、図19は、部分検索要求文「容器に入れたインク」および検索対象文の言い換え文「インクを入れた容器」が類似するか否かの判定結果を示す。図19に示す左側から1〜3カラムは部分検索要求文「容器に入れたインク」の各部分木を示し、4〜6カラムは検索対象文の言い換え文「インクを入れた容器」の各部分木を示す。また、図19において、部分検索要求文の一つの部分木と検索対象文の言い換え文の一つの部分木が一致する場合、7カラム目の結果がOKとなる。部分検索要求文の全ての部分木に対する結果がOKである場合、部分検索要求文および検索対象文の言い換え文(の表現)は同じ意味内容を示している(つまり、類似する)と判定される。つまり、図19においては、部分検索要求文「容器に入れたインク」および検索対象文の言い換え文「インクを入れた容器」は類似するとの判定結果(言い換え検索結果)が示されている。
言い換え検索部35は、上記した言い換え検索処理における言い換え検索結果(ここでは、OK)を複数検索要求リストに追加する(ステップS49)。言い換え検索結果は、上記した複数検索要求リストに保持されている検索結果ID「1」、一致文ID「1−1」および部分検索要求文「容器に入れたインク」に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、MをM+1(ここでは、M=2)とする(ステップS50)。ここで、M(=2)は上記したN(ここでは、2)以下である。この場合、M=2として上述した図15に示すステップS44〜ステップS49の処理が実行される。
ここで、図20〜図23を参照して、M=2とした場合のステップS44〜ステップS49の処理について説明する。なお、上記したM=1である場合の処理と同様の部分についてはその詳しい説明を省略する。
部分検索要求生成部34は、検索要求文の情報を複数用言リストに追加する(ステップS44)。この場合、複数用言リストに追加される検索要求IDは、検索要求ID「1−2」である。
また、部分検索要求生成部34は、複数用言リストに追加された検索要求文の構文解析結果に基づいて、当該検索要求文に含まれる動詞のうちのM番目(ここでは、2番目)の動詞(ここでは、「移動」)および当該動詞と係り受け関係にある単語(自立語)を複数用言リストにおいて保護に設定する。
図20は、検索要求ID「1−2」が追加された複数用言リストのデータ構造の一例を示す。図20に示すように、複数用言リストには、検索結果ID「1」、一致文ID「1−1」、検索要求文「容器に入れたインクを移動する」、検索要求ID「1−2」、当該検索要求文の構文解析結果および一致文節IDが保持されている。また、図20に示す複数用言リストにおいては、上記したように検索要求文に含まれる自立語「インク」および「移動」(2番目の動詞「移動」および当該動詞と係り受け関係にある自立語「インク」)に保護が設定されている。
次に、部分検索要求生成部34は、図20に示す複数用言リストを参照して、検索要求文に対する言い換え処理を実行する(ステップS46)。
図21は、検索結果ID「1」に対する処理における検索要求ID「1−2」の場合の検索要求文の言い換え処理結果を示す。ここでは、図21に示すように検索要求文に対して言い換えパタン(置換ルール)を2回適用することによって検索要求文「容器に入れたインクを移動する」から部分検索要求文「インクを移動する」が生成される。
部分検索要求生成部34は、言い換え処理結果として生成された部分検索要求文「インクを移動する」を複数検索要求リストに追加する(ステップS47)。
言い換え検索部35は、複数検索要求リストに追加された部分検索要求文を用いて、検索結果ID「1」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS48)。この場合、言い換え検索部35は、検索結果ID「1」が付与された検索対象文「インクを入れた容器を高速で移動する」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち複数検索要求リストに追加された部分検索要求文「インクを移動する」に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語のうち自立語「インク」および「移動」に保護が設定される。
言い換え検索部35は、検索結果ID「1」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより言い換え処理を実行する。
ここで、図22は、部分検索要求文「インクを移動する」に対する検索結果ID「1」が付与された検索対象文の言い換え処理結果を示す。図22に示すように、言い換え処理によって検索対象文「インクを入れた容器を高速で移動する」から当該検索対象文の言い換え文「インクを高速で移動する」が生成される。
言い換え検索部35は、複数検索要求リストに追加された部分検索要求文「インクを移動する」および生成された検索対象文の言い換え文「インクを高速で移動する」の構文解析結果を比較することにより、当該部分検索要求文および当該検索対象文の言い換え文が類似するか否かを判定する。
ここで、図23は、部分検索要求文「容器に入れたインク」および検索対象文の言い換え文「インクを高速で移動する」が類似するか否かの判定結果を示す。図23においては、部分検索要求文「インクを移動する」および検索対象文の言い換え文「インクを高速で移動する」は類似するとの判定結果(言い換え検索結果)が示されている。
言い換え検索部35は、上記した言い換え検索処理における言い換え検索結果(ここでは、OK)を複数検索要求リストに追加する(ステップS49)。言い換え検索結果は、上記した複数検索要求リストに保持されている検索結果ID「1」、一致文ID「1−1」および部分検索要求文「インクを移動する」に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、MをM+1(ここでは、M=3)とする(ステップS50)。この場合、M(=3)は上記したN(ここでは、2)以下でないため、ステップS55の処理が実行される。
部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
ここで、図24は、検索結果ID「1」に対する処理における言い換え検索結果を保持する複数検索要求リストのデータ構造の一例を示す。図24に示すように、上記したM=1の場合における言い換え検索結果(検索要求ID「1−1」に対応づけられている言い換え検索結果)は、OKである。また、上記したM=2の場合における言い換え検索結果(検索要求ID「1−2」に対応づけられている言い換え検索結果)は、OKである。
したがって、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであると判定する(ステップS55のYES)。
この場合、部分検索要求生成部34は、検索結果ID「1」(が付与された検索対象文)に対するマッチ結果をOKとする(ステップS56)。
つまり、上記したように検索要求文に複数の動詞が含まれる場合には、当該動詞毎に部分検索要求文が生成され、当該部分検索要求文の各々に対応する検索対象文の言い換え文が生成される。言い換え検索処理においては、これらの動詞毎に生成された部分検索要求文および当該部分検索要求文に対応する検索対象文の言い換え文(当該部分検索要求を用いて生成された検索対象文の言い換え文)の全てが類似すると判定された場合(つまり、全ての言い換え検索結果がOKである場合)にマッチ結果がOKとされる。
部分検索要求生成部34は、マッチ結果「OK」を検索結果管理リストに追加する(ステップS58)。このマッチ結果「OK」は、検索結果ID「1」に対応づけて検索結果に含まれる検索結果番号「1」、当該検索結果ID「1」、当該検索結果ID「1」が付与された検索対象文の文ID「1−1」(当該検索結果ID「1」に対応づけて検索要求文情報に含まれる一致文ID「1−1」)および当該検索対象文「インクを入れた容器を高速で移動する」に対応づけて検索結果管理リストに追加される。
上記したようにステップS58の処理が実行されると、検索結果ID「1」に対する処理は終了される。
次に、検索結果ID「1」に対する処理が終了されると、部分検索要求生成部34は、検索要求文情報に含まれる検索結果IDの全てについて図14に示すステップS31〜ステップS36の処理が実行されたか否かを判定する(ステップS37)。
ここでは、検索結果ID「1」については処理が実行されたが、検索結果ID「2−1」、「2−2」、「3−1」および「3−2」については処理が実行されていないため、ステップS31に戻って処理が繰り返される。この場合、検索結果ID「2−1」に対する処理が実行されることになる。
次に、図13に示す検索要求文情報に含まれる検索結果ID「2−1」に対する処理について説明する。なお、図12に示すように、検索結果ID「2−1」を含む検索結果を識別するための検索結果番号は検索結果番号「2」であり、当該検索結果ID「2−1」が付与された検索対象文は「インクを容器に入れる」である。
まず、部分検索要求生成部34は、検索要求文情報に含まれる検索結果ID「2−1」に基づいて、当該検索結果IDを含む検索結果(図12に示す検索結果)に含まれる検索対象文が1文であるか否かを判定する(ステップS31)。この場合、検索結果IDが「2−1」であるため、検索結果に含まれる検索対象文が1文でないと判定される。
検索結果に含まれる検索対象文が1文でないと判定された場合(ステップS31のNO)、部分検索要求生成部34は、検索要求文を構成する文節のうち、検索結果ID「2−1」が付与された検索対象文を構成する文節と一致する文節に一致文節IDを設定する(ステップS32)。このとき、部分検索要求生成部34は、図13に示す検索要求文情報において検索結果ID「2−1」に対応づけられている一致文節IDに基づいて設定処理を実行する。
この場合、検索要求文を構成する文節のうち、文節ID「1」、「2」および「3」によって識別される文節に一致文節IDが設定される。
部分検索要求生成部34は、検索要求文を構成する文節のうち、一致文節IDが設定された文節(ここでは、文節ID「1」、「2」および「3」によって識別される文節)を保護に設定する(ステップS33)。
次に、部分検索要求生成部34は、検索要求文の保護未設定の文節に含まれる単語(ここでは、自立語「移動」)に対して言い換えパタン格納部24に格納されている置換ルールを適用する(ステップS34)。これにより、部分検索要求生成部34は、検索要求文の言い換え処理を行う。検索要求文の言い換え処理が実行されると、当該検索要求文の部分検索要求文が生成される。
ここで、図25は、検索結果ID「2−1」に対する処理における検索要求文の言い換え処理結果を示す。ここでは、図25に示すように検索要求文に対して言い換えパタン(置換ルール)を1回適用することによって検索要求文「容器に入れたインクを移動する」から部分検索要求文「容器に入れたインク」が生成される。また、図25に示すように、言い換え処理によって部分検索要求文「容器に入れたインク」の構文解析結果が取得される。
ステップS34の処理が実行されていない検索要求文の保護未設定の文節はないため(ステップS35のNO)、図15に示す複数用言処理が実行される(ステップS36)。この複数用言処理においては、上記した部分検索要求文「容器に入れたインク」を入力文として処理が実行される。
部分検索要求生成部34は、部分検索要求文(入力文)に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。図25に示す部分検索要求文の構文解析結果によれば、当該部分検索要求文の動詞は「入れる」のみであるため、当該動詞の数Nは1である。
この場合、カウントされた部分検索要求文の動詞の数Nは1以下であるため(ステップS42のYES)、部分検索要求生成部34は、部分検索要求文(および当該部分検索要求文の構文解析結果)を複数用言リストに追加する(ステップS52)。
次に、言い換え検索部35は、複数用言リストに追加された部分検索要求文を用いて、検索結果ID「2−1」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS53)。この場合、言い換え検索部35は、一次検索結果格納部25に格納されている検索結果ID「2−1」が付与された検索対象文「インクを容器に入れる」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち部分検索要求文に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語「インク」、「容器」および「入れる」の全てに保護が設定される。
言い換え検索部35は、検索結果ID「2−1」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換えパタン格納部24に格納されている置換ルールを適用することにより言い換え処理を実行する。
ここで、図26は、検索結果ID「2−1」が付与された検索対象文の言い換え処理結果を示す。上記したように検索結果ID「2−1」が付与された検索対象文に含まれる自立語の全てに保護が設定されているため、図26に示すように言い換えパタン格納部24に格納されている置換ルールは適用されない。したがって、検索対象文に対しては言い換え処理が実行されず、当該検索対象文のまま以降の処理が実行される。このように、検索対象文および保護が設定された自立語によっては、言い換え処理が実行されない場合がある。
言い換え検索部35は、複数用言リストに追加された部分検索要求文「容器に入れたインク」および検索対象文「インクを容器に入れる」の構文解析結果を比較することにより、当該部分検索要求文および検索対象文の言い換え文が類似するか否かを判定する。
ここで、図27は、部分検索要求文「容器に入れたインク」および検索対象文「インクを容器に入れる」が類似するか否かの判定結果を示す。図27においては、部分検索要求文「容器に入れたインク」および検索対象文「インクを容器に入れる」は類似するとの判定結果(言い換え検索結果)が示されている。
言い換え検索部35は、言い換え検索処理における言い換え検索結果(ここでは、OK)を複数検索要求リストに追加する(ステップS54)。言い換え検索結果は、例えば検索結果ID「2−1」等に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
この場合、上記した複数検索要求リストにおいては、検索結果ID「2−1」に対応づけられている言い換え検索結果は1つであり、当該言い換え検索結果はOKである。
したがって、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであると判定する(ステップS55のYES)。
この場合、部分検索要求生成部34は、検索結果ID「2−1」(が付与された検索対象文)に対するマッチ結果をOKとする(ステップS56)。
部分検索要求生成部34は、マッチ結果「OK」を検索結果管理リストに追加する(ステップS58)。このマッチ結果「OK」は、検索結果ID「2−1」に対応づけて検索結果に含まれる検索結果番号「2」、当該検索結果ID「2−1」、当該検索結果ID「2−1」が付与された検索対象文の文ID「2−2」(当該検索結果ID「2−1」に対応づけて検索要求文情報に含まれる一致文ID「2−2」)および当該検索対象文「インクを容器に入れる」に対応づけて検索結果管理リストに追加される。
上記したようにステップS58の処理が実行されると、検索結果ID「2−1」に対する処理は終了される。
検索結果ID「2−1」に対する処理が終了されると、同様に、検索結果ID「2−2」、「3−1」および「3−2」に対する処理が順次実行される。
以下、検索結果ID「2−2」、「3−1」および「3−2」に対する処理(図14に示すステップS31〜ステップS36の処理)について簡単に説明する。なお、上記した検索結果ID「2−1」に対する処理と同様の部分についてはその詳しい説明を省略する。
まず、図28〜図30を用いて、検索結果ID「2−2」に対する処理について説明する。なお、図12に示すように、検索結果ID「2−2」に対応づけられている検索結果番号は検索結果番号「2」であり、当該検索結果ID「2−2」が付与された検索対象文は「容器を高速で移動する」である。
まず、部分検索要求生成部34は、検索要求文情報に含まれる検索結果ID「2−2」に基づいて、検索結果に含まれる検索対象文が1文であるか否かを判定する(ステップS31)。この場合、検索結果IDが「2−2」であるため、検索結果に含まれる検索対象文が1文でないと判定される。
検索結果に含まれる検索対象文が1文でないと判定された場合(ステップS31のNO)、部分検索要求生成部34は、検索要求文を構成する文節のうち、検索結果ID「2−2」が付与された検索対象文を構成する文節と一致する文節に一致文節IDを設定する(ステップS32)。この場合、検索要求文を構成する文節のうち、文節ID「1」および「4」によって識別される文節に一致文節IDが設定される。
部分検索要求生成部34は、検索要求文を構成する文節のうち、一致文節IDが設定された文節(ここでは、文節ID「1」および「4」によって識別される文節)を保護に設定する(ステップS33)。
次に、部分検索要求生成部34は、検索要求文の保護未設定の文節に含まれる単語(ここでは、自立語「入れる」および「インク」)の各々に対して言い換えパタン格納部24に格納されている置換ルールを適用する(ステップS34、S35)。これにより、部分検索要求生成部34は、検索要求文の言い換え処理を行う。検索要求文の言い換え処理が実行されると、当該検索要求文の部分検索要求文が生成される。
ここで、図28は、検索結果ID「2−2」に対する処理における検索要求文の言い換え処理結果を示す。ここでは、図28に示すように検索要求文に対して言い換えパタン(置換ルール)が2回適用されることによって検索要求文「容器に入れたインクを移動する」から部分検索要求文「容器を移動する」が生成される。
上記した言い換え処理が実行されると、図15に示す複数用言処理が実行される(ステップS36)。この複数用言処理においては、上記した部分検索要求文「容器を移動する」を入力文として処理が実行される。
部分検索要求生成部34は、部分検索要求文(入力文)に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。図28に示す部分検索要求文の構文解析結果によれば、当該部分検索要求文の動詞の数Nは1である。
この場合、カウントされた部分検索要求文の動詞の数Nは1以下であるため(ステップS42のYES)、部分検索要求生成部34は、部分検索要求文(および当該部分検索要求文の構文解析結果)を複数用言リストに追加する(ステップS52)。
次に、言い換え検索部35は、複数用言リストに追加された部分検索要求文を用いて、検索結果ID「2−2」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS53)。この場合、言い換え検索部35は、一次検索結果格納部25に格納されている検索結果ID「2−2」が付与された検索対象文「容器を高速で移動する」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち部分検索要求文に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語「容器」および「移動」に保護が設定される。
言い換え検索部35は、検索結果ID「2−2」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換え処理を実行する。
ここで、図29は、検索結果ID「2−2」が付与された検索対象文の言い換え処理結果を示す。図29に示すように検索対象文には、言い換えパタン格納部24に格納されている置換ルールが適用されないため、当該検索対象文に対しては言い換え処理が実行されず、当該検索対象文のまま以降の処理が実行される。
言い換え検索部35は、複数用言リストに追加された部分検索要求文「容器を移動する」および検索対象文「容器を高速で移動する」の構文解析結果を比較することにより、当該部分検索要求文および検索対象文の言い換え文が類似するか否かを判定する。
ここで、図30は、部分検索要求文「容器を移動する」および検索対象文「容器を高速で移動する」が類似するか否かの判定結果を示す。図30においては、部分検索要求文「容器を移動する」および検索対象文「容器を高速で移動する」は類似するとの判定結果(言い換え検索結果)が示されている。
言い換え検索部35は、言い換え検索処理における言い換え検索結果(ここでは、OK)を複数検索要求リストに追加する(ステップS54)。言い換え検索結果は、例えば検索結果ID「2−2」等に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
この場合、上記したように複数検索要求リストにおいては、検索結果ID「2−2」に対応づけられている言い換え検索結果は1つであり、当該言い換え検索結果はOKである。
したがって、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであると判定する(ステップS55のYES)。
この場合、部分検索要求生成部34は、検索結果ID「2−2」(が付与された検索対象文)に対するマッチ結果をOKとする(ステップS56)。
部分検索要求生成部34は、マッチ結果「OK」を検索結果管理リストに追加する(ステップS58)。このマッチ結果「OK」は、検索結果ID「2−2」に対応づけて検索結果に含まれる検索結果番号「2」、当該検索結果ID「2−2」、当該検索結果ID「2−2」が付与された検索対象文の文ID「2−3」および当該検索対象文「容器を高速で移動する」に対応づけて検索結果管理リストに追加される。
上記したようにステップS58の処理が実行されると、検索結果ID「2−2」に対する処理は終了される。
検索結果ID「2−2」に対する処理が終了されると、検索結果ID「3−1」に対する処理が実行される。
ここで、図31および図32を用いて、検索結果ID「3−1」に対する処理について説明する。なお、図12に示すように、検索結果ID「3−1」に対応づけられている検索結果番号は検索結果番号「3」であり、当該検索結果ID「3−1」が付与された検索対象文は「容器を高速で移動する」である。
まず、部分検索要求生成部34は、検索要求文情報に含まれる検索結果ID「3−1」に基づいて、検索結果に含まれる検索対象文が1文であるか否かを判定する(ステップS31)。この場合、検索結果IDが「3−1」であるため、検索結果に含まれる検索対象文が1文でないと判定される。
検索結果に含まれる検索対象文が1文でないと判定された場合(ステップS31のNO)、部分検索要求生成部34は、検索要求文を構成する文節のうち、検索結果ID「3−1」が付与された検索対象文を構成する文節と一致する文節に一致文節IDを設定する(ステップS32)。この場合、検索要求文を構成する文節のうち、文節ID「1」および「4」によって識別される文節に一致文節IDが設定される。
部分検索要求生成部34は、検索要求文を構成する文節のうち、一致文節IDが設定された文節(ここでは、文節ID「1」および「4」によって識別される文節)を保護に設定する(ステップS33)。
次に、部分検索要求生成部34は、検索要求文の保護未設定の文節に含まれる単語(ここでは、自立語「入れる」および「インク」)の各々に対して言い換えパタン格納部24に格納されている置換ルールを適用する(ステップS34、S35)。これにより、部分検索要求生成部34は、検索要求文の言い換え処理を行う。検索要求文の言い換え処理が実行されると、当該検索要求文の部分検索要求文が生成される。
ここで、図31は、検索結果ID「3−1」に対する処理における検索要求文の言い換え処理結果を示す。ここでは、図31に示すように検索要求文に対して言い換えパタン(置換ルール)が2回適用されることによって検索要求文「容器に入れたインクを移動する」から部分検索要求文「容器を移動する」が生成される。
上記した言い換え処理が実行されると、図15に示す複数用言処理が実行される(ステップS36)。この複数用言処理においては、上記した部分検索要求文「容器を移動する」を入力文として処理が実行される。
部分検索要求生成部34は、部分検索要求文(入力文)に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。図31に示す部分検索要求文の構文解析結果によれば、当該部分検索要求文の動詞の数Nは1である。
この場合、カウントされた部分検索要求文の動詞の数Nは1以下であるため(ステップS42のYES)、部分検索要求生成部34は、部分検索要求文(および当該部分検索要求文の構文解析結果)を複数用言リストに追加する(ステップS52)。
次に、言い換え検索部35は、複数用言リストに追加された部分検索要求文を用いて、検索結果ID「3−1」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS53)。この場合、言い換え検索部35は、一次検索結果格納部25に格納されている検索結果ID「3−1」が付与された検索対象文「容器を高速で移動する」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち部分検索要求文に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語「容器」および「移動」に保護が設定される。
言い換え検索部35は、検索結果ID「3−1」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換え処理を実行する。
ここで、図32は、検索結果ID「3−1」が付与された検索対象文の言い換え処理結果を示す。図32に示すように検索対象文には、言い換えパタン格納部24に格納されている置換ルールが適用されないため、当該検索対象文に対しては言い換え処理が実行されず、当該検索対象文のまま以降の処理が実行される。
言い換え検索部35は、複数用言リストに追加された部分検索要求文「容器を移動する」および検索対象文「容器を高速で移動する」の構文解析結果を比較することにより当該部分検索要求文および検索対象文の言い換え文が類似するか否かを判定する。
この場合、上記した図30に示すように、部分検索要求文「容器を移動する」および検索対象文「容器を高速で移動する」は類似すると判定される。
言い換え検索部35は、言い換え検索処理における言い換え検索結果(ここでは、OK)を複数検索要求リストに追加する(ステップS54)。言い換え検索結果は、例えば検索結果ID「3−1」等に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
この場合、上記したように複数検索要求リストにおいては、検索結果ID「3−1」に対応づけられている言い換え検索結果は1つであり、当該言い換え検索結果はOKである。
したがって、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであると判定する(ステップS55のYES)。
この場合、部分検索要求生成部34は、検索結果ID「3−1」(が付与された検索対象文)に対するマッチ結果をOKとする(ステップS56)。
部分検索要求生成部34は、マッチ結果「OK」を検索結果管理リストに追加する(ステップS58)。このマッチ結果「OK」は、検索結果ID「3−1」に対応づけて検索家かに含まれる検索結果番号「3」、当該検索結果ID「3−1」、当該検索結果ID「3−1」が付与された検索対象文の文ID「3−1」および当該検索対象文「容器を高速で移動する」に対応づけて検索結果管理リストに追加される。
上記したようにステップS58の処理が実行されると、検索結果ID「3−1」に対する処理は終了される。
検索結果ID「3−1」に対する処理が終了されると、検索結果ID「3−2」に対する処理が実行される。
ここで、図33〜図35を用いて、検索結果ID「3−2」に対する処理について説明する。なお、図12に示すように、検索結果ID「3−2」に対応づけられている検索結果番号は検索結果番号「3」であり、当該検索結果ID「3−2」が付与された検索対象文は「インクにペン先を入れる」である。
まず、部分検索要求生成部34は、検索要求文情報に含まれる検索結果ID「3−2」に基づいて、検索結果に含まれる検索対象文が1文であるか否かを判定する(ステップS31)。この場合、検索結果IDが「3−2」であるため、検索結果に含まれる検索対象文が1文でないと判定される。
検索結果に含まれる検索対象文が1文でないと判定された場合(ステップS31のNO)、部分検索要求生成部34は、検索要求文を構成する文節のうち、検索結果ID「3−2」が付与された検索対象文を構成する文節と一致する文節に一致文節IDを設定する(ステップS32)。この場合、検索要求文を構成する文節のうち、文節ID「2」および「3」によって識別される文節に一致文節IDが設定される。
部分検索要求生成部34は、検索要求文を構成する文節のうち、一致文節IDが設定された文節(ここでは、文節ID「2」および「3」によって識別される文節)を保護に設定する(ステップS33)。
次に、部分検索要求生成部34は、検索要求文の保護未設定の文節に含まれる単語(ここでは、自立語「容器」および「移動」)の各々に対して言い換えパタン格納部24に格納されている置換ルールを適用する(ステップS34、S35)。これにより、部分検索要求生成部34は、検索要求文の言い換え処理を行う。検索要求文の言い換え処理が実行されると、当該検索要求文の部分検索要求文が生成される。
ここで、図33は、検索結果ID「3−2」に対する処理における検索要求文の言い換え処理結果を示す。ここでは、図33に示すように検索要求文に対して言い換えパタン(置換ルール)が2回適用されることによって検索要求文「容器に入れたインクを移動する」から部分検索要求文「入れたインク」が生成される。
上記した言い換え処理が実行されると、図15に示す複数用言処理が実行される(ステップS36)。この複数用言処理においては、上記した部分検索要求文「入れたインク」を入力文として処理が実行される。
部分検索要求生成部34は、部分検索要求文(入力文)に含まれる自立語の中から、動詞の数Nをカウントする(ステップS41)。図33に示す部分検索要求文の構文解析結果によれば、当該部分検索要求文の動詞の数Nは1である。
この場合、カウントされた部分検索要求文の動詞の数Nは1以下であるため(ステップS42のYES)、部分検索要求生成部34は、部分検索要求文(および当該部分検索要求文の構文解析結果)を複数用言リストに追加する(ステップS52)。
次に、言い換え検索部35は、複数用言リストに追加された部分検索要求文を用いて、検索結果ID「3−1」が付与された検索対象文に対して言い換え検索処理を実行する(ステップS53)。この場合、言い換え検索部35は、一次検索結果格納部25に格納されている検索結果ID「3−2」が付与された検索対象文「インクにペン先を入れる」の構文解析結果に基づいて、当該検索対象文に含まれる自立語のうち部分検索要求文に含まれる自立語を保護に設定する。ここでは、検索対象文に含まれる自立語「インク」および「入れる」に保護が設定される。
言い換え検索部35は、検索結果ID「3−2」が付与された検索対象文に含まれる自立語であって保護に設定されていない自立語に対して言い換え処理を実行する。
ここで、図34は、検索結果ID「3−2」が付与された検索対象文の言い換え処理結果を示す。図34に示すように検索対象文には、言い換えパタン格納部24に格納されている置換ルールが適用されないため、当該検索対象文に対しては言い換え処理が実行されず、当該検索対象文のまま以降の処理が実行される。
言い換え検索部35は、複数用言リストに追加された部分検索要求文「入れたインク」および検索対象文「インクにペン先を入れる」の構文解析結果を比較することにより、当該部分検索要求文および検索対象文の言い換え文が類似するか否かを判定する。
ここで、図35は、部分検索要求文「入れたインク」および検索対象文「インクにペン先を入れる」が類似するか否かの判定結果を示す。図30においては、部分検索要求文および検索対象文に含まれる自立語は「インク」および「入れる」で同一であるが、これらの自立語の関係が異なるため、当該部分検索要求文「入れたインク」および「検索対象文「インクにペン先を入れる」は類似しないとの判定結果(言い換え検索結果)が示されている。
言い換え検索部35は、言い換え検索処理における言い換え検索結果(ここでは、NG)を複数検索要求リストに追加する(ステップS54)。言い換え検索結果は、例えば検索結果ID「3−2」等に対応づけて複数検索要求リストに追加される。
次に、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKであるか否かを判定する(ステップS55)。
この場合、上記したように複数検索要求リストにおいては、検索結果ID「3−2」に対応づけられている言い換え検索結果は1つであり、当該言い換え検索結果はNGである。
したがって、部分検索要求生成部34は、複数検索要求リストに保持されている言い換え検索結果の全てがOKでないと判定する(ステップS55のNO)。
この場合、部分検索要求生成部34は、検索結果ID「3−2」(が付与された検索対象文)に対するマッチ結果をNGとする(ステップS57)。
部分検索要求生成部34は、マッチ結果「NG」を検索結果管理リストに追加する(ステップS58)。このマッチ結果「NG」は、検索結果ID「3−2」に対応づけて検索結果に含まれる検索結果番号「2」、当該検索結果ID「3−2」、当該検索結果ID「3−2」が付与された検索対象文の文ID「3−2」および当該検索対象文「インクにペン先を入れる」に対応づけて検索結果管理リストに追加される。
上記したようにステップS58の処理が実行されると、検索結果ID「3−2」に対する処理は終了される。
このように、図13に示す検索要求文情報に含まれる検索結果ID「1」、「2−1」、「2−2」、「3−1」および「3−2」の全てについて図14に示すステップS31〜ステップS36の処理が実行されると(ステップS37のYES)、検索結果決定部36は、検索結果管理リストを参照してユーザに提示される検索結果を決定する(ステップS38)。
ここで、図36は、上記した検索結果ID「1」、「2−1」、「2−2」、「3−1」および「3−2」の全てについて処理が実行された後の検索結果管理リストのデータ構造の一例を示す。
図36に示すように、検索結果管理リストには、検索結果番号、検索結果ID、文ID、検索対象文およびマッチ結果が保持される。
図36に示す例では、検索結果管理リストには、検索結果番号「1」、検索結果ID「1」、文ID「1」、検索対象文「インクを入れた容器を高速で移動する」およびマッチ結果「OK」が保持されている。
検索結果管理リストには、検索結果番号「2」、検索結果ID「2−1」、文ID「2−2」、検索対象文「インクを容器に入れる」およびマッチ結果「OK」が保持されている。
検索結果管理リストには、検索結果番号「2」、検索結果ID「2−2」、文ID「2−3」、検索対象文「容器を高速で移動する」およびマッチ結果「OK」が保持されている。
検索結果管理リストには、検索結果番号「3」、検索結果ID「3−1」、文ID「3−1」、検索対象文「容器を高速で移動する」およびマッチ結果「OK」が保持されている。
また、検索結果管理リストには、検索結果番号「3」、検索結果ID「3−2」、文ID「3−2」、検索対象文「インクにペン先を入れる」およびマッチ結果「NG」が保持されている。
この場合、検索結果決定部36は、検索結果管理リストを参照して、各検索結果番号に対しマッチ結果がOKとなっているか否かを判定する。つまり、検索結果決定部36は、検索結果番号毎において、マッチ結果が全てOKである場合には検索結果をOKと決定し、マッチ結果のいずれかがNGである場合には検索結果をNGと決定する。
ここで、図37は、検索結果決定部36による検索結果の決定処理の結果を示す。具体的には、図36に示す検索結果管理リストにおいて検索結果番号「1」のマッチ結果はOKであるため、図37に示すように検索結果番号「1」はOKと決定される。つまり、検索結果番号「1」によって識別される検索結果に含まれる検索対象文は、ユーザに対して提示される検索結果として決定される。
また、図36に示す検索結果管理リストにおいて検索結果番号「2」のマッチ結果は検索結果ID「2−1」および「2−2」のいずれもOKであるため、図37に示すように検索結果番号「2」はOKと決定される。つまり、検索結果番号「2」によって識別される検索結果に含まれる2つの検索対象文(検索結果ID「2−1」および「2−2」によって識別される検索対象文)は、検索結果として決定される。
一方、図36に示す検索結果管理リストにおいて検索結果番号「3」のマッチ結果は検索結果ID「3−1」のマッチ結果はOKであるが、検索結果ID「3−2」のマッチ結果はNGであるため、図37に示すように検索結果番号「3」はNGと決定される。つまり、検索結果番号「3」によって識別される検索結果に含まれる検索対象文(検索結果ID「3−1」および「3−2」によって識別される検索対象文)は、検索結果として決定されない。
つまり、検索結果に2つの検索対象文(第1および第2の検索対象文)が含まれる場合には、検索結果決定部36は、当該第1の検索対象文の部分検索要求文(第1の部分検索要求文)および当該第1の部分検索要求文を用いて生成された当該第1の検索対象文の言い換え文が類似し、かつ、当該第2の検索対象文の部分検索要求文(第2の部分検索要求文)および当該第2の部分検索要求文を用いて生成された当該第2の検索対象文の言い換え文が類似する場合に、当該第1および第2の検索対象文を検索結果として決定する。
これにより、検索要求文「インクを入れた容器を移動する」に対する検索結果として、検索結果番号「1」に対応づけて検索結果管理リストに保持されている検索対象文「インクを入れた容器を高速で移動する」がユーザに対して提示される。また、検索要求文「インクを入れた容器を移動する」に対する検索結果として、検索結果番号「2」に対応づけて検索結果管理リストに保持されている検索対象文「インクを容器に入れる」および検索対象文「容器を高速で移動する」がユーザに対して提示される。なお、これらの検索結果は、出力処理部37を介してユーザに対して提示される。
一方、検索結果決定部36によってNGと決定された検索結果番号「3」に対応づけて検索結果管理リストに保持されている検索対象文「容器を高速で移動する」および検索対象文「インクにペン先を入れる」は、ユーザに対して提示されない。
なお、上記したように検索結果番号「1」および「2」が検索結果としてユーザに対して提示されるが、この場合、検索対象文が1文である検索結果が優先的にユーザに提示される構成であっても構わない。この場合には、検索結果番号「1」によって識別される検索結果が検索結果番号「2」によって識別される検索結果より上位に提示される。
上記したように本実施形態においては、ユーザによって指定された検索要求文に含まれる自立語を含む検索対象文が検索され、当該検索要求文に対して言い換え処理を実行することによって生成された部分検索要求文および当該検索された検索対象文に対して言い換え処理を実行することによって生成された当該検索対象文の言い換え文の構文解析結果が比較される。これにより、本実施形態においては、部分検索要求文および検索対象文の言い換え文が類似するか否かが判定され、当該部分検索要求文および当該検索対象文の言い換え文が類似すると判定された場合に当該検索対象文を検索結果として決定し、当該決定された検索対象文を検索要求文に対する検索結果としてユーザに提示する。
つまり、本実施形態においては、検索要求文に含まれる自立語に基づいて検索された検索対象文のうち、検索要求文と同様の意味内容を有する検索対象文のみが検索結果として決定される。これにより、本実施形態においては、例えば「インクを入れた容器を移動する」という検索要求文から「インクを入れた容器を高速で移動する」という表現を検索することが可能となり、かつ、検索要求文に含まれる自立語を含むが意味内容が異なる検索対象文を検索結果から排除することができる。よって、本実施形態においては、ユーザ(利用者)からの検索要求文に基づいて適切な検索結果を得ることが可能となる。
また、本実施形態においては、ユーザによって指定された検索要求文に含まれる自立語を含む1の文書において連続する例えば2つの検索対象文が検索され、当該検索された検索対象文(の言い換え文)毎に対応する部分検索要求文と類似するか否かが判定される。本実施形態においては、検索された2つの検索対象文の各々が対応する部分検索要求文と類似すると判定された場合、当該2つの検索対象文が検索結果として決定される。これにより、本実施形態においては、例えば「インクを入れた容器を移動する」という検索要求文から「インクを容器に入れる。容器を高速で移動する。」のような表現を検索することが可能となり、かつ、「容器を高速で移動する。インクにペン先を入れる。」のような検索要求文とは意味内容が異なる誤った検索結果を排除することができる。このため、本実施形態においては、検索結果が2つの検索対象文に分かれるような表現であっても、当該検索結果の適合率の低下を抑止することができる。
更に、本実施形態においては、ユーザによって指定された検索要求文に複数の動詞(用言)が含まれている場合、当該動詞毎に部分検索要求文が生成され、当該生成された部分検索要求文毎に検索対象文の言い換え文が生成され、当該部分検索要求文および検索対象文の言い換え文が類似するか否かが判定される。本実施形態においては、部分検索要求文および検索対象文の言い換え文の全てが類似すると判定された場合、当該検索対象文が検索結果として決定される。これにより、本実施形態においては、検索要求文が単純でなく複数の用言が含まれるような表現である場合であっても、適切な検索結果を得ることが可能となる。
なお、本実施形態においては、一次検索部33によって検索された検索結果のうち、検索結果決定部36によって決定された検索結果のみがユーザに対して提示されているが、例えば当該検索結果決定部36によって決定された検索結果を上位とするような検索結果の順位付けを行い、全ての検索結果が出力される構成であっても構わない。
また、本実施形態においては、1の文書において連続する2つの検索対象文が検索される場合について説明したが、3つ以上の検索対象文が検索される構成であっても構わない。この場合、検索された3つ以上の検索対象文のマッチ結果の全てがOKであれば検索結果として決定される。
また、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。