(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-18
(45)【発行日】2025-02-27
(54)【発明の名称】経費検査装置、経費検査方法、およびプログラム
(51)【国際特許分類】
G06Q 10/10 20230101AFI20250219BHJP
【FI】
G06Q10/10
(21)【出願番号】P 2021080347
(22)【出願日】2021-05-11
【審査請求日】2024-03-21
(73)【特許権者】
【識別番号】518079839
【氏名又は名称】Miletos株式会社
(74)【代理人】
【識別番号】100115749
【氏名又は名称】谷川 英和
(72)【発明者】
【氏名】平野 将章
【審査官】阿部 潤
(56)【参考文献】
【文献】特開2014-174714(JP,A)
【文献】特開2021-9428(JP,A)
【文献】特開2009-187182(JP,A)
【文献】特許第6822717(JP,B1)
【文献】特開2003-256462(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
ユーザが入力した経費に関する入力経費情報と経費に対応する領収書画像とを受け付ける受付部と、
前記領収書画像に対するOCRの結果である1以上のOCR文字列を取得する文字列取得部と、
前記入力経費情報と前記1以上のOCR文字列とを比較し、前記入力経費情報の確からしさに関するスコアを取得するスコア取得部と、
前記スコアに関する関連情報を出力する関連情報出力部とを具備
し、
前記スコア取得部は、
前記入力経費情報を構成する部分であるn-gramの文字列である2以上の部分情報を取得し、当該2以上の各部分情報と最も距離が小さい文字列を前記1以上のOCR文字列から検知し、当該検知した最も距離が小さい各文字列に対する距離を用いて、前記スコアを取得する、経費検査装置。
【請求項2】
前記領収書画像の中に、2以上の領収書が含まれる、請求項1記載の経費検査装置。
【請求項3】
前記文字列取得部は、
前記2以上の領収書の画像の境界を決定せずに、前記2以上の領収書の各画像から1以上のOCR文字列を取得する、請求項2記載の経費検査装置。
【請求項4】
前記受付部は、
2以上の入力経費情報と2以上の領収書が含まれる領収書画像とを受け付け、
前記文字列取得部は、
前記2以上の領収書が含まれる前記領収書画像に対するOCRの結果である1以上のOCR文字列を取得し、
前記スコア取得部は、
前記2以上の各入力経費情報と前記1以上のOCR文字列とを比較し、前記入力経費情報の確からしさに関するスコアを取得する、請求項2または請求項3記載の経費検査装置。
【請求項5】
前記関連情報出力部は、
前記スコアが予め決められた条件を満たすほど低い確率を示す情報である場合、前記入力経費情報に対応するユーザ、または管理者に、前記入力経費情報の誤りに関する関連情報を通知する、請求項1から請求項
4いずれか一項に記載の経費検査装置。
【請求項6】
前記関連情報出力部は、
前記スコアに関する関連情報を前記入力経費情報に対応付けて出力する、請求項1から請求項
5いずれか一項に記載の経費検査装置。
【請求項7】
ユーザが入力した経費に関する入力経費情報と経費に対応する領収書画像とを受け付ける受付部と、
前記領収書画像に対するOCRの結果である1以上のOCR文字列を取得する文字列取得部と、
前記入力経費情報と前記1以上のOCR文字列とを比較し、前記入力経費情報の確からしさに関するスコアを取得するスコア取得部と、
前記スコアに関する関連情報を出力する関連情報出力部とを具備し、
前記入力経費情報は、日付、金額、支払先のうちの2以上の情報を含み、
前記スコア取得部は、
前記2以上の各情報と前記1以上のOCR文字列とを比較し、前記2以上の各情報ごとにスコアを取得し、当該2以上のスコアの代表値である代表スコアを取得し、
前記関連情報出力部は、
前記代表スコアに関する関連情報を出力する、経費検査装置。
【請求項8】
請求項1から請求項7いずれか一項に記載の経費検査装置が行うすべてのステップを具備する経費検査方法。
【請求項9】
コンピュータを、
請求項1から請求項7いずれか一項に記載の経費検査装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが入力した経費に関する情報を検査する経費検査装置等に関するものである。
【背景技術】
【0002】
従来、入力された経費情報に対して、仕訳を自動的に作成することができる仕訳自動作成機能付きの会計システムが存在した(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術においては、経費の入力に対する適切な確認が困難であった。
【課題を解決するための手段】
【0005】
本第一の発明の経費検査装置は、ユーザが入力した経費に関する入力経費情報と経費に対応する領収書画像とを受け付ける受付部と、領収書画像に対するOCRの結果である1以上のOCR文字列を取得する文字列取得部と、入力経費情報と1以上のOCR文字列とを比較し、入力経費情報の確からしさに関するスコアを取得するスコア取得部と、スコアに関する関連情報を出力する関連情報出力部とを具備する経費検査装置である。
【0006】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【0007】
また、本第二の発明の経費検査装置は、第一の発明に対して、領収書画像の中に、2以上の領収書が含まれる、経費検査装置である。
【0008】
かかる構成により、2以上の領収書が含まれる領収書画像を用いた入力された経費の情報に対するも、適切な確認が可能となる。
【0009】
また、本第三の発明の経費検査装置は、第二の発明に対して、文字列取得部は、2以上の領収書の画像の境界を決定せずに、2以上の領収書の各画像から1以上のOCR文字列を取得する、経費検査装置である。
【0010】
かかる構成により、2以上の領収書が含まれる領収書画像を用いた入力された経費の情報に対するも、容易な処理により、適切な確認が可能となる。
【0011】
また、本第四の発明の経費検査装置は、第二または第三の発明に対して、受付部は、2以上の入力経費情報と2以上の領収書が含まれる領収書画像とを受け付け、文字列取得部は、2以上の領収書が含まれる領収書画像に対するOCRの結果である1以上のOCR文字列を取得し、スコア取得部は、2以上の各入力経費情報と1以上のOCR文字列とを比較し、入力経費情報の確からしさに関するスコアを取得する、経費検査装置である。
【0012】
かかる構成により、2以上の経費の入力と2以上の領収書が含まれる領収書画像とが混在して存在している場合でも、適切な確認が可能となる。
【0013】
また、本第五の発明の経費検査装置は、第一から第四いずれか1つの発明に対して、スコア取得部は、入力経費情報を構成する部分である2以上の部分情報を取得し、2以上の各部分情報と1以上のOCR文字列の中の文字列とを比較し、2以上の各部分情報に対する比較結果を用いてスコアを取得する、経費検査装置である。
【0014】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【0015】
また、本第六の発明の経費検査装置は、第五の発明に対して、スコア取得部は、入力経費情報を構成する要素情報のn-gramの文字列である部分情報を取得し、部分情報と一致する文字列である一致文字列を1以上のOCR文字列から検知し、要素情報の中の一致文字列の前に位置する前方文字列の文字数である前方文字数と、要素情報の中の一致文字列の後に位置する後方文字列の文字数である前方文字数とを取得し、一致文字列を含むOCR文字列の中から、一致文字列の前方文字数の数の前方文字列であるOCR前方文字列と、一致文字列と、一致文字列の後方文字数の数の後方文字列であるOCR後方文字列とからなる比較文字列を取得し、要素情報と比較文字列との距離を算出し、距離を用いて、スコアを取得する、経費検査装置である。
【0016】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【0017】
また、本第七の発明の経費検査装置は、第六の発明に対して、スコア取得部は、入力経費情報を構成する要素情報を用いて、要素情報と同じ意味の異なる表記である第二要素情報を生成し、第二要素情報に対する比較文字列を取得し、第二要素情報と比較文字列との距離をも算出し、距離をも用いて、スコアを取得する、経費検査装置である。
【0018】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【0019】
また、本第八の発明の経費検査装置は、第一から第七いずれか1つの発明に対して、関連情報出力部は、スコアが予め決められた条件を満たすほど低い確率を示す情報である場合、入力経費情報に対応するユーザ、または管理者に、入力経費情報の誤りに関する関連情報を通知する、経費検査装置である。
【0020】
かかる構成により、適切でない可能性の高い経費の情報が入力された場合に、適切な通知ができる。
【0021】
また、本第九の発明の経費検査装置は、第一から第七いずれか1つの発明に対して、関連情報出力部は、スコアに関する関連情報を入力経費情報に対応付けて出力する、経費検査装置である。
【0022】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【0023】
また、本第十の発明の経費検査装置は、第一から第九いずれか1つの発明に対して、入力経費情報は、日付、金額、支払先のうちの2以上の情報を含み、スコア取得部は、2以上の各情報と1以上のOCR文字列とを比較し、2以上の各情報ごとにスコアを取得し、2以上のスコアの代表値である代表スコアを取得し、関連情報出力部は、代表スコアに関する関連情報を出力する、経費検査装置である。
【0024】
かかる構成により、入力された経費の情報に対する適切な確認が可能となる。
【発明の効果】
【0025】
本発明による経費検査装置によれば、経費の入力に対して適切な確認が可能となる。
【図面の簡単な説明】
【0026】
【
図1】実施の形態1における情報システムAの概念図
【
図3】同経費検査装置1の動作例について説明するフローチャート
【
図4】同要素スコア取得処理の例について説明するフローチャート
【
図5】同第二要素情報生成処理の例について説明するフローチャート
【
図6】同部分スコア取得処理の例について説明するフローチャート
【
図7】同関連情報取得処理の例について説明するフローチャート
【
図13】同スコア取得処理における部分情報と比較文字列の組の管理表の例を示す図
【発明を実施するための形態】
【0027】
以下、経費検査装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0028】
(実施の形態1)
本実施の形態において、ユーザが入力した入力経費情報と、当該入力経費情報に対応する領収書画像のOCR結果とを比較し、入力経費情報の確からしさに関するスコアを取得し、スコアに関する関連情報を出力する経費検査装置について説明する。なお、本実施の形態において、領収書画像には、2以上の領収書の画像が含まれていても良い。また、本実施の形態において、例えば、入力経費情報の一部の情報とOCR結果の一部の情報との距離を用いて、スコアを取得する。
【0029】
また、本実施の形態において、2以上の入力経費情報と2以上の領収書の画像が含まれる場合でも、入力経費情報の確からしさに関するスコアを取得し、スコアに関する関連情報を出力できる経費検査装置について説明する。
【0030】
図1は、本実施の形態における情報システムAの概念図である。情報システムAは、経費検査装置1、および1または2以上の端末装置2を備える。
【0031】
経費検査装置1は、入力経費情報を検査する装置である。経費検査装置1は、通常、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、経費検査装置1の種類は問わない。
【0032】
端末装置2は、ユーザが使用する端末である。ユーザは、例えば、経費の申請を行うユーザである。ユーザは、例えば、経理の担当者、管理者等である。端末装置2は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。
【0033】
図2は、本実施の形態における情報システムAのブロック図である。
【0034】
経費検査装置1は、格納部11、受付部12、処理部13、および出力部14を備える。格納部11は、ユーザ情報格納部111、および経費情報格納部112を備える。処理部13は、文字列取得部131、スコア取得部132、および関連情報取得部133を備える。出力部14は、関連情報出力部141を備える。
【0035】
端末装置2は、端末格納部21、端末受付部22、端末処理部23、端末送信部24、端末受信部25、および端末出力部26を備える。
【0036】
経費検査装置1を構成する格納部11には、各種の情報が格納される。各種の情報とは、例えば、後述するユーザ情報、後述する経費情報、後述するスコアの算出のための演算式、後述するパターン、正常条件である。なお、1以上の各パターンは、後述する種類識別子に対応付いていることは好適である。また、正常条件は、スコアが正常であるか否かを判断するための条件である。正常条件は、例えば、スコアが閾値以上、スコアが閾値より大きいことである。正常条件は、種類識別子ごとに存在していても良い。
【0037】
ユーザ情報格納部111には、1または2以上のユーザ情報が格納される。ユーザ情報は、ユーザに関する情報である。ユーザ情報は、通常、ユーザ識別子を有する。ユーザ情報は、通常、1以上のユーザ属性値を有する。ユーザ識別子は、ユーザを識別する情報である。ユーザ識別子は、例えば、ユーザID、社員番号、メールアドレス、電話番号等である。1以上のユーザ属性値は、例えば、氏名、会社名、部署名、メールアドレス、上司のメールアドレスである。
【0038】
経費情報格納部112には、1または2以上の経費情報が格納される。経費情報とは、申請された経費の内容を特定する情報である。経費情報は、例えば、日付、金額、支払先を有する。経費情報は、例えば、科目、摘要等を有する。支払先は、経費を支払った先の企業名、店名等である。1以上の各経費情報には、例えば、領収書画像が対応付いている。2以上の経費情報に、一の領収書画像が対応付いていても良い。2以上の経費情報に、2以上の領収書画像が対応付いていても良い。領収書画像は、領収書が含まれた画像である。例えば、一の領収書画像の中に、一の領収書の画像のみが含まれる。ただし、領収書画像に、2以上の領収書の画像が含まれていても良い。領収書画像は、例えば、jpeg、gif等であるが、データフォーマットは問わない。領収書画像は、例えば、ファイルであるが、DB内の情報でも良い。領収書画像は、文字認識処理の対象の情報である。
【0039】
受付部12は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、入力経費情報と領収書画像である。入力経費情報は、ユーザが入力した経費に関する情報である。入力経費情報は、1または2以上の要素情報を有する。要素情報は、入力経費情報または経費情報を構成する情報である。要素情報は、例えば、日付、金額、支払先である。入力経費情報は、日付、金額、支払先のうちの2以上の要素情報を含むことは好適である。入力経費情報を構成する全部または一部の要素情報は、経費情報を構成する情報となる。なお、入力経費情報の中の2以上の各要素情報の区切り方は問わない。例えば、入力経費情報の中の2以上の各要素情報には、タグが対応付いている。例えば、入力経費情報の中の2以上の各要素情報は、区切り文字により区切られている。区切り文字は、例えば、「,」「|」スペース等であるが、問わない。
【0040】
受付部12は、対応付いた入力経費情報と領収書画像とを受け付ける。受付部12は、2以上の入力経費情報と一の領収書画像とを、対応付けて受け付けても良い。
【0041】
受付部12は、2以上の入力経費情報と2以上の領収書が含まれる領収書画像とを、対応付けて受け付けても良い。
【0042】
受付部12は、例えば、出力指示を受け付ける。出力指示とは、経費情報等の出力の指示である。出力指示は、出力する経費情報等の条件を示す情報を含む。
【0043】
なお、ここで受け付けとは、通常、端末装置2からの受信である。ただし、受け付けとは、情報を取得できれば良い。また、受付部12は、入力経費情報と領収書画像とを一緒に受け付ける必要はない。受付部12は、入力経費情報と領収書画像とを対応づけられる態様で取得できれば良い。
【0044】
処理部13は、各種の処理を行う。各種の処理は、文字列取得部131、スコア取得部132、関連情報取得部133が行う処理である。
【0045】
文字列取得部131は、受付部12が受け付けた領収書画像に対するOCRの結果である1以上のOCR文字列を取得する。一のOCR文字列は、例えば、1行の文字列である。ただし、OCR文字列は、2行以上の文字列であっても良い。
【0046】
文字列取得部131は、公知のOCR技術(文字認識技術)により実現可能である。OCR文字列は、OCRの結果の文字列である。
【0047】
文字列取得部131は、領収書画像に対して文字認識された結果である1以上のOCR文字列を、図示しない外部の装置から受信しても良い。かかる場合、文字列取得部131は、文字認識処理は行わない。かかる場合、文字列取得部131は、例えば、文字認識処理を行う外部の装置に領収書画像を送信し、当該外部の装置から1以上のOCR文字列を受信する。
【0048】
一の領収書画像に、2以上の領収書の画像が含まれる場合、文字列取得部131は、2以上の領収書の画像の境界を決定せずに、当該一の領収書画像を文字認識処理した結果である1以上のOCR文字列を取得することは好適である。つまり、文字列取得部131は、受け付けられた領収書画像のファイルに対して行われた文字認識処理の結果である1以上のOCR文字列を取得する。
【0049】
なお、一の領収書画像に、2以上の領収書の画像が含まれる場合、文字列取得部131は、2以上の各領収書の画像から取得される文字列が混在している状況の1以上のOCR文字列を取得しても良い。
【0050】
スコア取得部132は、入力経費情報と1以上のOCR文字列とを比較し、スコアを取得する。スコアは、入力経費情報の確からしさに関する情報である、と言える。スコアは、入力経費情報の正しさの度合いを示す情報でも良い。スコアは、確率情報と言っても良い。スコアは、通常、大きい値ほど入力経費情報の正しさの度合いが大きいが、小さい値ほど入力経費情報の正しさの度合いが大きい情報でも良い。スコアは、入力経費情報と1以上のOCR文字列とを比較結果を用いた情報である。例えば、入力経費情報の中の情報が、1以上のOCR文字列の中に多く含まれるほど、スコアは大きくなる。
【0051】
スコア取得部132は、入力経費情報を構成する2以上の各要素情報と、1以上のOCR文字列とを比較し、スコアを取得することは好適である。なお、スコアの取得方法は問わない。スコアは、例えば、入力経費情報を構成する文字の中で、1以上のOCR文字列の中に存在する割合である。
【0052】
スコア取得部132は、2以上の各入力経費情報と1以上のOCR文字列とを比較し、入力経費情報の確からしさに関するスコアを取得しても良い。
【0053】
スコア取得部132は、例えば、入力経費情報を構成する1以上の各要素情報と1以上のOCR文字列の中の文字列とを比較し、1以上の各要素情報との比較結果を用いてスコアを取得する。
【0054】
スコア取得部132は、例えば、入力経費情報を構成する部分である2以上の部分情報を取得し、2以上の各部分情報と1以上のOCR文字列の中の文字列とを比較し、2以上の各部分情報に対する比較結果を用いてスコアを取得する。
【0055】
スコア取得部132は、例えば、入力経費情報を構成する1または2以上の各要素情報ごとに、要素情報の部分である2以上の部分情報を取得し、2以上の各部分情報と1以上のOCR文字列の中の文字列とを比較し、2以上の各部分情報に対する比較結果を用いてスコアを取得する。
【0056】
スコア取得部132は、例えば、入力経費情報を構成する要素情報と、1以上の各比較文字列との距離を算出し、当該距離を用いて、スコアを取得する。スコア取得部132は、距離が小さいほど、高い値のスコアを取得する。スコア取得部132は、例えば、距離をパラメータとする減少関数により、スコアを取得する。なお、比較文字列については、後述する。
【0057】
スコア取得部132は、例えば、入力経費情報を構成する要素情報と、1以上の各比較文字列との距離を算出し、最短の距離を用いて、スコアを取得する。スコア取得部132は、例えば、当該最短の距離が小さいほど、高い値のスコアを取得する。スコア取得部132は、例えば、当該最短の距離をパラメータとする減少関数を用いて、スコアを算出する。
【0058】
入力経費情報を構成する要素情報が2以上、存在する場合、スコア取得部132は、例えば、2以上の各要素情報ごとに、各要素情報のスコアを取得する。そして、スコア取得部132は、2以上のスコアを用いて、入力経費情報のスコアを取得する。スコア取得部132は、例えば、2以上のスコアの代表値を取得する。なお、スコアの代表値は、例えば、スコアの平均値、中央値、最低値、最高値である。スコア取得部132は、例えば、2以上の各要素情報のスコアをパラメータとする増加関数により、入力経費情報のスコアを算出する。
【0059】
なお、距離は、2つの文字列の差異に関する情報であれば良く、例えば、編集距離、レーベンシュタイン距離、最小編集距離などである。
【0060】
スコア取得部132は、例えば、以下のように比較文字列を取得する。つまり、スコア取得部132は、1以上のOCR文字列から一致文字列を検知する。そして、スコア取得部132は、当該一致文字列を含むOCR文字列から1以上のOCR他文字を取得する。なお、一致文字列とは、部分情報と一致する文字列である。
【0061】
次に、スコア取得部132は、例えば、OCR前方文字列と一致文字列とOCR後方文字列とからなる比較文字列を取得する。なお、OCR前方文字列とは、一致文字列を含むOCR文字列の中の文字列であり、一致文字列の直前に位置する文字列であり、前方文字数の数の文字列である。また、前方文字数は、要素情報の中の一致文字列の前に位置する文字列である前方文字列の文字数である。また、OCR後方文字列とは、一致文字列を含むOCR文字列の中の文字列であり、一致文字列の直後に位置する文字列であり、後方文字数の数の文字列である。また、後方文字数は、要素情報の中の一致文字列の後に位置する文字列である前方文字列の文字数である。
【0062】
なお、OCR前方文字列が存在しない場合もある。かかる場合、スコア取得部132は、例えば、一致文字列とOCR後方文字列からなる比較文字列を取得する。また、OCR後方文字列が存在しない場合もある。かかる場合、スコア取得部132は、例えば、OCR前方文字列と一致文字列からなる比較文字列を取得する。
【0063】
つまり、スコア取得部132は、例えば、入力経費情報を構成する要素情報を構成する部分情報(例えば、のn-gramの文字列)を取得し、当該部分情報と一致する文字列である一致文字列を1以上のOCR文字列から検知する。次に、スコア取得部132は、例えば、当該要素情報の中の一致文字列の前に位置する前方文字列の文字数である前方文字数と、当該要素情報の中の前記一致文字列の後に位置する後方文字列の文字数である前方文字数とを取得し、一致文字列を含むOCR文字列の中から、OCR前方文字列と、一致文字列と、OCR後方文字列とからなる比較文字列を取得する。次に、スコア取得部132は、例えば、当該要素情報と当該比較文字列との距離を算出し、当該距離を用いて、当該要素情報に対するスコアを取得する。また、スコア取得部132は、例えば、2以上の各要素情報に対するスコアを用いて、入力経費情報に対するスコアを取得する。
【0064】
スコア取得部132は、例えば、入力経費情報を構成する要素情報と、2以上の各比較文字列との距離を算出し、当該2以上の距離のうちで最小の距離を用いて、スコアを取得する。スコア取得部132は、例えば、当該最小の距離をパラメータとする減少関数により、スコアを取得する。
【0065】
スコア取得部132は、例えば、入力経費情報が有する日付、金額、支払先のうちの2以上の各要素情報と1以上のOCR文字列とを比較し、2以上の各要素情報ごとにスコアを取得し、当該2以上のスコアの代表値である代表スコアを取得する。なお、代表スコアは、例えば、2以上のスコアの平均値、中央値、最高値、最低値である。
【0066】
なお、入力経費情報は、参加者の人数、申請者名のサイン、経費利用部門名等の領収書の発行後に申請者が記載する文字列を含んでも良い。そして、スコア取得部132は、参加者の人数、申請者名のサイン、経費利用部門名等の領収書の発行後に申請者が記載する文字列の確からしさを用いて、スコアを取得しても良い。
【0067】
要素情報は、例えば、入力経費情報の中の日付、金額、または支払先である。また、n-gramは、3-gramであることは好適であるが、2-gram、4-gram等の他の長さの文字列でも良い。要素情報が日付「2021/3/11」である場合、3-gramの部分情報は、例えば、「202」「021」「21/」「1/3/」「/3/」「3/1」「/11」である。
【0068】
スコア取得部132は、入力経費情報を構成する要素情報を用いて、当該要素情報と同じ意味の異なる表記である1または2以上の第二要素情報を取得し、当該1以上の各第二要素情報に対する1以上の比較文字列を取得し、前記第二要素情報と1以上の各比較文字列との距離をも算出し、当該距離をも用いて、スコアを取得することは好適である。なお、第二要素情報も要素情報と言っても良い。また、第二要素情報を用いて比較文字列を取得するアルゴリズムは、要素情報を用いて比較文字列を取得するアルゴリズムと同じである。
【0069】
なお、スコア取得部132は、例えば、入力経費情報を構成する要素情報を用いて、以下のように1以上の第二要素情報を取得する。スコア取得部132は、例えば、格納部11に格納されている1または2以上のパターンを用いて、1以上の第二要素情報を取得する。つまり、スコア取得部132は、要素情報を、パターンを用いて変形し、第二要素情報を取得する。
【0070】
要素情報の種類識別子が「日付」であり、格納部11にパターン「????/??/??」、「????年??月??日」(?は0から9のいずれかの数値)の情報が存在する場合であり、入力経費情報が有する要素情報が「2020/8/27」である場合、スコア取得部132は、格納部11のパターンを参照し、第二要素情報「2020年8月27日」を得る。なお、日付の表記ゆれを考慮して、一の日付の情報から他の日付の表記を生成する技術は公知技術であるので、詳細な説明は省略する。なお、種類識別子は、要素情報の種類を識別する情報であり、例えば、「日付」「金額」「支払先」である。
【0071】
スコア取得部132は、例えば、入力経費情報を構成する各要素情報の文字数と同じ文字数の1以上の文字列であり、1以上の各OCR文字列の1以上の文字列を、各OCR文字列から取得し、当該1以上の各文字列(比較文字列と言って良い)と、各要素情報との距離を算出する。そして、スコア取得部132は、1以上の距離を用いて、スコアを取得しても良い。なお、スコア取得部132は、1以上の距離のうちの最小の距離を用いて、スコアを取得することは好適である。
【0072】
スコア取得部132は、例えば、入力経費情報を構成する各要素情報の文字数を取得し、当該文字数と同じ文字数の1以上の文字列であり、1以上の各OCR文字列の1以上の文字列を、各OCR文字列の先頭から1文字ずつずらしなから取得し、当該1以上の各文字列(比較文字列と言って良い)と、各要素情報との距離を算出する。そして、スコア取得部132は、最小の距離を用いて、スコアを取得しても良い。
【0073】
関連情報取得部133は、スコアに関する関連情報を取得する。関連情報取得部133は、スコア取得部132が取得したスコアを用いて関連情報を取得する。
【0074】
関連情報は、例えば、スコア、入力経費情報の検査結果に関する情報、正しいと判断された入力経費情報、正しいと判断された入力経費情報と領収書画像である。
【0075】
関連情報取得部133は、例えば、スコアが閾値より小さい場合または閾値以下の場合、入力経費情報に誤りがあることを示す関連情報を取得する。
【0076】
スコア取得部132が要素情報ごとのスコアを取得した場合に、関連情報取得部133は、例えば、2以上の異なる要素の組み合わせに対して、異なる閾値(異なる基準)を用いて、入力経費情報が正しいか否かを判断しても良い。
【0077】
関連情報取得部133が、要素情報「日付」と要素情報「金額」の2つのスコアを用いて入力経費情報が正しいか否かを判断する場合、関連情報取得部133は、例えば、スコア取得部132が取得した2つのスコアの和(例えば、2つの編集距離の和)が第一閾値(例えば、1.85)以上であるか否かにより、入力経費情報が正しいか否かを判断する。なお、かかる場合は、例えば、支払先の入力が無い場合である。
【0078】
一方、関連情報取得部133が、要素情報「日付」と要素情報「金額」と要素情報「支払先」の3つのスコアを用いて入力経費情報が正しいか否かを判断する場合、関連情報取得部133は、例えば、スコア取得部132が取得した3つのスコアの和(例えば、3つの編集距離の和)が第二閾値(例えば、2.7)以上であるか否かにより、入力経費情報が正しいか否かを判断する。なお、かかる場合は、例えば、支払先の入力が無い場合である。
【0079】
また、例えば、スコアの算出は、要素情報「日付」「金額」「支払先」等の2以上の要素情報の種類ごとに行われる。そして、スコアを取得する要素情報の種類が多いほど、関連情報取得部133が、閾値を大きくして、入力経費情報が正しいか否かを判断することは好適である。
【0080】
スコア取得部132が2以上のスコアを取得した場合、関連情報取得部133は、例えば、一つ以上のスコアが閾値より小さい場合または閾値以下の場合、入力経費情報に誤りがあることを示す関連情報を取得する。なお、ここでの2以上のスコアは、通常、2以上の各要素情報のスコアである。
【0081】
出力部14は、各種の情報を出力する。各種の情報は、例えば、関連情報、経費情報、領収書画像である。
【0082】
関連情報出力部141は、関連情報取得部133が取得した関連情報を出力する。
【0083】
関連情報出力部141は、スコアが予め決められた条件を満たすほど低い場合、入力経費情報に対応するユーザ、または管理者に、入力経費情報の誤りに関する関連情報を通知する。
【0084】
関連情報出力部141は、例えば、入力経費情報および領収書画像を対応付けて出力する。関連情報出力部141は、例えば、スコアと入力経費情報に対応付けて出力する。ここでの出力とは、通常、蓄積である。ただし、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
【0085】
関連情報出力部141は、例えば、代表スコアに関する関連情報を出力する。
【0086】
端末装置2を構成する端末格納部21には、各種の情報が格納される。各種の情報は、例えば、ユーザ識別子、入力経費情報、領収書画像である。
【0087】
端末受付部22は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、入力経費情報、領収書画像、出力指示である。
【0088】
端末処理部23は、各種の処理を行う。各種の処理とは、例えば、端末受付部22が受け付けた指示や情報を、送信するデータ構造の指示や情報にする処理である。各種の処理とは、例えば、端末受信部25が受信した情報を、出力するデータ構造の情報にする処理である。
【0089】
端末処理部23は、例えば、端末受付部22が入力経費情報と領収書画像とを受け付けた場合、端末格納部21のユーザ識別子を取得し、当該ユーザ識別子と入力経費情報と領収書画像とを対応付けて、送信する情報を構成する。
【0090】
端末送信部24は、各種の指示や情報を送信する。各種の指示や情報は、例えば、入力経費情報、領収書画像、ユーザ識別子、出力指示である。
【0091】
端末受信部25は、各種の情報を受信する。各種の情報は、例えば、関連情報、経費情報、領収書画像である。
【0092】
端末出力部26は、各種の情報を出力する。各種の情報は、例えば、関連情報、経費情報、領収書画像である。
【0093】
格納部11、ユーザ情報格納部111、経費情報格納部112、および端末格納部21は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0094】
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
【0095】
受付部12、および端末受信部25は、通常、無線または有線の通信手段で実現される。
【0096】
処理部13、文字列取得部131、スコア取得部132、関連情報取得部133、および端末処理部23は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、MPU、CPU、GPU等であり、その種類は問わない。
【0097】
出力部14、関連情報出力部141、および端末送信部24は、通常、無線または有線の通信手段で実現される。
【0098】
端末受付部22は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0099】
端末出力部26は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部26は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0100】
次に、情報システムAの動作例について説明する。まず、経費検査装置1の動作例について、
図3のフローチャートを用いて説明する。
【0101】
(ステップS301)受付部12は、端末装置2から入力経費情報と領収書画像とを受信したか否かを判断する。入力経費情報等を受信した場合にはステップS302に行き、入力経費情報等を受信しなかった場合にはステップS309に行く。
【0102】
(ステップS302)文字列取得部131は、ステップS301で受信された領収書画像に対して文字認識処理を行い、1以上のOCR文字列を取得する。なお、文字認識処理は、図示しない外部の装置で行っても良い。ここで、一のOCR文字列は、例えば、一行の文字列、または一つのテキストボックスの中の文字列である。
【0103】
(ステップS303)スコア取得部132は、カウンタiに1を代入する。
【0104】
(ステップS304)スコア取得部132は、ステップS301で受信された入力経費情報の中に、i番目の要素情報が存在するか否かを判断する。i番目の要素情報が存在する場合はステップS305に行き、i番目の要素情報が存在しない場合はステップS307に行く。
【0105】
(ステップS305)スコア取得部132は、i番目の要素情報のスコアを取得する。かかる処理である要素スコア取得処理の例について、
図4のフローチャートを用いて説明する。
【0106】
(ステップS306)スコア取得部132は、カウンタiを1、インクリメントする。ステップS304に戻る。
【0107】
(ステップS307)関連情報取得部133は、ステップS305で取得されたスコアを用いて、関連情報を取得する。かかる関連情報取得処理の例について、
図7のフローチャートを用いて説明する。
【0108】
(ステップS308)関連情報出力部141は、ステップS307で取得された関連情報を出力する。ステップS301に戻る。
【0109】
(ステップS309)受付部12は、端末装置2から出力指示を受信したか否かを判断する。出力指示を受信した場合にはステップS310に行き、出力指示を受信しなかった場合にはステップS301に戻る。
【0110】
(ステップS310)処理部13は、ステップS309で受信された出力指示に対応する1以上の経費情報等を経費情報格納部112から取得する。
【0111】
(ステップS311)出力部14は、ステップS310で取得された1以上の経費情報等を、出力指示を送信した端末装置2に送信する。ステップS301に戻る。
【0112】
なお、
図3のフローチャートにおいて、ステップS301で、2以上の入力経費情報が受信された場合、2以上の各入力経費情報に対して、ステップS303からS308の処理を行うことは好適である。
【0113】
また、
図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0114】
次に、ステップS305の要素スコア取得処理の例について、
図4のフローチャートを用いて説明する。
【0115】
(ステップS401)スコア取得部132は、第二要素情報生成処理を行う。第二要素情報生成処理の例について、
図5のフローチャートを用いて説明する。なお、第二要素情報生成処理とは、要素情報を用いて、1以上の第二要素情報を生成する処理である。また、ここで第二要素情報を生成できない場合があっても良い。また、第二要素情報も要素情報と言っても良い。
【0116】
(ステップS402)スコア取得部132は、カウンタiに1を代入する。
【0117】
(ステップS403)スコア取得部132は、ステップS304のi番目の要素情報とステップS401で生成した1以上の第二要素情報の中の1以上の要素情報の中で、i番目の要素情報が存在するか否かを判断する。
【0118】
(ステップS404)スコア取得部132は、カウンタjに1を代入する。
【0119】
(ステップS405)スコア取得部132は、i番目の要素情報の中で、j番目の部分情報が存在するか否かを判断する。j番目の部分情報が存在すればステップS406に行き、j番目の部分情報が存在しなければステップS409に行く。部分情報は、例えば、要素情報の中のn-gramである。
【0120】
(ステップS406)スコア取得部132は、i番目の要素情報の中のj番目の部分情報を取得する。
【0121】
(ステップS407)スコア取得部132は、部分スコア取得処理を行う。部分スコア取得処理の例について、
図6のフローチャートを用いて説明する。なお、部分スコア取得処理とは、j番目の部分情報に対応するスコアを取得する処理である。
【0122】
(ステップS408)スコア取得部132は、カウンタjを1、インクリメントする。ステップS405に戻る。
【0123】
(ステップS409)スコア取得部132は、カウンタiを1、インクリメントする。ステップS403に戻る。
【0124】
(ステップS410)スコア取得部132は、ステップS407で取得された1以上のスコアを用いて、i番目の要素情報のスコアを取得し、当該スコアをi番目の要素情報と対にして、図示しないバッファに一時蓄積する。上位処理にリターンする。
【0125】
なお、スコア取得部132は、例えば、ステップS407で取得された1以上のスコアの最大値を、i番目の要素情報のスコアとして取得する。
【0126】
次に、ステップS401の第二要素情報生成処理の例について、
図5のフローチャートを用いて説明する。
【0127】
(ステップS501)スコア取得部132は、ステップS304のi番目の要素情報(着目する要素情報)の種類を特定する種類識別子を取得する。
【0128】
(ステップS502)スコア取得部132は、カウンタiに1を代入する。
【0129】
(ステップS503)スコア取得部132は、ステップS501で取得した種類識別子に対応するi番目のパターンが存在するか否かを判断する。i番目のパターンが存在する場合はステップS504に行き、i番目のパターンが存在しない場合は上位処理にリターンする。
【0130】
(ステップS504)スコア取得部132は、着目する要素情報が、i番目のパターンに対応する文字列であるか否かを判断する。i番目のパターンに対応する文字列である場合はステップS506に行き、i番目のパターンに対応する文字列でない場合はステップS505に行く。
【0131】
(ステップS505)スコア取得部132は、着目する要素情報を用いて、ステップS501で取得した種類識別子に対応するi番目のパターンに対応する文字列を取得する。かかる文字列は、第二要素情報である。
【0132】
(ステップS506)スコア取得部132は、カウンタiを1、インクリメントする。ステップS503に戻る。
【0133】
次に、ステップS407の部分スコア取得処理の例について、
図6のフローチャートを用いて説明する。
【0134】
(ステップS601)スコア取得部132は、カウンタiに1を代入する。
【0135】
(ステップS602)スコア取得部132は、ステップS302で取得されたOCR文字列の中に、i番目のOCR文字列が存在するか否かを判断する。i番目のOCR文字列が存在する場合はステップS603に行き、i番目のOCR文字列が存在しない場合は上位処理にリターンする。
【0136】
(ステップS603)スコア取得部132は、カウンタjに1を代入する。
【0137】
(ステップS604)スコア取得部132は、i番目のOCR文字列の中で、j番目の文字列から開始される文字列であり、ステップS406のj番目の部分情報の文字数の文字列を取得可能であるか否かを判断する。かかる文字列が取得可能であればステップS605に行き、取得可能でなければステップS612に行く。
【0138】
(ステップS605)スコア取得部132は、ステップS406のj番目の部分情報と、i番目のOCR文字列の中で、j番目の文字列から開始される文字列とが前方一致するか否かを判断する。前方一致する場合はステップS606に行き、前方一致しない場合はステップS611に行く。
【0139】
(ステップS606)スコア取得部132は、前方文字数を取得する。つまり、スコア取得部132は、着目する要素情報から、ステップS406のj番目の部分情報(一致文字列であると言える)を除いた文字列であり、当該部分情報の前方の文字の数である前方文字数を取得する。なお、ここで、前方文字数が「0」である場合もあり得る。
【0140】
(ステップS607)スコア取得部132は、OCR前方文字列を取得する。つまり、スコア取得部132は、i番目のOCR文字列から、ステップS606で取得した前方文字数の数の文字であり、一致文字列の直前の文字列であるOCR前方文字列を取得する。ここで、OCR前方文字列が取得できない場合もあり得る。
【0141】
(ステップS608)スコア取得部132は、後方文字数を取得する。つまり、スコア取得部132は、着目する要素情報から、ステップS406のj番目の部分情報(一致文字列であると言える)を除いた文字列であり、当該部分情報の後方の文字の数である後方文字数を取得する。なお、ここで、後方文字数が「0」である場合もあり得る。
【0142】
(ステップS609)スコア取得部132は、OCR後方文字列を取得する。つまり、スコア取得部132は、i番目のOCR文字列から、ステップS606で取得した後方文字数の数の文字であり、一致文字列の直後の文字列であるOCR後方文字列を取得する。
【0143】
(ステップS610)スコア取得部132は、ステップS607で取得したOCR前方文字列、一致文字列、およびステップS609で取得したOCR後方文字列を、順に連結し、比較文字列を取得し、当該比較文字列を図示しないバッファに一時蓄積する。なお、ここで、OCR後方文字列が取得できない場合もあり得る。
【0144】
(ステップS611)スコア取得部132は、カウンタjを1、インクリメントする。ステップS604に戻る。
【0145】
(ステップS612)スコア取得部132は、カウンタkに1を代入する。
【0146】
(ステップS613)スコア取得部132は、図示しないバッファにk番目の比較文字列が存在するか否かを判断する。k番目の比較文字列が存在する場合はステップS614に行き、k番目の比較文字列が存在しない場合はステップS616に行く。
【0147】
(ステップS614)スコア取得部132は、ステップS403のi番目の要素情報とk番目の比較文字列との距離を算出し、当該距離を、k番目の比較文字列と対にして、図示しないバッファに一時蓄積する。
【0148】
(ステップS615)スコア取得部132は、カウンタkを1、インクリメントする。ステップS613に戻る。
【0149】
(ステップS616)スコア取得部132は、カウンタiを1、インクリメントする。ステップS602に戻る。
【0150】
なお、
図6のステップS610において、スコア取得部132は、同じ箇所の同じ比較文字列は、一度のみ取得することは好適である。
【0151】
また、
図6のステップS614において、スコア取得部132は、同じ箇所の同じ比較文字列と要素情報との距離は、一度のみ取得することは好適である。
【0152】
次に、ステップS307の関連情報取得処理の例について、
図7のフローチャートを用いて説明する。
【0153】
(ステップS701)関連情報取得部133は、ステップS410で蓄積された1以上の各要素情報のスコアが正常条件を満たすか否かを判断する。正常条件を満たす場合はステップS702に行き、正常条件を満たさない場合はステップS703に行く。
【0154】
(ステップS702)関連情報取得部133は、ステップS301で受信された入力経費情報と領収書画像とを有する関連情報を構成する。上位処理にリターンする。なお、関連情報は、ユーザ識別子に対応付いていることは好適である。
【0155】
(ステップS703)関連情報取得部133は、正常でない要素情報を取得する。
【0156】
(ステップS704)関連情報取得部133は、ステップS703で取得した正常でない要素情報、または当該要素情報の種類識別子を含む関連情報を構成する。上位処理にリターンする。なお、かかる関連情報は、受信された入力経費情報が正常でない旨の情報である。
【0157】
次に、端末装置2の動作例について説明する。端末装置2の端末受付部22は、入力経費情報と領収書画像とを受け付ける。次に、端末処理部23は、端末受付部22が受け付けた入力経費情報と領収書画像と端末格納部21のユーザ識別子とを対応付けて、送信する情報を構成する。端末送信部24は、当該情報を経費検査装置1に送信する。
【0158】
次に、端末装置2の端末受信部25は、入力した入力経費情報が正常な情報であるか否かを示す関連情報を経費検査装置1から受信する。そして、端末出力部26は、かかる関連情報を出力する。
【0159】
また、端末装置2の端末受付部22は、出力指示を受け付ける。そして、端末送信部24は、出力指示を経費検査装置1に送信する。次に、端末受信部25は、出力指示に対応する1以上の経費情報を経費検査装置1から受信する。そして、端末出力部26は、1以上の経費情報を出力する。
【0160】
また、例えば、管理者または経理担当者等の端末装置2の端末受信部25は、他のユーザによって正常ではない経費情報が入力された旨の関連情報を受信する。そして、端末出力部26は、かかる関連情報を出力する。
【0161】
以下、本実施の形態における情報システムAの具体的な動作例について説明する。
【0162】
今、経費検査装置1のユーザ情報格納部111には、
図8に示すユーザ情報管理表が格納されている。ユーザ情報管理表は、ユーザ情報を管理する表である。ユーザ情報管理表は、「ID」「ユーザ識別子」「ユーザ属性値」を有する1以上のレコードを管理する。「ユーザ属性値」は、ここでは「メールアドレス」「氏名」「上司メールアドレス」を有する。「ID」は、レコードを識別する情報である。「メールアドレス」は、ユーザ識別子で識別されるユーザのメールアドレスである。「上司メールアドレス」は、ユーザ識別子で識別されるユーザの上司のメールアドレスである。
【0163】
また、経費情報格納部112には、
図9に示す構造を有する経費情報管理表が格納されている。経費情報管理表は、経費情報を管理する表である。経費情報管理表は、「ID」「ユーザ識別子」「経費情報」「領収書画像」「スコア」を有する1以上のレコードを管理する。「ID」は、レコードを識別する情報である。「経費情報」は、ここでは「日付」「金額」「支払先」を有する。
【0164】
さらに、格納部11には、
図10に示すパターン管理表が格納されている。パターン管理表は、経費情報を構成する要素情報の種類ごとの表記パターン(以下、適宜「パターン」という)を管理する表である。パターン管理表は、「種類識別子」「パターン識別子」「表記パターン」を有する1以上のレコードを管理する。「種類識別子」は、経費情報を構成する要素情報の種類を識別する情報である。「パターン識別子」は、同一種類の中の表記パターンの識別情報である。「表記パターン」は、ここでは正規表現であるが、定義方法は問わない。
【0165】
種類識別子「日付」のパターン識別子「1」の表記パターンに従った文字列は、例えば、「2020/8/27」である。また、種類識別子「日付」のパターン識別子「2」の表記パターンに従った文字列は、例えば、「2020年8月27日」である。さらに、種類識別子「日付」のパターン識別子「3」の表記パターンに従った文字列は、例えば、「令和2年8月27日」である。
【0166】
種類識別子「金額」のパターン識別子「1」の表記パターンに従った文字列は、例えば、「940円」である。また、種類識別子「金額」のパターン識別子「2」の表記パターンに従った文字列は、例えば、「¥940」である。
【0167】
種類識別子「支払先」のパターン識別子「1」の表記パターンに従った文字列は、例えば、「つばめタクシー」である。また、種類識別子「支払先」のパターン識別子「2」の表記パターンに従った文字列は、例えば、「(有)つばめタクシー」である。また、種類識別子「支払先」のパターン識別子「3」の表記パターンに従った文字列は、例えば、「有限会社つばめタクシー」である。また、種類識別子「支払先」のパターン識別子「4」の表記パターンに従った文字列は、例えば、「つばめタクシー(株)」である。また、種類識別子「支払先」のパターン識別子「3」の表記パターンに従った文字列は、例えば、「つばめタクシー株式会社」である。
【0168】
かかる状況において、以下の2つの具体例について説明する。具体例1は、一つの領収書画像に、一つの領収書のイメージが存在する場合である。具体例2は、一つの領収書画像に、2つの領収書のイメージが存在する場合である。
【0169】
(具体例1)
ユーザ「山田A夫」は、自分の端末装置2に、入力経費情報「<日付>2020/8/27 <金額>940 <支払先>(有)つばめタクシー」と、
図11の領収書画像とを入力した、とする。なお、かかる情報の入力画面、入力インターフェイス等は問わない。
【0170】
すると、端末装置2の端末受付部22は、かかる入力経費情報と領収書画像とを受け付ける。次に、端末処理部23は、端末受付部22が受け付けた入力経費情報と領収書画像と端末格納部21のユーザ識別子「U001」とを対応付けて、送信する情報を構成する。次に、端末送信部24は、入力経費情報「<日付>2020/8/27 <金額>940 <支払先>(有)つばめタクシー」と、
図11の領収書画像と、当ユーザ識別子「U001」とを経費検査装置1に送信する。
【0171】
次に、経費検査装置1の受付部12は、入力経費情報「<日付>2020/8/27 <金額>940 <支払先>(有)つばめタクシー」と、
図11の領収書画像と、当ユーザ識別子「U001」とを受信する。
【0172】
なお、本具体例1では、
図11の領収書画像の1101、1102、1103の情報と、入力経費情報とが比較されることになる、とする。
【0173】
次に、文字列取得部131は、
図11の領収書画像に対して、文字認識処理を行う。そして、文字列取得部131は、
図12に示す1以上のOCR文字列を取得する。ここで、各OCR文字列は、各行の文字列である。
【0174】
次に、スコア取得部132は、受信された入力経費情報が有する3つの各要素情報「<日付>2020/8/27」「<金額>940」「<支払先>(有)つばめタクシー」について、以下のように、順に、スコアを取得する。
【0175】
つまり、スコア取得部132は、まず、種類識別子「日付」の要素情報「2020/8/27」のスコアを、以下のように取得する。
【0176】
スコア取得部132は、種類識別子「日付」と対になる表記パターン(
図10参照)に従って、第二要素情報生成処理を行い、「2020年08月27日」「令和2年08月27日」等を取得する。ここで、スコア取得部132は、受信された要素情報「2020/8/27」、生成した要素情報「2020年08月27日」「令和2年08月27日」等の要素情報を取得する。
【0177】
次に、スコア取得部132は、各要素情報ごとに、1以上の部分情報を取得する。ここで、部分情報は、要素情報に含まれる3-gramの文字列である、とする。
【0178】
そして、スコア取得部132は、まず、最初の要素情報「2020/8/27」から1文字ずつずらしながら、2以上の部分情報を取得する。つまり、スコア取得部132は、要素情報「2020/8/27」に対して、部分情報「202」「020」「20/」「0/8」「/8/」「8/2」「/27」を順次、取得する。
【0179】
そして、スコア取得部132は、
図12に示す1以上の各OCR文字列に、上記のいずれかの部分情報が含まれるか否かを検査する。そして、スコア取得部132は、
図12に示す1以上の各OCR文字列に、上記のいずれの部分情報も含まれない、と判断する。つまり、スコア取得部132は、要素情報「2020/8/27」に対する比較文字列を取得できない。
【0180】
次に、スコア取得部132は、次の要素情報「2020年08月27日」に対して、部分情報「202」「020」「20年」「0年0」「年08」「0年0」「年08」「08月」「8月2」「月27」「27日」を順次、取得する。
【0181】
次に、スコア取得部132は、
図12に示す1以上の各OCR文字列に、上記のいずれかの部分情報が含まれるか否かを、順次、検査する。そして、スコア取得部132は、
図12に示すOCR文字列「日付 20猶?年08月27日」の中に、「年08」が含まれる、と検知する。
【0182】
次に、スコア取得部132は、着目する要素情報「2020年08月27日」から、部分情報「年08」を除いた文字列であり、当該部分情報の前方の文字例「2020」の前方文字数「4」を取得する。
【0183】
次に、スコア取得部132は、取得した前方文字数「4」の文字列であるOCR前方文字列「20猶?」を、OCR文字列「日付 20猶?年08月27日」から取得する。
【0184】
次に、スコア取得部132は、着目する要素情報「2020年08月27日」から、部分情報「年08」を除いた文字列であり、当該部分情報の後方の文字例「月27日」の後方文字数「4」を取得する。
【0185】
次に、スコア取得部132は、取得した後方文字数「4」の文字列であるOCR後方文字列「月27日」を、OCR文字列「日付 20猶?年08月27日」から取得する。
【0186】
次に、スコア取得部132は、OCR前方文字「20猶?」、一致文字列「年08」、およびOCR後方文字列「月27日」を連結し、比較文字列「20猶?年08月27日」を取得する。
【0187】
次に、スコア取得部132は、要素情報「2020年08月27日」と比較文字列「20猶?年08月27日」との編集距離(d1)を算出し、当該編集距離(d1)を当該要素情報(「2020/8/27」または「2020年08月27日」)に対応付けて蓄積する。
【0188】
スコア取得部132は、上記の処理を、他の部分情報に対しても行う。また、スコア取得部132は、上記の処理を、他の要素情報(「令和2年08月27日」等)に対しても行う。そして、スコア取得部132は、上記の処理中に、
図13に示すような部分情報と比較文字列の組を取得しながら、種類識別子「日付」に対する要素情報「2020/8/27」に対する編集距離(d
1)を取得し、蓄積する。
【0189】
また、スコア取得部132は、種類識別子「金額」に対する要素情報「940」について、上記と同様の処理を行う。つまり、スコア取得部132は、要素情報「940」に対する第二要素情報「940円」「¥940」等を生成する。そして、スコア取得部132は、各要素情報「940」「940円」「¥940」等に対して、上記のアルゴリズムにより、編集距離を算出する。つまり、スコア取得部132は、OCR文字列「基冰?? 約940円」から取得した比較文字列「940」と要素情報「940」との編集距離(d2=0)を取得し、蓄積する。
【0190】
さらに、スコア取得部132は、種類識別子「支払先」に対する要素情報「(有)つばめタクシー」について、上記と同様の処理を行う。そして、スコア取得部132は、OCR文字列「(f)つばめタクト」から取得した比較文字列「(f)つばめタクト」と要素情報「(有)つばめタクシー」との編集距離(d3)を取得し、蓄積する。
【0191】
以上の処理により、スコア取得部132は、3つの各要素情報に対する編集距離を取得できた。
【0192】
次に、スコア取得部132は、3つの各要素情報に対する編集距離をパラメータとする減少関数により、スコア「0.90」を取得した、とする。
【0193】
次に、関連情報取得部133は、スコアが閾値以上(例えば、0.8以上)であるため、要素情報のスコアが正常条件を満たす、と判断した、とする。なお、ここでは、正常条件は、「スコアが閾値以上であること」である、とする。
【0194】
次に、関連情報取得部133は、関連情報『入力経費情報「<日付>2020/8/27 <金額>940 <支払先>(有)つばめタクシー」および領収書画像(
図11)』を有する関連情報を構成する。
【0195】
次に、 関連情報出力部141は、関連情報『入力経費情報「<日付>2020/8/27 <金額>940 <支払先>(有)つばめタクシー」および領収書画像(
図11)』とスコア「0.9」とをユーザ識別子「U001」に対応付けて、経費情報管理表(
図9参照)に蓄積する。かかるレコードの例は、
図9の「ID=268」のレコードである。なお、領収書画像(
図11)は、生成されたファイル名のファイル「f268/jpg」として、蓄積された、とする。
【0196】
(具体例2)
ユーザ「井上B子」は、自分の端末装置2に、入力経費情報「<日付>2020/9/2 <金額>660 <支払先>青森県道路公社」と、入力経費情報「<日付>2020/9/2 <金額>160 <支払先>青森県道路公社」と、
図14の領収書画像とを入力した、とする。
【0197】
すると、井上B子の端末装置2の端末受付部22は、かかる2件の入力経費情報と領収書画像とを受け付ける。次に、端末処理部23は、端末受付部22が受け付けた入力経費情報と領収書画像と端末格納部21のユーザ識別子「U002」とを対応付けて、送信する情報を構成する。次に、端末送信部24は、当該入力経費情報と、
図14の領収書画像と、当ユーザ識別子「U002」とを経費検査装置1に送信する。
【0198】
次に、経費検査装置1の受付部12は、2件の入力経費情報と、
図14の領収書画像と、当ユーザ識別子「U002」とを受信する。
【0199】
なお、本具体例2では、
図14の領収書画像の1401、1402、1403、1404、1405、1406の情報と、2つの各入力経費情報とが比較されることになる、とする。
【0200】
次に、文字列取得部131は、
図14の領収書画像に対して、文字認識処理を行う。そして、文字列取得部131は、
図15に示す1以上のOCR文字列を取得する。ここで、各OCR文字列は、各行の文字列である。また、文字列取得部131は、2つの領収書の画像を区別することは行わず、
図14の画像のファイルに対して、文字認識処理を行う、とする。
【0201】
次に、スコア取得部132は、まず、1件目の入力経費情報「<日付>2020/9/2 <金額>660 <支払先>青森県道路公社」に対して、
図15に示す1以上のOCR文字列を用いて、具体例1で述べた処理を行い、1件目の入力経費情報に対するスコアを取得する。
【0202】
次に、関連情報取得部133は、1件目の入力経費情報のスコアが正常条件を満たす、と判断した、とする。
【0203】
次に、関連情報取得部133は、『「<日付>2020/9/2 <金額>660 <支払先>青森県道路公社」および領収書画像(
図14)』を有する関連情報を構成する。
【0204】
次に、 関連情報出力部141は、当該関連情報とスコア(ここでは「0.98」)とをユーザ識別子「U002」に対応付けて、経費情報管理表(
図9参照)に蓄積する。かかるレコードの例は、
図9の「ID=351」のレコードである。
【0205】
また、スコア取得部132は、2件目の入力経費情報「<日付>2020/9/2 <金額>160 <支払先>青森県道路公社」に対して、同様の処理を行い、2件目の入力経費情報に対するスコアを取得する。
【0206】
次に、関連情報取得部133は、2件目の入力経費情報のスコアが正常条件を満たす、と判断した、とする。
【0207】
次に、関連情報取得部133は、『「<日付>2020/9/2 <金額>160 <支払先>青森県道路公社」および領収書画像(
図14)』を有する関連情報を構成する。
【0208】
次に、 関連情報出力部141は、当該関連情報とスコア(ここでは「0.95」)とをユーザ識別子「U002」に対応付けて、経費情報管理表(
図9参照)に蓄積する。かかるレコードの例は、
図9の「ID=352」のレコードである。
【0209】
以上、本具体例において、複数の領収証画像が含まれる場合の処理も行えた。また、本具体例において、複数の入力経費情報に対する処理も行えた。
【0210】
以上、本実施の形態によれば、入力された経費の情報に対する適切な確認が可能となる。
【0211】
また、本実施の形態によれば、2以上の領収書が含まれる領収書画像を用いた入力された経費の情報に対するも、適切な確認が可能となる。
【0212】
また、本実施の形態によれば、文字列取得部131は、2以上の領収書の画像の境界を決定せずに、2以上の領収書の各画像から1以上のOCR文字列を取得することにより、2以上の領収書が含まれる領収書画像を用いた入力された経費の情報に対するも、容易な処理により、適切な確認が可能となる。
【0213】
また、本実施の形態によれば、2以上の経費の入力と2以上の領収書が含まれる領収書画像とが混在して存在している場合でも、適切な確認が可能となる。
【0214】
さらに、本実施の形態によれば、適切でない可能性の高い経費の情報が入力された場合に、適切な通知ができる。
【0215】
なお、本実施の形態においては、経費検査装置1が行う処理の一部を端末装置2が行っても良い。例えば、文字列取得部131、スコア取得部132、および関連情報取得部13のうちの1以上の構成要素の処理を端末装置2で行っても良い。つまり、経費検査装置1と端末装置2との処理の分担方法は問わない。なお、経費検査装置1は、スタンドアロンで動作する装置でも良い。
【0216】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における経費検査装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、ユーザが入力した経費に関する入力経費情報と経費に対応する領収書画像とを受け付ける受付部と、前記領収書画像に対するOCRの結果である1以上のOCR文字列を取得する文字列取得部と、前記入力経費情報と前記1以上のOCR文字列とを比較し、前記入力経費情報の確からしさに関するスコアを取得するスコア取得部と、前記スコアに関する関連情報を出力する関連情報出力部として機能させるためのプログラムである。
【0217】
また、
図16は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の経費検査装置1等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。
図16は、このコンピュータシステム300の概観図であり、
図17は、システム300のブロック図である。
【0218】
図16において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0219】
図17において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0220】
コンピュータシステム300に、上述した実施の形態の経費検査装置1等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
【0221】
プログラムは、コンピュータ301に、上述した実施の形態の経費検査装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0222】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0223】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0224】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0225】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0226】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0227】
以上のように、本発明にかかる経費検査装置1は、経費の入力に対して適切な確認が可能となるという効果を有し、経費情報を検査するサーバ等として有用である。
【符号の説明】
【0228】
1 経費検査装置
2 端末装置
11 格納部
12 受付部
13 処理部
14 出力部
21 端末格納部
22 端末受付部
23 端末処理部
24 端末送信部
25 端末受信部
26 端末出力部
111 ユーザ情報格納部
112 経費情報格納部
131 文字列取得部
132 スコア取得部
133 関連情報取得部
141 関連情報出力部