(57)【要約】【課題】表見出しと項目値とを対応付ける。【解決手段】認識装置であって、プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを備え、帳票から抽出された文字列が項目値を含む項目値行であるかを判定する認識モデルを有し、前記認識モデルは、帳票内の文字列を含む行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を機械学習して生成されたものであって、前記認識モデルは、認識すべき帳票から文字列を含む行の情報を抽出し、前記抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと他の行のヒストグラムとを比較した行構造の関連性を特徴量として用いて、当該他の行が項目値行であるかを判定する。【選択図】図１Ａ
2018005462.tif 000002
【特許請求の範囲】
【請求項１】
認識装置であって、
プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを備え、
帳票から抽出された文字列が項目値を含む項目値行であるかを判定する認識モデルを有し、
前記認識モデルは、帳票内の文字列を含む行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を機械学習して生成されたものであって、
前記認識モデルは、
認識すべき帳票から文字列を含む行の情報を抽出し、
前記抽出した行の情報をヒストグラムに変換し、
表見出しを含む行のヒストグラムと他の行のヒストグラムとを比較した行構造の関連性を特徴量として用いて、当該他の行が項目値行であるかを判定することを特徴とする認識装置。
【請求項２】
請求項１に記載の認識装置であって、
前記行の情報は、文字列を含むように定められた矩形の情報、前記矩形の位置情報、及び文字列を認識した文字情報であることを特徴とする認識装置。
【請求項３】
請求項２に記載の認識装置であって、
前記ヒストグラムは、行内の文字列を含むように定められた矩形を水平方向に所定数に分割した領域内で文字に含まれる黒色ピクセルの数を表すことを特徴とする認識装置。
【請求項４】
請求項１に記載の認識装置であって、
帳票から文字列を含む行の情報を抽出し、前記抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を特徴量として機械学習することによって、前記認識モデルを生成することを特徴とする認識装置。
【請求項５】
請求項１に記載の認識装置であって、
前記認識モデルは、前記認識すべき帳票に含まれる罫線、空白、及び同じ構造を持った文字列行の位置の少なくとも一つを用いて、当該他の行が項目値行であるかを判定することを特徴とする認識装置。
【請求項６】
請求項５に記載の認識装置であって、
前記認識モデルは、所定数の空白行が連続した後は項目値行である可能性が低いと判定することを特徴とする認識装置。
【請求項７】
請求項５に記載の認識装置であって、
前記認識モデルは、行構造が同じ行は項目値行である可能性が高いと判定することを特徴とする認識装置。
【請求項８】
請求項５に記載の認識装置であって、
前記認識モデルは、二つの罫線の間の行は項目値行である可能性が高く、最下の罫線り下は項目値行である可能性が低いと判定することを特徴とする認識装置。
【請求項９】
認識装置が実行する認識方法であって、
前記認識装置は、
プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを有し、
帳票から抽出された文字列が項目値を含む項目値行であるかを判定する認識モデルを有し、
前記認識モデルは、帳票内の文字列を含む行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を機械学習して生成されたものであって、
前記方法は、
前記認識モデルが、認識すべき帳票から文字列を含む行の情報を抽出し、
前記認識モデルが、前記抽出した行の情報をヒストグラムに変換し、
前記認識モデルが、表見出しを含む行のヒストグラムと他の行のヒストグラムとを比較した行構造の関連性を特徴量として用いて、当該他の行が項目値行であるかを判定することを特徴とする認識方法。
【請求項１０】
請求項９に記載の認識方法であって、
前記行の情報は、文字列を含むように定められた矩形の情報、前記矩形の位置情報、及び文字列を認識した文字情報であることを特徴とする認識方法。
【請求項１１】
請求項１０に記載の認識方法であって、
前記ヒストグラムは、行内の文字列を含むように定められた矩形を水平方向に所定数に分割した領域内で文字に含まれる黒色ピクセルの数を表すことを特徴とする認識方法。
【請求項１２】
請求項９に記載の認識方法であって、
帳票から文字列を含む行の情報を抽出し、前記抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を特徴量として機械学習することによって、前記認識モデルを生成することを特徴とする認識方法。
【請求項１３】
請求項９に記載の認識方法であって、
前記認識モデルは、前記認識すべき帳票に含まれる罫線、空白、及び同じ構造を持った文字列行の位置の少なくとも一つを用いて、当該他の行が項目値行であるかを判定することを特徴とする認識方法。
【請求項１４】
請求項１３に記載の認識方法であって、
前記認識モデルは、所定数の空白行が連続した後は項目値行である可能性が低いと判定することを特徴とする認識方法。
【請求項１５】
請求項１３に記載の認識方法であって、
前記認識モデルは、行構造が同じ行は項目値行である可能性が高いと判定することを特徴とする認識方法。
【請求項１６】
請求項１３に記載の認識方法であって、
前記認識モデルは、二つの罫線の間の行は項目値行である可能性が高く、最下の罫線り下は項目値行である可能性が低いと判定することを特徴とする認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票などの文書から表構造を認識する認識装置に関する。
【背景技術】
【０００２】
企業は、経済活動の中で、売上伝票や請求書、領収書などの帳票を他の企業とやり取りする。これらの帳票を企業の業務系、勘定系システムに入力し、出荷や入金処理を行うため、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒｉｚｅ  Ｒｅｃｏｇｎｉｔｉｏｎ、光学式文字認識）を用いて、帳票内の文書を電子データに変換する技術が利用されている。ＯＣＲを用いて帳票を電子化した後、近傍の文字列を対応付けたデータをシステムに登録する。例えば、文字列「帳票発行日」の近傍の文字列「２０１６年３月２９日」がある場合、項目名を「帳票発効日」とし、項目値を「２０１６年３月２９日」としてシステムに登録する。さらに、罫線を利用して、帳票内の表構造、すなわち表見出しの項目名と表見出しに対応する項目値のセルとを認識し、これらを対応付けたのち、システムに登録する。
【０００３】
特許文献１には、罫線によって表構造を認識し、項目名候補データベースを用いて項目名を識別し、項目名と他の項目値候補のセルとの位置関係から項目名と項目値との対応の尤度を算出し、表構造全体で尤度の最も高くなるように項目名と項目値を対応付ける方法が開示されている。
【０００４】
特許文献２には、罫線をまたいで記載されている項目間の特徴、例えば背景色やフォントサイズ、フォントタイプ等の差異から、その罫線が項目名と項目値の境界となる罫線かを判定し、表構造中の項目名と項目値、およびその対応関係を推定する方法が記載されている。
【０００５】
特許文献３には、項目名と項目値は、帳票中の水平方向の開始位置、終了位置に類似性が見られることと、表見出しと項目値を含む行間では文字が登場する座標位置に類似性が見られることを利用し、表見出しと項目値を含む行とを対応付け、及び、項目名と項目値との対応付ける方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２０５９７４号公報
【特許文献２】特開２０１３−１９０９９３号公報
【特許文献３】米国特許８，２１４，７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した特許文献１、特許文献２に記載の方法では、罫線を表構造認識の手掛かりとしているが、罫線が記載されていない帳票の表構造の認識には用いることができない。
【０００８】
さらに、帳票によっては、表見出しと項目値を含む行（以降、項目値行と記載）との間や、項目値行同士の間に、表見出しと関連しない文字列が記載される場合がある。例えば、請求書や領収書の場合、項目値行には、商品名や価格が記載されるが、在庫不足で商品の配送に通常より多くの期間が必要な場合は、期間及び配送遅延理由等の補足情報が、その項目値行の上部又は下部に記載される。また、セールスプロモーション期間での商品購入やバルクでの商品購入によるディスカウントの情報が項目値行の近くに記載される。前述した特許文献１に記載の方法では、隣接する項目間で尤度を算出するため、無関係な文字列により項目が分断されると、正しく項目名と項目値を対応付けられなくなる。また、特許文献２に記載の方法では、近くの項目間の特徴を用いて、項目名と項目値の境界を識別するため、補足情報による分断によって、境界の識別が困難になる。
【０００９】
また、特許文献３に記載の方法では、文字列の開始位置及び終了位置を比較し、さらに帳票中の文字列を含む行（文字列行）を、文字が存在する座標を１、空白を０としたバイナリデータに変換し、表見出しのバイナリデータと文字列行のバイナリデータとの間のハミング距離を算出することによって表見出しと項目値行と他の文字列行とを区別する。しかし、表見出しと項目値行とで文字列の開始位置、終了位置が同じとは限らず、また、表見出しの文字列数と項目値行の文字列数とが異なる場合がある。このため、表見出しと項目値行とのハミング距離が、表見出しと他の文字列を含む行とのハミング距離より大きくなり、対応付けが困難になる。
【００１０】
このため、罫線が無く、かつ表構造中に表見出しと関連が無い文字列が登場する帳票でも表見出しと項目値とを対応付ける必要がある。
【課題を解決するための手段】
【００１１】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、認識装置であって、プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを備え、帳票から抽出された文字列が項目値を含む項目値行であるかを判定する認識モデルを有し、前記認識モデルは、帳票内の文字列を含む行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を機械学習して生成されたものであって、前記認識モデルは、認識すべき帳票から文字列を含む行の情報を抽出し、前記抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと他の行のヒストグラムとを比較した行構造の関連性を特徴量として用いて、当該他の行が項目値行であるかを判定する。
【発明の効果】
【００１２】
本発明の一態様によれば、表見出しと項目値とを正確に対応付けできる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１Ａ】本発明の実施例の帳票内表構造認識システムの構成図である。
【図１Ｂ】認識サーバの物理的な構成を示すブロック図である。
【図２】認識サーバが認識する帳票の一例を示す図である。
【図３】項目値行学習プログラムによる処理のフローチャートである。
【図４】学習用帳票の一例を示す図である。
【図５】帳票の表見出しから生成されたヒストグラムの一例を示す図である。
【図６】水平方向項目値学習を行うニューラルネットの認識モデルを示す図である。
【図７Ａ】近傍行特徴量生成処理の例を示す図である。
【図７Ｂ】近近傍行特徴量テーブルの構成例を示す図である。
【図８】垂直方向項目値行認識ニューラルネットワークモデルを示す図である。
【図９】項目値行認識プログラム及び項目値認識プログラムによる処理のフローチャートである。
【図１０】項目名と項目値とを対応付ける方法を示す図である。
【図１１】項目名・項目値データベースの構成例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施例を説明する。
【００１５】
図１は、本発明の実施例の帳票内表構造認識システムの構成図である。
【００１６】
本実施例の帳票内表構造認識システムは、帳票から項目名及び項目値を抽出する認識サーバ１００から構成される。認識サーバ１００は、取引先企業から郵送等で受け取った紙帳票１１１を電子化する読み取り装置１１２に接続されている。また、認識サーバ１００は、ネットワーク（例えば、インターネット１１４）に接続されており、取引先企業ＰＣ１１３から電子帳票を受け取る。
【００１７】
認識サーバ１００は、帳票受信部１０９と、項目値行学習プログラム１０１と、項目値行認識プログラム１０２と、項目値認識プログラム１０３とを有する。また、認識サーバ１００は、帳票から取得したい項目名が登録されている項目名データベース１０５を有する。
【００１８】
帳票受信部１０９は、読み取り装置１１２又はインターネット１１４を介して受信した電子帳票を、取引先企業名と共に、学習用帳票１０４又は認識対象帳票１０６として保存する。項目値行学習プログラム１０１は、項目名データベース１０５に登録されている項目名を含む行を表見出しとし、項目値行の位置が既知である学習用帳票１０４から、表見出しと項目値行の対応関係を機械学習し、項目値行認識モデル１０７を生成する（図３参照）。項目値行認識プログラム１０２は、項目値行認識モデル１０７を用いて、認識対象帳票１０６中の項目値行を認識し、抽出する（図１０参照）。項目値認識プログラム１０３は、表見出しの項目名に項目値行内の項目値を対応付け、図１１に示す項目名・項目値データベース１０８に格納する（図１０参照）。
【００１９】
図１Ｂは、認識サーバ１００の物理的な構成を示すブロック図である。
【００２０】
本実施例の認識サーバ１００は、プロセッサ（ＣＰＵ）１、メモリ２、補助記憶装置３及び通信インターフェース４を有する計算機によって構成される。
【００２１】
プロセッサ１は、メモリ２に格納されたプログラムを実行する。メモリ２は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００２２】
補助記憶装置３は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置によって構成され、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置３から読み出されて、メモリ２にロードされて、プロセッサ１によって実行される。
【００２３】
通信インターフェース４は、所定のプロトコルに従って、他の装置（読み取り装置１１２、取引先企業ＰＣ１１３）との通信を制御するネットワークインターフェース装置である。
【００２４】
認識サーバ１００は、入力インターフェース５及び出力インターフェース８を有してもよい。入力インターフェース５は、キーボード６やマウス７などが接続され、オペレータからの入力を受けるインターフェースである。出力インターフェース８は、ディスプレイ装置９やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【００２５】
プロセッサ１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して認識サーバ１００に提供され、非一時的記憶媒体である不揮発性の補助記憶装置３に格納される。このため、認識サーバ１００は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００２６】
認識サーバ１００は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００２７】
また、認識サーバ１００において、プログラムによって実装される機能ブロックの全部又は一部は、物理的な集積回路（例えば、Field-Programmable Gate Array）等によって構成されてもよい。
【００２８】
図２は、認識サーバ１００が認識する帳票の一例を示す図である。
【００２９】
図２に示す帳票は、Ｃｏｍｐａｎｙ  ＡからＣｏｍｐａｎｙ  Ｂへの請求書である。Ｃｏｍｐａｎｙ  Ｂが購入した商品及び価格が表構造で帳票に記載されており、表見出し２０１には、商品の個数（Ｑｕａｎｔｉｔｙ）、商品番号（Ｉｔｅｍ  Ｎｏ．）、商品の説明（Ｄｅｓｃｒｉｐｔｉｏｎ）、単価（ＵＮＩＴ  ＰＲＩＣＥ）、合計価格（ＰＲＩＣＥ）の項目名が記載されている。項目値行２０２、２０４、２０６には、表見出しの項目名に対応する項目値が記載されている。また、項目値行２０２、２０４、２０６の間には、項目値行を補足する補足情報２０３、２０５が記載されている。さらに、帳票には、取引先企業毎に、帳票を一意に識別するＩｎｖｏｉｃｅ  Ｎｕｍｂｅｒ２０７が付与されている。学習用帳票１０４は、この帳票の表見出し２０１と項目値行２０２、２０４、２０６の矩形座標を機械学習の正解データとして設定している。
【００３０】
図３は、項目値行学習プログラム１０１による処理のフローチャートである。
【００３１】
まず、項目値行学習プログラム１０１は、学習用帳票１０４の入力を受ける（ステップＳ３０１）。
【００３２】
次に、学習用帳票１０４から文字列行の矩形座標を抽出する（ステップＳ３０２）。ステップＳ３０２では、図４に示すような矩形が学習用帳票１０４から抽出される。
【００３３】
その後、学習用帳票１０４にＯＣＲ処理を行い、文字情報と当該文字の座標を抽出する（ステップＳ３０３）。そして、ＯＣＲの結果から、項目名データベース１０５に登録されている項目名と一致する文字を特定し、特定された文字の帳票上の座標を表見出しの位置として特定する（ステップＳ３０４）。
【００３４】
ステップＳ３０２で矩形として抽出された全ての文字列行について、矩形内の文字ピクセルのヒストグラムを生成する（ステップＳ３０５）。このヒストグラムは、行の水平方向の構造的な特徴を表している。具体的には、文字列行の矩形を水平方向に一定数分割した後、分割された領域内の文字に含まれる黒色ピクセルの個数をヒストグラムの度数とする。図２に示す帳票の表見出し２０１から生成されたヒストグラムを、図５に示す。
【００３５】
次に、水平方向項目値学習を行う（ステップＳ３０６）。水平方向項目値学習は、ステップＳ３０５で生成された、ピクセルの分布を表す水平方向のヒストグラムから表見出しと項目値行の構造の関連性をニューラルネットワークに学習させる処理である。表見出しと項目値行とは、（１）文字列の数が同一又は近い、（２）水平方向で共通の位置に文字列が存在する、（３）表見出し内の項目名によって項目値の文字列長が所定値以上となる又は所定値以下となる、などのパターンがあり、これをニューラルネットに学習させる。例えば、項目名Ｄｅｓｃｒｉｐｔｉｏｎに対応する項目値の文字列長は長くなりやすく、項目名Ｑｕａｎｔｉｔｙに対応する項目値の文字列長は短くなりやすい。
【００３６】
図６は、水平方向項目値学習を行うニューラルネットの認識モデルを示す図である。
【００３７】
図６に示す水平方向項目値行認識ニューラルネットワークモデル６１０は、表見出しヒストグラム６０１及び文字列行ヒストグラム６０２を入力値とする。表見出しヒストグラム６０１は、ステップＳ３０４で特定された表見出しの矩形について、ステップＳ３０５で生成されたヒストグラムである。文字列行ヒストグラム６０２は、ステップＳ３０２で抽出された表見出し以外の文字列の矩形について、ステップＳ３０５で生成されたヒストグラムである。
【００３８】
水平方向項目値行認識ニューラルネットワークモデル６１０は、表見出しヒストグラム６０１の構造の特徴量を抽出する特徴量抽出層Ａ６１１と、文字列行ヒストグラム６０２の構造の特徴量を抽出する特徴量抽出層Ｂ６１２と、二つの特徴量を比較する比較層６１３とで構成される。特徴量抽出層Ａ６１１では、表見出し内の文字列の位置、文字列の数、特定の項目名（例えば、Ｄｅｓｃｒｉｐｔｉｏｎ）の位置が特徴量として抽出されるよう学習が行われる。特徴量抽出層Ｂ６１２では、文字列行内の文字列の位置、文字列の数、文字列の長さが特徴量として抽出されるように学習が行われる。比較層６１３では、二つの特徴量から、文字列行ヒストグラム６０２の構造が、表見出しヒストグラム６０１に対応する項目値行の構造として尤もらしい程度を評価する。具体的には、表見出しの文字列の位置、文字列の数及び項目名の各々に対応して、表見出しに対する文字列行内の文字列の位置、文字列の数及び文字列の長さの尤度が学習される。比較層６１３の出力は、項目値行の確率６１４になる。
【００３９】
水平方向項目値行認識ニューラルネットワークモデル６１０に対して、帳票から抽出した文字列行毎に、学習用帳票１０４の表見出しヒストグラム６０１と項目値行ヒストグラムを入力する場合の出力が１、学習用帳票１０４の表見出しヒストグラム６０１と項目値行以外の文字列行のヒストグラムを入力する場合の出力が０となるように、ニューラルネットワークの公知の学習法（例えば、誤差逆伝搬法）によって、学習を実行する。
【００４０】
ステップＳ３０６によって、表見出しと項目値行との構造上の特徴量から項目値行を推定できる。
【００４１】
続いて、項目値行の周辺空間の情報からニューラルネットワークに入力可能な特徴量を生成する近傍行特徴量生成処理を行う（ステップＳ３０７）。項目値行の周辺空間の情報を追加の特徴量として用いると、より高い精度で項目値行を推定できる。周辺空間の情報とは、具体的には、罫線、空白、類似した文字列行である。帳票によっては、罫線が表見出しと項目値行との間や、表構造の終端に記載されるため、罫線は項目値行の存在範囲を判定するための有効な情報である。また、帳票によっては、表構造と非表構造との間には一定以上の空白が設けられるため、空白は項目値行の存在範囲の判定に有効な情報である。さらに、項目値行が表構造中に複数ある場合、特徴量が類似する行構造が一定範囲内に繰り返し存在し、同様の行構造の相対位置は項目値行の判断に有効な情報である。よって、罫線、空白、類似した文字列行が存在する情報をニューラルネットワークに学習させることによって、項目値行の認識精度を高めることができる。
【００４２】
図７Ａ、図７Ｂは、近傍行特徴量生成処理の例を示す図である。
【００４３】
図示する例では、帳票７００の文字列行７０１の周辺空間として、上下１０行から特徴量を生成する。具体的には、各文字列行を１行、文字列行７０１と同じ高さの空白部分を１行、罫線を１行とした近傍行１０行７０２、７０３を対象範囲とする。
【００４４】
図７Ｂに示す近傍行特徴量テーブル７１０は、各近傍行に割り当てられた近傍行番号７０４、７１１と、各近傍行の特徴量７１２を含む。特徴量７１２は、ステップＳ３０６で生成した水平方向項目値行認識ニューラルネットワークモデル６１０が算出した値で、各文字列行が項目値行である確率（Ｐｏｓｓｉｂｉｌｉｔｙ）、空白であるか（Ｂｌａｎｋ）、罫線であるか（Ｌｉｎｅ）、表見出しであるか（Ｈｅａｄｅｒ）を含む。例えば、Ｐｏｓｓｉｂｉｌｉｔｙは、行の行構造同士を比較して、同じ又は類似している行構造の行は項目値行である可能性が高いと判定する。
【００４５】
次に、ステップＳ３０７で生成した近傍行特徴量を入力として垂直方向項目値行学習を行う（ステップＳ３０８）。図８に示すように、垂直方向項目値行学習で生成される垂直方向項目値行認識ニューラルネットワークモデル８０２は、近傍行特徴量８０１を入力として、水平方向項目値行認識ニューラルネットワークモデル６１０と同様に項目値行の確率８０３を出力する。帳票から抽出された各文字列行毎に、文字列行７０１が項目値行の場合は１を出力し、非項目値行の場合は０を出力するように、逆誤差伝搬法を用いて学習する。
【００４６】
図９は、項目値行認識プログラム１０２及び項目値認識プログラム１０３による処理のフローチャートである。
【００４７】
まず、項目値行認識プログラム１０２は、認識対象帳票１０６を取引先企業名と共に取得する（ステップＳ９０１）。
【００４８】
ステップＳ９０２からステップＳ９０５までの処理は、項目値行学習プログラム１０１によるステップＳ３０２からステップＳ３０５までの処理と同じである。
【００４９】
ステップＳ９０６では、認識対象帳票１０６の文字列行毎に、ステップＳ９０５までの処理で生成された表見出しヒストグラム６０１及び文字列行ヒストグラム６０２を入力し、ステップＳ３０６で生成された水平方向項目値行認識ニューラルネットワークモデル６１０によって、文字列行が項目値行である確率を算出する（ステップＳ９０６）。
【００５０】
ステップＳ９０６で算出された項目値行である確率を用いて、項目値行学習プログラム１０１によるステップＳ３０７と同様に、認識対象帳票１０６の文字列行毎に近傍行特徴量を生成する（ステップＳ９０７）。
【００５１】
ステップＳ３０８で生成された垂直方向項目値行認識ニューラルネットワークモデルによって、ステップＳ９０７で生成された近傍行特徴量から、文字列行が項目値行である確率を算出する（ステップＳ９０８）。
【００５２】
具体的には、所定数の空白行が連続した後は、文字列行が項目値行である可能性が低いと判定する。また、同じ又は類似している行構造の行は、項目値行である可能性が高いと判定する。また、二つの罫線の間の文字列行は項目値行である可能性が高いと判定し、最下部の罫線以後は項目値行である可能性が低いと判定する。
【００５３】
ステップＳ９０８で算出された項目値行である確率が所定の閾値以上の文字列行を項目値行であると判定し、表見出しの項目名と項目値行内の項目値とを対応付ける。項目名と項目値とを対応付ける方法を図１０に示す。項目名データベース１０５に格納されている項目名のうち、表見出しに含まれる項目名の数を算出する。項目名データベース１０５には、Ｑｕａｎｔｉｔｙ、Ｉｔｅｍ  Ｎｏ．、Ｄｅｓｃｒｉｐｔｉｏｎ、ＵＮＩＴ  ＰＲＩＣＥ、ＰＲＩＣＥが含まれている。このとき、表見出し１００１には、５つの項目名が含まれると判定できる。なお、表見出し１００１中のＵＮＩＴ  ＰＲＩＣＥについては、項目名データベース１０５中のＵＮＩＴ  ＰＲＩＣＥ及びＰＲＩＣＥが対応するが、文字列長の長い項目名を優先して利用する。続いて、項目値行内の文字列を最小の空白で区切り、文字列の数を算出する。文字列の数が表見出し１００１内の項目名の数と異なる場合、文字列を区切る空白長を長くして、再度、文字列の数を算出する。表見出し内の項目名の数と項目値行内の文字列の数とが等しくなるまで、空白長を長くして処理を繰り返し、項目値を決定する。例えば、項目値行１００２では、ＯｆｆｉｃｅとＣｈａｉｒ間を空白として文字列を分割しており、文字列の個数は６となる。Ｐ０００１１５とＯｆｆｉｃｅとの間の空白長を文字列の分割に用いた場合、文字列の数は５となる（１００３）。すなわち、項目値行内の項目数が表見出し内の項目数と同じになるように、小さい空白を除外していく。よって、図１０に示す場合では、４、Ｐ０００１１５、Ｏｆｆｉｃｅ  Ｃｈａｉｒ、＄４０．００、＄１６０．００が項目値となる。得られた項目値を左から順に表見出しの項目名と対応付ける（ステップＳ９０９）。
【００５４】
次に、帳票番号を抽出する（Ｓ９１０）。具体的には、ステップＳ９０３で抽出したＯＣＲ結果からＩｎｖｏｉｃｅ  Ｎｕｍｂｅｒを抽出する。Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒは、一般的に帳票上で文字列Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒの右隣又は直下に存在する数値を含む文字列であるため、帳票中の他の文字列と容易に区別可能である。図２に示す帳票では、文字列Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒの右隣にある１１１１１１を抽出する。
【００５５】
そして、項目値認識プログラム１０３は、ステップＳ９０１で取得した取引先企業名、ステップＳ９０９で対応付けた項目名及び項目値、及びステップＳ９１０で抽出したＩｎｖｏｉｃｅ  Ｎｕｍｂｅｒを項目名・項目値データベース１０８に格納する（ステップＳ９１１）。
【００５６】
図１１は、項目名・項目値データベース１０８の構成例を示す図である。
【００５７】
項目名・項目値データベース１０８は、取引先企業名１１０１、Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒ１１０２、項目名（Ｑｕａｎｔｉｔｙ、Ｉｔｅｍ  Ｎｏ．、Ｄｅｓｃｒｉｐｔｉｏｎ、Ｕｎｉｔ  Ｐｒｉｃｅ、Ｐｒｉｃｅ）に対応する項目値１１０３を格納する。図２及び図１０に示す帳票では、図１１の最下行のように、ＣｏｍｐａｎｙとしてＣｏｍｐａｎｙ  Ａ、Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒとして１１１１１１、Ｑｕａｎｔｉｔｙとして４、Ｉｔｅｍ  Ｎｏ．としてＰ０００１１５、ＤｅｓｃｒｉｐｔｉｏｎとしてＯｆｆｉｃｅ  Ｃｈａｉｒ、Ｕｎｉｔ  Ｐｒｉｃｅとして４０、Ｐｒｉｃｅとして１６０が格納される。
【００５８】
以上に説明したように、本発明の実施例によると、項目値行認識モデル６１０は、認識すべき帳票から文字列を含む行の情報を抽出し、抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと他の行のヒストグラムとを解析して行構造の関連性を特徴量として用いて、当該他の行が項目値行であるかを判定するので、表見出しと項目値とを正確に対応付けできる。
【００５９】
また、行の情報は、文字列を含むように定められた矩形の情報、前記矩形の位置情報、及び文字列を認識した文字情報であるので、帳票中で解析すべき領域を限定し、演算量を減らすことができる。
【００６０】
また、ヒストグラムは、行内の文字列を含むように定められた矩形を水平方向に所定数に分割した領域内で文字に含まれる黒色ピクセルの数を表すように構成したので、行内の文字の和也文字の位置を定量化できる。
【００６１】
また、帳票から文字列を含む行の情報を抽出し、抽出した行の情報をヒストグラムに変換し、表見出しを含む行のヒストグラムと項目値を含む行のヒストグラムとを解析して行構造の関連性を特徴量として機械学習することによって、項目値行認識モデル６１０を生成するので、文字そのものを入力するよりも、行の構造的な特徴を表す定量的な値という機械学習に適する値を用いて帳票を解析するためのモデルを生成できる。
【００６２】
また、項目値行認識モデル６１０は、前記認識すべき帳票に含まれる罫線、空白、及び同じ構造を持った文字列行の位置の少なくとも一つを用いて、当該他の行が項目値行であるかを判定するので、項目値行を認識する精度を向上できる。
【００６３】
また、項目値行認識モデル６１０は、所定数の空白行が連続した後は項目値行である可能性が低いと判定するので、未知の帳票でも高精度に項目値行を認識できる。
【００６４】
また、項目値行認識モデル６１０は、行構造が同じ行は項目値行である可能性が高いと判定するので、未知の帳票でも高精度に項目値行を認識できる。
【００６５】
また、項目値行認識モデル６１０は、二つの罫線の間の行は項目値行である可能性が高く、最下の罫線より下は項目値行である可能性が低いと判定するので、未知の帳票でも高精度に項目値行を認識できる。
【００６６】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００６７】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００６８】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００６９】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００７０】
１００  認識サーバ、１０１  項目値行学習プログラム、１０２  項目値行認識プログラム、１０３  項目値認識プログラム、１０４  学習用帳票、１０５  項目名データベース、１０６  認識対象帳票、１０７  項目値行認識モデル、１０８  項目名・項目値データベース、１１１  紙帳票、１１２  読み取り装置、１１３  取引先企業ＰＣ、１１４  インターネット、２０１  表見出し、２０２、２０４、２０６  項目値行  ２０３、２０５  項目値行補足情報、２０７  Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒ、６０１  表見出しヒストグラム、６０２  文字列行ヒストグラム、６１０  水平方向項目値行認識ニューラルネットワークモデル、６１１  特徴量抽出層Ａ、６１２  特徴量抽出層Ｂ、６１３  比較層、６１４  項目値行の確率、７００  帳票、７０１  文字列行、７０２、７０３  近傍１０行、７０４  近傍行番号、７１０  近傍行特徴量テーブル、７１１  近傍行番号、７１２  特徴量、８０１  近傍行特徴量、８０２  垂直方向項目値行認識ニューラルネットワークモデル、８０３  項目値行の確率、１００１  表見出し、１００２、１００３  項目値行、１１０１  取引先企業名、１１０２  Ｉｎｖｏｉｃｅ  Ｎｕｍｂｅｒ、１１０３  項目値
【図１Ａ】
2018005462.tif 000003
【図１Ｂ】
2018005462.tif 000004
【図２】
2018005462.tif 000005
【図３】
2018005462.tif 000006
【図４】
2018005462.tif 000007
【図５】
2018005462.tif 000008
【図６】
2018005462.tif 000009
【図７Ａ】
2018005462.tif 000010
【図７Ｂ】
2018005462.tif 000011
【図８】
2018005462.tif 000012
【図９】
2018005462.tif 000013
【図１０】
2018005462.tif 000014
【図１１】
2018005462.tif 000015