(57)【特許請求の範囲】
【請求項１】
構造化文書を検索対象とする構造化文書検索装置において、
文書構造中のノードのタイプ、ノードの内容、ノードの属性、ノード間の構造上の関係のうち複数が記述された第１の検索式に示される検索条件を段階的に緩やかな検索条件に書き換えた複数の条件緩和検索式を生成するための書き換え規則と前記書き換え規則毎に書き換えた検索式の確からしさを示す基準確度を対応付けて記憶し、前記第１の検索式が入力されると、前記書き換え規則にしたがって複数の前記条件緩和検索式を生成する検索式生成手段と、
前記条件緩和検索式を生成するのに行った前記書き換え規則に対応する前記基準確度に基づいて、前記条件緩和検索式毎の確からしさを示す確度を計算する確度計算手段と、
前記第１の検索式及び前記条件緩和検索式に基づいて検索を行う検索実行手段と、
前記第１の検索式及び前記条件緩和検索式毎に前記検索実行手段による検索結果に含まれる前記構造化文書に対して前記構造化文書を検出した検索式の前記確度を割り当て、ひとつの前記構造化文書が複数の検索式により検出された場合には前記確度の高い方を割り当て、前記検索結果に含まれる前記構造化文書を前記割り当てた確度の高い順に並べて併合する検索結果併合手段と  
を有することを特徴とする構造化文書検索装置。
【請求項２】
構造化文書を検索対象とする構造化文書検索方法において、
文書構造中のノードのタイプ、ノードの内容、ノードの属性、ノード間の構造上の関係のうち複数が記述された第１の検索式に示される検索条件を段階的に緩やかな検索条件に書き換えた複数の条件緩和検索式を生成するための書き換え規則と前記書き換え規則毎に書き換えた検索式の確からしさを示す基準確度を対応付けて第１の記憶手段が記憶し、検索式生成手段が、前記第１の検索式の入力を受けて、前記第１の記憶手段に記憶された前記書き換え規則にしたがって複数の前記条件緩和検索式を生成して、入力された前記第１の検索式及び前記条件緩和検索式を第２の記憶手段に記憶し、
確度計算手段が、前記条件緩和検索式を生成するのに行った前記書き換え規則に対応する前記基準確度に基づいて、第２の記憶手段に記憶した前記条件緩和検索式毎の確からしさを示す確度を計算して、前記条件緩和検索式それぞれの前記確度を前記第２の記憶手段に記憶し、
検索実行手段が、前記第２の記憶手段に記憶された前記第１の検索式及び前記条件緩和検索式に基づいて検索を行い、
検索結果併合手段が、前記検索実行手段により前記第１の検索式及び前記条件緩和検索式毎に行われた検索の検索結果に含まれる前記構造化文書に対して、前記第２の記憶手段に記憶された前記構造化文書を検出した検索式の前記確度を割り当て、ひとつの前記構造化文書が複数の検索式により検出された場合には前記確度の高い方を割り当て、前記検索結果に含まれる前記構造化文書を前記割り当てた確度の高い順に並べて併合する
ことを特徴とする構造化文書検索方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は構造化文書を対象とした文書検索を行う構造化文書検索装置及び構造化文書検索方法に関し、特に複数の文書型から生成された文書を検索対象とする構造化文書検索装置及び構造化文書検索方法に関する。
【０００２】
【従来の技術】
構造化文書では、文書の内容は論理構造と呼ばれ、章、節、図などの複数の文書構成要素からなる木構造で表現される。図１９は論理構造の例を示す図である。このような論理構造６１はまったく自由に作成してよいのではなく、文書型と呼ばれる構文規則に沿って作成される。
【０００３】
図２０は文書型の例を示す図である。この文書型６０の中で、矩形のノードは要素の型（要素型）を定義している。ノードのラベルは、要素型の名前を示している。同一の名前をもつノードの実体は同一の要素型である。したがって、図２０の「節」という名前の要素型は、再帰的に定義されていることになる。
【０００４】
楕円で示したノードは要素のつながりを定義する。このノードを構築子と呼ぶ。ＳＥＱノードは、それにつながるノードのインスタンスがその順に生成されることを示している。ＲＥＰノードは、それにつながるノードのインスタンスが１回以上生成されることを示す。ＯＰＴノードは、それにつながるノードのインスタンスが、出現してもしなくてもよいことを示す。ＣＨＯノードは、それにつながるいずれか１つのノードのインスタンスが生成されることを示す。ここで「インスタンス」とは、この文書型に基づき生成される文書の要素を示す。
【０００５】
図２０の文書型の定義を書き下すと、次のようになる。「記事」は１つ以上の「節」からなり、「節」は「見出し」と０個以上の「段落」または「図」および０個以上の「節」からなる。前述のように、「節」は入れ子になってよい。図１９の論理構造６１は、図２０の文書型６０の制約を満たしている。
【０００６】
図２０では簡単な文書型の例を示したが、実用規模の文書型は大規模であり、要素型の数が数百に及ぶことも珍しくない。
文書型は、データベースで言えばスキーマに相当する。即ち、文書の要素の意味と、要素間の関係とを記述したものが文書型である。データベースの処理がスキーマにしたがって行われるのと同様に、構造化文書の処理は文書型の情報に基づいて行われる。例えば、文書型にしたがって割り付け指示を定義しておき、文書インスタンスと割り付け指示とを入力として、文書割り付けが行われる。もう１つの例として、既存の文書群から必要な部分を適宜抽出、それらを合成して新たな文書を作成する例があげられる。このとき、必要であれば、新規な部分を入れ込むこともある。このような処理においては、必要な部分を特定する検索処理と、新たに構成した文書が所望の形態であるかを検査する検証処理などに文書型の情報が用いられる。
【０００７】
文書型に基づいて構造化文書を作成するには、論理構造を直接ユーザに提示するネイティブエディタを用いることができる。ネイティブエディタを利用するには、構造化文書そのものと、文書作成に用いる文書型に精通している必要がある。
【０００８】
ユーザが構造化文書や文書型に精通していない場合、テキストエディタや、印刷イメージとほぼ同じ画面表示を行う文書作成ソフトウェア（ＷＹＳＩＷＹＧエディタ）を使って文書を作成し、コンバータを使って、所望の論理構造を得るという方法が広く用いられている。この場合、テキストエディタやＷＹＳＩＷＹＧエディタでの文書作成は一定の規則に沿って行う必要がある。
【０００９】
作成規則は、大きく分けて、構造を抽出するために予め定められたパターンに合うよう文章を作成する方法と、要素として扱う部分に特定のスタイル（  体裁を指定するための情報）  を指定する方法の２つが用いられる。
【００１０】
パターンを用いる場合には、例えば、要素と要素の間には空行（  連続する改行）  を入れる、特定の要素はインデントをつけて表現する、正規表現などにより予め定められたパターンに合うよう項目に番号づけする、正規表現などにより予め定められた文字列を用いる、などの方法が取られている。
【００１１】
他方、スタイルを用いる場合には、要素として用いる段落、文、語句などに、予め定められたスタイルを指定する。
ところで、文書の検索を行うには、文書がもつテキストを検索条件に用いる全文検索の手法が用いられることが多い。全文検索では、文書がもつ語句に関する条件を、ＡＮＤ（かつ）、ＯＲ（または）、ＮＯＴ（否定）で結合したブーリアン検索が一般的である。単純なブーリアン検索では、再現率（ｒｅｃａｌｌ）はよいが、精度（ｐｒｅｃｉｓｉｏｎ）が低くなる傾向がある。すなわち、検索結果に、ユーザが期待していない文書が数多く含まれることがよくあるという問題がある。
【００１２】
そこで、構造化文書を対象とする文書検索においては、論理構造を用いることにより、検索精度をあげる方法が広く用いられている。例えば、章見出しに「文書処理」という文字列をもつ章にあり、図見出しに「データベース」という図を検索することにより、文書データベースや、データベース中のデータをもとに生成した文書などといった、文書処理の文脈でのデータベースに関する図を検索することができる。
【００１３】
これらの手法を用いている従来技術には、特開平４−２１７０７３号公報（文書蓄積システムにおける文書検索装置）がある。この文書検索装置では、文書の論理構造におけるノードの親子関係、ノードの内容および属性を用いて、検索対象を指定できる。これにより、論理構造が正しく作成されていれば、構造を利用することにより、再現率を低下させることなく精度を上げることができる。
【００１４】
【発明が解決しようとする課題】
しかし、従来の構造化文書を対象とする文書検索装置では、論理構造が正しく作成されていない場合には、精度が低下することはないが再現率が低下してしまうという問題点があった。
【００１５】
即ち、文書はユーザが作成するものであるから、論理構造が常に正しく作成されているとは限らない。とくに、ＷＹＳＩＷＹＧエディタを用いて文書を作成している場合には、所定のパターンにマッチしないように記述されたり、画面表示が同一になるか類似した表示になる、論理構造の異なる複数の文書要素が混同されたりする。この結果、文書型の制約は満たしているが、本来もつべき論理構造とは異なる論理構造をもつ文書が作成される。
【００１６】
以上の理由により、構造化文書を対象とする従来の文書検索装置では、文書型によって定められた要素型の情報を用いて多数の文書を対象として検索すると再現率が低下する。このことは、先に例示した従来技術以外の技術も含めた、既存の全ての文書検索装置にあてはまる。
【００１７】
本発明はこのような点に鑑みてなされたものであり、論理構造の異なる複数の文書に対する検索においても、高い再現率を維持した構造化文書検索装置及び構造化文書検索方法を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明では上記課題を解決するために、構造化文書を検索対象とする構造化文書検索装置において、文書構造中のノードのタイプ、ノードの内容、ノードの属性、ノード間の構造上の関係のうち複数が記述された第１の検索式に示される検索条件を段階的に緩やかな検索条件に書き換えた複数の条件緩和検索式を生成するための書き換え規則と前記書き換え規則毎に書き換えた検索式の確からしさを示す基準確度を対応付けて記憶し、前記第１の検索式が入力されると、前記書き換え規則にしたがって複数の前記条件緩和検索式を生成する検索式生成手段と、前記条件緩和検索式を生成するのに行った前記書き換え規則に対応する前記基準確度に基づいて、前記条件緩和検索式毎の確からしさを示す確度を計算する確度計算手段と、前記第１の検索式及び前記条件緩和検索式に基づいて検索を行う検索実行手段と、前記第１の検索式及び前記条件緩和検索式毎に前記検索実行手段による検索結果に含まれる前記構造化文書に対して前記構造化文書を検出した検索式の前記確度を割り当て、ひとつの前記構造化文書が複数の検索式により検出された場合には前記確度の高い方を割り当て、前記検索結果に含まれる前記構造化文書を前記割り当てた確度の高い順に並べて併合する検索結果併合手段とを有することを特徴とする構造化文書検索装置が提供される。
【００１９】
このような構造化文書検索装置によれば、検索式が入力されると、検索式生成手段によって、前記検索式に示された検索条件を段階的に緩やかな条件に書き換え、条件緩和検索式が生成される。すると、確度計算手段により、各条件緩和検索式を生成するのに行った書き換えの内容に応じて、条件緩和検索式による検索結果の確からしさを示す確度が計算されるとともに、検索実行手段により、入力された検索式及び条件緩和検索式に基づいて検索が行われる。検索結果は、検索結果併合手段により、確度の高い順に並べて併合される。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の原理構成図である。まず、文書構造中のノードのタイプ、ノードの内容、ノードの属性、ノード間の構造上の関係によって記述された検索式１が入力されると、検索式生成手段２が、検索式に示された検索条件を段階的に緩やかな条件に書き換え、条件緩和検索式４を生成する。例えば、構造条件の「ＡＮＤ」を「ＯＲ」に書き換えれば、検索条件が緩和された条件緩和検索式となる。このような条件緩和検索式４が生成されると、確度計算手段３は、各条件緩和検索式４を生成するのに行った書き換えの内容に応じて、条件緩和検索式４による検索結果の確からしさを示す確度を計算する。
【００２３】
検索実行手段５は、入力された検索式１と検索式生成手段２により生成された条件緩和検索式４のそれぞれにより、文書保持手段６内の構造化文書を対象として検索を実行する。検索結果併合手段７は、検索実行手段５による検索結果を、確度の高い順に並べて併合する。
【００２４】
これにより、正しく論理構造が作成されていない文書も検索することができる。単純に検索結果を見た場合にはもとの検索式で検索したときに比して適合率が低下するが、検索結果はもとの検索式に正確に一致するものとあまり一致しないものとが乱雑に並ぶことはなく、もとの検索式に照らして確からしい順に出力されるので、利用者は確からしいものから順次検索結果を吟味することができる。
【００２５】
図２は、構造化文書検索装置の第１の実施の形態のブロック図である。この実施の形態は、以下のような構成要素からなる。なお、この実施の形態では、図１の説明で用いた「確度」は、「ペナルティ」で表している。このペナルティは、値が小さいほど検索結果の確からしさが大きくなる。
【００２６】
検索式入力手段１１は、利用者に対して、検索式の作成及び入力機能を提供している。また、この検索式入力手段１１は、他のプログラムで作成した検索式を入力することもできる。ペナルティ割当手段１２は、利用者に対して、ペナルティを計算する基準となる値を検索式の書き換え規則毎に割り当てるための機能を提供している。ペナルティ計算手段１３は、ペナルティ割当手段１２により入力されたペナティの値に従い、各検索式のペナルティの合計値を求める。ペナルティ指定手段１４は、利用者に対して、ペナルティの上限値の入力機能を提供する。
【００２７】
検索式生成手段１５は、検索式入力手段１１により入力された検索式をもとに、検索式書き換え規則にしたがって検索条件の緩やかな検索式を生成する。検索式保持手段１６は、検索式入力手段１１により入力された検索式と検索式生成手段１５で生成された検索式とを、ペナルティ計算手段１３により計算されたペナルティの値を付加して保持する。
【００２８】
文書保持手段１７には、論理構造の異なる複数の文書が格納されている。検索実行手段１８は、文書保持手段１７に保持された文書を対象とし、検索式保持手段１６に格納されている検索式による検索を行う。検索結果保持手段１９は、検索式実行手段１８が行った検索結果を格納する。この際、各検索結果には、検索式に設定されたペナルティの値が付加されている。検索結果併合手段２０は、検索結果保持手段１９に格納されている検索結果を、付加されたペナルティの値の小さい順に並べ替える。検索結果出力手段２１は、検索結果併合手段２０で並べ替えられた順に、検索結果を表示装置の画面上に表示する。
【００２９】
このような構成の構造化文書検索装置において検索を実行するには、予めペナルティ割当手段１２を用いて、検索式の書き換え規則に対するペナルティを設定する。設定するペナルティは、検索式の書き換えによって、検索の条件が緩やかになる度合いが大きいほど大きな値とする。入力されたペナルティは、ペナルティ計算手段１３に渡され、そこで保持される。また、利用者は、ペナルティの上限値を、ペナルティ指定手段１４を用いて入力することもできる。なお、ペナルティの上限値は必須の設定項目ではない。
【００３０】
以上の設定を行った後、文書検索をしようとする利用者は、検索式入力手段１１により、任意の検索式を検索式生成手段１５に入力する。すると、検索式生成手段１５は、入力された検索式から、検索条件を段階的に緩やかにした検索式を多数生成する。検索式生成手段１５で生成された検索式は、検索式保持手段１６で一時的に保持される。なお、ペナルティの上限値が設定されている場合には、ペナルティが上限値を超えた検索式が生成されることはない。
【００３１】
検索式保持手段１６に保持された検索式は、検索式実行手段１８により順に取り出され、文書保持手段１７に格納されている構造化文書を対象として検索が行われる。そして、各検索式を評価した結果得られる検索結果は、検索式に付加されていたペナルティの値とともに検索結果保持手段１９に保持される。
【００３２】
すべての検索式が評価されたのち、ペナルティとともに検索結果保持手段１９に保持された検索結果は、検索結果併合手段２０により、ペナルティの値の小さい順に並べ替えて併合される。併合された検索結果は、検索結果出力手段２１により、順次出力される。
【００３３】
次に、第１の実施の形態の内容を具体的に説明する。まず、書き換えの規則に割り当てるペナルティの例を示す。図３は、書き換え規則に割り当てられたペナルティの例を示す図である。このペナルティ１３ａは、ペナルティ割当手段１２で入力され、ペナルティ計算手段１３が保持するものである。この例では、書き換え種別が「親子→祖孫」の場合にはペナルティは「１０」である。書き換え種別が「タイプの無視」の場合にはペナルティは「３０」である。書き換え種別が「子孫のＡＮＤ→ＯＲ」の場合にはペナルティは「１００」である。書き換え種別が「テキストに関する条件のＡＮＤ→ＯＲ」の場合にはペナルティは「２００」である。書き換え種別が「ブーリアン検索」の場合にはペナルティは「５００」である。
【００３４】
このようなペナルティが設定された状態で、利用者は、検索式入力手段１１により検索式を入力する。例えば、以下のような検索式を入力する。
図４は、検索式の例を示す図である。図に示すように、利用者が検索式入力手段１１を用いて入力した検索式３０は、内部的には有向グラフで表現される。
【００３５】
ＡＮＤ以外のラベルをもつノード３１，３３〜３５は、文書のある要素自身に関する条件（  局所条件）  と、そのノードにもっとも近い、ＡＮＤ以外のラベルをもつノードの局所条件で指定された要素との構造上の関係を示す条件（  構造条件）  を表現する。この例で示した局所条件は、取出対象であるか否か（真、偽）の条件、そのノードのタイプの種別に関する条件、及びそのノードのテキストに関する条件である。また、構造条件は、上位のノードとの関係が親子であるか、祖孫であるかにより指定されている。
【００３６】
ラベルがＡＮＤであるノード３２は、構造に関する条件の連言を示す。なお、検索式入力手段１１により入力された検索式のペナルティは、常に「０」である。
【００３７】
以後、図４の有向グラフのノードおよびノード内で指定された条件を、もとの検索式の部分式と呼ぶ。
図４のような検索式３０が入力されたら、検索処理の実行に先だって、検索式の書き換えが行われる。
【００３８】
図５は、検索式の書き換え処理のフローチャートである。以下、図５の手順にしたがい、検索式の書き換え処理について説明する。
〔Ｓ１〕ペナルティ計算手段１３は、ペナルティの値を初期化する。即ち、値を「０」にする。
【００３９】
以下のステップＳ２ないしステップＳ９は、検索式の内部表現の部分式に対する繰り返し処理である。
〔Ｓ２〕検索式生成手段１５は、現在与えられている検索式において、適用可能な書き換え規則が存在するか否か検査する。適用可能な書き換え規則が存在すればステップＳ３へ、そうでなければ実行を終了する。
〔Ｓ３〕検索式生成手段１５は、適用可能な書き換え規則をひとつ選択する。
〔Ｓ４〕検索式生成手段１５は、ステップＳ３で選択された書き換え規則がタイプの無視であるか否か検査する。書き換え規則が「タイプの無視」であればステップＳ５へ、そうでなければステップＳ６へ行く。
〔Ｓ５〕検索式生成手段１５は、取出対象以外のノード（取出対象が「偽」）のタイプに関する条件を、任意型を示す「ＡＮＹ」に書き換える。すなわち、タイプに関する条件を無効化する。この処理の後、ステップＳ７へ行く。
〔Ｓ６〕検索式生成手段１５は、ステップＳ３で選択された書き換え規則を適用し、検索式を書き換える。書き換え規則が「親子→祖孫」、「子孫のＡＮＤ→ＯＲ」、若しくは「テキストに関する条件のＡＮＤ→ＯＲ」のいずれかであれば、その書き換え規則の通りに検索式の書き換えを行う。また、書き換え規則が「ブーリアン検索」の場合には、検索式全体をブーリアン検索に変更する。その変更の手続については、後述する（図１０に示す）。
〔Ｓ７〕ペナルティ計算手段１３は、現在処理中の検索式に対し、ステップＳ３で選択された書き換え規則に対応するペナルティを加算する。
〔Ｓ８〕検索式生成手段１５は、ペナルティが基準値を超えたか否かを検査する。ペナルティが基準値を超えていれば実行を終了し、そうでなければステップＳ９へ行く。
〔Ｓ９〕ステップＳ５あるいはステップＳ６の検索式の書き換えで得られた検索式を、検索式保持手段１６が保存し、ステップＳ２へ行く。
【００４０】
以上のような処理が行われることにより、図４に示した検索式から複数の新たな検索式が生成される。そして、各検索式には、書き換えの内容に応じてペナルティが付加される。図４の検索式３０を書き換えた例を図６ないし図９に示す。
【００４１】
図６は、書き換え後の検索式の第１の例を示す図である。この検索式３０ａは、図４の検索式３０に対し、親子関係を祖孫関係に変更する書き換え規則を３箇所に適用したものである。この場合のペナルティは１０×３＝３０となる。
【００４２】
図７は、書き換え後の検索式の第２の例を示す図である。この検索式３０ｂは、図６の検索式３０ａに対し、タイプを無視する書き換え規則を３箇所に適用したものである。この場合のペナルティは（  図６の検索式３０ａのペナルティ）＋３０×３＝３０＋９０＝１２０である。
【００４３】
図８は、書き換え後の検索式の第３の例を示す図である。この検索式３０ｃは、図７の検索式３０ｂに対し、子孫に関するＡＮＤの条件をＯＲに変更する書き換え規則を１箇所に適用したものである。この場合のペナルティは、（  図７の検索式３０ｂのペナルティ）  ＋１００＝１２０＋１００＝２２０である。
【００４４】
図９は、書き換え後の検索式の第４の例を示す図である。この検索式３０ｄは、図８の検索式３０ｃに対し、テキストに関する条件のＡＮＤをＯＲに変更する書き換え規則を１箇所に適用したものである。この場合のペナルティは、（  図８の検索式３０ｃのペナルティ）  ＋２００＝２２０＋２００＝４２０である。
【００４５】
図６から図８は、木構造の検索式から木構造の検索式への書き換えを行った場合の例であり、これらの書き換えは、各ノード内の検索条件を、書き換え規則に従って書き換えればよい。一方、ブーリアン検索への書き換えを行うには、次のような手続を実行する必要がある。
【００４６】
図１０は、検索式全体をブーリアン検索へ書き換える手続きのフローチャートである。この手続は検索式生成手段１５の行う処理であり、この手続きの入力は木構造で表現された検索式のノードで、出力はそのノードを頂点とする検索式の部分木を変換して得られたブーリアン検索式である。この手続きでは、出力される検索式は文字列で表わされる。
〔Ｓ１１〕ノードが要素に対する条件か否か判定する。要素に関する条件であればステップＳ１２へ、そうでなければステップＳ１３へ行く。
〔Ｓ１２〕ノードに指定されたテキスト内容に関する条件を検索式とし、ステップＳ１４へ行く。
〔Ｓ１３〕検索式を空とし、ステップＳ１４へ行く。
〔Ｓ１４〕ノードが子ノードをもつか否かを判定する。子ノードが存在すればステップＳ１５へ、存在しなければステップＳ２３へ行く。
【００４７】
以下のステップＳ１５ないしステップＳ２２は、ノードの子ノードに対する繰り返し処理である。
〔Ｓ１５〕変換処理を施していない子ノードがあるか否か判定する。未処理の子ノードがあればステップＳ１６へ、そうでなければステップＳ２３へ行く。
〔Ｓ１６〕未処理の子ノードを１つ選択する。
〔Ｓ１７〕ステップＳ１６で選択したノードを引数として、ブーリアン検索への書き換え手続きを再帰的に呼び出す。
〔Ｓ１８〕検索式が空であるか否かを判定する。検索式が空であればステップＳ１９へ、そうでなければステップＳ２０へ行く。
〔Ｓ１９〕ステップＳ１７の手続き呼出しの結果得られた検索式（  文字列）  を検索式とし、ステップＳ１５へ行く。
〔Ｓ２０〕この手続きの引数として与えられたノードがＯＲノードであるか否か判定する。ＯＲノードであればステップＳ２２へ、そうでなければステップＳ２１へ行く。
〔Ｓ２１〕検索式と、ステップＳ１７の手続き呼出しの結果得られた検索式とをＡＮＤで連結し、ステップＳ１５へ行く。
〔Ｓ２２〕検索式と、ステップＳ１７の手続き呼出しの結果得られた検索式をＯＲで連結し、ステップＳ１５へ行く。
〔Ｓ２３〕検索式を戻り値として、手続きの実行を終了する。
【００４８】
このような処理により、木構造の検索式からブーリアン検索式を求めることができる。以下に、図４の検索式を直接ブーリアン検索式へ書き換えた例を示す。
【００４９】
【数１】
（ＳＧＭＬ  ＡＮＤ  ｃｏｎｆｅｒｅｎｃｅ）  ＡＮＤ  ”Ｙｕｒｉ  Ｒｕｂｉｎｓｋｉ”  ＡＮＤ  Ｐｕｂｌｉｓｈｉｎｇ
このブーリアン検索式のペナルティは、（  図４の検索式３０のペナルティ）＋５００＝０＋５００＝５００である。
【００５０】
以上のような、複数の木構造の検索式とブーリアン検索式とのそれぞれに基づいて、検索が行われると、それぞれの検索結果に対して検索式のペナルティが付加される。そして、全ての検索結果がペナルティの低い順に並べられる。この際、１つの文書が複数の検索式により検出された場合には、その検索結果には、値の小さい方のペナルティが採用される。並べられた検索結果は、表示装置の画面に表示される。
【００５１】
図１１は、第１の実施の形態による検索結果の表示例を示す図である。同図では、検索結果の表示画面２１ａの中に、検索結果として得られた文書が表示されている。これらの文書は、ペナルティ、文書名、著者、作成日とともに表示されている。画面中にはスクロールバーが設けられており、このスクロールバーを操作することにより、表示させる文書をスクロールさせ、ペナルティの小さい検索結果を順次画面表示させることができる。ペナルティの上限値が定められていれば、その上限値を超える検索結果は存在しない。
【００５２】
なお、同図ではペナルティにより検索条件の厳しさを表示しているが、検索条件が厳しいものほど高い値となるようなスコアを計算して表示してもよい。例えば、ペナルティ指定手段１４によりペナルティの上限値を指定した場合には、その上限値からペナルティの値を引いたものをスコアとすることができる。
【００５３】
このようにして、入力した検索式から検索条件を段階的に緩めた検索式による検索結果を閲覧することができる。従って、正しい論理構造に基づいて作成した検索式を入力した場合でも、論理構造が正しく作成されていない文書を検出することができ、再現率が向上する。しかも、検索式の条件を緩める度合いが低いものを優先的に表示するため、検索結果の数が多くなっても利用者の閲覧が不便になることはない。
【００５４】
ところで、上記の第１の実施の形態は、入力された検索式の検索条件を書き換えることにより、段階的な検索条件の緩和を行ったものであるが、入力された検索式の部分式に基づいて文書部品（構造化文書の個々の要素）を取り出し、検索式の条件を満たしている度合いの高い文書部品を、検索結果として出力することもできる。そのような例を第２の実施の形態として以下に説明する。
【００５５】
図１２は、構造化文書検索装置の第２の実施の形態のブロック図である。なお、この実施の形態では、検索結果の確からしさを「スコア」で表している。このスコアは、値が大きいほど検索結果の確からしさが大きいことを示す。検索式入力手段４１は、利用者に対して、検索式の作成及び入力機能を提供している。検索式保持手段４２は、検索式入力手段４１により入力された検索式を保持する。
【００５６】
文書保持手段４３には、論理構造の異なる複数の文書が格納されている。部分式評価手段４４は、検索式保持手段４２に格納された検索式の部分式を順次取り出し、その部分式により文書保持手段４３に格納された文書を対象として評価を行う。即ち、取り出した部分式の示す条件を満たした文書部品を文書保持手段４３から候補として取り出す。一方、スコア割当手段４５は、スコアを計算する基準となる値を部分式の種類毎に割り当てるための機能を利用者に対して提供している。スコア計算手段４６は、スコア割当手段４５により入力されたスコアの値に従い、部分式評価手段４４の取り出した候補のスコアを求める。
【００５７】
候補保持手段４７は、部分式評価手段４４が取得した候補に、スコアの値を付加して保持する。スコア指定手段４８は、利用者に対して、スコアの下限値の入力機能を提供する。検索結果出力手段４９は、スコア指定手段４８により指定された下限値よりも大きいスコアの文書部品を検索結果として、スコアの大きいものから順に、表示装置の画面上に表示する。
【００５８】
なお、図中の部分式評価手段４４、スコア計算手段４６、及び候補保持手段４７により、検索式評価手段４０を構成している。
このような構造化文書検索装置において検索を実行するには、利用者は、予めスコア割当手段４５を用いて、スコアを計算する基準となる値を部分式の種類毎に割り当てる。割り当てるスコアは、その検索条件により検索対象が絞り込まれる度合いが大きいほど大きな値とする。入力されたスコアは、スコア計算手段４６に渡され、そこで保持される。また、利用者は、スコアの下限値を、スコア指定手段４８を用いて入力することもできる。なお、スコアの下限値は必須の設定項目ではない。
【００５９】
以上の設定を行った後、文書検索をしようとする利用者は、検索式入力手段４１により、自己が作成したか若しくは所定のプログラムにより作成された検索式を、検索式保持手段４２に入力する。検索式入力手段４１で入力された検索式は、検索式保持手段４２で保持される。検索式保持手段４２に保持された検索式は、部分式評価手段４４により、文書保持手段４３に保持された文書を対象として、部分式ごとに評価される。部分式評価手段４４で検索式の部分式を評価した結果得られた候補は、部分式毎にスコア計算手段４６により算出されたスコアとともに候補保持手段４７に保持される。部分式を評価していく段階で、候補となる文書部品が得られたとき、その部品がまだ候補保持手段４７に存在していなければ、スコア計算手段４６はその候補のスコアとして該部分式のスコアを割り当てる。得られた候補がすでに候補保持手段４７に存在していれば、スコア計算手段４６は該候補のスコアを該部分式のスコア分だけ増加させる。
【００６０】
すべての部分式が評価されたのち、スコアとともに候補保持手段４７に保持された検索結果は、検索結果出力手段４９によりスコア順に出力される。
次に、第２の実施の形態の内容を具体的に説明する。まず、文書を評価する条件に割り当てるスコアの例を示す。
【００６１】
図１３は、文書を評価する条件に割り当てられたスコアの例を示す図である。このスコア４６ａは、スコア割当手段４５で入力され、スコア計算手段４６が保持するものである。図の例では、条件が「タイプ」の場合にはスコアは「１００」である。条件が「親子関係」の場合にはスコアは「１００」である。条件が「祖孫関係」の場合にはスコアは「１００」である。条件が「テキストに関する条件」の場合にはスコアは「１００」である。条件が「タイプのＡＮＤ」の場合にはスコアは「２００」である。条件が「テキストに関する条件のＡＮＤ」の場合にはスコアは「２００」である。
【００６２】
このようなスコアが設定された状態で、利用者は、検索式入力手段４１により検索式を入力する。例えば、図４のような検索式を入力する。すると、検索式評価手段４０は、文書保持手段４３内の文書に対して検索式の評価を行い、評価の高い文書を検索結果とする。
【００６３】
図１４は、検索式を評価する手続きのフローチャートである。この手続きでは、検索条件を評価する段階で、検索結果の候補に対しスコアを与えていく。
〔Ｓ３１〕部分式評価手段４４は、検索式の内部表現のノードのうち、未処理のものが存在するか否かを検査する。未処理のノードが存在すればステップＳ３２へ行く。そうでなければ、ステップＳ３７に行く。
〔Ｓ３２〕部分式評価手段４４は、検索式の内部表現のノードのうち、未処理のものを１つ選択する。
〔Ｓ３３〕部分式評価手段４４は、ステップＳ３２で選択されたノードがもつ検索条件のうち、未処理のものが存在するか否かを検査する。未処理の条件が存在すればステップＳ３４へ、そうでなければステップＳ３１へ行く。
〔Ｓ３４〕部分式評価手段４４は、ステップＳ３２で選択されたノードがもつ検索条件のうち、未処理のものを１つ選択する。
〔Ｓ３５〕部分式評価手段４４は、ステップＳ３４で選択された検索条件を評価する。
〔Ｓ３６〕スコア計算手段４６は、ステップＳ３５で検索条件を評価した結果として得られた各候補に対し、ステップＳ３５で評価した検索条件に対応するスコアを加算する。その後、ステップＳ３３へ行く。
〔Ｓ３７〕部分式評価手段４４は、構造条件のうち、未評価のものが存在するか否か検査する。未評価の構造条件が存在すればステップＳ３８へ、そうでなければステップＳ４１へ行く。
〔Ｓ３８〕部分式評価手段４４は、構造条件のうち、未評価のものを１つ選択する。
〔Ｓ３９〕部分式評価手段４４は、ステップＳ３８で選択された構造条件を評価する。
〔Ｓ４０〕スコア計算手段４６は、ステップＳ３９の評価結果得られた各候補に対し、ステップＳ３９で評価した条件に対応するスコアを加算する。
〔Ｓ４１〕候補保持手段４７は、取出対象でないものを候補から除外して、残った候補を保持する。即ち、取出対象が「真」である候補のみを保持する。
【００６４】
以上のような処理が行われることにより、図４に示した検索式から検索結果が得られる。そして、各検索式には、スコアが付加される。なお、図４の検索式で取出対象となるのは、タイプが「Ｓｅｃｔｉｏｎ  」のノード３１のみであるため、取り出される検索結果は、タイプが「Ｓｅｃｔｉｏｎ  」の文書部品だけである。図１５ないし図１７に、図４の検索式３０による検索結果をスコアとともに示す。
【００６５】
図１５は、検索結果の第１の例を示す図である。この文書部品５０は、各ノード５１〜５４の関係と内容とが、図４の検索式３０の条件を全て満たしている。そのため、スコアは最大の値（＝１５００）となる。
【００６６】
図１６は、検索結果の第２の例を示す図である。この文書部品５０ａは、３つのノード５１，５２，５４に関する条件のみを満たしている。そのため、スコアは図１５の例よりも低くなり、スコア＝１０００である。
【００６７】
図１７は、検索結果の第３の例を示す図である。この文書部品５０ｂは、２つのノード５１，５２に関する条件のみを満たしている。そのため、スコアは図１６の例よりもさらに低くなり、スコア＝７００である。
【００６８】
このように取り出された検索結果は、スコアの順に表示装置の画面に表示される。
図１８は、第２の実施の形態による検索結果の表示例を示す図である。同図では、検索結果の表示画面４９ａの中に、検索結果として得られた文書が表示されている。これらの文書は、スコア、文書名、著者、作成日とともに表示されている。この画面は、スクロールバーを操作することにより、画面中に表示させる文書をスクロールさせ、スコアの小さい検索結果を順次画面表示させることができる。このとき、スコアの上限値が定められていれば、その上限値を超えた検索結果は表示されない。
【００６９】
なお、以上の２つの実施の形態以外に、次のような変形例も考えられる。
上記の実施の形態では、スコアやペナルティは固定の値としたが、データベースの状態により可変にしてもよい。以下に、データベースの状態によりこれらの値を変更する方法の例を示す。
【００７０】
例えば、テキストに関する条件の場合、データベース中に頻出する語句ほどスコアあるいはペナルティを下げる。また、タイプに関する条件の場合、データベース中に頻出する語句ほどスコアあるいはペナルティを下げる。
【００７１】
このように、語句の出現頻度に応じてペナルティ若しくはスコアを計算するには、ペナルティ計算手段１３（図２に示す）若しくはスコア計算手段４６（図１２に示す）が、テキストに関する条件が指定されると、テキストに関する条件の語句の頻出の度合いを求める手段と、その度合いに応じたペナルティ若しくはスコアを求める手段とを有していればよい。
【００７２】
また、必然的に親子関係あるいは祖孫関係が成立する場合、親子関係あるいは祖孫関係に関する条件に一致したときのスコアは０とする。この場合には、親子関係あるいは祖孫関係が必ず成立するため、ペナルティの値がいくらになっていても実質的には意味をなさない。親子関係あるいは祖孫関係が必然的に成立するかどうかは、文書型を見れば判定できる。あるタイプＴ１から、ＳＥＱまたはＲＥＰノードだけを辿って別のタイプＴ２に到達できるとき、Ｔ１が存在すればＴ２が必ず存在し（  逆も真）  、それらは親子関係にある。また、あるタイプＴ１から、ＳＥＱ、ＲＥＰ、またはタイプノードだけを辿って別のタイプＴ２に到達できるとき、Ｔ１が存在すればＴ２が必ず存在し（  逆も真）  、それらは祖孫関係にある。
【００７３】
【発明の効果】
以上説明したように第１の発明では、入力された検索式に基づいて、検索条件を段階的に緩やかにした条件緩和検索式を生成し、条件の緩やかな検索をも行うようにしたため、正しく論理構造が作成されていない文書も検索することができ、再現率が向上する。しかも、検索結果はもとの検索式に照らして確からしい順に出力されるので、利用者は確からしいものから順次検索結果を吟味することができる。
【００７４】
また、第２の発明では、入力された検索式の部分式により文書部品を取り出し、入力された検索式の条件を満たしている度合いが高いものから順に検索結果として出力するようにしたため、上記第１の発明と同様に、正しく論理構造が作成されていない文書も検索することができ、再現率が向上する。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】構造化文書検索装置の第１の実施の形態のブロック図である。
【図３】書き換え規則に割り当てられたペナルティの例を示す図である。
【図４】検索式の例を示す図である。
【図５】検索式の書き換え処理のフローチャートである。
【図６】書き換え後の検索式の第１の例を示す図である。
【図７】書き換え後の検索式の第２の例を示す図である。
【図８】書き換え後の検索式の第３の例を示す図である。
【図９】書き換え後の検索式の第４の例を示す図である。
【図１０】検索式全体をブーリアン検索へ書き換える手続きのフローチャートである。
【図１１】第１の実施の形態による検索結果の表示例を示す図である。
【図１２】構造化文書検索装置の第２の実施の形態のブロック図である。
【図１３】文書を評価する条件に割り当てられたスコアの例を示す図である。
【図１４】検索式を評価する手続きのフローチャートである。
【図１５】検索結果の第１の例を示す図である。
【図１６】検索結果の第２の例を示す図である。
【図１７】検索結果の第３の例を示す図である。
【図１８】第２の実施の形態による検索結果の表示例を示す図である。
【図１９】論理構造の例を示す図である。
【図２０】文書型の例を示す図である。
【符号の説明】
１  検索式
２  検索式生成手段
３  確度計算手段
４  条件緩和検索式
５  検索実行手段
６  文書保持手段
７  検索結果併合手段
【図１】
0003612914.tif 000002
【図２】
0003612914.tif 000003
【図３】
0003612914.tif 000004
【図４】
0003612914.tif 000005
【図５】
0003612914.tif 000006
【図６】
0003612914.tif 000007
【図７】
0003612914.tif 000008
【図８】
0003612914.tif 000009
【図９】
0003612914.tif 000010
【図１０】
0003612914.tif 000011
【図１１】
0003612914.tif 000012
【図１２】
0003612914.tif 000013
【図１３】
0003612914.tif 000014
【図１４】
0003612914.tif 000015
【図１５】
0003612914.tif 000016
【図１６】
0003612914.tif 000017
【図１７】
0003612914.tif 000018
【図１８】
0003612914.tif 000019
【図１９】
0003612914.tif 000020
【図２０】
0003612914.tif 000021