(57)【特許請求の範囲】
【請求項１】
文字列の各文字をそれぞれ文字認識することによって得られる第１の文字要素を含む第１の文字要素列から、指定された第２の文字要素を含む第２の文字要素列を検索する検索装置であって、
前記第２の文字要素との類似度に関連する距離が予め設定されている第３の文字要素が格納された記憶手段から該第３の文字要素を選択するようになっており、該第３の文字要素は、前記指定された第２の文字要素列の文字要素との前記距離が、前記第１の文字要素を文字認識するときの信頼度に基づいて予め設定された前記距離の許容値である基準距離に対して、所定の範囲であることによって選択される、選択手段と、
該選択手段によって選択された第３の文字要素が前記第１の文字要素に一致する場合に、該第１の文字要素が前記第２の文字要素に一致するものと判定する判定手段と、
を備えている、検索装置。
【請求項２】
請求項１に記載の検索装置による検索方法であって、
前記選択手段によって、前記距離と前記基準距離とに基づいて前記第３の文字要素を選択する選択ステップと、
前記判定手段によって、前記選択ステップにおいて選択された前記第３の文字要素が前記第１の文字要素に一致する場合に、該第１の文字要素が前記第２の文字要素に一致するものと判定する判定ステップと
を包含する検索方法。
【請求項３】
前記基準距離は、ユーザからの入力に基づいて決定される、請求項２に記載の検索方法。
【請求項４】
前記判定ステップの後に、前記基準距離を新たな基準距離に変更する変更ステップを包含し、
該変更ステップの後に、前記選択ステップと前記判定ステップとをさらに実施する、請求項２に記載の検索方法。
【請求項５】
前記記憶手段には、前記第２の文字要素との類似度に関連する複数の距離が予め設定されている第３の文字要素が格納されており、前記選択ステップにおいて、該第３の文字要素の前記距離の１つが選択される、請求項２に記載の検索方法。
【請求項６】
前記第３の文字要素の前記距離の１つが、ユーザからの入力に基づいて選択される、請求項５に記載の検索方法。
【請求項７】
前記距離は、確率的な分布を有するように設定される、請求項２に記載の検索方法。
【請求項８】
請求項２に記載された検索方法の各ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、オリジナル文書を文字認識することによって得られる文書データから検索キーワードに一致する文字列を検索する検索方法、検索装置および記録媒体に関する。
【０００２】
（背景技術）
従来、文書を文字認識することによって得られる文書データから指定された文字列に基づいて関連したデータを検索する技術として、特開平７−１５２７７４号公報「文書検索方法および装置」に開示されている技術が知られている。
【０００３】
図２３は、オリジナル文書とそれを文字認識することによって得られる文字認識結果との関係を示す。通常、文字認識を行うと、紙面に印字された文字のかすれや傾き、字体、文字サイズなどの影響により認識誤りが生じ得る。
【０００４】
図２３に示される例では、オリジナル文書における「本」という文字が「木」という文字に誤って認識されている。また、オリジナル文書における「口」という文字が「区」という文字に誤認識されている。
【０００５】
以下、上記公報に記載の技術に基づき、図２３に示される認識結果から文字列「日本」を検索する検索処理を説明する。
【０００６】
この検索処理には、（表１）に示されるような誤認識文字を示す表が使用される。誤認識文字を示す表は、あらかじめ、文字認識によって間違われやすい文字を並べた表である。（表１）は、「本」という文字が「木、大、太、才」に誤って認識されやすく、「口」という文字が「□（記号の四角形）、回、円、々」に誤って認識されやすいということを示している。
【０００７】
【表１】
0003599180.tif 000002
図２３に示される認識結果から文字列「日本」を検索する場合には、誤認識文字を示す表（表１）を用いて、文字列「日本」から文字列「日木」、「日大」、「日太」、「日才」が生成される。指定された文字列「日本」に加えて、これらの文字列「日木」、「日大」、「日太」、「日才」についても検索処理が実行される。これにより、「日本」が誤認識された「日木」の部分を検索することができるようになる。
【０００８】
しかしながら、上記公報に記載の検索処理では、誤認識しやすい文字のリストを予め用意しておくために、誤りの少ない文書データを検索する場合には、余分な文字候補を用いた余分な検索処理が行われ、逆に、誤りの多い文書データを検索する場合には、予め用意された誤認識しやすい文字のリストに含まれる文字以外の誤認識には対応できない場合が発生するという課題を有していた。
【０００９】
例えば、図２３に示される例において、認識結果から文字列「人口」を検索する場合には、誤認識文字を示す表（表１）を用いて文字列「人□（記号の四角形）」、「人回」、「人円」、「人々」が生成され、これらの文字列のそれぞれについても検索処理が実行される。しかし、誤認識文字を示す表（表１）に存在しない誤り（「口」を「区」に間違う）が発生した場合には、「人区」（本来は「人口」）を検索することは不可能であった。
【００１０】
また、レイアウトを有する一般の文書を文字認識することによって得られる文書データから文字列を検索する場合、文字認識時のレイアウトの認識誤り（例えば、縦書き、横書きの認識誤り、改行後の次行への接続の認識誤り、段落から段落への接続の認識誤りなど）が起こり得るが、上記公報に記載の検索処理では、レイアウトの認識誤りに対しては対応できないという課題を有していた。
【００１１】
例えば、図２４に示されるレイアウトを有するオリジナル文書を文字認識する場合を考える。図２４において段落の正しい順番は、右上の段落、左上の段落、右下の段落、左下の段落である。しかしながら、文字認識の過程において、段落の順番が誤認識されることにより、右上の段落の次に右下の段落が接続されると誤って認識される場合が起こり得る。
【００１２】
ここで、認識結果から文字列「日本の人口」を検索する場合には、誤認識文字を示す表などを用いて個々の文字について望ましい検索が可能である。しかし、段落の接続関係の認識が誤っている場合には、図２５に示されるように「・・・日本のする傾向・・・」という認識結果として扱われるため、「日本の人口」という文字列を検索することはできない。
【００１３】
本発明は、上記課題に鑑みてなされたものであり、以下の（１）、（２）を目的とする。
【００１４】
（１）認識結果に応じて許容可能な誤り度合を動的に変更しながら検索を行うことを可能にする検索方法、検索装置および記録媒体を提供する。
【００１５】
（２）文書のレイアウトを誤って認識した場合でも、認識結果から文字列を正しく検索することを可能にする検索方法、検索装置および記録媒体を提供する。
【００１６】
（発明の開示）
本発明の検索装置は、文字列の各文字をそれぞれ文字認識することによって得られる第１の文字要素を含む第１の文字要素列から、指定された第２の文字要素を含む第２の文字要素列を検索する検索装置であって、前記第２の文字要素との類似度に関連する距離が予め設定されている第３の文字要素が格納された記憶手段から該第３の文字要素を選択するようになっており、該第３の文字要素は、前記指定された第２の文字要素列の文字要素との前記距離が、前記第１の文字要素を文字認識するときの信頼度に基づいて予め設定された前記距離の許容値である基準距離に対して、所定の範囲であることによって選択される、選択手段と、該選択手段によって選択された第３の文字要素が前記第１の文字要素に一致する場合に、該第１の文字要素が前記第２の文字要素に一致するものと判定する判定手段と、を備えている。
また、本発明の検索方法は、前記検索装置による検索方法であって、前記選択手段によって、前記距離と前記基準距離とに基づいて前記第３の文字要素を選択する選択ステップと、前記判定手段によって、前記選択ステップにおいて選択された前記第３の文字要素が前記第１の文字要素に一致する場合に、該第１の文字要素が前記第２の文字要素に一致するものと判定する判定ステップとを包含する。
前記基準距離は、ユーザからの入力に基づいて決定されてもよい。
前記判定ステップの後に、前記基準距離を新たな基準距離に変更する変更ステップを包含し、該変更ステップの後に、前記選択ステップと前記判定ステップとをさらに実施するようにしてもよい。
前記記憶手段には、前記第２の文字要素との類似度に関連する複数の距離が予め設定されている第３の文字要素が格納されており、前記選択ステップにおいて、該第３の文字要素の前記距離の１つが選択されるようにしてもよい。
前記第３の文字要素の前記距離の１つが、ユーザからの入力に基づいて選択されるようにしてもよい。
前記距離は、確率的な分布を有するように設定されるようにしてもよい。
本発明のコンピュータ読み取り可能な記録媒体は、前記検索方法の各ステップをコンピュータに実行させるためのプログラムを記録したものである。
【００３７】
（発明を実施するための最良の形態）
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００３８】
図１は、本発明の実施の形態１〜実施の形態１４に共通の検索装置１の構成を示す。
【００３９】
検索装置１は、端末１００と、登録処理および検索処理を実行するＣＰＵ１１０と、文書を画像データとして入力する画像入力機器１２０と、その画像データを格納するメモリ１３０と、その画像データを文字認識することによって得られる文書データ（認識結果）を格納するメモリ１４０と、文字要素間の距離テーブルを格納するメモリ１５０と、文字認識用のパターン辞書１６０と、文書登録プログラム、文字認識プログラム、文書検索プログラムを格納するメモリ１７０と、ワークメモリ１８０とを含む。
【００４０】
検索装置１の各構成要素は、内部バスを介して相互に接続されてもよいし、ネットワークを介して相互に接続されてもよい。
【００４１】
はじめに、登録処理の流れを説明する。
【００４２】
ユーザが端末１００から登録処理の開始を指示すると、メモリ１７０上の文書登録プログラムが起動され、ワークメモリ１８０にロードされる。ＣＰＵ１１０は、文書登録プログラムを実行する。その結果、画像入力機器１２０によって文書が画像データとして読み取られ、その画像データがメモリ１３０に格納される。画像入力機器１２０は、例えば、スキャナ、デジタルカメラ、ビデオカメラである。
【００４３】
文書登録プログラムからメモリ１７０上の文字認識プログラムが起動され、ワークメモリ１８０にロードされる。ＣＰＵ１１０は、文字認識プログラムを実行する。その結果、メモリ１３０に格納された画像データが読み出され、その画像データに含まれる文字情報を文字コード列に変換することによって文書データ（認識結果）が得られる。文書データ（認識結果）は、メモリ１４０に格納される。画像データに含まれる文字情報を文字コード列に変換する際に文字認識用のパターン辞書１６０が参照される。
【００４４】
文字認識プログラムのアルゴリズムとしては、任意のアルゴリズムが採用され得る。例えば、文字認識プログラムのアルゴリズムとして、１文字単位に画像データを切り出し、その切り出された１文字単位の画像データを文字コードに変換していくというアルゴリズムを採用してもよい。
【００４５】
次に、検索処理の流れを説明する。
【００４６】
ユーザが端末１００から検索キーワードを入力し、検索処理の開始を指示すると、メモリ１７０上の文書検索プログラムが起動され、ワークメモリ１８０にロードされる。ＣＰＵ１１０は、文書検索プログラムを実行する。その結果、メモリ１５０に格納されている距離テーブルを用いて、メモリ１４０に格納されている文書データ（認識結果）中に検索キーワードに対応する文字要素列が存在するか否かが判定される。その検索結果は、端末１００に表示される。その検索結果とともに、その検索結果に対応する画像データを端末１００に表示するようにしてもよい。
【００４７】
（実施の形態１）
図２は、メモリ１５０に格納される文字要素間の距離テーブルの一例を示す。文字要素間の距離テーブルは、文字要素間の近い・遠いの関係を数値で表現したものである。
【００４８】
ここで、本明細書において「文字要素」とは、１以上の文字、または、１以上の文字片、または、１以上の文字および１以上の文字片の組み合わせをいうと定義する。
【００４９】
例えば、「亜」は１つの文字からなる文字要素の例であり、「００」は２つの文字からなる文字要素の例である。
【００５０】
文字片とは、文字の一部をいう。例えば、漢字の「へん」や「つくり」が文字片に相当する。例えば、図３Ａは、１つの文字片からなる文字要素の例を示し、図３Ｂは、１つの文字および１つの文字片からなる文字要素の例を示す。
【００５１】
なお、文字には「）」や「◎」のような記号も含まれるものとする。
【００５２】
図２に示される距離テーブルには、文字要素と他の文字要素との間の距離が予め設定されている。この距離は、文字要素間の類似度に関連する。距離が大きいほど類似度は小さく、距離が小さいほど類似度は大きい。従って、文字要素間の類似度と文字要素間の距離とは逆数の関係にある。
【００５３】
図２に示される例では、文字要素「亜」と文字要素「唖」との距離は１０に設定されており、文字要素「亜」と文字要素「００」との距離は１７２に設定されている。このことは、文字要素「亜」が文字要素「００」よりも文字要素「唖」に類似していることを示している。他の文字要素間にも、同様にして距離が予め設定されている。
【００５４】
距離としては、文字要素間の類似度に関連する任意の値を使用することが可能である。例えば、距離として、特定の文字認識システムの入出力関係、各文字要素の形状を特徴量数値で表現した場合の特徴量空間内でのユークリッド距離などを用いることができる。
【００５５】
なお、文字要素間の距離は、必ずしも、図２に示されるような格子状の表の形式で表現されている必要はない。文字要素間の距離は、その距離が文字要素間の類似度に関連するように予め設定されている限り、任意の形式で表現され得る。例えば、距離テーブルは、文字要素ごとに他の文字要素を距離の近い順番に保持するようにしてもよく、その順番そのものを距離として扱うようにしてもよい。
【００５６】
以下、文字要素間の距離テーブルを用いた検索方法を説明する。
【００５７】
図４は、オリジナル文書とそのオリジナル文書を文字認識することによって得られる認識結果との関係を示す。図４に示される例では、「・・・日本の人口構成は・・・」というオリジナル文書を文字認識することによって「・・・日木の人区構成は・・・」という認識結果が得られている。この認識結果は、文書データとしてメモリ１４０に格納される。メモリ１４０は、任意のタイプの記憶媒体であり得る。
【００５８】
通常、文字認識技術を用いて文字認識を行う場合には、様々な要因で文字認識の誤りが生じ得る。図４に示される例では、「本」という文字が誤って「木」という文字に認識されており、「口」という文字が誤って「区」という文字に認識されている。
【００５９】
ここで、「日本」という文字要素列を検索キーワードとして指定して、図４に示される認識結果の中から検索キーワードに対応する文字要素列を検索する検索処理を説明する。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【００６０】
まず、指定された文字要素列「日本」のうち文字要素「日」について文字要素間の距離テーブルが参照される。次に、文字要素「日」との距離が所定の基準距離（例えば、１５０）よりも小さい文字要素（例えば、文字要素「日」については文字要素「日」と文字要素「目」）が図４に示される認識結果の中から検索される。この場合、認識結果の中の「日」という文字要素が検索結果として検出される。
【００６１】
次に、指定された文字要素列「日本」のうち次の文字要素「本」について文字要素間の距離テーブルが参照される。次に、文字要素「本」との距離が所定の基準距離（例えば、１５０）よりも小さい文字要素（例えば、文字要素「本」については文字要素「本」と文字要素「木」と文字要素「大」）が文字要素「日」が検出された位置の次の位置の文字要素「木」に一致するか否かが判定される。この場合、文字要素「木」が、文字要素「日」が検出された位置の次の位置の文字要素に一致することから、指定された文字要素列「日本」に対して図４に示される認識結果中の文字要素列「日木」を検出することができる。
【００６２】
このように、本来「日本」という文字列が誤って「日木」と認識された場合でも、本来の文字列の位置を検索することが可能となる。
【００６３】
実際には、指定された文字要素列が検出された場合には、検出された文字要素列のみならず、検出された文字要素列を含む前後の文書の認識結果も合わせて検索者に提示したり、文字認識を行ったオリジナルの文書を画像イメージとして別途文書データに保持しておき、対応する画像イメージを検索者に提示することが好ましい。これにより、文字認識の結果が一部誤っていた場合でも、人間が再度判断することで、検索者が必要とする情報を得ることが可能となる。
【００６４】
また、指定された文字要素列が検出された場合には、前後の文書の提示以外に文書のタイトルや要約を表示してもよい。この場合、少ない表示スペースで検索結果を把握することが可能となる。また、表示以外に音声を用いて前後の文章やタイトル、要約を出力することで、表示領域の少ない端末にも対応することができる。また、検索結果は通信路（ネットワーク）を経由して出力してもよい。また、帯域が狭い通信路を経由する場合には、検索結果の画像イメージを最初から表示するのではなく、前後の文書の認識結果やタイトル・要約のみを最初に表示し、検索者が別途指示することで情報量の多い画像イメージの表示を行うことで、検索時間や閲覧時間を節約することが可能となる。
【００６５】
更に、指定された文字要素列が検出された場合には、検出された情報を提示するのではなく、機器に新たな命令（コマンド）を発行するようにしてもよい。例えば、カメラなどからリアルタイムに得られる画像に対して検索を行い、特定の文字要素列（例えば「レストラン」）を検出した場合に撮像を行う機器に対して映像をメモリに記録するコマンドを発行するようにしてもよい。これにより、レストランの映像を自動的に集めることが可能となる。
【００６６】
特定の文字要素列が検索された場合には、その特定の文字要素列を含む画像をプリンタに印刷するコマンドをそのプリンタに発行したり、その特定の文字要素列を含む画像の情報を通信網（ネットワーク）を通して複数の宛名に配信したりしてもよい。
【００６７】
なお、文字要素間の距離と比較される基準距離は１５０という値に限定されない。基準距離は、任意の値に設定され得る。また、基準距離は、必ずしも固定である必要はなく、可変であってもよい。基準距離は、ユーザからの入力に基づいて決定されてもよく、ＣＰＵ１１０によって実行される演算結果に基づいて決定されてもよい。
【００６８】
例えば、基準距離を最初に小さい値に設定して検索を行った結果、認識結果の中から検索キーワードに対応する文字要素列を検出することができない場合には、基準距離を順次大きな値に再設定して検索を行うようにしてもよい。これは、最初は文字認識の誤りをあまり許容しない状態で検索を行い、順次文字認識の誤りを許容して検索することに相当する。これにより、最初から文字認識の誤りを大きく許容することによって、検索キーワードに関係の無い余分な文字要素列が検出されることを未然に防ぐことが可能となる。
【００６９】
また、オリジナル文書を文字認識することによって得られる文書データ（認識結果）とともに、文字認識の信頼度（又は尤度、確度、確からしさなど）を検索パラメータとして保持しておくことにより、検索パラメータに応じて検索に用いる距離の基準値（基準距離）を適切な値に設定するようにしてもよい。検索パラメータは、例えば、メモリ１４０に格納される。
【００７０】
図５は、文書データ（認識結果）に含まれる各文字要素に対して文字認識の信頼度が検索パラメータとして予め設定されている例を示す。ここで、信頼度は、０から１までの値によって表される。信頼度の値が大きいほど認識結果が確からしいことを示す。
【００７１】
以下、「人口構成」という文字要素列を検索キーワードとして指定して、図５に示される認識結果の中から検索キーワードに対応する文字要素列を検索する検索処理を説明する。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【００７２】
図６は、「人」・「口」・「構」・「成」の各文字要素と他の文字要素との距離関係の一部を示す。
【００７３】
図５に示されるように、認識結果中の文字要素「人」・「成」には信頼度０．９が予め設定されている。このように高い信頼度が予め設定されている文字要素に対しては、文字要素間の距離と比較される基準距離は低く設定される。例えば、図５に示される例では、信頼度０．９の文字要素に対しては、基準距離は１０に設定されている。認識結果中の文字要素「区」には信頼度０．４が予め設定されている。このように低い信頼度が予め設定されている文字要素に対しては、文字要素間の距離と比較される基準距離は高く設定される。例えば、図５に示される例では、信頼度０．４の文字要素に対しては、基準距離は６０に設定されている。
【００７４】
このように、文字認識の信頼度に基づいて基準距離を可変に設定することにより、検索の精度を向上させることができる。例えば、認識結果の中で誤認識されている文字要素「区」の信頼度は低いため、基準距離が高く設定される。これにより、文字要素「区」との距離が５０である文字要素「口」が検索対象となる。その結果、「人口構成」という文字要素列を指定して、誤認識文字を含む「人区構成」という文字要素列を検索することが可能となる。
【００７５】
このように、文字認識の信頼度の低い文字要素または文書については、文字要素間の距離テーブルにおいて検索時に許容される文字要素間の距離（基準距離）が大き目に設定され、逆に文字認識の信頼度が高い文字要素または文書については、文字要素間の距離テーブルにおいて検索時に許容される文字要素間の距離（基準距離）が小さ目に設定される。これにより、検索キーワードに関係の無い余分な文字列要素の検出を抑えることが可能となる。
【００７６】
なお、信頼度の値と文字要素間の距離テーブルにおいて許容される距離（基準距離）との対応関係は予め設定される。
【００７７】
さらに、文字認識の信頼度が特に低い場合には、すべての文字要素の可能性を考慮するように検索手法を切り替えるようにしてもよい。
【００７８】
検索パラメータ（信頼度）は、文書毎や文字要素毎に付与されてもよい。また、文字認識の信頼度としては、文字認識を行うシステム（例えば、ニューラルネットワーク）の出力や認識候補の数などを用いることが可能である。
【００７９】
ここでは、検索キーワードとして指定された文字要素列を構成する文字要素の先頭「日」から順番に１文字ずつ検索する例を説明したが、これと異なる順番で１文字ずつ検索するようにしてもよい。特に一般的な文書中に出現する頻度を考慮して、検索キーワードとして指定された文字要素列を構成する文字要素のうち、一般的に文書中に出現する頻度の低い文字要素から検索することにより、余分な検索手続きを減らすことが可能となり、検索速度を速めることが可能となる。
【００８０】
なお、上述した例では、認識結果の文書データを記憶媒体（メモリや磁気ディスク、光ディスクなど）に予め格納しておくことを想定したが、画像入力機器（スキャナ、デジタルカメラ、ビデオカメラなど）から入力した画像データを逐次文字認識して得られるリアルタイムの情報について同様の検索を行ってもよい。
【００８１】
このように、文字要素間の距離テーブルを用いて文字要素列の検索を行うことにより、指定された文字要素列が誤認識で他の文字要素列に置き換わっている場合でも、指定された文字要素列に対応する文字要素列を文書データの中から検索することが可能となる。
【００８２】
また、距離テーブルを用いることにより、複雑な距離計算などを行う必要もなく高速な検索が可能となる。
【００８３】
また、距離テーブルを用いることにより、誤認識の許容度合いを適切な値に設定することが可能となり、効率のよい検索が可能となる。
【００８４】
さらに、検索パラメータ（例えば、文字認識の信頼度）を文書データに付与しておくことにより、文書データや文字列要素に合わせた検索のための基準の選択や検索手法の切り替えが可能となり、検索の精度を向上させることが可能となる。
【００８５】
（実施の形態２）
実施の形態２では、複数の距離テーブルが用意される。これは、文字要素と文字要素との間に、文字要素と文字要素との類似度に関連する複数の距離が予め設定されていることを意味する。その複数の距離テーブルのうちの１つが選択され、その選択された距離テーブルが文字要素列を検索するために使用される。これは、文字要素間に予め設定されている複数の距離のうちの１つを選択し、その選択された距離と所定の基準距離との比較結果に基づいて、文字要素の一致、不一致を判定することを意味する。文字要素間に予め設定されている複数の距離のうちの１つは、例えば、ユーザからの入力に基づいて選択され得る。
【００８６】
なお、文字要素列を検索する検索処理の基本的な流れは実施の形態１と同様である。
【００８７】
複数の距離テーブルは、例えば、複数種類の文字認識システムにそれぞれ対応するように用意される。あるいは、複数の距離テーブルは、複数の文字種（例えば、漢字、アルファベット、ギリシャ文字、カタカナなど）にそれぞれ対応するように用意されてもよいし、複数のフォント種にそれぞれ対応するように用意されてもよい。
【００８８】
例えば、図２は、「ゴシック体」というフォント種に対応するように用意された距離テーブルの例を示し、図７は、「明朝体」というフォント種に対応するように用意された距離テーブルの例を示す。
【００８９】
検索対象となる文書データに応じて、複数の距離テーブルのうちの１つが選択的に使用される。例えば、オリジナル文書を文字認識することによって得られる文書データに、その文書データに含まれる文字種、フォント種、文字認識に使用された文字認識システムの種類などの情報を検索パラメータとして保持しておくことにより、検索の際に適切なテーブルを選択して用いることが可能となる。その結果、検索の精度と速度を向上させることが可能となる。
【００９０】
フォント種に応じて距離テーブルを切り替える場合には、オリジナル文書を文字認識することによって得られる文書データに、フォント種が明朝体に近いかゴシック体に近いかを示す情報を文字要素ごとに検索パラメータとして付与しておくことが好ましい。この検索パラメータを参照することにより、ゴシック体の文字要素を含む文書データから文字要素列を検索する場合には図２に示されるような距離テーブルを用い、明朝体の文字要素を含む文書データから文字要素列を検索する場合には図７に示されるような距離テーブルを用いることが可能になる。フォント種を示す情報は、文字認識を行うと同時にフォントの種類を認識することなどにより得ることができる。
【００９１】
また、同一の文書データに対して複数の距離テーブルを切り替えるようにしてもよい。この場合、特定の距離テーブルを用いて検索できなかった文書データについて再度、検索したい文字要素列の有無を異なる尺度で検証することができる。その結果、検索の精度を向上させることが可能となる。更に、距離テーブルを用いた検索の結果に対して、その検索で得られた文字要素列の位置に対応する文書の画像イメージを用いて再度高精度な文字認識を行ってもよい。これにより、距離テーブルを用いて高速な粗検索を行い候補を絞った後に、高精度な文字認識（一般的に処理時間がかかる）を用いて検索対象を確定することが可能となり、検索精度と検索速度の両立が可能となる。
【００９２】
特に、文字数の少ない検索文字列（２文字単語など）を検索する場合、類似した文字列が偶然検索される可能性が高い。よってこのような場合にも指定した検索文字列の文字要素数に基づいて異なるテーブルを用いて再検証したり、高精度な文字認識を併用したりすることで、処理時間を必要以上に増さずに、精度の高い検索が可能となる。
【００９３】
また、検索キーワードとして指定された文字要素列の字種に応じて、距離テーブルを切り替えるようにしてもよい。例えば、検索キーワードとして指定された文字要素列および文書データがアルファベットのみを含む場合には、アルファベット用の距離テーブルを用いることにより、余分な検索処理を省くことが可能となる。
【００９４】
なお、上述した実施の形態では、１文字単位の文字認識の誤りを補うために距離テーブルを用いていた。しかし、１文字単位以上の文字認識の誤りを補うために距離テーブルを用いることも可能である。
【００９５】
図８Ａは、複数の文字要素を単一の文字要素として扱った結果生じる誤認識の例を示す。図８Ａには、２つの「木（き）」を「林（はやし）」と誤認識した例と、２つの「０（ゼロ）」を「∞（無限大）」と誤認識した例とが示されている。
【００９６】
図８Ｂは、単一の文字要素を複数の文字要素として扱った結果生じる誤認識の例を示す。図８Ｂには、「川」を３つの「１（いち）」と誤認識した例と、「い」を「し」と「１（いち）」と誤認識した例とが示されている。
【００９７】
距離テーブルにおいて、「木（き）」２文字と「林」との距離、「０（ゼロ）」２文字と「∞（無限大）」との距離、「川」と３つの「１（いち）」との距離、「い」と「し」、「１（いち）」との距離をそれぞれ小さい値に設定しておくことにより、図８Ａおよひ図８Ｂに示されるように誤認識されている場合でも正しい検索結果を得ることができる。
【００９８】
図９は、図８Ａおよび図８Ｂに示される文字要素を含む文字要素間の距離テーブルの一例を示す。
【００９９】
図９に示される例では、「木（き）」２文字と「林」との距離、「０（ゼロ）」２文字と「∞（無限大）」との距離、「川」と３つの「１（いち）」との距離、「い」と「し」、「１（いち）」との距離は、それぞれ、１３以下に設定されている。これらの距離は、文字要素の他の組み合わせに対応する距離（９８以上）よりもかなり小さい値に設定されている。
【０１００】
ここで、検索キーワードとして文字要素列「１００」を指定し、誤りの度合いの基準となる距離（基準距離）を５０とすると、「１」を検索した後、「０」を２つ検索するとともに「∞」を検索することが可能になる。これにより、「１００」が「１∞」と誤認識された場合でも、検索キーワードとしての文字要素列「１００」を検索することが可能となる。
【０１０１】
同様に、「いろり」が「し１ろり」と誤認識された場合でも、検索キーワードとして文字要素列「いろり」を検索することが可能になる。
【０１０２】
更に、かな漢字変換等の誤りによってオリジナルの文書自体に文章として誤った表現が含まれる場合（「納める」を「収める」と表現）や、複数の送り仮名付け方が存在する場合（「変る」を「変わる」）や、漢字表記した言葉をひらがなで検索しようとする場合（「切磋」を「せっさ」で検索）や、類義語で検索しようとした場合（「価格」を「定価」で検索）や、異なる言語に対して検索しようとした場合（「ｈｉｓｔｏｒｙ」を「歴史」で検索する場合）についても、文字要素間の距離テーブルにおいてそれぞれ「収」と「納」との距離、「変わ」と「変」との距離、「切磋」と「せっさ」との距離、「価格」と「定価」のと距離、「ｈｉｓｔｏｒｙ」と「歴史」との距離をそれぞれ小さい値に設定しておくことにより、正しい検索結果を得ることができる。
【０１０３】
（実施の形態３）
実施の形態３では、文字要素間の距離テーブルにおいて、文字要素間の距離に加えて文字要素の発生頻度が予め設定される。これにより、文字要素間の距離が確率的な分布を有するように距離を扱うことが可能になる。
【０１０４】
図１０Ａは、発生頻度付きの距離テーブルの例を示す。図１０Ａは、文字要素「下」に対して、文字要素「Ｔ」の発生頻度（確率）が距離１０では０．２、距離２０では０．６、距離３０では０．２であることを示す。
【０１０５】
図１０Ｂは、発生頻度付きの距離テーブルの他の例を示す。図１０Ｂに示される例では、発生頻度は正規分布するという仮定の下に、発生頻度が、距離と分散とによって表されている。例えば、図１０Ｂは、文字要素「下」に対して、文字要素「Ｔ」は距離２０を中心とし分散１０の正規分布に位置していることを表している。
【０１０６】
図１０Ｃは、発生頻度付きの距離テーブルの他の例を示す。図１０Ｃに示される例では、発生頻度は一様分布するという仮定の下に、発生頻度が、その分布の最短距離と最大距離とによって表されている。例えば、文字要素「下」に対して、文字要素「Ｆ」は距離５０から距離７０まで一様分布し、文字要素「ト」は距離６３から距離１２２まで一様分布している。従って、距離６３から距離７０までの間には文字要素「Ｆ」と文字要素「ト」とが重複して分布するのでそれぞれの文字要素の発生頻度は０．５であると判断される。
【０１０７】
このように、図１０Ａ〜図１０Ｃに示されるように距離テーブルに発生頻度を付与することにより、文字要素と文字要素との距離を固定した１つの値でなく、確率的な分布を有する幅を持った値として取り扱うことができる。これにより、文字要素の発生頻度に応じた検索を行うことが可能となる。
【０１０８】
以下、図１１を参照して、発生頻度付きの距離テーブルを用いて文字要素列を検索する検索処理を説明する。この検索処理の基本的な流れは、実施の形態１、２と同様である。
【０１０９】
まず、文字認識の信頼度に応じて検索時に許容される文字要素間の距離（基準距離）が決定される。その後、その基準距離に対応する文字要素の発生頻度が距離テーブルから算出される。ここで、文字認識の信頼度、基準距離および発生頻度の関係は予め設定されているものとする。
【０１１０】
図１１は、文字認識の信頼度、基準距離および発生頻度の関係の一例を示す。文書データ中の文字要素「人」（信頼度０．９）に対して許容され距離（基準距離）を１０とすると、検索キーワードとしての文字要素「人」に対して文書データ中の文字要素「人」が対応する割合（発生頻度）は０．９となっている。同様に、文書データ中の文字要素「区」（信頼度０．４）に対して許容される距離（基準距離）を６０とすると、検索キーワードとしての文字要素「口」に対して文書データ中の文字要素「区」が対応する割合（発生頻度）は０．１となる。文字要素「構」・「成」についても同様に発生頻度は０．９となる。
【０１１１】
ここで、検索キーワードとして指定された文字要素列「人口構成」を構成する各文字要素について文書データ中の文字要素列と対応する割合が平均０．７（＝（０．９＋０．１＋０．９＋０．９）／４）となる。あらかじめ検索の基準として一致する割合を例えば平均値で０．５以上としておくことで、上記の誤認識された文字要素列「人区構成」を検索キーワードとしての文字要素列「人口構成」から検索することが可能となる。
【０１１２】
更に、検索の結果を表示する際に、一致する割合に応じて表示を切り替えることも可能である。例えば、一致する割合の高さに応じて文書画像中の対応する位置に強調表示（輝度や色、点滅などによる強調）を行うことにより、検索者が一致割合を視覚的に確認することが容易となる。
【０１１３】
また、上述した例では、検索キーワードを構成する文字要素の一致する割合の平均値を検索の基準としたが、最低値を基準としてもよいし、高い一致割合（例えば０．８以上）の文字要素が文字要素列全体のある割合以上（例えば半分以上）を占めている場合を基準としてもよい。更に、高い一致割合（例えば０．８以上）の文字要素が文字要素列全体のある割合以上（例えば２／３以上）あれば、残りの一致割合の低い文字要素に対しては検索の基準をゆるくして検出しやすいように変更してもよい。
【０１１４】
例えば、図１２に示されるように、「人口構成」が誤認識された「人同構成」という文字要素列を含む文書データから、検索キーワードとしての文字要素列「人口構成」を検索することを考える。ここで、「口」が誤認識された「同」は文字認識の信頼度が０．３で、許容される距離（基準距離）が８０となり、「口」に一致する割合は０．０となっている。このままでは、「同」と「口」とは全く一致しない扱いとなる。しかし、検索キーワードを構成する他の文字要素「人」・「構」・「成」については一致割合が高い（０．９）ので「同」に対しては許容される距離（基準距離）を８０よりも大きい値（例えば１２０）に設定することにより、検索キーワード「人口構成」に対応する文字要素列を検出することができるようになる（図６に示される距離テーブルを使用する場合）。
【０１１５】
図１３は、発生頻度付きの距離テーブルを作成する処理の手順を示す。図１３は、文字要素「Ｘ」と文字要素「Ｙ」との間の距離と発生頻度とをどのように定義するかを示す。文字要素間のすべての組み合わせに対して同様の処理を行うことにより、文字要素間のすべての組み合わせに対して距離と発生頻度とを定義することができる。
【０１１６】
図１３に示される反復処理を統計的に十分な回数だけ行うことにより、文字要素「Ｘ」と文字要素「Ｙ」との距離がＤとなる発生頻度を統計的に確からしい値として得ることが可能になる。
【０１１７】
なお、発生頻度付きの距離テーブルを作成するために使用されるニューラルネットワークＮＮは、文字を予め学習させているものとする。ニューラルネットワークＮＮのタイプは問わない。
【０１１８】
図１４は、発生頻度付きの距離テーブルを用いて、認識結果の中から検索キーワードに対応する文字要素列を検索する検索処理の手順を示す。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０１１９】
図１４に示される検索処理によって、検索キーワードの文字要素列に含まれる文字要素「Ｘ」に対応する文字要素が認識結果に含まれているか否かが判定される。検索キーワードの文字要素列に含まれるすべての文字要素について同様の検索処理が繰り返される。
【０１２０】
検索キーワードの文字要素列に含まれるすべての文字要素を０より大きい発生頻度で連続して認識結果から検出することができた場合には、その検索キーワードの文字要素列に対応する発生頻度の列が得られる。この発生頻度の列に基づいて、検索キーワードの文字要素列に対応する文字要素列が認識結果に含まれているか否かが判定される。この判定は、発生頻度の列の平均値に基づいて行われてもよいし、発生頻度の列の最低値に基づいて行われてもよい。
【０１２１】
図１４において、信頼度Ｒは文字認識の信頼度を示す。信頼度Ｒは、認識結果に含まれる各文字要素に対して予め設定されている。また、信頼度Ｒと基準距離Ｄとの関係も予め設定されている。
【０１２２】
このように、距離テーブルに、文字要素間の距離に加えて、発生頻度の情報を付与しておくことにより、同じ距離でも発生頻度に応じて検索の基準や手続きを切り替えることが可能となる。その結果、より精度の高い検索が可能となる。
【０１２３】
（実施の形態４）
実施の形態４では、文字要素間の距離テーブルを用いて、検索キーワードとして指定された文字要素列が予め複数の文字要素列に展開される。複数の文字要素列のそれぞれについて検索処理が実行される。
【０１２４】
以下、「日本」という文字要素列を検索キーワードとして指定して、図４に示される認識結果の中から検索キーワードに対応する文字要素列を検索する検索処理を説明する。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０１２５】
最初に、文字要素列「日本」が文字要素「日」と文字要素「本」とに分割される。各文字要素について文字要素間の距離テーブルが参照され、各文字要素と、各文字要素との距離が所定の基準距離（例えば、１５０）よりも小さい文字要素（例えば「日」については「日」と「目」、「本」については例えば「本」と「木」と「大」）とが組み合わせられる。その結果、検索キーワードとして指定された文字要素列「日本」に基づいて、新たな文字要素列「日本」、「目本」、「日木」、「目木」、「日大」、「目大」が生成される。
【０１２６】
次に、図４に示される認識結果（文書データ）から新たな文字要素列のそれぞれを検索する検索処理が実行される。これにより、新たな文字要素列「日木」をオリジナル文書の「日本」が存在する位置において検出することが可能になる。その結果、望ましい検索結果を得ることができる。
【０１２７】
ここで、検索した結果何も検出されない場合には、所定の基準距離をより大きい値（例えば、２００）に再設定し、新たにより多くの文字要素列を生成して同様の検索処理を実行するようにしてもよい。これにより、距離テーブルにおいて許容される距離（基準距離）が１５０の場合には検出することができなかった認識誤りを検出することができるようになる。
【０１２８】
このように、文字要素間の距離テーブルを用いて、検索キーワードとして指定された文字要素列を誤りの可能性のある複数の文字要素列に置き換え、その複数の文字要素列のそれぞれについて検索処理を実行することにより、実施の形態１と同様に、指定された文字要素列が誤認識で他の文字要素列に置き換わったような文字要素列を文書データから検索することが可能となる。
【０１２９】
距離テーブルを用いることにより、複雑な距離計算などを逐次行う必要がなく高速な検索が可能となる。
【０１３０】
また、距離テーブルを用いることにより、誤認識の許容度合いを適切な値に設定することが可能となり、効率のよい検索が可能となる。
【０１３１】
（実施の形態５）
実施の形態５では、文字要素間の距離テーブルを用いて、認識結果（文書データ）に含まれる各文字要素に１以上の他の文字要素が追加された後に、検索処理が実行される。
【０１３２】
以下、「日本」という文字要素列を検索キーワードとして指定して、図４に示される認識結果の中から検索キーワードに対応する文字要素列を検索する検索処理を説明する。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０１３３】
はじめに、文字要素間の距離テーブルが参照され、認識結果（文書データ）に含まれる各文字要素との距離が所定の基準距離（例えば、１５０）よりも小さい文字要素（例えば「日」については「日」と「目」、「木」については「本」と「大」など）が認識結果の候補として認識結果に追加される。
【０１３４】
図１５は、認識結果の候補が追加された例を示す。図１５に示される例では、認識結果の文字要素「日」に対して認識結果の候補として文字要素「目」が追加されている。また、認識結果の文字要素「木」に対して認識結果の候補として文字要素「本」と文字要素「大」とが追加されている。
【０１３５】
次に、検索キーワードとして指定された文字要素列「日本」が文字要素「日」と文字要素「本」とに分割される。文字要素「日」について検索処理を実行することにより、図１５に示される認識結果（文書データ）から文字要素「日」が検出される。次に、文字要素「日」が検出された位置の次の文字要素（「木」、「本」、「大」）の中に文字要素「本」が存在するか否かが判定される。文字要素（「木」、「本」、「大」）の中に文字要素「本」が含まれているので、認識結果から文字要素列「日本」が検出されたと判定される。
【０１３６】
検索キーワードとして指定された文字要素列に含まれる文字要素の数が３つ以上である場合にも、同様の手順に従って、認識結果から文字要素列を検出することができる。すなわち、検索キーワードとして指定された文字要素列に含まれるすべての文字要素が連続して認識結果から検出された場合に指定された文字要素列が認識結果から検出されたと判定すればよい。
【０１３７】
このように、文字要素間の距離テーブルを用いて、認識結果（文書データ）に含まれる各文字要素に１以上の文字要素を予め追加しておくことにより、実施の形態１と同様に、指定された文字要素列が誤認識で他の文字要素列に置き換わった場合でも、指定された文字列要素に対応する文字要素列を文書データから検索することが可能となる。
【０１３８】
また、認識結果（文書データ）に含まれる各文字要素に１以上の文字要素を予め追加しておくことにより、検索時に距離テーブルを参照する手続きを省略することが可能となる。
【０１３９】
なお、実施の形態５において、実施の形態１〜３で説明した検索の過程で距離テーブルを用いる形態や、実施の形態４で説明した距離テーブルを用いて検索キーワードとして指定された文字要素列を複数の文字要素列に展開する形態を併用することも可能である。
【０１４０】
（実施の形態６）
図１６は、段落Ａ〜段落Ｄを有するオリジナル文書の例を示す。図１６に示される例では、段落の正しい順序は、段落Ａ、段落Ｂ、段落Ｃ、段落Ｄの順番であると仮定する。すなわち、段落Ａの末尾の文章は段落Ｂの先頭の文章に続き、段落Ｂの末尾の文章は段落Ｃの先頭の文章に続き、段落Ｃの末尾の文章は段落Ｄの先頭の文章に続くと仮定する。
【０１４１】
図１６に示されるオリジナル文書を文字認識することによって文書データ（認識結果）を得る場合、その文書データ（認識結果）においてオリジナル文書の段落間の接続関係が正しく認識されるとは限らない。段落のレイアウトの仕方は文書によって様々であるため、段落間の接続関係を自動的に認識することは極めて困難だからである。従って、段落間の接続関係の認識誤りが発生し得る。
【０１４２】
実施の形態６は、段落間の接続関係の認識誤りが発生した場合でも、認識結果から文字要素列を正しく検索することが可能な検索方法を提供する。
【０１４３】
図１７は、段落間の接続関係の認識結果を示すテーブルの例を示す。このようなテーブルは、ＣＰＵ１１０が文書登録プログラムを実行することによって生成され、メモリ１４０に格納される。
【０１４４】
認識された各段落は、各段落に固有の段落番号（図１７では、Ａ、Ｂ、Ｃ、Ｄ）によって識別される。
【０１４５】
図１７に示されるテーブルは、各段落について、次に接続される可能性のある段落の番号と、段落単位の認識結果とを有している。例えば、図１７に示されるテーブルの第１行は、段落Ａに接続される可能性のある段落が段落Ｂまたは段落Ｃのいずれかであり、段落Ａの末尾が「日木の」であることを示している。
【０１４６】
ここで、特定の段落に接続される可能性のある段落は、例えば、オリジナル文書の画像データを文字認識する際に各段落同士のそれぞれの位置関係を参照することによって決定される。例えば、オリジナル文書の文章が縦書きの場合には、ある段落Ｘの次に続く可能性のある段落は、段落Ｘよりも下に位置する段落（例えば、段落Ｙ）、または、段落Ｘよりも左に位置する段落（例えば、段落Ｚ）のいずれかであると決定される。この場合には、段落Ｘに接続される可能性のある段落として、段落Ｙと段落Ｚとが上述したテーブルに登録される。
【０１４７】
さらに、文字認識した結果に基づいて、ある段落Ｘの末尾の文章と文法的に接続可能な文頭を有する段落を、段落Ｘに接続される可能性のある段落として決定してもよい。
【０１４８】
また、オリジナル文書の段落が特定の規則に従ってレイアウトされている場合には、その特定の規則に基づいて、段落Ｘに接続される可能性のある段落を決定してもよい。
【０１４９】
以下、図１７に示されるテーブルを用いて、認識結果から文字要素列「日本の人口」を検索する検索処理を説明する。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０１５０】
実施の形態１〜実施の形態５と同様に、文字要素列「日本の人口」を構成する各文字要素「日」、「本」、「の」、「人」、「口」が各段落から順次検索される。
【０１５１】
図１７に示される例では、段落Ａの末尾に文字要素「日」、「本」、「の」が続いて検出される。次に、文字要素「人」が検索される。ここで、段落Ａに接続される可能性のある段落は、段落Ｂまたは段落Ｃであるため、段落Ｂと段落Ｃのそれぞれの先頭に文字要素「人」が存在するか否かが判定される。図１７に示される例では、段落Ｂの先頭において文字要素「人」が検出されるため、その次の位置に文字要素「口」が存在するか否かが判定される。その結果、最終的に、文字要素列「日本の人口」を構成するすべての文字要素が検出されることになる。
【０１５２】
図１８は、図１７に示されるテーブルと文字要素間の距離テーブル（例えば、図２）とを用いて、段落間の接続関係を考慮して、認識結果から検索キーワードの文字要素列を検索する検索処理の手順を示す。この検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０１５３】
図１８に示される検索処理によって、検索キーワードの文字要素列に含まれる文字要素「Ｘ」に対応する文字要素が認識結果に含まれているか否かが判定される。検索キーワードの文字要素列に含まれるすべての文字要素について同様の検索処理が繰り返される。
【０１５４】
文字要素「Ｘ」と段落Ａの末尾の文字要素とが一致しなかったと仮定する。この場合には、文字要素「Ｘ」と段落Ａに接続される可能性のある段落Ｂまたは段落Ｃのうちの１つの段落の先頭の文字要素「Ｙ」とが一致するか否かが判定される。段落Ａに接続される可能性のある段落が段落Ｂまたは段落Ｃであることは、図１７に示されるテーブルにおいて予め定義されている。
【０１５５】
文字要素「Ｘ」と文字要素「Ｙ」とが一致するか否かは、文字要素間の距離テーブルを用いて判定される。この判定の方法は、実施の形態１〜実施の形態５で説明したとおりである。
【０１５６】
このように、特定の段落に接続される可能性のある複数の段落を予め定義しておくことにより、文字認識の際に段落の接続関係が誤認識された場合でも、複数の段落にまたがる文字要素列を正しく検出することが可能となる。
【０１５７】
また、段落同士の接続に限らず、段落内で行と行との接続があいまいな場合（例えば、行間に図、表、見出しなどが挿入されている場合）にも同様に行ごとに異なる番号を付与し、特定の行に接続される可能性のある複数の行を予め定義しておくことにより、複数の行にまたがる文字要素列を正しく検出することが可能となる。
【０１５８】
また、文字要素と文字要素との接続があいまいな場合（例えば、文字要素間に図、表などが挿入されている場合や、文字要素列の配置が装飾的な場合［曲線状に配置された文字要素列］など）にも同様に行（文字要素）ごとに異なる番号を付与し、特定の行（文字要素）に接続される可能性のある複数の行（文字要素）を予め定義しておくことにより、複数の行（文字要素）にまたがる文字要素列を正しく検出することが可能となる。
【０１５９】
このように、認識結果に含まれる複数の文字要素のうち特定の文字要素に対して、その特定の文字要素に接続される可能性のある複数の文字要素が予め決定される。検索処理では、その特定の文字要素と、その特定の文字要素に接続される可能性のある複数の文字要素のうちの１つとを接続することによって得られる文字要素列が、検索キーワードの文字要素列の少なくとも一部に一致するか否かが判定される。これにより、文字認識の際に文字要素の接続関係が誤認識された場合でも、複数の文字要素にまたがる文字要素列を正しく検出することが可能となる。
【０１６０】
その特定の文字要素は、行または列の末尾に配置されており、その特定の文字要素に接続される可能性のある複数の文字要素のそれぞれは、行または列の先頭に配置されていてもよい。
【０１６１】
さらに、その特定の文字要素と、その特定の文字要素に接続される可能性のある複数の文字要素のうちの１つとは、同一の行または列に配置されており、その特定の文字要素と、その特定の文字要素に接続される可能性のある複数の文字要素のうちの他の１つとは、異なる行または列に配置されており、かつ、同一の列または行に配置されていてもよい。
【０１６２】
なお、上述した例では、特定の段落（行または文字要素）の後に接続される可能性のある複数の段落（行または文字要素）を予め定義しておく例を説明した。あるいは、特定の段落（行または文字要素）の前に接続される可能性のある複数の段落（行または文字要素）を予め定義しておくようにしてもよい。この場合でも上述した効果と同様の効果が得られる。
【０１６３】
また、特定の段落（行または文字要素）に接続される可能性のある段落（行または文字要素）の番号は、上述したように、段落（行または文字要素）番号の絶対値を用いて表現されてもよいし、段落（行または文字要素）番号の相対値を用いて表現されてもよい。例えば、段落Ａに接続される可能性のある段落を段落Ｂ、段落Ｃと表現する代わりに、段落＋１、段落＋２と表現するようにしてもよい。
【０１６４】
（実施の形態７）
図１９は、段落間の接続関係の認識結果を示すテーブルの例を示す。このようなテーブルは、ＣＰＵ１１０が文書登録プログラムを実行することによって生成され、メモリ１４０に格納される。
【０１６５】
図１９に示されるテーブルは、各段落について、段落単位の認識結果と、段落単位の位置を有している。段落単位の位置は、例えば、オリジナル文書の右上隅を原点するＸＹ座標で表される。Ｘ軸方向、Ｙ軸方向は、例えば、図１６に示される方向である。例えば、図１９に示されるテーブルの第１行は、段落Ａの末尾が「日木の」であり、段落Ａの位置が座標（Ｘ，Ｙ）＝（１０，１００）によって表されることを示している。
【０１６６】
検索処理の手順は、実施の形態６とほぼ同様である。段落Ａの末尾において文字要素「日」、「本」、「の」が続いて検出された後に、文字要素「人」を検索する際、段落Ａに接続される可能性のある段落が、図１９に示されるテーブルに格納されている段落の位置を示す座標に基づいて決定される。この場合、段落Ａの座標は（Ｘ，Ｙ）＝（１０，１００）である。段落Ａに接続される可能性のある段落として、段落ＡのＸ座標と等しいＸ座標を有し、かつ、段落ＡのＹ座標の次に大きいＹ座標を有する段落Ｃ（Ｘ，Ｙ）＝（１０，２００）と、段落ＡのＹ座標と等しいＹ座標を有し、かつ、段落ＡのＸ座標の次に大きいＸ座標を有する段落Ｂ（Ｘ，Ｙ）＝（１００，１００）とが決定される。
【０１６７】
この場合、段落Ｂの先頭において文字要素「人」が検出されるので、その次の位置に文字要素「口」が存在するか否かが判定される。その結果、最終的に、文字要素列「日本の人口」を構成するすべての文字要素が検出されることになる。
【０１６８】
なお、オリジナル文書の文章が縦書きの場合には、ある段落Ｘの次に続く可能性のある段落を、段落Ｘよりも下に位置する段落（例えば、段落Ｙ）、または、段落Ｘよりも左に位置する段落（例えば、段落Ｚ）のいずれかであると決定してもよい。
【０１６９】
また、オリジナル文書の段落が特定の規則に従ってレイアウトされている場合には、その特定の規則に基づいて、段落Ｘに接続される可能性のある段落を決定してもよい。
【０１７０】
なお、ＸＹ座標の原点やＸ座標軸、Ｙ座標軸の方向は自由に選んでよく、また座標値についても段落や図ごとに番号を割り振った値の順番を座標値の単位として用いてもよい。
【０１７１】
このように、段落ごとに段落の位置を示す情報を保持しておくことにより、文字認識の際に段落の接続関係を誤認識した場合にでも、複数の段落にまたがる文字要素列を検出することが可能となる。
【０１７２】
また、段落の位置を示す座標を保持しておくことにより、文書データを変更することなく特定の段落に接続される可能性のある段落の決定方法を変更することが可能であり、段落の位置を示す座標は文書のレイアウトを再現するために用いることも可能である。
【０１７３】
なお、上術した例では段落ごとに段落の位置を示す座標を保持することとしたが、行単位や文字要素単位に異なる番号を付与し、行ごとにまたは文字要素ごとにその位置を示す座標を保持するようにしてもよい。これにより、複数の行または複数の文字要素にまたがる文字要素列を検索することが可能となる。
【０１７４】
（実施の形態８）
実施の形態６と同様に、図１６に示されるオリジナル文書を文字認識することによって得られる文書データ（認識結果）から文字要素列「日本の人口」を検索する検索処理を説明する。
【０１７５】
ここで、認識結果は、図２０に示されるように、特定の段落と、その特定の段落に接続される可能性のある複数の段落のうちの１つとを接続した形式で保持される。このような認識結果は、例えば、メモリ１４０に格納される。
【０１７６】
図２０に示される例では、２種類の文字認識結果（文字認識結果１、文字認識結果２）が保持されている。文字認識結果１は、段落Ａと、段落Ａに接続される可能性のある段落Ｃとを接続することによって得られる。文字認識結果２は、段落Ａと、段落Ａに接続される可能性のある段落Ｂとを接続することによって得られる。
【０１７７】
図２０に示される認識結果から文字要素列「日本の人口」を検索する場合には、文字認識結果１と文字認識結果２のそれぞれに対して「日本の人口」が検索される。その結果、文字認識結果２から「日本の人口」を検出することができる。
【０１７８】
なお、図２０に示されるように複数の段落の接続関係を想定して認識結果を保持する場合には、検索キーワードとして指定される文字要素列に含まれる文字要素の数に上限値（例えば、１０文字要素）を設け、段落Ａに接続される可能性のある段落Ｂ、段落Ｃの先頭から９文字要素のみを段落Ａの認識結果に付加して保持するようにしてもよい。この場合、段落Ａから段落Ｂまたは段落Ｃにまたがる１０文字要素までの文字要素列の検索が可能となる。
【０１７９】
このように、特定の段落に接続される可能性のある複数の段落を考慮して、複数の認識結果を予め保持しておくことにより、文字認識の際に段落の接続関係を誤認識した場合でも、複数の段落にまたがる文字要素列を検出することが可能となる。また、複数の認識結果を予め保持しておくことにより、検索処理の手順が簡易になり、従来の検索処理を利用することが可能となる。
【０１８０】
（実施の形態９）
図２１に示されるようなレイアウトを有するオリジナル文書を文字認識することによって得られる文書データ（認識結果）から文字要素列「神戸」を検索する検索処理を説明する。
【０１８１】
図２１に示される例では、オリジナル文書の文章は横書きであるが、文字要素同士の間隔が縦方向に接近しているため、文字認識を行った場合に文字要素間の接続関係が誤認識される可能性がある。
【０１８２】
実施の形態９は、文字要素間の接続関係が誤認識された場合でも、認識結果から文字要素列を正しく検索することが可能な検索方法を提供する。
【０１８３】
図２２Ａは、オリジナル文書の文章が縦書きであるという仮定の下で文字認識を実行した場合の認識結果を示すテーブルの例を示す。これは、図２１に示されるオリジナル文書を列単位に認識した結果である。
【０１８４】
図２２Ｂは、オリジナル文書の文章が横書きであるという仮定の下で文字認識を実行した場合の認識結果を示すテーブルの例を示す。これは、図２１に示されるオリジナル文書を行単位に認識した結果である。
【０１８５】
このようなテーブルは、ＣＰＵ１１０が文書登録プログラムを実行することによって生成され、メモリ１４０に格納される。
【０１８６】
検索キーワードとして文字要素列「神戸」が指定された場合には、図２２Ａに示される認識結果から文字要素列「神戸」が検索され、かつ、図２２Ｂに示される認識結果から文字要素列「神戸」が検索される。その結果、図２２Ｂに示されるテーブルの行番号３に対応する認識結果から文字要素列「神戸」が検出される。これにより、図２１に示されるオリジナル文書に文字列「神戸」が含まれていたことが分かる。
【０１８７】
このように、複数のレイアウトに対応した認識結果を保持しておくことにより、正しいレイアウトを認識することが困難な文書に対しても、認識結果から文字要素列を検索することが可能となる。また、複数のレイアウトに対応した認識結果を保持しておくことにより、従来の検索処理を利用することが可能となる。
【０１８８】
なお、上述した例では、縦書き、横書きの２種類のレイアウトを想定したが、レイアウトの種類はこれらに限定されない。例えば、縦書き、横書き以外に、斜め方向のレイアウトなどその他のレイアウトを同様に扱うことが可能である。
【０１８９】
（実施の形態１０）
実施の形態１０は、オリジナル文書のレイアウトが誤って認識された場合でも、認識結果から指定された文字要素列を正しく検索することが可能な検索方法を提供する。
【０１９０】
図２１のようなレイアウトを有するオリジナル文書を文字認識することによって得られる文書データ（認識結果）から文字要素列「神戸」を検索する検索処理を説明する。
【０１９１】
ここで、オリジナル文書のレイアウトを誤って認識した例として、図２２Ａに示されるテーブルが保持されていると仮定する。実施の形態９とは異なり、図２２Ｂに示されるテーブルは保持されていない。
【０１９２】
はじめに、文字要素列「神戸」が文字要素「神」と文字要素「戸」とに分割される。図２２Ａに示されるテーブルを用いて、各文字要素について検索処理が行われる。その結果、図２２Ａに示されるテーブルの列番号５に対応する認識結果の第３文字目から文字要素「神」が検出され、図２２Ａに示されるテーブルの列番号４に対応する認識結果の第３文字目から文字要素「戸」が検出される。
【０１９３】
文字要素列「神戸」を構成するすべての文字要素が認識結果から検出された場合には、各文字要素が検出された位置関係に基づいて、認識結果から文字要素列「神戸」が検出されたか否かが判定される。この場合、文字要素「神」と文字要素「戸」とは、隣接する行の同じ文字数目に連続して検出されたため、文字要素列「神戸」が検出されたと判定される。
【０１９４】
なお、文字要素列が検出されたか否かの判定には、上述した基準と異なる基準を使用してもよい。すなわち、各文字要素が検出された位置関係が上述した関係とは異なる関係を満たす場合に、文字要素列が検出されたと判定するようにしてもよい。例えば、文字要素の位置を示す座標が分かっている場合には、個々の文字要素があらかじめ定めた距離以下で接近しかつ直線的に配置されている場合に、文字要素列が検出されたと判定するようにしてもよい。
【０１９５】
また、検索処理の手順として他の手順を使用することもできる。例えば、上述したように文字要素をすべて検索するのではなく、文字要素「神」を検出できた場合にのみ文字要素「神」が検出されや行に隣接する行からのみ文字要素「戸」を検索するようにしてもよい。これにより、検索処理のうち不要な部分を削減することができるので、検索処理を効率的に行うことが可能となる。
【０１９６】
このように、検索キーワードとして指定された文字要素列に含まれる各文字要を認識結果から検出し、各文字要素の検出された位置関係に基づいて文字要素列が検出されたか否かが判定される。これにより、オリジナル文書のレイアウトが誤って認識された場合でも、認識結果から指定された文字要素列を正しく検索することが可能となる。
【０１９７】
（実施の形態１１）
実施の形態１１では、検索キーワードとして指定された文字要素列が２以上の文字要素列に分割され、その分割された文字要素列が検出された段落間の位置関係に基づいて、検索キーワードが検出されたか否かが判定される。
【０１９８】
以下、図１６に示されるレイアウトを有するオリジナル文書を文字認識することによって得られる文書データ（認識結果）から文字要素列「日本の人口」を検索する検索処理を説明する。
【０１９９】
実施の形態７と同様に、段落間の接続関係の認識結果を示すテーブル（図１９）が予め用意される。
【０２００】
図１９に示されるテーブルは、各段落について、段落単位の認識結果と、段落単位の位置を有している。段落単位の位置は、例えば、オリジナル文書の右上隅を原点するＸＹ座標で表される。Ｘ軸方向、Ｙ軸方向は、例えば、図１６に示される方向である。
【０２０１】
はじめに、検索キーワードとして指定された文字要素列「日本の人口」が２つの文字要素列に分割される。例えば、文字要素列「日本の人口」は、文字要素列「日本」と文字要素列「の人口」に分割される。
【０２０２】
次に、分割された２つの文字要素列のそれぞれを個々の段落から検索する。文字要素列「日本の人口」のすべての分割の仕方について検索が繰り返される。例えば、文字要素列「日本の人口」が文字要素列「日本の」と文字要素列「人口」とに分割された場合には、図１６に示される例では、段落Ａの末尾から文字要素列「日本の」が検出され、段落Ｂの先頭から文字要素列「人口」が検出される。分割された文字要素列がすべて検出された場合には、検出された段落間の位置関係に基づいて、文字要素列「日本の人口」が検出されたか否かが判定される。
【０２０３】
例えば、２つの文字要素列が検出された段落が隣接していたり、２つの文字要素列が検出された段落の位置が近い場合には、検索キーワードとして指定された文字要素列が検出されたと判定される。図１６に示される例では、文字要素列「日本の」が検出された段落Ａの座標（Ｘ，Ｙ）＝（１０，１００）と、文字要素列「人口」が検出された段落Ｂの座標（Ｘ，Ｙ）＝（１００，１００）とは、同一のＹ座標を有し、かつ、互いに隣接する。従って、認識結果から文字要素列「日本の人口」が検出されたと判定される。
【０２０４】
また、上述したように文字要素列を分割することによって得られる文字要素列を段落から検索する場合には、各段落の文末と先頭のみに対して検索処理を行うことが好ましい。これにより、検索処理の効率を向上させることができる。
【０２０５】
なお、上述した例では、検索キーワードとして指定された文字要素列を２つの文字要素列に分割した例を説明したが、検索キーワードとして指定された文字要素列を必要に応じて３つ以上の文字要素列に分割することも可能である。この場合にも、同様の検索処理を行うことが可能である。
【０２０６】
また、上述した例では、複数の段落にまたがる文字要素列を検索する例を示したが、同様にして、複数の行にまたがる文字要素列を検索することも可能である。この場合には、検索キーワードとして指定された文字要素列を分割し、各行に対して分割された文字要素列のそれぞれを検索し、分割されたすべての文字要素列が隣接した位置に検出された場合に検索キーワードが検出されたと判定すればよい。
【０２０７】
このように、実施の形態６〜実施の形態１１では、段落や行の接続が誤っている（または不定な）場合にでも、複数の段落にまたがる文字要素列を正しく検出することが可能となる。
【０２０８】
また、文字認識の誤りがある場合や、段落間・行間の接続が誤っていたり不定な場合や、縦書き・横書きの判断が誤っているあるいは不定である場合に指定され文字要素列を検索することが可能である。
【０２０９】
なお、実施の形態１〜実施の形態１１のそれぞれを単独で実施することも可能であるし、それらの少なくとも２つを組み合わせて実施することも可能である。
【０２１０】
本発明の検索処理は、典型的には、コンピュータ上のソフトウェアによって実現される。しかし、本発明の検索処理をハードウェアによって実現してもよいし、ソフトウェアとハードウェアとの組み合わせによって実現してもよい。
【０２１１】
本発明の検索処理の一部または全部を表現するプログラム（文書検索プログラム）は、例えば、メモリ１７０に格納されている。あるいは、文書検索プログラムは、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの任意のタイプの記録媒体に記録され得る。そのような記録媒体に記録された文書検索プログラムは、ディスクドライブ（図示せず）を介してコンピュータのメモリにロードされる。あるいは、文書検索プログラム（またはその一部）は、通信網（ネットワーク）または放送を通じてコンピュータのメモリにダウンロードされてもよい。コンピュータに内蔵されるＣＰＵが文書検索プログラムを実行することによって、コンピュータは検索装置として機能する。
【０２１２】
（実施の形態１２）
実施の形態１２では、検索キーワードとして指定された文字要素列に含まれる文字要素の数と、検索キーワードとして指定された文字要素列に含まれる文字要素のうち認識結果に一致した文字要素の数とに基づいて、検索結果が検索キーワードに一致する確率（評価値）が取得される。この確率（評価値）に基づいて、検索結果の正当性が判定される。
【０２１３】
以下の説明では、「文字要素」を簡略化して「文字」という。
【０２１４】
通常、さまざまな言語の単語には冗長性があり、数文字が分からない場合でも単語が特定できる場合が多い。この傾向は、単語を構成する文字数が多ければ多いほど当てはまる。本実施の形態は、単語のこのような傾向を利用して誤りを含んだ文字列から単語を検索できることを示す。
【０２１５】
以下、図２６を参照して、「・・・オックスフォード大学は・・・」というオリジナル文書を文字認識することによって得られた「・・・オッタスフォード大学は・・・」という認識結果から検索語「オックスフォード」を検索する検索処理を説明する。ここで、認識結果は、文書データとしてメモリ１４０に格納される。メモリ１４０は、任意のタイプの記憶媒体であり得る。
【０２１６】
なお、認識結果の各文字には、認識結果の確からしさ（正解確率）を表す信頼度が付与されている。検索を行う前に、確率テーブルが予め作成される。
【０２１７】
図２７は、確率テーブルの一例を示す。確率テーブルは、パラメータｎ、ｋに対して確率Ｐａ（ｎ，ｋ）を取得するために使用される。
【０２１８】
ここで、ｎは、検索語に含まれる文字の数を示し、ｋは、検索語に含まれるｎ文字のうち、検索対象の文書データ中の対応する文字と一致した文字の数を示す。確率Ｐａ（ｎ，ｋ）は、検索結果が検索語に一致する確率を示す。
【０２１９】
図２７に示される確率テーブルは、誤りを含まない大量のテキストデータと単語辞書とを用いて算出され得る。算出方法としては、まず、単語辞書中の単語（ｎ文字）について、テキストデータ中のすべての連続するｎ文字に対して、単語と一致する文字数を調べ、一致する文字数別に累計Ｎｋ（ｉ＝１，  ．．．，ｎ）をとる。この累計Ｎｋを用いると、ｎ文字の検索語のうちｋ文字が一致した場合に、その部分が検索語である確率Ｐａ（ｎ，ｋ）（＝Ｎｎ／Ｎｋ）が算出できる。
【０２２０】
この確率Ｐａ（ｎ，ｋ）は、文字数ｎが一致していても単語の表記が異なる場合や、一致する文字数ｋの位置によって、当然異なるものとなるが、本実施の形態では、単語の表記や、一致する文字の位置に関しては区別をしていない。すなわち、文字数ｎが等しいすべての単語について、ｋ文字が一致する回数をそれぞれ累計し、その累計の和（平均でもよい）を用いて算出している。
【０２２１】
なお、単語の表記別や、一致した文字の位置別、単語を構成する字種別（漢字、ひらがな、カタカナ、英字など）にこのような確率を算出しておいて使用してもよい。
【０２２２】
なお、単語の文字数が多い場合は、一致した文字数ｋがある程度になると、単語の文字数ｎに関わらず一致した文字数ｋだけで確率が表せる（Ｐａ（ｎ，ｋ）において、ｎが変化してもほぼ一定）場合がある。この場合は、一致した文字数ｋのみに依存する確率Ｐａ（ｋ）をＰａ（ｎ，ｋ）の代わりに用いてもよい。
【０２２３】
図２６に示される例では、検索語「オックスフォード」に対し、検索対象の文書データにおいて誤認識の「タ」（信頼度０．４２）を除くすべての文字が一致する。
【０２２４】
ここで、この照合箇所（検索結果）の正当性を表すＰｗは、（式１）によって表される。
【０２２５】
Ｐｗ＝Ｐａ（ｎ，ｋ）・Ｐｂ（ｋ）    ・・・（式１）
（式１）において、Ｐａ（ｎ，ｋ）は、ｎ文字の単語のうちｋ文字が一致した場合に、その検索結果が検索語である確率である。この場合には、「オックスフォード」というｎ＝８文字の単語のうちｋ＝７文字が一致しているため、図２７からＰａ（８，７）＝０．９となる。
【０２２６】
また、Ｐｂ（ｋ）は、ｋ文字がすべて検索対象の文字である確率を表す。各文字に付与されている信頼度は確率であるから、認識結果と一致した文字の信頼度の積とすればよい。図２６から、Ｐｂ（７）＝０．９８×０．９７×０．９９×０．９８×０．９９×０．９７×０．９６＝０．８５となる。
【０２２７】
よって、この照合箇所（検索結果）の正当性を表す値は、Ｐｗ＝Ｐａ（８，７）×Ｐｂ（７）＝０．９×０．８５＝０．７６５となる。Ｐｗの値は、予め定められた閾値（本実施の形態では０．６とする）よりも大きい。従って、この照合箇所（検索結果）の正当性が肯定される。
【０２２８】
なお、長い文字数を持った単語の場合は、信頼度の積Ｐｂ（ｋ）が小さくなりやすいため、何らかの方法で文字数に対して正規化してもよい。また、各文字の信頼度が確率でない場合は、確率に変換して用いたり、単純に平均を求めてＰｂ（ｋ）の代わりにしてもよい。
【０２２９】
また、図２８に示されるように、正解した文字が７文字であっても低い信頼度を持った文字が存在する場合は、その文字をカウントしない場合が結果的にＰｗとしては大きくなる場合があるため、Ｐｗが最大となるような正解文字数ｋを選ぶようにしてもよい（７文字正解とすると、Ｐｗ＝Ｐａ（８，７）×Ｐｂ（７）＝０．９０×（０．９８×０．９７×０．９９×０．９８×０．９９×０．９７×０．３０）＝０．２３９だが、８文字目の正解を含めないで６文字正解とするとＰｗ＝Ｐａ（８，６）×Ｐｂ（６）＝０．８５×（０．９８×０．９７×０．９９×０．９８×０．９９×０．９７）＝０．７５２であるため、後者をＰｗとして採用する）。
【０２３０】
なお、文字毎に信頼度が付与されていないデータベースの場合は、検索語の長さｎと、一致した文字数ｋを用いてＰａ（ｎ，ｋ）を、照合した箇所の正当性を表す値としてもよい。
【０２３１】
なお、一致しなかった文字は今回情報として用いていないが、一致しなかった文字の信頼度が高い場合はその文字が正解である可能性が高い（すなわち、１文字だけ異なる単語が存在し、検索結果としては正当性が低い）と考えられるので、一致しない文字の信頼度を利用したペナルティを導入してもよい（一致しない文字の信頼度が予め定めた閾値よりも高い、または、そのような文字が予め定めた文字数よりも多い場合は、照合箇所の正当性を表すＰｗが閾値より大きくても検索結果として採用しないなど）。
【０２３２】
このように、単語の冗長性を利用して、すべての文字が一致しなくても誤認識を含んだテキスト文書中から検索が可能となる。また、一致しない文字の個数をどう決めたらよいかという問題も、実際の大量のテキストデータベースから図２７のような確率テーブルを用いて（式１）で検索箇所の正当性を数値化することによって解決することができる。
【０２３３】
（実施の形態１３）
実施の形態１３では、実施の形態１２で説明した確率テーブルに加えて、実施の形態３で説明した文字要素間の距離テーブルを用いて、検索処理が実行される。
【０２３４】
以下の説明では、「文字要素」を簡略化して「文字」という。
【０２３５】
以下、図２９を参照して、「・・・オックスフォード大学は・・・」というオリジナル文書を文字認識することによって得られる「・・・オッタヌフォード大学は・・・」という認識結果から検索語「オックスフォード」を検索する検索処理を説明する。認識結果は、文書データとしてメモリ１４０に格納される。メモリ１４０は、任意のタイプの記憶媒体であり得る。
【０２３６】
認識結果の各文字には、認識結果の確からしさ（正解確率）を表す信頼度が付与されている。実施の形態１２と同様に、検索を行う前に図２７に示される確率テーブルが算出される。
【０２３７】
検索時には、実施の形態１と同様に、各文字に付与された信頼度に基づいて、文字要素間の距離と比較される基準距離が決定される。実施の形態３と同様に、基準距離に基づいて、発生頻度（確率）が決定される。
【０２３８】
照合箇所（検索結果）の正当性を表すＰｗは、（式２）によって表される。
【０２３９】
Ｐｗ＝Ｐａ（ｎ，ｋ）    ・・・（式２）
ここで、確率Ｐａ（ｎ，ｋ）は、図２７に示される確率テーブルにおいて定義されている。
【０２４０】
認識結果そのものが一致した文字数は１，２，５，６，７，８文字目の６文字であるが、３文字目に関しては文字要素間テーブルを参照することにより、結果的に７文字が一致していることになる（信頼度０．４２の認識結果「タ」は、「ク」である確率（頻度）が０．３＞０である）。よって、Ｐｗ＝Ｐａ（８，７）＝０．９となる。ここで、予め定められた閾値を０．８０とすると、Ｐｗの値はこの閾値より大きいため、検索結果の正当性を肯定するようにしてもよい。
【０２４１】
しかし、検索の目的によっては検索したい文字列以外の文字列が検索されてしまう“検索ノイズ”をできるだけ減らしたいということもある。その場合は、より詳細な正当性の判定として、一致しなかった４文字目の「ヌ」について、距離の基準値（基準距離）を大きくする（すなわち、認識信頼度を小さく設定しなおし、距離の基準値（基準距離）を求める）ことにより、距離の基準値（基準距離）が２０のときには、発生頻度が０となるために検出することができなかった認識誤りを検出することが可能になる。
【０２４２】
一致しなかった文字に対して、すべての文字の可能性を許容したワイルドカードの扱いにすると、偶然１文字だけ異なる別の単語が検索されてしまう可能性が大きい。しかし、距離の基準値（基準距離）を少しだけ大きい値に再設定することにより、文字要素間のテーブルにおいて誤認識しやすい類似文字のみ、誤認識を想定して文字の検索を行うことが可能になる。その結果、検索ノイズを減らすことができる。
【０２４３】
また、距離の基準値（基準距離）を大きい値に再設定することによって、誤認識で認識信頼度が大きい場合に発生頻度が０となる場合（信頼度が大きいがために距離の基準値（基準距離）が小さめになるが、距離の基準値（基準距離）がもう少し大きければ頻度＞０となる場合）を救済することができる。
【０２４４】
なお、検索結果の正当性を表すＰｗの値に応じて、距離の基準値（基準距離）を大きくする幅（認識信頼度の下げ幅）を制御してもよい。また、そのような距離の基準値を大きくする（認識信頼度を小さくする）文字数を制御してもよい。
【０２４５】
なお、検索結果の正当性を表すＰｗの値に応じて、距離の基準値（基準距離）を大きくするか、ワイルドカード扱いにするかを制御してもよい。
【０２４６】
図３０は、実施の形態１３のあいまい検索処理の手順を示す。このあいまい検索処理は、ＣＰＵ１１０によって文書検索プログラムに従って実行される。
【０２４７】
はじめに、文字要素間の距離と比較される基準距離（初期値）が設定される（ステップＳ３００１）。この基準距離は、検索語に含まれる文字ごとに設定してもよいし、検索語に対して共通に設定してもよい。
【０２４８】
１文字単位の照合が行われ（ステップＳ３００２）、その照合結果に基づいて、検索語に相当する認識結果文字列の評価値が計算される（ステップＳ３００３）。例えば、評価値として（式１）および（式２）に示されるＰｗを使用することができる。
【０２４９】
次に、検索語に含まれるすべての文字が認識結果に一致しているか否かが判定される（ステップＳ３００４）。
【０２５０】
ステップＳ３００４における判定結果が「Ｙｅｓ」の場合には、評価値と所定の閾値１とが比較される（ステップＳ３００５）。
【０２５１】
評価値が所定の閾値１より大きい場合には、認識結果から検索語が検出されたと判定される（ステップＳ３００６）。
【０２５２】
評価値が所定の閾値１以下である場合には、検索結果が棄却（リジェクト）される（ステップＳ３００７）。このように検索結果を棄却する理由は、認識結果に含まれる文字の中に低い信頼度が付与された文字が多い場合に発生しやすい誤検出を抑制するためである。
【０２５３】
ステップＳ３００４における判定結果が「Ｎｏ」の場合には、評価値と所定の閾値２とが比較される（ステップＳ３００８）。
【０２５４】
評価値が所定の閾値２より大きい場合には、基準距離が変更され（ステップＳ３００９）、認識結果と一致しなかった検索語の文字について、１文字単位の照合がやり直される（ステップＳ３００２）。ステップＳ３００９においいて、基準距離の変更は、認識結果と一致しなかった検索語の文字についてのみ行われる。なお、基準距離の変更が検索語のすべての文字について行われてもよい。また、基準距離は初期値より大きい一定の値に変更されてもよいし、評価値に応じて変動する値（初期値より大きい可変値）に変更されてもよい。
【０２５５】
評価値が所定の閾値２以下である場合には、認識結果から検索語が検出されなかったと判定される（ステップＳ３０１０）。
【０２５６】
なお、ステップＳ３００９からステップＳ３００２に回帰する回数の上限値ｎが予め設定される。本実施の形態では、ｎ＝２である。上限値ｎを設ける理由は、評価値がいったん所定の閾値２を越えると、検索語に含まれるすべての文字が認識結果に一致するまで、ステップＳ３００９において基準距離の変更が行われてステップＳ３００２に回帰してしまうため、基準距離をいくら増やしても検索語に含まれるすべての文字が認識結果に一致しない場合には、無限ループに陥る可能性があるからである。上限値ｎを設けることにより、そのような無限ループに陥ることを回避することが可能になる。
【０２５７】
なお、確からしい検索結果の表示方法と、そうでない検索結果の表示方法とを区別することにより、検索結果の確からしさを分かりやすく表示することが好ましい。例えば、評価値に応じて、検索結果の表示方法を変更するようにすればよい。
【０２５８】
なお、実施の形態１２で説明した検索処理は、図３０に示されるステップＳ３００１の処理と、ステップＳ３００８の判定結果が「Ｙｅｓ」の場合の処理を除いて、実施の形態１３で説明した検索処理と同一である。実施の形態１２では、ステップＳ３００８の判定結果が「Ｙｅｓ」の場合、認識結果から検索語が検出されたと判定される。その後、検索処理は終了する。
【０２５９】
（実施の形態１４）
実施の形態１４は、実施の形態１２、１３で説明した検索処理の改良である。
【０２６０】
以下の説明では、「文字要素」を簡略化して「文字」という。
【０２６１】
以下、図３１を参照して、「・・・オックスフォードの学生達・・・」というオリジナル文書を文字認識することによって得られる「・・・オッタスフォード○学生達・・・」という認識結果から検索語「オックスフォード大学」を検索する検索処理を説明する。認識結果は、文書データとしてメモリ１４０に格納される。メモリ１４０は、任意のタイプの記憶媒体であり得る。
【０２６２】
認識結果の各文字には、認識結果の確からしさ（正解確率）を表す信頼度が付与されている。実施の形態１２、１３と同様に、検索を行う前に図２７に示される確率テーブルが算出される。
【０２６３】
検索時には、まず検索語「オックスフォード大学」が、複数の単語に分割され得るか否かが調べられる。この判定には、例えば、予め用意された単語辞書が使用される。本実施の形態では、予め用意された単語辞書には、「オックスフォード」「大学」という単語が存在していると仮定する。この場合、検索語「オックスフォード大学」は、「オックスフォード」＋「大学」という２つの単語に分割される。
【０２６４】
検索時には、「オックスフォード」という検索語の後に、「大学」という検索語がある場所が検索対象の文書データの中から探索される。各検索語についての探索のしかたは、実施の形態１２、１３で説明したものと同様である。
【０２６５】
もし、２つの単語に分割しないで検索した場合、図３１に示される例では、「オックスフォード大学」という１０文字の単語において１，２，４，５，６，７，８，１０文字目の８文字が一致する。また、通常Ｐａ（１０，８）は非常に大きいため、誤検出されて検索ノイズとなり易い。他の場所でも、単語「オックスフォード」が存在する近辺では検索がヒットし易くなり、検索ノイズが頻発してしまうという恐れがある。このように、複数の単語で長い検索語が形成されている場合には、検索語を、単語辞書などを用いて複数の単語に分割することにより、検索ノイズを低減することができる。
【０２６６】
なお、単語辞書には、通常の単語だけでなく、複数の単語に共通して表れ易い部分文字列が含まれていることが好ましい。例えば、「プランテーション」「オリエンテーション」「ステーション」などに含まれる「テーション」という文字列を辞書に含んでおき、検索時には、それぞれの文字列を「プラン」＋「テーション」、あるいは、「オリエン」＋「テーション」、あるいは、「ス」＋「テーション」と分割してそれぞれ検索することによって、検索語の一部が等しい別の単語が誤検出されるのを防ぐことができる。
【０２６７】
（産業上の利用可能性）
本発明によれば、文字要素と文字要素との間に、文字要素と文字要素との類似度に関連する距離が予め設定されている。この文字要素間の距離と所定の基準距離との比較結果に基づいて、認識結果に含まれる文字要素が検索キーワードに含まれる文字要素に一致するか否かが判定される。所定の基準距離を認識結果の信頼度に応じて可変にすることにより、認識結果に応じて許容可能な誤り度合を動的に変更しながら検索を行うことが可能になる。
【０２６８】
また、文字要素間の距離をテーブルの形式で予め設定しておくことにより、検索時に複雑な距離計算を行う必要がない。その結果、検索を高速に行うことが可能にある。
【０２６９】
また、特定の文字要素に対して、その特定の文字要素に接続される可能性のある複数の文字要素を決定することにより、オリジナル文書のレイアウトを誤って認識した場合でも、認識結果から検索キーワードを正しく検出することが可能になる。その結果、オリジナル文書の文章が縦書きであるか横書きであるかを誤って認識した場合や、改行後に継続する行を誤って認識した場合でも、認識結果から検索キーワードを正しく検出することが可能になる。
【図面の簡単な説明】
【図１】図１は、本発明の実施の形態１〜実施の形態１４に共通の検索装置１の構成を示すブロック図である。
【図２】図２は、文字要素間の距離テーブルの一例を示す図である。
【図３Ａ】図３Ａは、１つの文字片からなる文字要素の例を示す図である。
【図３Ｂ】図３Ｂは、１つの文字および１つの文字片からなる文字要素の例を示す図である。
【図４】図４は、オリジナル文書とそのオリジナル文書を文字認識することによって得られる認識結果との関係を示す図である。
【図５】図５は、文書データ（認識結果）に含まれる各文字要素に対して文字認識の信頼度が検索パラメータとして予め設定されている例を示す図である。
【図６】図６は、「人」・「口」・「構」・「成」の各文字要素と他の文字要素との距離関係の一部を示す図である。
【図７】図７は、「明朝体」というフォント種に対応するように用意された距離テーブルの例を示す図である。
【図８Ａ】図８Ａは、複数の文字要素を単一の文字要素として扱った結果生じる誤認識の例を示す図である。
【図８Ｂ】図８Ｂは、単一の文字要素を複数の文字要素として扱った結果生じる誤認識の例を示す図である。
【図９】図９は、図８Ａおよび図８Ｂに示される文字要素を含む文字要素間の距離テーブルの一例を示す図である。
【図１０Ａ】図１０Ａは、発生頻度付きの距離テーブルの例を示す図である。
【図１０Ｂ】図１０Ｂは、発生頻度付きの距離テーブルの他の例を示す図である。
【図１０Ｃ】図１０Ｃは、発生頻度付きの距離テーブルの他の例を示す図である。
【図１１】図１１は、文字認識の信頼度、基準距離および発生頻度の関係の一例を示す図である。
【図１２】図１２は、文字認識の信頼度、基準距離および発生頻度の関係の一例を示す図である。
【図１３】図１３は、発生頻度付きの距離テーブルを作成する処理の手順を示すフローチャートである。
【図１４】図１４は、発生頻度付きの距離テーブルを用いて、認識結果から検索キーワードの文字要素列を検索する検索処理の手順を示すフローチャートである。
【図１５】図１５は、認識結果の候補が追加された例を示す図である。
【図１６】図１６は、段落Ａ〜段落Ｄを有するオリジナル文書の例を示す図である。
【図１７】図１７は、段落間の接続関係の認識結果を示すテーブルの例を示す図である。
【図１８】図１８は、段落間の接続関係を考慮して、認識結果から検索キーワードの文字要素列を検索する検索処理の手順を示すフローチャートである。
【図１９】図１９は、段落間の接続関係の認識結果を示すテーブルの例を示す図である。
【図２０】図２０は、オリジナル文書を文字認識することによって得られる認識結果の例を示す図である。
【図２１】図２１は、横書きのレイアウトを有するオリジナル文書の例を示す図である。
【図２２Ａ】図２２Ａは、オリジナル文書の文章が縦書きであるという仮定の下で文字認識を実行した場合の認識結果を示すテーブルの例を示す図である。
【図２２Ｂ】図２２Ｂは、オリジナル文書の文章が横書きであるという仮定の下で文字認識を実行した場合の認識結果を示すテーブルの例を示す図である。
【図２３】図２３は、オリジナル文書とそれを文字認識することによって得られる文字認識結果との関係を示す図である。
【図２４】図２４は、レイアウトを有するオリジナル文書の例を示す図である。
【図２５】図２５は、オリジナル文書とそれを文字認識することによって得られる文字認識結果との関係を示す図である。
【図２６】図２６は、認識結果から検索語を検索する検索処理を説明するための図である。
【図２７】図２７は、確率テーブルの一例を示す図である。
【図２８】図２８は、認識結果から検索語を検索する検索処理を説明するための図である。
【図２９】図２９は、認識結果から検索語を検索する検索処理を説明するための図である。
【図３０】図３０は、あいまい検索処理の手順を示すフローチャートである。
【図３１】図３１は、認識結果から検索語を検索する検索処理を説明するための図である。
【図１】
0003599180.tif 000003
【図２】
0003599180.tif 000004
【図３Ａ】
0003599180.tif 000005
【図３Ｂ】
0003599180.tif 000006
【図４】
0003599180.tif 000007
【図５】
0003599180.tif 000008
【図６】
0003599180.tif 000009
【図７】
0003599180.tif 000010
【図８Ａ】
0003599180.tif 000011
【図８Ｂ】
0003599180.tif 000012
【図９】
0003599180.tif 000013
【図１０Ａ】
0003599180.tif 000014
【図１０Ｂ】
0003599180.tif 000015
【図１０Ｃ】
0003599180.tif 000016
【図１１】
0003599180.tif 000017
【図１２】
0003599180.tif 000018
【図１３】
0003599180.tif 000019
【図１４】
0003599180.tif 000020
【図１５】
0003599180.tif 000021
【図１６】
0003599180.tif 000022
【図１７】
0003599180.tif 000023
【図１８】
0003599180.tif 000024
【図１９】
0003599180.tif 000025
【図２０】
0003599180.tif 000026
【図２１】
0003599180.tif 000027
【図２２Ａ】
0003599180.tif 000028
【図２２Ｂ】
0003599180.tif 000029
【図２３】
0003599180.tif 000030
【図２４】
0003599180.tif 000031
【図２５】
0003599180.tif 000032
【図２６】
0003599180.tif 000033
【図２７】
0003599180.tif 000034
【図２８】
0003599180.tif 000035
【図２９】
0003599180.tif 000036
【図３０】
0003599180.tif 000037
【図３１】
0003599180.tif 000038