以下に図面を参照して、実施形態について説明する。図1は、帳票認識システムのシステム構成の一例を示す図である。
本実施形態の帳票認識システム100は、サーバ装置200、画像形成装置300、端末装置400を有する。本実施形態の帳票認識システム100において、サーバ装置200と、画像形成装置300と、端末装置400とは、ネットワークを介して接続される。本実施形態の帳票認識システム100は、情報処理システムの一例である。
また、本実施形態の端末装置400は、例えば、ネットワークを介して基幹システム500と接続される。基幹システム500とは、例えば、本実施形態の帳票認識システム100において帳票を認識した結果を用いて、特定の処理を行うシステムである。具体的には、例えば、基幹システム500は、会計システムや、見積もり作成システム等であっても良い。
本実施形態の帳票認識システム100において、サーバ装置200は、画像形成装置300のスキャナ機能によって読み取られた帳票の画像を示す画像データから、帳票に含まれる項目と項目の値とを抽出し、項目と項目の値とを対応付けたテキストデータとする。
以下の説明では、画像形成装置300のスキャナ機能によって読み取られた帳票の画像を帳票画像と呼び、帳票画像を示す画像データを帳票画像データと呼ぶ。
また、以下の説明では、帳票画像に含まれる項目と、この項目の値とを抽出し、項目と項目の値とをテキストデータに変換して対応付けることを、帳票認識と呼ぶ。
本実施形態のサーバ装置200は、記憶部210と、帳票認識処理部220とを有する。記憶部210には、帳票画像データベース230、業種判定データベース240、明細定義データベース250、認識結果データベース260が設けられている。
帳票画像データベース230は、帳票画像データが格納される。業種判定データベース240は、帳票の発行元の業種を判別する際に参照される情報が格納される。明細定義データベース250は、帳票認識処理部220による帳票認識を行う際に参照される明細定義情報が格納される。認識結果データベース260は、帳票認識処理部220による帳票認識の結果を示す情報である認識結果データが格納される。
本実施形態の帳票認識処理部220は、帳票画像データベース230に格納された帳票画像データを取得し、業種判定データベース240を参照して帳票の発行元の業種の判定と、参照すべき明細定義情報の特定を行う。そして、帳票認識処理部220は、明細定義データベース250において、特定された明細定義情報を用いて帳票認識を行い、その結果を認識結果データベース260へ格納する。明細定義情報とは、帳票に含まれる明細項目の項目名と項目名の記載位置を示す情報と、を含む。
ここで、本実施形態の帳票認識処理部220は、帳票認識を行う際に、明細定義データベース250に格納された、個社明細定義情報と、業種明細定義情報と、汎用明細定義情報と、を参照する。
本実施形態の汎用明細定義情報とは、一般的な帳票における明細項目名に対応する単語を定義した情報である。業種明細定義情報は、業種毎の帳票における明細項目名に対応する単語を定義した情報である。個社明細定義情報とは、帳票認識システム100を利用する利用者固有の帳票における明細項目名に対応する単語と帳票画像から抽出する情報を定義した情報である。業種判定データベース240と、明細定義データベース250の詳細は後述する。
本実施形態では、このように、帳票認識の際に、3種類の明細定義情報を用いることで、汎用的な帳票に加えて、帳票の明細部を認識することができ、帳票の認識の精度を向上させることができる。
以下に、帳票における明細部について説明する。帳票の明細部は、データの集計結果等を示す部分であり、明細項目毎に、同じ形式のデータが縦方向に繰り返し印刷された部分である。明細項目とは、明細部で集計されるデータの項目である。一般的な明細項目としては、商品名、数量、単価、金額等が含まれる。明細部の具体的例は後述する。
本実施形態の帳票認識システム100において、画像形成装置300は、スキャナ機能を有する複合機である。画像形成装置300は、コピー機能、FAX機能、スキャナ機能等を実現するためのアプリケーションが搭載されており、各機能と対応するアプリケーションを選択することで、これらの機能が実現される。
本実施形態の端末装置400は、帳票認識システム100を利用する利用者によって使用される。また、端末装置400には、サーバ装置200による帳票認識の結果が表示されても良い。
尚、本実施形態における利用者とは、例えば、帳票の発行元となる企業等である。より具体的には、例えば、利用者とは、帳票認識システム100が提供するサービスを利用するための契約を締結している事業所や企業、団体等である。
尚、図1の例では、サーバ装置200は、記憶部210内に4つのデータベースを有する構成としたが、これに限定されない。各データベースは、一部がサーバ装置200の外部装置に設けられていても良いし、各データベース全てが外部装置に設けられていても良い。
また、図1の例では、サーバ装置200が帳票認識処理部220を実現するものとしたが、これに限定されない。帳票認識処理部220は、複数の情報処理装置によって実現されても良い。
また、図1の例では、帳票認識システム100に含まれる画像形成装置300と端末装置400とは、それぞれ1台としているが、帳票認識システム100に含まれる画像形成装置300と端末装置400の台数は、任意の数であって良い。
次に、図2を参照して、本実施形態のサーバ装置200のハードウェア構成について説明する。図2は、サーバ装置のハードウェア構成の一例を示す図である。
本実施形態のサーバ装置200は、コンピュータによって構築されており、図2に示されているように、CPU201、ROM202、RAM203、HD204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)208、ネットワークI/F209、データバスB、キーボード211、ポインティングデバイス212、DVD-RW(Digital Versatile Disk Rewritable)ドライブ214、メディアI/F216を備えている。
これらのうち、CPU201は、サーバ装置200全体の動作を制御する。ROM202は、IPL等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。HD204は、プログラム等の各種データを記憶する。HDDコントローラ205は、CPU201の制御にしたがってHD204に対する各種データの読み出し又は書き込みを制御する。ディスプレイ206は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する表示部である。
外部機器接続I/F208は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F209は、通信ネットワークNを利用してデータ通信をするためのインターフェースである。データバスBは、図2に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
また、キーボード211は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス212は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ214は、着脱可能な記録媒体の一例としてのDVD-RW213に対する各種データの読み出し又は書き込みを制御する。尚、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F216は、フラッシュメモリ等の記録メディア215に対するデータの読み出し又は書き込み(記憶)を制御する。
本実施形態のサーバ装置200は、例えば、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)、ウェアラブルPC等であっても良い。
本実施形態の端末装置400は、演算処理装置と記憶装置とを有するコンピュータであり、例えば、タブレット型の端末装置や、スマートフォン等であっても良い。
次に、本実施形態のサーバ装置200の有する業種判定データベース240と明細定義データベース250について説明する。
図3は、業種判定データベースの一例を示す図である。本実施形態の業種判定データベース240は、各種の業種毎に設けられる。
業種判定データベース240では、業種と、帳票の発行元とが対応付けられている。図3の例では、業種「人材派遣」と、A社、B社、C社とが対応付けられている。したがって、A社、B社、C社は、人材派遣業を行っている組織であることがわかる。
次に、図4乃至図7を参照して、本実施形態の明細定義データベース250について説明する。図4は、帳票定義データベースに格納される明細定義情報の種類を示す図である。
本実施形態の明細定義データベース250には、個社明細定義情報251と、業種明細定義情報252と、汎用明細定義情報253と、が格納されている。尚、本実施形態の個社明細定義情報251は、第一の明細定義情報であり、業種明細定義情報252は、第二の明細定義情報であり、汎用明細定義情報253は、第三の明細定義情報である。
本実施形態の個社明細定義情報251とは、帳票の中でも、利用者が独自に設計した帳票に含まれる明細項目名と記載位置を定義した明細定義情報であり、利用者専用の明細定義情報である。個社明細定義情報251は、3つの明細定義情報のうち、最も尊重されるべき定義であり、最も優先度が高い明細定義情報である。
本実施形態の業種明細定義情報252は、帳票の中でも、各業界において一般的に利用される帳票に含まれる明細項目名と記載位置を定義した明細定義情報である。業種明細定義情報252の優先度は、3つの明細定義情報のうちの中間となる。
本実施形態の汎用明細定義情報253とは、帳票の中でも、複数の利用者により利用される汎用性の高い帳票に含まれる明細項目名と記載位置を定義した明細定義情報である。汎用明細定義情報253は、3つの明細定義情報のうち、最も優先度の低い明細定義情報である。
本実施形態の帳票認識処理部220は、この3つの明細定義情報を参照して、帳票画像データの認識を行う。したがって、本実施形態では、例えば、帳票画像データが、個社明細定義情報251において定義されていない明細項目名を含む帳票のものであった場合でも、業種明細定義情報252や汎用明細定義情報253で定義されていれば、この帳票画像データを認識できる。
尚、以下の説明では、請求書を帳票の一例として説明する。尚、帳票は、明細部を含むものであれば、どのような帳票であっても良い。具体的には、例えば、帳票は、納品書や見積書等であっても良い。
図5は、汎用明細定義情報の一例を示す図である。汎用明細定義情報253は、一般的な請求書の明細部で採用される明細項目名を定義するものであり、汎用明細定義情報253は、情報の項目として、項目名と、キーワードとを有し、両者は対応付けられている。
項目「明細項目名」の値は、請求書の明細部で用いられる明細項目の名称を示す。項目「キーワード」の値は、明細部の明細項目名と同義と見なされるキーワード(単語)を示す。
つまり、汎用明細定義情報253は、一般的な帳票で用いられる明細項目、帳票から明細項目として抽出するキーワードと、を定義した情報である。
図5の例では、明細項目名「商品名」は、「商品」、「製品」、「品名」等のキーワードと同義として扱われることを示している。また、図5の例では、明細項目名「金額」は、「金額」、「総額」、「合計」等のキーワードと同義として扱われることを示している。
図6は、業種明細定義情報の一例を示す図である。業種明細定義情報252は、業種毎に設けられる情報であり、業種が示す業界における一般的な請求書の明細部で採用される項目名を定義するものである。
業種明細定義情報252は、業種を特定する情報と、項目「明細項目名」と、項目「キーワード」とを有し、両者は対応付けられている。図6の例では、業種が「人材派遣」であることを示している。
項目「明細項目名」の値は、一般的な請求書の明細部で用いられる明細項目の名称を示す。項目「キーワード」の値は、請求元が人材派遣業の請求書において、一般的な明細項目名に相当するキーワード(単語)を示す。
つまり、業種明細定義情報252は、業種と、帳票で用いられる明細項目、帳票から明細項目として抽出するキーワードと、を定義した情報である。
図6の例では、一般的な帳票の明細項目名「商品名」は、発行元が人材派遣業の請求書の明細部では、「氏名」、「スタッフ」、「メンバー」等のキーワードに置き換えられる場合があることを示している。
図7は、個社明細定義情報の一例を示す図である。本実施形態の個社明細定義情報251は、利用者毎に登録されるものである。ここでの利用者は、請求書の発行元(請求元)である。
個社明細定義情報251では、請求元を特定する情報と、項目「明細項目名」と、項目「抽出情報」とが対応付けられている。
請求元を特定する情報とは、請求元の名称、電話番号、口座番号等を含む。尚、図7の例では、請求元を特定する情報に、請求元の名称、電話番号、口座番号が含まれるものとしたが、請求元を特定する情報は、これらの情報のうち何れか1つであっても良い。
項目「明細項目名」の値は、一般的な請求書の明細部で用いられる明細項目の名称を示す。言い換えれば、個社明細定義情報251における明細項目名とは、帳票で用いられる明細項目を示す。
項目「抽出情報」の値は、請求元から発行される請求書において、一般的な明細項目に相当するキーワード(単語)として抽出するキーワードと、請求書を示す帳票画像において、このキーワードが記載されている位置を示す情報とを含む。
つまり、個社明細定義情報251における抽出情報は、帳票から明細項目として抽出するキーワードと、帳票におけるキーワードの位置を示す情報とを含む。したがって、個社明細定義情報251は、帳票で用いられる明細項目と、明細項目として抽出するキーワードと、帳票におけるキーワードの位置を示す情報とを定義した情報である。
図7の例では、一般的な帳票の明細項目名「商品名」は、請求元がA社である請求書の明細部では、「氏名」、等のキーワードに置き換えられる場合があることを示している。
また、図7の例では、請求元がA社である請求書を示す帳票画像におけるキーワード「氏名」の位置を示す情報として、キーワードの座標を示すキーワード座標、キーワード「氏名」が記入されたセルの座標を示すセル座標、キーワード「氏名」が記入された列の座標を示す列座標が抽出されることを示している。
尚、請求書を示す帳票画像において、キーワードが記載されている位置を示す情報とは、キーワードの座標値、セルの値座標、列の座標値のうち、少なくとも何れか一種類の座標が取得されていれば良い。
具体的には、キーワードの座標値とは、キーワードに外接する矩形において対角線上にある2点の座標であっても良い。この座標から、キーワードに外接する矩形の幅と高さがわかる。
次に、図8を参照して、本実施形態のサーバ装置200の機能について説明する。図8は、サーバ装置の機能を説明する図である。
本実施形態のサーバ装置200では、例えば、メモリ装置25や補助記憶装置24等に格納された情報処理プログラムを演算処理装置26が読み出して実行することで、後述する各部の機能が実現される。
本実施形態のサーバ装置200は、帳票認識処理部220、定義登録部290を有する。帳票認識処理部220は、入力受付部221、認証処理部222、帳票認識部270を有する。
入力受付部221は、サーバ装置200に対する各種の入力を受け付ける。具体的には、入力受付部221は、帳票認識システム100にログインするための認証情報の入力を受け付ける。認証情報とは、例えば、利用者IDとパスワード等である。また、入力受付部221は、例えば、画像形成装置300から送信された帳票画像データの入力を受け付ける。
認証処理部222は、入力受付部221が入力を受け付けた認証情報に基づき、認証を行う。尚、認証処理部222は、例えば、サーバ装置200の外部に設けられた認証サーバに対して、入力された認証情報を送信し、認証サーバによる認証の結果を取得しても良い。認証処理部222は、利用者が認証されると、入力受付部221が受け付けた帳票画像データを帳票認識部270に渡しても良い。
本実施形態の帳票認識部270は、画像データ格納部271、ジョブリスト生成部272、画像データ取得部273、前処理部274、文字認識部275、定義特定部276、項目抽出部277、表示画面生成部278、出力部279を有する。
画像データ格納部271は、画像形成装置300から帳票画像データを受信すると、帳票画像データベース230に格納する。
ジョブリスト生成部272は、入力受付部221が画像形成装置300から帳票画像データの入力を受け付けて、ジョブリストにジョブを登録し、ジョブリストを管理する。ジョブリストの詳細は後述する。
画像データ取得部273は、帳票画像データベース230に格納された帳票画像データを取得する。前処理部274は、画像データ取得部273が取得した帳票画像データに対して、帳票認識を行うための前処理を行う。
文字認識部275は、帳票画像データから、文字列と、文字列が配置された位置を示す情報とを抽出し、読取結果データとして保持する。読取結果データの詳細は後述する。
定義特定部276は、読取結果データに含まれる文字列に基づき、帳票認識の際に参照する明細定義情報を特定し、特定した明細定義情報を明細定義データベース250から取得する取得部である。
項目抽出部277は、読取結果データに基づき、帳票画像データに含まれる項目と、項目の値とを抽出して対応付けを行った認識結果データを生成し、認識結果データベース260へ格納する。
このとき、本実施形態の項目抽出部277は、定義特定部276により特定された明細定義情報を参照し、帳票の明細部に記載された明細項目名と、明細項目の値とを対応付けて抽出する。
以下の説明では、帳票の明細部に記載された明細項目名と、明細項目の値とを対応付けた情報を明細情報と呼ぶ場合がある。本実施形態の明細情報は、認識結果データに含まれる情報であり、認識結果データの一部である。
また、本実施形態の認識結果データは、帳票に記載された帳票の発行元を示す情報(発行元情報)等を含む。つまり、認識結果データには、帳票に記載された文字列が示す情報が含まれる。
表示画面生成部278は、認識結果データベース260に格納された認識結果データを用いて、認識結果の確認画面を生成する。
出力部279は、表示画面生成部278が生成した認識結果の確認画面を出力する。言い換えれば、出力部279は、表示画面生成部278が生成した認識結果の確認画面を端末装置400のウェブブラウザ上で表示させる。
本実施形態の定義登録部290は、表示制御部291、定義生成部292、定義更新部293を有する。
表示制御部291は、個社明細定義情報を生成するための画面を端末装置400に表示させる。具体的には、表示制御部291は、画面を表示させるためのXML形式のファイルを生成し、端末装置400のウェブブラウザ上に入力画面を表示させる。
尚、本実施形態では、表示制御部291は、個社明細定義情報を生成するための画面を端末装置400に表示させるものとしたが、これに限定されない。表示制御部291が画面を表示させる装置は、サーバ装置200であっても良いし、端末装置400以外の装置あっても良く、表示機能を有する表示装置であれば良い。
定義生成部292は、入力画面に対して端末装置400から入力された情報に基づき、個社明細定義情報を生成して明細定義データベース250へ格納する。
定義更新部293は、既に明細定義データベース250に登録された個社明細定義情報に対する修正を反映させて、個社明細定義情報を更新する。
以下に、図9を参照して、本実施形態の帳票認識システム100の動作について説明する。図9は、帳票認識システムの動作を説明するシーケンス図である。
帳票認識システム100において、画像形成装置300は、利用者から帳票認識を行うためのアプリケーションの起動要求を受け付けると(ステップS901)、このアプリケーションを起動させる(ステップS902)。
続いて、画像形成装置300は、利用者から認証情報の入力を受け付けると(ステップS903)、この認証情報をサーバ装置200へ送信し、認証要求を行う(ステップS904)。
サーバ装置200は、認証要求を受けて、認証処理部222により認証を行い、その結果を画像形成装置300へ通知する(ステップS905)。尚、ここでは、利用者が認証された場合の動作を示している。
続いて、画像形成装置300は、帳票のスキャン指示を受け付け(ステップS906)、帳票のスキャンを行い、帳票画像データを取得する(ステップS907)。続いて、画像形成装置300は、帳票画像データをサーバ装置200へ送信する(ステップS908)。
サーバ装置200は、入力受付部221が帳票画像データの入力を受け付けると、認証処理部222がこの帳票画像データを帳票認識部270へ渡す(ステップS909)。尚、図9の例では、認証処理部222を介して帳票画像データが帳票認識部270へ渡されるものとしたが、これに限定されない。帳票画像データは、認証処理部222を介さずに帳票認識部270に渡されても良い。
サーバ装置200の帳票認識部270は、帳票画像データを受け取ると、ジョブリスト生成部272により、ジョブリストにジョブを登録する(ステップS910)。続いて、帳票認識部270は、画像データ格納部271により、帳票画像データを帳票画像データベース230へ格納する(ステップS911)。
続いて、帳票認識部270は、画像データ取得部273により、帳票画像データベース230から認識する対象となる帳票画像データを取得し(ステップS912)、帳票画像を認識する処理を実行する(ステップS913)。ステップS912の処理の詳細は後述する。
続いて、帳票認識部270は、項目抽出部277が生成した認識結果データを認識結果データベース260に格納する(ステップS914)。
帳票認識システム100において、端末装置400は、利用者からのブラウザの表示指示の入力を受け付けると(ステップS915)、サーバ装置200に対して認識結果データを表示させるブラウザの表示要求を行う(ステップS916)。
また、端末装置400は、利用者から認証情報の入力を受け付けて(ステップS917)、この認証情報をサーバ装置200へ送信する(ステップS918)。
サーバ装置200は、認証処理部222により、利用者の認証を行い(ステップS919)、その結果を端末装置400へ通知する(ステップS920)。尚、ここでは、利用者が認証された場合の処理を示す。
続いて、端末装置400は、利用者から、帳票画像の認識結果の閲覧指示の入力を受け付けると(ステップS921)、サーバ装置200に対して閲覧要求を行う(ステップS922)。
サーバ装置200は、閲覧要求を受けて、認識結果データベース260に格納されている認識結果データを取得し(ステップS923)、認識結果の確認画面を生成して端末装置400のブラウザ上に表示させ(ステップS924)、利用者に、表示された認識結果の確認画面で認識結果を確認させる。
続いて、端末装置400は、利用者から、個社明細定義情報の登録指示の入力を受け付けると(ステップS925)、個社明細定義情報の登録要求をサーバ装置200へ送信する(ステップS926)。
サーバ装置200は、この登録要求を受け付けると、定義登録部290の表示制御部291により、端末装置400に個社明細定義情報の登録画面を表示させる(ステップS927)。
続いて、端末装置400は、個社明細定義情報の入力を受け付けると(ステップS928)、入力された情報をサーバ装置200へ送信する(ステップS929)。サーバ装置200は、定義生成部292により、端末装置400から送信された情報に基づき、個社明細定義情報を生成し(ステップS930)、明細定義データベース250に格納して(ステップS931)、処理を終了する。尚、定義登録部290による処理の詳細は後述する。
ここで、図10を参照して、本実施形態のジョブリスト生成部272により生成されるジョブリストについて説明する。図10は、ジョブリストの一例を示す図である。
本実施形態のサーバ装置200は、画像形成装置300から帳票画像データが入力されると、ジョブリスト生成部272により、帳票画像データとジョブIDとを対応付けたジョブリストとして保持する。
本実施形態のジョブリスト101は、情報の項目として、ジョブID、利用者ID、帳票画像ファイルパス、認識結果ファイルパス、ステータスを有する。
項目「ジョブID」の値は、ジョブを特定する識別子である。言い換えれば、項目「ジョブID」の値は、画像形成装置300から受信した帳票画像データを特定するための識別子である。
項目「利用者ID」の値は、帳票認識システム100にログインした利用者を特定するための識別子である。
項目「画像ファイルパス」の値は、帳票画像データが格納されている場所を示す情報である。項目「認識結果ファイルパス」の値は、帳票画像を認識した結果の認識結果データが格納されている場所を示す情報である。
項目「ステータス」の値は、帳票画像の認識の進捗を示す。言い換えれば、項目「ステータス」の値は、ジョブの状態を示す。
本実施形態では、項目「ステータス」の値として、未処理状態、下書き保存状態、確定済み状態、外部出力済み状態の4つがある。各状態は、以下の通りである。
・未処理状態(状態1) 帳票認識によって認識結果データが取得された直後であり、認識結果の確認等が行われていない状態。
・下書き保存状態(状態2) 認識結果データの確認等の作業の途中等であり、認識結果データが確定される前の状態。
・確定済み状態(状態3) 認識結果データの確認等の作業が完了し、確定された情報として認識結果データベース260へ格納された状態。
・外部出力済み状態(状態4) 帳票認識システム100と連携する会計システム等への認識結果データの出力が完了した状態。
本実施形態のサーバ装置200は、画像形成装置300から帳票画像データを受信すると、ジョブリスト生成部272により、ジョブIDを付与し、認証情報として取得した利用者IDを対応付けて、ジョブリスト101にレコードを追加する。そして、ジョブリスト生成部272は、帳票画像データが帳票画像データベース230に格納されると、この格納先を示す情報を項目「画像ファイルパス」の値として、追加する。
さらに、ジョブリスト生成部272は、認識結果データが認識結果データベース260に格納されると、この格納先を示す情報を項目「認識結果ファイルパス」の値として追加し、項目「ステータス」の値を確定済み状態とする。
本実施形態では、例えば、ジョブリスト生成部272によって生成されたジョブリストを表示しても良い。この場合、利用者は、ジョブリストに基づいて表示されたジョブリスト画面を介して、帳票画像の認識の進捗を確認することができる。
次に、図11を参照して、本実施形態の帳票認識部270の処理について説明する。図11は、帳票認識部の処理を説明する第一のフローチャートである。図11では、図9のステップS913の処理の詳細を示している。また、図11では、複数の帳票画像データを画像形成装置300から受け取った場合の処理を示している。
本実施形態の帳票認識部270は、ジョブリストから1つのジョブの選択を受け付けると(ステップS1101)、前処理部274により、画像データ取得部273が取得した帳票画像データに対して、帳票認識を行うための前処理を行う(ステップS1102)。前処理とは、具体的には、例えば、帳票画像の向きを揃える補正処理等である。
続いて、帳票認識部270は、文字認識部275により、帳票画像から、文字が形成されている領域(以下、文字フィールド)の中の文字を切り取り、文字認識する(ステップS1103)。このとき、文字認識部275は、切り出した文字の位置を示す座標も取得する。
続いて、帳票認識部270は、文字認識部275により認識された各文字列の位置関係に基づいて読取結果データを生成して、保持する(ステップS1104)。具体的に、帳票認識部270は、認識された各文字の座標に基づいて、互いの距離が予め設定された閾値以内の文字を1つの文字列として認識し、文字列と、文字列が形成された領域の位置を示す座標などの情報とを対応付けて読取結果データを生成する。
続いて、帳票認識部270は、定義特定部276により、読取結果データに含まれる請求元を特定する情報(以下、請求元情報)と、業種判定データベース240とを参照し、請求元の業種を特定する(ステップS1105)。
続いて、帳票認識部270は、定義特定部276により、明細定義データベース250に、請求元情報と対応する個社明細定義情報251が存在するか否かを判定する(ステップS1106)。
ステップS1106において、個社明細定義情報251が存在する場合、帳票認識部270は、項目抽出部277により、個社明細定義情報251に基づき明細情報を抽出し(ステップS1107)、後述するステップS1111へ進む。ステップS1107の処理の詳細は後述する。
ステップS1106において、個社明細定義情報251が存在しない場合、定義特定部276は、明細定義データベース250に、ステップS1105で特定された業種と対応する業種明細定義情報252が存在するか否かを判定する(ステップS1108)。
ステップS1107において、業種明細定義情報252が存在する場合、帳票認識部270は、項目抽出部277により、業種明細定義情報252に基づき明細情報を抽出し(ステップS1109)、後述するステップS1111へ進む。ステップS1109の処理の詳細は後述する。
ステップS1108において、業種明細定義情報252が存在しない場合、帳票認識部270は、項目抽出部277により、汎用明細定義情報253に基づき明細情報を抽出し(ステップS1110)、後述するステップS1111へ進む。ステップS1110の処理の詳細は後述する。
帳票認識部270は、明細情報の抽出に成功したか否かを判定する(ステップS1111)。具体的には、帳票認識部270は、ステップS1107、ステップS1109、ステップS1110の何れかの処理で抽出された明細情報が存在するか否かを判定している。
ステップS1111において、明細情報の抽出に失敗した場合、帳票認識部270は、端末装置400又は画像形成装置300に対してエラーを通知し(ステップS1112)、処理を終了する。
ステップS1111において、明細情報の抽出に成功した場合、帳票認識部270は、項目抽出部277により、抽出された明細情報をマージした認識結果データを生成し、認識結果データベース260に格納する(ステップS1113)。
続いて、帳票認識部270は、ジョブリスト生成部272により、認識結果データの格納先をジョブリスト101に登録する(ステップS1114)。
続いて、帳票認識部270は、表示画面生成部278により、認識結果データを用いて生成された認識結果の確認画面を端末装置400に表示させ(ステップS1115)、処理を終了する。
尚、図11の例では、認識結果データを表示させる処理までを一連の動作として説明したが、これに限定されない。帳票認識部270は、端末装置400から、認識結果データの閲覧要求を受け付けてから、認識結果データを表示させても良い。
次に、図12と図13を参照して、本実施形態の項目抽出部277による明細情報の抽出について説明する。図12は、帳票認識部の処理を説明する第二のフローチャートである。図12は、図11のステップS1107の処理の詳細を示している。
本実施形態の帳票認識部270において、項目抽出部277は、読取結果データが保持されると、各文字の座標値を抽出する(ステップS1201)。続いて、項目抽出部277は抽出した各文字の座標からキーワード(文字列)を特定し、キーワードと対応する座標値を特定する(ステップS1202)。
続いて、項目抽出部277は、特定したキーワードで、個社明細定義情報251に含まれる明細項目名を検索し(ステップS1203)、検索結果が存在するか否かを判定する(ステップS1204)。具体的には、項目抽出部277は、個社明細定義情報251に、特定したキーワードと一致する明細項目名が存在するか否かを判定している。
ステップS1204において、該当する明細項目名が存在しない場合、帳票認識部270は、処理を終了する。また、ステップS1204において、該当する明細項目名が存在する場合、特定したキーワードを明細部の明細項目名とし、特定したキーワードの下に縦方向な並ぶキーワードを明細項目名の項目値を抽出し(ステップS1205)、処理を終了する。
尚、図11のステップS1109の処理は、図12のステップS1203において、参照する明細定義情報が業種明細定義情報252である点以外は、図12の処理と同様であるから、説明を省略する。
図13は、帳票認識部の処理を説明する第三のフローチャートである。図13は、図11のステップS1110の処理の詳細を示している。言い換えれば、図13は、請求元と対応する個社明細定義情報251も汎用明細定義情報253も存在しない場合に、汎用明細定義情報253を参照して明細情報を抽出する処理を示している。
図13のステップS1301とステップS1302の処理は、図12のステップS1201とステップS1202の処理と同様であるから、説明を省略する。
項目抽出部277は、キーワードと座標値を特定すると、帳票画像データに表が存在するか否かを判定する(ステップS1303)。ステップS1303において、表が存在しない場合、項目抽出部277は、後述するステップS1310へ進む。
ステップS1303において、表が存在する場合、項目抽出部277は、表の各セルの座標値を抽出する(ステップS1304)。尚、このとき、項目抽出部277は、各セルに、各セルを識別する識別情報(ID)を付与しても良い。また、識別情報は、例えば、表の列を特定する列ID及び表の行を特定する行IDとして付与されても良い。このように、列IDと行IDとを付与すれば、列IDと行IDとの組み合わせにより、セルを特定できる。
続いて、項目抽出部277は、表の各セルに含まれるキーワードを特定し、セルの座標値と対応付けて保持する(ステップS1305)。
続いて、項目抽出部277は、表の先頭行(一番上の行)の各セルに含まれるキーワードを特定する(ステップS1306)。続いて、項目抽出部277は、先頭行に各セルに含まれるキーワードで、汎用明細定義情報253を検索する(ステップS1307)。
続いて、項目抽出部277は、汎用明細定義情報253に、先頭行に各セルに含まれるキーワードと一致する明細項目名が存在するか否かを判定する(ステップS1308)。ステップS1308において、先頭行に各セルに含まれるキーワードと一致する明細項目名が存在しない場合、項目抽出部277は、処理を終了する。
ステップS1308において、先頭行に各セルに含まれるキーワードと一致する明細項目名が存在する場合、項目抽出部277は、先頭行に各セルに含まれるキーワードを明細項目名とし、このキーワードを含む列に含まれるキーワードを、明細項目の項目値として抽出し(ステップS1309)、処理を終了する。
ステップS1303において、表が存在しない場合、帳票認識部270は帳票画像における明細部の領域を特定する(ステップS1310)。具体的には、帳票認識部270は、例えば、キーワードが縦方向に並んでいる領域を、明細部の領域と特定しても良い。
続いて、帳票認識部270は、項目抽出部277により、明細部に特定された領域における一行目のキーワードを特定し、特定したキーワードの座標値と対応付けて保持する(ステップS1311)。特定された領域における一行目のキーワードとは、特定された領域なにおいて、一番上に位置するキーワードである。
続いて、項目抽出部277は、ステップS1311で特定したキーワードで、汎用明細定義情報253を検索する(ステップS1312)。続いて、項目抽出部277は、汎用明細定義情報253に、特定したキーワードと一致する明細項目名が存在するか否かを判定する(ステップS1313)。
ステップS1313において、一致する明細項目名が存在しない場合、帳票認識部270は、処理を終了する。
ステップS1313において、一致する明細項目名が存在する場合、項目抽出部277は、ステップS1311で特定したキーワードの座標値から、キーワードが外接する領域の幅を取得し、この幅において縦方向に並んでいるキーワードを明細項目の項目値として抽出し(ステップS1314)、処理を終了する。
尚、図13の例では、帳票画像に表が存在する場合には、セルの座標値を抽出するものとしたが、表の代わりに縦線を用いても良い。その場合、帳票認識部270は、帳票画像に縦線が存在するか否かを判定し、縦線が存在する場合には、縦線と縦線の間に位置するキーワードと、キーワードの座標を特定すれば良い。
そして、帳票認識部270は、縦線と縦線の間のキーワードのうち、一番上のキーワードと一致する明細項目名が汎用明細定義情報253に存在する場合には、この縦線と縦線の間にある2番目以降のキーワードを明細項目の値とすれば良い。
以下に、図14と図15を参照して、帳票認識部270の処理についてさらに説明する。図14は、明細情報の抽出を説明する第一の図である。
図14は、明細情報の抽出を説明する第一の図である。図14に示す請求書141には、請求元を特定する請求元情報141aと、明細項目毎に同じ形式のデータが縦方向に繰り返し印刷された明細部141bとが含まれる。図14(A)に示す請求書141は、請求元情報141aは、請求元の名称であり、明細部141bは、表形式で記載されている。
本実施形態では、請求書141を画像形成装置300で読み取って帳票画像データとし、帳票画像データに対して帳票認識部270の処理を実行することで、認識結果データが生成される。
図15は、明細情報の抽出を説明する図である。図15(A)に示す情報151は、請求書141を示す帳票画像データに対し、文字認識部275による文字認識を行った結果である。
情報151は、請求書141のうち、明細部141bから文字フィールドを切り取り、文字フィールドの中の文字を認識した結果と、文字の位置を示す座標とから抽出した例を示す。
本実施形態の文字認識部275は、この情報151から、隣り合う位置にある文字同士をつなげて文字列(文字列)を認識する。具体的には、文字認識部275は、文字と文字との間の距離が、所定ピクセル以内である文字の組み合わせを、1つ単語として認識しても良い。
図15(A)示す情報152は、文字認識部275により認識された文字列と、文字列の領域とを示す情報であり、文字認識部275による帳票画像の読取結果データである。
また、文字認識部275は、帳票画像データから、縦線と横線で区切られた領域を1つのセルとして認識し、セル毎にセルを識別する識別情報(セルID)を付与する。
図15(A)に示す情報153は、明細部141bから認識されたセル毎の領域とセルIDとの対応付けを示す情報である。
図15(A)では、例えば、キーワード「氏名」が認識された領域は、情報152において、X座標とY座標によって示される位置を基準として、高さと幅とから特定される。
また、情報153において、キーワード「氏名」が認識された領域は、セルID「2」に含まれることがわかる。したがって、キーワード「氏名」は、明細部141bに含まれるキーワードして、セルID「2」と対応付けられる。尚、情報153では、キーワード「氏名」が認識された領域に対してセルIDを対応付けるものとしたが、これに限定されない。セルIDは、キーワードが縦方向に並ぶ列を特定する列IDと、キーワードが横方向に並ぶ行IDとによって特定されても良い。
本実施形態の帳票認識部270は、このようにして、帳票画像データから、キーワードとセルとを対応付ける。
図15(B)に示す情報154は、請求書141と対応する読取結果データに基づき生成された、明細部141bの明細情報である。したがって、図15(B)に示す明細情報154は、帳票画像データ全体の認識結果データの一部である。
図15(B)に示す明細情報154は、項目抽出部277によって生成されるものであり、情報の項目として、列ID、項目名、列の座標、行ID、項目値、明細項目指定とを有する。
項目「列ID」の値は、明細部141b(表)に含まれる列を特定する識別情報であり、項目「明細項目名」の値は、表の一番上の行の各セル内のキーワードである。項目「列の座標」の値は、列の座標を示す。尚、本実施形態では、列の座標を、帳票画像における明細の列の左上の点の座標値と右下の点の座標値とをする。
項目「行ID」の値は、行を特定する識別情報であり、項目「項目値」の値は、明細項目と対応する項目値を示す。
項目「明細項目指定」の値は、対応する項目名と、項目名の位置を示す座標とを、個社明細定義情報251に登録するか否かを示す。項目名の位置を示す座標とは、例えば、列の座標と行IDとの組み合わせ等によって示される。
明細情報154では、項目名の値である「氏名」に項目「明細項目指定」の値である「商品名」が対応付けられている。また、「氏名」の位置を示す座標を、列の座標としたとする。
この場合、「氏名」と「氏名」の列の座標とは、個社明細定義情報251に、項目「明細項目名」の値である「商品名」のと対応する項目「抽出情報」の値として、登録される。
尚、図15(B)の明細情報154の例では、情報の項目として、列の座標、列ID、行IDを含むものとしたが、これに限定されない。明細情報154は、情報の項目として、路委細項目名と、項目値とが含まれていれば良く、それ以外の項目は、明細情報154に含まれなくても良い。
また、本実施形態では、認識結果の確認画面に明細情報154を表示させる場合には、明細項目名と項目値のみを表示させれば良い。
以下に、項目抽出部277による明細情報154の生成について具体的に説明する。
始めに、項目抽出部277が個社明細定義情報251を参照して、明細情報154を生成した場合を説明する。以下の説明は、図12の処理を具体的に示している。
この場合、項目抽出部277は、例えば、情報153においてキーワード「氏名」とキーワード座標値が特定されると、キーワード「氏名」で、個社明細定義情報251を検索する。
ここで、個社明細定義情報251には、キーワード「氏名」が存在するため(図7参照)、項目抽出部277は、キーワード「氏名」を明細項目名として抽出する。また、項目抽出部277は、キーワード「氏名」のキーワード座標値から求められるキーワード「氏名」の下に並ぶキーワードを明細項目の項目値として抽出する。
このとき、項目抽出部277は、キーワード「氏名」の位置を示す座標(列ID、列の座標)を抽出し、明細項目名であるキーワード「氏名」と対応付ける。また、項目抽出部277は、項目値として抽出されたキーワード(例えば、「A」)と、このキーワード(項目値)の位置を示す座標(列ID、行ID)を対応付ける。
次に、項目抽出部277が業種明細定義情報252を参照して、明細情報154を生成した場合を説明する。
この場合も、項目抽出部277は、例えば、情報153においてキーワード「氏名」とキーワード座標値が特定されると、キーワード「氏名」で、個社明細定義情報251を検索する。また、業種明細定義情報252には、キーワード「氏名」が存在するため(図6参照)、項目抽出部277は、キーワード「氏名」を明細項目名として抽出する。また、項目抽出部277は、キーワード「氏名」のキーワード座標値から求められるキーワード「氏名」の下に並ぶキーワードを明細項目の項目値として抽出する。
ここでも、項目抽出部277は、明細項目名であるキーワード「氏名」と、キーワード「氏名」の位置を示す座標とを対応付ける。また、項目抽出部277は、項目値として抽出されたキーワードと、このキーワード(項目値)の位置を示す座標を対応付ける。
次に、項目抽出部277が汎用明細定義情報253を参照して、明細情報154を生成した場合を説明する。以下の説明は、図13の処理を具体的に示している。
この場合、項目抽出部277は、例えば、情報153においてキーワード「氏名」とキーワード座標値が特定されると、明細部141bに表が存在するか否かを判定する。ここでは、明細部141bは、図14に示すように、表形式としているため、表が存在することとなる。
したがって、項目抽出部277は、情報153のうち、明細部141bを示す表に含まれる各セルの座標値を抽出し、各セルの座標値と、セル内のキーワードとを対応付けて保持する。
図15の例では、セルID「2」の座標値とキーワード「氏名」、セルID「7」の座標値とキーワード「最終金額」というように、対応付けて保持する。
次に、項目抽出部277は、表の一番上の行に含まれるキーワードを特定する。ここでは、キーワード「氏名」、「最終金額」が一番上の行に含まれるキーワードとして特定される。
次に、項目抽出部277は、特定したキーワードで、汎用明細定義情報253を検索する。ここで、キーワード「氏名」は、汎用明細定義情報253に存在しない(図7参照)。したがって、項目抽出部277は、キーワード「氏名」に対しては、項目値を抽出しない。
また、キーワード「最終金額」は、汎用明細定義情報253に存在する(図7参照)。したがって、項目抽出部277は、キーワード「最終金額」を明細項目名として抽出する。また、項目抽出部277は、キーワード「最終金額」キーワード座標値から求められるキーワード「最終金額」の下に並ぶキーワードを明細項目の項目値として抽出する。
このとき、項目抽出部277は、キーワード「最終金額」の位置を示す座標(列ID、列の座標)を抽出し、明細項目名であるキーワード「最終金額」と対応付ける。また、項目抽出部277は、項目値として抽出されたキーワード(例えば、「300,000」)と、このキーワード(項目値)の位置を示す座標(列ID、行ID)を対応付ける。
このように、本実施形態では、始めに個社明細定義情報251を参照して、明細部141bから明細項目名を抽出する。したがって、本実施形態によれば、請求元毎に独自で用いる明細項目名と項目値とを対応付けて抽出することができる。言い換えれば、本実施形態によれば、個社明細定義情報251を参照して、帳票の明細部から明細情報を抽出することができる。
また、本実施形態では、個社明細定義情報251が存在しない場合には、請求元の業種と対応した業種明細定義情報252を参照して、明細項目名と項目値を抽出する。したがって、本実施形態によれば、個社明細定義情報251が存在しない場合でも、請求元の業種特有の明細項目類と項目値を対応付けて抽出することができる。言い換えれば、本実施形態によれば、業種明細定義情報252を参照して、帳票の明細部から明細情報を抽出することができる。
また、本実施形態では、個社明細定義情報251と業種明細定義情報252とが存在しない場合には、汎用明細定義情報253を参照する。そして、本実施形態では、汎用明細定義情報253に、明細部141bに記載された明細項目名が存在しない場合には、新たに抽出すべき明細項目名と、帳票画像において明細項目名が記載された位置を示す情報とを、個社明細定義情報251として登録することができる。
以下に、図16と図17を参照して、定義登録部290による個社明細定義情報251の登録について説明する。
図16は、定義登録部の処理を説明する第一のフローチャートである。図16では、図9のステップS924からステップS931までの処理の詳細を示している。
本実施形態のサーバ装置200は、帳票認識部270による帳票の認識結果の確認画面において、端末装置400から、認識結果の登録要求を受け付けたか否かを判定する(ステップS1601)。具体的には、サーバ装置200は、認識結果データベース260に対する、確認画面に表示された認識結果データの格納が指示されたか否かを判定している。
ステップS1601において、認識結果の登録要求を受け付けていない場合、サーバ装置200は、後述するステップS1605へ進む。
ステップS1601において、認識結果の登録要求を受け付けた場合、サーバ装置200は、確認画面上で、認識結果データが修正されたか否かを判定する(ステップS1602)。尚、本実施形態における認識結果データの修正とは、主に明細部の認識結果データに対する修正を示す。
ステップS1602において、認識結果データが修正されていない場合、サーバ装置200は、処理を終了する。
ステップS1602において、認識結果データが修正されていた場合、定義登録部290は、定義生成部292により、帳票画像データの認識において、個社明細定義情報251が用いられたか否かを判定する(ステップS1603)。具体的には、定義生成部292は、請求元と対応付けられた個社明細定義情報251が存在するか否かを判定している。
ステップS1603において、個社明細定義情報251が用いられていない場合、定義登録部290は、後述するステップS1606へ進む。
ステップS1603において、個社明細定義情報251が用いられていた場合、定義更新部293は、明細定義データベース250に格納されたこの個社明細定義情報251を更新し(ステップS1604)、処理を終了する。
ステップS1601において、認識結果データの登録要求を受け付けない場合、サーバ装置200は、端末装置400から、帳票定義(個社明細定義情報251)の登録要求を受け付けたか否かを判定する(ステップS1605)。
ステップS1605において、帳票定義の登録要求を受け付けていない場合、サーバ装置200は、ステップS1601へ戻る。
ステップS1605において、帳票定義の登録要求を受け付けた場合、定義登録部290は、定義生成部292により、個社明細定義情報251を生成する(ステップS1606)。ステップS1606の処理の詳細は後述する。
続いて、サーバ装置200は、端末装置400から、請求元情報の入力を受け付ける(ステップS1607)。続いて、定義生成部292は、入力された請求元情報と、個社明細定義情報251とを対応付けて、明細定義データベース250に登録(格納)して(ステップS1608)、処理を終了する。
以下に、図17を参照して、定義生成部292による個社明細定義情報251の生成について説明する。図17は、定義登録部の処理を説明する第二のフローチャートである。図17では、図16のステップS1606の処理の詳細を示している。
本実施形態の定義登録部290において、定義生成部292は、確認画面において、明細情報の表示欄に表示された明細項目名の選択を受け付ける(ステップS1701)。
続いて、定義登録部290は、表示制御部291により、確認画面に表示されている帳票画像において、明細情報の項目に該当する領域をハイライト等で表示させる(ステップS1702)。
続いて、定義登録部290は、帳票画像上で、項目の選択を受け付けると(ステップS1703)、表示制御部291により、帳票画像上に、選択された項目の値としてキーワードが抽出される領域を示す画像を表示させる(ステップS1704)。
続いて、定義登録部290は、帳票画像上で列の選択を受け付けると(ステップS1705)、定義生成部292により、ステップS1703で選択された項目の項目名と、選択された列の座標とを取得し、確認画面の明細情報の表示欄において選択された明細項目名と対応付ける(ステップS1706)。
つまり、ここでは、明細情報の表示欄に表示された明細項目名とは、個社明細定義情報251における項目「明細項目名」の値である。また、ステップS1703で選択された項目の項目名と、選択された列の座標とは、個社明細定義情報251における項目「抽出情報」の値である。したがって、定義生成部292は、ステップS1706において、個社明細定義情報251の項目「明細項目名」の値と、項目「抽出情報」の値とを取得している。
続いて、定義登録部290は、表示制御部291により、ステップS1705で選択された列の項目値を、確認画面の明細情報の表示欄に反映させ(ステップS1707)、処理を終了する。
以下に、図18乃至図22を参照して、認識結果の確認画面の表示例について説明する。図18は、表示例を示す第一の図である。図18に示す画面181は、例えば、図9のステップS924で端末装置400に表示される認識結果の確認画面の一例である。
画面181は、表示欄182、表示欄183と、操作ボタン190、191とを含む。表示欄182には、帳票画像データが示す帳票画像が表示される。図18の例では、帳票が請求書であり、帳票画像に明細部(表)を示す領域184が含まれる。
表示欄183は、表示欄182に表示された帳票画像を示す帳票画像データに対して帳票認識部270による帳票認識を行った結果の認識結果データが表示される。
表示欄183は、表示欄185、186、187、188を含む。表示欄185は、ジョブリスト101の項目「ステータス」の値が表示される。表示欄186は、請求元情報が表示される。請求元情報は、認識結果データの一部である。
表示欄187は、明細情報に含まれる明細項目名の一覧が表示される。尚、図18の例では、帳票画像データから認識結果データを生成する際に個社明細定義情報251が参照されておらず、帳票画像データから明細情報が抽出されていない。このため、表示欄187には、汎用明細定義情報253で定義された一般的な明細項目名が表示されている。
尚、表示欄183に表示される認識結果データが、個社明細定義情報251を参照して生成された場合には、表示欄187には、個社明細定義情報251に定義された明細項目名が表示される。また、表示欄183に表示される認識結果データが、業種明細定義情報252を参照して生成された場合には、表示欄187には、業種明細定義情報252に定義された明細項目名が表示される。
表示欄188は、明細情報が表示される。具体的には、表示欄188は、表示欄187に表示された明細項目毎に、項目値を表示させる表示欄を含む。具体的には、表示欄188には、明細項目「商品名」の項目値が表示される欄、明細項目「金額」の項目値が表示される欄、明細項目「備考」の項目値が表示される欄等が含まれる。
画面181では、表示欄188に含まれる各欄には、初期状態として、対応する明細項目名が表示される。具体的には、表示欄188において、明細項目「商品名」の項目値が表示される欄には、明細項目名である「商品名」が初期設定として表示される。
また、図18の例では、帳票認識により明細部を示す領域184に4行の表が存在することが判明しているため、表示欄188には、3行分の項目値の表示欄が表示されている。
定義登録部290は、例えば、画面181の表示欄187において、明細項目「商品名」が選択されると、表示欄182に表示された帳票画像において、明細部を示す領域184内の表の先頭の行(一番上の行)192がハイライトされる。
本実施形態では、このように、領域184内の表の先頭の行192をハイライトすることで、帳票画像において、明細部における明細項目が記載されていると想定される領域を、利用者に提示することができる。尚、先頭の行192の表示態様は、ハイライトに限定されない。本実施形態では、表示欄187において項目の選択を受け付けて、行192の表示態様を、領域184内の表の他の行の表示態様と異ならせれば良い。
本実施形態では、先頭の行192において、項目の選択を受け付けると、項目と対応する項目値を示す領域にマーカが表示される。
操作ボタン190は、ジョブリスト101のステータスの値を、未処理状態から下書き保存状態とするための操作ボタンである。操作ボタン190が操作されると、表示欄185は、「未処理」から「下書き保存」に変化する。
操作ボタン191は、ジョブリスト101のステータスの値を、確定状態とするための操作ボタンである。本実施形態では、表示欄188に表示された明細情報が変更された場合には、操作ボタン191が操作された際に、請求元情報を入力するための画面が表示される。
図19は、表示例を示す第一の図である。図19に示す画面181Aは、図18に示す画面181において、領域184内の先頭の行192から、キーワード「氏名」が選択された場合を示している。
画面181Aでは、領域184内の表において、キーワード「氏名」の下に縦方向に並んだ3つセルを含む領域193にマークが付されている。これは、領域193が、キーワード「氏名」の項目値を抽出する対象の領域であることを示している。
図20は、表示例を示す第三の図である。図20に示す画面181Bは、領域184内の表において、キーワード「氏名」の列195が選択された場合を示している。
本実施形態では、領域184内の表において、列195が選択されると、列195に含まれるキーワード「氏名」と、表示欄187で選択された明細項目「商品名」とが対応付けられる。そして、表示欄188Aに含まれる、明細項目「商品名」の項目値が表示される欄188aに、領域193から抽出されたキーワードが表示される。
つまり、領域184内の表から、キーワード「氏名」が明細項目「氏名」として抽出され、キーワード「氏名」の下のセル内のキーワードが、明細項目「氏名」の項目値として抽出される。
表示欄188Aでは、領域184内の表から抽出されたが明細項目「氏名」と、明細項目「氏名」の項目値とが対応付けられて表示される。具体的には、表示欄188Aでは、明細項目「商品名」の項目値が表示される欄188aに、領域193から抽出されたキーワード「A」、「B」、「C」が表示される。
このとき、定義登録部290は、定義生成部292により、帳票画像におけるキーワード「氏名」の位置を示すキーワード座標、キーワード「氏名」を含むセルのセル座標、列195の座標の少なくとも何れか1つを取得する。そして、定義生成部292は、キーワード「氏名」と、キーワード座標、セル座標、列の座標の何れかと、を、個社明細定義情報251の抽出情報とする。
また、定義生成部292は、表示欄187において選択された明細項目「商品名」と、抽出情報とを対応付けて、保持しておく。
図21は、表示例を示す第三の図である。図21に印す画面181Cでは、表示欄187から、明細項目「金額」が選択された後に、領域184内の表の先頭の行において、キーワード「最終金額」を含む列194が選択された場合を示している。
この場合、明細項目「金額」と、キーワード「最終金額」とが対応付けられる。したがって、表示欄188Bにおける、明細項目「金額」の項目値が表示される欄188bに、列194において、キーワード「最終金額」の下に縦方向に並んだセル内のキーワードが表示される。
このとき、定義登録部290は、定義生成部292により、帳票画像におけるキーワード「最終金額」の位置を示すキーワード座標、キーワード「最終金額」を含むセルのセル座標、列194の座標の少なくとも何れか1つを取得する。そして、定義生成部292は、キーワード「最終金額」と、キーワード座標、セル座標、列の座標の何れかと、を、個社明細定義情報251の抽出情報とする。
また、定義生成部292は、表示欄187において選択された明細項目「金額」と、抽出情報とを対応付けて、保持しておく。
そして、画面181Cにおいて、操作ボタン191が操作されると、定義登録部290の表示制御部291は、請求元情報を入力するためのウィンドウ等が表示させる。定義生成部292は、請求元情報の入力が完了し、登録指示がなされると、保持している明細項目と抽出情報とに、入力された請求元情報を対応付けた個社明細定義情報251を生成し、明細定義データベース250に格納する。
このように、本実施形態では、明細項目の選択と、明細項目として抽出するキーワードの指定とが行われると、指定されたキーワードと、キーワードの位置を示す情報と、選択された明細項目とを含む個社明細定義情報251を生成する。
このため、本実施形態によれば、個社明細定義情報251を参照して、帳票画像データに含まれる利用者独自の明細部から、明細情報を抽出することができる。したがって、本実施形態では、帳票の認識の精度を向上させることができる。
尚、表示欄187の表示態様は、図18乃至図21に示す表示態様に限定されない。図22は、表示例を示す第四の図である。
図22に示す画面181Dでは、表示欄183において、汎用明細定義情報253で定義された一般的な明細項目名が表示された表示欄187Aと、明細情報が表示される表示欄188Cとが、表形式で表示される。
また、図22の例では、表示欄187Aの項目名である「金額」は、領域184内の表に含まれる項目「最終金額」と部分一致する。このため、図22の例では、領域184内の表における項目「最終金額」の列196の各項目値を、表示欄188Cの項目「金額」と対応付けて表示させる。つまり、図22の例では、個社明細定義情報251を用いて一部の明細情報の認識に失敗し、一部が成功したことになる。
また、本実施形態では、領域184内の表において、ハイライトされた行192から項目を選択する際に、複数の項目を選択しても良い。言い換えれば、領域184内の表において、項目と対応する列を選択する際に、複数列が選択されても良い。
図22の例では、表示欄187Aの明細項目「商品名」と対応するキーワードとして、領域184内の表から、キーワード「スタッフID」を含む列と、キーワード「氏名」を含む列とが選択されている。この場合、表示欄187Aの明細項目「商品名」と、領域184内の表のキーワード「スタッフID」、「氏名」とが対応付けられる。
そして、表示欄188Cの明細項目「商品名」と対応する表示欄には、領域184内の表におけるキーワード「スタッフID」と対応する項目値と、キーワード「氏名」と対応する項目値とが表示される。
図22の例では、具体的には、表示欄188Cの明細項目「商品名」と対応する表示欄には、「0012A」が表示される。尚、複数列を選択する操作は、例えば、「Ctrl」キーを押した状態で、マウスで2つの列を選択すれば良い。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
また、実施形態に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。
ある実施形態では、サーバ装置200は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、サーバ装置200は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
さらに、サーバ装置200は、開示された処理ステップを様々な組み合わせで共有するように構成できる。例えば、サーバ装置200によって実行されるプロセスは、他のサーバ装置によって実行され得る。同様に、サーバ装置200の機能は、他のサーバ装置によって実行することができる。また、サーバ装置と他のサーバ装置の各要素は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
また、明細書中の対応テーブルは、機械学習の学習効果によって生成されたものでもよい。また、取引内容の記載に含まれうるキーワードと勘定項目とを機械学習にて分類付けすることで、対応テーブルを使用しなくてもよい。
ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり,コンピュータが、データ識別等の判断に必要なアルゴリズムを、事前に取り込まれる学習データから自律的に生成し,新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。