(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025008714
(43)【公開日】2025-01-20
(54)【発明の名称】文字認識装置及びプログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20250109BHJP
【FI】
G06V30/412
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023111127
(22)【出願日】2023-07-06
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】嶋津 章仁
(72)【発明者】
【氏名】西川 侑吾
(72)【発明者】
【氏名】大野 和久
(72)【発明者】
【氏名】辻 佳孝
(72)【発明者】
【氏名】小沢 益丈
(72)【発明者】
【氏名】大倉 水斗
(72)【発明者】
【氏名】加藤 啓路
(72)【発明者】
【氏名】内田 昌希
【テーマコード(参考)】
5B029
【Fターム(参考)】
5B029AA01
5B029BB02
5B029CC18
5B029CC21
(57)【要約】
【課題】文書画像に含まれる文字列から項目名と項目値とを適切に組み合わせることができる文字認識装置及びプログラムを提供する。
【解決手段】文字取得処理サーバ1は、文書画像から文字を検出して文字列を取得する文字列取得部12と、文字列取得部12が取得した文字列を、項目名と項目値とに分類する項目分類部13と、項目分類部13が分類した文字列から項目名と項目値との組み合わせを推定する組合せ推定部14と、組合せ推定部14が推定した項目名と項目値との組み合わせのうち項目名と項目値との位置情報に基づいて、出力対象にする項目名と項目値との組み合わせを決定する組合せ決定部15と、組合せ決定部15が決定した項目名と項目値との組み合わせを出力する処理結果出力部16と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
文書画像から文字を検出して文字列を取得する文字列取得手段と、
前記文字列取得手段が取得した前記文字列を、項目名と項目値とに分類する項目分類手段と、
前記項目分類手段が分類した前記文字列から前記項目名と前記項目値との組み合わせを推定する組合せ推定手段と、
前記組合せ推定手段が推定した前記項目名と前記項目値との組み合わせのうち前記項目名と前記項目値との位置情報に基づいて、出力対象にする前記項目名と前記項目値との組み合わせを決定する組合せ決定手段と、
前記組合せ決定手段が決定した前記項目名と前記項目値との組み合わせを出力する項目組合せ出力手段と、
を備える、文字認識装置。
【請求項2】
請求項1に記載の文字認識装置において、
前記項目分類手段は、各項目の項目名を記憶した項目名リストを参照し、前記項目名リストに含まれる前記文字列を前記項目名に分類し、前記項目名リストに含まれない前記文字列を前記項目値に分類する、文字認識装置。
【請求項3】
請求項1に記載の文字認識装置において、
前記組合せ推定手段は、項目名に対する項目値の条件を記憶した項目値条件記憶部を参照し、前記項目分類手段が分類した前記項目値の前記文字列に組み合わせる前記項目名を推定する、文字認識装置。
【請求項4】
請求項1に記載の文字認識装置において、
前記組合せ推定手段は、項目名と項目値との組み合わせを学習した学習モデルを用いて、前記項目分類手段が分類した前記項目値の前記文字列に組み合わせる前記項目名を取得する、文字認識装置。
【請求項5】
請求項3又は請求項4に記載の文字認識装置において、
前記組合せ推定手段は、前記項目分類手段が分類した前記項目名の前記文字列から閾値以下の距離にある前記項目値の前記文字列を取得し、取得した前記項目値の前記文字列と前記項目名とを組み合わせる、文字認識装置。
【請求項6】
請求項5に記載の文字認識装置において、
前記組合せ推定手段は、前記項目分類手段が分類した前記項目名の前記文字列から閾値以下の距離にある前記項目値の前記文字列として複数の前記項目値の前記文字列を取得したことに応じて、項目名に対する項目値の条件を記憶した項目値条件記憶部を参照し、複数の前記項目値の前記文字列によって前記項目値の条件を満たす場合に、複数の前記項目値の前記文字列を結合させた結合文字列と前記項目名の前記文字列とを組み合わせる、文字認識装置。
【請求項7】
請求項1に記載の文字認識装置において、
前記組合せ決定手段は、前記組合せ推定手段が推定した前記組み合わせである前記項目名と前記項目値との間の距離が閾値以下である場合に、前記組み合わせを出力対象に決定する、文字認識装置。
【請求項8】
請求項7に記載の文字認識装置において、
前記組合せ決定手段は、さらに前記項目値と前記項目名との配置位置の関係性に基づいて、前記組み合わせを出力対象に決定する、文字認識装置。
【請求項9】
請求項4に記載の文字認識装置において、
前記項目組合せ出力手段が出力した前記項目名と前記項目値との組み合わせに対してユーザからの入力により確定された、前記項目名と前記項目値との組み合わせを情報記憶部に記憶させる登録手段と、
前記情報記憶部に記憶された前記項目名と前記項目値との組み合わせを入力値として学習モデルを学習する学習手段と、
を備える、文字認識装置。
【請求項10】
コンピュータを、
文書画像から文字を検出して文字列を取得する文字列取得手段と、
前記文字列取得手段が取得した前記文字列を、項目名と項目値とに分類する項目分類手段と、
前記項目分類手段が分類した前記文字列から前記項目名と前記項目値との組み合わせを推定する組合せ推定手段と、
前記組合せ推定手段が推定した前記項目名と前記項目値との組み合わせのうち前記項目名と前記項目値との位置情報に基づいて、出力対象にする前記項目名と前記項目値との組み合わせを決定する組合せ決定手段と、
前記組合せ決定手段が決定した前記項目名と前記項目値との組み合わせを出力する項目組合せ出力手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字認識装置及びプログラムに関する。
【背景技術】
【0002】
従来、見積書や請求書等の発行元によってフォーマットが異なる書類を、データとしてシステムに登録する際に、文字入力を手作業で行っており、時間及び人的なコストがかかっている。
そのため、コストの削減のために、文字入力を自動的に行う様々な取り組みが検討されている。OCR(Optical Character Recognition/Reader)の使用は、その一例である。しかし、OCRでは、情報がバラバラに取得されてしまい、テキストの意味を理解することができない。
そこで、例えば、書類における特定の属性の記述位置を指定するテンプレートを使用するものがある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、フォーマットを書類ごとに準備する必要があり煩雑であった。特に、見積書や請求書等の非定型書類には、項目名とその内容とが記載されているものであるが、罫線がない場合には、罫線を手掛かりにすることができず、項目とその内容とを適切に抽出することが難しかった。
【0005】
そこで、本発明は、文書画像に含まれる文字列から項目名と項目値とを適切に組み合わせることができる文字認識装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、以下のような解決手段により、前記課題を解決する。
第1の発明は、文書画像から文字を検出して文字列を取得する文字列取得手段と、前記文字列取得手段が取得した前記文字列を、項目名と項目値とに分類する項目分類手段と、前記項目分類手段が分類した前記文字列から前記項目名と前記項目値との組み合わせを推定する組合せ推定手段と、前記組合せ推定手段が推定した前記項目名と前記項目値との組み合わせのうち前記項目名と前記項目値との位置情報に基づいて、出力対象にする前記項目名と前記項目値との組み合わせを決定する組合せ決定手段と、前記組合せ決定手段が決定した前記項目名と前記項目値との組み合わせを出力する項目組合せ出力手段と、を備える、文字認識装置である。
第2の発明は、第1の発明の文字認識装置において、前記項目分類手段は、各項目の項目名を記憶した項目名リストを参照し、前記項目名リストに含まれる前記文字列を前記項目名に分類し、前記項目名リストに含まれない前記文字列を前記項目値に分類する、文字認識装置である。
第3の発明は、第1の発明又は第2の発明の文字認識装置において、前記組合せ推定手段は、項目名に対する項目値の条件を記憶した項目値条件記憶部を参照し、前記項目分類手段が分類した前記項目値の前記文字列に組み合わせる前記項目名を推定する、文字認識装置である。
第4の発明は、第1の発明又は第2の発明の文字認識装置において、前記組合せ推定手段は、項目名と項目値との組み合わせを学習した学習モデルを用いて、前記項目分類手段が分類した前記項目値の前記文字列に組み合わせる前記項目名を取得する、文字認識装置である。
第5の発明は、第1の発明から第4の発明までのいずれかの文字認識装置において、前記組合せ推定手段は、前記項目分類手段が分類した前記項目名の前記文字列から閾値以下の距離にある前記項目値の前記文字列を取得し、取得した前記項目値の前記文字列と前記項目名とを組み合わせる、文字認識装置である。
第6の発明は、第5の発明の文字認識装置において、前記組合せ推定手段は、前記項目分類手段が分類した前記項目名の前記文字列から閾値以下の距離にある前記項目値の前記文字列として複数の前記項目値の前記文字列を取得したことに応じて、項目名に対する項目値の条件を記憶した項目値条件記憶部を参照し、複数の前記項目値の前記文字列によって前記項目値の条件を満たす場合に、複数の前記項目値の前記文字列を結合させた結合文字列と前記項目名の前記文字列とを組み合わせる、文字認識装置である。
第7の発明は、第1の発明から第6の発明までのいずれかの文字認識装置において、前記組合せ決定手段は、前記組合せ推定手段が推定した前記組み合わせである前記項目名と前記項目値との間の距離が閾値以下である場合に、前記組み合わせを出力対象に決定する、文字認識装置である。
第8の発明は、第7の発明の文字認識装置において、前記組合せ決定手段は、さらに前記項目値と前記項目名との配置位置の関係性に基づいて、前記組み合わせを出力対象に決定する、文字認識装置である。
第9の発明は、第4の発明の文字認識装置において、前記項目組合せ出力手段が出力した前記項目名と前記項目値との組み合わせに対してユーザからの入力により確定された、前記項目名と前記項目値との組み合わせを情報記憶部に記憶させる登録手段と、前記情報記憶部に記憶された前記項目名と前記項目値との組み合わせを入力値として学習モデルを学習する学習手段と、を備える、文字認識装置である。
第10の発明は、第1の発明から第9の発明までのいずれかの文字認識装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0007】
本発明によれば、文書画像に含まれる文字列から項目名と項目値とを適切に組み合わせることができる文字認識装置及びプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る文字取得処理システムの全体構成図及び文字取得処理サーバの機能ブロック図である。
【
図2】第1実施形態に係る文字取得処理サーバの項目名リスト記憶部及び項目値条件記憶部の例を示す図である。
【
図3】第1実施形態に係る文字取得処理サーバの文字取得処理を示すフローチャートである。
【
図4】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図5】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図6】第1実施形態に係る文字取得処理サーバの組合せ推定処理を示すフローチャートである。
【
図7】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図8】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図9】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図10】第1実施形態に係る文字取得処理サーバの組合せ決定処理を示すフローチャートである。
【
図11】第1実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図12】第2実施形態に係る文字取得処理システムの全体構成図及び文字取得処理サーバの機能ブロック図である。
【
図13】第2実施形態に係る文字取得処理サーバの文字取得処理を示すフローチャートである。
【
図14】第2実施形態に係る文字取得処理サーバの組合せ推定処理を示すフローチャートである。
【
図15】第2実施形態に係る文字取得処理サーバの学習処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲は、これに限られるものではない。
(第1実施形態)
<文字取得処理システム100の全体構成>
図1は、第1実施形態に係る文字取得処理システム100の全体構成図及び文字取得処理サーバ1の機能ブロック図である。
図2は、第1実施形態に係る文字取得処理サーバ1の項目名リスト記憶部22及び項目値条件記憶部23の例を示す図である。
【0010】
図1に示すように、文字取得処理システム100は、文字取得処理サーバ1(文字認識装置)と、ユーザ端末5と、OCR装置6とを備える。文字取得処理サーバ1と、ユーザ端末5と、OCR装置6とは、通信ネットワークNを介して接続されている。
文字取得処理システム100は、文書画像データに対して文字認識処理を行って得たテキストについて、項目名と項目値とに分類する。そして、文字取得処理システム100は、項目値に対する項目名の組み合わせを推定した上で、組み合わせのうち項目名と項目値との位置情報に基づいて決定した組み合わせを出力する。
【0011】
文字取得処理システム100では、ユーザ端末5から入力がされた文書画像データを、文字取得処理サーバ1が受け付ける。ここで、文書画像データは、例えば、見積書や請求書等の書類の画像であり、文字を含む。以降において、文書画像データは、表形式の明細領域を含まないものを例に説明するが、表形式の明細領域を含んでもよい。
そして、文字取得処理サーバ1は、文書画像データに対して文字認識処理を行って、文書画像データから文字を検出して文字列を取得し、自然言語処理技術を用いて項目名又は項目値に分類する。
また、文字取得処理サーバ1は、項目値と分類された文字列に対する項目名を推定し、項目名と項目値との位置情報に基づいて組み合わせを決定する。
そして、文字取得処理サーバ1は、決定した項目名と項目値との組み合わせを、ユーザ端末5に出力する。その際、文字取得処理サーバ1は、1つの項目値に対して複数の項目名を組み合わせている場合に、例えば、アラートを出力してもよい。
【0012】
<文字取得処理サーバ1>
文字取得処理サーバ1は、文書画像データに対する処理を行い、処理結果として項目名と項目値との組み合わせを出力する一連の処理を行うサーバである。
文字取得処理サーバ1は、制御部10と、記憶部20と、通信インタフェース部29とを備える。
制御部10は、文字取得処理サーバ1の全体を制御するCPU(中央処理装置)である。制御部10は、記憶部20に記憶されているOS(オペレーティングシステム)や、各種のアプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、各種機能を実行する。
【0013】
制御部10は、文書画像取得部11と、文字列取得部12と、項目分類部13と、組合せ推定部14と、組合せ決定部15と、処理結果出力部16とを備える。
文書画像取得部11は、文書画像データを、ユーザ端末5から受け付ける。文書画像データの元になる文書は、例えば、外部のシステム(図示せず)に入力するためのデータの内容を含む。文書画像データは、例えば、紙の文書を図示しないスキャナ等により画像化したものであり、PDF形式や、JPEG形式、IMG形式等の画像データである。
【0014】
文字列取得部12は、文字列取得手段として機能する。文字列取得部12は、文書画像取得部11が受け付けた文書画像データから文字を検出し、検出した文字のかたまりを文字列として取得する。
より具体的には、文字列取得部12は、例えば、OCR装置6に対して文書画像データを送信し、OCR装置6から取得したテキストデータから文字を検出する。そして、文字列取得部12は、検出した文字の文字間隔に応じてひとかたまりの文字列とする。文字列とする文字間の文字間隔は、例えば、文字サイズによって異なるようにしてもよい。例えば、文字列取得部12は、文字サイズが大きい場合は、文字サイズが小さい場合のより文字間隔が広くても、隣り合う文字を文字列として含むようにする。
さらに、文字列取得部12は、文字列としてテキストを取得すると共に、文字列の座標(位置情報)をもあわせて取得する。
【0015】
項目分類部13は、項目分類手段として機能する。項目分類部13は、文字列取得部12が検出した文字列を、項目名と項目値とに分類する。より具体的には、項目分類部13は、項目名リスト記憶部22(後述する)の項目名リストに含まれる文字列を、項目名に分類し、項目名リストに含まれない文字列を、項目値に分類する。
【0016】
組合せ推定部14は、組合せ推定手段として機能する。組合せ推定部14は、項目分類部13が分類した文字列から項目名と項目値との組み合わせを推定する。
より具体的には、組合せ推定部14は、項目名の文字列から閾値以下の距離にある項目値の文字列を取得し、取得した項目値の文字列と項目名とを組み合わせる。その際、項目名の文字列から閾値以下の距離にある項目値の文字列として複数の項目値の文字列を取得したことに応じて、組合せ推定部14は、項目値条件記憶部23(後述する)を参照し、複数の項目値の文字列によって1つの項目値の条件を満たす場合に、複数の項目値の文字列を結合させた1つの項目値(結合文字列)と項目名とを組み合わせる。
また、組合せ推定部14は、項目値条件記憶部23を参照し、項目分類部13が分類した項目値の文字列に組み合わせる項目名を推定する。より具体的には、項目値の文字列が項目値条件記憶部23の項目値の条件を満たす場合に、当該項目値の条件に対応する項目名を、当該項目値の項目名として推定する。
【0017】
組合せ決定部15は、組合せ決定手段として機能する。組合せ決定部15は、組合せ推定部14が推定した項目名と項目値との組み合わせのうち項目名と項目値との位置情報に基づいて、出力対象にする項目名と項目値との組み合わせを決定する。
より具体的には、組合せ決定部15は、推定した組み合わせである項目名と項目値との間の距離が閾値以下である場合に、当該組み合わせを出力対象に決定する。ここで、閾値は、記憶部20に登録されていてもよいし、外部ファイルとして受け付けたものであってもよい。また、組合せ決定部15は、さらに項目値と項目名との配置位置の関係性に基づいて、組み合わせを出力対象に決定する。例えば、文書が横書きのものである場合には、項目名は、項目値よりも左側に配置されるのが一般的である。そこで、項目名が項目値の右側にある場合には、組合せ決定部15は、当該組み合わせを出力対象にしないように決定する。
【0018】
処理結果出力部16は、項目組合せ出力手段として機能する。処理結果出力部16は、組合せ決定部15が出力対象に決定した項目名と項目値との組み合わせを、処理結果としてユーザ端末5に対して出力する。処理結果出力部16は、例えば、項目名と項目値との組み合わせを表形式で出力し、文書画像もあわせて同画面に出力するようにしてもよい。
なお、これらの各機能の詳細については、後述する。
【0019】
記憶部20は、文字取得処理サーバ1の動作に必要なプログラム、データ等を記憶するためのハードディスク、半導体メモリ素子等の記憶装置である。
記憶部20は、プログラム記憶部21と、項目名リスト記憶部22と、項目値条件記憶部23とを備える。
プログラム記憶部21は、文字取得処理サーバ1で実行する各種のプログラムを記憶するための記憶領域である。プログラム記憶部21は、文字認識処理プログラム21a(プログラム)を記憶している。
文字認識処理プログラム21aは、例えば、制御部10に有する各種機能を実行するためのプログラムである。
なお、制御部10に有する各種機能を実行するためのプログラムは、上記したように1つの文字認識処理プログラム21aにより実現されるものに限定されない。例えば、制御部10の機能ごとに、又は、複数の機能ごとにプログラムを有してもよい。
【0020】
項目名リスト記憶部22は、項目名リストを記憶する記憶領域である。
図2(A)に、項目名リスト記憶部22に記憶された項目名リストの例を示す。
項目名リスト記憶部22の項目名リストは、項目ごとに、例えば、代表項目名に対して1以上の項目名称を対応付けたものである。
代表項目名は、キーになる項目名である。
項目名称は、項目名のゆらぎを含めた項目の名称である。例えば、「氏名」であれば、同様に用いる項目名称として、「姓名」や「名前」、「名まえ」等がある。
なお、
図2(A)に示す項目名リスト記憶部22は、代表項目名が項目名称にも含むようにしているが、これに限定されない。例えば、処理を行う際に代表項目名と項目名称とを参照するようにすれば、代表項目名は、項目名称から除外してもよい。
【0021】
項目値条件記憶部23は、項目値の条件を記憶する記憶領域である。
図2(B)に、項目値条件記憶部23の例を示す。
項目値条件記憶部23は、代表項目名と、項目値の条件とを対応付けたものである。
項目値の条件は、項目値を表す正規表現やルールである。
例えば、代表項目名が「氏名」の項目値の条件は、「形態素に人名が含まれている」というルールである。ここで、人名は、例えば、記憶部20に記憶され、又は、文字取得処理サーバ1に対して通信ネットワークNを介して通信可能に接続された外部のサーバ等に有する人名辞書(図示せず)等を用いればよい。
また、代表項目名が「生年月日」の項目値の条件は、「(元号)(数値)年(数値)月(数値)日」という正規表現である。ここで、元号としてあり得る文字列や、各数値としてあり得る数や、その組み合わせ等については、別途定義ファイルによりその内容が定義されていてもよいし、当該項目値の条件に予め含まれていてもよい。
当該項目値の条件に予め含まれている場合には、項目値の条件の内容は、関数によって表せる式になっており、プログラムとして記述がされている。
【0022】
図1の通信インタフェース部29は、通信ネットワークNを介してユーザ端末5等との通信を行うためのインタフェースである。
ここで、コンピュータとは、制御部、記憶装置等を備えた情報処理装置をいい、文字取得処理サーバ1は、制御部10、記憶部20等を備えた情報処理装置であり、コンピュータの概念に含まれる。
また、文字取得処理サーバ1を構成するハードウェアの数に制限はない。必要に応じて、1又は複数で構成してもよい。また、文字取得処理サーバ1のハードウェアは、必要に応じてWebサーバ、DBサーバ、アプリケーションサーバ等の各種サーバを含んで構成してもよく、1台のサーバで構成しても、それぞれ別のサーバで構成してもよい。また、文字取得処理サーバ1は、例えば、クラウドであってもよい。
【0023】
<ユーザ端末5>
図1に示すユーザ端末5は、例えば、文書に記載された各種のデータを外部のシステムに登録したいユーザが使用する端末である。ユーザ端末5は、例えば、パーソナルコンピュータ(PC)や、タブレット端末等で構成することができる。図示していないが、ユーザ端末5は、制御部、記憶部、表示部、入力部、通信インタフェース部等を備える。
【0024】
<OCR装置6>
OCR装置6は、文書画像データから文字を認識するOCRに係る処理を行う装置である。OCR装置6は、文字取得処理サーバ1から文書画像データを受信することで、文書画像に対して文字認識処理をしてテキストデータを得る処理を行い、文字取得処理サーバ1にテキストデータを送信する。OCR装置6は、例えば、サーバ等で構成されている。OCR装置6は、その他、PC等で構成されていてもよい。図示していないが、OCR装置6は、制御部、記憶部、通信インタフェース部等を備える。
【0025】
通信ネットワークNは、文字取得処理サーバ1と、ユーザ端末5と、OCR装置6との間のネットワークであり、例えば、インターネット回線等の通信網である。通信ネットワークNは、LAN(Local Area Network)等であってもよい。また、通信ネットワークNは、有線であるか無線であるかを問わない。
【0026】
<処理の説明>
次に、文字取得処理サーバ1の処理について説明する。
図3は、第1実施形態に係る文字取得処理サーバ1の文字取得処理を示すフローチャートである。
図4及び
図5は、第1実施形態に係る文字取得処理サーバ1における処理を説明するための図である。
図6は、第1実施形態に係る文字取得処理サーバ1の組合せ推定処理を示すフローチャートである。
図7から
図9までは、第1実施形態に係る文字取得処理サーバ1における処理を説明するための図である。
図10は、第1実施形態に係る文字取得処理サーバ1の組合せ決定処理を示すフローチャートである。
図11は、第1実施形態に係る文字取得処理サーバ1における処理を説明するための図である。
【0027】
まず、ユーザ端末5が文字取得処理サーバ1に接続し、例えば、見積書や請求書等の文書の画像データである文書画像データを送信することで、
図3のステップS(以下、「ステップS」を単に「S」という。)11において、文字取得処理サーバ1の文書画像取得部11は、文書画像データを取得する。
【0028】
S12において、文字列取得部12は、取得した文書画像中の文字を検出し、検出した文字から文字列を取得する。文字列取得部12は、例えば、OCR装置6に対して文書画像データを送信し、OCR装置6からテキストデータを取得することで、文書画像中の文字を検出することができ、検出した文字から文字列を取得できる。
ここで、
図4(A)に示す健康診断書の画像31を例に、処理を説明する。画像31において、S12までの処理を実行すると、
図4(B)に例示する画像32のように、一連の文字のかたまりとして点線で囲われた文字列を取得することができ、
図4(C)に例示するOCR結果33を得る。OCR装置6では、文書画像の左上から右方向に走査し、右端まで走査すると、1段下に移動して左から右方向に走査する、という処理を、走査が文書画像の右下に到達するまで繰り返す。
【0029】
図3のS13において、項目分類部13は、取得した文字列を項目名と項目値とに分類する。
ここで、文字列の分類方法について、
図5を用いて説明する。
項目分類部13は、OCR結果33の文字列と、項目名リスト記憶部22の項目名リストとを比較する。そして、項目分類部13は、OCR結果33の文字列に一致する項目リストの項目名称があった場合には、当該文字列を項目名と推定する。他方、項目分類部13は、OCR結果33の文字列に一致する項目リストの項目名称がなかった場合には、当該文字列を項目値と推定する。
項目分類部13は、項目名と推定された文字列を代表項目名に対応付けて、項目名推定結果41に記憶する。また、項目分類部13は、項目値と推定された文字列を、項目値推定結果42に記憶する。なお、項目名推定結果41及び項目値推定結果42は、記憶部20に一時的に記憶してもよい。
【0030】
図3のS14において、組合せ推定部14は、組合せ推定処理を行う。
ここで、組合せ推定処理について、
図6に基づき説明する。
図6のS31において、組合せ推定部14は、各項目名について閾値以下の近距離にある項目値の文字列を取得する。
S32において、組合せ推定部14は、1つの項目名について取得した文字列が複数あるか否かを判断する。複数ある場合(S32:YES)には、組合せ推定部14は、処理をS33に移す。複数ない場合(S32:NO)には、組合せ推定部14は、処理をS35に移す。
【0031】
S33において、組合せ推定部14は、項目値条件記憶部23を参照し、複数の文字列によって1つの項目値の条件を満たすか否かを判断する。複数の文字列が項目値の条件を満たす場合(S33:YES)には、組合せ推定部14は、処理をS34に移す。他方、複数の文字列が項目値の条件を満たさない場合(S33:NO)には、組合せ推定部14は、処理をS35に移す。
S34において、組合せ推定部14は、複数の文字列を結合させて項目値の文字列にする。
S35において、組合せ推定部14は、項目名と項目値とを組み合わせ候補とした候補リストを記憶部20に記憶させる。
【0032】
ここで、上記した処理について、具体例に基づき説明する。
図7に示す画像51の場合、項目名「氏名」の文字列について、閾値以下の距離にある項目値の文字列として、制御部10は、「ミホン ハナコ」と、「見本 花子」とを得る(
図6のS31)。制御部10は、取得した文字列が複数であると判断し(
図6のS32がYES)、項目値条件記憶部23を参照して、複数の文字列によって1つの項目値の条件を満たすか否かを判断する(
図6のS33)。この例の場合、各項目値が各々で項目値の条件を満たすものであるので、
図6のS33の処理はNOになり、制御部10は、項目名とそれぞれの項目値とを組み合わせ候補として候補リスト55に行55aとして記憶する(
図6のS35)。
また、項目名「受診日年齢」の文字列について、閾値以下の距離にある項目値の文字列として、制御部10は、「59」を得る(
図6のS31)。制御部10は、取得した文字列が複数ではないと判断し(
図6のS32がNO)、項目名と項目値とを組み合わせ候補として候補リスト55に行55bとして記憶する(
図6のS35)。
【0033】
別の例として、
図8に示す画像61の場合、項目名「生年月日」の文字列について、閾値以下の距離にある項目値の文字列として、制御部10は、「昭和28年」と、「8月17日」とを得る(
図6のS31)。この時点での組み合わせ候補として仮リスト62が作成される。制御部10は、取得した文字列が複数であると判断し(
図6のS32がYES)、項目値条件記憶部23を参照して、複数の文字列が項目値の条件を満たすか否かを判断する(
図6のS33)。この例の場合、2つの文字列を組み合わせることで項目値条件記憶部23の行63に示す項目値の条件を満たすので、
図6のS33の処理はYESになり、複数の項目値を結合させて項目値の文字列にし(
図6のS34)、項目名と項目値とを組み合わせ候補として候補リスト64に記憶する(
図6のS35)。
なお、候補リスト64における座標は、2つの項目値を合わせた範囲の座標である。
【0034】
図6のS36において、組合せ推定部14は、項目値条件記憶部23を参照し、項目値の文字列に対する項目名を推定する。
S37において、組合せ推定部14は、推定した項目名と項目値とを組み合わせ候補とした候補リストを記憶部20に記憶させる。その後、制御部10は、処理を
図3のS15に移す。
【0035】
ここで、上記した処理について、具体例に基づき説明する。
図9に示すように、組合せ推定部14は、項目値推定結果42を1つずつ項目値条件記憶部23の項目値の条件を満たすか否かを判断する。
例えば、項目値推定結果42にある項目値「101」について、組合せ推定部14は、項目値条件記憶部23の項目値の条件を満たすか否かを判断すると、代表項目名が「団体」の項目値の条件に合致し、かつ、代表項目名が「年齢」の項目値の条件にも合致する。そのため、候補リスト71には、項目値「101」について、行72及び行73の2つに格納される。
また、項目値のみがあり項目名がない場合であっても、組合せ推定部14は、項目値条件記憶部23の項目値の条件を満たす項目名との組み合わせを候補リスト71に格納する。例えば、項目値「女」のみがあり、項目名「性別」等がない場合であっても、候補リスト71には、項目値「女」について、行74に格納される。
【0036】
なお、
図6に示すS31からS35までの処理と、S36及びS37の処理とは、並行して行ってもよいし、S36及びS37の処理の後にS31からS35までの処理を行ってもよい。また、候補リストには、重複した記載があってもよい。そして、重複した記載がある場合には、制御部10は、例えば、
図6の処理を終了後に、重複した記載の一方を削除することで、重複した記載を解消してもよい。
【0037】
図3のS15において、組合せ決定部15は、組合せ決定処理を行う。
ここで、組合せ決定処理について、
図10に基づき説明する。
図10のS51において、組合せ決定部15は、候補リストを参照し、組み合わせごとに項目名と項目値との間の距離を算出する。
S52において、組合せ決定部15は、当該距離が閾値以下であるか否かを判断する。当該閾値は、
図6のS31で用いた閾値と同じであってもよいし、異なるものであってもよい。距離が閾値以下である場合(S52:YES)には、組合せ決定部15は、処理をS53に移す。他方、距離が閾値以下ではない場合(S52:NO)には、組合せ決定部15は、処理をS59に移す。
【0038】
S53において、組合せ決定部15は、項目名が項目値より左に位置しているか否かを判断する。項目名が項目値より左に位置している場合(S53:YES)には、組合せ決定部15は、処理をS54に移す。他方、項目名が項目値より左に位置していない場合(S53:NO)には、組合せ決定部15は、処理をS59に移す。
S54において、組合せ決定部15は、当該組み合わせを出力対象に決定する。その後、組合せ決定部15は、処理を
図3のS16に移す。
他方、S59において、組合せ決定部15は、当該組み合わせを出力対象から除外する。その後、組合せ決定部15は、処理を
図3のS16に移す。
【0039】
ここで、上記した処理について、具体例に基づき説明する。
図11に示す例では、候補リスト81において、同じ項目値「101」が行81aと行81bとに登録されている。
画像82に示すように、行81aは、距離画像82aに対応し、行81bは、距離画像82bに対応する。距離画像82aは、閾値以下であるが、距離画像82bは、閾値以下ではない。その場合、項目値「101」は、行81aが出力対象になり、行81bは出力対象外になる。
【0040】
図3のS16において、処理結果出力部16は、出力対象に決定した項目名と項目値との組み合わせを、処理結果としてユーザ端末5に対して出力する。処理結果出力部16は、出力対象に決定した項目名と項目値との組み合わせと共に、文書画像データを出力してもよい。その後、制御部10は、本処理を終了する。
【0041】
このように、第1実施形態によれば、文字取得処理サーバ1は、以下のような効果がある。
(1)文書画像データから文字を検出して文字列を取得し、取得した文字列を、項目名と項目値とに分類し、分類した文字列から項目名と項目値との組み合わせを推定し、推定した項目名と項目値との組み合わせのうち項目名と項目値との位置情報に基づいて、出力対象にする項目名と項目値との組み合わせを決定し、決定した項目名と項目値との組み合わせをユーザ端末5に出力する。
よって、文書画像データを入力するだけで、文書画像に含まれる文字列から項目名と項目値とを組み合わせることができる。そして、項目名と項目値との組み合わせを推定した上で、位置情報に基づいて出力対象にする項目名と項目値との組み合わせを決定するので、項目名と項目値との位置関係を考慮して項目名と項目値とを適切に組み合わせることができる。
【0042】
(2)代表項目名に対して1以上の項目名称を対応付けた項目名リストに文字列が含まれる場合に、文字列を前記項目名に分類する。
よって、項目名リストに含まれる文字列を、項目名として分類することができる。
【0043】
(3)項目名に対する項目値の条件を記憶した項目値条件記憶部23を参照し、分類した項目値の文字列に対する項目名を推定する。
よって、項目値条件記憶部23の項目値の条件を満たした項目値として分類された文字列について、満たした項目値の条件に対応する項目名を、当該項目値に対する項目名に推定できる。
【0044】
(4)分類した項目名の文字列から閾値以下の距離にある項目値の文字列を取得し、取得した項目値の文字列と項目名とを組み合わせる。
よって、項目名に分類された文字列から閾値以下の距離にある項目値の文字列を、当該項目名に対応する項目値として推定できる。
また、項目値条件記憶部23に登録されていないものであっても、項目名と項目値との間の距離によって組み合わせることができる。
【0045】
(5)分類した項目名の文字列から閾値以下の距離にある項目値の文字列として複数の項目値の文字列を取得したことに応じて、項目値条件記憶部23を参照し、複数の項目値の文字列によって1つの項目値の条件を満たす場合に、複数の項目値の前記文字列を結合させた結合文字列と項目名の文字列とを組み合わせる。
よって、項目値が複数の文字列として有するものであっても、適切に項目名に対する項目値として組み合わせることができる。
【0046】
(6)推定した組み合わせである項目名と項目値との間の距離が閾値以下である場合に、組み合わせを出力対象に決定する。
よって、項目名と項目値とが近い距離にある組み合わせを、出力対象にすることができるため、項目名に対する項目値を、より適切なものが出力対象になるようにできる。
(7)さらに項目値と項目名との配置位置の関係性に基づいて、組み合わせを出力対象に決定する。
よって、項目値が項目名よりも先に出現するような場合には、距離が閾値以下であっても出力対象から除外できる。その結果、項目名と項目値との組み合わせに係る精度が向上したものになる。
【0047】
(第2実施形態)
第1実施形態では、項目名に対する項目値の条件を用いて項目名と項目値との組み合わせを推定するものを説明した。第2実施形態では、項目名と項目値との組み合わせを学習した学習モデルを用いて処理を行うものについて説明する。なお、以降の説明において、上述した第1実施形態と同様の機能を果たす部分には、同一の符号又は末尾に同一の符号を付して、重複する説明を適宜省略する。
【0048】
<文字取得処理システム200の全体構成>
図12は、第2実施形態に係る文字取得処理システム200の全体構成図及び文字取得処理サーバ201の機能ブロック図である。
図12に示すように、文字取得処理システム200は、文字取得処理サーバ201と、ユーザ端末5と、OCR装置6とを備え、文字取得処理サーバ201と、ユーザ端末5と、OCR装置6とは、通信ネットワークNを介して接続されている。
【0049】
<文字取得処理サーバ201>
文字取得処理サーバ201は、制御部210と、記憶部220と、通信インタフェース部29とを備える。
制御部210は、文書画像取得部11と、文字列取得部12と、項目分類部13と、組合せ推定部214と、組合せ決定部15と、処理結果出力部16と、確定項目受付部217と、確定データ登録部218と、組合せ学習部219とを備える。
【0050】
組合せ推定部214は、組合せ推定手段として機能し、項目分類部13が分類した文字列から項目名と項目値との組み合わせを学習モデルを用いて推定する。
より具体的には、組合せ推定部214は、学習モデル記憶部225に記憶された項目名と項目値との組み合わせを学習した学習モデルを用いて、分類した項目値の文字列に組み合わせる項目名を取得する。
確定項目受付部217は、処理結果出力部16が出力した項目名と項目値との組み合わせに対して、ユーザ端末5からの確定内容を受け付ける。確定項目受付部217は、文書に対してユーザがチェックした上で確定した項目名と項目値との組み合わせの入力を、ユーザ端末5から受け付ける。
【0051】
確定データ登録部218は、登録手段として機能し、確定項目受付部217が受け付けた項目名と項目値との組み合わせを、確定データ記憶部224(情報記憶部)に登録する。
組合せ学習部219は、学習手段として機能し、確定データ記憶部224に記憶された項目名と項目値との組み合わせを入力値として学習モデルを学習する。そして、組合せ学習部219は、学習した学習モデルを、学習モデル記憶部225に記憶させる。
【0052】
記憶部220は、プログラム記憶部221と、項目名リスト記憶部22と、項目値条件記憶部23と、確定データ記憶部224と、学習モデル記憶部225とを備える。
プログラム記憶部221は、文字取得処理サーバ201で実行する各種のプログラムを記憶するための記憶領域である。プログラム記憶部221は、例えば、制御部210に有する各種機能を実行するためのプログラムである文字認識処理プログラム221aを記憶している。
確定データ記憶部224は、ユーザにより確定がされた項目名と項目値との組み合わせを記憶する記憶領域である。
学習モデル記憶部225は、組合せ学習部219が学習した学習モデルを記憶する記憶領域である。
【0053】
<処理の説明>
次に、文字取得処理サーバ201の処理について説明する。
図13は、第2実施形態に係る文字取得処理サーバ201の文字取得処理を示すフローチャートである。
図14は、第2実施形態に係る文字取得処理サーバ201の組合せ推定処理を示すフローチャートである。
図13のS211からS213までの処理は、第1実施形態(
図3)のS11からS13までの処理と同様である。
S214において、組合せ推定部214は、組合せ推定処理を行う。
【0054】
ここで、組合せ推定処理について、
図14に基づき説明する。
図14のS231からS235までは、第1実施形態(
図6)のS31からS35までの処理と同様である。
S236において、組合せ推定部214は、学習モデル記憶部225に記憶された項目名と項目値との組み合わせを学習した学習モデルに項目値の文字列を入力し、項目値の文字列に組み合わせる項目名を取得する。
S237において、組合せ推定部214は、取得した項目名と項目値とを組み合わせ候補として、記憶部220に候補リストとして記憶させる。その後、制御部210は、処理を
図13のS215に移す。
【0055】
図13のS215及びS216の処理は、第1実施形態(
図3)のS15及びS16の処理と同様である。
S217において、確定項目受付部217は、S216でユーザ端末5に出力した項目名と項目値との組み合わせに対して、ユーザが確定した項目名と項目値との組み合わせの入力をユーザ端末5から受け付ける。
S218において、確定データ登録部218は、S217が受け付けた項目名と項目値との組み合わせを、確定データ記憶部224に登録する。その後、制御部210は、本処理を終了する。
【0056】
次に、学習モデルを学習させる処理について説明する。
図15は、第2実施形態に係る文字取得処理サーバ201の学習処理を示すフローチャートである。
この学習処理は、例えば、確定データ記憶部224に項目名と項目値との組み合わせである確定データがある程度登録されたタイミングで行ってもよい。また、学習処理は、適宜のタイミングで再度行ってもよい。
図15のS271において、組合せ学習部219は、確定データ記憶部224に記憶された確定データを抽出する。
【0057】
S272において、組合せ学習部219は、確定データの項目名と項目値との組み合わせを入力値として学習モデルを学習する。
S273において、組合せ学習部219は、学習した学習モデルを、学習モデル記憶部225に記憶させる。その後、制御部210は、本処理を終了する。
【0058】
このように、第2実施形態によれば、文字取得処理サーバ201は、以下のような効果がある。
(1)項目名と項目値との組み合わせを学習した学習モデルを用いて、分類した項目値の文字列に組み合わせる項目名を取得する。
よって、項目値として分類された文字列の項目名を、学習モデルを用いて取得でき、取得した項目名を項目値に組み合わせるものに推定できる。
【0059】
(2)出力対象としてユーザ端末5に出力した項目名と項目値との組み合わせに対してユーザからの入力により確定された、項目名と項目値との組み合わせを確定データ記憶部224に記憶させ、確定データ記憶部224に記憶された項目名と項目値との組み合わせを入力値として学習モデルを学習する。
よって、ユーザにより確認済の項目名と項目値との組み合わせを学習モデルの入力値として用いて、学習モデルを学習することができる。その結果、学習モデルは、より正確な処理結果を出力するモデルになり得る。
【0060】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、実施形態に記載した効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載したものに限定されない。なお、上述した実施形態及び後述する変形形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。
【0061】
(変形形態)
(1)各実施形態では、見積書や請求書、健康診断書等の書類の文書画像を例に説明したが、これに限定されない。定型文書はもちろんであるが、非定型文書であってもよく、いずれの文書であっても同様に行うことができる。
(2)各実施形態では、組合せ確定処理の説明において、項目名と項目値との間の距離が閾値以下であるものを出力対象に確定するものを例に説明したが、これに限定されない。例えば、1つの項目値に対して複数の項目名が対応付けられており、距離がいずれも閾値以下である場合には、さらに項目値に最も近い距離にある項目名のみを出力対象に確定してもよい。
又は、例えば、1つの項目値に対して複数の項目名が対応付けられており、距離がいずれも閾値以下である場合には、1つの項目名に対して複数の項目名が対応付けられていることが分かるように、例えば、出力時に強調表示をする等、他のものとは表示態様を異なるように出力して、ユーザに注意を促してもよい。
【0062】
(3)各実施形態では、項目値の文字列に対して組み合わせる項目名を推定するものを説明した。さらに、項目値については、例えば、除外するべき値であるか否かや、優先するべき値であるか否かの判別処理を行った上で、項目値の文字列に対して組み合わせる項目名を推定してもよい。例えば、ある項目名に対する項目値として、実測値の他に参考値が記載されている場合には、参考値を除外するべき値として判別してもよい。文字取得処理サーバは、例えば、除外するべき値を予め記憶部に記憶しておき、記憶部を参照して項目値について除外するべき値か否かを判別すればよい。また、優先するべき値についても同様に、予め優先するべき値を記憶部に記憶しておき、文字取得処理サーバは、記憶部を参照して項目値について優先するべき値か否かを判別すればよい。
【0063】
(4)各実施形態では、同じ項目名が複数ある場合についての説明を行わなかったが、同じ項目名が文書画像に2つ以上ある場合には、例えば、当該項目名の前後の項目名が項目名リストに含まれるか否かに基づいていずれの項目名を採用するべきかを判断してもよい。また、文字取得処理サーバは、同じ項目名が文書画像に複数ある場合に、同じ項目名があることを、例えば、強調して出力する等、ユーザに視覚的にも分かりやすく示してもよい。
【0064】
(5)各実施形態では、文字取得処理サーバがOCR装置に対して文書画像を送信してテキスト化を依頼するものを例に説明したが、これに限定されない。OCR装置に対して文書画像を送信する前に、前処理を追加してもよい。前処理としては、例えば、コントラスト調整や先鋭化等である。そうすることで、OCR装置での処理の精度がより向上できる可能性がある。
【0065】
(6)各実施形態では、文字取得処理サーバとユーザ端末とOCR装置とを備えるものを例に説明したが、これに限定されない。例えば、文字取得処理サーバとOCR装置とは、同一のサーバにより実現してもよい。また、例えば、文字取得処理サーバの機能及びOCRの機能を有するクライアント端末のみのスタンドアロン構成のものであってもよい。
【符号の説明】
【0066】
1,201 文字取得処理サーバ
5 ユーザ端末
6 OCR装置
10,210 制御部
11 文書画像取得部
12 文字列取得部
13 項目分類部
14,214 組合せ推定部
15 組合せ決定部
16 処理結果出力部
20,220 記憶部
21a,221a 文字認識処理プログラム
22 項目名リスト記憶部
23 項目値条件記憶部
100,200 文字取得処理システム
217 確定項目受付部
218 確定データ登録部
219 組合せ学習部
224 確定データ記憶部
225 学習モデル記憶部