JP4825243B2 - 帳票認識装置、方法、データベース作成装置、方法、及びプログラム - Google Patents

帳票認識装置、方法、データベース作成装置、方法、及びプログラム Download PDF

Info

Publication number
JP4825243B2
JP4825243B2 JP2008162110A JP2008162110A JP4825243B2 JP 4825243 B2 JP4825243 B2 JP 4825243B2 JP 2008162110 A JP2008162110 A JP 2008162110A JP 2008162110 A JP2008162110 A JP 2008162110A JP 4825243 B2 JP4825243 B2 JP 4825243B2
Authority
JP
Japan
Prior art keywords
headline
character string
wording
table structure
representative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008162110A
Other languages
English (en)
Other versions
JP2010003155A (ja
Inventor
真一 江口
哉 川島
浩一 金元
将平 長谷川
勝利 小原
眞紀 矢吹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Frontech Ltd
Original Assignee
Fujitsu Frontech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Frontech Ltd filed Critical Fujitsu Frontech Ltd
Priority to JP2008162110A priority Critical patent/JP4825243B2/ja
Priority to KR1020090054110A priority patent/KR101083557B1/ko
Priority to CN200910149359.4A priority patent/CN101685498B/zh
Priority to EP09163284.4A priority patent/EP2136316A3/en
Priority to US12/488,279 priority patent/US8891871B2/en
Publication of JP2010003155A publication Critical patent/JP2010003155A/ja
Application granted granted Critical
Publication of JP4825243B2 publication Critical patent/JP4825243B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/1444Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、帳票上に任意の表構造で存在する文字列の認識を行うための技術に関する。
企業では、様々な業務で帳票が用いられている。例えば金融機関では、複数の帳票を用意し、顧客が帳票に書き込んだ情報を基に、その顧客が所望するサービスを提供することが行われている。そのサービスを提供するための処理をセンターで集中的に行う場合には、帳票は電子化してセンターに転送される。
帳票の電子化では通常、その帳票に記載された内容の認識(文字認識)が行われる。帳票認識装置は、帳票上に記載された内容を、画像読取装置が読み取ることで電子化されたその画像を用いて認識するものである。上記センターに転送された帳票、即ち帳票認識装置による認識結果は、オペレータによって必要に応じて修正可能となっているのが普通である。
帳票は、任意の表構造で情報(文字列)が配置されたものである。このことから、帳票画像上で文字認識すべき文字列を認識させるための方法として、認識対象とする帳票のレイアウト構造を登録するというものがある。その方法では、登録されたレイアウト構造により、読み取られた帳票画像上で文字認識すべき文字列が存在する領域を直ちに特定することができる。登録されたレイアウト構造から、読み取られた帳票画像に対応するレイアウト構造を自動的に抽出させることもできる(特許文献7)。レイアウト構造の登録は、帳票画像からレイアウトの特徴を抽出して自動的に行わせることもできる(特許文献6)。
企業等で扱う帳票は通常1種類ではない。多数の種類が存在するのが普通である。何らかの理由により、帳票のデザイン(レイアウト)を変更することも多い。金融機関では、予め用意された帳票を顧客側が常に使用するとは限らない。つまり顧客は、独自の帳票を用いてサービスを要求する場合がある。このようなことから、従来の帳票認識装置のなかには、特定の帳票に関するレイアウト構造を登録することなく、帳票認識、即ち帳票上に記載された内容を認識できるようにしたものがある(特許文献1〜3)。しかし、特許文献1〜3にそれぞれ記載の従来の帳票認識装置は何れも、以下のように汎用性は低く、実用的ではなかった。
特許文献1に記載の従来の帳票認識装置では、帳票から読み取るべき項目名、その項目名の内容を認識するための情報を用意して、各項目名の内容を認識する。しかし、帳票のなかには、一つのデータ(記載)に複数の項目名が割り当てられている、或いは同じ項目名が複数、異なる用途のために記載されている、といったものが存在する。従い、認識可能な帳票の種類は限定されていた。
特許文献2に記載の従来の帳票認識装置では、全ての項目名が一つの枠内に配置されていることを前提に、予め設定した規則性を有する枠を項目枠、他の枠をデータ枠として文字認識を行うようになっている。しかし、帳票のなかには、項目名を示す文字列が枠内に配置されていない、或いは1枠に複種類の文字列が配置される、といったものが存在する。後者は、例えば印刷された項目名が配置された枠内に、顧客がデータを記載するようになっているものが相当する。
特許文献3に記載の従来の帳票認識装置では、帳票の種類毎に、その帳票に記載される
項目名をグルーピングして、読み取った帳票上に存在する項目名が属するグループを抽出し、抽出したグループから候補となる帳票の種類(論理構造)を推測するようになっている。しかし、各グループには、一つ以上の項目名が属していることから、各グループが持つ情報量は小さい。なぜなら、各グループの情報はグループに属する全ての項目名に関係するものとなるからである。このため、注文書、及び入会申込書の何れであるかといったようなレベルでしか帳票の種類を認識することはできない。
特許文献3に記載の従来の帳票認識装置では、各項目名のデータの型は、その項目名が属するグループに対応するスキーマ情報が示すデータ型と照合することにより、それらが一致するか否か確認し、その確認結果を帳票の種類の認識に利用するとしている。しかし、その確認は、事実上、項目名に対応する記載(データ)の特定にしか利用できない。なぜなら、項目名とその項目名で記載されるデータ型との間には通常、非常に高い確率で成立する関係が存在するからである。具体的には、例えば「金額」、「単価」及び「支払額」といった1グループにまとめることが可能な項目名では、何れもデータは数値で表現するのが普通だからである。
帳票では、項目名に対応する可能性が考えられるデータは複数、存在することも多い。このため、項目名とデータの対応関係を特定する必要があるのが普通である。項目名によってデータ型は異なる場合があることから、データ型は項目名に対応するデータを特定するための情報として用いることができる(特許文献1)。上記照合は、当然のことながら、その対応関係を特定した後でなければ行うことはできない。従って、その照合を行えるのであれば、項目名毎にそれに対応するデータが記載されている領域が予め特定可能となっているか、或いはその特定を行う必要がないほど帳票はシンプルなデザインとなっていなければならない。このことからも、非常に低いレベルでしか帳票の種類を認識できないことが分かる。
特開平9−274634号公報 特開平10−116314号公報 特開2006−134106号公報 特開平11−110479号公報 特開2000−339406号公報 特許第3088019号公報 特開2004−164674号公報 特開2004−334913号公報 特許第3465667号公報
本発明は、記載内容を認識するための情報をデザインが異なる個々の帳票毎に登録することなく、幅広く帳票に対応可能とするための技術を提供することを目的とする。
本発明を適用して構築可能な帳票認識装置は何れも、帳票上に任意の表構造で存在する文字列の認識を行うものであり、それぞれ以下の手段を具備する。
本発明の一態様を適用した帳票認識装置は、帳票の電子化された帳票画像を取得する画像取得手段と、画像取得手段が取得した帳票画像上に存在する文字列を認識する文字列認識手段と、文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、文字列抽出手段が複数の見出し文言を抽出した場合に、該文字列抽出手段が抽出した各見出し文言、及び該各見出し文言の帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定手段と、表構造判定手段による表構造の判定結果を用いて、見出し文言と該見出し文言以外に文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、を具備する。
帳票上に存在する表構造は、帳票の用途(種別、或いは形式等)によって特有の特徴を備えている。その特徴は、項目名の配置に現れる。表構造に配置される項目名の範囲、つまりその表構造で入力(記入)される可能性が考えられるデータの種類、及び数は、帳票の用途(種別、或いは形式等)によって特定することができる。これらのことから、見出し文言として項目名のような同じ表構造、及び同じ用途の帳票に共通する文字列を採用することにより、抽出した見出し文言を通して、帳票に記入されるデータの種類や数を特定することができる。見出し文言の配置を通して、帳票の表構造を特定することができる。これらの結果、記載内容を認識するための情報を帳票毎に登録しなくとも、幅広く帳票に高精度に対応できることとなる。
本発明の他の一態様を適用した帳票認識装置は、帳票の電子化された帳票画像を取得する画像取得手段と、画像取得手段が取得した帳票画像上に存在する文字列を認識する文字列認識手段と、文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、文字列抽出手段が抽出した結果を基に、文字列認識手段が認識していない見出し文言が存在する帳票画像上の位置を特定する位置特定手段と、位置特定手段が特定した位置に存在すべき見出し文言を生成する文言生成手段と、文言生成手段が生成した見出し文言を含め、該見出し文言と該見出し文言以外に文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、を具備する。
上記文字列認識手段が認識していない見出し文言とは、帳票上に記入されていない、或いは認識できなかったものである。認識できなかった見出し文言は、認識エラーが発生した文字列であるから、その位置は認識結果から特定することができる。帳票上に記入されていない見出し文言は、表構造に着目して特定することができる。その表構造は、帳票の用途(種別、或いは形式等)によって特有の特徴を備えており、その特徴は、認識されている見出し項目から特定できるからである。つまり、表構造の特定を通して、他の認識できている見出し文言との関係、或いは他の同一の表構造での認識結果を利用できるからである。それにより、認識していない見出し文言として、論理的な矛盾が表構造上、生じないものを割り当てることができる。このようなことから、見出し文言の抜け、或いは認識不能による悪影響は回避されるか、或いは低減される。この結果、記載内容を認識するための情報を帳票毎に登録することなく、認識エラーや記入漏れ等に適切に対応できることとなる。これは、認識エラーが発生する、或いは記入漏れ等が存在する帳票に幅広く対応できることを意味する。
本発明の他の一態様を適用した帳票認識装置は、帳票の電子化された帳票画像を取得する画像取得手段と、帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを格納した記憶手段と、画像取得手段が取得した帳票画像上に存在する文字列を認識する文字列認識手段と、記憶手段に格納されたデータベースを参照して、文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、文字列抽出手段による抽出結果を基に、帳票画像上に存在する単位表構造の範囲を抽出し、該抽出した範囲内で認識されている見出し文言、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する見出し文言を追加する見出し追加手段と、見出し追加手段が追加した見出し文言を含め、該見出し文言と該見出し文言以外に文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、を具備する。
帳票上に存在する表構造の特徴は、上述したように、認識されている見出し項目から特定できる。単位表構造に配置される項目名(見出し文言)の範囲、つまりその表構造で入
力(記入)される可能性が考えられるデータの種類、及び数は、帳票の用途(種別、或いは形式等)によって特定することができる。項目名によって、データとして入力される文字列の種類(属性)、文字数、付加される特有のシンボル、そのシンボルの位置、などに違いがある場合がある。これらのことから、認識されている見出し文言、及び単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、そのデータに対応する見出し文言を高精度に特定することができる。それにより、記載内容を認識するための情報を帳票毎に登録することなく、オペレータにとってより望ましい形で帳票の認識結果を提供できることとなる。見出し文言の数が少なく、内容が把握し難い帳票をより適切な形で処理可能とすることから、幅広く帳票に対応できることとなる。
本発明の一態様のデータベース作成支援装置は、上記帳票認識装置が帳票上の文字列の認識に用いるデータベースの作成を支援するものであり、見出し文言を入力する文言入力手段と、文言入力手段が入力した見出し文言の間の階層構造を生成する階層構造生成手段と、を具備する。
上記階層構造を帳票上の文字列に用いる場合、より上位の概念での認識、或いは認識結果の確認等が可能となる。つまり文字列の認識や認識結果の確認等に必要な情報量はより抑えられるようになる。それにより、より高い汎用性がより容易に実現可能となる。
本発明を適用したシステムでは、記載内容を認識するための情報をデザインが異なる個々の帳票毎に登録することなく、幅広く帳票に対応することができる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態による帳票認識装置の機能構成を示す図である。その帳票認識装置1は、帳票を読み取って得られる電子化された帳票画像を入力し、その帳票画像上に存在する文字列(1つ以上の文字から構成されるもの)を認識するものである。
その帳票認識装置1は、図1に示すように、スキャナ等により読み取られて電子化された帳票画像を入力する入力部11と、入力部11が入力した帳票画像上に存在する記載をその種類別、例えば図、表、及び文字(文字列)に分けて分離する図表文分離部12と、図表文分離部12によって分離される表から罫線を抽出する罫線抽出部13と、表を罫線から認識するセルで分割し解析する表構造解析部14と、表内外に存在する文字を抽出するテキスト抽出部15と、テキスト抽出部15が抽出した文字を認識する文字認識部16と、帳票の種別を認識するための情報となる文字列をキーワードとして抽出するキーワード抽出部17と、抽出されたキーワードを用いて帳票画像が読み取られた帳票の種別を判定する帳票種別判定部18と、罫線によりセルを認識できない表の構造を解析する表構造解析(無罫線)部19と、表の論理的な構造を解析し、認識すべき対象の候補を抽出する論理構造解析(項目候補抽出)部20と、表上の詳細な解析を行うべき項目を解析する項目解析部21と、認識すべき対象に割り当てる候補を確定する論理構造解析(項目確定)部22と、認識結果を表示装置上、或いは通信ネットワーク等を介して送信する出力部23と、その認識結果を不図示のデータベースに蓄積可能なデータベース蓄積部24と、各種解析に用いられる論理構造解析データベース(DB)25を格納する記憶部26と、を備えている。
図24〜図30はそれぞれ、異なる種類の帳票例を示す図であり、図31〜図36はそれぞれ、異なる見出しで採用されるデザイン例を示す図である。始めに図24〜図36を参照して、本実施形態による帳票認識装置が認識の対象とする帳票について具体的に説明する。
図24〜図30において、図24は指定の口座への払い込みを依頼するための単票、図25は納入済みの税金の額を通知するための単票、図26〜図28はそれぞれ品物毎にその品物に係わるデータ(文字列)を記入する連記型の納品書、図29は受取人毎に給与の振り込みを依頼するための連記型の振込依頼書、図30は受取人毎に給与の振り込みを依頼するための複数表(振込用紙)をそれぞれ示している。図24〜図30から明らかなように、同じ種類に分類される帳票でもデザイン(表構造)は帳票毎に異なっている。ここでは、特に断らない限り、「種類」とはデザインで帳票を区別する場合に用いる。単票や納品書等の相違を表す場合は「種別(タイプ)」或いは「用途」を用いる。また、帳票画像上の「データ」は、利用者が帳票上に入力した文字列のみを指す意味で用いる。
図31は、表記は異なるが同じ意味を持つ見出し文言のバリエーションを示す図である。図31(a)〜(e)に示すように、「金額」「納付金額」「給与分」「小計金額」及び「合計金額」は,支払い、或いは納付する金額を表現する文言として用いられることがある。
図32は、同じ表記の見出し文言のデザインによって変化する意味を説明する図である。その見出し文言は「合計」が相当する。その合計の意味は図32(a)では合計金額であるが、図32(b)では合計金額の他に合計口数(品数)の意味を持っている。図32(c)中、「10/10」は10枚綴りの帳票のなかで最後の1枚であることを表している。それにより図32(c)では、10枚綴りの全帳票での合計金額を意味している。
図33は、口座番号を入力させる表構造のバリエーションを示す図である。図33(a−1)及び(a−2)は同一の見出し文言で異なる金融機関の口座番号を入力させる場合のものである。口座番号として、図33(a−1)では郵便局、図33(a−2)では銀行等のものを記載することを想定している。図33(b)は、同一帳票内に依頼人、及び受取人の口座番号を入力可能とするために独立した2つの表(単位表構造)を採用した場合のものである。図33(c)は、同一帳票内に複数の受取人の口座番号を入力可能とするために1つの表(複数の単位表構造を有する表構造)を採用した場合のものである。図33(d)は、同一の帳票内に依頼人、及び複数の受取人の口座番号を入力可能とするために1つの表(複数の単位表構造を有する表構造)を採用した場合のものである。
図34は、見出し文言とそれに対応するデータの位置関係例を説明する図である。その見出し文言は「口座番号」である。それにより図34では、見出し文言である「口座番号」が存在する領域と、データである口座番号が存在する領域との間の位置関係のバリエーションを示している。
入力させる1データの見出し文言は常に一つであるとは限らない。例えば図33(b)〜(d)に示すように、見出し文言「口座番号」の他に別の見出し文言「依頼人」或いは「受取人」が存在する場合がある。図33(b)〜(d)では、論理的な上下関係において、見出し文言「依頼人」及び「受取人」は見出し文言「口座番号」の上位に配置されている。帳票では、表構造上、そのような見出し文言間の上下関係が存在する場合がある。本実施形態では、その上下関係(階層関係)を認識に利用している。以降、便宜的に、最上位に位置すると見なす見出し文言は「見出しDR」、その見出しDRの次の階層に属する可能性が考えられる見出し文言は「見出しGR」と呼ぶことにする。帳票毎に採用される見出し文言の違いを吸収するために、同じ状況で使用される可能性が考えられる見出し文言を代表する見出し文言(以降「代表見出し」)を用意している。その代表見出しは、重複しないようにしている。それにより各代表見出しは、1つ以上の見出し文言が属するグループを表す識別情報としての機能を備えている。
1つ以上の関連するデータ、例えば受取人、或いは依頼人に係わるデータを記入する単位となる表構造である単位表構造では、例えば図33(c)或いは(d)に示すような単位表構造では、見出し文言「受取人」及び「依頼人」は見出しDR或いはGRとして扱われ、見出し文言「口座番号」はその下位に位置する代表見出しとして扱われる。このことから、或る程度のデータを記入する必要のある表構造では、見出しDR或いはGRが存在するのが普通である。
図35及び図36はそれぞれ、見出しGR及び見出しDRに着目した表構造のバリエーションを示す図である。
図35では、見出しGRは「振込先」が相当する。その見出しGR「振込先」は、図35(a)〜(d)に示すように、他項目、つまり別の見出し文言を包含する位置に配置されるか、或いはデータを入力する入力欄が直接的に示す位置に配置される場合がある。また、図35(e)或いは(f)に示すように、見出し文言として見出しGR「振込先」を含むもの(図中では「振込先銀行名」)が採用される場合もある。図35(g)に示すように、見出しGR「振込先」が存在しない場合もある。
図36では、見出しDRは「受取人」が相当する。その見出しDR「受取人」は、見出しGRとは異なり、図36(a)〜(c)に示すように、表構造が異なっても最上位と見なされる位置にその文言のまま配置される可能性が非常に高いものである。
本実施形態では、図24〜図36に示すように用途によって異なるだけでなく、様々なデザインが採用される帳票を想定した認識を実現させる。図1に戻り、それを実現させるための動作について詳細に説明する。図1において、二重線で示す構成要素には本発明の特徴を実現させるための技術が採用されている。このことから、二重線で示す構成要素を重視する形で説明する。説明上、便宜的に、論理構造解析DB25の内容については、払込用、或いは振込み用といったような金融機関で使用されることが多い帳票に係わるもののみを想定する。
図表文分離部12によって分離された表を構成する線である罫線は、罫線抽出部12によって抽出される。表構造解析部14は、罫線の抽出結果を用いて、表をセルに分解して構造を解析する。そのセルとは、サイズの概念がない領域のことである。表では、1文字、或いは文字列が記載される欄として用いられている可能性が考えられる領域となる。そのようにセルで文字列を扱うことにより、文字列を扱ううえで必要な情報量は少なくてすむようになる。つまり負荷を軽減しつつ、様々な操作がより容易に行えるようになる。
図2は、表構造解析部14が実行する表構造解析処理のフローチャートである。図37及び図38は、その表構造解析処理を実行することで行われる解析内容を説明する図である。図2、図37及び図38を参照して、表構造解析部14が行う解析について具体的に説明する。
先ず、ステップS1では、抽出された罫線があるか否か判定する。罫線の抽出を行った表(以降「対象表」)が図37(a−1)に示すようなものであった場合、罫線抽出部13は罫線を抽出できないことから、罫線は無いと判定され、ステップS2で表は罫線が無い無罫線表と判定した後、この表構造解析処理を終了する。そうでない場合には、つまり図37(a−2)〜(a−4)の何れかのようなものであった場合には、抽出された罫線が存在することから、罫線は有ると判定され、ステップS3に移行する。
ステップS3では、抽出された罫線のなかに縦罫線があるか否か判定する。対象表が図37(a−2)或いは(a−4)に示すようなものであった場合、縦罫線は有ると判定され、ステップS5に移行する。そうでない場合には、つまり図37(a−3)に示すよう
なものであった場合には、縦罫線は無いと判定され、ステップS4で仮の縦罫線を対象表に応じて生成した後、ステップS7に移行する。その仮の縦罫線は、図37(b−1)及び(b−2)に示すように、文字列(1つ以上、連なる文字)の横方向上の間隔が或る程度、広い所に生成する。
一方、ステップS5では、抽出された罫線のなかに横罫線があるか否か判定する。対象表が図37(a−3)或いは(a−4)に示すようなものであった場合、横罫線は有ると判定され、上記ステップS7に移行する。そうでない場合には、つまり図37(a−2)に示すようなものであった場合には、横罫線は無いと判定され、ステップS6で仮の横罫線を対象表に応じて生成した後、そのステップS7に移行する。その仮の横罫線は、仮の縦罫線と同様に、文字列の縦方向上の間隔が或る程度、広い所に生成する。
ステップS7では、図37(c−1)或いは(c−2)に示すように、縦罫線と横罫線(共に仮の罫線を含む)が交わる交点を抽出する。次のステップS8では、抽出した交点の数が多いか少ないか判定する。その判定は、例えば交点を結ぶ線で分けられる矩形領域の数と対象表に存在する文字列の数を考慮して行われる。言い換えれば、1矩形領域に1文字列が対応する割合に着目して行われる。それにより、図37(c−2)に示すように交点が抽出された場合、交点は多いと判定され、ステップS10に移行する。そうでない場合には、つまり図37(c−1)に示すように交点が抽出された場合には、交点は少ないと判定され、ステップS9に移行する。そのステップS9で仮の罫線を除去した後は上記ステップS2に移行する。
ステップS10では、交点を結ぶ線で分けられる矩形領域を生成する。続くステップS11では、斜行・歪み補正を行い、対象表をより適切な状態にさせる。その後は、ステップS12で矩形領域の連結関係の精査を行い、ステップS13でその精査の結果を反映させたセルの生成を行った後、この表構造解析処理を終了する。このようにして、表構造解析処理を実行することにより、帳票画像上に存在する罫線に着目し、文字列が配置される領域がセルとして生成・抽出される。
図38は、表構造によって生成されるセルを示す図である。図38(a)〜(e)に示すように、線で囲まれた矩形領域はそれぞれセルとして扱われ、連結しているか否かに応じて矩形領域はまとめられる。連結関係の精査は、矩形領域(セル)のまとまりを特定するために行われる。
例えば図38に示すように、関係するデータは1つの表内に入力させるデザインが採用される場合が多い。見出し文言(例えば項目名)、或いはデータが入力される欄間の位置関係には、データを適切に入力できるように配慮されているのが普通である。連結関係を精査してセルを生成するのは、その位置関係の特定をより容易とさせて、その位置関係を考慮した認識を行えるようにするためである。
図1のテキスト抽出部15は、セルが生成されていればセル毎にそのセル内に存在する文字列を抽出する。セルが生成されていない範囲でも文字列の抽出を行う。抽出した文字列は、文字認識部16によって文字に分割して認識される。その認識結果がキーワード抽出部17に入力される。そのキーワード抽出部17以降、文字列としては認識結果が用いられる。
同じデータを入力させるための見出し文言は帳票によって異なる場合がある。何らかの理由によって見出し文言の1文字以上が認識できない可能性もある。このことから本実施形態では、帳票毎に用いられる見出し文言だけではなく、その見出し文言に対応する代表見出しを用いて見出し文言の確認を行うようにしている。代表見出し、及びその代表見出
しが割り当てられる見出し文言は、例えば図43(a)〜(c)に示すように定義される。
論理構造解析DB25には、代表見出し毎に、その代表見出しが割り当てられる見出し文言を示す情報が格納されている。キーワード抽出部17は、そのDB25を参照して、帳票画像上に存在する見出し文言を抽出し、抽出した見出し文言に対応する代表見出しを特定する。
図3は、キーワード抽出部17が実行するキーワード抽出処理のフローチャートである。ここで図3を参照して、その抽出処理について詳細に説明する。
先ず、ステップS21では、業種別DBが指定されているか否か判定する。業種が指定されていない場合、判定はNOとなり、ステップS22で論理構造解析DB25を参照して、登録されている見出し文言を読み込んだ後、ステップS24に移行する。そうでない場合には、つまり業種が指定されていた場合には、判定はYESとなり、ステップS23で対応する業種別DBを参照して、登録されている見出し文言を読み込んだ後にステップS24に移行する。ここで読み込む見出し文言の総数はN個とする。
論理構造解析DB25は、業種を問わない汎用性の高いDBである。このため、登録されている見出し文言は非常に多い。しかし、見出し文言数は、業種を限定すればより少なくて済む。このことから本実施形態では、業種別DBを用意し、不要な負荷を軽減できるようにさせている。論理構造解析DB25は、業種別DBとして用いることができるようなものとしても良い。
ステップS24では、読み込んだ見出し文言は代表見出し毎に、見出し文言の同一文字並び順の文字単位ソートを行う。続くステップS25では、見出し合格点MTthを設定する。その後はステップS26に移行する。
図39は、見出し文言のソート方法を示す図である。ここでは、代表見出し「金額」が割り当てられた見出し文言のなかで「金額」「納付金額」及び「納付額」が帳票画像上に存在した場合を例にとって、それら見出し文言「金額」「納付金額」及び「納付額」のソート方法を示している。同じ文字の同じ並びの順番を重視してソートするために、1位の見出し文言を「納付額」とすると、2位には同じ「納付」を有する「納付金額」がソートされ、3位には「金額」が一致する「金額」がソートされる。このようなことから、図3中にソート結果で表記の「C1」〜「C6」は何れも異なる文字を表している。
図3において、ステップS26〜S31は、読み込んだ見出し文言の総数N回、繰り返し実行される。それにより登録されている見出し文言毎に、ステップS26〜S31は実行される。
同一の見出し文言は複数、存在する場合がある。例えば項目名としての他に、説明等のためのコメント文のなかに存在することがある。このことから、そのうちのステップS27〜S31は、探索により抽出された見出し文言数(図中「探索数」と表記)分、繰り返し実行される。それにより、同じ見出し文言であってもそれらの間の相違を確認するようにしている。
ステップS26では、ソートした見出し文言のうちの一つを選択し、選択した見出し文言を探索する。その探索により、見つかった同じ見出し文言数分、ステップS27〜S31が繰り返し実行される。
帳票によっては、登録した見出し文言以外の文字列を用いている可能性がある。このこ
とからステップS27では、探索により抽出した見出し文言と登録されている見出し文言との一致度を表す見出し得点MTn(nはn番目に探索された見出し文言の得点であることを表すシンボルである。特に探索された順番を考慮する必要がないような場合には「MT」とも表記する)を算出する見出し得点算出処理を実行する。その実行後はステップS28に移行する。
ステップS28では、算出した見出し得点MTnは見出し合格点MTth以上か否か判定する。その大小関係が満たされている場合、判定はYESとなり、ステップS29で見出し文言がコメント文に含まれている可能性を判定するためのコメント判定処理を実行してからステップS30に移行する。そうでない場合には、判定はNOとなり、一連の処理を終了する。それにより、今回、対象とした見出し文言はキーワードとは見なさない。このようなことから見出し合格点MTthは、抽出した見出し文言のなかでキーワードとはならないものを排除するための閾値として用いられる。
コメント判定処理では、ステップS27の見出し得点算出処理で算出された見出し得点MTnの更新が行われる。ステップS30では、更新後の見出し得点MTnから見出し文言がコメント文に含まれているか否か判定する。例えば、その見出し得点MTnが閾値として設定された値より小さい場合、判定はYESとなり、ここで一連の処理を終了する。それにより、見出し文言はキーワードとは見なさない。一方、そうでない場合には、判定はNOとなり、ステップS31で見出し(キーワード)候補として見出し文言を登録した後、一連の処理を終了する。
このようにして、探索により抽出した見出し文言は、登録された見出し文言(以降「登録見出し文言」とも表記する)とは明らかに異なっていない、或いはコメント文に含まれていると見なされない場合、その見出し文言が抽出されたセルを示すセルID、見出し得点、その得点が得られた登録見出し文言、及び代表見出しといった情報と共に登録される。それにより、見出し文言には複数の同じ代表見出し、つまり同じ代表見出しが割り当てられた複数の登録見出し文言が存在する可能性がある。見出し文言に対応する代表見出しは1つである。同じ代表見出しが割り当てられた複数の登録見出し文言のなかから一つを選択することを含む整理は、ステップS32以降で行われる。
ステップS32では、探索により抽出した見出し文言順に結果をソートする。続くステップS33では、同じ見出し文言の結果を代表見出し順にソートする。その次に移行するステップS34では、探索により抽出した見出し文言のなかに同じ代表見出しが割り当てられた登録見出し文言が複数、存在するものがあるか否か判定する。そのような見出し文言が存在する場合、判定はYESとなり、ステップ35で複数の登録見出し文言のなかから見出し得点MTが最高のもの以外を削除した後、このキーワード抽出処理を終了する。そうでない場合には、判定はNOとなり、ここでこのキーワード抽出処理を終了する。このようにして抽出され整理された見出し文言は、セルIDや代表見出し、見出し得点、及び登録見出し文言と共にキーワードDB31に登録される。
図4は、上記ステップS27として実行される見出し得点算出処理のフローチャートである。ここで図4を参照して、その算出処理について詳細に説明する。図4中の「ML」及び「MLO」はそれぞれ、登録見出し文言の文字数、抽出された見出し文言で登録見出し文言と一致した文字数をそれぞれ表している。
この算出処理では、登録見出し文言の文字数ML別に、一致文字数MLOに応じた見出し点数MTの算出を行うようになっている。その点数MTの初期値は0であり、その点数MTは以下のように更新される。
文字数MLが1であれば、見出し点数MTとして一致文字数MLOに100を乗算した値が算出される(S41→S42)。文字数MLが2であれば、見出し点数MTとして、一致文字数MLOが1であれば70(S41→S43→S44→S45)、その一致文字数MLOが2であれば100(S41→S43→S44→S46→S47)に更新され、その一致文字数MLOが1及び2以外の数値、つまり0であれば0のままとなる(S41→S43→S44→S46→end)。文字数MLが3であれば、見出し点数MTとして、一致文字数MLOが2であれば70(S41→S43→S48→S49→S50)、その一致文字数MLOが3であれば100(S41→S43→S48→S49→S51→S52)に更新され、その一致文字数MLOが1及び2以外の数値、つまり0であれば0のままとなる(S41→S43→S48→S49→S51→end)。文字数MLが3より大きければ、見出し点数MTとして、一致文字数MLOに100を乗算した値を文字数MLで割って得られる値(=MLO*100/ML)が算出される(S41→S43→S48→S53→S54)。見出し得点算出処理は、見出し点数MTを更新した後に終了する。このような更新方法は一例であり、特に限定されるものではない。
図40は、抽出された見出し文言で算出される見出し得点MT例を示す図である。図40(a)は代表見出し毎に見出し文言をソートした結果、図40(b−1)は抽出された見出し文言「納付?額」(「?」は文字認識に失敗した文字を表す)の処理結果、図40(b−2)は抽出された見出し文言「納付*」(「*」は内容、文字数が不明な文字列を表す)の処理結果、をそれぞれ示している。図40(b−2)では、同じ代表見出しが複数(二つ)存在している。図40(b−1)及び(b−2)では、図4に示す見出し得点算出処理内で見出し得点MTが算出される処理ステップを併せて表記している。図40(b−1)或いは(b−2)に示すような処理結果は、図4のステップS33を実行することで得られる。
図44は、図43(c)に示す内容が論理構造解析DB25に格納されている場合に算出される見出し得点MTnを説明する図である。図44(a)は代表見出し「金額」の認識に成功した場合、図44(b)はその1文字の認識に失敗した場合を示している。
図42は、キーワードDB31に登録される内容例を示す図である。図4に示すように、探索により抽出された見出し文言(図中「探索文字列」と表記。以降、その表記も用いる)には、同じ代表見出しが割り当てられた登録見出し文言が複数、抽出される場合がある。その場合、見出し得点MTが最も高い登録見出し文言のみが残される。それにより、探索文字列「M1」では、登録見出し文言「MG4」及び「MG5」のなかで文言「MG4」のみが残されることになる。探索文字列「M3」では、登録見出し文言「MG3」及び「MG6」の得点MTは共に100であり、登録見出し文言「MG7」の得点MTは70であることから、登録見出し文言「MG3」及び「MG6」の2つが残ることになる。そのように複数の登録見出し文言が残っても良いことにしているのは、処理対象として不必要と思われるものを省くことを主眼にしているからである。
図5は、図3に示すキーワード抽出処理内でステップS29として実行されるコメント判定処理のフローチャートである。次に図5を参照して、その判定処理について詳細に説明する。
図41(a)〜(d)に示すように、項目名となっている見出し文言「金額」は、同じ枠(セル)内、或いは表外に説明用、つまりコメント文として存在する場合がある。説明用の場合、他の文字列と共に存在する(図41(a)〜(d))、及び色、若しくは大きさが異なる(図41(c)或いは(d))、といった条件のうちの少なくとも一つを満たしているのが普通である。見出し文言がコメント文を構成するものか否かは、そのような条件に着目して行っている。見出し得点MTnは、満たしている条件に応じて更新される
先ずステップS62では、「*」括弧記号、或いは「注意」等のコメント文に存在する可能性が高いシンボルが見出し文言の近くにあるか否か判定する。そのようなシンボルが近くにある場合、判定はYESとなり、ステップS63で所定値CM1を見出し点数MTnから減算した後、ステップS64に移行する。そうでない場合には、判定はNOとなって、そのステップS64に移行する。
ステップS64〜S69では、同様に、見出し文言が満たしている条件に応じて見出し得点MTnを更新するための処理が行われる。それにより、見出し文言の左右上下の何れかに文字が存在していれば所定値CM2を見出し得点MTnから減算し(S64→S65→S66)、見出し文言の色が周囲の文字、或いは罫線の色と異なれば所定値CM3を減算し判定し(S64或いはS65→S66→S67)、文字サイズが他の文字と比較して極端に(明らかに)小さい、或いは大きければ所定値CM4を減算する(S66或いはS67→S68→S69)。所定値CM4の減算、或いはステップS68でのNOの判定によりステップS70に移行する。
ステップS70では、見出し得点MTnの値は見出し合格点MTth未満か否か判定する。その大小関係が満たされている場合、判定はYESとなり、ここでコメント判定処理を終了する。そうでない場合には、判定はNOとなり、ステップS71で見出し得点MTnに所定値CM0を加算した後、このコメント判定処理を終了する。それにより、コメント文に含まれると見なすべきでない見出し文言には見出し得点MTnをより上げる操作を行っている。
キーワード抽出部17では、上述したような各種処理が実行され、その実行結果として得られたキーワード、及びそれに係わる情報がキーワードDB31に格納される。帳票種別判別部18は、そのキーワードDB31を参照して、帳票の種別(タイプ)を判定する。それにより、ここでは帳票が単票、連記及び複数票のうちの何れであるか特定する。
図6は、帳票種別判別部18が実行する帳票種別判定処理のフローチャートである。ここで図6を参照して、その判定処理について詳細に説明する。
先ず、ステップS81では、帳票種別が定義済みか否か判定する。例えば帳票種別をオペレータが指定した、或いは帳票種別を示す情報が帳票上に存在していたような場合、判定はYESとなり、ステップS82で帳票種別を設定した後、ステップS94に移行する。その何れでも無いような場合には、判定はNOとなってステップS83に移行する。
ステップS83では、無罫線表か否か判定する。図2に示す表構造解析処理を実行した結果、無罫線表と判定した場合、判定はYESとなってステップS85に移行する。そうでない場合には、判定はNOとなり、ステップS84で無罫線表の構造を判定するための表構造判定処理を実行してから、そのステップS85に移行する。
ステップS85では、見出し文言に着目して帳票の種別を判定するための見出し文言判定処理を実行する。その実行後は、ステップS86に移行して、最大値MaxSyuを算出する。その算出後はステップS87に移行する。
上記表構造判定処理では、帳票の種別毎に、得点を算出するための変数を用意し、その変数に代入した得点を必要に応じて更新するようになっている。その変数は複数票ではFRT、単票ではTRT、連記ではRPTである。見出し文言判定処理でも必要に応じて、それら変数の値(得点)を更新するようになっている。ステップS86での最大値MaxSyuの算出は、それら変数のうち例えば変数FRT及びRPTの各値を用いて行われる
。その算出方法は、特に限定するものではないが、例えばそれらの値を加算するものも含まれる。
ステップS87では、最大値MaxSyuは表らしさの最低点SyuThより大きいか否か判定する。最大値MaxSyuが最低点SyuTh以下であった場合、判定はNOとなり、ステップS88で種別は単票と設定した後、上記ステップS94に移行する。そうでない場合には、判定はYESとなってステップS89に移行する。
ステップS89では、最大値MaxSyuは変数PRTの値か否か判定する。3つの変数のなかで変数PRTの値が最も大きかった場合、判定はYESとなり、ステップS90で種別は連記と設定した後、上記ステップS94に移行する。そうでない場合には、判定はNOとなってステップS91に移行する。
ステップS91では、最大値MaxSyuは変数FRTの値か否か判定する。3つの変数のなかで変数FRTの値が最も大きかった場合、判定はYESとなり、ステップS92で種別は複数票と設定した後、上記ステップS94に移行する。そうでない場合には、判定はNOとなり、ステップS93で種別は単票と設定した後、そのステップS94に移行する。
ステップS94では、無罫線表か否か判定する。上記ステップS83で無罫線表と判定した場合、判定はYESとなり、ステップS95で無罫線表の構造を解析するための無罫線表構造解析処理を実行した後、この帳票種別判定処理を終了する。そうでない場合には、判定はNOとなり、ステップS96でセル補正処理を実行した後、この帳票種別判定処理を終了する。
上述したように、帳票は種別によって特有の表構造を有している。このため、帳票の種別を判定(特定)することにより、見出し文言とデータの対応関係も正確に特定できることとなる。それにより帳票は高精度に認識される。
ここで上記帳票種別判定処理内で実行される各種サブルーチン処理について、図7〜図9を参照して詳細に説明する。
図7は、上記ステップS84として実行される表構造判定処理のフローチャートである。初めに図7を参照して、その判定処理について詳細に説明する。
この表構造判定処理では、帳票の種別によって特有の構造をセルの配置に着目して解析するようになっている。そのセルの配置は、連記では図45(a−1)或いは(a−2)に示すように、各行のセルがほとんど、或いはほぼ揃っていることが多い。複数票では、図45(b−1)或いは(b−2)に示すように、複数行のセルの配置が繰り返し出現することが多い。単票では、図45(c−1)或いは(c−2)に示すように、セルは揃ってはいないが近接しているか、或いは近接していないことが多い。そのような帳票の種別によって異なるセル(見出し文言を有するセルを含む)の配置の特徴に着目して、上記変数FR1、TR1及びRP1の更新が行われる。それらの初期値は0である。
先ず、ステップS101では、行毎に、横(1行)に並ぶセルの個数ClYnを算出する。続くステップS102では、1行に並ぶセルの平均個数ClYaveを算出する。次のステップS103では、行毎に、横(行)方向に並ぶセルのなかで、隣と接するセル間に存在する角、つまり隣り合うセルを分ける罫線の個数KDYnを算出する。その次に移行するステップS104では、行毎に、個数KDYnを個数ClYnで割った値をセルずれ度ZRYとして算出する。その算出後はステップS105に移行する。ステップS104で算出するセルずれ度ZRYは、1行のセルのなかで隣接するセルが存在する割合を示す値である。それにより、行方向にセルが揃っている度合いを示している。行方向にセルが揃っているか否か判定するために、閾値ZRYthを設定している。
ステップS105〜S108では、同様に、列に着目して各種個数、及びせるずれ度ZRTの算出が行われる。
先ず、ステップS105では、列毎に、縦(1列)に並ぶセルの個数ClTnを算出する。続くステップS106では、1列に並ぶセルの平均個数ClTaveを算出する。次のステップS107では、列毎に、縦(列)方向に並ぶセルのなかで、縦方向上の隣と接するセル間に存在する角、つまり隣り合うセルを分ける罫線の個数KDTnを算出する。その次に移行するステップS108では、列毎に、個数KDTnを個数ClTnで割った値をセルずれ度ZRTとして算出する。そのセルずれ度ZRTは、列方向にセルが揃っている度合いを示している。列方向にセルが揃っているか否か判定するために、閾値ZRTthを設定している。
上述したようにして算出されるセルずれ度ZRY及びZRTは共に、その値が大きいほど揃っていることを示している。ステップS108に続くステップS109では、セルずれ度ZRYは閾値ZRYthより大きく、且つセルずれ度ZRTは閾値ZRTthより大きいか否か判定する。それらの大小関係が共に満たされている場合、つまり縦横ほぼ揃っていると見なせる場合、判定はYESとなり、連記の特徴を有しているとして、ステップS110で変数RRTにそれまでの値に所定値R1を加算した値を代入した後、この表構造判定処理を終了する。それらの大小関係のうち1つ以上が満たされていない場合には、判定はNOとなってステップS111に移行する。
ステップS111では、行毎のセルの個数ClYnが2行で繰り返しになっているか否か判定する。その繰り返しが複数、存在する場合、判定はYESとなり、複数票の特徴を有しているとして、ステップS112で変数FRTにそれまでの値に所定値F1を加算した値を代入した後、この表構造判定処理を終了する。そうでない場合には、判定はNOとなってステップS113に移行する。
ステップS113では、行毎のセルの個数ClYnが3行で繰り返しになっているか否か判定する。その繰り返しが複数、存在する場合、判定はYESとなり、複数票の特徴を有しているとして、ステップS114で変数FRTにそれまでの値に所定値F1を加算した値を代入した後、この表構造判定処理を終了する。そうでない場合には、判定はNOとなってステップS115に移行する。
ステップS115では、セルが近接しているか否か判定する。この状況では、セルが近接しているとは図45(c−1)に示すようなセルの配置となる。それにより、図45(c−1)に示すようなセルの配置であった場合、判定はYESとなり、単票の特徴を有しているとして、ステップS116で変数TRTにそれまでの値に所定値T1を加算した値を代入した後、この表構造判定処理を終了する。そうでない場合には、判定はNOとなり、ここでこの表構造判定処理を終了する。
図8は、図6に示す帳票種別判定処理内でステップS85として実行される見出し文言判定処理のフローチャートである。次に図8を参照して、その判定処理について詳細に説明する。
図30に示すような複数票では、異なる場所で同一の見出し文言が同じ順序で探索されることから、図46(a−1)に示すようにキーワードが抽出されることになる。これに対し、図24及び図25に示すような単票、並びに図26〜図29に示すような連記では、図46(a−2)に示すようにキーワードが抽出され、同じ見出し文言が別のセルに存在することは稀となる。
一方、複数票では図46(b−1)に示すように、同じ探索文字列が存在するセルの配置は、縦、或いは横方向上、同じ位置となるのが普通である。単票、及び連記では、図46(b−2)に示すように、異なる探索文字列が縦、或いは横方向上に並んでいることがある。それは、連記のほうがより多く出現する。単票では、図46(b−3)に示すように、探索文字列が存在するセルの位置に関連性(規則性)がないことも多い。単票、及び連記では、図46(b−4)に示すように、探索文字列が一つだけしか探索できないこともある。見出し文言判定処理では、そのような帳票の種別によって異なるキーワードの抽出結果(見出し文言の配置)に着目して、変数FRT、TRT或いはRRTの値を更新するようになっている。
先ず、ステップS121では、同一の探索文字列が3つ以上、存在するか否か判定する。同一の探索文字列がキーワードとして抽出された場合、判定はYESとなり、ステップS122で変数FRTにそれまでの値に所定値F2を加算した値を代入した後、ステップS127に移行する。そうでない場合には、判定はNOとなってステップS123に移行する。
ステップS123では、探索文字列として抽出された見出しGR或いはDRの種類数が2以上であり、且つ同一の探索文字列が2つ以上、抽出されているか否か判定する。見出しGR或いはDRの種類数が2以上であり、且つ同一の探索文字列が2つ以上、抽出されていた場合、判定はYESとなり、ステップS124で変数FRTにそれまでの値に所定値F3を加算した値を代入した後、ステップS127に移行する。そうでない場合には、判定はNOとなってステップS125に移行する。
ステップS125では、同一の探索文字列が全て1つか否か判定する。抽出された探索文字列が互いに異なる場合、判定はYESとなり、ステップS126で変数TRT及びRRTにそれぞれ、それまでの値に所定値T2及びR2を加算した値を代入した後、ステップS127に移行する。そうでない場合には、判定はNOとなってそのステップS127に移行する。
ステップS127では、同じ探索文字列が縦、或いは横方向上、同じ配置となっているか否か判定する。縦、或いは横方向上の同じ位置から同じ探索文字列が複数、抽出された場合、判定はYESとなり、ステップS128で変数FRTにそれまでの値に所定値F4を加算した値を代入した後、この見出し文言判定処理を終了する。そうでない場合には、判定はNOとなってステップS129に移行する。
ステップS129では、異なる探索文字列が横、或いは縦方向上に並んでいるか否か判定する。異なる探索文字列がそのように並んでいた場合、判定はYESとなり、ステップS130で変数TRT及びRRTにそれぞれ、それまでの値に所定値T3及びR3を加算した値を代入した後、この見出し文言判定処理を終了する。そうでない場合には、判定はNOとなって、ここでこの見出し文言判定処理を終了する。
図9は、図6に示す帳票種別判定処理内でステップS96として実行されるセル補正処理のフローチャートである。次に図9を参照して、その補正処理について詳細に説明する。
ステップS96に移行した段階では、無罫線表を有する帳票でない限り、その種別は判定済みとなる。セル補正処理では、その判定結果に従い、セルの形状、及び配置を補正することが行われる。それにより、図45(a−2)及び(b−2)にそれぞれ示すような
セルの形状・配置は、図47(a)及び(b)に示すように補正される。
先ず、ステップS141では、判定した帳票の種別は連記か否か判定する。その種別が連記でなかった場合、判定はNOとなり、ステップS145に移行する。そうでない場合には、判定はYESとなってステップS142に移行する。
ステップS142では、探索文字列として抽出された見出し文言が並ぶ行、或いは列を抽出する(図46(b−2))。次のステップS143では、抽出した行、或いは列が1直線上に並ぶように補正する。その次のステップS144では、他の行、或いは列も補正した行、或いは列に合わせて補正する。その後、このセル補正処理を終了する。
一方、ステップS145では、判定した帳票の種別は複数票か否か判定する。その種別が複数票でなかった場合、判定はNOとなり、ここでこのセル補正処理を終了する。そうでない場合には、判定はYESとなってステップS146に移行する。
ステップS146では、複数行単位で、各行の平均の並びを算出する。続くステップS17では、算出した並びの平均から比較的に大きく異なる行があるか否か判定する。そのような行が存在する場合、判定はYESとなり、ステップS148でその行の並びを平均のものに補正した後、このセル補正処理を終了する。そうでない場合には、つまり補正が必要な行が存在しない場合には、判定はNOとなり、ここでこのセル補正処理を終了する。
図10は、図6に示す帳票種別判定処理内でステップS95として実行される無罫線表構造解析処理のフローチャートである。最後に図10を参照して、その解析処理について詳細に説明する。図1の表構造解析(無罫線)部19は、この解析処理を実行することで実現される。
この解析処理では、探索文字列に着目し、その探索文字列を包含するセルを仮想的に生成する(以降、便宜的に仮想的に生成するセルを「仮想セル」と総称し、探索文字列の仮想セルは「見出し仮想セル」と呼ぶ)。生成した仮想セルの配置、各仮想セルに存在する探索文字列から、帳票の種別判定結果を考慮して、データを包含する仮想セル(以降「データ仮想セル」と呼ぶ)を生成する。そのように生成した仮想セルを実際のセルとして設定する。図48は、そのようにしてセルを生成する過程を示す図であり、実際のデザイン、見出し仮想セルを生成した段階、データ仮想セルを生成した段階、及び最終的にセルを生成した段階に分けて、その過程を示している。図48(a)及び(b)はそれぞれ連記、及び複数票の場合をそれぞれ示している。
先ず、ステップS151では、探索文字列が抽出された場所に見出し仮想セルを生成する。次のステップS152では、見出し仮想セルを生成した位置、各見出し仮想セルの探索文字列から、帳票の種別が連記か否か判定する。異なる探索文字列の見出し仮想セルが縦、或いは横方向に並ぶように生成できなかったような場合、判定はNOとなってステップS156に移行する。そうでない場合には、即ち図48(a)に示すように見出し仮想セルを生成できたような場合には、判定はYESとなってステップS153に移行する。
ステップS153では、見出し仮想セルが縦、或いは横方向上、並ぶように、別の行、或いは列を考慮して、その見出し仮想セルを配置した行、或いは列の仮想セルを必要に応じて生成、或いは補正する。続くステップS154では、見出し仮想セルを配置した行、或いは列とは別の行、或いは列に、データ仮想セルを生成する。その生成が完了した後に移行するステップS155では、生成した仮想セルの並びが連記としてより適切となるように補正する。その補正を行った後はステップS161に移行する。
ステップS156では、見出し仮想セルを生成した位置、各見出し仮想セルの探索文字列から、帳票の種別が複数票か否か判定する。探索文字列が同一の見出し仮想セルを複数、縦、或いは横方向の同じような位置に生成できなかったような場合、判定はNOとなってステップS160に移行し、データと見なす文字列の仮想セルを生成する。その生成後はステップS161に移行する。そうでない場合には、即ち図48(b)に示すように見出し仮想セルを生成できたような場合には、判定はYESとなってステップS157に移行する。
ステップS157では、仮想セルの配置パターンが繰り返される複数の行、或いは列の領域を生成する。次のステップS158では、生成した領域毎にデータ仮想セルを生成する。その次のステップS159では、繰り返される複数の行、或いは列、つまり生成した領域毎に、平均の配置パターンに合わせて仮想セルの配置を補正する。その後はステップS161に移行する。
ステップS161では、揃っているべきと見なしている仮想セル間のずれの大小を判定する。そのずれが比較的に小さい場合、その旨が判定されてステップS162に移行し、そのずれがより小さくなるように仮想セルの配置を補正する。その補正後は、ステップS163に移行して、周りの仮想セルとの位置関係を精査し、配置を補正すべき仮想セルがあればその配置を補正する。そのような補正を行い、仮想セルの配置を全体的により適切なものに調整した後はステップS164に移行し、仮想セルを通常のセルとして生成する。その後、この無罫線表構造解析処理を終了する。
一方、揃っているべきと見なしている仮想セル間のずれが比較的に大きい場合には、その旨がステップS161で判定されてステップS165に移行する。そのステップS165では、そのずれが存在する方向に隣り合う仮想セルを連結させる操作を行う。その後はステップS164に移行し、仮想セルを通常のセルとして生成する。
このようにして、帳票が無罫線表であってもセルが生成される。それにより論理構造解析(項目候補抽出)部20では、セルによって表現された帳票の構造を論理的に解析し、構造上、不適切な箇所、或いは適切に認識できなかったと思われる見出し文言を抽出して修正する。その修正により、罫線のない表構造であっても、より高精度に帳票の認識、つまり見出し文言とデータの関係を認識する。
図11は、論理構造解析(項目候補抽出)部20が実行する第1の論理構造解析処理フローチャートである。次に図11を参照して、論理構造解析(項目候補抽出)部20を実現させるその解析処理について詳細に説明する。
先ず、ステップS171では、探索により抽出された見出し文言、つまり探索文字列を精査する。次に移行するステップS172では、論理構造解析DB25に登録された定義より、認識されていない見出し文言が不足しているか否か判定する。その定義により認識されているべきと考えられる見出し文言のなかに認識されていないものが存在する場合、判定はYESとなり、ステップS173で不読見出し復元処理、次のステップS174でセル補正処理を実行してからステップS175に移行する。そうでない場合には、つまり認識されているべきと考えられる見出し文言が全て認識されていた場合には、判定はNOとなり、次にステップS175に移行する。
ここで、上記不読見出し復元処理、及びセル補正処理について具体的に説明する。
図12は、不読見出し復元処理のフローチャートである。この復元処理は、ノイズ、汚れ、或いは破損等の理由によって認識できなかった見出し文言を推定して抽出するための
処理である。この復元処理では、ステップS201及びS202でそれぞれ見出し位置情報による再抽出処理、排他関係、及びデータ情報による再抽出処理を実行するようになっている。
図49は、見出し位置情報による再抽出処理の内容の例を説明する図である。図49(a)は、論理構造解析DB25に定義された内容の抜粋を示し、項目「見出し位置」で定義されるのは見出し文言が存在するべき帳票上の位置を表す見出し位置情報である。図49(b)〜(e)は、図49(a)に示す内容の抜粋に合わせて用意した図であり、それぞれ、帳票デザイン、その帳票デザイン上の見出し位置情報によって抽出される文字列、その文字列への操作、その操作によって得られる認識結果、をそれぞれ示している。
図49(b)では、帳票の上部に位置する文字列「平成○○年度◇◇◇県自動車税」のなかで「税」が認識できなかったことを表している。しかし、その文字列は、図49(a)に示す抜粋の見出し位置情報を参照することで再抽出され、論理構造解析DB25により図49(d)に示す操作が行われることになる。その操作では、文字列「◇◇◇県」は代表見出し「税名」で含まれない文言であることから無視され、文字列「自動車税」は「税」が不読であっても(認識できなくとも)正しく推定されることとなる。文字列「平成○○年度」はそれに対応する代表見出し「年」と関係付けられる。この結果、図49(e)に示すように認識されることとなる。
図50は、見出し位置情報による再抽出処理の内容の他の例を説明する図である。図49と同様に、図50(a)は、論理構造解析DB25に定義された内容の抜粋を示している。図50(b−1)及び(b−2)はそれぞれ、帳票デザインによる処理内容を示している。
図50(a)に示す抜粋では、見出し位置情報が示す位置は上部、及び下部となっている。抽出する対象となる文言は最後が「市」となっている文字列である。このため、図50(b−1)に示す例では、文字列「○○○市」が帳票の上部、及び下部にそれぞれ存在するため、その文字列「○○○市」が再抽出されることとなる。一方、図50(b−2)に示す例では、帳票の上部に存在する文字列「△△△税」は無視されることとなる。それにより、帳票の上部、及び下部には抽出すべき文字列は存在しないと見なされる。
図51は、排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第1の例を説明する図である。図51(a)は論理構造解析DB25に定義された内容の抜粋を示し、図51(b−1)及び(b−2)はそれぞれ、同じ帳票デザインで認識不能の見出し文言の数によって異なる処理内容を示している。
図51(b−1)及び(b−2)にそれぞれ示す帳票デザインは図51(a)に示す抜粋に対応した連記のものである。簡単のため、見出し文言は全て代表見出しとしている。それによりここでは、見出し文言は代表見出しと同じ意味で用いる。これは、図52及び図53でも同様である。図51(b−1)では代表見出し「口座番号」上に印が押されて認識不可能となっており、図51(b−2)では代表見出し「口座番号」の他に、代表見出し「金額」上にも印が押されて認識不可能となっている。
上述したように、代表見出しは重複しないように決定する。それにより連記では、並んでいる代表見出しは重複を禁止する排他関係を成立させる。このことから、図51(b−1)に示す例では、論理構造解析DB25を参照して、代表見出しのなかで欠けているものが「口座番号」の一つのみであることを特定することができる。それにより、認識できなくなっている見出し文言は「口座番号」と正確に推定(復元)することができる。
一方、図51(b−2)に示す例では、論理構造解析DB25を参照して、代表見出しのなかで欠けているものが「口座番号」及び「金額」の2つであることを特定することができる。しかし、複数の代表見出しが欠けていることから、欠けている代表見出しが配置されている位置までは特定できない。このことから、その位置の特定には、属性、フォーマット、付帯記号の各情報を有するデータ情報を用いる。
代表見出し「口座番号」のデータ情報は、それのデータは7桁の数字列であり、そのデータに付帯記号は付されないことを示している。代表見出し「金額」のデータ情報では、それのデータは桁数が限定されない数字列であり、そのデータの先頭(最初)に文言「¥」が付される、最後に文言「円」が付される、或いは数字間に文言「,」が配置される可能性を示している。このため、文言「¥」が数字列の先頭に付されたデータに対応するほうの代表見出しが「金額」であると正確に推定(復元)することができる。その推定により、残りの代表見出しは「口座番号」であると正確に推定(復元)することとなる。
図52は、排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第2の例を説明する図である。図52(a)は認識不能の見出し文言が存在する帳票例、図52(b)は論理構造解析DB25に定義されたその帳票に対応する内容をそれぞれ示している。
図52(a)では、代表見出し「支店名」及び「口座番号」が共に未抽出となっている。しかし、代表見出し「支店名」及び「口座番号」の各データはそれぞれ、付帯記号として「支店」が付されているか、或いは数字列となっている。このため、そのようなデータの相違により、未検出の代表見出し「支店名」及び「口座番号」を共に正確に推定できるようになっている。
このように見出し文言によっては、その情報として存在する文字列に「¥」や「円」或いは「支店」等の特有の付帯記号(シンボル)が付される可能性がある。そのような付帯記号が付される位置は、付帯記号によって特有である。このことから、付帯記号、及びその位置を示す情報(付帯記号情報)は、見出し文言に対応する情報(文字列)を高精度に特定するうえで有効である。それにより、対応する文字列に付帯記号が付される可能性が考えられる見出し文言には付帯記号情報を用意している。
複数票では、同一の代表見出しを一つ以上、有する表構造が繰り返される。その繰り返される表構造の部分(「明細範囲」とも呼ぶことにする)には、同じ位置に同じ代表見出しが存在する。このため、或る明細範囲で代表見出しが抽出されていないセルがあっても、他の明細範囲でその位置から代表見出しを抽出している場合には、図54に示すように、抽出されていない代表見出しを正確に推定することができる。しかし、そうでなければ、つまり全明細範囲で同じ代表見出しを抽出できていないのであれば、抽出できなかった代表見出しを正確に推定できるとは限らない。例えば抽出できなかった代表見出しとして考えられるものが一つのみである、及び抽出できなかった代表見出しのデータの属性が他の代表見出しのデータの何れの属性とも異なっている、といった条件の何れかが成立していなければ正確な推定は不可能となる。このことから本実施形態では、未抽出の代表見出しの正確な推定が不可能な場合、未抽出の代表見出しに割り当てるべき代表見出し、及びその優先順位(データ位置順位)を生成し、未抽出の代表見出しに可能性がある代表見出しを割り当てるようになっている。
図53は、排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第3の例を説明する図である。その図53は、代表見出しが持つ排他関係、及びデータ情報を用いても未検出の代表見出しを推定できないことから、データ位置順位を生成して代表見出しを推定する場合の例を示している。図53(a)は認識不能の見出し文言が存
在する帳票例、図53(b)は論理構造解析DB25に定義されたその帳票に対応する内容、及び図53(c)は生成されたデータ位置順位をそれぞれ示している。
図53(a)では、代表見出し「銀行名」及び「支店名」が共に未抽出となっている。しかし、代表見出し「銀行名」及び「支店名」の各データの属性は同じであり、それらのデータを区別可能とする付帯記号は付されていない。このため、未検出の代表見出しを特定するための情報は得られない状況となっている。それにより、代表見出し「銀行名」及び「支店名」をそれぞれ1位、2位とするデータ位置順位を生成し、そのデータ位置順位が生成された代表見出しは予め定めた規則に従って未検出の代表見出しにそれぞれ割り当てるようにしている。
そのようにして、未検出の代表見出しには何らかの代表見出しを割り当てることにより、オペレータは必要に応じて抽出された代表見出しを修正すれば済むようになる。このため、未検出の代表見出しを全てオペレータに入力させる場合と比較して、オペレータの負荷をより軽減させることができる。
図13は、図51〜図53を参照して説明した排他関係、及びデータ情報による再抽出処理のフローチャートである。次に図13を参照して、その再抽出処理についてより詳細に説明する。
先ず、ステップS211では、検出された見出し文言が無いか否か判定する。見出し文言を一つも検出できなかった場合判定はYESとなり、ここでこの再抽出処理を終了する。そうでない場合には、判定はNOとなってステップS212に移行する。
ステップS212では、帳票の種別は連記か否か判定する。帳票種別判定部18の判定が連記でない場合、判定はNOとなってステップS224に移行する。そうでない場合には、判定はYESとなってステップS213に移行する。
ステップS213では、見出し文言が並ぶ行(見出し行)を抽出する。次のステップS214では、論理構造解析DB25を参照し、見出し行のなかで抽出されていない見出し文言が一つであり、且つ見出し文言が見つかっていないデータ列が一つか否か判定する。データ列の見出し文言として考えられるものが一つのみであった場合、判定はYESとなり、ステップS215でその代表見出しを未検出の代表見出しの候補に確定させた後、この再抽出処理を終了する。そうでない場合には、判定はNOとなり、ステップS216に移行する。
ステップS216〜S220は、未検出の見出し文言数分、実行される処理ループを形成している。それにより、未検出の見出し文言のなかから一つを選択し、選択した見出し文言に着目して、その見出し文言に対応する代表見出しの特定が行われる。
先ず、ステップS216では、未検出の見出し文言を選択し、その見出し文言が存在するセル、及びそのセルと対応付けられるデータが存在するデータ列を抽出する。次のステップS217では、データ列のデータ情報を抽出する。そのデータ情報の抽出後は、ステップS218に移行して、論理情報解析DB25を参照し、代表見出しが持つ排他関係、及びデータ情報に着目した代表見出しの選出を行う。その選出は、図51及び図52を参照して説明したように行われる。
ステップS218に続くステップS219では、選出により抽出された代表見出しは一つか否か判定する。抽出できた代表見出しが一つのみであった場合、判定はYESとなってステップS220に移行し、抽出できた代表見出しは未検出の見出し文言のものと確定
させた後、一連の処理を終了し、上記ステップS216に戻る。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
上述したような一連の処理を未検出の見出し文言数分、実行すると、ステップS221に移行する。そのステップS221では、未検出の見出し文言の数は抽出されたデータ列の数と等しいか否か判定する。未検出の見出し文言毎に、それに対応付けられるデータ列を抽出できていなかった場合、判定はNOとなり、ここで排他関係、及びデータ情報による再抽出処理を終了する。これは、未検出とする見出し文言の判定等に誤りがある可能性が考えられるからである。そうでない場合には、判定はYESとなり、ステップS222に移行する。
ステップS222では、データ位置順位を生成し、その順位の順番に、未検出の見出し文言に代表見出しを割り当てる。続くステップS223では、割り当てた代表見出しを確定させる。その後、排他関係、及びデータ情報による再抽出処理を終了する。
上記ステップS212の判定がNOとなって移行するステップS224では、帳票の種別は複数票か否か判定する。帳票種別判定部18の判定が複数票でない場合、つまり帳票の種別は単票と判定していた場合、判定はNOとなり、ここで排他関係、及びデータ情報による再抽出処理を終了する。そうでない場合には、判定はYESとなってステップS225に移行する。
ステップS225では、繰り返される表構造の部分である明細範囲を抽出する。その抽出後に移行するステップS226では、抽出した明細範囲間で未検出の見出し文言が全て一致していないか否か、つまり或る明細範囲で未検出の見出し文言は他の明細範囲で検出されているか否か判定する。明細範囲に存在する見出し文言は全て何れかの明細範囲で検出できている場合、判定はYESとなり、ステップS227で未検出の見出し文言(の代表見出し)を図54に示すように確定した後、排他関係、及びデータ情報による再抽出処理を終了する。そうでない場合には、判定はNOとなってステップS228に移行する。
ステップS228〜S233は、上述のステップS216〜S220と同様に、全ての明細範囲で未検出の見出し文言数分、実行される処理ループを形成している。それにより、未検出の見出し文言のなかから一つを選択し、選択した見出し文言に着目して、その見出し文言に対応する代表見出しの特定が行われる。
先ず、ステップS228では、未検出の見出し文言を選択し、その見出し文言が存在するセル、及びそのセルと対応付けられるデータを抽出する。次のステップS229では、データのデータ情報を抽出する。そのデータ情報の抽出後は、ステップS230に移行して、論理情報解析DB25を参照し、代表見出しが持つ排他関係、及びデータ情報に着目した代表見出しの選出を行う。
ステップS230に続くステップS231では、選出により抽出された代表見出しは一つか否か判定する。抽出できた代表見出しが一つのみであった場合、判定はYESとなってステップS232に移行し、抽出できた代表見出しは未検出の見出し文言のものと確定させ、続くステップS233でその確定結果を他の明細範囲に反映させた後、一連の処理を終了し、上記ステップS228に戻る。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
上述したような一連の処理を未検出の見出し文言数分、実行すると、ステップS234に移行する。そのステップS234では、未検出の見出し文言の数は抽出されたデータの数と等しいか否か判定する。未検出の見出し文言毎に、それに対応付けられるデータを抽
出できていなかった場合、判定はNOとなり、ここで排他関係、及びデータ情報による再抽出処理を終了する。これは、未検出とする見出し文言の判定等に誤りがある可能性が考えられるからである。そうでない場合には、判定はYESとなり、ステップS235に移行する。
ステップS235では、データ位置順位を生成し、その順位の順番に、未検出の見出し文言に代表見出しを割り当てる。続くステップS236では、割り当てた代表見出しを確定させる。その後に移行するステップS237では、その確定結果を他の明細範囲に反映させる。その反映を行った後、排他関係、及びデータ情報による再抽出処理を終了する。
上述したようなサブルーチン処理を含む不読見出し復元処理を実行した場合、不読の見出し文言に代表見出し、或いは見出し文言が割り当てられる可能性がある。このことから、図11に示すステップS174で実行されるセル補正処理では、不読見出し復元処理の実行結果、つまり認識されていない見出し文言に代表見出し、或いは見出し文言を割り当てて行う復元結果に応じて、図55に示すようにセルを生成することが行われる。図55中、認識できていない見出し文言は「見出し」と表記している。セルは、認識できていなくとも生成されている場合がある。その場合には、図55(a−1)〜(a−3)に示すようにデータのセルが新たに生成される。セルが生成されていない場合には、図55(−1)〜()に示すように、見出し文言用、データ用のセルが新たに生成される。
図11の説明に戻る。
ステップS174のセル補正処理を実行した後は、ステップS175に移行して、代表見出し、見出しGR及びDRの何れかが複数、あるか否か判定する。それらのうちの少なくとも一つが複数、存在していた場合、判定はYESとなり、ステップS176で重複精査処理を実行した後、ステップS177に移行する。そうでない場合には、判定はNOとなり、そのステップS177に移行する。そのステップS177では、DR・GR−見出し文言精査処理を実行し、その実行後はステップS178に移行する。
ここで、ステップS176及びS177でそれぞれ実行されるサブルーチン処理についてより詳細に説明する。
図14は、ステップS176として実行される重複精査処理のフローチャートである。始めに図14を参照して、その精査処理について具体的に説明する。
見出しDR及びGRは、関連する一つ以上のデータを入力する範囲の表構造(単位表構造)で一つのみ存在するものとして設定している。その表構造では、同一の代表見出しは複数、存在しないようにしている。このことから、重複精査は、見出しDR及びGRと代表見出しの対応関係を評価(抽出)するために行われる。見出しDR或いはGRが1つのみ存在する範囲の表構造は、複数票では明細範囲に相当することから以降「明細範囲」はその表構造を指す意味でも用いることとする。
図56は、重複精査処理の内容を説明する図である。図56(a)は帳票デザインの例、図56(b)はその帳票デザインの例に対応する、論理構造解析DB25の内容、図56(c)は論理構造解析DB25の連携により更新したキーワード抽出結果、図56(d)は見出しDR或いはGR毎に設定される領域(見出しDR・GR領域)、図56(e)は重複精査後のキーワード抽出結果、をそれぞれ示している。見出しDR・GR領域は、関連する一つ以上のデータを入力する表構造が存在する範囲に相当し、その範囲には見出しDR或いはGRが一つのみ存在する。重複精査処理では、その範囲である見出しDR・GR領域毎に、そこに存在する代表見出しを特定することにより、見出しDR或いはGRと代表見出しの対応関係を抽出する。
先ず、ステップS251では、同じ代表見出しが複数あるか否か判定する。同じ代表見出しは一つのみであった場合、判定はNOとなり、ここで重複精査処理を終了する。そうでない場合には、判定はYESとなってステップS252に移行する。
ステップS252では、複数、存在する代表見出しは全て見出し得点MTが閾値である見出し合格点MTthより大きいか否か判定する。代表見出しが何れもキーワードとは見なせないものであった場合、判定はNOとなり、ここで重複精査処理を終了する。そうでない場合には、判定はYESとなってステップS253に移行する。そのステップS253では、変数DMnに代表見出し数を代入する。その代入後はステップS254に移行する。
ステップS254〜S261は、同一の抽出された見出し文言(探索文字列)数分、繰り返し実行される処理ループを形成している。そのなかのステップS259〜S261は、その処理ループ内において、代表見出し数分、繰り返し実行される処理ループを更に形成している。ステップS254〜S261は、探索文字列として、代表見出しのみを対象として、1代表見出しの見出しDR、或いはGRに着目する形で実行される。それにより、1つの見出しDR・GR領域を設定し、その領域内に存在する可能性が考えられる代表見出しを評価するようになっている。
先ず、ステップS254では、キーワード抽出結果を用いて、論理構造解析DB25から代表見出しの見出しDR、或いはGRを抽出する検索を行う。続くステップS255では、見出しDR、或いはGRの文言を帳票から抽出し、次に移行するステップS256では、その抽出結果を用いた見出しDR・GR領域の設定を行う。その後はステップS257に移行して、見出しDR・GR領域内のコメントの有無を判定する。その領域内にコメントが存在する場合、その旨が判定されてステップS258に移行し、そのコメントが存在するコメント領域を乱しDR・GR領域から除外した後、ステップS259に移行する。そうでない場合には、その旨が判定され、そのステップS259に移行する。
ステップS259では、ステップS254での検索に用いた代表見出しに着目し、キーワード抽出により得られたなかの一つを選択して、選択した代表見出しが存在するセルのIDが見出しDR・GR領域内か否か判定する。そのセルが見出しDR・GR領域を構成していた場合、判定はYESとなり、ステップS260で見出し得点MTnを、それまでの値に所定値(図中「見出しDR・GRのOK点」と表記)を加算した値に更新した後、重複精査処理を終了する。そうでない場合には、判定はNOとなり、ステップS261で見出し得点MTnを、それまでの値から異なる所定値(図中「見出しDR・GRのNG点」と表記)を減算した値に更新した後、重複精査処理を終了する。そのように見出し得点MTnを更新する形で評価を行うことにより、各セルの代表見出し(見出し文言)に対応する見出しDR、或いはGRが対応付けられることとなる(図56(e))。
図15は、上記ステップS177として実行されるDR・GR−見出し文言精査処理のフローチャートである。次に図11を参照して、その精査処理について詳細に説明する。
見出しDR及びGRは、関連する一つ以上のデータを入力する範囲の表構造(明細範囲)で一つのみ存在する。しかし、その表構造に代表見出し、或いは代表見出しが割り当てられた見出し文言が必ず存在するとは限らない。このことから、DR・GR−見出し文言精査は、表に存在しない代表見出しを推定・補足するために行われる。その代表見出しを追加することにより、帳票の内容をより容易にオペレータが理解できるように支援することができる。見出し文言とデータの対応関係を自動的に生成することから、情報入力を行う必要性は低減される。
図57は、DR・GR−見出し文言精査処理の内容を説明する図である。図57(a)及び(b)はそれぞれ、図57(a−1)及び(b−1)に帳票デザイン(明細範囲)の例、図57(a−2)及び(b−2)に論理構造解析DB25の内容、図57(a−3)及び(b−3)帳票デザインからDB25を用いて推定・追加される代表見出し、を示している。その推定・追加される代表見出しは図中「仮想見出し」と表記している。その仮想見出しは、本来、帳票上のセルとは別次元の連結関係で設定する。仮想見出しを配置したセル(2点鎖線で示すセル)は、表構造上、上部に配置している。このことからDR・GR−見出し文言精査処理では、仮想見出しの特定(作成)の他に、その仮想見出しとデータとの連結関係の特定が行われる。
先ず、ステップS271では、見出しDR及びGRの有無を判定する。見出しDR及びGR共に存在しない場合、その旨が判定され、ここでこの精査処理を終了する。そうでない場合には、その旨が判定され、ステップS272に移行して、存在する見出しDR或いはGRに代表見出しが存在するか否か判定する。何れの見出しDR或いはGRにも代表見出しが存在する場合、その旨が判定され、この精査処理を終了する。そうでない場合には、つまり代表見出しが存在しない見出しDR、或いはGRが存在する場合には、その旨が判定され、ステップS273で変数Dmnに代表見出し数を代入した後、ステップS274に移行する。このとき、変数mに代入される代表見出し数は、例えば代表見出しが未検出の見出しDR或いはGRの数である。これは、代表見出しを推定(作成)すべき表構造(明細範囲)のみを対象にすれば良いからである。
ステップS274〜S285は、変数DMnの初期値分、繰り返し実行される処理ループを形成している。それにより、代表見出しを推定すべき表構造毎に、代表見出しの推定を行うようになっている。
先ず、ステップS273aでは変数mに0を代入し、次のステップS274では、見出しDR或いはGRが割り当てられた見出し文言で設定されているデータ情報中の付帯記号を表構造(明細範囲)内で探索する。続くステップS275では、探索により抽出できた付帯記号の有無を判定する。その付帯記号を抽出できた場合、その旨が判定されてステップS278に移行する。そうでない場合には、つまり付帯記号を抽出できなかった、或いはデータ情報中に付帯記号が定義されていなかった場合には、その旨が判定されてステップS276に移行する。
ステップS276では、データ位置順位から仮想見出しを割り当てるデータセルの範囲を抽出する。その抽出は、例えば図57(b)に示すように、データ位置順位に従って、データが存在するデータセルを抽出することで行う。続くステップS277では、抽出したデータセルと連結させる仮想セルを作成する。その後はステップS283に移行する。
ステップS278では、付帯記号はデータ情報で定義された位置に配置されたセルが存在するか否か判定する。例えば図57(a)に示すように、位置定義された最後に付帯記号「銀行」が付されたデータ「ABC 銀行」を持つデータセルが存在するような場合、対象のセルはあると判定され、ステップS279でそのデータセルと連結させる仮想セルを作成した後、ステップS283に移行する。そうでない場合には、その旨が判定されてステップS280に移行する。ステップS279では、データセルから仮想見出しが一意に特定される。
ステップS280では、付帯記号が付されたデータ(文字列)のなかで代表見出しを割り当て可能なものを探索し、代表見出しを割り当て可能なデータの有無を判定する。割り当て可能なデータが存在する場合、その旨が判定され、ステップS281でそのデータのセルに連結させる仮想セルを作成した後、ステップS283に移行する。そうでない場合
には、その旨が判定され、ステップS282で対応する見出し得点MTnを更新した後、一連の処理を終了する。対応する見出し得点MTnは、現在、対象としている表構造(明細範囲)の見出しDR或いはGRのものであり、その得点MTnの更新は、それまでの値から、候補となる代表見出しがないことを評価するための所定値を減算することで行う。それにより、見出しDR或いはGRは見出しとして評価を下げることとなる。ステップS281では、探索により抽出したデータセル、或いはデータ位置順位から仮想見出しが特定される。
ステップS283では、作成した仮想セルにそれぞれ仮想見出しを設定(作成)する。次のステップS284では、変数mの値を更新する。その更新は、それまでの値に、設定した仮想見出しの数から1を引いた値を加算することで行う。1を引いているのは、見出しDR或いはGRに対し、少なくとも1代表見出しを設定すると想定しているからである。その更新後に移行するステップS285では、設定した仮想見出しの見出し得点MTnとしてそれぞれ、仮想見出しの初期値として設定した値である仮想見出し点を設定する。一連の処理はその後に終了する。
図11の説明に戻る。
上記DR・GR−見出し文言精査処理が終了すると、ステップS178に移行し、帳票の種別は連記か否か判定する。帳票が連記であった場合、判定はYESとなってステップS190に移行する。そうでない場合には、判定はNOとなってステップS179に移行する。
DR・GR−見出し文言精査処理の実行により、帳票上からキーワードとして抽出された見出し文言の他に、存在すると見なすべき見出し文言(代表見出し)が抽出され、考慮すべき見出し文言が確定する。ステップS179〜S185は、確定した見出し文言の数分、繰り返し実行される処理ループを形成している。それにより、見出し文言毎に、その評価を行うようになっている。
先ず、ステップS179では、見出し文言のなかから一つを選択し、選択した見出し文言のセル(以降、他と区別するために「対象セル」と表記)内に他の文字列の有無を判定する。対象セル内は見出し文言のみであった場合、他の文字列はないと判定され、ステップS182に移行する。そうでない場合には、他の文字列はあると判定され、ステップS180に移行する。
ステップS180では、対象セル内の文字列を行毎に評価するための点数DTnmの初期値として、所定値(図中「同一セル内データ点」と表記)を設定する。続くステップS181では、対象セル内から別の項目名、或いはデータの候補となりうる文字列を抽出するためのセル内項目候補週出処理を実行する。その実行後はステップS182に移行する。点数DTnmのn及びmは、n番目の見出し文言が存在する対象セル内でm行目の文字列であることを表している。
ステップS182では、右側のセルにおける文字の有無を判定する。対象セルの右側に位置するセル内に文字が存在する場合、文字は有ると判定され、ステップS183に移行して、その文字が有ることを点数DTnmに反映させるための右項目候補抽出処理を実行する。その後はステップS184に移行する。そうでない場合には、その旨が判定され、そのステップS184に移行する。右側に位置するセルに文字が有るか否かを点数DTnmに反映させるのは、項目名の右側にデータを入力させるデザインが採用される可能性が高いからである。
ステップS184では、下側のセルにおける文字列の有無を判定する。対象セルの下側
に位置するセル内に文字列が存在する場合、文字列は有ると判定され、ステップS185に移行して、その文字列が有ることを点数DTnmに反映させるための下項目候補抽出処理を実行する。その後に一連の処理を終了する。そうでない場合には、その旨が判定され、ここで一連の処理を終了する。下側に位置するセルに文字列が有るか否かを点数DTnmに反映させるのは、項目名の下側にデータを入力させるデザインも採用される可能性が高いからである。
上述したようにして、抽出された見出し文言毎に評価が行われる。その評価が全て完了すると、ステップS186に移行する。
見出し文言やデータの抽出は、図1の文字認識部16による認識結果を対象に行う。文字の認識は全て正確に行えるとは限らない。その認識が誤っていれば、見出し文言の抽出が適切に行えていない可能性がある。このためステップS186では、認識の精度に着目して、見出し文言の解析を行うべきか否か判定するための項目解析要否判定処理を実行する。その実行後はステップS187に移行する。認識の精度を判定するための各種情報は文字認識部16から取得する。
ステップS187では、項目解析要否判定処理の実行結果が項目解析すべきとなっているか否か判定する。認識精度が比較的に低い見出し文言が存在した場合、項目解析は必要であるとされる。その結果、判定はYESとなり、ステップS189で必要な項目解析を行った後、この論理構造解析処理を終了する。そうでない場合には、判定はNOとなり、ここで論理構造解析処理を終了する。
上記ステップS178の判定がYESとなって移行するステップS190では、項目名と見なすべき見出し文言が並ぶ見出し行を抽出する。続くステップS191では、見出し行に連なるデータ列を抽出する。その後はステップS192に移行する。
ステップS192及びS193は、見出し行に項目名として抽出された見出し文言数分、繰り返し実行される処理ループを形成している。
その処理ループでは先ず、ステップS192で見出し行に存在する見出し文言(項目名)のなかから一つを選択し、その見出し文言に対応付けるデータ列のセルは明確にはしご状となっている、つまりデータ列のセルは例えば図45(a−1)或いは(a−2)に示すようにほぼ揃っていないか否か判定する。図45(a−1)或いは(a−2)に示すようにほぼ揃っているような場合、判定はNOとなり、ステップS193でセルを揃える形で統合を行った後、一連の処理を終了する。そうでない場合には、判定はYESとなり、ここで一連の処理を終了する。見出し文言分、繰り返した後はステップS194に移行する。
ステップS94では、見出し文言が検出された項目に相当するセル数分、そのセルに他に存在する見出し文言となりうる文字列を抽出するための連記項目候補抽出処理を実行した後、ステップS186に移行する。
次に、上記ステップS181、S183、S185、S186及びS194としてそれぞれ実行されるサブルーチン処理に詳細に説明する。
図16は、上記ステップS181として実行されるセル内項目候補抽出処理のフローチャートである。初めに図16を参照して、その抽出処理について詳細に説明する。この抽出処理は、対象セルのみに着目して実行される。
図58(a)〜(e)に示すように、同じセル内に複数の区別可能な文字列が存在する場合がある。このセル内項目候補週出処理は、セル内から別の項目名、或いはデータの候補となりうる文字列を抽出するために実行される処理である。その抽出は、候補となりう
る文字列を抽出し、抽出した文字列のなかから不要とすべきものを排除し、残った文字列を必要に応じて統合することで行われる。その統合は、図58(a)〜(e)において、図58(d)及び(e)に示すケースが相当する。その図58中、「見出し」は既に抽出済みの見出し文言を表しており、破線で囲んだ文字列は、抽出された文字列、或いは藤堂した文字列を示している。また「プレプリント」は、帳票上に存在する認識対象外の文字列であり、その判定は、例えば色、文字の形状、或いは内容から行うことができる。
先ず、ステップS301では、対象セル内に見出し文言が複数、存在するか否か判定する。見出し文言が複数、対象セル内に存在した場合、判定はYESとなってステップS302に移行し、複数の見出し文言のなかで項目名の候補となりうるものを抽出するためのセル内複数項目候補抽出処理を実行した後、このセル内項目候補抽出処理を終了する。そうでない場合には、判定はNOとなり、ステップS303で変数mに0を代入した後、ステップS304に移行する。
ステップS304〜S315は、見出し文言以外に対象セル内から抽出された文字列の数分、繰り返し実行される処理ループを形成している。それにより、着目する文字列を変更しながら、文字列毎にデータとしての評価を行い、その点数DTnmを必要に応じて更新する。ここでは着目する文字列を「対象文字列」と表記する。
先ず、ステップS304では、見出し文言で入力されるデータに付される可能性のある付帯記号のみで対象文字列が構成されているか否か判定する。その付帯記号のみが対象文字列として存在する場合、判定はYESとなり、ステップS305で見出し得点MTnを更新した後、一連の処理を終了する。その更新は、例えばそれまでの値に予め設定の見出し付帯点を加算することで行うことにより、見出し文言らしさをより高く評価する。そうでない場合には、判定はNOとなってステップS306に移行する。
ステップS306では、対象文字列はプレプリントか否か判定する。対象文字列がプレプリントであった場合、判定はYESとなり、ここで一連の処理を終了する。それにより、図58(a)に示す例では、プレプリントが排除されることとなる。一方、そうでない場合には、判定はNOとなり、ステップS307に移行する。
ステップS307では、対象文字列の属性が見出し文言で入力されるデータの属性と同じか否か判定する。それらの属性が同じであった場合、判定はYESとなり、ステップS309で得点DTnmを更新してからステップS310に移行する。そうでない場合には、判定はNOとなり、ステップS308で対象文字列は属性エラーと設定した後、一連の処理を終了する。得点DTnmの更新は、それまでの値に予め定めた値であるセル内データ点を加算することで行われる。それにより、見出し文言で入力されるデータとしてより高く評価する。
ステップS310では、見出し文言で入力されるデータに付される可能性のある付帯記号を対象文字列が含んでいるか否か判定する。対象文字列にその付帯記号が付されていた場合、判定はYESとなり、ステップS311で得点DTnmを更新した後、ステップS312に移行する。そうでない場合には、判定はNOとなり、次にそのステップS312に移行する。ステップ311での得点DTnmの更新は、それまでの値に予め定めた値である付帯点を加算することで行われる。それにより、データとしてより高く評価する。
ステップS312では、対象文字列は見出し文言で入力されるデータと少なくとも属性は同じであることから、そのデータの候補として設定する。続くステップS313では、対象文字列は前行(例えば上の行)と近いか否か判定する。図58(d)及び(e)に示す文字列「レート銀行」、「××町」及び「□□棟◇◇号」の何れかに対応するような位
置に対象文字列が存在した場合、判定はYESとなり、ステップS314で前行の文字列と対象文字列を1つの文字列に統合した後、一連の処理を終了する。そうでない場合には、判定はNOとなり、ステップS315で変数mの値をインクリメントした後、一連の処理を終了する。
このようにして、対象文字列はデータ候補としての評価が行われ、必要に応じて他の文字列と統合される。そのような処理を全ての文字列に対して行った後にステップS316に移行する。このとき変数mには、対象セル内でデータ候補として考慮すべき文字列の数が代入されている。
ステップS316では、データ候補となる文字列がないか否か判定する。ステップS312まで移行した文字列が存在しない場合、判定はYESとなってステップS322に移行する。そうでない場合には、判定はNOとなってステップS317に移行する。そのS317では、データ候補となる文字列が一つか否か判定する。その文字列が一つのみであった場合、判定はYESとなってステップS322に移行する。そうでない場合には、判定はNOとなってステップS318に移行する。
ステップS318では、それまでの値から予め設定した分割点を減算することにより、各文字列の得点DTnmを更新する。続くステップS319では、変数mが示す数分の文字列を統合する(図58(a)、(d)(e))。その次に移行するステップS320では、変数mの値をインクリメントする。そのインクリメント後は、ステップS321で上記同一セル内データ点を得点DTnmに設定してからステップS322に移行する。
ステップS322では、統合したm個の文字列のなかにデータの付帯記号を持つものがあったか否か判定する。その付帯記号を持つ文字列が存在した場合、判定はYESとなってステップS323に移行し、それまでの値に上記付帯点を加算することにより、各文字列の得点DTnmを更新する。その後はステップS324に移行する。そうでない場合には、判定はNOとなってそのステップS324に移行する。
ステップS324では、統合したm個の文字列のなかに属性エラーが設定されたものの有無を判定する。属性エラーが設定された文字列が存在する場合、属性エラーが設定された文字列は有ると判定され、ステップS325に移行し、それまでの値に予め定めた属性エラー点を減算することにより、各文字列の得点DTnmを更新する。その後にセル内項目候補抽出処理を終了する。そうでない場合には、その旨が判定され、ここでセル内項目候補抽出処理を終了する。
ここで、上記ステップS302として実行されるセル内複数項目候補抽出処理について、図17に示すフローチャートを参照して詳細に説明する。その抽出処理は、上述したように、複数の見出し文言のなかで項目名の候補となりうるものを抽出するために実行される。
図59(a)〜(d)に示すように「見出し1」及び「見出し2」の二つの見出し文言を含む複数の文字列が1セル内に存在する場合、見出し文言以外の文字列は図60(a)〜(d)に示すように抽出される。即ち例えば図59(a)に示す例では、図60(a)に示すように、2つの「プリプリント」、「○○○○○」「△△△△」「銀行」及び「支店」が抽出される。他の図59(b)〜(d)でも同様に、図60(b)〜(d)で破線により囲った文字列が抽出される。図61(a)〜(d)に示すように仮想セルは、抽出した文字列が見出し文言とは一緒にならないように生成される。その生成後は、図58を参照して説明したように、不必要とすべき文字列は除外して、残った文字列を必要に応じて統合する。それにより図59(a)〜(d)に示す例では、最終的に図62(a)〜(
d)に示す文字列がデータ候補として得られることとなる。セル内複数項目候補抽出処理は、そのような操作を実現させる。
先ず、ステップS351では、変数HKmに見出し文言が並ぶ方向を示す値を代入する。その代入後はステップS352に移行する。
ステップS352〜S356は、見出し文言以外に対象セル内から抽出された文字列の数分、繰り返し実行される処理ループを形成している。ステップS352〜S358のなかでステップS353〜S358は見出し文言数分、繰り返し実行される処理ループを形成している。それにより、着目する文字列を変更しながら、文字列毎に各見出し文言を考慮しデータとしての評価を行う。ここでは着目する文字列は「対象文字列」と表記する。
先ず、ステップS352では、対象文字列がプリプリントであれば除去する。次に移行するステップS353では、見出し文言で入力されるデータに付される可能性のある付帯記号のみで対象文字列が構成されているか否か判定する。その付帯記号のみが対象文字列として存在する場合、判定はYESとなり、ステップS354で付帯記号の存在を設定した後、一連の処理を終了する。そうでない場合には、判定はNOとなってステップS355に移行する。
ステップS355では、対象文字列の属性を見出し文言で入力されるデータの属性と日悪する。それらの属性が同じであった場合、その旨が判定されて、ステップS356で前の文字列と距離が近いか否かを判定する。それと距離が近い場合、判定はYesとなり、ステップS357で前行の続きの文字列になるため、これと統合する。そうでない場合は、判定はNOとなり、ステップS358で対象文字列を新たにデータ候補と設定した後、一連の処理を終了する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。それにより、見出し文言別に、対象文字列をデータ候補とすべきか否かの確認を行い、その確認が終了することでステップS361に移行する。
ステップS361では、文字列のなかのデータ候補の有無を判定する。何れかの文字列がデータ候補とされていた場合、データ候補はあると判定され、ステップS362に移行する。そうでない場合には、その旨が判定され、ステップS368に移行する。
ステップS362では、データ候補とそれに対応付けている見出し文言との並び関係を示す情報を獲得する。次のステップS363では、見出し文言とデータ候補の並ぶ方向を判定する。図59(d)に示すようにそれらが全て同じ方向に並んでいた場合、並びは同じと判定され、ステップS364で見出し文言用の仮想セルを図61(d)に示すように生成した後、ステップS365に移行する。そうでない場合には、つまり図59(a)〜(c)の何れかのように見出し文言とデータ候補が並んでいた場合には、並ぶ方向は垂直と判定され、ステップS365に移行する。
ステップS365では、図61(a)〜()の何れかに示すように仮想セルを生成する。続くステップS366では、対象セル内の文字列を行毎に評価するための点数DTnmの初期値として、上記同一セル内データ点を設定する。次に移行するステップS367では、見出し文言数分、図16のセル内項目候補抽出処理を実行する。その実行後、このセル内複数項目候補抽出処理を終了する。そのセル内項目候補抽出処理で対象とするセルは、見出し文言を含んでいないセルである。
図18は、図11に示す第1の論理構造解析処理内でステップS183として実行される右項目候補抽出処理のフローチャートである。次に図18を参照して、その抽出処理について詳細に説明する。
先ず、ステップS401では、対象セル内に見出し文言は一つのみか否か判定する。二つ以上の見出し文言が存在している場合、判定はNOとなってステップS408に移行する。そうでない場合には、判定はYESとなってステップS402に移行する。
ステップS402では、見出し文言が含まれる対象セルの右側に複数のセルが存在することの有無を判定する。その複数のセルが存在する場合には、判定は有りとなってステップS403に移行する。そうでない場合には、判定は無しとなり、ここで右項目候補抽出処理を終了する。
右側にある複数のセルは全て同じ形状であるとは限らない。また、同じライン上に正確に揃っているとも限らない。このことから、図63〜図65に示すように本実施形態では、複数のセルの形状や並びに応じて、比較的に平均から異なっているセル(はしごセル)を抽出して補正するようにしている。ステップS403では、その補正を実現させる、はしごセル抽出処理を実行する。その実行後は、ステップS404で対象セル内の文字列を行毎に評価するための点数DTnmの初期値として、予め定めた右複数セル内データ点を設定し、ステップS405で図16のセル内項目候補抽出処理を実行する。その実行後、この右項目候補抽出処理を終了する。
図58のように、見出しを含むセル内にデ-タ候補となる文字列が存在する可能性があるため、上記ステップS401の判定がYESとなった場合、ステップS406及びS407が実行される。そのステップS406では、対象セル内の文字列を行毎に評価するための点数DTnmの初期値として、予め定めた右セル内データ点を設定し、ステップS407で図16のセル内項目候補抽出処理を実行する。その実行後、この右項目候補抽出処理を終了する。このように点数DTnmの初期値を変えてセル内項目候補抽出処理を実行するのは、対象セルの右側にセルが複数、並んでいるか否かによって、対象セル内にデータ候補となる文字列が存在する確率が異なるからである。
上記ステップS401の判定がNOとなって移行するステップS408では、対象セル内の文字列を行毎に評価するための点数DTnmの初期値として、予め定めた右セル内複数データ点を設定する。続くステップS409では、図17のセル内複数項目候補抽出処理を実行する。その実行後、この右項目候補抽出処理を終了する。
図19は、図11に示す第1の論理構造解析処理内でステップS185として実行される下項目候補抽出処理のフローチャートである。
この抽出処理では、点数DTnmに設定する初期値等が異なる以外、上述の右項目候補抽出処理と同様である。このため、詳細な説明は省略する。ステップS453に移行するのは、見出し文言とデータの位置関係が図34(4)に示すようなものとなっている場合である。
ここで図18及び図19のステップS403及びS453として実行される、はしごセル抽出処理について、図20に示すフローチャートを参照して詳細に説明する。
先ず、ステップS501では、見出し文言がセル内にあるか否か判定する。見出し文言のセルが生成されていない場合、判定はNOとなってステップS507に移行する。そうでない場合には、判定はYESとなってステップS502に移行する。
ステップS502では、変数Hmdに見出し文言のセルの高さを代入する(図64A(a))。続くステップS503では、各セルの高さから平均の高さを算出し、その次のステップS504では各セルの幅から平均の幅を算出する。平均の高さ、及び幅の算出は、例えば各セルの高さ、及び幅を用いて平均を求め、その平均から大きく異なっているセルを除いたセルのみを用いて再度、平均を求めることで行う。そのようにして高さ、及び幅の平均を求めた後、ステップS505に移行する。
ステップS505では、算出した平均の高さ、及び幅を用いて、補正すべきセルの大きさを補正し、補正したセルの範囲に、マージン分である文字存在範囲を付加する。次のステップS506では、補正したセルの範囲に文字存在範囲を付加して得られる領域をはしごセル範囲として算出する。その後、はしごセル抽出処理を終了する。
上記ステップS501の判定がNOとなって移行するステップS507では、見出し文言の右側のセルの有無を判定する。その右側にセルが存在しない場合、判定は無しとなってステップS508に移行する。そうでない場合には、判定は有りとなり、ステップS503に移行して、その右側のセル(そのセルの更に右側に位置する1つ以上のセルがあればそれらのセルを含む)から(平均の)高さを算出する。その後に移行するステップS504でも同様にして(平均の)セルの幅を算出する。その後にステップS505に移行することにより、図64A(c)或いは図64B(c)に示すような操作が実現される。
ステップS508では、見出し文言の文字の高さHmdmを基準にして定めた、データとして入力される文字の大きさの想定範囲を示す係数をその高さHmdmに乗算し、その乗算結果を変数Hmdに代入する。次のステップS509では、付帯情報、つまり付帯記号、及びその位置、並びに右側に位置する見出し文言のセルから、データと見なす範囲の終端の検知を行う。また、セル高さが上下とも両方はみだしている場合(図64B(a)の7)両方はみだし)、データと見なす範囲の終端とする検知を行う。その検知を行った後は、ステップS510で仮想セルを生成した後、ステップS505に移行する。それにより、図65に示すような操作を実現させる。
図11に示す第1の論理構造解析処理内で実行されるサブルーチン処理の説明に戻る。
図21は、図11に示す第1の論理構造解析処理内でステップS194として実行される連記項目候補抽出処理のフローチャートである。次に図21を参照して、その抽出処理について詳細に説明する。
先ず、ステップS551では、対象セル内に見出し文言は一つのみか否か判定する。見出し文言が一つのみであった場合、判定はYESとなってステップS558に移行する。そうでない場合には、判定はNOとなってステップS552に移行する。
ステップS552では、見出し文言が横に並んでいるか否か判定する。見出し文言が並んでいる方向が横であった場合、判定はYESとなってステップS556に移行する。そうでない場合には、判定はNOとなってステップS553に移行する。
ステップS55では、対象とする見出し文言のセルが存在する行を特定し、次のステップS55では、その行のデータと見なす文字列を抽出する。その後はステップS555に移行して、図17に示すセル内複数項目候補抽出処理を実行した後、この連記項目候補抽出処理を終了する。ステップS556に移行した場合には、そのステップS556で対象とする見出し文言のセルが存在する列を特定し、次のステップS557でその列のデータと見なす文字列を抽出してから、このステップS555に移行する。それにより、図66〜図68(f)に示すような操作が実現される。
上記ステップS551の判定がYESとなって移行するステップS558では、図16に示すセル内項目候補抽出処理を実行する。その実行により、図66〜図68(a)示すような操作が実現される。
ステップS558に続くステップS559では、見出し項目が並ぶ方向と同じ方向に並
んでいる見出し項目(セル)数分のデータセルに相当する全明細のなかに、その並んでいる方向と直交する方向に複数のデータが存在するものがあるか否か判定する。複数行、或いは複数列にわたって文字列が存在するデータセルがある場合、判定はYESとなり、ステップS560でデータが1行、或いは1列となるように明細を分割した後、この連記項目候補抽出処理を終了する。そうでない場合には、判定はNOとなり、ここでこの抽出処理を終了する。図69は、明細分割を説明する図であり、図69に示すような操作はステップS560の実行によって実現される。
図22は、図11に示す第1の論理構造解析処理内でステップS186として実行される項目解析要否判定処理のフローチャートである。最後に図22を参照して、その判定処理について詳細に説明する。この判定処理は、文字認識部16から、文字の認識の正確さを示す文字確信度、文字の手書き活字判別率TKを全文字分、取得して実行される。図中「MJth」「TKth」はそれぞれ、文字認識が正確と見なす文字確信度の閾値、手書きか否か判別するための閾値を表している。
この判定処理では、各データ候補には対応付けられる見出し文言が存在することから、ステップS601〜S605はデータ候補数分、繰り返し実行される。ステップS601〜S605のなかでステップS601は、対象とする見出し文言の文字数分、繰り返し実行される。それにより、各見出し文言では、その見出し文言を構成する文字のなかで文字確信度が閾値MJthより低いものが存在する、枠に接触している文字がある、カタカナの「ル」を「ノ」と「レ」に分離するといったように、構成要素を分離させても認識可能な文字がある、及び手書き活字判別率TKが閾値TKthより小さい文字がある、のうちの何れかの条件を満たしている場合、項目解析は要とされる。また、図20に示すはしごセル抽出処理を実行した場合にも要とされる。このことから、必要とする項目解析を項目解析部21に実行させて、より精度の高い見出し文言の認識結果が論理構造解析(項目確定)部22に渡されることとなる。
図23は、論理構造解析(項目確定)部22が実行する第2の論理構造解析処理のフローチャートである。次に図23を参照して、その解析処理について詳細に説明する。図中「DTmin」「HKT」「εm」「εd」及び「Jn」はそれぞれ、データらしさの最低点、つまりデータと見なす得点DTnmの閾値、見出し文言の最終的な評価点、評価点を算出するために見出し得点MTnに乗算される係数、評価点を算出するために得点DTnmに乗算される係数、上位データ候補数、をそれぞれ表している。
ステップS651〜S664は、1見出し文言毎に、そのデータ候補数分、繰り返し実行される処理ループを形成している。それにより、評価点は全てのデータ候補を考慮して算出するようになっている。
先ず、ステップS651では、対象とする見出し文言に対応付けたセルにデータ候補が未記入となっているか否か判定する。そのデータ候補が未記入であった場合、判定はYESとなり、ステップS652で最終評価点HKTを算出し、更にステップS653でデータ候補が未記入であることを登録した後、一連の処理を終了する。そうでない場合には、判定はNOとなってステップS654に移行する。ステップS652での最終評価点HKTの算出は、見出し得点MTnに係数εmを乗算し、その乗算結果に予め定めた未記入データ点を加算(=MTn*εm+未記入データ点)することで行われる。
ステップS654では、対象見出し文言に対する項目解析の実施の有無を判定する。図11のステップS189で実行した項目解析処理で対象見出し文言の項目解析を行っていた場合、項目解析は行ったと判定され、ステップS655に移行する。そうでない場合には、その旨が判定され、ステップS664に移行する。このことから、ステップS655
〜S663では、項目解析の結果を反映させるための処理が実行される。
ステップS655では、得点DTnmは閾値DTminより小さいか否か判定する。その大小関係が成立していた場合、判定はYESとなり、ステップS656に移行して、データが存在しないことを表すための消し線とするデータ候補として登録した後、一連の処理を終了する。そうでない場合には、判定はNOとなってステップS657に移行し、対象とするデータ候補に項目解析によって付帯記号が復元したか否か判定する。データ候補に付された付帯記号の存在が項目解析によって判明した場合、判定はYESとなってステップS658に移行する。そうでない場合には、判定はNOとなってステップS661に移行する。
ステップS658では、復元された付帯記号は正しいか否か判定する。対象見出し文言から特定される付帯記号とは異なる、付帯記号の位置が異なる、といった理由で付帯記号が正しくない場合、判定はNOとなり、ステップS660で得点DTnmを更新してからステップS661に移行する。その何れでもないような場合には、判定はYESとなり、ステップS659で得点DTnmを更新してからステップS661に移行する。ステップS660及びS659での得点DTnmの更新はそれぞれ、それまでの値に予め定めた付帯点を減算、及び加算することで行われる。それにより、付帯記号が正しければ得点DTnmをより高くし、正しくなければ得点DRnmを下げるようにしている。
ステップS661では、記入されたデータ候補の属性は対象見出し文言から特定される属性と合っているか否か判定する。それらの属性が一致しているような場合、判定はOKとなり、ステップS663で得点DTnmを更新した後、ステップS664に移行する。そうでない場合には、判定はNGとなり、ステップS662で得点DTnmを更新してからそのステップS664に移行する。ステップS663及びS662での得点DTnmの更新はそれぞれ、それまでの値に予め定めた属性OK点を加算、及び減算することで行われる。それにより、属性に問題がなければ得点DTnmをより高くし、問題があれば得点DRnmを下げるようにしている。
ステップS664では、評価点HKTの算出を行う。その算出は、見出し得点MTnに係数εmを乗算した結果に、得点DTnmと係数εdの乗算結果を加算する(=MTn*εm+DTnm*εd)ことで行われる。その算出を行った後に一連の処理が終了する。
上述したような処理を見出し文言毎にデータ候補数分、実行した後に移行するステップS665では、帳票の種別が連記か否か判定する。その種別が連記であった場合、判定はYESとなってステップS674に移行する。そうでない場合には、判定はNOとなってステップS666に移行する。
ステップS665に移行した時点では、各見出し文言の評価点HKTは全て算出済みとなっている。それによりステップS666では、代表見出し毎に、見出し文言を評価点HKT順にソートする。次のステップS667では、評価点HKT順のソートに合わせて、上位Jn位までの見出し文言に対応付けられたデータ候補を抽出する。その後はステップS668に移行して、抽出したデータ候補のなかに異なる代表見出しに対応付けられるデータ候補が重複しているか否か判定する。そのデータ候補の重複が発生していた場合、判定はYESとなってステップS671に移行し、そうでない場合には、判定はNOとなり、ここでこの解析処理を終了する。
上述したように、各明細範囲(関連するデータ入力用の表構造)では代表見出しは重複しないように論理構造解析DB25を作成している。このことからデータ候補の重複は、ステップ666で行った見出し文言のソートに不適切な箇所が存在することを意味する。
ステップS671では、重複しているデータ候補にそれぞれ対応付けられた見出し文言は同位か否か判定する。それら見出し文言の評価点HKTが同じ値であった場合、判定はYESとなり、ステップS672で見出し得点MTnの大きいほうを上位とし、続くステップS673で上位のほうには評価点HKTの加点、下位のほうには評価点HKTの減点を行った後、ステップS669に移行する。そうでない場合には、判定はNOとなってそのステップS672に移行し、重複するデータ候補にそれぞれ対応付けられた見出し文言の評価点HKTを更新する。
上述したような更新により、重複するデータ候補が共に選択される可能性が低減する。それにより、不具合が発生するのは抑えられることとなる。
ステップS669では、評価点HKTの操作を行ったことから、再度、評価点HKT順に見出し文言のソートを行う。その次に移行するステップS670では、評価点HKT順の再ソートに合わせて、上位Jn位までの見出し文言に対応付けられたデータ候補を再抽出する。その後に、この解析処理を終了する。
上記ステップS665の判定がYESとなって移行するステップS674では、1明細の全てのセルで属性がNGだったか否か判定する。1明細の全てのセルにデータ候補となりうる文字列が存在しない場合、例えば記入したデータが無効であることを示すためにデータ上に線を引いた、汚れ等のためにデータを記入しなかった、或いは落書きのような記入がある、といったような場合、その全てのセルで上記ステップS655の判定がYESとなる。つまり図70に示すように、1明細の全てのセルが消し線の候補となる。このため、そのような場合、判定はYESとなり、ステップS675で1明細の全てを消し線で削除した後、この解析処理を終了する。そうでない場合には、判定はNOとなって、ここでこの解析処理を終了する。
図71は、上記第2の論理構造解析処理の実行によって得られる認識結果を説明する図である。図7は単票を例にとって認識結果を説明するものである。図7(a)は入力された帳票画像であり、文字「塊」及び「額」が認識不可能となっていることを示している。図7(b)は見出し得点MTnから抽出される見出し文言が「金?」「金?」及び「金)」であることを示している。図7(c)は文字「塊」が認識できないことから「金?」と扱われる見出し文言で対応付け可能なデータ候補を示している。図7(d)は、対応付け可能なデータ候補「○○○円」により見出し文言「金?」が代表見出し「金額」と認識され、そのデータが「○○○円」と確定されたことを示している。
図72は実際の帳票の認識結果を示す図である。図72(a)〜()はそれぞれ、異なる帳票での認識結果を示している。その図72(a)〜()から、対応関係を含め、見出し文言、そのデータを正確に認識できることが分かる。
図73は、図1に示す本実施形態による帳票認識装置を実現可能なコンピュータの構成図である。
図73に示すコンピュータは、CPU61、メモリ62、入力装置63、出力装置64、外部記憶装置65、媒体駆動装置66、及びネットワーク接続装置67を有し、これらがバス68によって互いに接続された構成となっている。同図に示す構成は一例であり、これに限定されるものではない。
CPU61は、当該コンピュータ全体の制御を行う。
メモリ62は、プログラム実行、データ更新等の際に、外部記憶装置65(あるいは可搬型の記録媒体MD)に記憶されているプログラムあるいはデータを一時的に格納する例えばRAMである。CPU61は、プログラムをメモリ62に読み出して実行することに
より、全体の制御を行う。
入力装置63は、例えば、キーボード、マウス等の入力装置、或いはスキャナ等の画像読取装置と接続されたインターフェースである。入力装置に対するユーザの操作を検出し、その検出結果をCPU61に通知する。
出力装置64は、例えば表示装置と接続された表示制御装置、或いはそれらを有するものである。CPU61の制御によって送られてくるデータを表示装置上に出力させる。
ネットワーク接続装置67は、例えばイントラネットやインターネット等のネットワークを介して、外部装置と通信を行うためのものである。その外部装置は、画像読取装置であっても良く、その画像読取装置と接続されたものであっても良い。外部記憶装置65は、例えばハードディスク装置である。主に各種データやプログラムの保存に用いられる。
記憶媒体駆動装置66は、光ディスクや光磁気ディスク等の可搬型の記録媒体MDにアクセスするものである。
本実施形態による帳票認識装置1は、それに必要な機能を搭載したプログラム(以降「帳票認識ソフト」と呼ぶ)をCPU61が実行することで実現される。その認識ソフトは、記録媒体MDに記録して配布しても良く、或いはネットワーク接続装置67により取得できるようにしても良い。ここでは、外部記憶装置65に認識ソフト、及び論理構造解析DB25が共に格納されていると想定する。
上述したような想定では、入力部11は例えばCPU61、メモリ62、入力装置63、外部記憶装置65、ネットワーク接続装置67、及びバス68によって実現される。出力部23は、例えばCPU61、メモリ62、出力装置64、外部記憶装置65、ネットワーク接続装置67、及びバス68によって実現される。データベース蓄積部24は、例えばCPU61、メモリ62、外部記憶装置65、及びバス68によって実現される。メモリ26は外部記憶装置65に相当する。他は、例えばCPU61、メモリ62、外部記憶装置65、及びバス68によって実現される。
図74は、本実施形態によるデータベース作成装置の機能構成図である。
上記帳票認識装置1は、論理構造解析DB25を参照して、帳票の認識を行う。このデータベース(DB)作成支援装置700は、その解析DB25の作成を支援するためのものである。
論理構造解析DB25では、見出し文言を階層構造で管理すると共に、関連するデータの入力に用いることが可能な表構造(単位表構造)で管理する。それにより、帳票上、1つの表として扱われる範囲(明細範囲(見出しDR・GR領域))の認識は、表構造で管理する情報を用いて行えるようになっている。
階層構造での管理では、見出し文言として考えられる文字列を定義し、その上位に同じ表構造では重複しない排他関係を持つ代表見出しを定義し、その上位に見出しDR或いはGRを定義する。同じ代表見出しが割り当てられた見出し文言では、その見出し文言で入力されるデータに係わるデータ情報を共有化させる。そのような階層構造を採用したことにより、表構造を登録しなくとも、表構造内の見出し文言と入力されたデータの対応関係を高精度に認識することができる。また、見出し文言が認識できなくとも、その見出し文言の代わりとなる代表見出し(論理的な整合性が維持される見出し文言)を用いることができる。それにより、見出し文言が正しく認識できなくとも、論理的に代表見出しを用いた適切な解析が行えるようになっている。認識できない部分が存在していたとしても、その部分を正確に推定することもできる。従って、文字認識の精度が低いことによる悪影響は抑制されることになって、論理的に適切な解析はより高精度に行えるようになる。見出
し文言が少ないような表構造では、表記されていない見出し文言(代表見出し等を追加し、帳票の内容をより容易に理解できるようにすることもできる。これらのことから、表構造の登録はしなくとも良いということの他に、帳票認識を適切に行える帳票の範囲が広い(汚れやシワ等による悪影響を低減できる)、帳票上に無い情報まで提供可能である、といった効果が得られることとなる。これらのことは、上述の帳票認識装置1の説明により明らかである。
このようなことを可能とさせる解析DB25の作成を支援する作成支援装置700は、図74に示すように、見出し文言やデータ情報等の入力に用いられる見出し・データ情報入力部701と、入力された見出し文言、及びデータ情報から代表見出しを作成する代表見出し作成部702と、階層間の見出し関係の入力に用いられる見出し関係入力部703と、入力した見出し関係から階層毎に見出し文言を生成する見出し関係生成部704と、論理構造解析DB25に対し、入力した情報や生成した情報を出力して登録するDB出力部705と、を備えている。
それら各部701〜705は、図73に示す構成で各部701〜705を実現させるプログラム及び論理構造解析DB25が外部記憶装置65に格納されているという想定では、見出し・データ情報入力部701、見出し関係入力部704及びDB出力部705は共に、例えばCPU61、メモリ62、入力装置63、外部記憶装置65、ネットワーク接続装置67、及びバス68によって実現される。それら以外は、例えばCPU61、メモリ62、外部記憶装置65、及びバス68によって実現される。
図75は、代表見出しを作成する処理の流れを示すフローチャートである。次に図75を参照して、代表見出しを作成するまでのオペレータの操作、及びその操作に応じて実行される処理について詳細に説明する。その図75では、説明上、便宜的に、1表構造(バリエーションを含む)分の情報を解析DB25に登録することを想定して処理の流れを示している。これは、後述する図76でも同様である。
先ず、ステップS701では、オペレータが入力を指示した見出し文言を読み込む。次のステップS702では、送り仮名を除去した見出し文言を自動的に追加する。その次のステップS703では、見出し文言を文字単位でソートする。そのソート後に移行するステップS704では、入力された見出し文言のなかから代表見出しを仮設定する。その仮設定した代表見出しを例えば表示装置上に表示させた後、ステップS705に移行する。
オペレータは仮設定の代表見出しを確認し、必要に応じて修正を行う。それによりステップS705では、オペレータの指示に従い、代表見出しの仮設定を必要に応じて変更する。その変更の終了をオペレータが指示することでステップS706に移行し、代表見出しを確定させる。その後のステップS707〜S710では、見出し文言数分、見出し位置、及びデータ情報の入力、入力した情報の設定等を行う。そのような情報の入力・設定が終了することでステップS711に移行する。その移行時には、論理構造解析DB25に格納される情報として、図77(a)に示すようなものが蓄積される。
ステップS711では、代表見出し間での文言が重複しているか否か判定する。重複している文言が存在した場合、判定はYESとなり、ステップS712に移行して、重複している文言の確認、及び必要に応じた修正をオペレータに要求する。それにより、その要求に応じた対応をオペレータが行うことでステップS713に移行する。そうでない場合には、判定はNOとなり、そのステップS713に移行する。図77は、重複している文言の例を示している。
ステップS713では、表形式の定義を行うべきか否か判定する。その定義を行うべき
であった場合、判定はYESとなり、ステップS714で表形式の入力をオペレータに促し、その入力を行う。その入力後はステップS715で表形式を定義してからステップS716に移行する。そうでない場合には、判定はNOとなり、そのステップS716に移行する。
図78は、表形式の定義、及びその定義に対応する帳票デザイン(表構造)を説明する図である。図78では、例えば図78(a−1)は図78(b−1)に対応しており、その対応関係は括弧内の数値で表している。図78に示すように、定義する表形式は1つ以上の帳票デザインに対応可能となっている。
ステップS716では、データ整形を行うべきか否か判定する。そのデータ整形を行うべきであった場合、判定はYESとなり、ステップS717でデータ整形情報の入力をオペレータに促し、その情報の入力を行う。その入力後は、ステップS718でデータ整形を定義し、ステップS719でそれまで蓄積した情報を解析DB25に書き込んだ後、一連の処理を終了する。
図79は、データ整形の定義、及びその定義によって行われるデータ整形を説明する図である。図79(a)は定義内容、図79(b−1)〜(b−4)はそれぞれ、帳票デザインを示している。
図76は、見出し関係を生成する処理の流れを示すフローチャートである。次に図76を参照して、見出し関係を生成するまでのオペレータの操作、及びその操作に応じて実行される処理について詳細に説明する。その図76では、図75の処理を実行することで論理構造解析DB25に格納された情報が存在することを前提とする。
先ず、ステップS751では、図80にユーザ入力データとして示すように、オペレータが入力する代表見出しペアを読み込む。続くステップS752では、重複する代表見出しペアがあるか否か判定する。代表見出しペアに重複しているものがあった場合、判定はYESとなり、ステップS753で一つのみを残して他は削除した後、ステップS754に移行する。そうでない場合には、判定はNOとなり、そのステップS754に移行する。
ステップS754では、論理構造解析DB25から必要な情報を読み込む。その後に移行するステップS755では、読み込んだ情報で定義されている見出し文言のなかに代表見出しペアで示されているものがあるか否か判定する。見出し文言のなかに、代表見出しペアで代表見出しとされたものがある場合、判定はYESとなり、ステップS756でその見出し文言を代表見出しに修正した後、ステップS757に移行する。そうでない場合には、判定はNOとなってステップS757に移行する。
代表見出しペアでは、図80にユーザ入力データとして示すように、2つの代表見出しの位置的な関係を「上側/左側」、及び「下側/右側」の位置で指定するようになっている。つまり2つの代表見出しは互いに異なる位置を指定する形で入力される。それらの位置は上下関係を表しており、「上側/左側」は「下側/右側」より上位となっている。それによりステップS757では、「上側/左側」の代表見出しを優先する形、つまり「上側/左側」の代表見出しは同じに維持したままで「下側/右側」の代表見出しの全種類をソートする。それにより図80のユーザ入力データはソート後の状態を示している。
ステップS757に続くステップS758では、代表見出し間の関連付けを生成する。その関連付けは、図80に示すように、代表見出し間で最上位とすべき代表見出し、最上位の次の上位とすべき代表見出し等を特定する作業である。それにより、番号が1〜6の代表見出しペアでは、代表見出し「振込先」が最上位となり、次に上位の代表見出しは「銀行名」「支店名」「種目」及び「口座番号」の4つとなる。データ位置順位は、ソート順で設定されている。そのように関連付けを生成した後はステップS759に移行する。
ステップS759では、関連付けのなかに矛盾があるか否か判定する。図80のユーザ入力データで番号が30、31の代表見出しペアによって生成される関連付けは、2つの代表見出し間に2つの上下関係が存在していることを表すものとなる。このため、そのような関連付けは矛盾が存在するとして、判定はYESとなり、ステップS760で矛盾した関連付けの提示、及びその修正をオペレータに促すことになる。その修正、例えば代表見出しペアの再入力をオペレータが行うことにより、オペレータの修正結果を反映させた関連付けを再生成した後、ステップS760からステップS761に移行する。
ステップS761では、見出しGR関係を生成する。見出しGRは代表見出しの上位に位置させる代表見出しであり、見出しGR関係は、より上位の見出しGRとその次に上位の代表見出しの関係を指している。図80に示す例では、代表見出し「振込先」はそれよりも上位に位置づけられる代表見出し「受取人」が存在することから、見出しGRとされる。見出しDRは見出しGRより更に上位に位置付けられる代表見出しであることから、見出しDRは「受取人」とされる。その見出しDRとその次に上位の代表見出しの関係が見出しDR関係である。
ステップS761に続くステップS762では、生成された異なる見出し関係で同じ見出しGRが存在するか否か判定する。異なる見出し関係で見出しGRが重複していた場合、判定はYESとなってステップS763に移行し、重複しないように見出しGR、その見出しGRとした代表見出しを変更(RENAME)する。その後、ステップS764に移行する。そうでない場合には、判定はNOとなってそのステップS764に移行する。
ステップS764では、上記見出しDR関係を生成する。その生成後はステップS765に移行して、帳票デザインを作成する。次のステップS766では、作成した帳票デザインを表示させることにより、生成した見出しDR関係をオペレータに確認させる。その次のステップS767では、オペレータが確認した見出しDR関係を登録することにより、解析DB25を更新する。その後、一連の処理を終了する。
図81は、見出しGR関係の定義によって生成される帳票デザインを説明する図である。図81(a−1)〜(a−4)はそれぞれ、図81(a−1)は生成された見出しGR関係、図81(a−2)は生成された見出しGR関係に合う帳票デザインのバリエーション、図81(a−3)は実際に読み取られた帳票デザイン、図81(a−4)は図81(a−3)の帳票デザインで各代表見出しに対応付けられるデータ、をそれぞれ示している。図中の「1」〜「4」はデータ位置順位を表している。また図81(b−1)は生成された見出しGR関係、図81(b−2)は生成された見出しGR関係に合う帳票デザインのバリエーション、をそれぞれ示している。
図82は、見出しGR関係により帳票デザインから生成される見出し関係を説明する図であり、図82(a)〜(g)にそれぞれ異なる例を示している。
上述したように、見出し文言が存在しない、或いは認識できないことで表構造から未検出の見出し文言があった場合、データ候補にはデータ位置順位に従って代表見出しが割り当てられる。帳票デザインを作成しオペレータに確認させるのはこのためである。つまり帳票デザインを通して不適切な部分を確認させるためである。生成した見出し関係は、状況により、未検出の見出し文言に割り当てる代表見出しの決定に用いられる。図82に示す例は何れも、見出し文言の認識結果に応じて生成される見出し関係であり、その見出し関係は図1の論理構造解析(項目候補抽出)部20による修正の対象となる。
図83は、見出しDR関係の定義によって生成される帳票デザインを説明する図である。図84は、見出しDR関係により帳票デザインから生成される見出し関係を説明する図である。図83及び図84から明らかなように、見出しDR関係でも見出しGR関係と同様のことが実施可能となっている。
なお、本実施形態では、帳票を対象としているが、対応付けられる情報が表構造で配置された形となっている媒体であれば帳票以外のものであっても良い。また、細部については様々な変形が可能である。
本実施形態による帳票認識装置の機能構成を示す図である。 表構造解析処理のフローチャートである。 キーワード抽出処理のフローチャートである。 見出し得点算出処理のフローチャートである。 コメント判定処理のフローチャートである。 帳票種別判定処理のフローチャートである。 表構造判定処理のフローチャートである。 見出し文言判定処理のフローチャートである。 セル補正処理のフローチャートである。 無罫線表の表構造解析処理のフローチャートである。 第1の論理構造解析処理のフローチャートである。 不読見出し復元処理のフローチャートである。 排他関係、及びデータ情報による再抽出処理のフローチャートである。 重複精査処理のフローチャートである。 DR・GR−見出し文言精査処理のフローチャートである。 セル内項目候補抽出処理のフローチャートである。 セル内複数項目候補抽出処理のフローチャートである。 右項目候補抽出処理のフローチャートである。 下項目候補抽出処理のフローチャートである。 はしごセル抽出処理のフローチャートである。 連記項目候補抽出処理のフローチャートである。 項目解析要否判定処理のフローチャートである。 第2の論理構造解析処理のフローチャートである。 帳票例を示す図である(その1)。 帳票例を示す図である(その2)。 帳票例を示す図である(その3)。 帳票例を示す図である(その4)。 帳票例を示す図である(その5)。 帳票例を示す図である(その6)。 帳票例を示す図である(その7)。 同じ位置を持つ見出し文言のバリエーションを示す図である。 同じ表記の見出し文言のデザインによって変化する意味を説明する図である。 口座番号を入力させる表構造のバリエーションを示す図である。 見出し文言とそれに対応するデータの位置関係例を説明する図である。 見出しGR及び見出しDRに着目した表構造のバリエーションを示す図である(その1)。 見出しGR及び見出しDRに着目した表構造のバリエーションを示す図である(その1)。 表構造解析処理を実行することで行われる解析内容を説明する図である(その1)。 表構造によって生成されるセルを示す図である。 見出し文言のソート方法を示す図である。 抽出された見出し文言で算出される見出し得点例を示す図である。 コメント文の例を説明する図である。 キーワードDB31に登録される内容例を示す図である。 抽出された見出し文言で算出される見出し得点例を示す図である。 図43(c)に示す内容が論理構造解析DB25に格納されている場合に算出される見出し得点MTnを説明する図である。 帳票の種別によって生成されるセルの相違を説明する図である。 見出し文言の配置による帳票種別の判定方法を説明する図である。 帳票種別の判定結果により行われるセル補正を説明する図である。 無罫線表から生成される仮想セルを説明する図である。 見出し位置情報による再抽出処理の内容の例を示す図である。 見出し位置情報による再抽出処理の内容の他の例を示す図である。 排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第1の例を説明する図である。 排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第2の例を説明する図である。 排他関係、及びデータ情報による再抽出処理で実施する見出し文言の再抽出の第3の例を説明する図である。 見出し文言の復元方法を説明する図である。 見出し文言の復元結果に応じて行うセル補正を説明する図である。 重複精査処理の内容を説明する図である。 DR・GR−見出し文言精査処理の内容を説明する図である。 セル内から他の文字列を抽出する方法を説明する図である(その1)。 セル内から他の文字列を抽出する方法を説明する図である(その2)。 セル内から他の文字列を抽出する方法を説明する図である(その3)。 セル内から他の文字列を抽出する方法を説明する図である(その4)。 セル内から他の文字列を抽出する方法を説明する図である(その5)。 セル内から他の文字列を抽出する方法を説明する図である(その6)。 セル内から他の文字列を抽出する方法を説明する図である(その7)。 セル内から他の文字列を抽出する方法を説明する図である(その8)。 セル内から他の文字列を抽出する方法を説明する図である(その9)。 セル内から他の文字列を抽出する方法を説明する図である(その10)。 セル内から他の文字列を抽出する方法を説明する図である(その11)。 セル内から他の文字列を抽出する方法を説明する図である(その12)。 明細分割を説明する図である。 消し線による削除を説明する図である。 第2の論理構造解析処理の実行によって得られる認識結果を説明する図である。 実際の帳票の認識結果を示す図である。 本実施形態による帳票認識装置を実現可能なコンピュータの構成図である。 本実施形態によるデータベース作成支援装置の機能構成を示す図である。 代表見出しを作成する処理の流れを示すフローチャートである。 見出し関係を生成する処理の流れを示すフローチャートである。 重複している文言の例を示す図である。 表形式の定義、及びその定義に対応する帳票デザイン(表構造)を説明する図である。 データ整形の定義、及びその定義によって行われるデータ整形を説明する図である。 見出し関係の生成方法を説明する図である。 見出しGR関係によって生成される帳票デザインを説明する図である。 見出しGR関係により帳票デザインから生成される見出し関係を説明する図である。 見出しDR関係によって生成される帳票デザインを説明する図である。 見出しDR関係により帳票デザインから生成される見出し関係を説明する図である。
符号の説明
11 入力部
12 図表文分離部
13 罫線抽出部
14 表構造解析部
15 テキスト抽出部
16 文字認識部
17 キーワード抽出部
18 帳票種別判定部
19 表構造解析部
20 論理構造解析部
21 項目解析部
22 論理構造解析部
23 出力部
24 データベース蓄積部
25 論理構造解析DB
26 記憶部
701 見出し・データ情報入力部
702 代表見出し作成部
703 見出し関係入力部
704 見出し関係生成部
705 DB出力部

Claims (30)

  1. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置において、
    前記帳票の電子化された帳票画像を取得する画像取得手段と、
    前記画像取得手段が取得した前記帳票画像上に存在する文字列を認識する文字列認識手段と、
    前記文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、
    前記文字列抽出手段が複数の見出し文言を抽出した場合に、該文字列抽出手段が抽出した各見出し文言、及び該各見出し文言の前記帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定手段と、
    前記表構造判定手段による前記表構造の判定結果を用いて、前記見出し文言と該見出し文言以外に前記文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、
    を具備することを特徴とする帳票認識装置。
  2. 前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを格納した記憶手段、を具備し、
    前記表構造判定手段は、前記記憶手段に格納されたデータベースを参照して、前記帳票画像上に存在する全体の表構造を判定する、
    ことを特徴とする請求項1記載の帳票認識装置。
  3. 前記階層構造は、1つ以上の見出し文言が定義される第1の層、該第1の層で定義された見出し文言を代表し、他の見出し文言と置換可能な見出し文言である第1の代表見出しが定義された第2の層、及び前記表構造で該第1の代表見出しの上位に位置する見出し文言である第2の代表見出しが定義される第3の層を含み、
    前記表構造判定手段は、前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を設定し、該設定した範囲内で抽出されている他の見出し文言の評価を行い、該単位表構造に存在する見出し文言を特定する、
    ことを特徴とする請求項2記載の帳票認識装置。
  4. 前記階層構造は、1つ以上の見出し文言が定義される第1の層、該第1の層で定義された見出し文言を代表し、他の見出し文言と置換可能な見出し文言である第1の代表見出しが定義された第2の層、及び前記表構造で該第1の代表見出しの上位に位置する見出し文言である第2の代表見出しが定義される第3の層を含み、
    前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を設定し、該設定した範囲内で抽出されている他の見出し文言と置換可能な前記第1の代表見出し、及び該単位表構造で前記見出し文言とは異なる文字列として認識されるデータに着目して、該単位表構造に追加すべき第1の代表見出しを特定し追加する見出し追加手段、
    を更に具備することを特徴とする請求項2記載の帳票認識装置。
  5. 前記文字列抽出手段が抽出した見出し文言、及び前記表構造判定手段が判定した表構造を基に、該文字列認識手段が認識していない見出し文言が存在する前記帳票画像上の位置を特定する位置特定手段と、
    前記位置特定手段が特定した位置に存在すべき見出し文言を生成する文言生成手段と、を更に具備することを特徴とする請求項1記載の帳票認識装置。
  6. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置において、
    前記帳票の電子化された帳票画像を取得する画像取得手段と、
    前記画像取得手段が取得した前記帳票画像上に存在する文字列を認識する文字列認識手段と、
    前記文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、
    前記文字列抽出手段が抽出した結果を基に、前記文字列認識手段が認識していない見出し文言が存在する前記帳票画像上の位置を特定する位置特定手段と、
    前記位置特定手段が特定した位置に存在すべき見出し文言を生成する文言生成手段と、
    前記文言生成手段が生成した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、
    を具備することを特徴とする帳票認識装置。
  7. 前記文字列抽出手段が抽出した見出し文言、及び前記見出し文言の前記帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定手段、を更に具備し、
    前記位置特定手段は、前記表構造判定手段の判別結果を用いて前記位置の特定を行い、
    前記文言生成手段は、前記表構造判定手段の判別結果から、前記位置に存在すべき見出し文言を生成する、
    ことを特徴とする請求項6記載の帳票認識装置。
  8. 前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを格納した記憶手段、を具備し、
    前記表構造判定手段は、前記記憶手段に格納されたデータベースを参照して、前記帳票画像上に存在する全体の表構造を判定する、
    ことを特徴とする請求項7記載の帳票認識装置。
  9. 前記階層構造は、1つ以上の見出し文言が定義される第1の層、該第1の層で定義された見出し文言を代表し、他の見出し文言と置換可能な見出し文言である第1の代表見出しが定義された第2の層、及び前記表構造で該第1の代表見出しの上位に位置する見出し文言である第2の代表見出しが定義される第3の層を含み、
    前記表構造判定手段は、前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を設定し、該設定した範囲内で抽出されている他の見出し文言の評価を行い、該単位表構造に存在する見出し文言を特定する、
    ことを特徴とする請求項8記載の帳票認識装置。
  10. 前記階層構造は、1つ以上の見出し文言が定義される第1の層、該第1の層で定義された見出し文言を代表し、他の見出し文言と置換可能な見出し文言である第1の代表見出しが定義された第2の層、及び前記表構造で該第1の代表見出しの上位に位置する見出し文言である第2の代表見出しが定義される第3の層を含み、
    前記位置特定手段は、前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている他の見出し文言と置換可能な前記第1の代表見出し、及び該単位表構造でデータとして認識される文字列に着目して、前記位置を該範囲内で特定し、
    前記文言生成手段は、前記位置特定手段が前記範囲内で特定した位置に追加すべき第1の代表見出しを特定することにより、前記見出し文言を生成する、
    ことを特徴とする請求項8記載の帳票認識装置。
  11. 前記第1の代表見出しは、前記単位表構造毎に重複しない排他関係を有し、
    前記文言生成手段は、前記排他関係を利用して、前記範囲内で認識されている第1の代表見出しとは異なる第1の代表見出しを特定する、
    ことを特徴とする請求項10記載の帳票認識装置。
  12. 前記データベースは、前記単位表構造上に記入されるデータに関するデータ情報が定義され、
    前記文言生成手段は、前記排他関係、及び前記データ情報を利用して、前記範囲内で認識されている第1の代表見出しとは異なる第1の代表見出しを特定する、
    ことを特徴とする請求項11記載の帳票認識装置。
  13. 前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを格納した記憶手段と、
    前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記第1の代表見出し、及び該単位表構造でデータとして認識される文字列に着目して、該データに対応する第1の代表見出しを追加する見出し追加手段と、
    を更に具備することを特徴とする請求項6記載の帳票認識装置。
  14. 前記文字列認識手段の認識結果を用いて、前記文字列が含まれる領域であるセルを生成するセル生成手段、を具備し、
    前記位置特定手段は、前記セル生成手段が生成したセル単位で前記位置の特定を行う、
    ことを特徴とする請求項6記載の帳票認識装置。
  15. 前記文字列が含まれる領域であるセルを生成するセル生成手段と、
    前記セル生成手段が生成したセルのなかで、前記帳票上にデータとして記入される文字列用であり、且つ同じ方向上に連続する複数のセルを対象に補正を行うセル補正手段と、
    を更に具備することを特徴とする請求項6記載の帳票認識装置。
  16. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置において、
    前記帳票の電子化された帳票画像を取得する画像取得手段と、
    前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを格納した記憶手段と、
    前記画像取得手段が取得した前記帳票画像上に存在する文字列を認識する文字列認識手段と、
    前記記憶手段に格納されたデータベースを参照して、前記文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、
    前記文字列抽出手段による抽出結果を基に、前記帳票画像上に存在する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記見出し文言、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する見出し文言を追加する見出し追加手段と、
    前記見出し追加手段が追加した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、
    を具備することを特徴とする帳票認識装置。
  17. 前記階層構造は、1つ以上の見出し文言が定義される第1の層、該第1の層で定義された見出し文言を代表し、他の見出し文言と置換可能な見出し文言である第1の代表見出し
    が定義された第2の層、及び前記表構造で該第1の代表見出しの上位に位置する見出し文言である第2の代表見出しが定義される第3の層を含み、
    前記見出し追加手段は、前記文字列抽出手段による前記第2の代表見出しの抽出結果を基に、該第2の代表見出しを有する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記第1の代表見出し、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する第1の代表見出しを追加する、
    ことを特徴とする請求項16記載の帳票認識装置。
  18. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置において、
    前記帳票の電子化された帳票画像を取得する画像取得手段と、
    前記画像取得手段が取得した前記帳票画像上に存在する文字列を認識する文字列認識手段と、
    前記文字列認識手段が認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出手段と、
    前記文字列抽出手段が複数の見出し文言を抽出した場合に、該文字列抽出手段が抽出した各見出し文言、及び該各見出し文言の前記帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定手段と、
    前記文字列抽出手段による抽出結果を基に、前記文字列認識手段が認識していない見出し文言が存在する前記帳票画像上の位置を特定する位置特定手段と、
    前記位置特定手段が特定した位置に存在すべき見出し文言を生成する文言生成手段と、
    前記文字列抽出手段による抽出結果を基に、前記帳票画像上に存在する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記見出し文言、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する見出し文言を追加する見出し追加手段と、
    前記表構造判定手段による前記表構造の判定結果を用いて、前記文言生成手段が生成した見出し文言、及び前記見出し追加手段が追加した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識手段が認識している文字列との間の対応関係を特定する対応関係特定手段と、
    を具備することを特徴とする帳票認識装置。
  19. 前記対応関係特定手段は、前記見出し文言別に定義された、該見出し文言の情報として存在する文字列に付される可能性のあるシンボルに関する付帯情報を参照して、前記対応関係を特定する、
    ことを特徴とする請求項1、6、16、又は18記載の帳票認識装置。
  20. 帳票上に任意の表構造で存在する文字列の認識を行うための方法であって、
    前記帳票の電子化された帳票画像を取得する画像取得工程と、
    前記画像取得工程で取得した前記帳票画像上に存在する文字列を認識する文字列認識工程と、
    前記文字列認識工程で認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出工程と、
    前記文字列抽出工程で複数の見出し文言を抽出した場合に、該前記文字列抽出工程で抽出した各見出し文言、及び該各見出し文言の前記帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定工程と、
    前記表構造判定工程での前記表構造の判定結果を用いて、前記見出し文言と該見出し文言以外に前記文字列認識工程で認識している文字列との間の対応関係を特定する対応関係特定工程と、
    を有することを特徴とする帳票認識方法。
  21. 帳票上に任意の表構造で存在する文字列の認識を行うための方法であって、
    前記帳票の電子化された帳票画像を取得する画像取得工程と、
    前記画像取得工程で取得した前記帳票画像上に存在する文字列を認識する文字列認識工程と、
    前記文字列認識工程で認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出工程と、
    前記文字列抽出工程で抽出した結果を基に、前記文字列認識工程で認識していない見出し文言が存在する前記帳票画像上の位置を特定する位置特定工程と、
    前記位置特定工程で特定した位置に存在すべき見出し文言を生成する文言生成工程と、
    前記文言生成工程で生成した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識工程で認識している文字列との間の対応関係を特定する対応関係特定工程と、
    を有することを特徴とする帳票認識方法。
  22. 帳票上に任意の表構造で存在する文字列の認識を行うための方法であって、
    前記帳票の電子化された帳票画像を取得する画像取得工程と、
    前記画像取得工程で取得した前記帳票画像上に存在する文字列を認識する文字列認識工程と、
    前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを参照して、前記文字列認識工程で認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出工程と、
    前記文字列抽出工程での抽出結果を基に、前記帳票画像上に存在する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記見出し文言、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する見出し文言を追加する見出し追加工程と、
    前記見出し追加工程で追加した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識工程で認識している文字列との間の対応関係を特定する対応関係特定工程と、
    を有することを特徴とする帳票認識方法。
  23. 請求項2、8、または1記載の帳票認識装置による前記帳票上の文字列の認識に用いることが可能なデータベースの作成を支援する装置であって、
    前記見出し文言を入力する文言入力手段と、
    前記文言入力手段が入力した見出し文言の間の階層構造を生成する階層構造生成手段と、
    を具備することを特徴とするデータベース作成支援装置。
  24. 前記文言入力手段は、前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある2つ以上の見出し文言、及び該2つ以上の見出し文言間の階層関係を入力単位として入力し、
    前記階層構造生成手段は、前記入力単位間で共通する見出し文言、及び各入力単位で示されている階層関係を基に、3層以上の階層構造を生成する、
    ことを特徴とする請求項23記載のデータベース作成支援装置。
  25. 前記階層構造生成手段が生成した見出し文言の間の階層構造に対応する前記単位表構造のデザイン画像を生成して出力する画像生成手段、
    を更に具備することを特徴とする請求項23記載のデータベース作成支援装置。
  26. 請求項2、8、または1記載の帳票認識装置による前記帳票上の文字列の認識に用いることが可能なデータベースの作成をコンピュータにより支援する方法であって、
    前記見出し文言を入力する文言入力工程と、
    前記文言入力手工程で入力された見出し文言の間の階層構造を生成する階層構造生成工程と、
    を有することを特徴とするデータベース作成支援方法。
  27. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置として用いることが可能なコンピュータに、
    前記帳票の電子化された帳票画像を取得する画像取得機能と、
    前記画像取得機能により取得した前記帳票画像上に存在する文字列を認識する文字列認識機能と、
    前記文字列認識機能により認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出機能と、
    前記文字列抽出機能により抽出した見出し文言、及び前記見出し文言の前記帳票画像上の配置に基づいて、該帳票画像上に存在する表構造を判定する表構造判定機能と、
    前記表構造判定機能による前記表構造の判定結果を用いて、前記見出し文言と該見出し文言以外に前記文字列認識機能により認識している文字列との間の対応関係を特定する対応関係特定機能と、
    を実現させるためのプログラム。
  28. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置として用いることが可能なコンピュータに、
    前記帳票の電子化された帳票画像を取得する画像取得機能と、
    前記画像取得機能により取得した前記帳票画像上に存在する文字列を認識する文字列認識機能と、
    前記文字列認識機能により認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出機能と、
    前記文字列抽出機能により抽出した結果を基に、前記文字列認識機能で認識していない見出し文言が存在する前記帳票画像上の位置を特定する位置特定機能と、
    前記位置特定機能により特定した位置に存在すべき見出し文言を生成する文言生成機能と、
    前記文言生成機能により生成した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識機能により認識している文字列との間の対応関係を特定する対応関係特定機能と、
    を実現させるためのプログラム。
  29. 帳票上に任意の表構造で存在する文字列の認識を行う帳票認識装置として用いることが可能なコンピュータに、
    前記帳票の電子化された帳票画像を取得する画像取得機能と、
    前記画像取得機能により取得した前記帳票画像上に存在する文字列を認識する文字列認識機能と、
    前記帳票上に1つ以上の関連するデータを記入する単位となる表構造である単位表構造毎に、該単位表構造で出現する可能性のある見出し文言が階層構造で定義されているデータベースを参照して、前記文字列認識機能により認識した文字列のなかから予め定めた文字列である見出し文言を抽出する文字列抽出機能と、
    前記文字列抽出機能による抽出結果を基に、前記帳票画像上に存在する前記単位表構造の範囲を抽出し、該抽出した範囲内で認識されている前記見出し文言、及び該単位表構造でデータとして認識される文字列のうちの少なくとも一方に着目して、該データに対応する見出し文言を追加する見出し追加機能と、
    前記見出し追加機能により追加した見出し文言を含め、該見出し文言と該見出し文言以外に前記文字列認識手段により認識している文字列との間の対応関係を特定する対応関係特定機能と、
    を実現させるためのプログラム。
  30. 請求項2、8、または1記載の帳票認識装置による前記帳票上の文字列の認識に用いることが可能なデータベースの作成を支援するデータベース作成支援装置として用いることが可能なコンピュータに、
    前記見出し文言を入力する文言入力機能と、
    前記文言入力手機能で入力された見出し文言の間の階層構造を生成する階層構造生成機能と、
    を実現させるためのプログラム。
JP2008162110A 2008-06-20 2008-06-20 帳票認識装置、方法、データベース作成装置、方法、及びプログラム Expired - Fee Related JP4825243B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008162110A JP4825243B2 (ja) 2008-06-20 2008-06-20 帳票認識装置、方法、データベース作成装置、方法、及びプログラム
KR1020090054110A KR101083557B1 (ko) 2008-06-20 2009-06-17 장표 인식 장치, 방법, 데이터베이스 작성 장치, 방법, 및 기록 매체
CN200910149359.4A CN101685498B (zh) 2008-06-20 2009-06-18 帐票识别装置、方法、数据库生成装置、方法
EP09163284.4A EP2136316A3 (en) 2008-06-20 2009-06-19 Form recognition apparatus, method, database generation apparatus, method, and storage medium
US12/488,279 US8891871B2 (en) 2008-06-20 2009-06-19 Form recognition apparatus, method, database generation apparatus, method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008162110A JP4825243B2 (ja) 2008-06-20 2008-06-20 帳票認識装置、方法、データベース作成装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010003155A JP2010003155A (ja) 2010-01-07
JP4825243B2 true JP4825243B2 (ja) 2011-11-30

Family

ID=41090303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008162110A Expired - Fee Related JP4825243B2 (ja) 2008-06-20 2008-06-20 帳票認識装置、方法、データベース作成装置、方法、及びプログラム

Country Status (5)

Country Link
US (1) US8891871B2 (ja)
EP (1) EP2136316A3 (ja)
JP (1) JP4825243B2 (ja)
KR (1) KR101083557B1 (ja)
CN (1) CN101685498B (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4825243B2 (ja) * 2008-06-20 2011-11-30 富士通フロンテック株式会社 帳票認識装置、方法、データベース作成装置、方法、及びプログラム
US9152617B2 (en) * 2010-03-11 2015-10-06 A2iA S.A. System and method for processing objects
JP5561856B2 (ja) * 2010-05-24 2014-07-30 株式会社Pfu 帳票作成装置、帳票作成プログラム、および帳票作成方法
JP2012043008A (ja) * 2010-08-12 2012-03-01 Oki Electric Ind Co Ltd イメージ処理装置、及び、当該イメージ処理装置を実現するプログラム
CN102750541B (zh) * 2011-04-22 2015-07-08 北京文通科技有限公司 一种文档图像分类识别方法及装置
JP5664481B2 (ja) * 2011-06-30 2015-02-04 富士通株式会社 表構造自動認識プログラム、表構造自動認識方法及び表構造自動認識装置
JP5566971B2 (ja) * 2011-07-29 2014-08-06 富士通フロンテック株式会社 情報処理プログラム、情報処理装置および文字認識方法
JP5824309B2 (ja) * 2011-10-03 2015-11-25 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
JP6091093B2 (ja) * 2012-06-14 2017-03-08 株式会社エヌ・ティ・ティ・データ 文書変換装置、文書変換方法および文書変換プログラム
US9449031B2 (en) * 2013-02-28 2016-09-20 Ricoh Company, Ltd. Sorting and filtering a table with image data and symbolic data in a single cell
KR20160060499A (ko) * 2014-11-20 2016-05-30 삼성전자주식회사 화상독취장치 및 그의 제어 방법
RU2679209C2 (ru) * 2014-12-15 2019-02-06 Общество с ограниченной ответственностью "Аби Продакшн" Обработка электронных документов для распознавания инвойсов
CN105069898B (zh) * 2015-07-15 2018-03-30 广州敦和信息技术有限公司 一种发票字条自动定位的方法及装置
CN107025452A (zh) * 2016-01-29 2017-08-08 富士通株式会社 图像识别方法和图像识别设备
CN106406682A (zh) * 2016-09-29 2017-02-15 广州鹤互联网科技有限公司 一种签核文件选择生成方法及装置
CN106846008B (zh) * 2016-12-27 2021-06-29 北京五八信息技术有限公司 营业执照验证方法及装置
US10171696B2 (en) * 2017-01-09 2019-01-01 Kabushiki Kaisha Toshiba Image processing apparatus and image processing method for recognizing characters in character string regions and table regions on a medium
CN107392195B (zh) * 2017-07-25 2020-10-23 深圳市迪比科电子科技有限公司 一种智能书写系统
CN107808154B (zh) * 2017-12-08 2021-03-30 上海慧银信息科技有限公司 提取收银票据信息的方法和装置
JP7247472B2 (ja) * 2018-04-19 2023-03-29 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
CN110858196B (zh) * 2018-08-21 2022-04-12 湖南共睹互联网科技有限责任公司 交易保障平台的数据库建立方法及装置
WO2020044537A1 (ja) * 2018-08-31 2020-03-05 株式会社Pfu 画像照合装置、画像照合方法、及びプログラム
CN109815954A (zh) * 2019-01-31 2019-05-28 科大讯飞股份有限公司 增值税发票图像的方向校正方法、装置、设备及存储介质
CN110633660B (zh) * 2019-08-30 2022-05-31 盈盛智创科技(广州)有限公司 一种文档识别的方法、设备和存储介质
JP7516024B2 (ja) 2019-09-06 2024-07-16 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP7439435B2 (ja) 2019-09-30 2024-02-28 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP2021114211A (ja) * 2020-01-21 2021-08-05 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
WO2021186642A1 (ja) * 2020-03-18 2021-09-23 株式会社Pfu 画像処理装置、制御方法及び制御プログラム
CN111563498B (zh) * 2020-04-30 2024-01-19 广东小天才科技有限公司 一种题目收集的方法、装置、电子设备及存储介质
US11335110B2 (en) 2020-08-05 2022-05-17 Verizon Patent And Licensing Inc. Systems and methods for processing a table of information in a document
KR102697516B1 (ko) * 2021-07-20 2024-08-21 네이버 주식회사 테이블에 포함된 정보를 인식하는 문자 인식 에러에 강인한 글자 인식 방법 및 시스템

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07107694B2 (ja) * 1984-08-31 1995-11-15 株式会社日立製作所 文書処理装置
JPH0388019A (ja) 1989-08-31 1991-04-12 Toshiba Corp データ処理装置
JP3215176B2 (ja) * 1992-09-07 2001-10-02 株式会社東芝 文書画像処理装置及び文書画像処理方法
JP3463008B2 (ja) * 1995-07-31 2003-11-05 富士通株式会社 媒体処理方法及び媒体処理装置
EP1818857B1 (en) * 1995-07-31 2010-06-23 Fujitsu Limited Document processor and document processing method
US5737442A (en) * 1995-10-20 1998-04-07 Bcl Computers Processor based method for extracting tables from printed documents
JPH09274634A (ja) 1996-04-03 1997-10-21 Oki Electric Ind Co Ltd 文字認識装置
JPH10116314A (ja) 1996-10-09 1998-05-06 Oki Electric Ind Co Ltd 表処理方法及び表処理装置
JPH11110479A (ja) 1997-10-02 1999-04-23 Canon Inc 文字処理方法及び装置及び記憶媒体
JP3525997B2 (ja) * 1997-12-01 2004-05-10 富士通株式会社 文字認識方法
JP3912463B2 (ja) * 1998-09-29 2007-05-09 富士ゼロックス株式会社 論理構造抽出装置及び論理構造抽出方法
US6412012B1 (en) * 1998-12-23 2002-06-25 Net Perceptions, Inc. System, method, and article of manufacture for making a compatibility-aware recommendations to a user
JP3465667B2 (ja) 1999-02-22 2003-11-10 株式会社日立製作所 自動取引システム及び取引方法
JP2000251012A (ja) * 1999-03-01 2000-09-14 Hitachi Ltd 帳票処理方法およびシステム
JP2000259653A (ja) * 1999-03-09 2000-09-22 Mitsubishi Electric Corp 音声認識装置及び音声認識方法
US6594641B1 (en) * 1999-04-16 2003-07-15 Reshare Corporation Computer facilitated product selling system
JP4450888B2 (ja) 1999-05-28 2010-04-14 富士通株式会社 帳票認識方法
US20030027635A1 (en) * 2001-08-03 2003-02-06 Walker Jay S. Method and apparatus for generating directives for personnel
US20030042319A1 (en) * 2001-08-31 2003-03-06 Xerox Corporation Automatic and semi-automatic index generation for raster documents
US20050055272A1 (en) * 2003-09-10 2005-03-10 Sears Brands Llc Method and system for providing benefits to retail consumers
US20050149414A1 (en) * 2003-12-30 2005-07-07 Kimberly-Clark Worldwide, Inc. RFID system and method for managing out-of-stock items
JP3923474B2 (ja) 2004-01-23 2007-05-30 沖電気工業株式会社 文字読み取り装置
US20050288990A1 (en) * 2004-06-24 2005-12-29 International Business Machines Corporation Computer-implemented method, system and program product for modeling a consumer decision process
US20060036484A1 (en) * 2004-08-13 2006-02-16 Michael Voticky Method of providing recyclable, immediately-redeemable award points
JP2004334913A (ja) 2004-08-19 2004-11-25 Matsushita Electric Ind Co Ltd 帳票認識装置及び帳票認識方法
JP2006134106A (ja) 2004-11-05 2006-05-25 Hammock:Kk 帳票認識システム、帳票認識方法及びコンピュータプログラム
WO2007080642A1 (ja) * 2006-01-13 2007-07-19 Fujitsu Limited 帳票処理プログラムおよび帳票処理装置
US20090110288A1 (en) * 2007-10-29 2009-04-30 Kabushiki Kaisha Toshiba Document processing apparatus and document processing method
JP4825243B2 (ja) * 2008-06-20 2011-11-30 富士通フロンテック株式会社 帳票認識装置、方法、データベース作成装置、方法、及びプログラム

Also Published As

Publication number Publication date
CN101685498A (zh) 2010-03-31
US20100008578A1 (en) 2010-01-14
EP2136316A2 (en) 2009-12-23
JP2010003155A (ja) 2010-01-07
EP2136316A3 (en) 2013-10-23
CN101685498B (zh) 2016-04-20
US8891871B2 (en) 2014-11-18
KR101083557B1 (ko) 2011-11-14
KR20090132521A (ko) 2009-12-30

Similar Documents

Publication Publication Date Title
JP4825243B2 (ja) 帳票認識装置、方法、データベース作成装置、方法、及びプログラム
US11715313B2 (en) Apparatus and methods for extracting data from lineless table using delaunay triangulation and excess edge removal
AU2019364424B2 (en) Software test case maintenance
US8264502B2 (en) System and method for comparing and reviewing documents
JP4616358B2 (ja) 作業指示書作成装置,作業指示書作成方法および作業指示書作成プログラム
US20210366055A1 (en) Systems and methods for generating accurate transaction data and manipulation
JP2008243204A (ja) ノードリンクダイアグラムに構造認識を提供する方法およびプログラム
Esser et al. Automatic indexing of scanned documents: a layout-based approach
JP2008269587A (ja) ペンコンピュータシステム内にノードリンクダイアグラムを生成および編集する方法および装置
JP4998220B2 (ja) 帳票データ抽出プログラム、帳票データ抽出装置および帳票データ抽出方法
KR102699224B1 (ko) 테이블 인식 방법 및 시스템
US20220335073A1 (en) Fuzzy searching using word shapes for big data applications
Cui et al. A mixed-initiative approach to reusing infographic charts
US20240296691A1 (en) Image reading systems, methods and storage medium for performing geometric extraction
KR20180076594A (ko) 객체 속성을 이용한 도면관리 방법 및 도면관리 시스템
Garrido-Munoz et al. A holistic approach for image-to-graph: application to optical music recognition
JP5790820B2 (ja) 不整合検出装置、プログラム及び方法、修正支援装置、プログラム及び方法
Ling et al. Document domain randomization for deep learning document layout extraction
Bartoli et al. Semisupervised wrapper choice and generation for print-oriented documents
Li et al. Information Extraction for Semantic Enrichment of BIM for Bridges
Raveaux et al. A local evaluation of vectorized documents by means of polygon assignments and matching
Ubewikkrama Automatic invoice Data identification with relations
WO2016046988A1 (ja) 文書処理装置および項目抽出方法
JP2006190235A (ja) 文書分類方法、文書分類プログラム及び文書分類装置
JPH06168267A (ja) 構造化文書作成方法及び構造化文書作成支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110909

R150 Certificate of patent or registration of utility model

Ref document number: 4825243

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees