以下に、図面を参照して、実施形態について説明する。図1は、情報処理システムのシステム構成の一例を示す図である。
本実施形態の情報処理システム100は、情報処理装置200と、端末装置300とを含む。情報処理装置200と、端末装置300とは、ネットワーク等を介して接続される。尚、図1の例では、情報処理システム100に含まれる端末装置300は1台としたが、これに限定されない。情報処理システム100に含まれる端末装置300の台数は任意であって良い。
本実施形態の情報処理装置200は、帳票画像記憶部230、登録情報記憶部240、OCR(Optical Character Recognition)処理部250、帳票処理部260を有する。
帳票画像記憶部230は、例えば、請求書等の帳票の画像を示す画像データが格納される。以下の説明では、帳票の画像を帳票画像と呼び、帳票の画像を示す画像データは、帳票画像データと呼ぶ場合がある。帳票画像データは、例えば、帳票をスキャナ等によって読み取ることで取得される。情報処理装置200は、スキャナ機能を有する画像形成装置等と通信を行って、画像形成装置から帳票画像データを受信し、帳票画像記憶部230に格納しても良い。また、情報処理装置200は、その他の方法によって帳票画像データを取得して帳票画像記憶部230に格納しても良い。
登録情報記憶部240は、登録情報255が格納される。登録情報255は、請求書情報241、仕訳情報242、摘要欄情報243、ステータス情報244を含む。本実施形態において、請求書情報241、仕訳情報242、摘要欄情報243、ステータス情報244は、請求元毎に対応付けられている。
本実施形態の請求書情報241は、帳票(請求書)に記載された各種の情報が含まれる。
より具体的には、請求書情報241は、OCR処理部250による文字認識処理によって、帳票画像データからテキストデータを取得し、帳票処理部260によって、このテキストデータから、帳票画像に含まれる項目と項目の値とを抽出し、項目と項目の値とを対応付けることで生成される。以下の説明では、帳票画像に含まれる項目と、この項目の値とを抽出し、項目と項目の値とをテキストデータに変換して対応付けることを、帳票認識と呼ぶ。つまり、請求書情報241は、帳票認識によって、帳票画像データから取得される帳票情報の一例である。
尚、本実施形態では、請求書を帳票の一例とし、請求書情報241を帳票認識によって帳票画像データから取得される帳票情報の一例として説明するが、帳票は、請求書に限定されない。本実施形態の帳票は、例えば、摘要欄への情報の入力が求められる帳票であれば、どのようなものであっても良い。具体的には、例えば、本実施形態の帳票は、納品書や領収書等であっても良い。この場合、帳票情報は、納品書情報や領収書情報となる。
また、本実施形態では、帳票情報、仕訳情報、摘要欄情報、ステータス情報とは、帳票の発行元毎に対応付けられる。帳票の発行元とは、例えば、帳票情報が納品書情報である場合には、納品書の発行元を示し、帳票情報が領収書情報である場合には、領収書の発行元を示す。
仕訳情報242は、例えば、情報処理システム100のユーザ等によって、端末装置300から入力される情報である。
摘要欄情報243は、帳票処理部260によって生成される情報であり、仕訳情報242に含まれる摘要欄内容の入力を支援するための情報である。尚、摘要欄内容とは、仕訳情報242の入力の際に、摘要欄に入力されるテキストデータを示す。仕訳情報242、摘要欄情報243の詳細は、後述する。
ステータス情報244は、登録情報255の状態を示す情報であり、請求書情報241と対応する各種の情報の入力状態等に応じて、帳票処理部260によって生成される。ステータス情報244によって示される登録情報255の状態は、複数存在する。具体的には、ステータス情報244が示す登録情報255の状態には、例えば、以下の4つが存在する。
・未処理状態(状態1) 帳票認識によって請求書情報241が取得された直後であり、仕訳情報242や摘要欄情報243が未入力である状態。
・下書き保存状態(状態2) 請求書情報241の確認や仕訳情報242の入力等の作業の途中等であり、登録情報255が確定される前の状態。
・確定済み状態(状態3) 請求書情報241の確認や仕訳情報242の入力等の作業が完了し、確定された情報として外部へ出力できる状態。
・外部出力済み状態(状態4) 情報処理システム100と連携する会計システム等への登録情報255の出力が完了した状態。
本実施形態のステータス情報244は、登録情報255の状態が、上述した状態1~4のうち、どの状態であるかを示す情報である。
尚、図1の例では、帳票画像記憶部230と登録情報記憶部240は、情報処理装置200が有する構成としたが、これに限定されない。帳票画像記憶部230と登録情報記憶部240は、一部又は全部が、情報処理装置200と通信可能な、情報処理装置200以外の装置に設けられていても良い。
本実施形態のOCR処理部250は、帳票画像記憶部230から読み出した帳票画像データに対して文字認識処理を行う。尚、図1では、OCR処理部250は、情報処理装置200が有する機能としたが、これに限定されない。帳票画像データに対するOCR処理は、例えば、情報処理装置200以外の装置で行われても良い。
帳票処理部260は、OCR処理部250が取得したテキストデータから、帳票画像に含まれる項目と項目の値とを抽出し、項目と項目の値とを対応付ける帳票認識を行う。尚、本実施形態では、OCR処理部250は、帳票処理部260とは別に設けられるものとしたが、これに限定されない。情報処理装置200には、OCR処理部250と帳票処理部260とを含む1つの機能部によって、帳票認識が行われても良い。その場合には、帳票処理部260に、OCR処理部250が含まれるようにしても良い。
また、帳票処理部260は、登録情報記憶部240への仕訳情報242、摘要欄情報243の登録(格納)や、登録情報255の出力等を行う。
また、帳票処理部260は、入力受付部270、登録処理部280、表示処理部290を有する。
入力受付部270は、情報処理装置200に対する各種の入力を受け付ける。より具体的には、入力受付部270は、仕訳情報242の入力や、摘要欄内容の入力を受け付ける。また、入力受付部270は、情報処理装置200に対する端末装置300からの請求書情報の表示要求等を受け付ける。
登録処理部280は、請求書情報241と仕訳情報242とを参照して摘要欄情報243を作成する。そして、登録処理部280は、請求書情報241と仕訳情報242とに、摘要欄情報243を対応付けて登録情報記憶部240へ格納する。
表示処理部290は、帳票画像記憶部230に登録情報255を表示させる。また、表示処理部290は、仕訳情報242の入力画面を表示させる。このとき、表示処理部290は、摘要欄情報243を参照して、摘要欄に入力される摘要欄内容(テキストデータ)生成し、摘要欄内容が予め入力された状態で、入力画面を表示させる。
本実施形態の端末装置300は、例えば、ネットワークを介して、本実施形態の情報処理システム100と連携する基幹システムと接続される。基幹システムとは、例えば、情報処理システム100から出力される登録情報255に対して、特定の処理を行うシステムである。具体的には、例えば、基幹システムは、会計システム等の請求書を取り扱うシステムである。
以下に、図2を参照して、本実施形態の情報処理システム100の動作の概要について説明する。図2は、情報処理システムの動作の概要を説明する図である。
図2に示す画面20は、例えば、端末装置300に表示された画面の一例であり、登録情報255が表示されている。
画面20は、表示欄21、22、23と、入力欄24と、操作ボタン25と、を含む。
表示欄21には、帳票画像データが表示される。
表示欄22には、登録情報255の状態を示すステータス情報244が表示される。図2の例では、表示欄22には、「下書き保存済み」と表示されており、画面20に表示された登録情報255は、下書き保存状態(状態2)であることがわかる。
表示欄23には、表示欄21に表示された帳票画像から取得された請求書情報241が表示される。表示欄23は、表示欄23aと表示欄23bを有する。表示欄23aは、請求書情報241に含まれる請求元に関する情報が表示される。請求元に関する情報は、例えば、請求元の名称、請求金額、請求日等を含んでも良い。以下の説明では、請求元に関する情報を請求元情報と呼ぶ場合がある。
表示欄23bには、請求書情報に含まれる請求金額が表示される。
入力欄24は、仕訳情報242を入力するための入力欄である。図2の例では、仕訳情報242が入力された状態を示している。
入力欄24は、項目入力欄24aと、摘要欄24bとを含む。項目入力欄24aは、予め提供されたマスタデータから選択された値が入力される。摘要欄24bは、取引の内容を示すテキストデータ(摘要欄内容)が入力される。
また、画面20には、操作ボタン25が表示されている。操作ボタン25は、画面20を、登録情報255の状態を確定済みの状態とするための登録画面へ遷移させる。
また、本実施形態の情報処理装置200は、操作ボタン25が操作されると、摘要欄情報243を生成する。そして、情報処理装置200は、摘要欄情報243を、表示欄23に表示されている請求書情報241と、入力欄24に入力された仕訳情報242とに対応付けて、登録情報記憶部240に格納する。
つまり、本実施形態の情報処理装置200は、操作ボタン25が操作されると、摘要欄情報243を生成し、請求書情報241、仕訳情報242と対応付けて、ステータス情報244が示す状態を確定済みとするための登録画面を表示させる。
ここで、摘要欄情報243の生成について説明する。情報処理装置200は、摘要欄24bに入力されたテキストデータに含まれる文字列を、複数の種類に分類し、各文字列に分類した結果を対応付けた情報を摘要欄情報243とする。
以下に、文字列の分類について説明する。
本実施形態の情報処理装置200では、テキストデータに含まれる文字列を、請求書情報241に含まれる文字列、請求書情報241に含まれない文字列、請求書情報241に含まれ、且つ、請求書が発行される度に変更される文字列の何れかに分類する。
具体的には、情報処理装置200は、テキストデータに含まれる文字列が、請求書情報241に含まれる場合、この文字列を「種別1(第一の種別)」に分類する。種別1に分類される文字列とは、言い換えれば、帳票画像データに対してOCR処理を行うことで取得できる文字列である。
また、情報処理装置200は、テキストデータに含まれる文字列が、請求書情報241に含まれ、且つ、請求書が発行される度に変更される場合、この文字列を「種別2(第二の種別)」に分類する。種別2に分類される文字列とは、言い換えれば、帳票画像データの特定の位置から読み取られる文字列である。
また、情報処理装置200は、テキストデータに含まれる文字列が、請求書情報241に含まれない場合、この文字列を「種別3(第三の種別)」に分類する。種別3に分類される文字列とは、言い換えれば、請求書情報241から予測することができない文字列であり、過去の仕訳情報242から推測される文字列である。
本実施形態の情報処理装置200は、各文字列と、分類結果を示す種別とを対応付けて、摘要欄情報243とする。
例えば、図2の例では、摘要欄24bに入力されたテキストデータから、文字列「○○××家具センター」、「7月分」、「什器代」が抽出される。
情報処理装置200は、これらの文字列について、上述した分類を行う。この場合、文字列「○○××家具センター」と文字列「7月分」は、請求書情報241に含まれるため、種別1に分類される。また、文字列「什器代」は、請求書情報241に含まれないため、種別3に分類される。
したがって、画面20の摘要欄24bに入力されたテキストデータからは、文字列「○○××家具センター」、「7月分」と「種別1」を対応付けた情報と、文字列「什器代」と「種別3」とを対応付けた情報と、を含む摘要欄情報243が作成される。
さらに、本実施形態の情報処理装置200は、入力欄24の表示要求を受け付けると、摘要欄情報243を参照して、摘要欄24bに入力されるテキストデータを自動的に生成し、予め摘要欄24bに表示させた状態で、入力欄24を表示させる。この場合、仕訳情報242の入力欄24は、摘要欄24bのみ、データが入力された状態で表示される。
したがって、情報処理システム100のユーザは、摘要欄24bに対する摘要欄内容(テキストデータ)の入力は、自動的に表示されたテキストデータの更新が必要な場合にのみ、手入力を行えば良く、摘要欄24bの入力の手間を削減することができる。
以下に、本実施形態の情報処理装置200について、さらに説明する。図3は、情報処理装置のハードウェア構成の一例を示す図である。
本実施形態の情報処理装置200は、コンピュータによって構築されており、図3に示されているように、CPU201、ROM202、RAM203、HD204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)208、ネットワークI/F209、データバス210、キーボード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を利用してデータ通信をするためのインターフェースである。データバス210は、図3に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
また、キーボード211は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス212は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ214は、着脱可能な記録媒体の一例としてのDVD-RW213に対する各種データの読み出し又は書き込みを制御する。尚、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F216は、フラッシュメモリ等の記録メディア215に対するデータの読み出し又は書き込み(記憶)を制御する。
本実施形態の情報処理装置200は、例えば、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)、ウェアラブルPC等であっても良い。
次に、図4と図5を参照して、本実施形態の仕訳情報242と摘要欄情報243について説明する。図4は、仕訳情報の一例を示す図である。
本実施形態の仕訳情報242は、情報の項目として、ID、請求元、電話番号、口座番号、仕訳内容を含み、項目「ID」とその他の項目とが対応付けられている。
項目「ID」の値は、請求元を特定するための識別情報を示す。項目「請求元」の値は、請求元の名称を示す。項目「電話番号」の値は、請求元の電話番号を示し、項目「口座番号」の値は、請求元の銀行口座の口座番号を示す。
項目「仕訳内容」は、さらに、項目「仕訳ID」、「金額」、「科目コード」、「部門コード」、「税区分」、「摘要欄内容」等と対応付けられている。
項目「仕訳ID」、「金額」、「科目コード」、「部門コード」、「税区分」等の値は、予め提供されているマスタデータ等から選択された値を示す。
項目「摘要欄内容」の値は、摘要欄24bに入力されたテキストデータに含まれる文字列を示す。尚、項目「摘要欄内容」の値は、後述する摘要欄情報243に含まれる摘要欄内容と同様であっても良い。
図5は、摘要欄情報の一例を示す図である。本実施形態の摘要欄情報243は、情報の項目として、ID、請求元、電話番号、口座番号、摘要欄内容を含み、項目「ID」とその他の項目とが対応付けられている。
項目「ID」、「請求元」、「電話番号」、「口座番号」の値は、図4の仕訳情報242と同様であるから、説明を省略する。
項目「摘要欄内容」は、さらに、項目「順番情報」、「文字列」、「種別ID」、「詳細情報」が対応付けられている。
項目「順番情報」の値は、摘要欄24bに入力されたテキストデータに含まれる文字列の順番を示す。より具体的には、項目「順番情報」の値は、摘要欄24bに入力されたテキストデータにおいて、左から数えた場合の文字列が出現した順番を示す。
項目「文字列」の値は、テキストデータに含まれる文字列を示す。項目「種別ID」の値は、文字列の分類を示す。項目「詳細情報」の値は、帳票画像データにおける、テキストデータに含まれる文字列と一致する文字列の位置を示す座標情報である。
図5の例では、順番情報から、摘要欄24bに入力されたテキストデータにおいて、1番目の文字列「○○××家具センター」が抽出され、2番目に文字列「7月」が抽出され、3番目に文字列「什器代」が抽出されたことがわかる。
また、図5の例では、文字列「○○××家具センター」、「7月」と対応する項目「種別ID」の値が「1」であるため、文字列「○○××家具センター」、「7月」は、種別1に分類されたことがわかる。また、図5の例では、文字列「什器代」と対応する項目「種別ID」の値が「3」であるため、文字列「什器代」は、種別3に分類されたことがわかる。
このことから、図5の例では、ID「1」で特定される請求元の請求書情報に、文字列「○○××家具センター」と文字列「7月」と一致する文字列が含まれ、文字列「什器代」と一致する文字列は含まれないことがわかる。
次に、図6を参照して、本実施形態の情報処理装置200の帳票処理部260の機能構成について説明する。図6は、帳票処理部の機能構成を説明する図である。
本実施形態の帳票処理部260は、入力受付部270、登録処理部280、表示処理部290を有する。
入力受付部270は、端末装置300等に表示された入力欄24に対する入力を受け付けて、入力された情報を、請求書情報と対応付けた仕訳情報242として、登録情報記憶部240へ格納する。
本実施形態の登録処理部280は、主に摘要欄情報243の登録と更新を行う。登録処理部280は、文字列分割部281、請求書情報検索部282、分類部283、変更特定部284、登録部285、更新部286を有する。
文字列分割部281は、摘要欄24bに入力されたテキストデータを分割し、文字列とする。より具体的には、文字列分割部281は、予決められた記号や句点等に基づき、テキストデータを分割し、文字列を抽出しても良い。
請求書情報検索部282は、抽出された文字列で請求書情報241を検索する。
分類部283は、文字列分割部281によって抽出された文字列を、請求書情報241に含まれる文字列と、又は、請求書情報241に含まれない文字列と、摘要欄内容が更新された場合に、請求書情報241に含まれ、且つ、請求書が発行される度に変更される文字列と、に分類する。
言い換えれば、分類部283は、摘要欄に入力されたテキストデータに含まれる文字列を、種別1、種別2、種別3の何れかに分類する。そして、分類部283は、分類した結果を示す種別IDと、文字列とを対応付ける。
変更特定部284は、新たに摘要欄24bに入力されたテキストデータから抽出された文字列において、変更された文字列が存在する場合に、この文字列を特定する。
登録部285は、文字列と、種別IDとを対応付けた摘要欄内容を含む摘要欄情報243を登録情報記憶部240に登録する。また、登録部285は、摘要欄24bに対するテキストデータの入力と、各項目の値の入力とが完了した仕訳情報242を登録情報記憶部240に登録する。
更新部286は、請求書情報241や仕訳情報242が更新されると、登録情報255を更新する。また、更新部286は、仕訳情報242に含まれる摘要欄内容が更新された場合に、摘要欄情報243を更新する。
本実施形態の表示処理部290は、請求書情報241と摘要欄情報243とに基づき、摘要欄内容の候補となるテキストデータを生成し、請求書情報と共に端末装置300等に表示させる。
表示処理部290は、登録情報検索部291、摘要欄内容判定部292、摘要欄内容取得部293、テキスト生成部294、出力部295を有する。
登録情報検索部291は、請求書情報241に含まれる請求元を検索キーとして、登録情報記憶部240を検索する。
摘要欄内容判定部292は、請求元が、検索キーと一致する摘要欄情報243を参照し、分類済みの文字列が存在するか否かを判定する。
摘要欄内容取得部293は、摘要欄情報243に分類済みの文字列が存在する場合に、摘要欄情報243から、摘要欄内容を取得する。
テキスト生成部294は、取得した摘要欄内容に基づき、入力欄24bに表示させるテキストデータを生成する。
出力部295は、生成されたテキストデータを、取得した請求書情報241と共に出力する。具体的には、出力部295は、生成されたテキストデータが摘要欄24bに入力された状態の仕訳情報242の入力欄24と、請求書情報241の表示欄23と、を含む画面を端末装置300に表示させる。尚、出力部295が画面を表示させる装置は、端末装置300に限定されない。出力部295は、情報処理装置200のディスプレイに画面を表示させても良い。
次に、本実施形態の情報処理装置200の動作について説明する。以下では、図7及び図8を参照して、情報処理装置200の登録処理部280の処理について説明する。図7は、情報処理装置の動作を説明する第一のフローチャートであり、図8は、情報処理装置の動作を説明する第二のフローチャートである。
本実施形態の情報処理装置200では、画面20において、操作ボタン25が操作されると、端末装置300等に表示された画面20を、後述する登録画面へ遷移させる。そして、情報処理装置200は、登録画面において、登録情報255を確定済みの状態とする操作が行われると、登録情報255のステータス情報244が示す状態を、下書き保存状態(状態2)から確定済み状態(状態3)へ変更する。
帳票処理部260において、入力受付部270は、登録画面において、登録情報255を確定済みの状態とする操作を受け付ける(ステップ701)。
続いて、帳票処理部260は、登録処理部280の文字列分割部281によって、仕訳情報242に含まれる、摘要欄24bに入力されたテキストデータを分割し、文字列を抽出する(ステップS702)。尚、このとき、文字列分割部281は、文字列と共に、テキストデータにおいて文字列が出現した順番を示す情報を取得する。言い換えれば、文字列分割部281は、項目「順番情報」の値を取得する。
続いて、帳票処理部260は、請求書情報検索部282により、請求書情報241に含まれる請求元で、登録情報記憶部240の登録情報255を検索する(ステップS703)。
続いて、帳票処理部260は、請求書情報検索部282により、請求元が一致する請求書情報が、登録情報記憶部240に格納されているか否かを判定する(ステップS704)。
ステップS704において、登録情報記憶部240に該当する請求書情報が格納されている場合、帳票処理部260は、図8の処理へ進む。
ステップS704において、登録情報記憶部240に該当する請求書情報が格納されていない場合、この請求元から発行された請求書の請求書情報241は、新規の請求書情報であることを示す。
ステップS704において、該当する請求書情報が格納されていない場合、帳票処理部260は、請求書情報検索部282により、ステップS702で抽出された文字列で、ステップS701で確定済みの状態とされた請求書情報241を検索する(ステップS705)。
つまり、ここでは、請求書情報検索部282は、帳票画像データの帳票認識によって、新たに取得された請求書情報241に対して、文字列をキーとした検索を行う。
続いて、帳票処理部260は、分類部283により、請求書情報241に、キーとなる文字列と一致する文字列が存在するか否かを判定する(ステップS706)。
ステップS706において、請求書情報241に、該当する文字列が存在する場合、分類部283により、キーとなる文字列を種別ID「1」に分類し、この文字列と順番情報と、種別ID「1」とを対応付けて摘要欄情報243に追加し(ステップS707)、後述するステップS709へ進む。
ステップS706において、請求書情報241に、該当する文字列が存在しない場合、分類部283は、キーとなる文字列を種別ID「3」に分類し、この文字列と順番情報と、種別ID「3」とを対応付けて摘要欄情報243に追加し(ステップS708)、後述するステップS709へ進む。
帳票処理部260は、ステップS702で抽出した文字列のうち、ステップS705以降の処理を行っていない文字列が存在するか否かを判定する(ステップS709)。ステップS709において、該当する文字列が存在する場合、つまり、摘要欄に入力されたテキストデータから抽出された全ての文字列の分類が完了していない場合、帳票処理部260は、ステップS705へ戻る。
ステップS709において、該当する文字列が存在しない場合、つまり、摘要欄に入力されたテキストデータから抽出された全ての文字列の分類が完了した場合、登録処理部280は、登録部285によって、請求書情報241、仕訳情報242と共に、摘要欄情報243を対応付けて、ステータス情報244が示す状態を「確定済みの状態」とした登録情報255を登録情報記憶部240へ登録し(ステップS710)、処理を終了する。
ステップS704において、登録情報記憶部240に該当する請求書情報が格納されている場合、登録処理部280は、変更特定部284により、該当する請求書情報241と対応付けられた摘要欄情報243に含まれる摘要欄内容と、ステップS702で抽出された文字列とを比較する。言い換えれば、変更特定部284は、過去に入力された仕訳情報242に含まれる摘要欄内容と、新たに入力された仕訳情報242の摘要欄内容とを比較する。以下の説明では、過去の摘要欄内容とは、登録情報記憶部240に格納されている摘要欄情報243に含まれる摘要欄内容を示すものとする。
そして、変更特定部284は、過去の摘要欄内容から、変更・追加・削除された文字列を特定する(ステップS801)。
尚、変更特定部284は、過去の摘要欄内容に含まれる文字列と、新たな摘要欄内容に含まれる文字列について、順番情報が示す順に比較する。
このように比較することで、変更特定部284は、過去の摘要欄内容に含まれる文字列と、新たな摘要欄内容に含まれる文字列について、一致すれば変更・追加・削除なしと特定し、変更された場合に変更と特定することができる。また、変更特定部284は、新たな摘要欄内容に、過去にはない文字列が存在する場合に追加と特定し、過去の摘要欄内容に含まれた文字列が、新たな摘要欄内容にない場合に削除と特定することができる。
続いて、帳票処理部260は、変更特定部284により、変更と特定された文字列に、種別1又は種別2と分類された文字列が存在するか否かを判定する(ステップS802)。
ステップS802において、該当する文字列が存在しない場合、帳票処理部260は、後述するステップS808へ進む。
ステップS802において、該当する文字列が存在する場合、登録処理部280は、請求書情報検索部282により、該当する文字列をキーとして、ステップS701で確定済みの状態の請求書情報241を検索する(ステップS803)。言い換えれば、請求書情報検索部282は、該当する文字列をキーとして、帳票認識によって新たに取得された請求書情報241を検索する。
続いて、請求書情報検索部282は、請求書情報241に、キーとなる文字列と一致する文字列が存在するか否かを判定する(ステップS804)。
尚、請求書情報検索部282は、例えば、キーとなる文字列の一部が一致する文字列についても、キーとなる文字列と一致する文字列と判定しても良い。
例えば、ここで、該当する文字列が「7月分」であり、請求書情報241に、文字列「7月分」の一部である文字列「7月」が存在する場合には、請求書情報検索部282は、文字列「7月」を、該当する文字列「7月分」と一致する文字列と判定してもよい。
また、本実施形態では、この検索を行う際に、予め設定された細かいルールに基づいて検索を行っても良い。
例えば、請求書情報検索部282は、ユーザが入力した文字列には、「年」、「月」、「日」のような時間を表す文字列が含まれた場合に、この文字列と「請求日」とをANDでキーワード検索を行っても良い。すなわち、入力された文字列と「請求日」とが両方含むキーワードを検索する。また、この場合、予め設定された「請求日」の所定の位置(例えば、200ピクセル)の領域の中から文字列を検索しても良い。
ステップS804において、一致する文字列が存在する場合、更新部286は、過去の摘要欄情報243における文字列を、変更後の文字列に更新し、種別IDを種別ID「2」に更新する。そして、更新部286は、帳票画像における、一致する文字列が記載された位置を示す座標情報を取得し、摘要欄情報243の詳細情報とし(ステップS805)、後述するステップS807に進む。
ステップS804において、一致する文字列が存在しない場合、更新部286は、過去の摘要欄情報243における文字列を、変更後の文字列に更新し、種別IDを種別ID「3」に更新する(ステップS806)。
続いて、帳票処理部260は、変更と特定された文字列であって、種別1又は種別2に分類された文字列のうち、請求書情報241の検索キーとされていない文字列が存在するか否かを判定する(ステップS807)。
ステップS807において、該当する文字列が存在する場合、帳票処理部260は、ステップS803へ戻る。
ステップS807において、該当する文字列が存在しない場合、帳票処理部260は、変更特定部284により、追加と特定された文字列、又は、変更された文字列のうち種別3に分類された文字列が存在するか否かを判定する(ステップS808)。
ステップS808において、該当する文字列が存在しない場合、後述するステップS814へ進む。
ステップS808において、該当する文字列が存在する場合、請求書情報検索部282は、該当する文字列をキーとして、ステップS701で確定済みの状態とされた請求書情報241を検索する(ステップS809)。
続いて、請求書情報検索部282は、請求書情報241に、キーとなる文字列と一致する文字列が存在するか否かを判定する(ステップS810)。
ステップS810において、一致する文字列が存在する場合、更新部286は、過去の摘要欄情報243における文字列を、変更後の文字列に更新し、種別IDを種別ID「1」に更新し(ステップS811)、後述するステップS813へ進む。
ステップS810において、一致する文字列が存在する場合、更新部286は、過去の摘要欄情報243における文字列を、変更後の文字列に更新し、種別IDを種別ID「3」に更新する(ステップS812)。
続いて、帳票処理部260は、追加と特定された文字列、又は、変更された文字列のうち種別3に分類された文字列のうち、請求書情報241の検索キーとされていない文字列が存在するか否かを判定する(ステップS813)。
ステップS813において、該当する文字列が存在する場合、帳票処理部260は、ステップS809へ戻る。
ステップS813において、該当する文字列が存在しない場合、更新部286は、過去の摘要欄情報243のから削除された文字列が存在するか否かを判定する(ステップS814)。ステップS814において、該当する文字列が存在しない場合、帳票処理部260は、図7のステップS710へ進む。
ステップS814において、該当する文字列が存在する場合、更新部286は、過去の摘要欄情報243から該当する文字列を削除し(ステップS815)、図7のステップS710へ進む。
以上のように、本実施形態では、図7の処理によって、新規に請求書情報241と仕訳情報242とが入力された場合には、新たな摘要欄情報243を作成し、請求書情報241と仕訳情報242とに対応付けて登録情報255とすることができる。
また、本実施形態では、図8の処理によって、登録情報記憶部240に格納された登録情報255に含まれる仕訳情報242の摘要欄内容が変更された場合に、変更後の摘要欄内容に合わせて摘要欄情報243を更新することができる。
以下に、図9に参照して、図7のステップS701で端末装置300等に表示される登録画面について説明する。図9は、登録画面の一例を示す図である。
図9に示す画面20Aは、例えば、図2に示す画面20の表示欄23に表示された請求書情報241と、入力欄24に入力された仕訳情報242との登録を確定させるための画面である。
画面20Aでは、登録を確定させるための操作ボタン27aを含む表示欄27が表示されている。表示欄27には、例えば、請求元の情報が表示される。
請求元の情報とは、請求元を特定するための情報であり、請求元の名称だけではなく、請求元の電話番号、口座番号、住所等の情報であってもよい。また、請求元の情報は、請求書情報に含まれる請求元の名称等であってもよいし、ユーザが表示欄27のダイアログに入力した請求元の電話番号等であってもよい。
本実施形態では、画面20Aにおいて、操作ボタン27aが操作されると、図7のステップS701以降の処理が実行される。
次に、図10及び図11を参照して、本実施形態の登録処理部280の処理について、具体的に説明する。
図10は、OCR処理について説明する図である。図10に示す読取結果情報101は、OCR処理部250によるOCR処理を行った結果である。
図10の例では、画面20の表示欄21に表示された帳票画像データ(図2参照)に対しから文字フィールドを切り取り、文字フィールドの中の文字を認識した結果と、文字の位置を示す座標とから抽出されたものである。
本実施形態の帳票処理部260は、この読取結果情報101から、隣り合う位置にある文字同士をつなげて文字列を認識する。また、本実施形態では、読取結果情報101に基づき認識された文字列と、各文字列の帳票画像データにおける位置を示す座標情報とが、請求書情報241に含まれるものとした。
図10に示す情報102は、請求書情報241の一部である。情報102では、文字列「○○××家具センター」、「請求日」、「7月」、「20日」等が認識されている。これらの文字列は、請求書情報241に含まれる文字列である。
次に、図11を参照して、摘要欄情報243の更新について説明する。図11は、摘要欄情報の更新について説明する図である。
図11(A)に示す摘要欄情報243は、請求書情報241と仕訳情報242に対応付けられて、登録情報記憶部240に格納された過去の摘要欄情報の一例を示す。図11(B)に示す摘要欄情報243Aは、新たに請求書情報と、仕訳情報と[t1]が入力された際に、摘要欄情報243を更新した情報である。
本実施形態の帳票処理部260は、例えば、画面20Aにおいて、操作ボタン27aが操作されると(図9参照)、画面20の表示欄23に表示された請求書情報241と、入力欄24に入力された仕訳情報242(図2参照)と、摘要欄24bに入力されたテキストデータを分割し、文字列を抽出する。
ここでは、文字列「○○××家具センター」、「7月」、「什器代」が抽出される。このとき、文字列「○○××家具センター」の順番情報「1」、文字列「7月」の順番情報「2」、文字列「什器代」の順番情報「3」が取得される。また、帳票処理部260は、請求元である「○○××家具センター」で、登録情報記憶部240を検索する。
ここでは、請求元「○○××家具センター」である請求書情報241は、新規のものとする。
したがって、請求元「○○××家具センター」が一致する請求書情報241は、登録情報記憶部240に格納されていない。
したがって、帳票処理部260は、文字列「○○××家具センター」、「7月」、「什器代」のそれぞれを分類する。文字列「○○××家具センター」、「7月」は、請求書情報241に一致する文字列が含まれるため、種別ID「1」とされる。また、文字列「什器代」は、請求書情報241に一致する文字列が含まれないため、種別ID「3」とされる。
これらの各文字列と、分類結果の種別IDとを対応付けた情報が、図11(A)の摘要欄情報243である。
帳票処理部260は、摘要欄情報243が作成されると、請求書情報241と仕訳情報242と摘要欄情報243とを対応付けた登録情報255を登録情報記憶部240に格納する。
次に、帳票処理部260が、請求元が「○○××家具センター」の新たな請求書情報を取得した場合について説明する。
この場合、帳票処理部260は、新たな請求書情報に対する仕訳情報が完了し、登録を確定させる指示を受けると、新たな仕訳情報から、摘要欄内容として入力されたテキストデータを取得し、文字列を抽出する。ここで、登録情報記憶部240には、既に、請求元が「○○××家具センター」の登録情報255が格納されているため、帳票処理部260は、図8の処理へ進む。
帳票処理部260は、登録済みの摘要欄情報243(図11(A)参照)の文字列と、新たな仕訳情報から抽出された文字列とを比較し、変更・追加・削除のあった文字列を特定する。
摘要欄情報243に含まれる文字列は、「○○××家具センター」、「7月」、「什器代」であり、新たに請求書情報から抽出された文字列は、文字列「○○××家具センター」、「8月」、「什器代」である。したがって、変更特定部284は、2番目の文字列「7月」が、変更された文字列に特定される。
2番目の文字列「7月」の種別は、「1」である。したがって、帳票処理部260は、2番目の文字列「7月」の変更後の文字列「8月」をキーとして、新たな請求書情報を検索する。
文字列「8月」と同一の文字列は、新たな請求書情報に含まれる。したがって、更新部286は、摘要欄情報243の摘要欄内容のうち、文字列「7月」を文字列「8月」とし、種別IDを「2」に更新する。さらに、更新部286は、新たな請求書情報における文字列「8月」が記載された位置を示す座標情報を取得する。
そして、更新部286は、摘要欄情報243の摘要欄内容の文字列「7月」について、文字列「7月」を「8月」とし、種別IDを「1」から「2」とし、詳細情報に座標情報を追加した、更新済みの摘要欄情報243Aを作成する。
本実施形態では、このように、最新の摘要欄内容に合わせて、摘要欄情報243を更新することができる。
次に、図12を参照して、本実施形態の表示処理部290の処理について説明する。図12は、情報処理装置の動作を説明する第三のフローチャートである。
本実施形態では、帳票画像記憶部230に格納された帳票画像データに対して、OCR処理部250によるOCR処理を行って、請求書情報が取得されると、この請求書情報は登録情報記憶部240に格納される。
このとき、この請求書情報は、仕訳情報の入力処理が行われておらず、登録情報255として登録することができない未確定の請求書情報である。言い換えれば、OCR処理部250によって新たに取得された請求書情報は、登録前の請求書情報であり、未確定の請求書情報である。
本実施形態の情報処理装置200は、例えば、入力受付部270により、端末装置300等から、登録前の請求書情報群の一覧の表示要求を受け付けると、登録前の請求書情報の一覧をジョブリストとして表示させても良い。この場合のジョブとは、仕訳情報を入力する処理が要求される未確定の請求書情報を示す。
本実施形態の帳票処理部260において、表示処理部290は、端末装置300等に表示されたジョブリストから、1つのジョブの選択を受け付ける(ステップS1201)。
続いて、表示処理部290は、登録情報検索部291により、選択されたジョブ(未確定の請求書情報)に対応する請求元で、登録情報記憶部240の登録情報255を検索する(ステップS1202)。
続いて、表示処理部290は、該当する請求元の請求書情報241が登録情報255に存在するか否かを判定する(ステップS1203)。
ステップS1203において、該当する請求書情報241が存在しない場合、表示処理部290は、この請求書情報が新規の請求書情報であるものとし、請求書情報が表示された表示欄23と、摘要欄24bを初期状態(空欄)とした仕訳情報の入力欄24とを含む画面を端末装置300に表示させ(ステップS1204)、処理を終了する。
ステップS1203において、該当する請求書情報241が存在する場合、表示処理部290は、摘要欄内容判定部292により、請求書情報241と対応する摘要欄情報243の摘要欄内容に種別ID「1」又は「3」の文字列が存在するか否かを判定する(ステップS1205)。
ステップS1205において、該当する文字列が存在しない場合、表示処理部290は、後述するステップS1207へ進む。
ステップS1205において、該当する文字列が存在する場合、表示処理部290は、摘要欄内容取得部293により、摘要欄情報243から、該当する文字列と、文字列と対応する順番情報とを取得する(ステップS1206)。
続いて、表示処理部290は、摘要欄内容判定部292により、摘要欄情報243の摘要欄内容に、種別ID「2」の文字列が存在するか否かを判定する(ステップS1207)。
ステップS1207において、該当する文字列が存在しない場合、表示処理部290は、後述するステップS1210へ進む。
ステップS1207において、該当する文字列が存在する場合、表示処理部290は、摘要欄内容取得部293により、該当する文字列と対応する詳細情報が示す座標情報と、順番情報とを取得する(ステップS1208)。
続いて、表示処理部290は、摘要欄内容取得部293により、請求書情報から、ステップS1208で取得した座標情報と対応する位置にある文字列を取得する(ステップS1209)。
続いて、表示処理部290は、取得した文字列が存在するか否かを判定する(ステップS1210)。ステップS1210において、取得した文字列が存在しない場合、表示処理部290は、ステップS1204へ進む。
ステップS1210において、取得した文字列が存在する場合、表示処理部290は、テキスト生成部294により、取得した文字列を、順番情報が示す順に列挙したテキストデータを生成する(ステップS1211)。
続いて、表示処理部290は、出力部295により、請求書情報が表示された表示欄23と、生成したテキストデータを、摘要欄24bに入力した状態の入力欄24と、を含む画面を端末装置300に表示させ(ステップS1212)、処理を終了する。
以下に、図13を参照して、表示処理部290によって出力される画面の例について説明する。図13は、仕訳情報の入力欄の表示例を示す図である。
図13に示す画面20Bは、表示欄21A、22A、23Aと、入力欄24Aと、操作ボタン25を含む。
表示欄21Aには、新たにOCR処理部250の処理の対象とされた帳票画像が表示される。
表示欄22Aには、「未処理」と表示されており、帳票認識によって請求書情報241が取得された直後であり、仕訳情報242や摘要欄情報243が未入力である状態ことを示している。言い換えれば、図13の例では、表示欄22Aは、表示欄23Aに表示された請求書情報241に対する仕訳情報242の入力が行われていないことを示している。
表示欄23Aは、表示欄21Aに表示された帳票画像を示す帳票画像データから取得された請求書情報241が表示される。
表示欄23Aに表示された請求書情報241は、図2の画面20の表示欄23に表示された請求書情報241と、請求元が一致する請求書情報である。
入力欄24Aは、表示欄23Aに表示された請求書情報241に対する仕訳情報242の入力欄であり、項目入力欄24a1と、摘要欄24b1とを含む。
図13の例では、仕訳情報242は未入力である。したがって、項目入力欄24aに含まれる各項目の値の入力欄は空欄である。
これに対し、摘要欄24b1は、文字列「○○××家具センター」、「8月」、「什器代」が列挙されたテキストデータが入力されている。
このテキストデータは、請求元が「○○××家具センター」である登録情報255に含まれる摘要欄情報243に基づき、図12に示す処理を実行することで生成される。
本実施形態では、種別ID「1」に分類された文字列は、請求元が同じ全ての請求書情報に含まれる文字列であり、固定の文字列である。
また、種別ID「2」に分類された文字列は、請求書情報の特定の位置から読み取られる文字列であり、帳票画像データに対して文字認識処理を行う度に、請求書情報から取得される文字列である。
また、種別ID「3」に分類された文字列は、請求書情報をから予測できない文字列であり、過去の請求書情報241に対して入力された仕訳情報242に含まれる文字列が採用される。
このように、本実施形態では、請求書情報に含まれる文字列と、過去の摘要欄内容とに基づき、摘要欄に入力するテキストデータを予め生成し、入力した状態で表示させることができる。
したがって、本実施形態によれば、ユーザが摘要欄に対して、全てを手入力しなくても良く、ユーザの摘要欄への入力の手間を削減できる。このように、本実施形態によれば、摘要欄の入力を支援することができる。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
また、上述した実施形態に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、情報処理装置200は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、情報処理装置200は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。さらに、情報処理装置200は、開示された処理ステップ、例えば図7,8,12を様々な組み合わせで共有するように構成できる。例えば、所定のユニットによって実行されるプロセスは、情報処理装置200によって実行され得る。同様に、所定のユニットの機能は、情報処理装置200によって実行することができる。また、情報処理装置200の各要素は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
また、明細書中の対応テーブル(表)は、機械学習の学習効果によって生成されたものでもよい。ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり,コンピュータが,データ識別等の判断に必要なアルゴリズムを,事前に取り込まれる学習データから自律的に生成し,新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。