(57)【要約】【課題】  文書を文書データベース登録後に全文検索登録し、検索を行うと文書がヒットするまで大変長く待たされ、沢山の不要な文書がヒットすることがある。本発明では、沢山ヒットしてしまう場合に、検索結果を待たずに検索条件を絞り込んで再検索できる事を目的とする。【解決手段】  全文検索前に複数のキーワードを分解し、分解キーワードと同じ過去の検索キーワードからヒット数を求め、分解前のキーワードによるヒット数を予想する。  文書がヒットした場合は、キーワード及び検索論理条件とそれに対応するヒット数を保持するテーブルを更新する。またヒット数が多いと予想された場合にユーザに中断を判断させるか、自動で検索を中断する。【選択図】  図１
2005327023.tif 000002
【特許請求の範囲】
【請求項１】
文書の検索前にヒット数を予想し、検索を中断または続行できる事を特徴とする検索方式。
【請求項２】
請求項１でヒット数の予想は過去の検索ヒット数を基にする。
【請求項３】
請求項２で検索は全文検索であり、複数キーワードを複数または単数のキーワードに分解した後に、分解キーワードと同一の過去の検索ヒット数から、最終的なヒット数を予想する事を特徴とする検索方式。
【発明の詳細な説明】
【技術分野】
【０００１】
全文検索を行う際に検索キーワードによってヒット数を予想する方式の技術に関するものである。
【背景技術】
【０００２】
全文検索処理は文書中のテキストを調べて、キーワードがその中に存在するか否かを検索するために膨大な処理時間がかかる。検索時間の短縮のために通常は基本処理として文書中からテキストを抽出してそのテキストに対応する文書のID(認識)番号をテーブルとして作成しておく。しかしながら、このような全文検索技術を使ってもヒット文書数が多い場合には、処理時間が多くかかってしまう。
【特許文献１】特開平０９−０５４７７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
検索結果表示に時間が多くかかる場合には、ヒット数が多い為に得られたヒット文書が多すぎて役に立たない場合が多い。しかしながら検索は一旦処理を始めてしまうと、中断が難しいという問題があった。
【課題を解決するための手段】
【０００４】
本発明では、検索キーワードからヒット文書数を予想し、ヒット文書数が多いと予想される場合には、検索を続けるか、中断するかを、ユーザの指示または自動的に判断してから検索を続けることで無駄な検索を省き、時間の節約、操作性の向上を図ることが可能である。またヒット文書数の予想の為に過去の検索におけるキーワードとそれに対応するヒット文書数をテーブルに保持し、検索毎にテーブルを更新する手段を有する。
【発明の効果】
【０００５】
以上、説明したように全文検索を行う際に過去のキーワードに対するヒット数からヒット数を予想して全文検索処理の続行を中断する事が可能になったことにより、ヒット数が多い無駄な検索や検索結果の待ち時間をへらし、操作者が再度検索条件を入れ直す事が可能になった。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
【０００７】
（実施形態１）
図１は本発明の実施形態１の全文検索処理を含むアプリケーションソフトが動作する文書検索装置の全体構成を示す図である。
【０００８】
１はCPUであり、本実施形態の処理を実行する為の各種制御を行う。２はCD-ROMドライブ装置であり、外部からのデータの取りだしに用いる。３はプリンタであり、ディスプレイ装置９に表示される画像等のプリントを行う。４はハードディスクドライブ装置であり、主に主記憶装置として用いられ、本実施形態で実行する処理プログラムやアプリケーション等を記憶する。また、複数種類の文書(画像)データを記憶する。５はフロッピー（登録商標）ディスクドライブ装置であり、外部からのデータの取り込みや外部へのデータの取り出しに用いる。６は通信部であり、ネットワーク等との接続を可能にし、外部のコンピュータやネットワーク上のスキャナやプリンタやディスク装置との間でデータの授受が行える。７はキーボードであり、本実施形態で実行される処理の指示や、検索条件等の文字列の入力等、操作者の対話的入力を受け付ける。８はマウス等のポインティングデバイスであり、キーボード７と共に操作者の対話的入力を受け付ける。９はディスプレイ装置であり、文書画像を表示する為のメモリを搭載するディスプレイカードやモニタなどを含み、本実施形態の処理を実行するためのウィンドウや処理結果を表示する。
【実施例１】
【０００９】
実施形態１のアプリケーション動作中のウィンドウ表示画面について図２を用いて説明する。図２は本発明の実施形態１のアプリケーション動作中のウィンドウ表示画面を示す図である。尚、このウィンドウ表示画面はたとえばディスプレイ装置９のモニタ上に表示される。
【００１０】
18aはウィンドウ200をアイコン化して表示する最小化ボタンである。18bはウィンドウ200をモニタ前面に最大化して表示する最大化ボタンである。18cはウィンドウ200の表示を消去する「閉じるボタン」である。１２はウィンドウ200のタイトルを表示するタイトルバーである。１７は現在起動しているアプリケーション名と、表示しているイメージの文書名が表示される領域である。また、１３は各種の処理機能を表示するメニューであり、１４はメニュー１３に表示される処理機能と同様の処理機能をボタン化して表示したツールボタンである。このメニュー１３、あるいはツールボタン１４に表示される任意のボタンをポインティングデバイス８を使用して選択する事で、その選択した処理機能を実行させることが可能である。１１はツールバーであり、ある特定のモードでの動作の選択に使われる。２２は検索結果として表示される文書画像の枠の外部であるウィンドウ背景部を表示する領域である。１５は検索結果として表示されている文書画像である。
【００１１】
図２においてメニュー13の"ツール"メニューを選択すると、図３に示すようなプルダウンメニューが表示される。プルダウンメニューには、文書画像データに含まれる文字列の登録処理、全文検索を実行するための"登録処理"、"全文検索"メニューが含まれている。実施形態１での通常の登録処理は、入力した文書画像データを検索対象にするための操作データとえば、夜間やシステムのアイドル時に自動的に実行されるようになっている。
【００１２】
次に実施形態１で実行される文書画像データの登録処理について、図６を用いて説明する。
【００１３】
図６は本発明の実施形態１で実行される文書画像データの登録処理を示すフローチャートである。
【００１４】
全文検索の為の文書の登録処理について説明する。
【００１５】
ステップＳ１２で全文検索の為の登録の為の検索テーブルを指定する。これは、文書を管理する文書データベースに1対1に対応して検索テーブルを持つようにすると、管理が楽である。これにより文書データベース中に新たに追加された文書中のテキストは登録の為の検索テーブルに対して、登録処理が行われる。検索テーブルはたとえば図１４のようになっていて、テキストを分解して登録されている。たとえば"abc"という文字に対して、これが含まれる文書のＩＤが登録されている。したがって検索では実際のキーワードを分解して、分解したキーワードに対応するテーブルの文書ＩＤから、全分解キーワードで共通する文書ＩＤを特定して絞り込んで、最終的に絞り込まれた文書の内容から分解前のキーワードが本当に存在するかを確かめてヒット文書を確定する。
【００１６】
ステップ１３では処理対象の文書データのＩＤと文書中のテキストを関連付けして登録用の全文検索用テーブルに登録する。ステップ１４では処理対象の文書データの登録処理が全て終了したか否かを判定する。登録処理が全て終了している(ステップ14でyes)場合には処理を終了し、登録処理が終了していない(ステップ１４でno)場合にはステップＳ11にもどり、登録処理を繰り返す。
【００１７】
尚、文書画像データに変更があった場合にも同様に登録処理を行うが、その場合には、その変更前の文書画像データのIDを検索用テーブルから削除した上で登録処理を行う。
【００１８】
ところで文書画像中のテキストを抽出する技術としてＯＣＲ技術は一般的である。
【００１９】
次に図６で説明した登録処理によって登録された文書データに対して実行される全文検索処理について説明する。
【００２０】
全文検索を行う場合、図２に示したメニュー13の"ツール"メニューを選択する。これにより図３に示すようなプルダウンメニューが表示され、"全文検索"メニューを選択すると、図４に示すようなダイアログボックスが表示される。検索を実行する操作者は、編集ボックス３１に文字列を入力して、追加ボタン３３を押すとキーワードリスト３２に入力した文字列がキーワードリスト３２に入力した文字列がキーワードとして追加される。削除ボタン３４は、キーワードリスト３２の中の1つを選択して押す事により、選択されたキーワードを削除する事ができる。
【００２１】
３５、３６はＡＮＤ、ＯＲ論理を指定するチェックボタンであり、キーワードリスト３２中のキーワード全てを含む文書データを検索する場合にはＡＮＤのチェックボタン35にチェックを付け、複数のキーワードのうちいずれか１つ以上を含む文書データを検索する場合にはＯＲチェックボタン３６にチェックを付ける。キャンセルボタン３７はキーワードリスト３２中にキーワードが1つ以上列挙されている場合にイネーブルとなり、この検索ボタン３７を押すと、キーワードリスト３２中のキーワードを検索条件とした検索が実行される。
【００２２】
検索ボタンが押され、ヒットした文書がある場合に、図５で示すヒットリストウィンドウが表示される。図５は本発明の実施形態１のヒットリストウィンドウを説明するための図である。
【００２３】
図５に示すように検索された文書画像データ数を示すヒット数としてＩＤリスト中のＩＤの数が表示ボックス４５内に表示される。４６はヒット文書リスト表示部であり、検索された文書画像データのサイズ、ページ数、作成日、更新日等がＩＤリストを基に調べられ表示される。閉じるボタン４８はヒットリストウィンドウを閉じるときに押すボタンである。検索ボタン４９はメニュー１３の"ツール"メニューのプルダウンメニューの"全文検索"メニューと同じ働きをする。開くボタン４７はヒット文書リスト表示部４６でフォーカスが当たっている文書画像データを図２のドキュメント表示部２３に表示させるためのものである。後述するテキスト表示部５０は簡易的なものであるが、開くボタン４７では文書中のフォントサイズ、種類、レイアウト等を忠実に再現する。
【００２４】
またテキスト表示部５０には、ヒット文書リスト表示部４６でフォーカスが当たっている文書画像データ中のテキスト部分が抽出されて表示され、検索に用いられたキーワードが斜線枠５３で示すように強調表示される。次ヒットボタン５１前ヒットボタン５２を押すことにより、斜線枠５３にカーソルが当てられ、そのカーソルの位置が前後に存在する斜線枠５３に移動して、テキスト部分の表示領域がスクロールされる。
【００２５】
尚、文書データは、画像データではなくアプリケーションで作成されたテキストデータ等であっても、本発明になんら影響はない。また画像データの場合では、文書画像データからＯＣＲ(文字認識)されて得られたテキスト部分が表示される。
【００２６】
以上が本発明の全体的な構成と動作であるが、以下に本発明に特有な部分の詳細を説明する。
【００２７】
図４に示す検索ボタン３７がマウスポインタを使ってクリックされると図７に示す検索処理が行われる。ステップ１０１で検索ボタンが押された事を認識するとステップ１０２で文書に対応した登録する全文検索のテーブル(データベース)を選択し、ステップ１０３でキーワードからヒット予想数を計算し取得する。ステップ１０４ではヒット予想数からヒット文書があまりにも多いと判断された場合は操作者に注意のメッセージを表示して、検索を中断します。または操作者に予想されるヒット数を表示して検索を続けるか、中断するかを尋ね、その応答に応じて検索を続けるか、中断するかを決定します。ある一定の予想ヒット数以上の場合は自動で判断して、それ以下のヒット予想数の場合は操作者の判断に頼るという半自動でもかまいません。検索を中断した場合には操作者は、検索結果を待たずに新たな検索条件を追加して、絞り込んだ検索が可能になります。メッセージの表示はディスプレイ装置９のモニタ上に表示され、操作者はマウス８で、続行か中断を選ぶことができます。検索続行の場合はステップ１０５で、選択した全文検索データベースから実際の検索処理を行う。これは検索の際に設定されたキーワードを分解した文字から、対応する文書のＩＤを求めて、全ての分解文字に対応するＩＤの共通ＩＤを残す処理をする。但し、得られた共通ＩＤの文書ではキーワードとして連続した文字列が含まれている保証がないのでステップ１０６で本当に文書中にキーワードが含まれているかを調べて、キーワードが含まれている文書に対応するＩＤのみを確定し、ステップ１０７で図５に示すヒットリストダイアログ(ヒットリストウィンドウ)にヒットした文書を最終的に確定したＩＤから特定して列挙する。ステップ１０８では検索に使ったキーワードとそれによるヒット数を図９に示すヒット数テーブルに書き込む。このテーブルは全文検索テーブル毎に対に存在する。キーワードが１つの場合には、そのままのヒット数が保存される。キーワードがテーブルに無いばあいには、当然テーブルに新規に追加される。またＡＮＤ条件やＯＲ条件で検索した場合には、"キーワード1＆キーワード２"というように条件も一緒に書き込まれる。但し登録する際には"キーワード２＆キーワード１"というような同一条件を区別しないように、キーワードの並び順の全ての組み合わせを変えて一致したものがあれば、テーブル内のヒット数を更新し、全ての組み合わせと一致したものが無かった場合にのみ新規にテーブル内に追加する。
【００２８】
図８はヒット予想数取得処理の詳細を説明する図です。ステップ２０１では操作者が全文検索の為に入れたキーワードをＡＮＤやＯＲの演算子を境目にして分解します。そしてステップ２０２で分解して得られたキーワードに対するヒット数を図９のヒット数テーブルから取得します。ステップ２０３では全ての分解キーワードに対してヒット数の取得処理が終わったか検査し、終わっていなければステップ２０１に戻り、終わっていればステップ２０４に進みます。ステップ２０４では操作者が図4でＡＮＤ３５にチェックしたかＯＲ３６にチェックしたかを調べて、ANDの場合は全部の分解キーワードのヒット数のうち最小値を最終的なヒット数と予想します。それは、分解されたキーワードのどのヒット数よりもＡＮＤではヒット数が少なくなるからです。もし、ヒット数テーブルに分解したキーワードがない場合は、その分解キーワードは無視してかまいません。ＯＲ検索だった場合は各分解キーワードの合計値を計算し、それをヒット数の予想値とします。実際にはＯＲ検索なので、この合計値よりは少なく、各分解キーワードのヒット数の最大値よりは多い値が実際のヒット数なので、最大値を予想値としてもかまいません。ＯＲ検索の場合もヒット数テーブルに分解したキーワードがない場合は、その分解キーワードは無視します。以上の例ではキーワードをＡＮＤやＯＲで分解するので、図９のヒット数テーブルの内、ＡＮＤやＯＲ条件の入っていない行だけが使用される。
【実施例２】
【００２９】
図１０、図１１及び図１２、図１３はヒット予想数取得処理の別の実施形を説明する図である。
【００３０】
1文字または複数文字数のキーワードを分かり易くする為に仮にＡ，Ｂ，Ｃ，Ｄとする。
【００３１】
図１０に示すようにキーワードＡ，Ｂ，Ｃ，Ｄがキーワードリスト３２にセットされＡＮＤ３５がチェックされて検索が行われたとしよう。その場合に図１１に示すように検索条件を分解する。カンマはＡＮＤを示します。実施例１とは異なりＡＮＤ条件つきの分解キーワードが得られます。これらもステップ２０２において図９のヒット数テーブルからヒット数を得ることができます。ただし、（Ａ，Ｂ）のような分解キーワードでは（Ｂ，Ａ）というように全てのキーワードの組み合わせでテーブルを引きます。もし、すべての組み合わせでもテーブル内に該当する分解キーワードが無い場合には無視します。これは実施例１と基本的に同じです。そして、図１１すべての分解キーワード例についてのヒット数が求められたあとに、ステップ２０４では最小値をヒット数予想値とします。実施例１と比較すると、より小さい値で且つ実際のヒット数に近い予想値が得られます。もし（Ａ，Ｂ，Ｃ，Ｄ）の組み合わせが図９のヒットテーブルに存在する場合はそれが最小値となりますので、ステップ２０３において、ステップ２０４に進んでもかまいません。
【００３２】
またプログラムで実現する上で図１１で示す分解キーワードで（Ａ，Ｃ）と（Ｃ，Ａ）が重複して求められてもかまいません。それは図９ヒット数テーブルを引く時に全組み合わせを確かめるので、結局同じテーブル値を引き、最小値に影響を与えないからです。
【００３３】
図１２に示すようにキーワードＡ，Ｂ，Ｃ，Ｄがキーワードリスト３２にセットされＯＲ３６がチェックされて検索が行われたとしよう。その場合に図１３に示すように検索条件を分解する。カンマはＯＲを示します。ＡＮＤ検索と違うのは分解された検索キーワードは組み合わせると全キーワードを構成するように組になっていることです。そして各組み合わせにおけるヒット数の合計値を求めます。ヒット数がヒット数テーブルに無い場合は、その組み合わせは無視します。図１３の１８組それぞれの合計値から最小値を求めれば、それがステップ２０４のヒット予想数になります。この場合は予想数よりも少ない数が実際のヒット数になります。もし、ヒット数がヒット数テーブルに無く、１８組の内一つも合計値が求められない場合は、組み番号１８で、求められたヒット数だけを合計して代用します。実施例１でも同じですが、予想ヒット数がステップ２０４で得られなかった場合にはステップ１０４の処理は必ずステップ１０５に進むように制御されます。
【００３４】
また、別の方法として各組みの中でヒット数の最大値をとるようにして、各組みで求められた全ての最大値の中からさらに最大値を求めてステップ２０４のヒット予想数としてもよい。この場合は、ヒット予想数より多い文書がヒットすると考えてよい。また、ヒット数が求められない組み合わせでは、それを無視しても実用上問題は生じない範囲である。
【００３５】
上述の２つのヒット予想数から「ヒット数はＮからＭの間と予想されます。」とステップ１０４で操作者に知らせても構わないことはいうまでもない。
【００３６】
また、図１３では組み合わせ番号６と１１では同じ内容を意味しますが、結果には影響しないので、組み合わせを作る場合に重複が生じても影響はない。
【実施例３】
【００３７】
ところで全文検索データベースの登録内容が大きく変わった場合には、図９のヒット数テーブルを全て破棄して、次の検索から新たに作られるようにしてもかまわない事は容易に想像できる。また図９のヒット数テーブルの内容が少ない場合は、検索を繰り返して、テーブル内容が充実するまでステップ１０３、１０４をスキップしたり、ステップ２０２でテーブル内容まだ少ししか書かれていなくて、テーブルが引ける率が低い検索条件の場合(滅多に使わないキーワードではヒット数テーブルが充実していても、このような状況になる。)にも、ステップ１０３、１０４をスキップしても良い。
【実施例４】
【００３８】
前述までの実施例では複数キーワードについての検索論理が、すべてＡＮＤか全てＯＲであったが、複合した場合にも応用できる事は想像できる。
もっとも簡単な応用例としては
（Ｐ＆Ｑ）｜（Ｒ＆Ｓ）｜（Ｔ＆Ｕ）但し、＆：ＡＮＤ   ｜：ＯＲ
というような条件式では、括弧内は単なるＡＮＤとして実施例１、２の予想値を計算すれば、（例えば各括弧内は予想値の最小値を求める。）
Ａ｜Ｂ｜Ｃ
というような条件に置き換えられる事が可能なので、やはり実施例１、２と同じ方式で最終的な予想値が求められる。（例えば３つの予想値の最大値を使用する等。）
尚、本発明は複数の機器(例えばホストコンピュータ、インターフェイス機器、スキャナ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【００３９】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。
【００４０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４１】
プログラムコードを供給する為の記憶媒体としては、たとえば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【００４２】
またコンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００４３】
さらに、記憶媒体から読み出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態１の全文検索の処理を含むアプリケーションソフトが動作する画像検索装置の全体構成を示す図である。
【図２】本発明の実施形態１のアプリケーション動作中のウィンドウ表示画面を示す図である。
【図３】本発明の実施形態１のプルダウンメニューの一例を示す図である。
【図４】本発明の実施形態1の検索を行う為のダイアログボックスを示す図である。
【図５】本発明の実施形態１のヒットリストウィンドウを説明するための図である。
【図６】本発明の実施形態１で実行される文書画像データの登録処理を示すフローチャートである。
【図７】本発明の実施形態１における検索処理を説明する図。
【図８】本発明の実施形態１のヒット予想数取得処理。
【図９】本発明の実施形態１のヒット数テーブル。
【図１０】本発明の実施形態２のキーワードと検索条件の例。
【図１１】本発明の実施形態２の分解キーワード例。
【図１２】本発明の実施形態２のキーワードと検索条件の例。
【図１３】本発明の実施形態２の分解キーワード例。
【図１４】全文検索用テーブル。
【符号の説明】
【００４５】
１  ＣＰＵ
２  ＣＤ−ＲＯＭドライブ
３  プリンタ
４  ＨＤＤ
５  ＦＤＤ
６  通信部
７  キーボード
８  マウス
９  ディスプレイ装置
【図１】
2005327023.tif 000003
【図２】
2005327023.tif 000004
【図３】
2005327023.tif 000005
【図４】
2005327023.tif 000006
【図５】
2005327023.tif 000007
【図６】
2005327023.tif 000008
【図７】
2005327023.tif 000009
【図８】
2005327023.tif 000010
【図９】
2005327023.tif 000011
【図１０】
2005327023.tif 000012
【図１１】
2005327023.tif 000013
【図１２】
2005327023.tif 000014
【図１３】
2005327023.tif 000015
【図１４】
2005327023.tif 000016