(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
(実施の形態)
以下、本発明の実施の形態について、
図1から
図19を参照しながら説明する。
【0017】
[装置構成]
最初に、
図1を用いて、本実施の形態における帳票処理装置100の構成について説明する。
図1は、帳票処理装置の一例を示す図である。
【0018】
図1に示す帳票処理装置100は、帳票を効率よく生成する装置である。また、
図1に示すように、帳票処理装置100は、第一の生成部200を有する。
【0019】
このうち、第一の生成部200は、データ入力済みの入力帳票ファイルと出力帳票ファイルとで用いられているデータを、可変文字データと、固定文字データと、罫線データとに分類する(分類部2(後述する210、220に対応))。そして、分類した固定文字データと罫線データとを用いて、入力帳票ファイルに対して用いるデータ未入力の出力帳票ファイルであるマスタ帳票ファイルを生成する(生成部3(後述する240に対応))。
【0020】
ここで、データとは、入力帳票ファイルと出力帳票ファイルとが有する、帳票上の文字、罫線などを表すデータなどである。
【0021】
可変文字データは、例えば、複数の同じフォーマットの帳票ファイル(入力帳票ファイル、出力帳票ファイル)において、同じ領域に入力された文字が変化したと判断された場合、この領域に入力された文字を表すデータ(例えば、領域、文字列、データ形式、記述形式などのデータ)である。
【0022】
固定文字データは、例えば、複数の同じフォーマットの帳票ファイルにおいて、同じ領域に入力された文字が固定され変化しないと判断された場合、この領域に入力された文字を表すデータである。
【0023】
罫線データは、例えば、帳票ファイルで用いる罫線を表すデータ(例えば、領域、太さ(幅)などのデータ)である。
【0024】
このように、本実施の形態においては、固定文字データと罫線データとを用いて、マスタ帳票ファイルを生成するので、帳票ファイルを効率よく生成することができる。
【0025】
[システム構成]
続いて、
図2を用いて、本実施の形態における帳票処理装置100の構成をより具体的に説明する。
図2は、帳票処理装置を有するシステムの一例を示す図である。
【0026】
図2に示すように、本実施の形態における帳票処理装置100は、第一の生成部200に加えて、第二の生成部300、第三の生成部400を有する。
【0027】
第一の生成部200は、処理済みの複数の帳票ファイル10を用いて、可変データ抽出定義ファイル40及びマスタ帳票ファイル50を生成する。なお、第一の生成部200の詳細については後述する。
【0028】
第二の生成部300は、帳票ファイル10を用いて、データリンク定義ファイル60を生成する。また、第二の生成部300が有する可変データ抽出部310(抽出部)は、入力帳票ファイル20を用いて、可変データ抽出定義ファイル40を参照し、可変文字データ70を抽出する。なお、第二の生成部300の詳細については後述する。
【0029】
第三の生成部400は、データリンク定義ファイル60を参照して、可変文字データ70をマスタ帳票ファイル50にオーバーレイし、出力帳票ファイル30を生成する。なお、第三の生成部400の詳細については後述する。
【0030】
第一の生成部200について説明する。
図3を用いて、可変データ抽出定義ファイル40とマスタ帳票ファイル50との生成方法について説明する。
図3は、第一の生成部の一例を示す図である。
図3に示すように、第一の生成部200は、文字・罫線データ抽出部210、可変・固定データ分類部220、可変データ抽出定義生成部230、マスタ帳票生成部240を有する。
【0031】
文字・罫線データ抽出部210は、帳票ファイル10ごとに、帳票ファイル10に含まれる文字を表す文字データと、罫線を表す罫線データとを抽出する。
【0032】
(a1)具体的には、文字・罫線データ抽出部210は、まず、不図示の記憶部に記憶されている複数の帳票ファイル10を取得する。なお、記憶部は、帳票処理装置100の内部に設けてもよいし、外部に設けてもよい。
【0033】
帳票ファイル10は、処理済みの複数の入力帳票ファイル、又は複数の出力帳票ファイル、又は三つ以上の入力帳票ファイルと出力帳票ファイルとを有している。
【0034】
ここで、処理済みの帳票ファイルとは、入力帳票ファイル及び出力帳票ファイルに、過去において何らかの処理が行われた、データ入力済みの帳票ファイルである。帳票ファイル10とは、例えば、PDF(Portable Document Format)形式の帳票ファイルなどである。ただし、帳票ファイルはPDFに限定されるのもではない。
【0035】
図4は、入力帳票ファイル及び出力帳票ファイルの一例を示す図である。
図4に示す請求書は、入力帳票ファイルの一例を示している。また、
図4に示す支払依頼書は、出力帳票ファイルの一例を示している。なお、支払依頼書とは、入力帳票ファイルに対応する請求書に対して作成された出力帳票ファイルである。
【0036】
(a2)続いて、文字・罫線データ抽出部210は、画像処理を用いて、帳票ファイル10が有する文字データと罫線データとを抽出する。その後、文字・罫線データ抽出部210は、帳票ファイル10ごとに、抽出した文字データと罫線データとを文字・罫線データ80として、記憶部に記憶する。
【0037】
なお、画像処理としては、例えば、OCR(Optical Character Reader)などの画像処理を用いることが考えられる。ただし、画像処理はOCRに限定されるのもではない。
【0038】
図5は、文字データ、罫線データの抽出領域の一例を示す図である。
図5には、
図4に示した支払依頼書の一部が示されている。文字・罫線データ抽出部210は、画像処理を用いて、例えば、
図5に示すように文字に対応する領域(破線矩形範囲:文字の抽出領域)と、罫線に対応する領域(実線矩形範囲:罫線の抽出領域)を抽出する。
【0039】
図6は、文字・罫線データのデータ構造の一例を示す図である。文字・罫線データ80のうち、
図6に示す帳票データ81(81a、81b、81c・・・)には、項目「抽出番号」、「始点座標」「終点座標」「文字列」「データ形式」「記述形式」それぞれに、それらの項目に関係する帳票ファイルに文字を表すために用いる文字データ(
図6に示す表81の行のデータ)が関連付けられている。
【0040】
帳票データ81の項目「抽出番号」には、抽出した文字の抽出領域のインデックス番号を表すパラメータが関連付けられる。項目「始点座標」「終点座標」には、抽出した文字の抽出領域の始点、終点となる座標を表すデータが関連付けられる。項目「文字列」には、抽出した文字の抽出領域に含まれる文字列を表すデータが関連付けられる。項目「データ形式」には、文字、数値、金額、日付などのデータの種類を表すデータが関連付けられる。項目「記述形式」には、文字列に含まれる文字のフォント、区切り文字、桁数などの文字の記述を表すデータが関連付けられる。
【0041】
また、文字・罫線データ80のうち、
図6に示す帳票データ82(82a、82b、82c・・・)には、項目「抽出番号」、「始点座標」「終点座標」「幅」それぞれに、それらの項目に関係する帳票に罫線を表すために用いるデータ(
図6に示す表82の行のデータ)が関連付けられている。
【0042】
帳票データ82の項目「抽出番号」には、抽出した罫線の抽出領域のインデックス番号を表すデータが関連付けられている。項目「始点座標」「終点座標」には、抽出した罫線の抽出領域の始点、終点となる座標を表すデータが関連付けられている。項目「幅」には、抽出した罫線の抽出領域の幅を表すデータが関連付けられている。
【0043】
可変・固定データ分類部220は、あらかじめ設定された比較設定を参照して、文字・罫線データ80(帳票データ81、82)の抽出領域で扱うデータを、可変文字データ90と固定文字・罫線データ91とに分類する。
【0044】
(b1)具体的には、可変・固定データ分類部220は、まず、文字・罫線データ抽出部210から、文字・罫線データ80(文字データ81、罫線データ82)を取得する。また、可変・固定データ分類部220は、文字データ81、罫線データ82それぞれを分類するために用いる比較条件が設定された比較設定も取得する。
【0045】
比較設定は、例えば、
図7に示す比較設定83、84のような情報で、あらかじめ記憶部に記憶しておく。比較設定83、84は、項目「始点座標」「終点座標」「閾値」「項目」に、それら項目に関連する、抽出領域を比較するために用いる条件を表すデータが関連付けられている。
図7は、比較設定、文字・罫線データ、比較結果の関係を示す図である。
【0046】
比較設定83の項目「始点座標」「終点座標」には、文字の抽出領域の始点、終点となる座標を表すデータが関連付けられている。項目「閾値」には、データの種類(可変・固定データ)ごとにあらかじめ設定した閾値Th1を表すデータが関連付けられている。項目「項目」には、比較対象となる文字データの項目を表すデータが関連付けられている。
【0047】
また、比較設定84の項目「始点座標」「終点座標」には、罫線の抽出領域の始点、終点となる座標を表すデータが関連付けられている。項目「閾値」には、データの種類ごとにあらかじめ設定した閾値を表すデータが関連付けられている。項目「項目」には、比較対象となる罫線データの項目を表すデータが関連付けられている。
【0048】
(b2)続いて、可変・固定データ分類部220は、取得した比較設定の抽出領域を選択する。例えば、比較設定83の先頭行の抽出領域を選択する場合、「始点座標」(130,5)と「終点座標」(140,10)とを選択する。
【0049】
(b3)続いて、可変・固定データ分類部220は、選択した比較設定の抽出領域を参照して、選択した比較設定の抽出領域に対応する抽出領域を文字・罫線データ80から検出する。例えば、選択した抽出領域が比較設定83の「始点座標」(130,5)と「終点
座標」(140,10)である場合、
図6の帳票データ81a、81b、81c・・・それぞれから、選択した比較設定83の抽出領域に対応する抽出領域を検出する。
【0050】
なお、抽出領域の検出では、文字列長、フォントサイズなどの影響により、抽出領域の大きさ、位置に差が生じる。そこで、抽出領域の検出をする場合には、抽出領域の大きさ、位置などが完全に一致したか否かを判定するのではなく、抽出領域が重複するか否かを判定する。例えば、抽出領域の一部又は全部が重複するか否かを判定する。
【0051】
また、他の抽出領域の検出として、重複する抽出領域の割合を算出し、あらかじめ設定した閾値以上であるか否かを判定してもよい。更に、「始点座標」「終点座標」にあらかじめ設定した補正値を加算して補正後の領域範囲内の場合、同一であると判定してもよい。
【0052】
(b4)続いて、可変・固定データ分類部220は、検出した文字・罫線データ80それぞれの抽出領域に含まれるデータを取得する。例えば、取得した抽出領域が比較設定83の「始点座標」(130,5)と「終点座標」(140,10)とである場合、選択した比較設定83の抽出領域(「始点座標」「終点座標」)に関連付けられた「項目」に含まれる「文字列」「データ形式」を参照して、
図6の帳票データ81a、81b、81cそれぞれから、「文字列」に対応するデータ「発行日」と、「データ形式」に対応するデータ「文字列」とを取得する。
【0053】
(b5)続いて、可変・固定データ分類部220は、選択した比較設定の抽出領域に、取得したデータを関連付ける。例えば、
図7に示すように、選択した比較設定83の抽出領域(「始点座標」「終点座標」)に関連付けられた、帳票データ81a、81b、81cそれぞれに対応する帳票Aデータ、帳票Bデータ、帳票Cデータ・・・ごとの項目「文字列」「データ形式」それぞれに、取得したデータ「発行日」「文字列」を関連付ける。
【0054】
(b6)続いて、可変・固定データ分類部220は、抽出領域ごとに、文字データ又は罫線データの一致率Cr1[%]を算出する。一致率Cr1は、例えば、数1を用いて算出する。
【0055】
[数1]
Cr1=max(データが一致する帳票ファイル数)/帳票ファイル総数×100
【0056】
なお、maxは、複数の帳票ファイルにおいて、一致するデータ(文字データ又は罫線データ)が複数あった場合、データの一致数が最も大きい帳票ファイルの数を求める関数である。例えば、
図7の比較設定83における一行目の「項目」の場合、「文字列」「データ形式」の二項目を用いて比較する。帳票Aデータ、帳票Bデータ、帳票Cデータは、すべて「発行日」「文字列」になっているので、全て一致していると判定する。
【0057】
次に、
図7の表に帳票Dデータ、帳票Eデータ、帳票Fデータが存在した場合、もし、帳票Dデータと帳票Eデータとの一行目に対応する「文字列」が「発行日付」で、帳票Fデータの一行目に対応する「文字列」が「日付」などである場合、帳票Aデータ、帳票Bデータ、帳票Cデータと異なる「文字列」であるので、帳票Aデータ、帳票Bデータ、帳票Cデータを最多と判定し、データが一致する帳票ファイル数を3とする。つまり、最初に入力した帳票ファイルのデータを基準にデータが一致するか否かを判定するのではなく、多数決方式でデータが一致するか否かを判定する。
【0058】
また、
図7の比較設定83における二行目の「項目」の場合、「文字列」「データ形式
」「記述形式」の三項目を用いて比較する。その場合、帳票Aデータが「2018年8月20日」「日付」「半角数字,YYYY年MM月DD日」で、帳票Bデータが「2018/09/20」「日付」「半角数字,YYYY/MM/DD」で、帳票Cデータが「2018年10月20日」「日付」「全角数字,YYYY年MM月DD日」であるので、「日付」の「データ形式」とその「記述形式」の違いを検出して、帳票Aデータの「文字列」を「2018/8/20」とし、帳票Bデータを「2019/9/20」とし、帳票Cデータを「2018/10/20」とする。すなわち、同じ形式の文字列に変換して比較する。その上で文字列が異なるため、全て一致しないと判定する。
【0059】
選択した抽出領域が比較設定83の「始点座標」(130,5)と「終点座標」(140,10)とである場合、
図7では、帳票Aデータ、帳票Bデータ、帳票Cデータ・・・すべてにおいて、取得した「発行日」と「文字列」とが一致しているので、一致率Cr1は100[%]となる。対して、一致していない場合は、一致率Cr1は100[%]より小さくなる。
【0060】
なお、上述した例においては、「文字列」「データ形式」のデータを比較したが、「記述形式」などを用いてもよい。そうすることで、比較精度がより向上する。また、罫線データの場合、誤差が発生する可能性があるので、「幅」のデータに許容範囲を設けてもよい。
【0061】
このように、(b1)の処理をした後に、(b2)から(b6)の処理を繰り返して、比較設定83、84の抽出領域(「開始座標」「終点座標」のペア)の一部又は全てにおいて一致率Cr1を算出して、
図7に示すように比較結果85、86の「一致率」に記憶する。
【0062】
(b7)続いて、可変・固定データ分類部220は、算出した一致率Cr1を参照して、対応する抽出領域で扱うデータが可変文字データであるか固定文字データであるかを分類する。例えば、可変・固定データ分類部220は、比較結果85、86から一致率Cr1を取得して、対応する比較設定83、84の「閾値」に設定されている閾値Th1を参照して、抽出領域で扱うデータが可変文字データであるか固定文字データであるかを分類する。
【0063】
すなわち、可変・固定データ分類部220は、一致率Cr1が閾値Th1より大きい場合、抽出領域で扱うデータを固定文字データに分類する。また、一致率Cr1が閾値Th1以下の場合、抽出領域で扱うデータを可変文字データに分類する。
【0064】
図7の例では、比較設定83の「始点座標」(130,5)と「終点座標」(140,10)とで表される抽出領域に対応する、比較設定83の「閾値」が「90」で、比較結果85の「一致率」が「100」であるので、当該抽出領域は固定文字データを扱う領域に分類される。従って、
図7に示すように、比較結果85の抽出領域に対応する「分類」には「固定」が記憶される。
【0065】
対して、
図7の例においては、「始点座標」(170,5)と「終点座標」(195,10)とで表される抽出領域に対応する、比較設定83の「閾値」は「100」で、比較結果85の「一致率」は「10」であるので、当該抽出領域は可変文字データを扱う領域に分類される。従って、
図7に示すように、比較結果85の当該抽出領域に対応する「分類」には「可変」が記憶される。
【0066】
なお、閾値Th1は、実験、シミュレーションなどにより決定する。なお、数値、金額、日付などのデータは、可変である可能性が高いため、閾値Th1を高く設定することが
望ましい。
【0067】
また、閾値Th1を100と設定するとことにより、対象の抽出領域で扱うデータを「可変」と分類してもよい。
【0068】
また、可変文字データと固定文字データとを分類するのは難しため、帳票総数に合わせて閾値を設定することが望ましい。帳票ファイルの総数が多い場合、閾値を高くすることにより、データの分類精度を向上させることができる。
【0069】
また、閾値Th1の最小値は「51」とすることが望ましい。その理由は、一致率Cr1が50である場合、対象の抽出領域を、可変文字データを扱う領域に分類する必要があるためである。
【0070】
このように、(b6)の処理をした後に、(b7)の処理を繰り返して、比較設定83、84の抽出領域(「開始座標」「終点座標」のペア)の一部又は全てにおいて閾値Th1と一致率Cr1とを比較して、比較結果85、86の「分類」に分類した結果(「可変」又は「固定」)を記憶する。
【0071】
なお、
図7において、「可変」に分類された文字データを可変文字データ90とし、「固定」に分類された文字データ及び罫線データを固定文字・罫線データ91とする。
【0072】
可変データ抽出定義生成部230は、可変文字データ90を参照して、可変データ抽出定義ファイル40を生成する。例えば、可変データ抽出定義生成部230は、可変文字データ90の項目「始点座標」「終点座標」「データ形式」それぞれのデータに、項目「定義番号」のインデックス番号を表すデータを関連付けて、
図8に示すような可変データ抽出定義ファイル40を生成する。
図8は、可変データ抽出定義ファイルのデータ構造の一例を示す図である。
【0073】
マスタ帳票生成部240は、固定文字・罫線データ91を参照して、マスタ帳票ファイル50を生成する。
【0074】
例えば、マスタ帳票生成部240は、固定文字・罫線データ91(
図9に示す固定の文字データ、固定の罫線データ)における、固定文字データの項目「始点座標」「終点座標」「文字列」「記述形式」に関連付けられたデータと、罫線データの項目「始点座標」「終点座標」「幅」に関連付けられたデータとを参照して、新規ファイル(無地の帳票ファイル)に固定文字と罫線とを出力するために用いる固定文字データと罫線データとを取得する。
図9は、固定文字・罫線データのデータ構造の一例を示す図である。
【0075】
そして、マスタ帳票生成部240は、取得した固定文字データと罫線データとを用いて、
図10に示すようなマスタ帳票ファイル50を生成する。
図10は、マスタ帳票ファイルの一例を示す図である。
【0076】
第二の生成部300について説明する。
図2、
図11を用いて、データリンク定義ファイル60(可変データ関連情報)と可変文字データ70との生成方法について説明する。
図11は、第二の生成部の一例を示す図である。
図11に示すように、第二の生成部300は、可変データ抽出部310、データリンク定義生成部320、データリンク定義分類部330を有する。
【0077】
第二の生成部300は、分類した可変文字データのうち文字列を表すデータを用いて、入力帳票ファイル11と、入力帳票ファイル11に対して用いられる出力帳票ファイル1
2とにおいて共通で用いられる可変文字データを抽出する(可変データ抽出部310)。
【0078】
そして、第二の生成部300は、入力帳票ファイル11から抽出した可変文字データと、出力帳票ファイル12から抽出した可変文字データとを関連付けて、データリンク定義ファイル60を生成する(データリンク定義生成部320、データリンク定義分類部330)。
【0079】
可変データ抽出部310は、帳票ファイル10(
図11に示す入力帳票ファイル11、出力帳票ファイル12)に対して、第一の生成部200で生成した可変データ抽出定義ファイル40(
図11に示す入力帳票可変データ抽出定義ファイル41、出力帳票可変データ抽出定義ファイル42)を参照して、入力帳票文字データ71、出力帳票文字データ72を生成する。
【0080】
また、可変データ抽出部310(抽出部)は、入力帳票ファイル20に対して、第一の生成部200で生成した可変データ抽出定義ファイル40を参照して、可変文字データ70を生成する。
【0081】
データリンク定義ファイル60を生成する場合について具体的に説明する。
可変データ抽出部310は、入力帳票ファイル11(例えば、
図4に示す請求書)に対して、入力帳票ファイル11に対応する、第一の生成部200で生成した入力帳票可変データ抽出定義ファイル41を参照して、入力帳票文字データ71を生成する。
【0082】
また、可変データ抽出部310は、出力帳票ファイル12(例えば、
図4に示す支払依頼書)に対しても、第一の生成部200で生成した出力帳票ファイル12に対応する出力帳票可変データ抽出定義ファイル42を参照して、出力帳票文字データ72を生成する。例えば、
図4に示す支払依頼書の場合であれば、
図12に示すように可変文字データを抽出する。
図12は、可変文字データのデータ構造の一例を示す図である。
【0083】
可変文字データ70を生成する場合について具体的に説明する。
可変データ抽出部310(抽出部)は、分類した可変文字データを用いて、新規の入力帳票ファイルから可変文字データを抽出する。例えば、可変データ抽出部310は、新規に作成された入力帳票ファイル20に対して、第一の生成部200で生成した入力帳票ファイル20に対応する可変データ抽出定義ファイル40を参照して、可変文字データを抽出して、可変文字データ70を生成する。
【0084】
なお、可変文字データ70を生成する抽出部は、可変データ抽出部310と別に設けてもよい。
【0085】
データリンク定義生成部320は、入力帳票文字データ71と出力帳票文字データ72とを用いて、データリンク定義61を生成する。例えば、データリンク定義生成部320は、
図13に示すように、入力帳票文字データ71の項目「文字列」に関連付けられたデータと、出力帳票文字データ72の項目「文字列」に関連付けられたデータとを比較して、一致するデータを検出する。
図13は、入力帳票ファイル、出力帳票ファイルから抽出した可変文字データと、データリンク定義とのデータ構造の一例を示す図である。
【0086】
なお、検出の際に、更に項目「記述形式」に関連付けられたデータを比較対象としてもよい。なお、「記述形式」に関連付けられたデータの表す内容が一致又は同じと判定できる場合には一致とする。
【0087】
その後、データリンク定義生成部320は、一致した可変文字データを検出した場合、
図13に示すように、一致した「文字列」「データ形式」のデータに関連する、入力帳票文字データ71の抽出領域(「始点座標」「終点座標」)と、出力帳票文字データ72の抽出領域(「始点座標」「終点座標」)とを取得する。
【0088】
そして、データリンク定義生成部320は、
図13のデータリンク定義に示すように、入力帳票文字データ71の抽出領域(「始点座標」「終点座標」のデータ)と、出力帳票文字データ72の抽出領域(「始点座標」「終点座標」のデータ)と、一致した「データ形式」「記述形式」それぞれのデータと、更にインデックス番号を示す「定義番号」とを関連付けて、データリンク定義61を生成する。
【0089】
なお、データリンク定義61は、入力帳票ファイルと、入力帳票ファイルに対応する出力帳票ファイルとの組み合わせに応じた数だけ生成される。
【0090】
データリンク定義分類部330は、生成したデータリンク定義61を固定と可変とに分類する。データリンク定義分類部330は、生成したデータリンク定義61の数が一つの場合、データリンク定義61を固定と分類し、データリンク定義ファイル60とする。
【0091】
また、データリンク定義分類部330は、データリンク定義61の数が複数ある場合、あらかじめ設定された比較設定を参照して、生成したデータリンク定義61それぞれの定義を、固定と可変とに分類する。
【0092】
(c1)具体的には、データリンク定義分類部330は、まず、データリンク定義生成部320から、データリンク定義61を取得する。また、データリンク定義分類部330は、データリンク定義61の定義それぞれを分類するために用いる比較条件が設定された比較設定も取得する。
【0093】
定義の比較設定は、例えば、
図14に示す比較設定62のような情報で、あらかじめ記憶部に記憶しておく。比較設定62は、項目「定義番号」「閾値」に、それら項目に関連する、定義を比較するために用いる条件を表すデータが関連付けられている。
図14は、比較設定、データリンク定義、比較結果の関係を示す図である。
【0094】
比較設定62の項目「定義番号」には、インデックス番号を表すデータが関連付けられている。項目「閾値」には、閾値Th2を表すデータが関連付けられている。なお、閾値Th2は、実験、シミュレーションなどにより決定する。
【0095】
(c2)続いて、データリンク定義分類部330は、取得した比較設定の定義番号を選択する。例えば、比較設定62の先頭行の定義番号を選択する場合、「定義番号」に対応する「1」を選択する。
【0096】
(c3)続いて、データリンク定義分類部330は、データリンク定義61それぞれの「定義番号」が一致する各定義に対して、数2を用いて定義の一致率Cr2を算出する。
【0097】
[数2]
Cr2=定義が一致するデータリンク定義数/データリンク定義の総数×100
【0098】
選択した比較設定62の「定義番号」が「1」である場合、
図14では、データリンク定義A、データリンク定義B、データリンク定義C・・・すべてにおいて、定義番号「1」に対応する定義があるので、一致率Cr2は100[%]となる。対して、定義番号に対応する定義がデータリンク定義A、B、C・・・のいずれかにない場合、一致率Cr2
は100[%]より小さくなる。
【0099】
このように、(c1)から(c3)の処理を繰り返して、比較設定62の定義番号の一部又は全てにおいて一致率Cr2を算出して、
図14に示すように比較結果63の「一致率」に記憶する。
【0100】
(c4)続いて、データリンク定義分類部330は、算出した一致率Cr2を参照して、定義を固定か可変かに分類する。例えば、データリンク定義分類部330は、比較結果63から一致率Cr2を取得して、対応する比較設定62の「閾値」に設定されている閾値Th2を参照して、定義を固定か可変かに分類する。
【0101】
すなわち、データリンク定義分類部330は、一致率Cr2が閾値Th2より大きい場合、定義を固定に分類する。また、一致率Cr2が閾値Th2以下の場合、定義を可変に分類する。
【0102】
図14の例では、比較設定62の定義番号「1」に対応する、比較設定62の「閾値」が「80」で、比較結果63の「一致率」が「100」であるので、当該定義番号に対応する定義は固定に分類される。従って、
図14に示すように、比較結果63の抽出領域に対応する「分類」には「固定」が記憶される。
【0103】
対して、
図14の例においては、比較設定62の定義番号「3」に対応する、比較設定62の「閾値」が「80」で、比較結果63の「一致率」が「0」であるので、当該定義番号に対応する定義は固定に分類される。従って、
図14に示すように、比較結果63の抽出領域に対応する「分類」には「可変」が記憶される。
【0104】
なお、閾値Th2は、帳票ファイルの総数に合わせて閾値を設定することが望ましく、帳票総数が比較的に多い場合は閾値を高くすることにより定義の分類の精度を向上させることができる。
【0105】
このように、(c3)の処理をした後に、(c4)の処理を繰り返して、比較設定62の定義番号の一部又は全てにおいて閾値Th2と一致率Cr2とを比較して、比較結果63の「分類」に分類した結果(「可変」又は「固定」)を記憶する。
【0106】
そして、データリンク定義分類部330は、「固定」に分類された定義をデータリンク定義ファイル60として、記憶部に記憶する。
【0107】
第三の生成部400は、データリンク定義ファイル60(可変データ関連情報)を参照して、可変文字データ70をマスタ帳票ファイル50にオーバーレイ出力し、出力帳票ファイル30を生成する。
【0108】
例えば、第三の生成部400は、新規の入力帳票ファイルから抽出した可変文字データ(可変文字データ70)を用いて、データリンク定義ファイル60(可変データ関連情報)を参照し、マスタ帳票ファイル50から当該可変文字データを出力する出力領域を検出する。そして、第三の生成部400は、検出した出力領域に当該可変文字データを関連付けて、新規に出力帳票ファイル30を生成する。
【0109】
図15の例では、入力帳票ファイル20から抽出した可変文字データ70の可変文字データ(抽出領域(「始点座標」(50,70)、「終点座標」(70,80))、文字列「216,000」)を用いて、データリンク定義ファイル60を参照して、マスタ帳票ファイル50の出力領域(「始点座標」(110,100)、「終点座標」(125,1
05))を検出する。そして、第三の生成部400は、検出した出力領域に文字列「216,000」)をオーバーレイする。
図15は、出力帳票ファイルの生成を説明するための図である。
【0110】
[変形例]
入力帳票ファイルから抽出した可変文字データが、出力帳票ファイルに存在しないことがある。例えば、文書番号に対応する文字データと別に管理されている番号、発行者の所属、TEL、名前に対応するデータが該当する。
【0111】
そこで、文書番号に対応する文字データと別に管理されている番号については、あらかじめマスタデータとして記憶部に記憶しておいてもよい。具体的には、マスタデータを、データリンク定義ファイル60と、文字・罫線データ80とへ追加する機能を、帳票処理装置100に設ける。
【0112】
また、所属、TEL(電話番号)、名前などのデータについては、データの変更の頻度が低いので、当該データが一致する複数の帳票ファイル10を準備して、第一の生成部200を用いて、固定データとしてマスタ帳票ファイル50に出力させる。
【0113】
[装置動作]
次に、本発明の実施の形態における帳票処理装置の動作について
図16、
図17、
図18を用いて説明する。
図16は、帳票処理装置の動作の一例を示す図である。
図17は、第一の生成部の動作の一例を示す図である。
図18は、第二の生成部の動作の一例を示す図である。以下の説明においては、適宜
図2から
図15を参照する。また、本実施の形態では、帳票処理装置を動作させることによって、帳票処理法が実施される。よって、本実施の形態における帳票処理方法の説明は、以下の帳票処理装置の動作説明に代える。
【0114】
図16を用いて帳票処理装置1の全体の動作について説明する。
最初に、帳票準備フィーズにおいて、帳票処理装置1の第一の生成部200は、可変データ抽出定義ファイルを生成する(ステップA1)。また、第一の生成部200は、マスタ帳票ファイルを生成する(ステップA2)。
【0115】
具体的には、ステップA1、A2において、第一の生成部200は、処理済みの複数の帳票ファイル10を用いて、可変データ抽出定義ファイル40及びマスタ帳票ファイル50を生成する。なお、ステップA1とステップA2の順番は逆でもよい。なお、ステップA1、A2の詳細については
図17を用いて後述する。
【0116】
次に、帳票処理装置1の第二の生成部300は、データリンク定義ファイル(可変データ関連情報)を生成する(ステップA3)。具体的には、ステップA3において、第二の生成部300は、帳票ファイル10を用いて、データリンク定義ファイル60を生成する。なお、ステップA3の詳細については
図18を用いて後述する。
【0117】
次に、帳票生成フェーズにおいて、第二の生成部300は、可変文字データを抽出する(ステップA4)。具体的には、ステップA4において、第二の生成部300が有する可変データ抽出部310(抽出部)は、入力帳票ファイル20を用いて、可変データ抽出定義ファイル40を参照し、可変文字データ70を抽出する。なお、ステップA4の詳細については後述する。
【0118】
次に、帳票生成フェーズにおいて、第三の生成部400は、出力帳票ファイルを生成する(ステップA5)。第三の生成部400は、具体的には、ステップA5において、データリンク定義ファイル60を参照して、可変文字データ70をマスタ帳票ファイル50に
オーバーレイし、出力帳票ファイル30を生成する。なお、ステップA5の詳細については後述する。
【0119】
ステップA1、A2の処理について
図17を用いて説明する。
ステップB1において、文字・罫線データ抽出部210は、帳票ファイル10ごとに、帳票ファイル10に含まれる文字を表す文字データと、罫線を表す罫線データとを抽出する。
【0120】
(a1)具体的には、ステップB1において、文字・罫線データ抽出部210は、まず、不図示の記憶部に記憶されている複数の帳票ファイル10を取得する。
【0121】
(a2)続いて、ステップB1において、文字・罫線データ抽出部210は、画像処理を用いて、帳票ファイル10が有する文字データと罫線データとを抽出する。その後、文字・罫線データ抽出部210は、帳票ファイル10ごとに、抽出した文字データと罫線データとを文字・罫線データ80として、記憶部に記憶する。
【0122】
ステップB2において、可変・固定データ分類部220は、あらかじめ設定された比較設定を参照して、文字・罫線データ80(帳票データ81、82)の抽出領域で扱うデータを、可変文字データ90と固定文字・罫線データ91とに分類する。
【0123】
(b1)具体的には、ステップB2−1において、可変・固定データ分類部220は、まず、文字・罫線データ抽出部210から、文字・罫線データ80(文字データ81、罫線データ82)を取得する。また、ステップB2−1において、可変・固定データ分類部220は、文字データ81、罫線データ82それぞれを分類するために用いる比較条件が設定された比較設定も取得する。
【0124】
(b2)続いて、ステップB2−2において、可変・固定データ分類部220は、取得した比較設定の抽出領域を選択する。例えば、
図7の比較設定83の先頭行の抽出領域を選択する場合、「始点座標」(130,5)と「終点座標」(140,10)とを選択する。
【0125】
(b3)続いて、ステップB2−3において、可変・固定データ分類部220は、選択した比較設定の抽出領域を参照して、選択した比較設定の抽出領域に対応する抽出領域を、文字・罫線データ80から検出する。例えば、
図7の選択した抽出領域が比較設定83の「始点座標」(130,5)と「終点座標」(140,10)である場合、
図6の帳票データ81a、81b、81c・・・それぞれから、選択した比較設定83の抽出領域に対応する抽出領域を検出する。
【0126】
(b4)続いて、ステップB2−4において、可変・固定データ分類部220は、検出した文字・罫線データ80それぞれの抽出領域に含まれるデータを取得する。例えば、取得した抽出領域が比較設定83の「始点座標」(130,5)と「終点座標」(140,10)とである場合、選択した比較設定83の抽出領域(「始点座標」「終点座標」)に関連付けられた「項目」に含まれる「文字列」「データ形式」を参照して、
図6の帳票データ81a、81b、81cそれぞれから、「文字列」に対応するデータ「発行日」と、「データ形式」に対応するデータ「文字列」とを取得する。
【0127】
(b5)続いて、ステップB2−5において、可変・固定データ分類部220は、選択した比較設定の抽出領域に、取得したデータを関連付ける。例えば、
図7に示すように、選択した比較設定83の抽出領域(「始点座標」「終点座標」)に関連付けられた、帳票データ81a、81b、81cそれぞれに対応する帳票Aデータ、帳票Bデータ、帳票Cデ
ータ・・・ごとの項目「文字列」「データ形式」それぞれに、取得したデータ「発行日」「文字列」を関連付ける。
【0128】
(b6)続いて、ステップB2−6において、可変・固定データ分類部220は、抽出領域ごとに、文字データ又は罫線データの一致率Cr1[%]を算出する。一致率Cr1は、例えば、数1を用いて算出する。
【0129】
選択した抽出領域が比較設定83の「始点座標」(130,5)と「終点座標」(140,10)とである場合、
図7では、帳票Aデータ、帳票Bデータ、帳票Cデータ・・・すべてにおいて、取得した「発行日」と「文字列」とが一致しているので、一致率Cr1は100[%]となる。対して、一致していない場合は、一致率Cr1は100[%]より小さくなる。
【0130】
このように、ステップB2−1(b1)の処理をした後に、ステップB2−2(b2)からステップB2−6(b6)の処理を繰り返して、比較設定83、84の抽出領域(「開始座標」「終点座標」のペア)の一部又は全てにおいて一致率Cr1を算出して、
図7に示すように比較結果85、86の「一致率」に記憶する。
【0131】
(b7)続いて、ステップB2−7において、可変・固定データ分類部220は、算出した一致率Cr1を参照して、対応する抽出領域で扱うデータが可変文字データであるか固定文字データであるかを分類する。
【0132】
すなわち、可変・固定データ分類部220は、一致率Cr1が閾値Th1より大きい場合(ステップB2−7:Yes)、ステップB2−8において、抽出領域で扱うデータを固定文字データに分類する。また、一致率Cr1が閾値Th1以下の場合、ステップB2−9において、抽出領域で扱うデータを可変文字データに分類する。
【0133】
その後、可変・固定データ分類部220は、ステップB2−10において、分類が終了した場合(ステップB2−10:Yes)、ステップB3の処理を実行する。分類が終了していない場合(ステップB2−10:No)、可変・固定データ分類部220は、ステップB2−7の処理を実行する。
【0134】
このように、ステップB2−6(b6)の処理をした後に、ステップB2−7からB2−10(b7)の処理を繰り返して、比較設定83、84の抽出領域(「開始座標」「終点座標」のペア)の一部又は全てにおいて閾値Th1と一致率Cr1とを比較して、比較結果85、86の「分類」に分類した結果(「可変」又は「固定」)を記憶する。
【0135】
なお、
図7において、「可変」に分類された文字データを可変文字データ90とし、「固定」に分類された文字データ及び罫線データを固定文字・罫線データ91とする。
【0136】
続いて、ステップB3において、可変データ抽出定義生成部230は、可変文字データ90を参照して、可変データ抽出定義ファイル40を生成する。例えば、可変データ抽出定義生成部230は、可変文字データ90の項目「始点座標」「終点座標」「データ形式」それぞれのデータに、項目「定義番号」のインデックス番号を表すデータを関連付けて、
図8に示すような可変データ抽出定義ファイル40を生成する。
【0137】
続いて、ステップB4において、マスタ帳票生成部240は、固定文字・罫線データ91を参照して、マスタ帳票ファイル50を生成する。
【0138】
例えば、マスタ帳票生成部240は、固定文字・罫線データ91(
図9に示す固定の文
字データ、固定の罫線データ)における、固定文字データの項目「始点座標」「終点座標」「文字列」「記述形式」に関連付けられたデータと、罫線データの項目「始点座標」「終点座標」「幅」に関連付けられたデータとを参照して、新規ファイル(無地の帳票ファイル)に固定文字と罫線とを出力するために用いる固定文字データと罫線データとを取得する。
【0139】
そして、マスタ帳票生成部240は、取得した固定文字データと罫線データとを用いて、
図10に示すようなマスタ帳票ファイル50を生成する。
【0140】
ステップA3の処理について
図18を用いて説明する。
ステップC1において、可変データ抽出部310は、帳票ファイル10(
図11に示す入力帳票ファイル11、出力帳票ファイル12)に対して、第一の生成部200で生成した可変データ抽出定義ファイル40(
図11に示す入力帳票可変データ抽出定義ファイル41、出力帳票可変データ抽出定義ファイル42)を参照して、入力帳票文字データ71、出力帳票文字データ72を生成する。
【0141】
ステップC2において、データリンク定義生成部320は、入力帳票文字データ71と出力帳票文字データ72とを用いて、データリンク定義61を生成する。例えば、データリンク定義生成部320は、
図13に示すように、入力帳票文字データ71の項目「文字列」に関連付けられたデータと、出力帳票文字データ72の項目「文字列」に関連付けられたデータとを比較して、一致するデータを検出する。
【0142】
ステップC3において、データリンク定義生成部320は、入力帳票ファイルと、入力帳票ファイルに対応する出力帳票ファイルとの組み合わせに応じた数のデータリンク定義を生成した場合(ステップC3:Yes)、ステップC4の処理を実行し、そうでない場合(ステップC3:No)、データリンク定義生成部320は、ステップC2の処理を実行する。
【0143】
ステップC4において、データリンク定義分類部330は、生成したデータリンク定義61を固定と可変とに分類する。データリンク定義分類部330は、生成したデータリンク定義61の数が一つの場合、データリンク定義61を固定と分類し、データリンク定義ファイル60とする。
【0144】
また、ステップC4において、データリンク定義分類部330は、データリンク定義61の数が複数ある場合、あらかじめ設定された比較設定を参照して、生成したデータリンク定義61それぞれの定義を、固定と可変とに分類する。
【0145】
(c1)具体的には、ステップC4−1において、データリンク定義分類部330は、まず、データリンク定義生成部320から、データリンク定義61を取得する。また、データリンク定義分類部330は、データリンク定義61の定義それぞれを分類するために用いる比較条件が設定された比較設定も取得する。
【0146】
(c2)続いて、ステップC4−2において、データリンク定義分類部330は、取得した比較設定の定義番号を選択する。例えば、比較設定62の先頭行の定義番号を選択する場合、「定義番号」に対応する「1」を選択する。
【0147】
(c3)続いて、ステップC4−3において、データリンク定義分類部330は、データリンク定義61それぞれの「定義番号」が一致する各定義に対して、数2を用いて定義の一致率Cr2を算出する。
【0148】
選択した比較設定62の「定義番号」が「1」である場合、
図14では、データリンク定義A、データリンク定義B、データリンク定義C・・・すべてにおいて、定義番号「1」に対応する定義があるので、一致率Cr2は100[%]となる。対して、定義番号に対応する定義がデータリンク定義A、B、C・・・のいずれかにない場合、一致率Cr2は100[%]より小さくなる。
【0149】
このように、ステップC4−1(c1)からステップC4−3(c3)の処理を繰り返して、比較設定62の定義番号の一部又は全てにおいて一致率Cr2を算出して、
図14に示すように比較結果63の「一致率」に記憶する。
【0150】
(c4)続いて、ステップC4−4において、データリンク定義分類部330は、算出した一致率Cr2を参照して、定義を固定か可変かに分類する。例えば、データリンク定義分類部330は、比較結果63から一致率Cr2を取得して、対応する比較設定62の「閾値」に設定されている閾値Th2を参照して、定義を固定か可変かに分類する。
【0151】
すなわち、データリンク定義分類部330は、一致率Cr2が閾値Th2より大きい場合(ステップC4−4:Yes)、ステップC4−5において、定義を固定に分類する。また、一致率Cr2が閾値Th2以下の場合(ステップC4−4:No)、ステップC4−6において、定義を可変に分類する。
【0152】
図14の例では、比較設定62の定義番号「1」に対応する、比較設定62の「閾値」が「80」で、比較結果63の「一致率」が「100」であるので、当該定義番号に対応する定義は固定に分類される。従って、
図14に示すように、比較結果63の抽出領域に対応する「分類」には「固定」が記憶される。
【0153】
対して、
図14の例においては、比較設定62の定義番号「3」に対応する、比較設定62の「閾値」が「80」で、比較結果63の「一致率」が「0」であるので、当該定義番号に対応する定義は固定に分類される。従って、
図14に示すように、比較結果63の抽出領域に対応する「分類」には「可変」が記憶される。
【0154】
このように、ステップC4−7(c4)の処理をした後に、ステップC4−(c4)の処理を繰り返して、比較設定62の定義番号の一部又は全てにおいて閾値Th2と一致率Cr2とを比較して、比較結果63の「分類」に分類した結果(「可変」又は「固定」)を記憶する。
【0155】
続いて、ステップC5において、データリンク定義分類部330は、「固定」に分類された定義をデータリンク定義ファイル60として、記憶部に記憶する。
【0156】
ステップA4、A5について説明する。
ステップA4において、可変データ抽出部310(抽出部)は、入力帳票ファイル20に対して、第一の生成部200で生成した可変データ抽出定義ファイル40を参照して、可変文字データ70を生成する。
【0157】
例えば、ステップA4において、可変データ抽出部310は、新規に作成された入力帳票ファイル20に対して、第一の生成部200で生成した入力帳票ファイル20に対応する可変データ抽出定義ファイル40を参照して、可変文字データを抽出して、可変文字データ70を生成する。
【0158】
なお、可変文字データ70を生成する抽出部は、可変データ抽出部310と別に設けてもよい。
【0159】
ステップA5において、第三の生成部400は、データリンク定義ファイル60(可変データ関連情報)を参照して、可変文字データ70をマスタ帳票ファイル50にオーバーレイ出力し、出力帳票ファイル30を生成する。
【0160】
例えば、ステップA5において、第三の生成部400は、新規の入力帳票ファイルから抽出した可変文字データ(可変文字データ70)を用いて、データリンク定義ファイル60(可変データ関連情報)を参照し、マスタ帳票ファイル50から当該可変文字データを出力する出力領域を検出する。そして、第三の生成部400は、検出した出力領域に当該可変文字データを関連付けて、新規に出力帳票ファイル30を生成する。
【0161】
図15の例では、入力帳票ファイル20から抽出した可変文字データ70の可変文字データ(抽出領域(「始点座標」(50,70)、「終点座標」(70,80))、文字列「216,000」)を用いて、データリンク定義ファイル60を参照して、マスタ帳票ファイル50の出力領域(「始点座標」(110,100)、「終点座標」(125,105))を検出する。そして、第三の生成部400は、検出した出力領域に文字列「216,000」)をオーバーレイする。
【0162】
[変形例]
入力帳票ファイルから抽出した可変文字データが、出力帳票ファイルに存在しないことがある。例えば、文書番号に対応する文字データと別に管理されている番号、発行者の所属、TEL、名前に対応するデータが該当する。
【0163】
そこで、文書番号に対応する文字データと別に管理されている番号については、あらかじめマスタデータとして記憶部に記憶しておいてもよい。具体的には、マスタデータを、データリンク定義ファイル60と、文字・罫線データ80とへ追加するステップを追加する。
【0164】
また、所属、TEL(電話番号)、名前などのデータについては、データの変更の頻度が低いので、当該データが一致する複数の帳票ファイル10を準備して、第一の生成部200を用いて、固定データとしてマスタ帳票ファイル50に出力させる。
【0165】
[本実施の形態の効果]
以上のように本実施の形態によれば、固定文字データと罫線データとを用いて、マスタ帳票ファイル(テンプレート)を生成するので、帳票ファイルを効率よく生成することができる。
【0166】
また、過去の処理済の複数帳票ファイルから可変データ抽出定義及びデータリンク定義を自動生成するため、専用のアプリケーションによる帳票作成、更には設計の作業が不要となる。
【0167】
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、
図16に示すステップA1からA5、
図16に示すステップB1からB4、
図17に示すステップC1からC5を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における帳票処理装置と帳票処理方法とを実現することができる。この場合、コンピュータのプロセッサは、第一の生成部200(文字・罫線データ抽出部210、可変・固定データ分類部220、可変データ抽出定義生成部230、マスタ帳票生成部240)、第二の生成部300(可変データ抽出部310、データリンク定義生成部320、データリンク定義分類部330)、第三の生成部400として
機能し、処理を行なう。
【0168】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、第一の生成部200(文字・罫線データ抽出部210、可変・固定データ分類部220、可変データ抽出定義生成部230、マスタ帳票生成部240)、第二の生成部300(可変データ抽出部310、データリンク定義生成部320、データリンク定義分類部330)、第三の生成部400のいずれかとして機能してもよい。
【0169】
[物理構成]
ここで、実施の形態におけるプログラムを実行することによって、帳票処理装置を実現するコンピュータについて
図19を用いて説明する。
図19は、本発明の実施の形態における帳票処理装置を実現するコンピュータの一例を示すブロック図である。
【0170】
図19に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
【0171】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
【0172】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0173】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0174】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。