JP2023046684A - 情報処理装置、情報処理方法、およびプログラム - Google Patents
情報処理装置、情報処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2023046684A JP2023046684A JP2021155408A JP2021155408A JP2023046684A JP 2023046684 A JP2023046684 A JP 2023046684A JP 2021155408 A JP2021155408 A JP 2021155408A JP 2021155408 A JP2021155408 A JP 2021155408A JP 2023046684 A JP2023046684 A JP 2023046684A
- Authority
- JP
- Japan
- Prior art keywords
- item
- character string
- item value
- character
- candidate
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 39
- 238000003672 processing method Methods 0.000 title claims 2
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims description 84
- 238000011156 evaluation Methods 0.000 claims description 19
- 238000000605 extraction Methods 0.000 abstract description 83
- 239000000284 extract Substances 0.000 abstract description 4
- 238000012937 correction Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 238000012790 confirmation Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000007717 exclusion Effects 0.000 description 11
- 238000010191 image analysis Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000007476 Maximum Likelihood Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
【課題】レイアウトが固定していない文書のスキャン画像から所定の項目に対応する文字列を抽出すること。【解決手段】情報処理装置は、文書のスキャン画像に対し文字認識処理を行う文字認識手段と、前記文字認識処理の処理結果から、特定の文字列を所定の項目に対応する項目値として決定するための候補文字列を抽出する抽出手段と、前記候補文字列ごとの特徴量を算出して、前記特徴量に基づき前記特定の文字列を決定する決定手段と、を有し、前記特徴量は、前記候補文字列が前記スキャン画像に出現した回数を少なくとも含む。【選択図】図8
Description
本開示の技術は、文書のスキャン画像から項目値を抽出する処理に関する。
文書をスキャンして得られたスキャン画像から文書に記載された特定の項目の文字列を抽出し、その文字列をファイル名等に利用する方法がある。レイアウトが固定の文書に対しては、決まった位置の文字列を取得することで特定の項目の文字列を抽出することができる。
また、レイアウトが文書ごとに異なる文書のスキャン画像から特定の項目に対応する文字列を抽出する方法が提案されている。特許文献1には、項目名または項目値に相当する文字列を検索し、項目名に相当する文字列と項目値に相当する文字列との関係性によって、特定の項目に対応する文字列である項目値を抽出する方法が記載されている。
特許文献1の方法では、例えば、「日付」という項目名の文字列の隣にある数字の文字列を日付の項目値として抽出することができる。しかしながら、抽出対象の項目によっては、項目名に相当する文字列が文書に含まれていない場合がある。この場合、スキャン画像から所望の文字列(項目値)を適切に抽出できない虞がある。
本開示の技術は、レイアウトが固定していない文書のスキャン画像から所定の項目に対応する文字列を抽出することを目的とする。
本開示の情報処理装置は、文書のスキャン画像に対し文字認識処理を行う文字認識手段と、前記文字認識処理の処理結果から、特定の文字列を所定の項目に対応する項目値として決定するための候補文字列を抽出する抽出手段と、前記候補文字列ごとの特徴量を算出して、前記特徴量に基づき前記特定の文字列を決定する決定手段と、を有し、前記特徴量は、前記候補文字列が前記スキャン画像に出現した回数を少なくとも含むことを特徴とする。
本開示の技術によれば、レイアウトが固定していない文書のスキャン画像から所定の項目に対応する文字列を抽出することができる。
以下、本開示の技術の実施形態について図面を用いて説明する。なお、以下で説明する実施形態は本開示の技術を限定するものではなく、また、以下の実施形態で説明されている全ての構成が本開示の技術の課題を解決するための必須の手段であるとは限らない。
<第1の実施形態>
近年、プリンタ、複写機能、ファクシミリ機能などを備えた複合機能装置(MFP:Multi Function Printer)には、イメージスキャナが備え付けられていることが一般的になっている。また、スマートフォンに代表されるモバイル機器にもデジタルカメラ機能が備え付けられていることが一般化している。これらを用いることによって、手書き文字または活字を含む文書を、光学的にスキャンまたは撮影して得られた文書画像(スキャン文書画像、または単にスキャン画像とよぶ)を生成することができる。
近年、プリンタ、複写機能、ファクシミリ機能などを備えた複合機能装置(MFP:Multi Function Printer)には、イメージスキャナが備え付けられていることが一般的になっている。また、スマートフォンに代表されるモバイル機器にもデジタルカメラ機能が備え付けられていることが一般化している。これらを用いることによって、手書き文字または活字を含む文書を、光学的にスキャンまたは撮影して得られた文書画像(スキャン文書画像、または単にスキャン画像とよぶ)を生成することができる。
さらに、この文書画像に対して、文字認識(OCR:Optical Character Recognition)処理を行い、コンピュータが利用可能な文字コードに変換する技術が広く使われるようになってきている。
また、文書をスキャンして得られたスキャン画像を文字認識処理した結果得られた文字列の中から特定の項目の文字列の抽出し、その文字列を利用する方法がある。この抽出処理によれば、経費精算業務に代表されるような一般的なオフィスの業務で実施されているデータ入力の手間を軽減することができる。
レイアウトが固定されている文書に対しては、特定の項目が記載されている位置の文字列を取得することで、特定の項目の文字列を抽出することができる。また、レイアウトが固定されていない文書のスキャン画像を文字認識処理した結果得られた文字列からも、抽出したい項目の項目値を抽出することが行われるようになってきている。例えば、抽出対象の文字列が請求書内の請求金額の数値を示す文字列(項目値)である場合、請求金額の項目を表す「合計金額」などの文字列(項目名)と、項目値の位置関係を予め登録しておく。そして、登録されている項目名との位置関係を満たす文字列を、請求金額を示す文字列(項目値)として抽出することが考えられる。
このように、レイアウトが固定されていない文書から項目値を抽出する場合、文字認識処理の精度に加え、抽出したい項目の記載箇所を検出する精度も高くなければ、適切に項目値を抽出することができない。ところが、一部の文字列の記載が、商習慣上等の理由により省略されている文書が存在する、または、抽出したい項目の項目名となり得る文字列が無い文書も多く存在する。例えば、請求書の場合、少なくとも、請求元(文書の発行者)と請求先との両方の会社名が記載されており、請求元の会社名と請求先と会社名を区別するための項目名の記載がない請求書も多く散見される。このような文書から請求先の会社名を項目値として抽出する場合、複数の会社名が項目値の候補文字列として抽出されてしまう。このため、複数の候補文字列から項目値の絞り込みを行うことが必要となる。
そこで本実施形態では、対応する項目名が無いとき、または抽出対象の項目の項目値に該当すると思われる文字列(項目値候補)が複数あったときでも、抽出対象の項目値を精度よく抽出する方法を説明する。
[ハードウェア構成]
図1は、本実施形態に係る情報処理装置100の内部構成のハードウェア構成を示す図である。情報処理装置100は、CPU101、ROM102、RAM103、入力部104、バス105、外部記憶部106、NCU107、GPU108、表示部109、およびSCNU110を有する。
図1は、本実施形態に係る情報処理装置100の内部構成のハードウェア構成を示す図である。情報処理装置100は、CPU101、ROM102、RAM103、入力部104、バス105、外部記憶部106、NCU107、GPU108、表示部109、およびSCNU110を有する。
CPU101は、RAM103をワークメモリとして、ROM102に格納されたプログラムを実行し、情報処理装置100の各部を統括的に制御するプロセッサである。また、CPU101は、複数の計算機プログラムを並列に動作させることもできる。
ROM102は、CPU101による実行されるプログラムおよびデータを格納する。RAM103は、CPU101が処理するための制御プログラムを格納するとともに、CPU101が各種制御を実行する際の様々なデータの作業領域を提供する。
入力部104は、ユーザによる各種入力操作環境を提供する。入力部104は、例えばキーボードまたはマウスである。他にも、ユーザからの各種入力操作環境を提供するものであれば、タッチパネル、スタイラスペン等が含まれてもよい。また、音声認識やジェスチャー操作による入力を受け付ける装置が含まれていてもよい。
バス105は、情報処理装置100の各部分に接続されているアドレスバス、またはデータバス等であり、その各部分間の情報交換・通信機能を提供する。これにより、各部分が連携して動作できるようにする。
外部記憶部106は、様々なデータ等を記憶するための装置である。外部記憶部106は、ハードディスク、フロッピーディスク、光ディスク、磁気ディスク、磁気テープ、不揮発性のメモリカード等の記録媒体と、記憶媒体を駆動し情報を記録するドライブとで構成される。保管されたプログラムやデータの一部は、入力部104を介して受け付けられる指示、またはプログラムの指示により必要な時にRAM103上に呼び出される。
NCU(Network Control Unit)107は、他の情報処理装置等と通信を行うための通信部である。NCU107は、LAN等のネットワークを介して、他の情報処理装置と通信することによりプログラムおよびデータを共有することが可能になる。NCU107には、任意の通信規格のものを使用することができる。例えば、RS232C、USB、IEEE1394、P1284、SCSI、モデム、Ethernet等の有線通信、またはBluetooth、赤外線通信、IEEE802.11a/b/n等が利用可能である。
GPU108は、バス105を経由してCPU101等と、表示指示や計算指示に従って表示する画像の作成や表示位置などの計算を行い、その計算結果を表示部109に描画する。または、バス105を経由して、計算結果をCPU101に戻すことで、CPU101と連携した計算処理を行う場合もある。
表示部109は、入力操作の状態やそれに応じた計算結果などをユーザに対して表示する装置である。表示部109は、例えば液晶ディスプレイである。
SCNU(Scanning Unit)110は原稿を読取り画像データを生成する画像読取部であり、例えば、オーバーヘッド型のスキャナである。SCNU110は情報処理装置100とは別の装置として構成されてもよい。例えばSCNUは、NCU107の通信機能を介して接続してもよいし、それ以外の独自の外部I/Fを介して接続する形態でもよい。
以上述べてきた情報処理装置100のハードウェア構成は、あくまでも、本実施形態を説明するための一例であり、これに限定されるものでない。図1の構成は、ハードウェアである制限はなく、仮想的にソフトウェアで作り出されたものでもよい。図1のハードウェア構成を情報処理装置100単体で実現する場合だけでなく、NCU107を利用した情報交換・共有等を行い連携させることで、サーバ・クライアントシステムによって実現してもよい。ハードウェア構成の各部が異なる場所にあって、LANやインターネットなどを介して連携動作してもよいし、仮想的にソフトウェアで作り出されたものが含まれていてもよい。さらに、複数のサーバ・PCクライアント等の各システムの全部もしくは一部が動作するために、図1のハードウェア構成を共有するような利用方法であってもよい。
[スキャンの対象となる文書について]
図2は、SCNU110によってスキャンされる文書の一例を示す図である。本実施形態の情報処理装置100は、文書をスキャンして、その結果得られたスキャン画像に対して文字認識処理(OCR処理)を行う。情報処理装置100は、文字認識処理の結果得られた文字列の中から、抽出項目を示す文字列(項目値)を決定する処理を行う。
図2は、SCNU110によってスキャンされる文書の一例を示す図である。本実施形態の情報処理装置100は、文書をスキャンして、その結果得られたスキャン画像に対して文字認識処理(OCR処理)を行う。情報処理装置100は、文字認識処理の結果得られた文字列の中から、抽出項目を示す文字列(項目値)を決定する処理を行う。
スキャンの対象となる帳票文書は、例えば、請求書である。請求書は発行者である請求元の会社が作成するため、請求書の書式、記載内容は請求元の会社が決定して請求内容に基づき作成されることが一般的である。このため、請求元の会社によってレイアウトなどの書式や記載内容が異なる。
情報処理装置100のユーザは、様々な請求元から受領した様々な様式の請求書をスキャンして得られた読取画像に対して会計処理等に用いる項目値を抽出する処理を情報処理装置100に実行させる。請求書200内の文字列の記載領域としては、以下のものがある。
文書タイトル201は、帳票文書が請求書であることを示す文字列を含む領域である。
発行日202は、請求書200が発行された日付が記載される項目である。抽出項目が日付の場合、文字列「2020年11月12日」が請求書200から抽出されるべき項目値となる。抽出された項目値は、例えば、請求書200の識別等のために利用される。
請求元203は、請求書200を発行した会社の情報が記載される項目である。即ち、請求書200を作成して発行した会社の、会社名、住所、および電話番号の情報が記載さる領域である。抽出項目が請求元である場合、請求元の会社名を示す文字列「AAA株式会社」が項目値として抽出されるべき文字列となる。
請求先204は、請求書200の請求先の情報が記載されている領域であり、請求書200を受領して、請求書200に記載された請求金額を請求元に支払うことになる会社の会社名および住所の情報が記載されている領域である。即ち、請求先204には情報処理装置100の利用者(ユーザ)の会社の情報が記載されている。
請求金額205は、請求先に請求されている金額が記載されている領域である。抽出項目が請求金額である場合、抽出された数値は、ユーザの支払業務等のために利用される。
明細206は、請求書200によって請求されている明細情報が記載されている領域であり、品名の他に、品名ごとの単価、数量、および価格など情報が記載されている領域である。集計207は、明細206に記載されている各価格に対し税金などの情報を加え、請求金額205に記載されている金額が記載されている領域である。
振込先208は、請求書200で請求されている金額を支払う際の振込先の銀行口座の情報が記載されている領域である。請求書200を受領したユーザは、振込先208に記載されている情報に基づき支払を行うことになる。
広告209は、請求情報以外の情報として広告の文章が記載されている領域である。このように、請求書には、例えば広告等や請求元の依頼が容易になるような請求内容以外の情報が付加されることもある。
図3に示すように、明細206には会社名を示す文字列が記載されていることもある。また、広告209または振込先208にも会社名を示す文字列が記載されていることがある。このように請求書200のような文書には、会社名を表す文字列が、請求元203以外の領域にも記載されていることがある。このため、請求書200のスキャン画像から請求元の会社名を決定するためには、文書内に存在する会社名を表す文字列の中から請求元の会社名を適切に絞り込む処理が必要となる。
[機能構成]
図3は、情報処理装置100におけるスキャン画像に対する処理に係る機能の構成の一例を示す図である。情報処理装置100は、文書画像解析部310と、特定情報抽出部320と、特定情報修正部330と、文書抽出情報利用部340と、を有する。文書画像解析部310と、特定情報抽出部320と、特定情報修正部330と、文書抽出情報利用部340と、の機能は、情報処理装置100のCPU101が所定のプログラムを実行することにより実現される。他にも、例えば、GPU108やFPGA(Field Programmable Gate Array)などのハードウェアが利用されてもよい。すなわち、情報処理装置100の各機能部は、ソフトウェアと専用ICなどのハードウェアとの協働で実現されてもよいし、一部またはすべての機能がハードウェアのみで実現されてもよい。
図3は、情報処理装置100におけるスキャン画像に対する処理に係る機能の構成の一例を示す図である。情報処理装置100は、文書画像解析部310と、特定情報抽出部320と、特定情報修正部330と、文書抽出情報利用部340と、を有する。文書画像解析部310と、特定情報抽出部320と、特定情報修正部330と、文書抽出情報利用部340と、の機能は、情報処理装置100のCPU101が所定のプログラムを実行することにより実現される。他にも、例えば、GPU108やFPGA(Field Programmable Gate Array)などのハードウェアが利用されてもよい。すなわち、情報処理装置100の各機能部は、ソフトウェアと専用ICなどのハードウェアとの協働で実現されてもよいし、一部またはすべての機能がハードウェアのみで実現されてもよい。
スキャン画像301は、請求書200のような紙などの媒体に記載または印刷された文書を光学的にスキャンすることによって得られた読取画像である。図1のSCNU110が文書をスキャンすることで、スキャン画像301が取得される。スキャン画像は、例えば、外部記憶部106やRAM103に記憶される。外部記憶部106に記憶された場合は、利用の際にRAM103にコピーされてから利用される。
文書画像解析部310は、スキャン画像301に対して文書画像処理を行う。文書画像処理は、スキャン画像301に含まれる文書画像の解析が行いやすいように、画像全体の濃度および色の調整、文字認識用の二値化、表などの罫線該当画像の削除を行う処理である。
また、文書画像解析部310は、スキャン画像301に対して文字認識処理を行う。文字認識処理では、文書画像処理がされたスキャン画像301に対して、近傍の文字を集めて文字列の記載方向を推定し、文字画像領域を検索してスキャン文書画像から文字画像を抽出する。そして、文書画像解析部310は、文字認識辞書313に保持されているデータを用いて、文字画像の文字コードを決定する。文字認識辞書313は、文字画像に対応する文字コードを決めるために使用されるデータである。
文字認識処理は、スキャン画像301の全体の文字認識を行うだけでなく、スキャン画像内の一部の領域に対してのみ行うことが可能である。また、文字認識処理をする際の文字、文字の種類、使用言語、文字列記載方向等の制約を与えた場合の文字認識も可能である。
そして、文書画像解析部310は、文字認識結果500(図5参照)と文書画像処理の処理結果である画像とによって構成される文字認識結果情報302を出力する。
特定情報抽出部320は、文書分類処理、抽出項目選択処理、項目名項目値決定処理、辞書文字パタン突合処理を行う。その結果、項目値候補の位置、項目名候補と項目値候補との相対的な配置、項目値候補の文字の大きさ、スキャン文書画像内の出現回数等の情報に基づき、抽出項目に対する項目値を示す文字列を決定する。各抽出項目に対応する項目値を示す文字列は項目値情報303として出力される。特定情報抽出部320の処理の詳細は後述する。
特定情報修正部330は、項目値情報303の内容をユーザに提示して、決定された項目値の確認または修正をユーザから受けることで正しい項目値を示す値(文字列)を取得する。そして、特定情報修正部330は、ユーザの確認及び修正が反映された正しい項目値の情報である文書抽出情報304を出力する。
文書抽出情報利用部340は、文書抽出情報304を利用する機器、アプリケーション、またはサービス等である。文書抽出情報利用部340となり得る機器やアプリケーション、サービスとしては、文書抽出情報304を利用するものであれば、いかなるものであっても適用可能である。
スキャン画像301、文字認識結果情報302、項目値情報303、および文書抽出情報304は、情報処理装置100の外部記憶部106またはRAM103に記憶される。外部記憶部106に記憶された場合は、RAM103にコピーされてから利用されることになる。
また、文字認識辞書313、文書分類データ322、項目名・項目値制約データ324、文字認識誤りパタン辞書326、辞書・文字パタンデータ327、会社名データ328は、外部記憶部106またはROM102に記憶されている。そして利用時には、RAM103にコピーされて用いられることとなる。
図3に示す機能は、あくまでも一例であり、本実施形態の情報処理装置100の機能は、図3に示す機能に限定されるものでない。例えば、複数の機器で図3の機能を分担してもよいし、複数の機器で図3内の同じ処理を分散させてもよい。
[文字認識処理および情報抽出処理]
図4は、文字認識処理から情報抽出処理までの一連の処理を示すフローチャートである。図4のフローチャートで示される一連の処理は、情報処理装置100のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、図4におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、以後のフローチャートにおいても同様とする。
図4は、文字認識処理から情報抽出処理までの一連の処理を示すフローチャートである。図4のフローチャートで示される一連の処理は、情報処理装置100のCPUがROMに記憶されているプログラムコードをRAMに展開し実行することにより行われる。また、図4におけるステップの一部または全部の機能をASICや電子回路等のハードウェアで実現してもよい。なお、各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、以後のフローチャートにおいても同様とする。
S401において文書画像解析部310は、SCNU110が文書をスキャンすること等で得られたスキャン画像301の画像データを取得する。
S402において文書画像解析部310は、文書画像処理として、取得したスキャン画像301のデータに対して二値化処理を行うことで二値画像を生成し、その二値画像をRAM103に格納する。二値化処理とは、画像を白と黒の2階調に変換する処理のことである。例えば、閾値より濃い色の画素は黒画素、その閾値より薄い色の画素は白画素とする処理である。二値画像を生成する方法としては、その後の文字認識が可能な画像が生成されるであれば二値化処理の方法は問わない。例えば、文書画像全体のヒストグラムから閾値を決定して二値画像を作成する方法でよい。
S403において文書画像解析部310は、文書画像処理として、生成された二値画像に対して罫線除去を行う。罫線除去とは、二値画像内の罫線を検出し、罫線を二値画像から削除する処理である。除去対象の罫線としては、破線や実線、横方向や縦方向の罫線が存在する文書であれば、同様に除去する。
S404において文書画像解析部310は、罫線除去された二値画像に対して文字認識処理を行う。S404の文字認識処理の結果、文字認識結果情報302に含まれる文字認識結果500が生成される。文字認識結果500は、画像データと関連付けてRAM103に記憶される。
図5は、文字認識結果500の例を示す図である。図5の文字認識結果500には、図2の請求書200をSCNU110等で読み取ることで得られた画像データを文字認識処理した結果が保持されているものとして説明する。文字認識結果500のレコード(テーブルの各行)には「文字認識結果ID」、「文書画像内位置サイズ」、「認識文字列(最尤候補文字列)」がレコード単位で対応付けられて管理されている。
「文字認識結果ID」は識別用のID値を保持する列である。「認識文字列」は文字認識処理した結果得られた文字列のテキストデータを保持する列である。「文書画像内位置サイズ」は認識文字列を構成するそれぞれの文字の画像内の位置およびサイズを保持する列である。
文字認識結果500における「文字認識結果ID」の「T1」が含まれるレコードには、図2の文書タイトル201の領域に対して文字認識を行った結果が保持されている。同様に、「T2」のレコードには発行日202を文字認識した結果、「T3」と「T4」とのレコードには請求元203を文字認識した結果が保持されている。「T7」と「T8」とのレコードには請求先204を文字認識した結果が保持されている。「T10」のレコードには請求金額205を文字認識した結果が保持されている。「T14」のレコードには明細206を文字認識した結果が保持されている。「T40」と「T41」とのレコードには振込先208を文字認識した結果が保持されている。「T42」のレコードには広告209を文字認識した結果が保持されている。
文字認識処理を行った結果、ある文字画像が示す文字列として、複数の候補の文字または文字列が見つかる場合がある。この場合、図5には図示しないが、それぞれの候補である文字や部分文字列の文字コードと、文字認識時の文字画像と候補の文字コードが示す文字との類似度などを基にした尤度と、の対データが保持されている。最も尤度が高い、即ち文字画像と類似度が最も高い文字コードが示す文字を最尤文字と呼び、最尤文字だけで構成された文字列を最尤候補文字列と呼ぶ。図5(a)の「認識文字列」には、複数候補の文字のうち、最尤候補文字列が保持されている。
S405において特定情報抽出部320は、文字認識結果情報302に対して、文書分類処理を行う。さらに、特定情報抽出部320は、抽出対象の項目(抽出項目)の選択をする抽出項目選択処理を行う。
文書分類処理は、文字認識結果情報302内の文字認識結果500、および文字認識結果情報302内の文書画像の配置(レイアウト)から、スキャン画像301を得るためにスキャンされた文書の種類を選択する処理である。例えば、スキャンの対象となった文書の種類を、レシート、領収書、請求書、納品書、報告書、見積り書等から選択する。そして、選択された文書の種類に応じた抽出項目を選択する。例えば、選択された文書の種類が請求書であった場合、抽出項目は、請求書に紐づけられた、請求金額、日付、および請求元の会社名として選択される。
文書分類データ(抽出項目データ)322は、文書分類を行うために使用するデータベースである。このデータベースには、文書の種類ごとに、文書の記載内容と、文書の配置(レイアウト)に関する情報と、文書の種類に応じて決められた抽出項目の情報と、を格納しているデータベースである。特定情報抽出部320は、文書分類データ322を用いて、スキャン画像の文書の種類を選択して、抽出項目を選択することができる。
S406において特定情報抽出部320は、項目名候補および項目値候補の文字列を抽出する処理を、S405で選択された抽出項目ごとに文字認識結果500に対して行う。この処理は、項目名項目値決定処理の一部である。
S407において特定情報抽出部320は、S406で得られた項目値候補を1つに絞り込むことで、ユーザに提示する項目値を決定する処理を行う。この処理は抽出項目ごとに行われる。S407では、文字認識の誤りの修正、および省略表現、異表記、または値の記載形式(文字パタン)違い等の記載形式を統一する文字辞書パタン突合処理も行われる。本ステップの処理の結果、全抽出項目の項目値を決定する処理が行われるが、本ステップの処理の結果、項目値を決定できないこともある。本ステップの処理の詳細は後述する。
S408において特定情報修正部330は、項目値情報303の内容を表す修正確認画面(図10参照)を表示部109に表示する制御を行い、ユーザから項目値の確認または修正を受ける。ユーザによる項目値の修正と、その修正内容から、文字認識誤りパタン情報を抽出し、これを利用できるように登録する。
S409において特定情報修正部330は、ユーザの確認及び修正が反映された抽出項目の正しい項目値の情報である文書抽出情報304を出力する。出力された文書抽出情報304は、文書抽出情報利用部340によって利用される。
[項目名候補および項目値候補の抽出処理の説明]
S406の項目名候補および項目値候補を抽出する処理の具体例を説明する。S406では特定情報抽出部320は、項目値の条件(項目値制約)を満たす文字列を文字認識結果500から探索して項目値候補として抽出する。また、項目名の条件(項目名制約)を満たす文字列を文字認識結果500から探索して項目名候補として抽出する。この処理を抽出項目ごとに行う。
S406の項目名候補および項目値候補を抽出する処理の具体例を説明する。S406では特定情報抽出部320は、項目値の条件(項目値制約)を満たす文字列を文字認識結果500から探索して項目値候補として抽出する。また、項目名の条件(項目名制約)を満たす文字列を文字認識結果500から探索して項目名候補として抽出する。この処理を抽出項目ごとに行う。
図6は、項目名・項目値制約データ324の一例を示すテーブルである。項目名候補および項目値候補の探索は、図6の項目名・項目値制約データ324に含まれる「項目名制約」、「項目値制約」を用いて行う。図6のレコード(テーブルの各行)には「抽出項目ID」、「抽出項目名称」、「項目名制約」、「項目値制約」、「関係制約」がレコード単位で対応付けられて管理されている。
「抽出項目ID」の列には抽出項目を識別するためのID値が保持されている。「抽出項目名称」の列には、抽出項目の名称が保持されている。
「項目名制約」の列には、夫々の抽出項目の項目名候補を文字認識結果500から検索する際の条件である項目名制約が保持されている。「項目値制約」の列には、夫々の抽出項目の項目値候補を文字認識結果500から検索する際の条件である項目値制約が保持されている。例えば、項目値または項目名を示す文字種または用語等が保持されている場合は、文字認識結果500から該当する用語または文字種が含まれるかが探索されることになる。または、文書画像内における絶対位置または、項目名に対する項目値の相対位置(配置)等も項目名制約または項目値制約として含まれることがある。
図6のテーブルにおける「抽出項目ID」が「E1」のレコードは、「日付」の項目の項目名および項目値を抽出するための条件が保持されている。同様に、「E2」のレコードには「請求元」の会社名の項目に係る情報を抽出するための条件、「E3」のレコードには「請求金額」の項目に係る情報を抽出するための条件が保持されている。
「抽出項目ID」が「E1」のレコードにおいて、「項目名制約」の列には、「発行日」または「請求日」が保持されている。このため、日付の項目名候補は、「発行日」または「請求日」の文字列を文字認識結果500から探索することで抽出されることなになる。
「抽出項目ID」が「E1」及び「E3」のレコードの「項目値制約」には、正規表現による文字パタンが保持されている。「E1」のレコードの「項目値制約」には日付を示すパタンが保持されている。「E3」のレコードの「項目値制約」には金額を表すパタンが保持されている。このため、日付および請求金額の項目値候補は、文字パタンに該当する文字列を文字認識結果500から探索することで抽出される。図2の請求書200の場合、請求金額205に記載された金額を示す文字列などが請求金額の項目値候補として抽出されることになる。また、文字列「2020年11月12日」が日付の項目値候補のとして抽出されることになる。
「抽出項目ID」が「E2」の請求元のレコードの「項目値制約」には、/法人格表現/が保持されている。この法人格表現は、辞書・文字パタンデータ327に含まれる「株式会社」等の会社名に出現しやすい文字列および文字パタンを含む表現である。このため例えば、「株式会社」を含む文字列が文字認識結果500から探索されて、請求元の項目値候補として抽出される。また、「E2」のレコードの「項目値制約」には、<会社名辞書>が指定されている。これは会社名データ328に登録された会社名を文字認識結果500から探索して、文字認識結果500に会社名データ328に登録された会社名があれば、その会社の文字列が請求元の項目値候補として抽出されることになる。図6のテーブルの「関係制約」の列の情報については次のS407で用いられる条件であるため後述する。
図7(a)は、図2の帳票文書のスキャン画像に対してS406の処理の結果、抽出された項目名候補の情報をテーブル形式でまとめた図である。即ち、図6のテーブルに含まれる項目名制約に従い抽出された項目名候補の例を示す図である。
図7(a)のテーブルにおける一番右の列の「項目名候補文字列」には、抽出された項目名候補を示す文字列が保持される。一番左の列の「項目名候補項目ID」は、識別用のID値を保持する列である。その右の「抽出項目ID」は、抽出された項目名候補の抽出項目IDを保持する列である。図6の項目名・項目値制約データ324の「抽出項目ID」に保持されているいずれかのID値が保持される。
「文字認識結果ID」には、図5の文字認識結果500の「認識文字列」のうち、図7(a)の「項目名候補文字列」に保持されている文字列が含まれる認識文字列の文字認識結果IDが保持される。「文書画像内位置サイズ」は、「項目名候補文字列」に保持されている文字列を構成するそれぞれの文字の画像内の位置およびサイズを保持する列である。
図7(a)のテーブルの「項目名候補ID」が「K1」のレコードは、「抽出項目ID」が「E1」である「日付」の抽出項目の項目名候補の情報が保持されている。当該レコードには、項目名候補の文字列「発行日」と、「発行日」が含まれていた文字認識結果500のレコードの「文字認識結果ID」である「T2」と、が保持されている。「項目名候補ID」が「K2」のレコードについても同様である。
「請求元」の項目名候補は、項目名制約を満たす文字列が文字認識結果500に含まれていなかったため抽出されていない。このため、「抽出項目ID」が「E2」を含むレコードは、図7(a)のテーブルには生成されていない。
図7(b)は、図2の帳票文書のスキャン画像に対してS406の処理の結果、抽出された項目値候補の情報をテーブル形式でまとめた図である。即ち、図6のテーブルに含まれる「項目値制約」に従い抽出された項目値候補の例を示す図である。テーブルの構成は、図7(a)のテーブルと同じである。
図7(b)の「項目値候補ID」が「V1」のレコードには、「抽出項目ID」が「E1」である「日付」の項目値候補の情報が保持されている。「V1」の項目値候補では、図6の「抽出項目ID」が「E1」のレコードの「項目値制約」に保持されている正規表現を満たす文字列が抽出されている。またその項目値候補の文字列の情報は、文字認識結果500の「文字認識結果ID」が「T2」のレコードに保持されていることを示している。
図7(b)の「項目名候補ID」が「V2」以降のレコードについても図7(b)で省略されて図示していないもの含め「V1」と同様である。「項目値候補ID」が「V2」~「V6」のレコードには、請求元(「抽出項目ID」が「E2」)の項目値候補の情報が保持されている。即ち、S406の処理の結果、請求元に対応する項目値候補の候補文字列が複数抽出されたことを示している。このように、項目値候補が複数抽出されることがあるため、次に詳細を説明するS407で1つの文字列に絞る処理が行われる。
[項目値候補から項目値を決定する処理フロー]
図8は、図4のS407の処理の詳細を示すフローチャートである。図8を用いて、S406で抽出された項目値候補を1つに絞り込み、各項目の項目値を決定する処理を説明する。図8のフローチャートの処理(S407の処理)は、抽出項目から処理対象の項目を選択して、処理対象の項目ごとに行われる。抽出項目とは、図4のS405で選択された項目である。本実施形態では、抽出項目は、「日付」「請求元」「請求金額」であるものとして説明する。
図8は、図4のS407の処理の詳細を示すフローチャートである。図8を用いて、S406で抽出された項目値候補を1つに絞り込み、各項目の項目値を決定する処理を説明する。図8のフローチャートの処理(S407の処理)は、抽出項目から処理対象の項目を選択して、処理対象の項目ごとに行われる。抽出項目とは、図4のS405で選択された項目である。本実施形態では、抽出項目は、「日付」「請求元」「請求金額」であるものとして説明する。
S801において特定情報抽出部320は、処理対象の項目における項目値候補が少なくとも1つ抽出されたか判定する。この判定の結果に応じて処理を分岐する。判定方法は、S406の処理結果として得られる図7(b)の項目値候補の情報に、処理対象の項目の抽出項目IDの値が含まれているかに基づき判定すればよい。項目値候補が抽出されている場合(S801がYES)、S802へ進む。
S802において特定情報抽出部320は、全ての項目値候補に対し、辞書文字パタン突合処理を行う。辞書文字パタン突合処理は、文字認識誤りパタン辞書326、項目値の辞書・文字パタンデータ327、および会社名データ328を利用して、項目値候補に含まれる文字認識の誤りを修正し、かつ、省略表現、異表記を元の記載形式に戻す処理を行う。本ステップの処理を行うことにより、項目値候補の形式の統一をする。
文字認識誤りパタン辞書326は、処理対象の文字を文字認識処理した結果、誤認識された場合の典型的なパタン(パターン)を保持している。スキャンの対象となった紙原稿の劣化、または紙原稿のスキャン時の環境等の影響により、文字認識結果500には誤って認識された文字列が含まれていることがある。文字認識結果500に誤りが含まれているとスキャン画像から抽出した情報の利用が困難になってしまう。このため、文字認識誤りパタン辞書326を用いて、文字認識結果の誤りを修正する行い、文字認識結果500の精度を向上させる。文字認識誤りパタン辞書326に含まれる典型的な誤認識のパタンは、事前に、様々なサンプルデータでの文字認識を行わせ、その正解結果と文字認識結果を比べることで生成されている。
辞書・文字パタンデータ327は、抽出対象の項目の項目値候補の形式を統一するための情報を保持している。項目値を示す文字列が事前にわかっている又は予想できる場合、その文字列を事前に作成して、辞書・文字パタンデータ327はその文字列を保持する。辞書文字パタン突合処理では、辞書・文字パタンデータ327を利用して、文字認識結果から項目値に該当する文字列を推定して、項目値候補の補正を行う。例えば、カタカナまたは平仮名の文字列は漢字に変換される。
会社名データ328は、自社の会社名および主要取引先の会社名を保持するデータベースであり、会社名の検索および文字認識結果の補正を行うために用いられる。
この結果、例えば、図7(b)の「項目値候補文字列」に保持されている文字列のうち、「項目値候補ID」が「V5」のレコードの「AAAカブシキカイシャ」は「AAA株式会社」に補正される。この結果、図7(b)の「項目値候補ID」が「V5」の項目値候補は、「項目値候補ID」が「V2」および「V6」の夫々のレコードに保持されている項目値候補と同じ文字列として抽出されたことになる。なお、辞書文字パタン突合処理は、S404で文字認識処理を行った後、S407の項目値の決定処理を行う前に予め行われていてもよい。
S803において特定情報抽出部320は、処理対象の項目の関係制約に、固定位置によって項目値候補を絞り込む条件(制約)が含まれるかを判定する。
図6を用いて説明した項目名・項目値制約データ324には抽出項目ごと「関係制約」が保持されている。項目値候補うち、「関係制約」に保持されている制約(条件)を満たす文字列が、最終的な項目値として抽出される。関係制約に保持されている制約は、例えば、項目値に該当する記載部分の文書上での相対的な位置に係る制約(相対位置制約)、または項目値の文書上での固定位置に係る制約(固定位置制約)等が保持されている。
図6の項目名・項目値制約データ324には、固定位置制約は含まれていない。固定位置制約によれば、例えば、スキャン画像内の所定の位置にある項目値候補を項目値と決定される。このため、固定位置制約としては、例えば、文書内の位置情報が保持される。関係制約に、固定位置制約と相対位置制約が含まれる場合は、固定位置制約を満たす文字列が優先して項目値として決定される。
処理対象の項目の関係制約に固定位置制約がある場合は、S813に進む。S813において特定情報抽出部320は、スキャン文書中の固定位置制約で指定された位置にある文字列を処理対象の項目の項目値として決定する。なお、指定された位置から文字列が認識されていない場合など、固定位置制約によって項目値候補を絞り込めなかった場合、図8では図示していないが、例えば、S804に進むことになる。
「関係制約」に固定位置制約が含まれない場合(S803はNO)はS804へ進む。S804において特定情報抽出部320は、処理対象の項目の「関係制約」に、相対位置制約が含まれるかを判定する。相対位置制約がある場合(S804がYES)、S805に進む。
図6の「抽出項目ID」が「E1」および「E3」のレコードにおける「関係制約」に含まれる、右({項目名},{項目値})は相対位置制約の一例である。これは、抽出対象の項目の項目値候補のうち、項目名候補を示す文字列の右側に相対的に位置する項目値候補を項目値として決定するように、項目値を相対位置で決定するための制約である。
また、「抽出項目ID」が「E2」のレコードの「関係制約」には、相対位置制約に加え、固定位置の制約でもなく、相対位置の制約でもない、尤度により項目値を絞りこむための条件である{項目値}#(上,回数多)が含まれている。{項目値}#(上,回数多)は後述する。
S805において特定情報抽出部320は、処理対象の項目の項目値候補から1つ項目値候補を選択する。そして、選択された項目値候補と項目名候補との位置関係を調べ、項目値候補と項目名候補との位置関係が関係制約に保持された相対位置制約の位置関係を満たすかを判定する。この判定を全ての項目値候補について行う。
また、関係制約に複数の相対位置制約が含まれている場合は、そのすべての相対位置の条件について条件を満たすかを判定して、条件を満たす項目名候補と項目値候補との組み合わせがあるかの判定を行うことになる。
S806において特定情報抽出部320は、S805の処理結果、相対位置制約を満たす項目値候補と項目名候補との組み合わせがあったかを判定する。相対位置制約を満たす項目名候補と項目値候補との組がない場合(S806がNO)はS807に進む。または相対位置制約がないと判定された場合(S804がNO)もS807へ進む。
S807において特定情報抽出部320は、処理対象の項目に排除項目値があるかを判定する。排除項目値とは、関係制約を満たす項目値候補であっても項目値として決定しない文字列である。例えば、処理対象の項目が「請求元」である場合、ユーザの会社の名称は請求元の項目値とはなり得ない。このため、例えば、抽出項目が「請求元」の排除項目値としてユーザの会社名である「株式会社○○」が登録されている。
処理対象の項目に排除項目値が登録さている場合(S807がYES)、S808に進み、S808において特定情報抽出部320は、排除項目値に該当する項目値候補の文字列を、項目値候補から排除する処理を行う。S808の処理が終了したら、S809に進む。排除項目値が登録されていない場合(S807がNO)、S808はスキップしてS809に進む。
次のS809からS811は項目名候補がない場合でも項目値候補を1つに絞り込む処理である。
S809において特定情報抽出部320は、現在の項目値候補の個数が何個であるかを判定し、項目値候補の個数によって処理を切り替える。項目値候補の数が1より多い(項目値候補の数が2以上)の場合はS810へ進む。
S810において特定情報抽出部320は、複数の項目値候補から項目値候補を1つに絞り込むことで、ユーザに提示する項目値を決定する。決定方法としては、個々の項目値候補に対して尤度を算出する。例えば、複数の評価軸の値を含むベクトル等の特徴量を尤度として算出する。
項目値候補に誤って文字認識された文字列が含まれることがあることから、なるべく類似度が高いものを選ぶことが好ましい。このために、文字認識の誤りを考慮した項目値候補の文字列の内容の単語、用語の含有状況、および文字パタンとしての整合度を評価軸の値として用いてもよい。また、特徴量に含まれる評価軸の値として、項目値候補のスキャン文書内の位置および項目値候補の文字の大きさのような文書内のレイアウトに関する値も用いてもよい。
また、処理対象の項目の項目値が会社名の場合であって会社名データ328に主要取引先の会社名が記載されている場合は項目値である可能性が高い。このため、ユーザに対する重要度を会社名データ328に基づき決定して特徴量に含まれる評価軸の値として用いてもよい。また、同じく処理対象の項目の項目値が会社名の場合、文書等をスキャンして作業を行う担当者と会社の出現傾向に相関があることを利用して、その担当者が誰かということを評価軸の値として使用してもよい。
また、請求元の会社名、または重要な金額情報などのように、項目値は文書内に複数箇所に記載されることが多い傾向がある。このため本実施形態では、スキャン文書内の項目値候補の文字列の出現回数を、その項目値候補の特徴量を算出するための評価軸の値として使用する。なお、文書内に同一の会社が異表記で複数箇所に記載された場合でも、S802の処理により同じ会社名が複数箇所で出現したものとして扱われることになる。
なお、例示した評価軸を全て用いて特徴量を算出しなくてもよい。少なくとも一部の評価軸を用いて特徴量を算出してもよい。例えば、特徴量はスカラ値でもよく、例えば、出現回数をそのまま尤度として使用してもよい。
各項目の尤度の算出方法は、項目名・項目値制約データ324の関係制約に含まれている。図6の「E2」のレコードの「関係制約」に保持されている{項目値}#(上,回数多)は、その一例である。この例では、評価軸の値として、レイアウトに関する値と、出現回数の2つを用いて特徴量を算出することを示している。「上」は、文書内の所定の位置より上にある項目値候補に評価軸の値が与えられることを示している。「回数多」は、出現回数が一番多い項目値候補に評価軸の値が与えられることを示している。
なお、図6に示すように関係制約には尤度の算出方法が含まれていない場合もある。この場合は、例えば、尤度による項目値候補の絞り込みはできないためS809の判定で、項目値候補の個数が無しと判定すればよい。
S811において特定情報抽出部320は、S810で算出した尤度に基づき評価値を算出し、評価値が最も高い項目値候補を、ユーザに提示する項目値として決定する。例えば、単純なベクトルの各軸に重みをかけた状態でのノルム(内積値)の算出を行うことで最終的な評価値を算出する。重みは大量の文書に対する統計的に求める方法や、機械学習によって学習したものを用いる方法が効果的である。また、S811で算出した尤度をスカラで算出した場合は、尤度が最も大きい値となった項目値候補を、ユーザに提示する項目値として決定してもよい。
S811の処理が終了したらS812に進む。S809で項目値候補の個数が1と判定した場合もS812へ進む。また、関係制約に含まれる相対関係制約を満たす項目値候補があった場合(S806がYES)も、S812に進む。
S812において特定情報抽出部320は、これ以前の処理で1つ残った、または1つに絞り込まれた項目値候補を、抽出項目の項目値として決定する。S812の処理が終了したらS814に進む。また、S406で項目値候補が抽出されなかった場合(S801がNO)、またはS809において項目値候補の個数が0と判定された場合、またはS813の処理が終了した場合もS814に進む。
S814において特定情報抽出部320は、処理対象の項目の項目値を決定できたかを判定する。処理対象の項目の項目値を決定できた場合(S814がYES)本フローチャートは終了となる。処理対象の項目の項目値を決定できなかった場合(S814がNO)、S815に進み、特定情報抽出部320は、項目値に該当する文字認識結果情報は該当なしであることを示す情報を作成する。S815の処理後、本フローチャートは終了となる。
[抽出項目の項目値の例]
図9は、図7の項目名候補および項目値候補に対して、図8で詳細を説明したS407の項目値の決定処理を行った結果をテーブル形式でまとめた図である。S407の項目値の決定処理の具体例について図9を用いて説明する。
図9は、図7の項目名候補および項目値候補に対して、図8で詳細を説明したS407の項目値の決定処理を行った結果をテーブル形式でまとめた図である。S407の項目値の決定処理の具体例について図9を用いて説明する。
図9(a)は、S801~S811の処理の結果をまとめたテーブルである。図9(b)は、S812の項目値の絞り込み処理の結果を、抽出項目ごとにテーブルである。図9(a)、図9(b)は、抽出項目である「日付」「請求元」「請求金額」の処理結果をレコードごとにまとめている。
はじめに、「抽出項目ID」が「E1」である「日付」の抽出項目を処理対象とした場合の項目値を決定する処理について説明する。図9(a)において、「抽出項目ID」として「E1」が含まれるレコード(行)には、「日付」の項目を処理対象とした場合の処理結果がまとめられている。図9(a)に示すように、「日付」の項目名候補の文字列は、図7(a)の項目名候補をまとめたテーブルの「項目名候補ID」が「K1」のレコードに保持されていることを示している。また、「日付」の項目値候補の文字列は、図7(b)の項目値候補をまとめたテーブルの「項目名候補ID」が「V1」のレコードに保持されていることを示している。また「関係制約」には、項目値候補を絞り込むために用いられた条件が保持されており、図9(a)に示すように、相対位置制約が用いられたことを示している。
このため、処理対象の項目が「日付」である場合の図8のフローを説明すると、項目値候補は抽出されたためS801の判定ではYESと判定される。また、S803の判定では、関係制約に固定位置制約は無いためNOと判定される。また、S804の判定では、関係制約には、相対位置を用いる条件が含まれるためYESと判定されS805に進む。
図2の請求書200を見ると、項目値候補の文字列「2020年11月12日」は、項目名候補の文字列「発行日」の右にあり、「関係制約」に含まれる相対位置制約を満たしている。このため、S806ではYESと判定され、S812では、「項目値候補ID」が「V1」の項目値候補が最終的に項目値として割り当てられる。その結果、図9(b)のテーブルが示すように、「抽出結果ID」が「R1」のレコードが生成され、「抽出項目ID」が「E1」の項目値として、「2020年11月12日」が得られたことが示されている。
なお、抽出項目が「日付」の場合は、S810に進むことはなく項目値候補の尤度は算出されないため、図9(a)のテーブルにおける「抽出項目ID」が「E1」のレコードの「項目値尤度」の列には(なし)が保持されている。
「抽出項目ID」が「E3」である「請求金額」の抽出項目を処理対象とした場合の項目値を割り当てる処理結果についても、「日付」の項目と同様である。「日付」と異なるのは、図9(a)に示すように、「項目値候補ID」が「V7」の文字列、「V8」の文字列等の複数の文字列が項目値候補として得られていることである。図2の請求書200を見ると、「項目値候補ID」が「V7」の文字列「314,622円」は、項目名候補の文字列「ご請求金額」の右にあり、「関係制約」に含まれる相対位置制約を満たしている。このため、S806ではYESと判定され、S812では、「項目値候補ID」が「V7」の項目値候補が最終的に項目値として割り当てられる。その結果、図9(b)のテーブルが示すように、「抽出結果ID」が「R3」のレコードが生成され、「抽出項目ID」が「E3」の項目値として、「314,622円」が得られたことが示されている。
最後に、「抽出項目ID」が「E2」である「請求元」の項目を処理対象とした場合の項目値を決定する処理について説明する。S406の結果得られた項目値候補は、図9(a)に示すように「項目値候補ID」が「V2」~「V6」の文字列である。処理対象の項目が「請求元」である場合の図8のフローを、図9を参照して説明する。他の抽出項目と同様にS801からS805へ進むことになる。なお、S802の処理の結果、「項目値候補ID」が「V2」、「V5」、および「V6」の項目値候補は同じ文字列「AAA株式会社」である項目値候補として補正されることになる。
処理対象の項目が「請求元」の場合は、項目名候補が抽出されていないため相対位置制約では項目値候補が絞りこめない。このため、S806ではNOと判定されてS807へ進む。
「請求元」の排除項目値としてはユーザの自社名が登録されているものとする。この場合、抽出項目の排除項目値として、会社名データ328から自社名「株式会社〇〇」が取得される。このためS807ではYESと判定される。そして、S808では、図7(b)に示すように、「項目値候補ID」が「V3」の項目値候補を除外できる。それでも項目値候補の数は4つあるため、S809の判定の結果S810に進む。
S810では、「関係制約」に含まれる{項目値}#(上,回数多)に基づき、「項目値候補ID」が「V2」または「V4」の項目値候補の尤度が算出される。なお、「項目値候補ID」が「V5」と「V6」の項目値候補については「V2」と同じ文字列である。
関係制約{項目値}#(上,回数多)は、前述したとおり、尤度の評価軸は「上」、および「回数多」であることを示している。「項目値候補ID」が「V2」および「V3」の項目値候補は、文書内の所定の位置よりも上方に位置しているため「上」の評価軸の値が与えられている。また、「項目値候補ID」が「V2」の項目値候補は、「V2」の他に「V5」と「V6」としても出現しているため最も多い3回の出現回数であることから、「回数多」の評価軸の値が与えられている。
従って、S811では、「項目値候補ID」が「V2」と「V3」とのベクトルが形成されノルムを算出して、最尤の項目値候補「V2」が選ばれることになる。またS812では「項目値候補ID」が「V2」の文字列が項目値として割り当てられることになる。この結果、図9(b)のテーブルが示すように、「抽出結果ID」が「R2」のレコードが生成され、「抽出項目ID」が「E2」の項目値として「AAA株式会社」が得られたことが示されている。
[修正確認画面について]
図10は、S408において特定情報修正部330が表示制御を行うことによって情報処理装置100の表示部109に表示される修正確認画面の一例を示す図である。図10の修正確認画面は、例えば、マルチウィンドウのGUI環境で使用される。ユーザは、修正確認画面を介して、S407によって決定された抽出項目ごとの項目値を、スキャン対象となった文書と照らし合わせて確認することができる。また、ユーザは、決定された項目値に誤りがあった場合、修正確認画面から項目値を修正することができる。
図10は、S408において特定情報修正部330が表示制御を行うことによって情報処理装置100の表示部109に表示される修正確認画面の一例を示す図である。図10の修正確認画面は、例えば、マルチウィンドウのGUI環境で使用される。ユーザは、修正確認画面を介して、S407によって決定された抽出項目ごとの項目値を、スキャン対象となった文書と照らし合わせて確認することができる。また、ユーザは、決定された項目値に誤りがあった場合、修正確認画面から項目値を修正することができる。
修正確認画面は、ウィンドウ1000内に表示される。タイトル1001は、ウィンドウ1000のタイトルであり、決定された項目値(抽出情報)の修正または確認をユーザから受け付けるための画面であることを示している。スキャン画像領域1010は、文書をスキャンして得られた画像が表示される領域である。枠線1011は、スキャン画像領域1010内の作業対象の領域を示す。領域1020は、S407の処理の結果決定された夫々の抽出項目の項目値を表示する領域である。ユーザは、領域1020に表示された内容を確認し、項目値を修正することができる。スクロールバー1021は、領域1020内に含まれる抽出項目が複数あって表示しきれない場合に操作されるスクロールバーである。ユーザは、スクロールバー1021を操作することで、領域1020内のすべての抽出項目の確認および修正をすることができる。
領域1030、1040、1050は、個々の項目値を表示する領域である。領域1030は、「請求金額」の抽出項目に関する領域であり、領域1040は「発行日」の抽出項目に関する領域であり、領域1050は、「請求元」の抽出項目に関する領域である。
領域1030、1040、1050内の構成について領域1030を例に説明する。領域1031は抽出項目の名称を表示する領域であり、領域1030が「請求金額」の項目値を表示する領域であることを示している。領域1032は、項目値に該当する文字列が含まれるスキャン画像内の位置およびサイズに基づき切り抜かれたスキャン画像の部分画像を表示する領域である。領域1040、1050についても同様に、領域1041、1051は、それぞれ図2の請求書200の部分画像を表示している。
領域1033は、S407で決定された項目値である文字列を表示する領域である。領域1033に表示された文字列は同時に編集可能に構成されているため、ユーザは領域1033の文字列を修正することができる。領域1033に表示された文字列をユーザが修正しなかった場合は、S407の処理によって項目値が適切に決定できたことになる。ユーザが表示された文字列を修正した場合は、正しい文字列に項目値が修正されたことになる。
図10の確認修正画面では、ユーザは、修正する抽出項目として領域1030の「請求金額」を選択している状態にある。このため、領域1030は太枠で囲まれるように表示されて選択状態であるように表示されている。また、領域1032に表示されている部分画像が切り取られた領域は、スキャン画像領域1010内の枠線1011で表して、部分画像のスキャン画像における位置をユーザが確認しやすいように表示している。また、領域1033には、表示された「請求金額」の項目値を示す文字列が編集可能な状態であることを示すために文字カーソル1034が表示されている。文字カーソル1034があるため、領域1033に含まれる文字列はユーザによって修正ができる状態にある。これは、領域1040、1050についても同様であるが、図10では、領域1040、1050は選択された状態ではないため、領域1040に含まれる領域1042、領域1050に含まれる領域1052では、文字カーソルはない状態で表示されている。
一時保存ボタン1002は、ユーザの確認作業を一時的に終了するためにウィンドウ1000での作業内容を保存してウィンドウ1000を閉じるためのボタンである。一時保存ボタン1002が押下された後、ユーザが所定の操作を行うことでウィンドウ1000を戻してユーザの確認作業の再開を行うことができる。完了ボタン1003は、ウィンドウ1000での作業内容を作業結果として保存して、ウィンドウ1000を閉じるためのボタンである。
以上説明したように本実施形態では、文書から抽出したい項目の項目名候補および項目値候補を文字認識結果から検索を行って抽出を行う。その際に、項目名候補が抽出できなかった場合、項目値候補が複数抽出あった場合でも、抽出したい項目値を精度よく抽出することを可能にする。これにより、文書からの特定の情報を抽出することができるため、その情報を利用する業務の利用者の作業の効率を高めることができる。このため、利用者の作業の時間短縮に貢献し、その作業負担を軽減に貢献できる。
<第2の実施形態>
図2の請求書200には、請求の内訳を表示するための明細206が含まれており、明細206中に、品名の一部として会社名を示す文字列「□□デザイン」が記載されている。図7(b)の項目値候補の抽出結果の一覧が示すように、「項目値候補ID」の「V4」のレコードには、この「□□デザイン」の文字列が請求元の項目値候補として抽出されてしまっている。このように、品名等にも会社名を示す文字列が含まれていることがあり、品名の会社名は、請求元、請求先とは関係のない会社名であることもある。また、品名の会社名は、請求書内に何度も繰り返し記載される可能性がある。このため、第1の実施形態のように項目値候補を決定するために出現回数を尤度の一部として用いると、品名の会社名の尤度が高く算出されてしまう虞があり、誤った結果を導いてしまう虞がある。
図2の請求書200には、請求の内訳を表示するための明細206が含まれており、明細206中に、品名の一部として会社名を示す文字列「□□デザイン」が記載されている。図7(b)の項目値候補の抽出結果の一覧が示すように、「項目値候補ID」の「V4」のレコードには、この「□□デザイン」の文字列が請求元の項目値候補として抽出されてしまっている。このように、品名等にも会社名を示す文字列が含まれていることがあり、品名の会社名は、請求元、請求先とは関係のない会社名であることもある。また、品名の会社名は、請求書内に何度も繰り返し記載される可能性がある。このため、第1の実施形態のように項目値候補を決定するために出現回数を尤度の一部として用いると、品名の会社名の尤度が高く算出されてしまう虞があり、誤った結果を導いてしまう虞がある。
そこで、本実施形態では、抽出対象としてふさわしくない位置等の情報を排除項目値とすることで、項目値候補を排除する方法を説明する。本実施形態については、第1の実施形態からの差分を中心に説明する。特に明記しない部分については第1の実施形態と同じ構成および処理である。
図11は、図8の処理フローで用いる除外項目値を決定する方法の一例を説明するための図である。図11のテーブルは、項目名・項目値制約データ324に含まれおり、本実施形態のS808で使用される。図11の「排除項目ID」が「X1」のレコードには、除外項目が「品名」の除外項目値である文字列を抽出するための情報が保持されている。「項目値制約」の条件を満たす文字列(除外項目の項目値候補)のうち、「関係制約」に保持されている条件を満たす文字列が、除外項目値として抽出される。
図11に示す通り、除外項目が「品名」の場合、項目名候補となる文字列は「項目名制約」に保持されているとおり「品名」の文字列である。また、項目値候補となる文字列は「項目値制約」の「*」が示すとおり全ての文字列である。そして「関係制約」が「表下」が示すとおり表中の項目値候補のうち、項目名候補の範囲下にある項目値候補を除外項目値として抽出すると指定されている。これにより、図2の明細206の表構造で記載された明細のうち、「品名」の下方向に該当する文字列は全て除外項目値として抽出される。即ち、図11の関係制約を用いて請求書200から除外項目値を抽出すると、「□□デザイン」が除外項目値として抽出されることになる。
例えば、S407で図7(b)に示す項目値候補が抽出された場合のS808では、図7(b)の「項目値候補ID」が「V4」の項目値候補が除外されることになる。よって、「抽出項目ID」が「E2」の請求元の項目を処理対象とした場合の項目値を絞り込む処理では、第1の実施形態とは異なり、「項目値候補ID」が「V4」の項目値候補は、尤度の計算対象から外すことができる。このように、本実施形態によればスキャンの対象の文書において抽出対象としてふさわしくない位置等の情報を排除することが可能となる。このため本実施形態によっても、利用者の作業の時間短縮に貢献し、その作業負担を軽減に貢献できる。
<その他の実施形態>
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 情報処理装置
310 文書画像解析部
320 特定情報抽出部
310 文書画像解析部
320 特定情報抽出部
Claims (11)
- 文書のスキャン画像に対し文字認識処理を行う文字認識手段と、
前記文字認識処理の処理結果から、特定の文字列を所定の項目に対応する項目値として決定するための候補文字列を抽出する抽出手段と、
前記候補文字列ごとの特徴量を算出して、前記特徴量に基づき前記特定の文字列を決定する決定手段と、を有し、
前記特徴量は、前記候補文字列が前記スキャン画像に出現した回数を少なくとも含む
ことを特徴とする情報処理装置。 - 前記特徴量は、複数の評価軸を含み、
前記決定手段は、
前記複数の評価軸のうちの1つの評価軸の値として前記回数を用いて、前記特徴量を算出する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記特徴量は、前記回数に基づくスカラ値である
ことを特徴とする請求項1に記載の情報処理装置。 - 前記決定手段は、
前記候補文字列のうち、前記スキャン画像における位置に基づき前記候補文字列を絞り込む処理を行い、前記位置によって前記候補文字列を1つに絞り込めない場合、前記特徴量に基づき前記特定の文字列を決定する
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。 - 前記決定手段は、
前記候補文字列と前記特定の項目の項目名に対応する文字列との相対的な配置に基づき前記候補文字列を絞り込む処理を行う
ことを特徴とする請求項4に記載の情報処理装置。 - 前記決定手段は、
前記候補文字列から除外する文字列に関する情報を保持しており、前記候補文字列から前記除外する文字列を除外した後に、前記特定の文字列を決定する
ことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。 - 前記除外する文字列は、前記文書内の明細に含まれる文字列である
ことを特徴とする請求項6に記載の情報処理装置。 - 前記特定の項目が前記文書の発行者である場合、前記除外する文字列はユーザの名称に係る文字列を含む
ことを特徴とする請求項6または7に記載の情報処理装置。 - 前記決定手段は、
同一の名称を異なる表記で表された文字列が前記候補文字列に含まれる場合、前記異なる表記で表された夫々の前記候補文字列を同一の文字列に変換する処理を行った後に、前記候補文字列が前記スキャン画像に出現した回数を決定する
ことを特徴とする請求項1から8のいずれか1項の情報処理装置。 - 文書のスキャン画像に対し文字認識処理を行う文字認識ステップと、
前記文字認識処理の処理結果から、特定の文字列を所定の項目に対応する項目値として決定するための候補文字列を抽出する抽出ステップと、
前記候補文字列ごとの特徴量を算出して、前記特徴量に基づき前記特定の文字列を決定する決定ステップと、を有し、
前記特徴量は、前記候補文字列が前記スキャン画像に出現した回数を少なくとも含む
ことを特徴とする情報処理方法。 - コンピュータを、請求項1から9のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021155408A JP2023046684A (ja) | 2021-09-24 | 2021-09-24 | 情報処理装置、情報処理方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021155408A JP2023046684A (ja) | 2021-09-24 | 2021-09-24 | 情報処理装置、情報処理方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023046684A true JP2023046684A (ja) | 2023-04-05 |
Family
ID=85778453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021155408A Pending JP2023046684A (ja) | 2021-09-24 | 2021-09-24 | 情報処理装置、情報処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023046684A (ja) |
-
2021
- 2021-09-24 JP JP2021155408A patent/JP2023046684A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10366123B1 (en) | Template-free extraction of data from documents | |
US9552516B2 (en) | Document information extraction using geometric models | |
US7668372B2 (en) | Method and system for collecting data from a plurality of machine readable documents | |
US8792141B2 (en) | Embedded form extraction definition to enable automatic workflow configuration | |
US10740602B2 (en) | System and methods for assigning word fragments to text lines in optical character recognition-extracted data | |
US20050289182A1 (en) | Document management system with enhanced intelligent document recognition capabilities | |
JP6357621B1 (ja) | 会計処理装置、会計処理システム、会計処理方法及びプログラム | |
JP4078009B2 (ja) | 帳票における文字記録領域の検出装置、帳票における文字記録領域の検出方法、記憶媒体及び帳票フォーマット作成装置 | |
US10679087B2 (en) | Systems and methods for merging word fragments in optical character recognition-extracted data | |
EP1946233A2 (en) | Form data extraction without customization | |
US11379690B2 (en) | System to extract information from documents | |
JP2021043478A (ja) | 情報処理装置、その制御方法及びプログラム | |
JP2018005462A (ja) | 認識装置及び認識方法 | |
CN112487859A (zh) | 信息处理装置、信息处理方法和计算机可读介质 | |
JP2019191665A (ja) | 財務諸表読取装置、財務諸表読取方法及びプログラム | |
JP6856916B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US20100023517A1 (en) | Method and system for extracting data-points from a data file | |
JP2023046684A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP6870159B1 (ja) | データ処理装置、データ処理方法及びプログラム | |
JP7408340B2 (ja) | 画像処理装置の制御方法、プログラム及び画像処理装置 | |
JP4466241B2 (ja) | 文書処理手法及び文書処理装置 | |
US20230140357A1 (en) | Image processing apparatus, image processing method, and non-transitory storage medium | |
JP2021144469A (ja) | データ入力支援システム、データ入力支援方法、及びプログラム | |
JP6682827B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP7484176B2 (ja) | 情報処理装置、情報処理システムおよびプログラム |