(57)【特許請求の範囲】
【請求項１】
スキャンされた帳票画像から所定のキーワードを抽出する帳票処理のための帳票処理プログラムにおいて、
コンピュータを、
前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段、
抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段、
項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段、
前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段、として機能させ、
前記帳票論理定義体には、前記キーワードを構成する前記項目に対応する項目文字列が定義されており、
前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、
前記項目文字列候補抽出手段は、前記文字認識結果に前記項目文字列の文字が検出された場合は、該当する前記項目文字列の文字に投票し、投票された文字間において前記項目文字列としての関係を満たす組み合わせを前記項目文字列候補として抽出し、
前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、
ことを特徴とする帳票処理プログラム。
【請求項２】
スキャンされた帳票画像から所定のキーワードを抽出する帳票処理のための帳票処理プログラムにおいて、
コンピュータを、
前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段、
抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段、
項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段、
前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段、として機能させ、
前記帳票論理定義体には、前記キーワードを構成する前記データに対応し、データ文字種とデータ正規表現を含むデータ領域属性が定義されており、
前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、
前記データ文字列候補抽出手段は、前記文字認識結果に前記データ正規表現における各要素が検出された場合は、該当する前記データ正規表現の要素に投票し、投票された要素間において前記データ正規表現としての関係を満たす組み合わせを前記データ文字列候補として抽出し、
前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、
ことを特徴とする帳票処理プログラム。
【請求項３】
前記対応付け手段は、前記項目文字列候補と前記データ文字列候補が対応する可能性を数え上げ、前記項目文字列候補と前記データ文字列候補が対応する個数が全体で最大となるよう対応関係を決定する、
ことを特徴とする請求項１または２の何れか一項に記載の帳票処理プログラム。
【請求項４】
前記文字列候補抽出手段は、前記文字列候補を構成する文字の文字配置の妥当性を検証し、妥当性が検証されたものを前記文字列候補とする、
ことを特徴とする請求項１または２の何れか一項に記載の帳票処理プログラム。
【請求項５】
前記文字認識手段は、前記帳票論理定義体に基づき、前記帳票画像に出現する可能性のある文字種に認識対象を限定して文字認識を行う、
ことを特徴とする請求項１または２の何れか一項に記載の帳票処理プログラム。
【請求項６】
前記文字列候補抽出手段は、前記文字列候補が抽出された後、前記文字列候補に対応する前記キーワードについて前記帳票論理定義体に定義される前記文字列を構成する文字の集合に認識対象を限定して文字認識を行って前記文字認識結果を更新し、更新された前記文字認識結果を用いて、再び文字認識された文字が前記文字列としての関係を満たす文字列候補を抽出する、
ことを特徴とする請求項１または２の何れか一項に記載の帳票処理プログラム。
【請求項７】
前記文字列候補抽出手段は、任意の行に配置された前記キーワードを構成する文字列としての位置関係を満たす組み合わせを第１の文字列単位、前記第１の文字列単位とは異なる行に配置された第２の組み合わせを第２の文字列単位とし、前記第１の文字列単位と前記第２の文字列単位が前記帳票論理定義体に定義される文字列としての関係を満たす組み合わせを複数行にわたる前記文字列候補として抽出する、
ことを特徴とする請求項１または２の何れか一項に記載の帳票処理プログラム。
【請求項８】
スキャンされた帳票画像から所定のキーワードを抽出する帳票処理装置において、
前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段と、
抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段と、
項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段と、
前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段と、を有し、
前記帳票論理定義体には、前記キーワードを構成する前記項目に対応する項目文字列が定義されており、
前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、
前記項目文字列候補抽出手段は、前記文字認識結果に前記項目文字列の文字が検出された場合は、該当する前記項目文字列の文字に投票し、投票された文字間において前記項目文字列としての関係を満たす組み合わせを前記項目文字列候補として抽出し、
前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、
ことを特徴とする帳票処理装置。
【請求項９】
スキャンされた帳票画像から所定のキーワードを抽出する帳票処理装置において、
前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段と、
抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段と、
項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段と、
前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段と、を有し、
前記帳票論理定義体には、前記キーワードを構成する前記データに対応し、データ文字種とデータ正規表現を含むデータ領域属性が定義されており、
前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、
前記データ文字列候補抽出手段は、前記文字認識結果に前記データ正規表現における各要素が検出された場合は、該当する前記データ正規表現の要素に投票し、投票された要素間において前記データ正規表現としての関係を満たす組み合わせを前記データ文字列候補として抽出し、
前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、
ことを特徴とする帳票処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は帳票処理プログラムおよび帳票処理装置に関し、特にスキャンされた帳票画像から所定のキーワードを抽出する帳票処理のための帳票処理プログラムおよび帳票処理装置に関する。
【背景技術】
【０００２】
従来、紙文書を電子化する帳票入力業務には、定型帳票入力と非定型帳票入力の２つのパターンがあった。
定型帳票入力は、入力される帳票の種類が既知の場合の入力方法で、入力される帳票のキーワード位置などが記されたレイアウト定義体が予め作成される。そして、スキャンされた帳票画像に対してフォーム識別を行い、フォームに対応するレイアウト定義体に基づきキーワードを自動抽出する。しかしながら、定型帳票入力は、帳票の種類が既知でない場合には対応できないという問題点がある。したがって、対象とする帳票それぞれについてレイアウト定義体を予め人手で作成しておかなければならないが、それには非常にコストがかかる。【０００３】
一方、非定型帳票入力は、入力される帳票の種類が既知でない場合の入力方法で、レイアウト定義体を作成しておくことができない。このため、人手によって入力作業を行わなければならず、入力コストが膨大となっていた。【０００４】
このように、定型帳票入力および非定型帳票入力ともに問題点があり、帳票入力業務を効率化するため、非定型の帳票からキーワードを自動抽出する手法が求められていた。
そこで、帳票のイメージを認識し、予め設定されたキーワードに基づき、読み取り領域を検索して抽出するとともに、その領域内の認識データを取得する帳票処理装置が提案されている（たとえば、特許文献１参照）。【０００５】
また、キーワード抽出の確度を上げるため、文書画像から罫線などの形状に応じた仮のセル領域を抽出してセル内の画像を文字認識し、認識結果から指定キーワードに対応する文字列を検索し、検索された文字列からセル領域を特定する画像処理方法も提案されている（たとえば、特許文献２参照）。
【特許文献１】特開平１１−２３８１６５号公報（段落番号〔０００９〕〜〔００１２〕、図３）
【特許文献２】特開２００１−３１２６９１号公報（段落番号〔００１３〕〜〔００１８〕、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来、非定型の帳票からキーワードを自動抽出する場合には、帳票画像に対して、レイアウト認識を行って読み取り領域を決め、決められた読み取り領域の文字認識を行い、認識された文字列からキーワードに相当するものを単語マッチングで検索していた。ところが、レイアウト定義のない非定型の帳票画像に対してレイアウト認識と文字認識を正しく行うことは容易ではなく、失敗する可能性が常にある。しかしながら、従来の帳票処理は、レイアウト認識および文字認識が行われて抽出された文字列でマッチングを行うため、認識が正しくないとキーワードを抽出することができなくなるという問題点がある。【０００７】
一例を挙げて説明する。図１９は、レイアウト認識失敗でキーワードを正しく抽出できないケースを示した図である。（Ａ）は、帳票イメージであり、（Ｂ）は、（Ａ）の帳票イメージについてレイアウト認識されたテキストブロックを示した図である。【０００８】
図の例では、帳票の汚れなどによって、スキャナで読み取った帳票イメージ９０１にノイズ９０２が発生している。この帳票イメージ９０１についてレイアウト認識を行うと、「御見積（金額）」と「御見積（品名）」との間にノイズ９０２があるため、これらを１つのブロックと認識してしまい、ノイズを含めたテキストブロック９０３が誤って抽出される。これにより、「御見積」と「金額」および「御見積」と「品名」が分離されてしまう。続いて、このテキストブロックに対して文字認識を行うと、たとえば、テキストブロック９０３は「御見積・・・と御見積」、テキストブロック９０４は「金額」、テキストブロック９０５は「品名」、テキストブロック９０６は「￥１２０，０００」およびテキストブロック９０７は「パソコン」と文字認識が行われる。したがって、マッチング検索を行うキーワードに「御見積金額」や「御見積品名」があっても、文字認識結果からは検出されないため、キーワードが抽出されないことになる。【０００９】
このように、レイアウト認識に失敗すれば、文字を正しく認識しても文字の並びが正しくなくなるので、キーワードを抽出することができなくなるという問題がある。また、レイアウト認識が正しくても、文字認識が失敗すれば同様の問題が発生する。【００１０】
さらに、キーワードには、項目とデータの２種類の要素があるが、従来の帳票処理では、項目とデータの正しい対応付けを行うことができない場合があるという問題点がある。
図２０は、項目とデータの対応付けが難しいケースを示した図である。（Ａ）は、１つのデータに２つの項目が対応する可能性がある場合、（Ｂ）は、１つの項目に２つのデータが対応する可能性がある場合を示している。【００１１】
（Ａ）の場合、帳票イメージ９１０に対するレイアウト認識処理および文字認識処理が行われ、項目「金額」９１１および「合計」９１５と、データ「￥４０，０００」９１２、「￥４２，０００」９１３および「￥８２，０００」９１４を得る。それぞれのテキストブロックの位置関係に基づき、垂直方向または水平方向の座標値がほぼ等しい項目とデータ、すなわち、垂直方向または水平方向に並んでいると見なせる項目とデータを対応付けする。図の例では、「￥４０，０００」９１２と「￥４２，０００」９１３は、垂直方向に並んで配置されている「金額」９１１と対応付けることができる。ところが、「￥８２，０００」９１４については、垂直方向に並ぶ「金額」９１１と、水平方向に並ぶ「合計」９１５のどちらにも対応付けることができる。どちらが正しいかは、位置関係からは判定できない。【００１２】
一方、（Ｂ）の場合、帳票イメージ９２０に対するレイアウト認識処理と文字認識処理により、項目「発行日」９２１および「見積有効期限」９２３と、データ「２００５年１２月０２日」９２２および「２００５年１２月１６日」９２４が得られる。それぞれのテキストブロックの位置関係に基づき、「見積有効期限」９２３と「２００５年１２月１６日」９２４を対応付けることができる。ところが、「発行日」９２１には、水平方向に並ぶ「２００５年１２月０２日」９２２と、垂直方向に並ぶ「２００５年１２月１６日」９２４のどちらも対応付けることができる。どちらが正しいかは、位置関係からは判定できない。なお、「２００５年１２月１６日」９２４について見れば、「発行日」９２１および「見積有効期限」９２３の両方と組になる可能性がある。【００１３】
このように、抽出されたキーワードの項目とデータを正しく対応付けすることが難しい場合があるが、従来方式では、どれが正しい対応なのかを選択する方法が開示されていない。【００１４】
本発明はこのような点に鑑みてなされたものであり、認識結果の欠損やノイズがあってもキーワード抽出を安定的に行うことが可能な帳票処理プログラムを提供することを目的とする。また、本発明の他の目的は、キーワードの項目とデータの対応関係を全体の整合性を考慮して決定することが可能な帳票処理装置にある。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、スキャンされた帳票画像から所定のキーワードを抽出する帳票処理のための帳票処理プログラムにおいて、コンピュータを、前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段、抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段、項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段、前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段、として機能させ、前記帳票論理定義体には、前記キーワードを構成する前記項目に対応する項目文字列が定義されており、前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、前記項目文字列候補抽出手段は、前記文字認識結果に前記項目文字列の文字が検出された場合は、該当する前記項目文字列の文字に投票し、投票された文字間において前記項目文字列としての関係を満たす組み合わせを前記項目文字列候補として抽出し、前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、ことを特徴とする帳票処理プログラムが提供される。
また、上記課題を解決するために、スキャンされた帳票画像から所定のキーワードを抽出する帳票処理のための帳票処理プログラムにおいて、コンピュータを、前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段、抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段、項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段、前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段、として機能させ、前記帳票論理定義体には、前記キーワードを構成する前記データに対応し、データ文字種とデータ正規表現を含むデータ領域属性が定義されており、前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、前記データ文字列候補抽出手段は、前記文字認識結果に前記データ正規表現における各要素が検出された場合は、該当する前記データ正規表現の要素に投票し、投票された要素間において前記データ正規表現としての関係を満たす組み合わせを前記データ文字列候補として抽出し、前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、ことを特徴とする帳票処理プログラムが提供される。
【００１６】
また、上記課題を解決するために、スキャンされた帳票画像から所定のキーワードを抽出する帳票処理装置において、前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段と、抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段と、項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段と、前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段と、を有し、前記帳票論理定義体には、前記キーワードを構成する前記項目に対応する項目文字列が定義されており、前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、前記項目文字列候補抽出手段は、前記文字認識結果に前記項目文字列の文字が検出された場合は、該当する前記項目文字列の文字に投票し、投票された文字間において前記項目文字列としての関係を満たす組み合わせを前記項目文字列候補として抽出し、前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、ことを特徴とする帳票処理装置が提供される。
また、上記課題を解決するために、スキャンされた帳票画像から所定のキーワードを抽出する帳票処理装置において、前記帳票画像のレイアウトを認識し、前記帳票画像における文字画像の読み取り領域を抽出するレイアウト認識手段と、抽出された前記読み取り領域の文字画像に対し文字認識を施し、認識された文字を文字認識結果として出力する文字認識手段と、項目とデータの２要素から成るキーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体に基づき、前記帳票論理定義体に前記キーワードとして定義される文字列に含まれる文字を前記文字認識結果から抽出し、抽出された文字間の関係が前記キーワードを構成する文字列としての位置関係を満たす組み合わせを文字列候補とする文字列候補抽出手段と、前記キーワードについて、要素に応じた前記文字列候補を前記帳票画像上の位置関係に応じて対応付け、前記キーワードを構成する前記文字列候補の組み合わせを決定する対応付け手段と、を有し、前記帳票論理定義体には、前記キーワードを構成する前記データに対応し、データ文字種とデータ正規表現を含むデータ領域属性が定義されており、前記文字列候補抽出手段は、前記項目に関する項目文字列候補を抽出する項目文字列候補抽出手段、および前記データに関するデータ文字列候補を抽出するデータ文字列候補抽出手段として機能し、前記データ文字列候補抽出手段は、前記文字認識結果に前記データ正規表現における各要素が検出された場合は、該当する前記データ正規表現の要素に投票し、投票された要素間において前記データ正規表現としての関係を満たす組み合わせを前記データ文字列候補として抽出し、前記対応付け手段は、前記項目文字列候補と前記データ文字列候補を対応付ける処理を実行する、ことを特徴とする帳票処理装置が提供される。
【発明の効果】
【００１７】
本発明の帳票処理は、帳票のレイアウトに対応するレイアウト定義体ではなく、帳票の有する論理構造を定義した帳票論理定義体に基づきキーワードを自動抽出することにより、同じ論理構造を備えた帳票であればレイアウトが異なっていてもキーワードを自動抽出することができる。また、キーワードを抽出する場合には、キーワードとして定義された文字列に含まれる文字を文字認識結果から抽出し、各文字間の関係が帳票論理定義体に定義された文字列としての関係を満たす組み合わせを文字列候補として抽出し、キーワードを構成する文字列候補同士を対応付ける。このため、キーワードとして定義される文字列と完全に一致しなくても、文字列としての関係を満たすと見なされれば、キーワードとして抽出される。この結果、レイアウト認識の失敗や文字認識の失敗に影響を受けることなく、安定的なキーワード抽出が可能となる。【００１８】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に適用される発明の概念図である。
【図２】本実施の形態の帳票処理装置のハードウェア構成例を示した図である。
【図３】本実施の形態の帳票処理装置のソフトウェア構成例を示した図である。
【図４】本実施の形態の論理定義体の一例を示した図である。
【図５】本実施の形態の帳票処理装置に入力される帳票画像の一例である。
【図６】本実施の形態における文字認識結果からの文字抽出を示した図である。
【図７】本実施の形態における項目文字列マッチングの投票結果を示した図である。
【図８】本実施の形態において生成されるグラフの一例を示した図である。
【図９】本実施の形態の帳票処理装置における整合性グラフテーブルの一例を示した図である。
【図１０】本実施の形態における文字配置の妥当性検証の一例を示した図である。
【図１１】複数行にわたる項目文字列の一例を示した図である。
【図１２】本実施の形態における項目抽出処理の手順を示したフローチャートである。
【図１３】本実施の形態における項目文字列マッチング処理の手順を示したフローチャートである。
【図１４】本実施の形態における項目文字列候補決定処理の手順を示したフローチャートである。
【図１５】本実施の形態における＊部抽出の一例を示した図である。
【図１６】本実施の形態におけるデータ抽出処理の手順を示したフローチャートである。
【図１７】本実施の形態におけるデータ文字列マッチング処理の手順を示したフローチャートである。
【図１８】本実施の形態における項目・データ対応付け処理の手順を示したフローチャートである。
【図１９】レイアウト認識失敗でキーワードを正しく抽出できないケースを示した図である。
【図２０】項目とデータの対応付けが難しいケースを示した図である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。【００２１】
本発明にかかる帳票処理装置１は、読み取り領域を抽出するレイアウト認識手段１１、読み取り領域の文字認識を行う文字認識手段１３、文字列候補を抽出する文字列候補抽出手段１５、および文字列候補の対応付けを行う対応付け手段１６の処理手段と、認識辞書データベース１２および帳票論理定義体データベース１４の記憶手段を有する。なお、帳票処理装置１の各処理手段は、コンピュータが帳票処理プログラムを実行することによって、その処理機能が実現される。【００２２】
レイアウト認識手段１１は、入力された帳票画像のレイアウトを認識し、文字画像を含む読み取り領域を抽出し、文字認識手段１３に通知する。レイアウト認識手法は、様々な手法が知られており、ここでは、そのうちの任意の手法を用いるとする。【００２３】
認識辞書データベース１２は、文字画像の文字認識に用いる認識辞書が格納される。
文字認識手段１３は、抽出された読み取り領域の文字画像について、認識辞書データベース１２を参照して文字認識を行い、認識された文字を文字認識結果として文字列候補抽出手段１５へ出力する。文字認識処理は、通常は全字種を認識対象として行うが、帳票論理定義体データベース１４の帳票論理定義体に定義される文字列および文字種に認識対象を限定して文字認識を行うこともできる。文字種が限定されれば、文字認識の確度を上げることができる。【００２４】
帳票論理定義体データベース１４には、キーワードを構成する文字列を同種の帳票に共通する論理構造に応じて定義した帳票論理定義体が格納される。帳票の論理構造は、意味、項目およびデータと、それらの間に成り立つ関係からなる。帳票論理構造定義体には、キーワードを構成する２種類の要素である項目とデータに関する定義がカテゴリごとに設定されている。項目は、キーワードの意味に対応する表現で、帳票に記述される項目文字列が定義される。データは、キーワードの意味に対応する実際の値であり、帳票に記述される際の正規表現と文字種などを含むデータ領域属性が定義される。【００２５】
文字列候補抽出手段１５は、帳票論理定義体データベース１４に格納される帳票論理定義体に基づき、文字認識された文字が帳票論理定義体に定義される文字列としての関係を満たす組み合わせを文字列候補として抽出する。具体的には、項目文字列候補抽出手段１５ａは、帳票論理定義体に定義される項目文字列をキーとして、文字認識結果から定義された文字列に含まれる文字を抽出する。そして、項目文字列を構成する各文字に投票し、投票された文字間の位置関係の整合性を評価し、互いに文字列としての位置関係を満たす組み合わせを求める。整合性の評価には、グラフ理論を用いて、たとえば、投票された文字をノードとし、すべての２つのノードに対し、対応する文字について位置に関する整合性を判定し、整合性があると判断されたとき、それらのノードをパスで結ぶことによりグラフを作成する。次に、このグラフから、グラフの極大完全部分グラフであるクリークを抽出する。クリークを構成するすべてのノードは、自分以外のノードとパスで結ばれているので、クリークを構成するノードはすべて整合性を満たしている。各クリークの評価値を計算し、最も良いクリークを決定することにより、項目文字列のマッチング度が定まる。そして、最も良いマッチング度の項目文字列を項目文字列候補として出力する。また、データ文字列候補抽出手段１５ｂは、帳票論理定義体に定義されるデータ領域属性に基づき、文字認識結果からデータ文字列候補を抽出する。まず、データ領域属性に定義されるデータの正規表現のうち、値を表す部分を文字認識結果から抽出し、値部としてまとめておく。さらに、まとめられた値部と、正規表現に含まれる文字列について、データ文字列候補抽出手段１５ｂと同様の処理を行い、データ文字列候補を決定する。【００２６】
対応付け手段１６は、キーワードを構成する文字列として、項目文字列候補抽出手段１５ａにより決定された項目文字列候補と、データ文字列候補抽出手段１５ｂにより決定されたデータ文字列候補について、帳票論理定義体に基づき、位置関係に応じた対応付けを行い、項目文字列とデータ文字列の組み合わせを決定する。たとえば、項目文字列とデータ文字列の相対的な位置関係から組み合わせを生成し、生成された組み合わせをノードとし、２つの組み合わせ間の組み合わせ上の整合性を調べ、整合性があると判断されたとき、それらをパスで結ぶことにより、グラフを生成する。そして、グラフからクリークを抽出し、各クリークの評価値を計算し、最も良いクリークを決定することにより、項目文字列とデータ文字列の組み合わせを決定する。【００２７】
このような構成の帳票処理装置１の動作について説明する。
帳票論理定義体データベース１４には、予め、対象の帳票の論理構造を定義した帳票論理定義体を格納しておく。【００２８】
帳票画像が入力されると、レイアウト認識手段１１は、レイアウト認識を行って文字画像の読み取り領域を抽出する。文字認識手段１３は、認識辞書データベース１２に格納される認識辞書を参照し、抽出された読み取り領域の文字認識を行い、認識された文字から文字認識結果を生成する。ここまでの処理で、帳票画像上の文字が文字認識され、文字認識結果として文字列候補抽出手段１５へ出力される。【００２９】
項目文字列候補抽出手段１５ａは、文字認識結果から、帳票論理定義体データベース１４に格納される帳票論理定義体に定義される項目文字列に含まれる文字を抽出し、抽出された各文字に投票する。そして、投票された文字の間で、位置に関する整合性を判定し、互いに文字列としての関係を満たす組み合わせを求め、項目文字列候補を決定する。一方、データ文字列候補抽出手段１５ｂは、文字認識結果から、帳票論理定義体に定義されるデータ領域属性に基づき、正規表現のうち値を表す部分を文字認識結果から抽出し、値部としてまとめておく。さらに、文字認識結果から、正規表現の文字列と合わせ、項目文字列候補抽出手段１５ａと同様に、互いに文字列としての関係を満たす組み合わせを求め、データ文字列候補として抽出する。対応付け手段１６は、文字列候補抽出手段１５が決定した項目文字列候補とデータ文字列候補を、帳票論理定義体に定義される項目とデータの位置関係に基づいて対応付けし、項目文字列候補とデータ文字列候補の組み合わせを決定する。【００３０】
以上の処理手順をカテゴリごとに繰り返し、全カテゴリのキーワードが抽出される。
このように、本発明にかかる帳票処理装置１では、キーワードを定義した帳票論理定義体に基づき、文字認識された各文字が帳票論理定義体に定義される文字列としての関係を満たす組み合わせの文字集合のうち、最もマッチング度の高いものを選択する。このため、文字認識結果が一部誤っていても、他の正しい文字認識結果によってマッチングがとれるので、正しいマッチングが可能となる。また、同様にして、レイアウト認識が誤り、文字認識結果が正しい並びをしていなくても、正しいマッチングが可能となる。そして、項目文字列とデータ文字列の組み合わせが複数考えられるときでも、全体として最も整合性のある組み合わせを取り出せるので、正しい結果が得られることになる。【００３１】
以下、実施の形態を図面を参照して詳細に説明する。
図２は、本実施の形態の帳票処理装置のハードウェア構成例を示した図である。
帳票処理装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。【００３２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、スキャナ２０に接続されており、スキャナ２０が読み取った帳票画像データが送られてきたら、バス１０７を介してＣＰＵ１０１に送信する。なお、スキャナ２０は、直接バス１０７を介して接続するとしてもよい。【００３３】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、帳票処理装置１００の処理機能を実現するソフトウェア構成について説明する。図３は、本実施の形態の帳票処理装置のソフトウェア構成例を示した図である。【００３４】
帳票処理装置１００は、レイアウト認識部１１０、文字認識部１３０およびキーワード抽出部１４０の処理部と、認識辞書データベース１２０と論理定義体データベース１５０のデータベースを有している。【００３５】
キーワード抽出部１４０は、項目文字列候補を抽出する項目抽出部１６０、データ文字列候補を抽出するデータ抽出部１７０および項目文字列候補とデータ文字列候補とを対応付ける対応付け部１８０を有する。【００３６】
レイアウト認識部１１０は、スキャナが読み取った帳票画像のレイアウトを認識し、文字画像を含む読み取り領域を抽出するレイアウト認識手段である。
認識辞書データベース１２０には、文字認識に用いる辞書情報が格納される。【００３７】
文字認識部１３０は、レイアウト認識部１１０が抽出した読み取り領域に対し文字認識を行い、文字認識結果を出力する文字認識手段である。
論理定義体データベース１５０には、同種の帳票に共通する論理構造を定義するよう帳票論理定義体（以下、論理定義体とする）が格納される。たとえば、見積書であれば、「日付情報」、「依頼番号」などが含まれるというように、同じ種類の帳票であれば、レイアウトは異なっていても含まれる情報項目など、共通する箇所が多くある。これらをまとめたものが論理構造である。帳票の論理構造は、意味、項目、データからなる組と、それらの間に成り立つ関係からなる。意味は、帳票における表現機能を表す。項目は、その意味に対応する表現機能が実際に帳票で表現される文字列を表す。データは、意味に対応する表現機能において、実際の値を表す。それらの間に成り立つ関係は、組同士の関係を表し、対応関係や、数式が成立する関係などがある。詳細は後述するが、論理定義体データベース１５０には、項目については項目文字列が定義され、データについてはデータ領域属性が定義されている。【００３８】
項目抽出部１６０は、文字認識結果投票１６１、グラフ生成（整合性評価）１６２、最大クリーク決定１６３および項目文字列候補決定１６４のモジュールによってその処理機能を実現している。文字認識結果投票１６１は、文字認識結果と論理定義体に定義される項目文字列に含まれる文字を照合し、検出された場合は、定義されている項目文字列を構成する文字に投票する。グラフ生成（整合性評価）１６２は、文字認識結果投票により得られた各文字間の整合性を評価し、グラフを生成する。具体的には、投票された文字をノードとし、各文字間に文字列としての位置関係の整合性があるかどうかを判断する。たとえば、２文字間における論理定義体データベース１５０に定義される項目文字列としての文字の並び順に基づく位置関係（項目文字列に「注文番号」が定義されているとすると、「文」に対し「番」または「号」が文字の並び順で後ろに配置されていればよい）、文字同士の位置関係（同一行にあるか）などに基づき、整合性を判断し、整合性があれば、ノード間をパスで結ぶ。この手順を各文字（ノード）について順次実行し、グラフを生成する。最大クリーク決定１６３は、グラフ生成（整合性評価）１６２によって作成されたグラフからクリークを抽出し、クリークの中から妥当なものを選択し、最も高いマッチング率の最大クリークを決定する。マッチング率は、たとえば、クリークを含む文字集合に含まれるノードの割合などにより算出される。１つのカテゴリに複数の項目文字列が定義されている場合、それぞれの項目文字列ごとに最大クリークが決定される。そこで、カテゴリで１つの項目文字列候補を選択する。項目文字列候補決定１６４は、カテゴリに属する項目文字列の中で、最大クリーク決定１６３により決定された最大クリークのうち、最も良いマッチング度のものを項目文字列候補として出力する。【００３９】
ここで、グラフについて説明する。グラフは、ノード（節点・頂点）の集合と、ノードをつなぐパス（枝、辺）の集合で構成される「つながり方」に着目して抽象化された「点とそれを結ぶ線」の概念であり、グラフが持つ様々な性質を探求するのがグラフ理論である。また、グラフ中の任意の２頂点間にパスが張られている頂点集合はクリークと呼ばれ、クリークの中で最大のものを見つける手法を最大クリーク抽出と呼ぶ。グラフから最大クリークを抽出する手法はよく知られており、たとえば、「Ｃ．Ｂｒｏｎ  ａｎｄ  Ｊ．Ｋｅｒｂｏｓｃｈ，“Ｆｉｎｄｉｎｇ  ａｌｌ  ｃｌｉｑｕｅｓ  ｏｆ  ａｎ  ｕｎｄｉｒｅｃｔｅｄ  ｇｒａｐｈ”,  Ｃｏｍｍｕｎ．ＡＣＭ，Ｖｏｌ．１６，Ｎｏ．９，ｐｐ５７５−５７７，１９７３」に開示されている。【００４０】
データ抽出部１７０は、＊部抽出１７１、文字認識結果投票１７２、グラフ生成（整合性評価）１７３およびデータ文字列候補決定（最大クリーク決定）１７４のモジュールによってその処理機能を実現している。固定の文字列で表現される項目と異なり、データを表す文字を限定することはできないが、データを表現する形式（以下、正規表現とする）とデータの文字種は定義することができる。たとえば、日付は、「＊年＊月＊日」と表現できる。＊は、任意の数字または記号を表す。以下、「＊」で示したあらゆる文字の代わりになる記号をワイルドカードと呼ぶ。＊部抽出１７１は、文字認識結果からデータのワイルドカード部分をまとめて抽出し、全体を＊部としておく。文字認識結果投票１７２は、文字認識結果から抽出されるデータの正規表現に含まれる文字列と、＊部について、文字認識結果投票１６１と同様に投票処理を行う。そして、グラフ生成（整合性評価）１７３では、グラフ生成（整合性評価）１６２と同様にグラフを作成し、データ文字列候補決定（最大クリーク決定）１７４において項目文字列候補決定１６４と同様にして最も高いマッチング率の最大クリークをデータ文字列候補として決定する。【００４１】
対応付け部１８０は、項目・データ組み合わせ１８１、グラフ生成（整合性評価）１８２、組み合わせ決定（最大クリーク決定）１８３のモジュールによってその処理機能を実現している。項目・データ組み合わせ１８１は、項目抽出部１６０が抽出した項目文字列候補と、データ抽出部１７０が抽出したデータ文字列候補について、対応付けられる可能性のあるものを数え上げる。グラフ生成（整合性評価）１８２は、数え上げられた組み合わせをノードとし、組み合わせの位置関係における整合性がある場合にはノード間をパスで結ぶことによってグラフを作成する。組み合わせ決定１８３は、グラフから最も整合性の高い最大クリークを決定する。すなわち、最も整合性のある項目文字列とデータ文字列の組み合わせを決定する。【００４２】
以下、本発明の実施の形態の帳票処理装置１００の動作および帳票処理手順について説明する。
まず、論理定義体データベース１５０に格納される論理定義体について説明する。図４は、本実施の形態の論理定義体の一例を示した図である。【００４３】
論理定義体は、帳票論理構造をなす意味、項目およびデータを定義する。
キーワードは、意味に応じてカテゴリ２０１に分類される。図の例では、日付２１０と帳票番号２２０が定義されている。【００４４】
項目に関し、意味を表現する文字列、項目文字列２０２としてカテゴリごとに定義される。図の例では、日付２１０には、「年月日」、「発行日」および「作成日」が定義される。また、帳票番号２２０には、「注文番号」および「貴社受付番号」が定義されている。【００４５】
データに関し、意味に対応する実際の値、データ領域属性として、データで使用される文字２０３、データで使用される正規表現２０４がカテゴリごとに定義される。データで使用される文字２０３は、実際の値を表す文字の種類が定義される。たとえば、日付２１０には、データが「数字」で表されることが定義されている。データで使用される正規表現２０４には、データの表現形式が定義されている。たとえば、日付２１０では、「＊年＊月＊日」、「平成＊年＊月＊日」という表現形式がとられることを示している。【００４６】
さらに、項目から見たデータの相対的位置２０５や項目とデータの間に存在してもよい文字２０６などが、カテゴリごとに必要に応じて定義される。たとえば、日付２１０には、「右」、「下」が定義されている。これは、項目が配置される領域から右方向または下方向にデータが配置されることを表している。また、項目とデータの間に存在してもよい文字２０６には、「：」が定義されており、抽出された項目文字列候補とデータ文字列候補の間に「：」が存在していても、整合性が成り立つことを示している。【００４７】
次に、帳票画像が入力されてからの処理手順を説明する。帳票画像が入力されると、レイアウト認識部１１０によるレイアウト認識処理と、文字認識部１３０による文字認識処理が順次実行される。以下、帳票画像の一例を用いて説明する。【００４８】
図５は、本実施の形態の帳票処理装置に入力される帳票画像の一例である。
帳票画像３００は、「御見積書」の一部であり、レイアウト認識部１１０は、帳票画像３００を入力し、レイアウト認識処理を行って読み取り領域を抽出する。文字認識部１３０は、全字種を認識対象として読み取り領域の文字認識を行う。帳票画像３００の場合、「御見積書」３０１、「２００５年９月２５日」３０２、「Ｂ株式会社御中」３０３、「貴社受付番号」３０４、「２００５０９２５−０１０１」３０５、「Ａ株式会社」３０６、「電話番号」３０７、「０４４−１２３−４４４５」３０８が文字認識結果として出力される。【００４９】
なお、文字認識において、論理定義体データベース１５０の論理定義体に基づき、認識対象の文字を限定することができる。たとえば、図４に示した日付２１０は、文字として「年」、「月」、「日」、「発」、「行」、「作」、「成」、「平」および数字だけを使用するので、字種をこれらに限定しても文字認識されることがわかる。同様に、帳票番号２２０は、「注」、「文」、「番」、「号」、「貴」、「社」、「受」、「付」および数字に限定することができる。このように、すべてのカテゴリに関する認識対象の文字を取り出し、全カテゴリの和をとり、これを認識対象とする。これにより、文字認識の確度が高くなる。【００５０】
続いて、キーワード抽出部１４０が処理を開始する。キーワード抽出処理は、項目抽出部１６０による項目文字列候補の抽出と、データ抽出部１７０によるデータ文字列候補の抽出が行われた後、対応付け部１８０による項目文字列候補とデータ文字列候補の対応付けが行われる。【００５１】
（１）項目抽出
項目抽出処理では、論理定義体に定義される項目文字列に基づき、文字認識結果から項目を表す項目文字列を抽出する。【００５２】
まず、文字認識結果投票１６１が、論理定義体データベース１５０に格納される論理定義体に基づき、文字認識結果から定義される項目文字列に含まれる文字を抽出し、投票を行う。ここでは、帳票画像３００の帳票について、項目文字列として「貴社受付番号」、「注文番号」および「受付Ｎｏ．」が定義されているとする。そこで、文字認識結果から項目文字列の定義に含まれる文字を抽出する。【００５３】
図６は、本実施の形態における文字認識結果からの文字抽出を示した図である。図６は、帳票画像３００から文字が抽出された箇所を抜き出した図で、図５と同じものには同じ番号を付す。【００５４】
項目文字列に含まれる文字と一致したものを順次抽出する。このとき、便宜的に抽出された文字をアルファベットでラベル付けする。たとえば、「貴社受付番号」３０４からは、「貴（ａ）」、「社（ｂ）」、「受（ｃ）」、「付（ｄ）」、「番（ｅ）」、「号（ｆ）」、「Ａ株式会社」３０６から「社（ｇ）」、「電話番号」３０７から「番（ｈ）」と「号（ｉ）」、「Ｂ株式会社御中」３０３から「社（ｊ）」が抽出される。続いて、抽出された文字を、項目文字列の各文字に投票する。【００５５】
図７は、本実施の形態における項目文字列マッチングの投票結果を示した図である。図６と同じものには同じ符号を付す。
項目文字列「貴社受付番号」３１０については、「貴」にａ、「社」にｂとｇとｊ、「受」にｃ、「付」にｄ、「番」にｅとｈ、「号」にｆとｉが投票される。同様に、項目文字列「注文番号」３２０については、「番」にｅとｈ、「号」にｆとｉが投票され、「受付Ｎｏ．」３３０については、「受」にｃ、「付」にｄが投票される。【００５６】
グラフ生成（整合性評価）１６２では、投票結果に基づき、投票された文字をノードとしたグラフを生成する。まず、投票された文字の集合に対して、すべての２文字の組について文字列としての関係と、位置に関する整合性を調べる。２つの文字ＡとＢの位置関係に整合性があるとは、それぞれの文字が、該当する項目文字列のｉ番目の文字であり、ｊ番目の文字である（ただしｉ＜ｊであるとする）とき、Ａのｘ座標＜Ｂのｘ座標であり、かつ、Ａのｙ座標とＢのｙ座標がほぼ等しいということを満たすときである。なお、ｘは水平方向、ｙは垂直方向の座標軸であるとする。【００５７】
具体的には、平均文字サイズをｍ、ｙＡをＡのｙ座標値、ｙＢをＢのｙ座標値とした場合に、
｜ｙＡ−ｙＢ｜  ≦  ｍ／２                                        ・・・（１）
を満たすときとする。平均文字サイズは、全文字について、その外接矩形の長辺の平均とする。【００５８】
なお、手書きの文字の場合は、Ａのｙ座標とＢのｙ座標がほぼ等しいという条件は厳しすぎることもあるので、この条件を緩和し、式（１）を
｜ｙＡ−ｙＢ｜  ≦  ｍ                                          ・・・（２）
として整合性を判定する。このように、整合性の基準は、帳票に応じて適宜設定する。【００５９】
２つの文字に対して、それらの関係の整合性が成立するとき、それらの２文字に相当するノードをパスで結ぶことによりグラフを生成する。
図８は、本実施の形態において生成されるグラフの一例を示した図である。各ノード、ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ、ｈ、ｉ、ｊは、図６で文字に付与されたアルファベットを示す。【００６０】
たとえば、「貴（ａ）」に対しては、項目文字列「貴社受付番号」に含まれる「社」、「受」、「付」、「番」、「号」であって、位置関係が式（１）を満たすものが整合性を有すると判断される。したがって、「社（ｂ）」、「受（ｃ）」、「付（ｄ）」、「番（ｅ）」、「号（ｆ）」、「社（ｇ）」が整合性を有すると見なし、パスで結ぶ。同様の処理をノードごとに繰り返すと、図８に示したグラフが得られる。【００６１】
こうして生成されたグラフから、グラフの極大完全部分グラフであるクリークを抽出する。クリークを構成するすべてのノードは、自分以外のノードとパスで結ばれている。
たとえば、図の例では、ａｂｃｄｅｆ、ａｇ、ｅｉ、ｈｉ、ｊがクリークとして抽出される。【００６２】
なお、実際に帳票処理装置１００が処理を行う場合には、グラフは、図８に示した図形を表形式で表現した整合性グラフテーブルなどを用いる。図９は、本実施の形態の帳票処理装置における整合性グラフテーブルの一例を示した図である。【００６３】
整合性グラフテーブル３５０では、縦と横にノードを配置し、交点に当たる欄にパスの状態を設定している。１は、パスが結ばれていることを表し、０はパスが結ばれていないことを表している。１が設定される欄をたどっていけば、クリークを抽出することができる。【００６４】
そして、最大クリーク決定１６３では、まず、抽出されたクリークから妥当なものだけを選択する。たとえば、クリークを構成するノードの個数が、ある閾値以上のものだけを選択する。これにより、項目文字列に対して、ある一定以上マッチングできたクリークだけが残る。図の例で閾値を２とする場合、クリークとして抽出されたａｂｃｄｅｆ、ａｇ、ｅｉ、ｈｉ、ｊのうち、ｊが除外される。項目文字列に対して１文字しかマッチングしないものは、項目文字列である可能性が低いので、このようにしてクリークから除外する。【００６５】
さらに、残ったクリークについて、文字配置による妥当性を検証する。クリークに対応する画像上の文字集合に対し、それらを囲む領域の長さを文字数で割り、領域を構成する文字の中心点（領域の中心点）を算出する。算出した中心点と、実際の文字の中心点のずれを求め、ある閾値を超えていれば、そのクリークは不適合と判断して削除する。具体的には、平均文字サイズをｍ、文字数をｎ、各文字のずれをｄとするとき、【００６６】
【数１】
0004750802.tif 000002
【００６７】
を満たすときとする。なお、平均文字サイズは、全文字について、その外接矩形の長辺の平均とする。一例を挙げて説明する。図１０は、本実施の形態における文字配置の妥当性検証の一例を示した図である。【００６８】
クリークに対応する文字集合「見積有効期限：  ２００４年９月３０日」４００は、「見」４０１、「積」４０２および「日」４０３がマッチングしている。文字集合４００に対し、これを囲む外枠４２０の長さを文字数で割り、領域を構成する文字の個数を用いて文字の中心点を算出する。この場合、外枠４２０の中心４３１が算出されるとする。これに対し、実際にマッチングした「見」、「積」、「日」の文字の中心点４３２が得られる。この外枠４２０の中心４３１と、マッチングした文字の中心４３２とのずれ４３３を評価する。図の例では、ずれ４３３は、式（３）により不適合と判定される。【００６９】
また、クリークにおいて隣り合う２文字に対応する画像上の２文字の間に、その２文字の以外にも字があるとき、そのクリークを不適合と判断して削除する。図の例で、項目文字列は「見積日」であるとすると、「積」４０２と「日」４０３の間には、他の文字があるので不適合と判断される。【００７０】
以上のような処理を行い、妥当でないクリークは削除する。そして、残ったクリークについて、最も高いマッチング率のクリークを最大クリークとして出力する。
さらに、項目文字列候補決定１６４は、項目文字列ごとに決定された最大クリークのマッチング率を比較し、最も高いマッチング率のクリークを項目文字列候補として決定する。複数のクリークが同じマッチング率を有する場合には、それらをすべて出力する。マッチング率は、たとえば、文字集合に含まれるノードの数や、文字列がマッチングしている箇所の割合などによって算出する。【００７１】
以上の処理により、項目文字列候補が決定される。
なお、抽出されたクリークについて、ノードの個数、文字配置、ノイズによる検証をした後、残ったクリークに対し、字種を限定した再認識によって評価を行うこともできる。具体的には、この項目文字列を構成する文字集合に認識対象を限定して文字認識を行う。文字認識結果のうち、認識信頼度がある閾値を上回った場合のみを残し、それ以外を捨てる。そして、残った文字認識結果に対し、投票、グラフ生成、クリーク抽出を行い、最大クリークの個数を求め、この個数をクリークの評価値とする。そして、評価値が最大のものを出力する。複数のクリークにおいて同じ評価値を有する場合は、それらをすべて出力する。【００７２】
また、上記では、キーワードを構成する文字列が同一行にある場合について説明したが、項目が複数行にわたるようなレイアウトで構成される帳票も存在する。このような場合、抽出されたクリークをノードとし、２つのノード間に整合性が成り立つ場合には、ノード間をパスで結びグラフを作成し、最大クリークを抽出することによって、複数行にわたる文字列候補とその位置を識別する。【００７３】
図１１は、複数行にわたる項目文字列の一例を示した図である。
２つのクリークに対応する２つの文字列、「御見積」５０１と「番号」５０２について、上下には重ならない、かつ、左右には重なる場合であって、一方の先頭部の文字が、他方の最後尾の文字よりも後ろにあり、順序が後ろの文字列は、前の文字列よりの画像上で下にあるという条件を満たすときに、整合性があると判定される。【００７４】
図の例では、２つの文字列をｙ方向に射影した５０１ｙと５０２ｙの範囲が重ならないので上下には重ならないと判断できる。また、ｘ方向に射影した５０１ｘと５０２ｘの範囲が重なるので、左右には重なると判断される。また、項目文字列「御見積番号」に対し、順序が後ろの「番号」５０２は「御見積」５０１の後にあり、画像上の下にある。【００７５】
このように、条件を満たすノード（クリーク）間にパスを張り、グラフを生成する。その後、グラフからクリークを抽出し、最大クリークを抽出する。
ここで、項目抽出処理の手順について、フローチャートを用いて説明する。図１２は、本実施の形態における項目抽出処理の手順を示したフローチャートである。【００７６】
文字認識結果が入力された後、処理を開始する。
［ステップＳ１１］  論理定義体に定義される全カテゴリの処理を繰り返すため、処理中のｉ番目のカテゴリ（Ｃｉとする）を指示するｉを初期化（ｉ＝０）する。【００７７】
［ステップＳ１２］  カテゴリＣｉに定義される全項目文字列の処理を繰り返すため、処理中のｉ番目の項目文字列（Ｓｊ）を指示するｊを初期化（ｊ＝０）する。
［ステップＳ１３］  カテゴリＣｉの項目文字列Ｓｊに対する項目文字列マッチング処理を行う。処理の詳細は後述するが、マッチング処理により、カテゴリＣｉの項目文字列Ｓｊに対する最大クリークが決定される。【００７８】
［ステップＳ１４］  次の項目文字列に対する処理を行うため、ｊを１増加させる。
［ステップＳ１５］  ｊを論理定義体に定義される項目文字列の数と比較する。ｊが項目文字列の数に到達していなければ、ステップＳ１３に戻って、次の項目文字列に対するマッチング処理を行う。到達していれば、全項目文字列終了とする。【００７９】
［ステップＳ１６］  ステップＳ１３からステップＳ１５までの処理を繰り返すことにより、カテゴリＣｉのすべての項目文字列に対応する最大クリークが決定されるので、カテゴリＣｉに対する項目文字列候補決定処理を行う。処理の詳細は後述する。【００８０】
［ステップＳ１７］  次のカテゴリに対する処理を行うため、ｉを１増加させる。
［ステップＳ１８］  ｉを論理定義体に定義されるカテゴリの数と比較する。ｉがカテゴリの数に到達していなければ、ステップＳ１２に戻って、次のカテゴリの処理を行う。全カテゴリの処理が終了していれば、処理を終了する。【００８１】
項目文字列マッチング処理手順について説明する。図１３は、本実施の形態における項目文字列マッチング処理の手順を示したフローチャートである。
項目文字列Ｓｊが指定された後、処理が開始される。【００８２】
［ステップＳ１３１］  論理定義体データベース１５０に格納される論理定義体に基づき、文字認識結果から定義される項目文字列Ｓｊに含まれる文字を抽出し、投票を行う。
［ステップＳ１３２］  投票結果に基づき、投票された文字をノードとしたグラフを生成する。まず、投票された文字の集合に対して、すべての２文字の組について文字列としての関係と、位置に関する整合性を調べ、整合性が成立する場合にノード間にパスを張ることによってグラフを生成する。【００８３】
［ステップＳ１３３］  ステップＳ１３２において生成されたグラフから、グラフの極大完全部分グラフであるクリークを抽出する。クリークを構成するすべてのノードは、自分以外のノードとパスで結ばれる。【００８４】
［ステップＳ１３４］  ステップＳ１３３において抽出されたクリークのうち、クリークを構成するノードの個数が、ある閾値以上のものだけを選択する。さらに、クリークの文字配置における妥当性を調べ、妥当でないクリークは削除する。そして、残ったクリークについて、最も高いマッチング率のクリークを選択し、最大クリークとして出力する。【００８５】
以上の処理手順が実行されることにより、カテゴリＣｉの項目文字列Ｓｊについての最大クリークが抽出される。
次に、項目文字列候補決定処理手順について説明する。図１４は、本実施の形態における項目文字列候補決定処理の手順を示したフローチャートである。【００８６】
カテゴリに属する項目文字列に対応する最大クリークが決定され、処理が開始される。
［ステップＳ１６１］  Ｐｉをｉ番目の項目文字列のマッチング度、Ｐｔを最大のマッチング度、配列ｑを項目文字列候補の個数分の配列、ｎを項目文字列候補の個数として、各値を初期化する。すなわち、ｉ＝０、ｎ＝０、Ｐｔ＝０とし、配列ｑを初期化する。【００８７】
［ステップＳ１６２］  ｉとカテゴリに定義される項目文字列の個数を比較する。ｉが項目文字列の個数となっていれば、処理を終了する。
［ステップＳ１６３］  ｉは項目文字列の個数となっていないので、ｉ番目の項目文字列のマッチング度Ｐｉと、最大のマッチング度Ｐｔとを比較する。ＰｉがＰｔ以上であるかどうかを調べ、Ｐｔ以上でない場合は、現在設定されているＰｔのマッチング度が最も高いとし、処理をステップＳ１６７へ進める。【００８８】
［ステップＳ１６４］  ＰｉがＰｔ以上である場合、さらに、ＰｉがＰｔより大きいかどうかを調べる。ＰｉがＰｔより大きくない（Ｐｉ＝Ｐｔ）場合、処理をステップＳ１６６へ進める。【００８９】
［ステップＳ１６５］  ＰｉがＰｔより大きい場合、ＰｔにＰｉを設定し（Ｐｔ＝Ｐｉ）、項目文字列候補の個数ｎを１にし、配列ｑ［０］＝ｉとし、処理をステップＳ１６７へ進める。これにより、ｉ番目が現時点で唯一の項目文字列候補ｑ［０］＝ｉとなる。【００９０】
［ステップＳ１６６］  ＰｉとＰｔが等しい場合、Ｐｔはそのままとし、配列ｑ［ｎ］にｉを設定し（ｑ［ｎ］＝ｉ）、項目文字列候補の個数ｎを１増加させる。これにより、項目文字列候補は、ｎ個となり、配列ｑには、Ｐｔがともに最大となる項目文字列の番号が並ぶ。【００９１】
［ステップＳ１６７］  ｉを１増加させ、ステップＳ１６２に戻って次の項目文字列の処理を行う。
以上の処理手順が実行されることにより、項目文字列候補の個数ｎと、項目文字列候補ｑ［ｉ］（ｉは、０≦ｉ＜ｎを満たす）が得られる。【００９２】
（２）データ抽出処理
データ抽出処理では、論理定義体のデータ正規表現とデータ種別に基づき、文字認識結果からデータ正規表現によって記述されているデータを抽出する。【００９３】
帳票におけるキーワードのデータは、文字列の種類や配置の構成が限定されていることが多い。論理定義体では、データの属性が正規表現として記述されている。たとえば、日付キーワードのデータは＊年＊月＊日、金額は＊円、￥＊などと記述される。＊部抽出１７１では、正規表現に記述されている＊部分の種類（数字、アルファベットなど）と、他の文字列（「年」、「月」、「日」、「．（ピリオド）」、「−（ハイフン）」など）を論理定義体データベース１５０から読み出し、文字認識結果から該当するものを取り出す。ただし、ピリオド、ハイフン以外については、ある大きさ以上という条件を課す。取り出した文字の集合をＡとおく。そして、Ａに属する文字の外接矩形に対して、近傍領域（左右マージンｍ、上下マージンｎ）をとり、その中に存在するＡの要素の中で、自分以外で最も近いものであり、かつ、ｙ座標に射影したときに重複するものに対してリンクを張る。リンクで連結されたＡの要素を結合して、その領域の＊部として抽出する。【００９４】
一例を挙げて説明する。図１５は、本実施の形態における＊部抽出の一例を示した図である。図は、「＊年＊月＊日」（＊は数字）という正規表現で定義されたデータを抽出する場合を示している。【００９５】
論理定義体に定義されたデータの種別と正規表現に基づき、数字、「年」、「月」、「日」が文字認識結果から抽出される。ここでは、「２００４年９月３０日」という文字集合Ａ（６０１）が取り出されたとする。Ａに属する文字について、隣接する文字とリンクを張る。「２」を例にとると、「２」の外接矩形６０２に対し、左右マージンｍと上下マージンｎをとった近傍領域６０３を設定し、近傍領域に存在するＡの要素で自分以外で最も近いものであり、かつｙ座標がほぼ等しい文字にリンクを張る。この場合、「０」にリンクが張られる。なお、ｙ座標がほぼ等しいとは、式（１）を満たす関係をいう。同様の処理を繰り返すことにより、この場合は、文字集合Ａ（６０１）の「２００４年９月３０日」に含まれる文字すべてにリンクが張られ、「２００４年９月３０日」が＊部として抽出される。【００９６】
文字認識結果投票１７２は、項目抽出部１６０の文字認識結果投票１６１と同様に、文字部分と正規表現で＊で表される＊部分のそれぞれに投票する。文字部分は文字ごとに、＊部分はひとつにまとめて投票を行う。文字集合Ａ（６０１）の例であれば、文字部分「年」、「月」、「日」と、＊部「２００４  ９  ３０」のそれぞれに投票する。【００９７】
グラフ生成（整合性評価）１７３およびデータ文字列候補決定（最大クリーク決定）１７４は、項目抽出部１６０のグラフ生成（整合性評価）１６２および最大クリーク決定１６３と同様に、グラフ生成、クリーク抽出、最大クリークの決定を行う。グラフ生成では、投票された各文字と、＊部分をノードとし、ノード間の位置関係による整合性が成立した場合には、パスを張る。最大クリークの抽出では、クリークを構成するノードの個数が、ある閾値以上のものだけを選択する。さらに、クリークにおいて隣り合う２文字に対応する画像上の２文字の間に、その２文字以外の文字がある場合は、そのクリークを不適合と判断し削除する。そして、残ったクリークについて、ノードの個数がある閾値よりも大きいとき、それらのクリークに対応する領域と文字をすべて出力する。【００９８】
なお、項目抽出部１６０と同様に、出力されたクリークに対して、字種限定再認識によって、出力文字を修正することもできる。
ここで、データ抽出処理の手順について、フローチャートを用いて説明する。図１６は、本実施の形態におけるデータ抽出処理の手順を示したフローチャートである。【００９９】
文字認識結果が入力された後、処理を開始する。
［ステップＳ２１］  論理定義体に定義される全カテゴリの処理を繰り返すため、処理中のｉ番目のカテゴリ（Ｃｉとする）を指示するｉを初期化（ｉ＝０）する。【０１００】
［ステップＳ２２］  カテゴリＣｉに定義される全項目文字列の処理を繰り返すため、処理中のｉ番目の正規表現（Ｒｊ）を指示するｊを初期化（ｊ＝０）する。
［ステップＳ２３］  カテゴリＣｉの正規表現Ｒｊに対するデータ文字列マッチング処理を行う。処理の詳細は後述するが、マッチング処理により、カテゴリＣｉの正規表現Ｒｊに対する最大クリークが決定される。【０１０１】
［ステップＳ２４］  次の正規表現に対する処理を行うため、ｊを１増加させる。
［ステップＳ２５］  ｊを論理定義体に定義される正規表現の個数と比較する。ｊが正規表現の個数に到達していなければ、ステップＳ２３に戻って、次の正規表現に対するマッチング処理を行う。到達していれば、全正規表現終了とする。【０１０２】
［ステップＳ２６］  次のカテゴリに対する処理を行うため、ｉを１増加させる。
［ステップＳ２７］  ｉを論理定義体に定義されるカテゴリの数と比較する。ｉがカテゴリの数に到達していなければ、ステップＳ２２に戻って、次のカテゴリの処理を行う。全カテゴリの処理が終了していれば、処理を終了する。【０１０３】
データ文字列マッチング処理手順について説明する。図１７は、本実施の形態におけるデータ文字列マッチング処理の手順を示したフローチャートである。
正規表現Ｒｊが指定された後、処理が開始される。【０１０４】
［ステップＳ２３１］  論理定義体データベース１５０に格納されるデータ正規表現に記述されている＊部分の種類と、他の文字列を文字認識結果から取り出し、隣接する文字をリンクで連結して文字統合を行い、ひとかたまりの文字集合を＊部として抽出する。【０１０５】
［ステップＳ２３２］  ＊部として抽出された文字集合に含まれる文字と、正規表現において＊（数字など）で表される部分のそれぞれに投票する。
［ステップＳ２３３］  投票された各文字と＊部分をノードとして、ノード間に整合性が成立すれば、ノード間をパスで接続することによって、グラフを生成する。【０１０６】
［ステップＳ２３４］  ステップＳ２３３において生成されたグラフから、グラフの極大完全部分グラフであるクリークを抽出する。クリークを構成するすべてのノードは、自分以外のノードとパスで結ばれる。【０１０７】
［ステップＳ２３５］  ステップＳ２３４において抽出されたクリークのうち、クリークを構成するノードの個数が、ある閾値以上のものだけを選択する。さらに、クリークの文字配置における妥当性を調べ、妥当でないクリークは削除する。そして、残ったクリークについて、ノードの個数がある閾値よりも大きいとき、それらのクリークに対応する領域と文字をすべて出力する。【０１０８】
以上の処理手順が実行されることにより、カテゴリＣｉのデータ正規表現Ｒｊに対応するデータ文字列が抽出される。
（３）項目・データ対応付け処理
項目・データ対応付け処理では、論理定義体に定義される項目から見たデータの相対的位置などに基づき、項目抽出部１６０によって抽出された項目と、データ抽出部１７０によって抽出されたデータについて、対応関係のある可能性を数え上げ、全体の整合性を考慮することにより対応関係を決定する。全体の整合性の評価は、項目抽出部１６０およびデータ抽出部１７０と同様に、グラフを生成し、クリークを抽出して行う。【０１０９】
項目・データ組み合わせ１８１は、項目抽出部１６０によって抽出された項目文字列候補Ｉに対し、項目文字列候補ＩがカテゴリＣから求められたものとすると、論理定義体に記述されているカテゴリＣの項目とデータとの関係（項目から見たデータの相対的位置２０５）に基づき、項目文字列候補Ｉの近傍領域を設定する。たとえば、「下」が定義されていれば、近傍領域を項目文字列候補Ｉの領域の下に取る。また、「右」が定義されていれば、近傍領域を項目文字列候補Ｉの領域の右に取る。そして、設定された近傍領域にあり、かつ、カテゴリＣのデータの正規表現を満たすものに対して、項目文字列候補とデータ文字列候補の組み合わせを生成する。ただし、項目文字列候補とデータ文字列候補の両方を含む外接矩形に、論理定義体に記述されているカテゴリＣの項目とデータの間に入っていてもよい文字以外の文字が入っていれば、その項目文字列候補とデータ文字列候補の組み合わせは生成されない。【０１１０】
グラフ生成（整合性評価）１８２では、項目・データ組み合わせ１８１で抽出された項目文字列とデータ文字列の組み合わせをノードとしたグラフを生成する。項目文字列候補とデータ文字列候補の組み合わせの集合に対して、すべての２つの組み合わせについて整合性を調べる。２つの組み合わせＡとＢの関係は整合性があるとは、それぞれの組み合わせを構成する項目文字列候補とデータ文字列候補が重複しないことである。２つの組み合わせに対して、それらの関係の整合性が成立するとき、それらの２つの組み合わせに相当するノードをパスで結ぶことによりグラフを生成する。【０１１１】
組み合わせ決定（最大クリーク決定）１８３では、項目文字列マッチング処理と同様に、クリーク抽出、最大クリーク決定を行う。最大クリークの抽出では、クリークを構成するノードの個数が最大のものを出力する。【０１１２】
ここで、項目とデータの対応付け処理の手順について、フローチャートを用いて説明する。図１８は、本実施の形態における項目・データ対応付け処理の手順を示したフローチャートである。【０１１３】
項目文字列とデータ文字列が抽出された後、処理を開始する。
［ステップＳ３１］  論理定義体に定義される項目から見たデータの相対的位置に基づき、カテゴリが同じ項目文字列候補とデータ文字列候補を対応付け、項目文字列候補とデータ文字列候補の組み合わせを数え上げる。【０１１４】
［ステップＳ３２］  ステップＳ３１で抽出された項目文字列とデータ文字列の組み合わせをノードとし、すべての２つの組み合わせについて整合性（それぞれの組み合わせを構成する項目文字列候補とデータ文字列候補が重複しないこと）を調べ、整合性が成り立つ場合には、ノード間にパスを張ってグラフを生成する。【０１１５】
［ステップＳ３３］  ステップＳ３２において生成されたグラフから、グラフの極大完全部分グラフであるクリークを抽出する。
［ステップＳ３４］  ステップＳ３３で抽出されたクリークから最大クリークを抽出する。最大クリークの抽出では、クリークを構成するノードの個数が最大のものを出力する。【０１１６】
以上の処理手順が実行されることにより、全体の整合性を考慮して項目文字列候補とデータ文字列候補の組み合わせが決定される。これにより、複数の対応の可能性が存在する場合でも、正しい対応を選択することができる。【０１１７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、帳票処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。【０１１８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【０１１９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。【０１２０】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１２１】
１  帳票処理装置
１１  レイアウト認識手段
１２  認識辞書データベース（ＤＢ）
１３  文字認識手段
１４  帳票論理定義体データベース（ＤＢ）
１５  文字列候補抽出手段
１５ａ  項目文字列候補抽出手段
１５ｂ  データ文字列候補抽出手段
１６  対応付け手段
【図１】
0004750802.tif 000003
【図２】
0004750802.tif 000004
【図３】
0004750802.tif 000005
【図４】
0004750802.tif 000006
【図５】
0004750802.tif 000007
【図６】
0004750802.tif 000008
【図７】
0004750802.tif 000009
【図８】
0004750802.tif 000010
【図９】
0004750802.tif 000011
【図１０】
0004750802.tif 000012
【図１１】
0004750802.tif 000013
【図１２】
0004750802.tif 000014
【図１３】
0004750802.tif 000015
【図１４】
0004750802.tif 000016
【図１５】
0004750802.tif 000017
【図１６】
0004750802.tif 000018
【図１７】
0004750802.tif 000019
【図１８】
0004750802.tif 000020
【図１９】
0004750802.tif 000021
【図２０】
0004750802.tif 000022