【文献】
駱 琴,帳票文書の構造認識のための書式構造知識の自動獲得,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,1993年03月25日,第J76-D-II巻 第3号,pp.534-546
(58)【調査した分野】(Int.Cl.,DB名)
前記分類部は、前記矩形領域から認識された前記文字列の配置が、前記矩形領域において線対称である場合に、前記矩形領域を前記項目欄と分類することを特徴とする請求項1乃至5のいずれか一項に記載の帳票入力フォーム生成装置。
前記分類部は、前記矩形領域から認識された前記文字列の前方の空白である前方空白領域と、前記文字列の後方の空白である後方空白領域の大きさの差分が、所定のサイズ以上である場合に、前記矩形領域を前記穴埋め入力欄と分類することを特徴とする請求項1乃至6のいずれか一項に記載の帳票入力フォーム生成装置。
前記分類部は、前記矩形領域から認識された前記文字列の中に所定のサイズ以上の空白が存在し、且つ、前記文字列が所定の辞書情報に含まれない場合に、前記矩形領域を前記穴埋め入力欄と分類することを特徴とする請求項1乃至7のいずれか一項に記載の帳票入力フォーム生成装置。
【発明を実施するための形態】
【0024】
以下、
図1乃至
図12を参照しながら、本発明の実施の形態(以下、本実施形態)に係る帳票入力フォーム生成装置10、及び帳票入力フォーム生成装置10を含む帳票入力フォーム生成システム1について説明する。
なお、以下に説明する実施形態は、本発明の理解を容易にするための一例に過ぎず、本発明を限定するものではない。すなわち、以下に説明するシステムの構成、データ、処理等については、本発明の趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物が含まれる。
【0025】
[1.帳票入力フォーム生成システム1の全体構成]
図1には、帳票入力フォーム生成システム1のシステム構成を示した。
図1に示されるように、帳票入力フォーム生成システム1は、帳票入力フォーム生成装置10及びクライアント装置20を備える。帳票入力フォーム生成装置10とクライアント装置20とは例えばインターネット等のネットワークNを介して相互に通信可能に接続される。
【0026】
図1に示されるように、帳票入力フォーム生成装置10は、ハードウェアとして制御部11、記憶部12及び通信部13を備えるコンピュータである。
【0027】
制御部11は、例えば中央処理装置(Central Processing Unit)を含み構成され、記憶部12に記憶されるプログラムやデータに基づいて各種の演算処理を実行するとともに、帳票入力フォーム生成装置10の各部を制御する。
【0028】
記憶部12は、例えばメモリ、磁気ディスク装置を含み構成され、各種のプログラムやデータを記憶するほか、制御部11のワークメモリとしても機能する。
【0029】
通信部13は、ネットワークインターフェースカード(NIC)等の通信インターフェースを有し、通信インターフェースを介してネットワークNに接続する。そして、通信部13は、ネットワークNを介してクライアント装置20等のデバイスと通信する。
【0030】
次に、クライアント装置20のハードウェア構成について説明する。
図1に示されるように、クライアント装置20は、制御部21、記憶部22、通信部23、入力部24、表示部25、及び入出力部26を備えるコンピュータである。
なお、本実施形態では、クライアント装置20が入力部24及び表示部25を備えることとして説明するが、入力部24及び表示部25はクライアント装置20の外部装置として設けられてもよい。
【0031】
制御部21は、例えば中央処理装置(Central Processing Unit)を含み構成され、記憶部22に記憶されるプログラムやデータに基づいて各種の演算処理を実行するとともに、クライアント装置20の各部を制御する。
【0032】
記憶部22は、例えばメモリ、磁気ディスク装置を含み構成され、各種のプログラムやデータを記憶するほか、制御部21のワークメモリとしても機能する。
【0033】
通信部23は、ネットワークインターフェースカード(NIC)等の通信インターフェースを有し、通信インターフェースを介してネットワークNに接続する。そして、通信部23は、ネットワークNを介して帳票入力フォーム生成装置10等のデバイスと通信する。
【0034】
入力部24は、例えばタッチパネル、キーボード、マウス等の入力デバイスを含み構成され、ユーザの操作情報の入力を受け付ける。
【0035】
表示部25は、例えば液晶ディスプレイ装置等の表示デバイスを含み構成され、制御部21により生成されるグラフィックデータに基づく画面を表示させる。
【0036】
入出力部26は、スキャナ30等の外部装置と接続し、外部装置との間でデータを通信する。例えば、クライアント装置20は、入出力部26を介してスキャナ30と通信し、スキャナ30を制御するとともに、スキャナ30から帳票Sのスキャン画像を取得する。
【0037】
スキャナ30は、紙媒体を光学走査することにより画像情報を取り込む装置である。本実施形態では、スキャナ30は、帳票Sをスキャンしたスキャン画像(画像情報)を、クライアント装置20に出力する。
【0038】
[2.帳票入力フォーム生成システム1において実行される処理の概要]
次に、
図2乃至
図7を参照しながら、帳票入力フォーム生成システム1において実行される処理の概要について説明する。
【0039】
まず、クライアント装置20では、スキャナ30により帳票Sのスキャンを実行し、帳票Sのスキャン画像を取得する。
【0040】
図2には、帳票Sの一例を示した。本実施形態では、帳票Sが、「出生届」である例について説明するが、帳票Sの種類はこれに限られるものではない。また、スキャナ30によりスキャンされる帳票Sには未記入のものを用いることとする。
【0041】
次に、クライアント装置20は、帳票Sのスキャン画像を帳票入力フォーム生成装置10に送信し、帳票Sのスキャン画像に基づく入力フォームの生成を要求する。
【0042】
帳票入力フォーム生成装置10は、クライアント装置20から受信した帳票Sのスキャン画像から罫線L(表を構成する縦及び横の線画像)を検出するとともに、検出した罫線Lにより囲まれる矩形領域Rを抽出する。この際、帳票入力フォーム生成装置10は、各々の矩形領域Rの座標位置、及びサイズ(縦及び横の長さ)の情報を得る。
【0043】
ここで、
図3に示されるように、帳票入力フォーム生成装置10は、帳票Sのスキャン画像から抽出された各々の矩形領域Rについて識別番号を付与する。例えば、帳票入力フォーム生成装置10は、各々の矩形領域Rについて、上側に位置する矩形領域Rから順に識別番号を付与する。なお、上下で同じ位置に存在する矩形領域Rについては左から右の順に識別番号を付与することとする。また、本実施形態では、矩形領域Rの位置としては、左上の頂点の座標を用いることとする。
【0044】
次に、帳票入力フォーム生成装置10は、帳票Sのスキャン画像から抽出した矩形領域Rの各々について文字認識処理を実行し、各々の矩形領域Rに含まれる文字列を取得する。
【0045】
帳票入力フォーム生成装置10は、各々の矩形領域Rについての文字列の認識結果に基づいて、各々の矩形領域Rを、項目のみを含む項目欄、項目と入力領域の両方を含む穴埋め入力欄、入力領域のみを含む入力欄のいずれかに分類する。
例えば、帳票入力フォーム生成装置10は、矩形領域Rから文字列が認識されなかった場合にはその矩形領域Rを入力欄に分類する。
また例えば、帳票入力フォーム生成装置10は、矩形領域Rから文字列が認識された場合であって、空きスペース(文字列のない領域)又は空きスペースの占める割合が閾値以上であるときには以下の処理を実行する。すなわち、帳票入力フォーム生成装置10は、上記の矩形領域Rを穴埋め入力欄に分類し、それ以外の場合には上記の矩形領域Rを項目欄に分類する。
【0046】
図3においては、識別番号が“()”で囲まれた矩形領域Rは項目欄であることを示し、識別番号が“[]”で囲まれた矩形領域Rは穴埋め入力欄であることを示し、識別番号が“<>”で囲まれた矩形領域Rは入力欄であることを示す。
【0047】
次に、帳票入力フォーム生成装置10は、帳票Sのスキャン画像から抽出された各々の矩形領域Rの分類(項目欄、穴埋め入力欄、入力欄)と、横方向に並ぶ矩形領域Rの位置関係とに基づいて、矩形領域Rの階層構造(ツリー構造)を解析する。なお、階層構造の解析処理の詳細については後述する。
【0048】
図4には、帳票Sについて解析された矩形領域Rの階層構造を示した。
図4に示されるように、帳票Sから抽出された各々の矩形領域Rに基づいて、項目欄同士の親子関係(上位下位の関係)、項目欄と穴埋め入力欄との親子関係、項目欄と入力欄との対応関係が決定される。
【0049】
次に、帳票入力フォーム生成装置10は、帳票Sについての解析結果に基づいて、帳票Sに含まれる項目とその項目に設定するデータとを入力可能とした入力フォームを生成する。例えば、入力フォームは、HTMLにより記述され、ウェブブラウザにより表示可能なデータである。
【0050】
また、帳票入力フォーム生成装置10は、帳票Sの所定領域からの文字列認識結果、又は、帳票Sのスキャン画像とともに受信した情報に基づいて、帳票Sの帳票名(又は帳票種類)を特定する。そして、帳票入力フォーム生成装置10は、帳票Sについて解析した項目欄、又は穴埋め入力欄に示される項目のうち、帳票名について予め定められた項目の優先順位に基づいて、入力フォームに記載する項目を選択することとしてよい。例えば、帳票入力フォーム生成装置10は、優先順位が所定の順位以上の項目を入力フォームに記載する項目として選択することとしてよい。
【0051】
そして、帳票入力フォーム生成装置10は、上記選択した項目と、それらの項目に設定するデータ形式とを、帳票Sの帳票構造の解析結果に基づいて決定し、項目と入力領域とを対応付けて表示する入力フォームを生成する。ここで、帳票入力フォーム生成装置10は、優先順位の高い順に項目とその入力領域とを上から並べることとしてよい。
【0052】
帳票入力フォーム生成装置10は、上記生成した入力フォームをクライアント装置20に送信する。
ここでクライアント装置20は、帳票入力フォーム生成装置10から受信した入力フォームをユーザに提示する入力フォーム提示画面W1を表示部25に表示させる。
【0053】
図5には、クライアント装置20の表示部25に表示される入力フォーム提示画面W1の一例を示した。
図5に示されるように、入力フォーム提示画面W1には、表示領域A1〜A6、項目選択ボタンP1及び確定ボタンP2が含まれる。
【0054】
表示領域A1〜A6には、それぞれ帳票入力フォーム生成装置10により選択された項目とその入力領域とが表示される。ここで、上述したように、表示領域A1〜A6に表示される項目は、優先順位の高い順に並べられていることとしてよい。
【0055】
また、項目選択ボタンP1は、入力フォーム提示画面W1に表示される項目の追加、削除をするための操作部である。
そして、確定ボタンP2は、入力フォーム提示画面W1に表示される入力フォームの内容を確定するための操作部である。
【0056】
例えば、
図5に示される入力フォーム提示画面W1において、項目選択ボタンP1が押下されると、クライアント装置20の表示部25には、
図6に示される項目選択画面W2が表示される。
【0057】
図6に示されるように、項目選択画面W2には、帳票Sに関する複数の項目と、それぞれの項目の選択と非選択を入力可能なチェックボックスCBが表示される。なお、項目選択画面W2に表示される項目は、帳票Sから抽出された項目に加えて、帳票Sの帳票名に関連づけて帳票入力フォーム生成装置10に記憶される項目を含めてもよい。
なお、戻るボタンP3は、項目選択画面W2の前の画面に戻るための操作部である。
また、決定ボタンP4は、項目選択画面W2に入力された内容を項目の選択として決定するための操作部である。
【0058】
項目選択画面W2において項目の選択入力が行われた後に、決定ボタンP4が押下されると、クライアント装置20は、項目選択画面W2における項目の選択結果を帳票入力フォーム生成装置10に送信する。
なお、
図6に示す例では、「その他」の項目が新たに選択されたこととする。
【0059】
帳票入力フォーム生成装置10は、クライアント装置20から受信した項目の選択結果に基づいて、入力フォームを更新する。そして、帳票入力フォーム生成装置10は、更新した入力フォームをクライアント装置20に送信する。
【0060】
クライアント装置20は、帳票入力フォーム生成装置10から受信した更新後の入力フォームをユーザに提示する入力フォーム提示画面W3を表示部25に表示させる。
【0061】
図7には、クライアント装置20の表示部25に表示される入力フォーム提示画面W3の一例を示した。
図7に示されるように、入力フォーム提示画面W3には、表示領域A1〜A6に、項目選択画面W2を介して新たに選択された「その他」の項目を表示する表示領域A7が新たに追加される。
【0062】
そして、入力フォーム提示画面W3における確定ボタンP2が押下されると、クライアント装置20は、確定された入力フォームのデータを帳票入力フォーム生成装置10に送信する。
帳票入力フォーム生成装置10は、確定された入力フォームのデータを記憶部12又は、他のサーバに登録し、確定された入力フォームを利用可能な状態とする。
【0063】
[3.帳票入力フォーム生成装置10に備えられる機能]
以下においては、以上説明した処理を実現するために帳票入力フォーム生成装置10に備えられる機能について説明する。
【0064】
図8には、帳票入力フォーム生成装置10の機能ブロック図を示した。
図8に示されるように、帳票入力フォーム生成装置10は、機能として、評価値記憶部100、辞書情報記憶部102、取得部104、抽出部106、文字列認識部108、分類部110、解析部112、特定部114、項目選択部116、生成部118、提示部120、選択受付部122、及び更新部124を備える。
【0065】
帳票入力フォーム生成装置10に備えられる上記の各部の機能は、記憶部12に記憶されるプログラムに従って制御部11が帳票入力フォーム生成装置10の各部を動作させることにより実行される。なお、上記のプログラムは、通信部13によりネットワークN等の通信網を介して帳票入力フォーム生成装置10が取得してもよい。
また、上記のプログラムは、コンピュータ読取り可能な情報記憶媒体に記憶されることとしてもよい。この場合、コンピュータとしての帳票入力フォーム生成装置10が上記の情報記憶媒体に記憶されたプログラムを読み込んで取得することとしてもよい。
また、上記のプログラムに基づいて、帳票入力フォーム生成装置10が実行する方法が、帳票入力フォーム生成方法となる。
以下、上記の各部の機能の詳細について説明する。
【0066】
[3.1.評価値記憶部100]
評価値記憶部100は、主に帳票入力フォーム生成装置10の記憶部12により実現される。
評価値記憶部100は、帳票名に関連付けて複数の項目ごとの評価値を記憶する。ここで、帳票名に関連付けられる項目は、予め登録された情報に加えて、帳票Sのスキャン画像の項目欄、穴埋め入力欄から認識された文字列に基づいて追加してもよい。この際、各項目の評価値は、同一の帳票名の帳票に関する項目の出現頻度(出現割合)、出現累積数等に基づいて設定することとしてよい。
なお、上記の帳票名とは、帳票の種類を識別する情報としてよく、必ずしも帳票に記載の名称と一致しなくともよい。
【0067】
ここで
図9には、評価値記憶部100に記憶されるデータの一例として評価値記憶テーブルT1を示した。
図9に示されるように、評価値記憶テーブルT1では、帳票名、項目を一意に識別する項目ID、項目の標準的名称である標準項目名、評価値が関連付けて記憶される。本実施形態では、評価値には、帳票名により識別される帳票における項目の優先順位を用いている。すなわち、評価値に格納される値が小さい程、優先順位が高いことを示している。
もちろん、評価値は優先順位に限られるものではなく、評価値に出現割合、出現累積数等を採用した場合には、評価値が大きい程、優先順位が高いことを示すこととなる。
【0068】
[3.2.辞書情報記憶部102]
辞書情報記憶部102は、主に帳票入力フォーム生成装置10の記憶部12により実現される。
辞書情報記憶部102は、帳票名により識別される帳票に含まれる複数の項目ごとに、標準表現と同義表現とを対応付けた辞書情報を記憶する。ここで、項目を標準表現で表記したものを標準項目名と称する。また、上記の同義表現とは、一の項目について標準表現と同じ意味を示す別の表現である。
辞書情報記憶部102に記憶される辞書情報は、予め登録された情報に加えて、帳票Sのスキャン画像の項目欄、穴埋め入力欄から認識された文字列に基づいて追加してもよい。
【0069】
ここで
図10には、辞書情報記憶部102に記憶されるデータの一例として辞書情報記憶テーブルT2を示した。
図10に示されるように、辞書情報記憶テーブルT2では、帳票名、項目を一意に識別する項目ID、項目の標準的名称である標準項目名、項目の同義表現が関連付けて記憶される。
【0070】
また、辞書情報記憶部102には、辞書情報記憶テーブルT2以外にも、単語、連語、句等を集めた辞書情報を記憶することとしてよい。
【0071】
[3.3.取得部104]
取得部104は、主に帳票入力フォーム生成装置10の制御部11、記憶部12及び通信部13により実現される。なお、取得部104により実行される処理が取得工程である。
取得部104は、帳票Sをスキャンしたスキャン画像を取得する。例えば、取得部104は、クライアント装置20から送信された帳票Sのスキャン画像を、通信部13を介して受信して取得することとしてよい。
もちろん、取得部104による帳票Sのスキャン画像の取得方法はクライアント装置20からの取得に限られるものではない。例えば、帳票Sのスキャン画像が記憶媒体に記憶されている場合には、当該記憶媒体から取得してもよい。また例えば、帳票入力フォーム生成装置10がスキャナ30と接続されている場合には、スキャナ30がスキャンした帳票Sのスキャン画像を直接取得してもよい。
【0072】
[3.4.抽出部106]
抽出部106は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。なお、抽出部106により実行される処理が抽出工程である。
抽出部106は、取得部104により取得した帳票Sのスキャン画像に含まれる罫線により囲まれた矩形領域を抽出する。例えば、抽出部106は、帳票Sのスキャン画像を二値化し、縦方向又は横方向に連結する黒画素の連結画素を罫線として検出する。そして、抽出部106は、スキャン画像の中から罫線により囲まれる矩形領域を抽出する。
ここで、矩形領域として抽出する領域のサイズに予め所定の範囲を設定し、所定の範囲外にある矩形領域については抽出しないようにしてもよい。
また、抽出部106は、上記抽出する矩形領域については、例えば左上の頂点の位置座標、横方向及び縦方向の長さ(画素数)により表される領域サイズの情報をそれぞれ矩形領域の情報として得ることとしてよい。
【0073】
[3.5.文字列認識部108]
文字列認識部108は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。なお、文字列認識部108により実行される処理が文字列認識工程である。
文字列認識部108は、抽出部106により抽出した各々の矩形領域に含まれる文字列を認識する。例えば、文字列認識部108は、抽出部106により抽出した各々の矩形領域について、公知のOCR(光学文字認識)処理により、矩形領域内に含まれる文字列のコード(文字列データ)を取得することとしてよい。
ここで、文字列認識部108は、矩形領域内に含まれる文字の間にスペースがある場合には、当該スペースの情報も取得することとしてよい。
【0074】
[3.6.分類部110]
分類部110は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。なお、分類部110により実行される処理が分類工程である。
分類部110は、文字列認識部108による認識結果に基づいて、抽出部106により抽出された各々の矩形領域を、項目のみを含む項目欄、項目と入力領域の両方を含む穴埋め入力欄、入力領域のみを含む入力欄のいずれかに分類する。
【0075】
以下、
図13乃至
図15を参照しながら、分類部110による矩形領域を項目欄、穴埋め入力欄、入力欄のいずれかに分類する処理の例について詳細に説明する。
【0076】
まず、
図13に基づいて、矩形領域を項目欄に分類する際に用いる判定基準(第1判定基準)について説明する。
図13に示されるように、矩形領域40Aには、文字41A、文字41B、文字41Cが含まれており、それぞれの文字を包含する領域を文字領域42A、文字領域42B、文字領域42Cとする。
そして、分類部110は、文字領域42A、文字領域42B、文字領域42Cから文字の基準サイズを決定する。例えば、文字の基準サイズは、矩形領域40Aに含まれる文字領域の平均値としてよい。
【0077】
ここで、分類部110は、矩形領域40Aに含まれる文字の基準サイズを単位領域として、矩形領域40Aに対し、文字が配置される文字領域43Aと、文字が配置されていない空白領域43Bを設定する。
なお、
図13に示す例では、文字が配置される領域の前後について、文字領域43Aと空白領域43Bを設定している。
【0078】
そして、分類部110は、矩形領域40Aにおいて、文字領域43Aの配置が線対称であるか否かを判定する。具体的には、分類部110は、矩形領域40Aに対し、文字の配列方向(例えば左右方向)に基づいて中心線44を設定し、設定した中心線44により文字領域43Aが線対称(例えば左右対称)に配置されているか否かを判定する。なお、中心線44は、矩形領域40Aを均等分割する線のうち、文字の配列方向と直交する線である。
なお、矩形領域において文字列の配列方向が上下方向である場合には、文字列が上下対称に配置されているか否かを判定することとする。
【0079】
分類部110は、上記の判定により矩形領域40Aにおいて文字領域43Aの配置が線対称である場合には、矩形領域40Aを項目欄に分類する。
【0080】
次に、
図14に基づいて、矩形領域を穴埋め入力欄に分類する際に用いる判定基準(第2判定基準)について説明する。
図14に示されるように、矩形領域40Bには、文字41D、文字41E、文字41Fが含まれており、それぞれの文字を包含する領域を文字領域42D、文字領域42E、文字領域42Fとする。
【0081】
そして、分類部110は、矩形領域40Bに対し、文字41D、文字41E、文字41Fのうち先頭にある文字41Dよりも前方の空白領域である前方空白領域45Aを設定する。
また、分類部110は、矩形領域40Bに対し、文字41D、文字41E、文字41Fのうち最後尾にある文字41Fよりも後方の空白領域である後方空白領域45Bを設定する。
【0082】
そして、分類部110は、前方空白領域45Aと後方空白領域45Bとの差分である差分領域45Cを求め、差分領域45Cが所定サイズよりも大きい場合に、矩形領域40Bを穴埋め入力欄に分類する。なお、上記の所定サイズは、例えば、文字領域42D、文字領域42E、文字領域42Fから決定される文字の基準サイズ(例えば平均値)のN(Nは整数)倍としてよい。
なお、上記の第2判定基準は、文字の前後に入力領域が設けられるタイプの穴埋め入力欄を判定するものである。
【0083】
次に、
図15に基づいて、矩形領域を穴埋め入力欄に分類する際に用いる他の判定基準(第3判定基準)について説明する。なお、第3判定基準は、文字の間に入力領域が設けられる穴埋め入力欄を判定するものである。
【0084】
図15に示されるように、矩形領域40Cには、文字41G、文字41H、文字41Iが含まれており、それぞれの文字を包含する領域を文字領域42G、文字領域42H、文字領域42Iとする。
【0085】
分類部110は、矩形領域40Cに対し、文字41D、文字41E、文字41Fの間の空白である中間空白領域46を設定する。
そして、分類部110は、中間空白領域46が所定サイズよりも大きい場合であって、文字41D、文字41E、文字41Fを繋げた文字列が所定の辞書情報に存在しないものである場合に、矩形領域40Cを穴埋め入力欄に分類する。
なお、上記の所定サイズは、例えば、文字領域42D、文字領域42E、文字領域42Fから決定される文字の基準サイズ(例えば平均値)のN(Nは整数)倍としてよい。
また、上記の所定の辞書情報は、例えば、単語、連語、句等を集めた情報であって、辞書情報記憶部102に記憶されることとしてよい。
【0086】
また、分類部110は、抽出部106により抽出した矩形領域のうち、文字列認識部108により文字列が認識されなかった矩形領域については入力欄に分類する。
【0087】
また、分類部110は、抽出部106により抽出した矩形領域のうち、文字列認識部108により文字列が認識された矩形領域であって、矩形領域における文字列以外のスペースの割合(サイズ比)が所定の閾値未満である条件を満たす矩形領域については項目欄に分類する。そして、分類部110は、上記条件を満たさない矩形領域については穴埋め入力欄に分類することとしてもよい。
【0088】
また、分類部110は、入力欄に分類されなかった矩形領域のうち、第1判定基準により項目欄に分類されなかった矩形領域を穴埋め入力欄に分類することとしてもよい。
また、分類部110は、入力欄に分類されなかった矩形領域のうち、第2判定基準、又は第3判定基準により穴埋め入力欄に分類されなかった矩形領域を項目欄に分類することとしてもよい。
【0089】
なお、分類部110は、矩形領域に対し、以下のようにトリミングしてから分類を判定するようにしてよい。
まず、分類部110は、矩形領域に対し、前後の空白を同じサイズだけトリミングする。例えば、
図14の例であれば、前方空白領域45Aと後方空白領域45Bのうち小さい方のサイズの分だけ矩形領域40Bの前後の空白をトリミングする。ここでは、矩形領域40Bの前後から後方空白領域45Bのサイズをそれぞれトリミングする。
【0090】
また、分類部110は、矩形領域の上下の空白も同様にトリミングする。例えば、上下方向のトリミング量は、矩形領域の上端から文字領域の外接矩形までの距離と、矩形領域の下端から文字領域の外接矩形までの距離のうち短い方とする。
【0091】
そして、分類部110は、上記トリミング後の矩形領域に対して、上記の分類処理を行うこととしてよい。
【0092】
[3.7.解析部112]
解析部112は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。なお、解析部112により実行される処理が解析工程である。
解析部112は、帳票Sについて解析された所定の方向に並ぶ矩形領域の各々の分類及び位置関係に基づいて、帳票Sにおける項目欄同士の階層関係、項目欄と穴埋め入力欄の階層関係、及び項目欄と入力欄との対応関係を解析する。なお、上記の所定方向とは、横方向/縦方向としてよく、本実施形態では、特に横方向の右向き(右方向と称する)を例として説明する。
【0093】
解析部112は、項目欄同士の階層関係については、以下のように解析する。
例えば、解析部112は、帳票Sに含まれる第1の項目欄(任意の項目欄)に対して、所定の方向(例えば右方向)に第2の項目欄が隣接する場合に、第2の項目欄を第1の項目欄の下位に設定する。
具体的な例を挙げて説明すると、解析部112は、
図3に示す帳票Sに関し、項目欄(2)の右方向に項目欄(3)が隣接しているため、項目欄(3)を項目欄(2)の下位に設定する。なお、この例では、項目欄(2)、項目欄(3)がそれぞれ第1の項目欄、第2の項目欄に相当する。
【0094】
また例えば、解析部112は、帳票Sに含まれる上記の第2の項目欄に対して、所定の方向(例えば右方向)に1以上の矩形領域(項目欄以外)を挟んで第3の項目欄が並ぶ場合に、第3の項目欄を上記の第1の項目欄の下位に設定する。
具体的な例を挙げて説明すると、解析部112は、
図3に示す帳票Sに関し、項目欄(3)の右方向に穴埋め入力欄[7],[8]を挟んで、項目欄(5)が並んでいるため、項目欄(5)を項目欄(2)の下位に設定する。なお、この例では、項目欄(2)、項目欄(3)、項目欄(5)がそれぞれ第1の項目欄、第2の項目欄、第3の項目欄に相当する。
【0095】
解析部112は、項目欄と穴埋め入力欄の階層関係については、以下のように解析する。
例えば、解析部112は、帳票Sに含まれる第1の項目欄(任意の項目欄)に対して、所定の方向(例えば右方向)に1以上の第1の穴埋め入力欄が隣接する場合に、当該1以上の第1の穴埋め入力欄を第1の項目欄の下位に設定する。
具体的な例を挙げて説明すると、解析部112は、
図3に示す帳票Sに関し、項目欄(3)の右方向に穴埋め入力欄[7],[8]が隣接しているため、穴埋め入力欄[7],[8]を項目欄(3)の下位に設定する。なお、この例では、項目欄(3)が第1の項目欄、穴埋め入力欄[7],[8]が第1の穴埋め入力欄にそれぞれ相当する。
【0096】
解析部112は、項目欄と入力欄の対応関係については、以下のように解析する。
解析部112は、帳票Sに含まれる第1の項目欄(任意の項目欄)に対して、1以上の入力欄が連続して隣接する場合に、当該1以上の入力欄を第1の項目欄に対応付ける。
具体的な例を挙げて説明すると、解析部112は、
図3に示す帳票Sに関し、項目欄(16)の右方向に入力欄<17>が隣接しているため、入力欄<17>を項目欄(16)に対応付ける。なお、この例では、項目欄(16)が第1の項目欄に、入力欄<17>が第1の入力欄にそれぞれ相当する。また、帳票のツリー構造における項目欄と入力欄の対応関係は、項目欄の下位に入力欄を設定することにより表すこととしてよい。
【0097】
解析部112は、上記の解析処理により、帳票Sの項目欄、穴埋め入力欄、入力欄の関係を示すツリー構造(
図4参照)を決定する。
【0098】
[3.8.特定部114]
特定部114は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。
特定部114は、取得部104により取得した帳票Sのスキャン画像に示される帳票名を特定する。
例えば、特定部114は、帳票Sのスキャン画像において所定の領域の文字認識結果に基づいて帳票名を特定してもよいし、スキャン画像から認識された最大の文字サイズの文字列に基づいて帳票名を特定してもよい。また、特定部114は、取得部104により帳票Sのスキャン画像とともに帳票名をクライアント装置20から取得することで、帳票名を特定してもよい。
【0099】
[3.9.項目選択部116]
項目選択部116は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。
項目選択部116は、帳票Sに含まれる各項目について、特定部114により特定した帳票名に関連付けて評価値記憶部100に記憶される評価値に基づいて、各項目の中から少なくとも1つの項目を選択する。
【0100】
例えば、項目選択部116は、解析部112による解析結果に基づいて、帳票Sに含まれる項目欄と穴埋め入力欄とによりそれぞれ示される項目を取得する。なお、項目欄と穴埋め入力欄により示される項目とは、それぞれの矩形領域から認識された少なくとも一部の文字列に基づくものである。
【0101】
項目選択部116は、上記取得した項目を、辞書情報記憶部102に記憶される辞書情報記憶テーブルT2に基づいて標準表現に変換する。
【0102】
次に、項目選択部116は、標準表現に変換した項目名(標準項目名)につき、評価値記憶部100に記憶される評価値記憶テーブルT1に基づいて、各項目の評価値を取得する。そして、項目選択部116は、上記取得した各項目の評価値のうち例えば上位から所定の順位までの項目を選択することとする。
【0103】
また、項目選択部116は、帳票Sに含まれる項目のうち一部を選択する例について説明したが、帳票Sに含まれる全ての項目を選択することとしても構わない。
【0104】
[3.10.生成部118]
生成部118は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。なお、生成部118により実行される処理が生成工程である。
生成部118は、解析部112による解析結果に基づいて、帳票Sに含まれる少なくとも1つの項目に関する入力フォームを生成する。
例えば、生成部118は、項目選択部116により選択された項目についての入力フォームを生成することとしてよい。
このとき、生成部118は、項目選択部116により選択された項目が、評価値の高い順に並べるように入力フォームを生成してもよい。
また、生成部118は、抽出部106により抽出された矩形領域から認識された文字列が項目の同義表現である場合に、当該文字列を対応する標準表現に変換するようにしてもよい。
【0105】
具体的には、生成部118は、項目選択部116により選択された項目の項目名を、辞書情報記憶テーブルT2に基づいて、標準項目名に変換する。
次に、生成部118は、項目選択部116により選択された項目について優先順位が高い順(ここでは優先順位の番号が若い順)に、項目の配置位置を決定する。
そして、生成部118は、項目の入力形式を、解析部112による解析結果に基づいて決定する。
例えば、項目が項目欄から認識されたものであり、且つ対応する入力欄がある場合には、自由入力形式とする。一方で、項目が穴埋め入力欄から認識されたものである場合には、穴埋め入力欄について認識された穴埋め入力形式とする。
【0106】
また、生成部118は、上記の項目の配置位置に関し、項目間の階層関係を反映させてもよい。すなわち、項目の階層関係が認識可能な態様で項目の配置位置を決定してもよい。
なお、生成部118は、入力フォームを、HTML形式により記述することとしてよい。これにより、生成された入力フォームは、ウェブブラウザにより表示、且つ入力可能となる。
【0107】
[3.11.提示部120]
提示部120は、主に帳票入力フォーム生成装置10の制御部11、記憶部12及び通信部13により実現される。
提示部120は、生成部118により生成された入力フォームをユーザに提示する。
例えば、提示部120は、生成部118により生成された入力フォームを含む画面(例えば
図5に示す入力フォーム提示画面W1)のデータを、クライアント装置20に送信することとしてよい。
そして、クライアント装置20は、帳票入力フォーム生成装置10から受信した上記の画面のデータに基づいて、入力フォームを表示部25に表示させることとする。これにより、提示部120は、生成部118により生成された入力フォームをユーザに提示する。
【0108】
[3.12.選択受付部122]
選択受付部122は、主に帳票入力フォーム生成装置10の制御部11、記憶部12及び通信部13により実現される。
選択受付部122は、提示部120により提示した入力フォームに対し追加/削除する項目の選択をクライアント装置20(ユーザ)から受け付ける。
例えば、選択受付部122は、入力フォームに対する追加/削除の項目の選択要求を、通信部13を介して受信すると、項目の選択画面(例えば
図6に示す項目選択画面W2)の表示データをクライアント装置20に送信する。
ここで、項目の選択画面には、帳票Sに含まれる項目以外にも、帳票名に関連付けて記憶される項目(例えば帳票Sに含まれない項目)を含めてもよい。
そして、選択受付部122は、例えば項目選択画面W2を介して選択された項目の選択結果を、クライアント装置20から受信する。
【0109】
[3.13.更新部124]
更新部124は、主に帳票入力フォーム生成装置10の制御部11及び記憶部12により実現される。
更新部124は、選択受付部122により受け付けた項目に基づいて入力フォームを更新する。
具体的には、更新部124は、選択受付部122により受け付けた項目を含む入力フォームを、生成部118により再度生成させる。そして、更新部124は、更新後の入力フォームを提示部120により再度提示させる。ここで、例えば、
図7に示す入力フォーム提示画面W3が、更新後の入力フォームを再度提示する画面に相当する。
【0110】
また例えば、帳票入力フォーム生成装置10は、クライアント装置20から、提示した入力フォームの確定操作(例えば入力フォーム提示画面W1や入力フォーム提示画面W3における確定ボタンP2の選択操作)を受け付ける。そして、帳票入力フォーム生成装置10は、受け付けた入力フォームを所定のURLにおいて公開可能に登録することとしてよい。
【0111】
[4.帳票入力フォーム生成システム1において実行される処理の一例]
次に、
図11及び
図12を参照しながら、帳票入力フォーム生成システム1において実行される処理の流れについて具体的に説明する。
ここで、
図11は、帳票入力フォーム生成システム1における処理の全体的な流れを示すシーケンス図である。
図12は、帳票入力フォーム生成装置10において実行される入力フォームを生成する処理のフロー図である。
【0112】
図11に示されるように、クライアント装置20の制御部21は、入出力部26を介して接続されたスキャナ30により帳票Sをスキャンさせ(S201)、帳票Sのスキャン画像を取得する。
【0113】
そして、クライアント装置20の制御部21は、帳票Sのスキャン画像を、通信部23を介して帳票入力フォーム生成装置10に送信する(S202)。
【0114】
帳票入力フォーム生成装置10の制御部11は、クライアント装置20から送信された帳票Sのスキャン画像を、通信部13を介して受信する(S101)。
【0115】
そして、帳票入力フォーム生成装置10の制御部11は、受信した帳票Sのスキャン画像に基づいて、帳票Sの入力フォームの生成処理を実行する(S102)。ここで、入力フォームの生成処理の詳細については、
図12のフロー図に基づいて説明する。
【0116】
図12に示されるように、まず、帳票入力フォーム生成装置10の制御部11は、帳票Sの帳票名を特定する(S1)。なお、S1の処理は帳票入力フォーム生成装置10の特定部114により実行される処理である。
例えば、帳票入力フォーム生成装置10の制御部11は、帳票Sのスキャン画像とともに、帳票Sの帳票名を取得している場合には、当該取得した帳票名を帳票Sの帳票名とする。
また例えば、帳票入力フォーム生成装置10の制御部11は、帳票Sのスキャン画像とともに、帳票Sの帳票名を取得していない場合には、帳票Sのスキャン画像からの所定領域の文字認識結果に基づいて、帳票Sの帳票名を特定する。
【0117】
次に、帳票入力フォーム生成装置10の制御部11は、帳票Sのスキャン画像から罫線を検出する(S2)。例えば、帳票入力フォーム生成装置10の制御部11は、帳票Sのスキャン画像を二値化して、縦方向又は横方向に連結する黒画素の連結画素を罫線として検出する。
【0118】
次に、帳票入力フォーム生成装置10の制御部11は、検出した罫線により囲まれる矩形領域を抽出する(S3)。なお、S2及びS3の処理は、帳票入力フォーム生成装置10の抽出部106により実行される処理である。
【0119】
次に、帳票入力フォーム生成装置10の制御部11は、S3で抽出した各々の矩形領域に含まれる文字列を認識する(S4)。なお、S4の処理は、帳票入力フォーム生成装置10の文字列認識部108により実行される処理である。
【0120】
次に、帳票入力フォーム生成装置10の制御部11は、矩形領域の文字列認識処理の結果に基づいて、各々の矩形領域を項目欄、穴埋め入力欄、入力欄のいずれかに分類する(S5)。
【0121】
ここで、S5の処理の詳細について、
図16に示すフロー図を参照しながら説明する。なお、
図16に示すフローは、1つの矩形領域の分類を決定する処理を示したものであり、複数の矩形領域がある場合には、それぞれの矩形領域について以下に説明する処理を実行することとする。
【0122】
図16に示されるように、帳票入力フォーム生成装置10の制御部11は、矩形領域から文字列が検出されなかった場合には(S50:No)、矩形領域を入力欄に分類する(S51)。
【0123】
また、帳票入力フォーム生成装置10の制御部11は、矩形領域から文字列が検出された場合には(S50:Yes)、各文字のサイズ、配置を特定する(S51)。
そして、帳票入力フォーム生成装置10の制御部11は、矩形領域において、文字列の前方側の空白領域である前方空白領域、文字列の後方側の空白領域である後方空白領域、及び文字列を構成する文字の間の空白領域である中間空白領域を特定する(S53)。
【0124】
ここで、帳票入力フォーム生成装置10の制御部11は、矩形領域における文字の配置が線対称である場合には(S54:Yes)、矩形領域を項目欄に分類する(S55)。
一方で、帳票入力フォーム生成装置10の制御部11は、矩形領域における文字の配置が線対称でない場合には(S54:No)、S56に進む。
【0125】
S56において、帳票入力フォーム生成装置10の制御部11は、矩形領域について特定した前方空白領域と後方空白領域との差である差分領域のサイズが閾値(A)以上であるか否かを判定する(S56)。
【0126】
S56において、差分領域のサイズが閾値(A)以上である場合には(S56:Yes)、帳票入力フォーム生成装置10の制御部11は、矩形領域を穴埋め入力欄に分類する(S57)。
【0127】
また、S56において、差分領域のサイズが閾値(A)未満である場合には(S56:No)、帳票入力フォーム生成装置10の制御部11は、S58に進む。
【0128】
S58において、帳票入力フォーム生成装置10の制御部11は、矩形領域について特定した中間空白領域のサイズが閾値(A)以上であるか否かを判定する(S58)。
【0129】
S58において、中間空白領域のサイズが閾値(A)以上である場合であって(S58:Yes)、矩形領域から検出された文字列(中間空白領域で区切らずに連結した文字)が辞書にない場合には(S59:No)、制御部11は、矩形領域を穴埋め入力欄に分類する(S57)。
一方で、S58において、中間空白領域のサイズが閾値(A)以上である場合であって(S58:Yes)、矩形領域から検出された文字列(中間空白領域で区切らずに連結した文字)が辞書にある場合には(S59:Yes)、制御部11は、矩形領域を項目欄に分類する(S60)。
また、S58において、中間空白領域のサイズが閾値(A)未満である場合には(S58:No)、制御部11は、矩形領域を項目欄に分類する(S60)。
【0130】
帳票入力フォーム生成装置10の制御部11は、以上の処理により矩形領域を入力欄、項目欄、穴埋め入力欄のいずれかに分類した後に、矩形領域の分類処理を終える。
なお、
図16に示すフローにおいて、S54で矩形領域における文字の配置が線対称でない場合には(S54:No)、S56〜S59の処理は省略し、矩形領域を穴埋め入力欄に分類するようにしてもよい。
【0131】
ここで、再び
図12のフロー図に戻り説明を続ける。
次に、帳票入力フォーム生成装置10の制御部11は、各々の矩形領域の分類と、矩形領域の横方向(又は/及び縦方向)の位置関係に基づいて、帳票構造を解析する(S6)。なお、S6の処理は、帳票入力フォーム生成装置10の解析部112により実行される処理である。
【0132】
次に、帳票入力フォーム生成装置10の制御部11は、帳票Sに含まれる項目欄、及び穴埋め入力欄により示される項目を、標準項目名に変換する(S7)。なお、標準項目名への変換処理は、辞書情報記憶テーブルT2の記憶内容を参照して行われる。
【0133】
次に、帳票入力フォーム生成装置10の制御部11は、帳票Sに含まれる項目欄、及び穴埋め入力欄により示される項目の中から、少なくとも一部の項目を選択する(S8)。なお、S8の処理は、帳票入力フォーム生成装置10の項目選択部116により実行される処理である。
【0134】
次に、帳票入力フォーム生成装置10の制御部11は、S8で選択された項目についてS6の解析結果に基づく入力フォームを生成する(S9)。なお、S9の処理は、帳票入力フォーム生成装置10の生成部118により実行される処理である。
【0135】
帳票入力フォーム生成装置10の制御部11は、S9の処理を終えると、S103に進む。ここで再び
図11のシーケンス図に戻り説明を続ける。
【0136】
図11に示されるように、帳票入力フォーム生成装置10の制御部11は、S102で生成した入力フォームのデータを、通信部13を介してクライアント装置20に送信する(S103)。
【0137】
クライアント装置20の制御部21は、帳票入力フォーム生成装置10から送信された入力フォームのデータを、通信部23を介して受信する(S203)。
そして、クライアント装置20の制御部21は、受信した入力フォームのデータに基づいて入力フォームを表示部25に表示させる(S204)。例えば、入力フォーム提示画面W1が、S204で表示部25に表示される画面の一例に相当する。
【0138】
次に、クライアント装置20の制御部21は、表示部25に表示された入力フォーム提示画面W1を介して受け付けられたユーザの操作が「項目選択」(すなわち、項目選択ボタンP1の押下)である場合には(S205:項目選択)、S206に進む。
【0139】
S206では、クライアント装置20の制御部21は、通信部23を介して帳票入力フォーム生成装置10に対して項目選択画面を要求する(S206)。
【0140】
帳票入力フォーム生成装置10の制御部11は、通信部13を介して、クライアント装置20から項目選択画面の要求を受け付けると(S104)、項目選択画面のデータを生成し、項目選択画面のデータをクライアント装置20に送信する(S105)。
なお、項目選択画面には、帳票Sに含まれる項目に限らず、帳票Sの帳票名に関連付けて記憶される任意の項目を含めることとしてもよい。
【0141】
クライアント装置20の制御部21は、通信部23を介して、帳票入力フォーム生成装置10から送信された項目選択画面のデータを受信し、受信したデータに基づいて項目選択画面を表示部25に表示する(S207)。例えば、項目選択画面W2がS207で表示部25に表示される画面の一例に相当する。
【0142】
次に、クライアント装置20の制御部21は、項目選択画面W2を介して受け付けた項目の選択結果を、通信部23を介して帳票入力フォーム生成装置10に送信する(S208)。
【0143】
帳票入力フォーム生成装置10の制御部11は、通信部13を介して、クライアント装置20から項目の選択結果を受信すると(S106)、受信した項目の選択結果に基づいて、入力フォームを更新する(S107)。なお、S107の処理は、帳票入力フォーム生成装置10の更新部124により実行される処理である。
【0144】
帳票入力フォーム生成装置10の制御部11は、S107の処理を終えると、S103に戻り、更新した入力フォームをクライアント装置20に対して送信する。
【0145】
また、S205において、表示部25に表示された入力フォーム提示画面W1を介して受け付けられたユーザの操作が「確定」(すなわち、確定ボタンP2の押下)である場合には(S205:確定)、S209に進む。
【0146】
S209では、クライアント装置20の制御部21は、通信部23を介して、入力フォームの確定を帳票入力フォーム生成装置10に対して要求する(S209)。
【0147】
帳票入力フォーム生成装置10の制御部11は、通信部13を介して、クライアント装置20から入力フォームの確定要求を受け付けると(S108)、確定要求に係る入力フォームを登録する(S109)。例えば、帳票入力フォーム生成装置10の制御部11は、確定要求に係る入力フォームを所定のURLにおいて公開可能に登録することとしてよい。
以上が帳票入力フォーム生成システム1において実行される処理の一例である。
【0148】
以上説明した帳票入力フォーム生成装置10によれば、帳票Sをスキャンしたスキャン画像から帳票Sの構造を反映した入力フォームを生成することができる。これにより、紙媒体の帳票から、帳票の入力フォーム(電子データ)を生成する労力を低減することができる。
【0149】
また、帳票入力フォーム生成装置10によれば、帳票Sの複数の項目欄間の階層関係を特定することができる。これにより、入力フォームにおいて帳票Sの項目欄間の関係を正しく反映できる。
【0150】
また、帳票入力フォーム生成装置10によれば、帳票Sの項目欄と穴埋め入力欄間の階層関係を特定することができる。これにより、入力フォームにおいて帳票Sの項目欄と穴埋め入力欄との関係を正しく反映できる。
【0151】
また、帳票入力フォーム生成装置10によれば、帳票Sの項目欄と入力欄の対応関係を特定することができる。これにより、入力フォームにおいて帳票Sの項目欄と入力欄の関係を正しく反映できる。
【0152】
また、帳票入力フォーム生成装置10によれば、帳票Sに含まれる項目のうちから選択した項目についての入力フォームを生成できる。これにより、例えば帳票Sに含まれる項目のうち重要な項目を抜き出した入力フォームの生成が可能となる。
【0153】
また、帳票入力フォーム生成装置10によれば、帳票Sから抜き出した項目を重要な順に並べた入力フォームを生成できる。
【0154】
また、帳票入力フォーム生成装置10によれば、ユーザは帳票Sのスキャン画像から生成した入力フォームの内容を確認することができる。
【0155】
また、帳票入力フォーム生成装置10によれば、入力フォームをユーザの選択に応じて更新することができる。これにより、入力フォームをユーザの所期の内容に編集することができる。こうすることで、ユーザが一から入力フォームを生成する場合に比べて、入力フォームの生成に要する労力を低減できる。
【0156】
また、帳票入力フォーム生成装置10によれば、帳票Sに記載の項目名が標準的な名称でない場合にも、標準的な名称を用いて入力フォームを生成することができる。
【0157】
[5.その他の実施形態]
本発明は上記の実施形態に限定されるものではない。例えば、帳票入力フォーム生成装置10は、登録後の入力フォームをクライアント装置20からの要求に応じて所定の出力形式に変換してクライアント装置20に提供してもよい。
【0158】
帳票入力フォーム生成システム1は、クライアント・サーバー型のシステムとしたが、スタンドアロン型のシステムとしてもよい。この場合には、クライアント装置20が帳票入力フォーム生成装置10の機能を有することとしてよい。
【0159】
また、本実施形態では、クライアント装置20は帳票Sのスキャン画像を得ることとしたが、クライアント装置20はカメラにより帳票Sの画像データを得ることとしてもよい。この場合においても帳票入力フォーム生成システム1においては同様の処理が可能である。