(57)【特許請求の範囲】
【請求項１】
画像撮像部と、中央演算部と、記憶部と、通信部と、を備える帳票読取装置であって、
前記画像撮像部は、帳票を撮像することによって、当該帳票の画像データを取得し、
前記記憶部は、前記帳票に記載されている項目名の半順序構造を含むスタイルシートを記憶し、
前記中央演算部は、
前記通信部からクエリを受けると、当該クエリに指定された項目名を特定し、
前記記憶部に記憶されたスタイルシートを解釈することによって、前記特定した項目名に対応する記載内容が前記帳票に記載されている位置を特定し、
前記特定した位置を、前記帳票の画像データから読み取ることによって、当該記載内容を取得し、
前記取得した記載内容をインスタンスとして通信部から出力することを特徴とする帳票読取装置。
【請求項２】
前記スタイルシートは、更に、前記帳票に記載されている枠の構造に関する定義及び前記項目名と前記記載内容との配置に関する定義のうち少なくとも一つを含むことを特徴とする請求項１に記載の帳票読取装置。
【請求項３】
前記通信部は、データベースを管理する業務処理装置に接続され、
前記クエリは、前記スタイルシートに含まれる項目名のうち、前記業務処理装置によってデータベースに格納されるデータの項目名を指定することを特徴とする請求項１に記載の帳票読取装置。
【請求項４】
クエリに応じて、帳票の画像データの処理をコンピュータに実行させるためのプログラムであって、
前記クエリを受けると、当該クエリに指定された項目名を特定する手順と、
前記帳票に記載されている項目名の半順序構造を含むスタイルシートを解釈することによって、前記特定した項目名に対応する記載内容が前記帳票に記載されている位置を特定し、前記特定した位置を、前記帳票の画像データから読み取ることによって、当該記載内容を取得する手順と、
前記取得した記載内容をインスタンスとして出力する手順と、を含むことを特徴とするプログラム。
【請求項５】
前記記載内容を取得する手順は、
前記帳票に記載されている項目名の半順序構造を含むスタイルシートを解釈することによって、前記帳票に記載されている枠の構造に関する定義及び前記項目名と前記記載内容との配置に関する定義のうち少なくとも一つを当該スタイルシートから抽出し、
前記抽出した定義に基づいて、前記特定した項目名に対応する記載内容が前記帳票に記載されている位置を特定し、
前記特定した位置を、前記帳票の画像データから読み取ることによって、当該記載内容を取得することを特徴とする請求項４に記載のプログラム。
【請求項６】
データベースを管理する業務処理装置と、前記業務処理装置に接続されている帳票読取装置と、を含む帳票読取システムであって、
前記帳票読取装置は、画像撮像部と、中央演算部と、記憶部と、通信部と、を備え、
前記画像撮像部は、帳票を撮像することによって、当該帳票の画像データを取得し、
前記記憶部は、前記帳票に記載されている項目名の半順序構造を含むスタイルシートを記憶し、
前記中央演算部は、
前記業務処理装置からクエリを受けると、当該クエリに指定された項目名を特定し、
前記記憶部に記憶されたスタイルシートを解釈することによって、前記特定した項目名に対応する記載内容が前記帳票に記載されている位置を特定し、
前記特定した位置を、前記帳票の画像データから読み取ることによって、当該記載内容を取得し、
前記取得した記載内容をインスタンスとして前記業務処理装置に出力することを特徴とする帳票読取システム。
【請求項７】
前記スタイルシートは、前記帳票に記載されている枠の構造に関する定義及び前記項目名と前記記載内容との配置に関する定義のうち少なくとも一つを含むことを特徴とする請求項６に記載の帳票読取システム。
【請求項８】
前記業務処理装置は、前記スタイルシートに含まれる項目名のうちデータベースに格納するデータの項目名を指定したクエリを、前記帳票読取装置に送信することを特徴とする請求項６に記載の帳票読取システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帳票を撮像する帳票読取装置に関し、特に、撮像した画像データから必要なデータを読み取る技術に関する。
【背景技術】
【０００２】
現在、コンピュータによるデジタル情報技術が普及している。それでも、紙は、情報伝達媒体として広く使われている。そのため、紙の帳票及び紙の文書を効率よく電子的に処理したいという社会的な要求は依然根強い。ここでは、紙の帳票及び紙の文書をまとめて紙帳票と呼ぶ。
【０００３】
そこで、紙帳票を読み取る帳票読取装置が知られている。帳票読取装置は、帳票に記載されている情報を文字認識することによって、帳票に記載された情報を電子データに変換する。
【０００４】
例えば、帳票読取装置は、帳票を撮像することによって、帳票の画像データを取得する。次に、取得した画像データから読み取る情報（項目記載内容）の領域（読取対象領域）を特定する。そして、帳票読取装置は、特定した読取対象領域を読み取る。
【０００５】
帳票読取装置が用いるＯＣＲ（Optical Character Recognition）技術として、帳票ＯＣＲ技術又は文書ＯＣＲ技術が知られている。帳票ＯＣＲ技術が適用された帳票読取装置は、帳票構造に関する定義（帳票定義）を参照して、帳票の画像データから必要なデータを読み取る。なお、帳票定義は、帳票に記載されている枠及び罫線の構造に関する定義を含む。また、帳票定義は、帳票に記載されている枠の座標及び帳票に記載されている読取対象領域の座標等を含む。
【０００６】
文書ＯＣＲ技術が適用された帳票読取装置は、特定の帳票構造を前提とせずに、帳票からデータを読み取る。よって、文書ＯＣＲ技術が適用された帳票読取装置には、帳票定義を設定する必要がない。しかし、文書ＯＣＲ技術が適用された帳票読取装置は、読み取ったデータの内容が分からないという問題があった。そのため、当該データは、データベースの適切な位置に格納できない。
【０００７】
例えば、文書ＯＣＲ技術が適用された帳票読取装置が読み取ったデータに含まれる数字列は、金額又はＩＤ番号のどちらを意味するのかが分からない。よって、当該数字列は、データとして活用できない。更に、当該数字列が、金額であると判明しても、何の項目に対応する金額なのかが分からないので、データとして活用できない。例えば、当該数字列は、収入又は支出のどちらであるのかが分からないと、データベースに格納できない。
【０００８】
一方、帳票ＯＣＲ技術が適用された帳票読取装置は、帳票定義に基づいて、帳票の画像データから必要なデータを読み取る。よって、読み取ったデータの内容を把握できる。そのため、一般的な帳票読取装置には、帳票ＯＣＲ技術が適用されている。
【０００９】
また、項目記載内容の位置を指定する技術として、枠構造解析技術及び帳票項目読取技術が知られている。
【００１０】
枠構造解析技術については、特許文献１に開示されている。以下、枠構造解析技術の処理を説明する。
【００１１】
まず、帳票読取装置は、帳票の画像データから罫線を抽出する。次に、抽出した罫線に囲まれる領域を枠として特定する。次に、特定した枠の配置を解析することによって、項目記載内容が記載されている領域（読取対象領域）を特定する。
【００１２】
また、帳票項目読取技術については、特許文献２に開示されている。特許文献２では、紙帳票を総合振込依頼書に限定している。以下、帳票項目読取技術の処理を説明する。
【００１３】
帳票読取装置は、帳票の構造定義を参照しながら、紙帳票から項目名を読み取る。そして、読み取った項目名の出現順序に応じて、読取対象領域を特定する。これによって、項目記載内容の位置が入れ替わった準定型の紙帳票であっても、読取対象領域を特定できる。
【００１４】
また、項目記載内容を高精度に読み取る技術として、文字列表記解析技術が知られている。文字列表記解析技術は、読取対象領域を特定した場合における項目記載内容の読取精度を向上する技術である。
【００１５】
文字列表記解析技術を適用した帳票読取装置は、文字切出及び文字認識の不確定さを補いながら、文字列の画像データを文字列テキストに変換する。なお、文字列表記解析技術には、形態素解析、ＲＴＮ照合（再帰遷移ネットワーク照合）又は上昇型構文解析アルゴリズム等を用いる。
【００１６】
例えば、帳票読取装置の読取結果に形態素解析を用いる文字列表記解析技術が、特許文献３に開示されている。
【００１７】
また、従来の帳票読取装置は、帳票を読み取る際に、当該帳票のフォーマット定義を用いる。なお、フォーマット定義は、帳票のＩＤ、項目記載内容、罫線及び枠の構造定義、読取対象領域の座標並びに表記知識を含む。従来の帳票読取装置は、帳票の画像データの枠構造とフォーマット定義に含まれる構造定義とを照合する。すると、項目記載内容の位置を特定できる。そして、特定した位置を読み取ることによって、画像データから項目記載内容を取得する。
【００１８】
従来の帳票読取装置は、定型の帳票のみを読み取るのであれば、当該帳票のフォーマット定義を備えていればよい。
【００１９】
しかし、従来の帳票読取装置が、非定型の帳票を読み取る場合、すべての帳票のフォーマット定義を備えるのは困難である。
【００２０】
また、帳票構造が変更された場合、帳票読取装置が備えるフォーマット定義を変更しなければならない。同様に、業務処理が変更された場合、帳票の項目記載内容を追加又は変更する必要があるので、帳票読取装置が備えるフォーマット定義を変更しなければならない。これらの場合、帳票読取装置が備えるフォーマット定義だけでなく、帳票読取装置の周辺の装置の設定も変更しなければならない。例えば、帳票読取装置が読み取ったデータをデータベースに格納する際に使用される情報を変更しなければならない。
【００２１】
また、表記定義を表現する方法が、特許文献４に記載されている。これによれば、表記定義を表現する方法として、トライ法又は文脈自由文法などが知られている。
【特許文献１】特開平８−１２５８５５
【特許文献２】特開２００３−３０４５５号公報
【特許文献３】特開平５−１０８８９１号公報
【特許文献４】特開２００１−０１４３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
従来の帳票読取装置は、帳票から必要なデータを読み取る場合、構造定義を用いる。そのため、従来の帳票読取装置は、非定型の帳票からデータを読み取るためには、すべての帳票の構造定義を含む構造定義辞書を用意しなければならないという問題があった。
【００２３】
本発明は、前述した問題点に鑑みてなされたものであり、構造定義辞書を参照せずに必要なデータを抽出する帳票読取装置を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明は、画像撮像部と、中央演算部と、記憶部と、通信部と、を備える帳票読取装置であって、前記画像撮像部は、帳票を撮像することによって、当該帳票の画像データを取得し、前記記憶部は、前記帳票に記載されている項目名の半順序構造を含むスタイルシートを記憶し、前記中央演算部は、前記通信部からクエリを受けると、当該クエリに指定された項目名を特定し、前記記憶部に記憶されたスタイルシートを解釈することによって、前記特定した項目名に対応する記載内容が前記帳票に記載されている位置を特定し、前記特定した位置を、前記帳票の画像データから読み取ることによって、当該記載内容を取得し、前記取得した記載内容をインスタンスとして通信部から出力することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、構造定義辞書を参照せずに必要なデータを抽出できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面を参照して説明する。
【００２７】
（第１の実施の形態）
図１Ａは、従来の帳票読取システムのブロック図である。
【００２８】
従来の帳票読取システムは、帳票読取装置０１０２、業務制御装置０１０４及び業務データベース装置（業務ＤＢ装置）０１０６を備える。また、従来の帳票読取システムは、帳票定義辞書０１０３、テキスト変換定義辞書０１０５及びデータベース定義辞書（ＤＢ定義辞書）０１０７等を含む複数の辞書を管理する。
【００２９】
帳票定義辞書０１０３は、当該帳票読取システムによって処理される帳票に関する定義を管理する辞書である。例えば、帳票定義辞書０１０３は、帳票に記載されている枠の構造及び帳票に記載されている罫線の構造に関する定義を含む。また、帳票定義辞書０１０３は、枠、罫線及び文字列の帳票における座標等を含む。
【００３０】
テキスト変換定義辞書０１０５は、帳票に記載されている内容に関する定義を管理する辞書である。例えば、テキスト変換定義辞書０１０５は、帳票の読取対象領域と当該読取対象領域の記載内容との対応を含む。
【００３１】
ＤＢ定義辞書０１０７は、業務ＤＢ装置０１０６がデータベースにデータを格納する際に使用する定義を管理する辞書である。
【００３２】
次に、従来の帳票読取システムの処理を説明する。本実施の形態では、紙の帳票及び紙の文書をまとめて紙帳票と呼ぶ。
【００３３】
まず、従来の帳票読取システムに紙帳票０１０１が入力される。すると、帳票読取装置０１０２が、入力された紙帳票０１０１を撮像することによって、当該紙帳票の画像データを取得する。次に、帳票読取装置０１０２は、帳票定義辞書０１０３に基づいて、帳票上の読取対象領域を特定する。なお、読取対象領域は、帳票読取装置０１０２によって読み取られるデータ（項目記載内容）が記載されている領域である。
【００３４】
次に、帳票読取装置０１０２は、読取対象領域の項目記載内容の表記に応じて、画像データの読取対象領域を読み取る。例えば、項目記載内容が氏名であれば、標準的な姓名の表記が定義された辞書を参照しながら、画像データの読取対象領域を読み取る。そして、帳票読取装置０１０２は、読取結果を業務制御装置０１０４に送る。
【００３５】
すると、業務制御装置０１０４は、テキスト処理によって、帳票読取装置０１０２の読取結果を変換する。具体的には、一行に複数の項目記載内容が記載されている場合、業務制御装置０１０４は、一行のテキストデータを項目記載内容ごとに分割する。例えば、業務制御装置０１０４は、一行のテキストデータを、項目名と金額とに分割したり、住所と名前とに分割したりする。次に、業務制御装置０１０４は、帳票読取装置０１０２の読取結果に、テキストの属性のタグを付ける。これによって、業務制御装置０１０４は、帳票読取装置０１０２の読取結果を、データベースに格納し易いデータ形式に変換する。
【００３６】
なお、タグ付けには、例えば、ＸＭＬ等のタグ言語が用いられる。また、読取結果は、ＣＳＶ等の区切り記号によって分割されたテキストデータとして表現されてもよい。なお、タグを付された（構造化テキストで表現された）データを、インスタンスと呼ぶ。
【００３７】
次に、業務ＤＢ装置０１０６は、ＤＢ定義辞書０１０７に基づいて、インスタンスの中の必要なデータをデータベースに格納する。例えば、インスタンスがＸＭＬインスタンスであれば、業務ＤＢ装置０１０６は、タグを参照しながら、インスタンスの中の必要なデータをデータベースに格納する。また、インスタンスがＣＳＶであれば、業務ＤＢ装置０１０６は、テキストが何番目の区切りであるかを考慮しながら、インスタンスの中の必要なデータをデータベースに格納する。
【００３８】
図１Ｂは、本発明の第１の実施の形態の帳票読取システムのブロック図である。
【００３９】
本実施の形態の帳票読取システムは、帳票読取装置０１０８及び業務処理装置０１０９を備える。また、帳票読取システムは、ＸＳＬスタイルシート０１１０を管理する。なお、具体的な処理の内容については後述する。
【００４０】
ＸＳＬスタイルシート０１１０は、図５で後述するが、帳票に記載されている項目の半順序構造を含む。
【００４１】
業務処理装置０１０９は、帳票のデータが必要になると、読取クエリを帳票読取装置０１０８へ送信する。読取クエリには、帳票の読み取りに必要な情報が含まれる。つまり、読取クエリには、ＸＳＬスタイルシート０１１０の内容が反映されている。
【００４２】
すると、帳票読取装置０１０８は、ＸＳＬスタイルシート０１１０に基づいて、紙帳票０１０１の読取対象領域を特定する。次に、特定した読取対象領域を読み取る。次に、読取結果をインスタンスに変換する。そして、当該インスタンスを業務処理装置０１０９に送信する。
【００４３】
業務処理装置０１０９は、帳票読取装置０１０８からインスタンスを受信する。そして、受信したインスタンスを解析することによって、帳票読取装置０１０８の読取結果をデータベースへ格納する。このとき、業務処理装置０１０９は、ＤＢ定義を参照しながら、帳票読取装置０１０８の読取結果をデータベースへ格納する。ＤＢ定義は、業務処理装置０１０９がデータベースにデータを格納する際に使用する情報である。
【００４４】
なお、業務処理装置０１０９は、帳票のデータが必要になると、読取クエリを帳票読取装置０１０８に逐次送信する。帳票読取装置０１０８は、読取クエリを受信する度に読取処理（オンライン駆動）を行ってもよいし、複数の読取クエリを受信した後にまとめて読取処理（バッチ駆動）を行ってもよい。
【００４５】
本実施の形態の帳票読取システムは、帳票定義、テキスト定義及びＤＢ定義に関する情報を一元化した情報と同等なＸＳＬスタイルシート０１１０を管理する。これによって、帳票読取装置０１０８と業務処理装置０１０９とが連携して動作する。
【００４６】
図２は、本発明の第１の実施の形態の帳票読取システムの処理の説明図である。
【００４７】
まず、帳票提出側のシステム０２０１の処理を説明する。
【００４８】
帳票提出側のシステム０２０１は、データベースＡ０２０２、帳票提出側業務処理装置０２０３及び印刷装置０２０５を備える。データベースＡ０２０２には、帳票提出側の業務等に関するデータが格納されている。
【００４９】
また、帳票提出側のシステム０２０１は、ＸＳＬスタイルシート０１１０を管理している。ＸＳＬスタイルシート０１１０は、例えば、印刷フォーマットを定めるＸＭＬ−ＦＯに基づくものである。
【００５０】
帳票提出側のシステム０２０１の処理について説明する。
【００５１】
まず、帳票提出側業務処理装置０２０３は、必要なデータをデータベースＡ０２０２から抽出する。次に、抽出したデータをＸＭＬに変換する。これによって、抽出したデータをインスタンス０２０４に変換する。
【００５２】
次に、帳票提出側業務処理装置０２０３は、インスタンス０２０４を印刷装置０２０５に送信する。
【００５３】
すると、印刷装置０２０５は、受信したインスタンス０２０４とＸＳＬスタイルシート０１１０とを掛け合わせたものを印刷する。これによって、印刷装置０２０５は、紙帳票０１０１を印刷する。
【００５４】
帳票提出側のシステム０２０１のユーザは、印刷された紙帳票０１０１を帳票受付側のシステム０２０８のユーザへ郵便等で送る。
【００５５】
次に、帳票受付側のシステム０２０８を説明する。
【００５６】
帳票受付側のシステム０２０８は、例えば、本実施の形態の帳票読取システムである。帳票受付側のシステム０２０８は、データベースＢ０２０９、業務処理装置０１０９及び帳票読取装置０１０８を備える。データベースＢ０２０９には、紙帳票０１０１から読み取られたデータが格納されている。
【００５７】
また、帳票受付側のシステム０２０８は、ＸＳＬスタイルシート０１１０を管理している。
【００５８】
帳票受付側のシステム０２０８の処理を説明する。
【００５９】
まず、業務処理装置０１０９は、データベースＢ０２０９にアクセスすることによって、必要なデータを決定する。
【００６０】
このとき、業務処理装置０１０９は、ＸＳＬスタイルシート０１１０を解釈することによって、紙帳票０１０１の内容及び体裁を把握する。次に、業務処理装置０１０９は、把握した紙帳票０１０１の内容及び体裁を参照して、読取クエリ０２１１を作成する。そして、作成した読取クエリ０２１１を帳票読取装置０１０８に送信する。なお、当該読取クエリは、業務処理装置０１０９が必要とするデータの読み取り要求である。
【００６１】
帳票読取装置０１０８は、業務処理装置０１０９から読取クエリ０２１１を受信する。すると、帳票読取装置０１０８は、紙帳票０１０１を撮像することによって、紙帳票０１０１の画像データを取得する。なお、帳票読取装置０１０８は、紙帳票０１０１を予め撮像しておいてもよいし、読取クエリを受けてから紙帳票０１０１を撮像してもよい。
【００６２】
次に、帳票読取装置０１０８は、ＸＳＬスタイルシート０１１０を参照して、読取対象領域を特定する。次に、特定した読取対象領域を画像データから読み取る。次に、帳票読取装置０１０８は、読取結果をインスタンス０２１２に変換する。そして、当該インスタンスを業務処理装置０１０９に送信する。
【００６３】
業務処理装置０１０９は、帳票読取装置０１０８からインスタンス０２１２を受信する。次に、受信したインスタンス０２１２のデータをデータベースＢ０２０９へ格納する。
【００６４】
以上のように、帳票提出側のシステム０２０１と帳票受付側のシステム０２０８とが、同一のＸＳＬスタイルシート０１１０を管理することによって、別個にＸＳＬスタイルシート０１１０を作成する手間を省略できる。このため、システムのユーザは、業務を効率よく遂行できる。また、システムのユーザは、印刷形式のデータに基づいてＸＳＬスタイルシート０１１０を作成する。よって、システムのユーザは、帳票定義辞書、テキスト変換辞書定義及びＤＢ定義辞書よりも容易に、ＸＳＬスタイルシート０１１０を作成できる。
【００６５】
図３は、本発明の第１の実施の形態の帳票読取システムのブロック図である。
【００６６】
帳票読取システムは、前述した図２においては、帳票受付側のシステム０２０８に該当する。
【００６７】
帳票読取システムは、帳票読取装置０１０８及び業務処理装置０１０９を備える。
【００６８】
帳票読取装置０１０８は、画像撮像部０３０１、操作部０３０２、表示部０３０３、外部記憶装置０３０４、メモリ０３０５、中央演算部０３０６及び通信部０３０７を備える。
【００６９】
画像撮像部０３０１、操作部０３０２、表示部０３０３、外部記憶装置０３０４、メモリ０３０５、中央演算部０３０６及び通信部０３０７は、内部バス０３０８によって相互に接続されている。
【００７０】
画像撮像部０３０１は、紙帳票０１０１を撮像することによって、紙帳票０１０１の画像データを取得する。そして、画像撮像部０３０１は、取得した画像データを外部記憶装置０３０４又はメモリ０３０５に格納する。
【００７１】
操作部０３０２は、ユーザによって操作されることによって、各種情報が入力される。表示部０３０３は、各種情報を表示する。
【００７２】
外部記憶装置０３０４は、各種情報を記憶する。メモリ０３０５は、プログラムを含む各種情報を記憶する。
【００７３】
例えば、外部記憶装置０３０４又はメモリ０３０５は、帳票形式の定義、帳票に含まれる項目名及び帳票に含まれる項目記載内容の表記等を記憶している。これらの情報は、文書構造解析処理において使用される。
【００７４】
また、メモリ０３０５は、データベースクエリ処理のデーモンプログラムを記憶している。データベースクエリ処理のデーモンプログラムは、読取クエリを受けると、当該読取クエリの処理に必要なプログラムを起動する。
【００７５】
中央演算部０３０６は、メモリ０３０５に記憶されているプログラムを実行することによって、各種処理を行う。
【００７６】
通信部０３０７は、外部通信線０３０９を介して業務処理装置０１０９に接続されている。
【００７７】
業務処理装置０１０９は、操作部０３１５、表示部０３１６、外部記憶装置０３１０、メモリ０３１１、中央演算部０３１２及び通信部０３１３を備える。
【００７８】
操作部０３１５、表示部０３１６、外部記憶装置０３１０、メモリ０３１１、中央演算部０３１２及び通信部０３１３は、内部バス０３１４によって相互に接続されている。
【００７９】
操作部０３１５は、ユーザによって操作されることによって、各種情報が入力される。表示部０３１６は、各種情報を表示する。
【００８０】
外部記憶装置０３１０は、各種情報を記憶する。メモリ０３１１は、プログラムを含む各種情報を記憶する。
【００８１】
例えば、外部記憶装置０３１０又はメモリ０３１１は、データベース、ＸＳＬスタイルシート０１１０及び帳票読取装置０１０８に送信する読取クエリを記憶している。
【００８２】
通信部０３１３は、外部通信線０３０９を介して帳票読取装置０１０８に接続されている。
【００８３】
中央演算部０３１２は、メモリ０３１１に記憶されているプログラムを実行することによって、各種処理を行う。
【００８４】
例えば、業務処理装置０１０９の中央演算部０３１２は、業務遂行のタイミングに合わせて、ＸＳＬスタイルシート０１１０に関する情報又は読取クエリを帳票読取装置０１０８に送信する。
【００８５】
すると、帳票読取装置０１０８の中央演算部０３０６は、受信したＸＳＬスタイルシート０１１０に関する情報又は読取クエリを、メモリ０３０５に格納する。
【００８６】
次に、帳票読取装置０１０８の中央演算部０３０６は、メモリ０３０５に格納されているＸＳＬスタイルシート０１１０に関する情報及び読取クエリに基づいて、帳票の画像データの読取対象領域を特定する。そして、特定した読取対象領域を読み取る。
【００８７】
次に、読取結果をインスタンスに変換する。そして、当該インスタンスを業務処理装置０１０９に送信する。
【００８８】
業務処理装置０１０９の中央演算部０３１２は、受信したインスタンスをメモリ０３１１に格納する。
【００８９】
次に、業務処理装置０１０９の中央演算部０３１２は、メモリ０３１１に格納されているインスタンスのデータを、データベースへ格納する。また、メモリ０３１１に格納されているインスタンスを用いて、業務処理を行ってもよい。
【００９０】
そして、業務処理装置０１０９の中央演算部０３１２は、これらの処理の結果を表示部０３１６に表示させる。ユーザは、表示部０３１６に表示された画像データを閲覧する。そして、ユーザは、必要に応じて、業務処理に関する指示を操作部０３１５に入力する。
【００９１】
なお、帳票読取装置０１０８及び業務処理装置０１０９は、一つの装置で実現されてもよい。
【００９２】
次に、帳票読取装置０１０８が業務処理装置０１０９に送信するインスタンスの一例として、ＸＭＬインスタンスを説明する。
【００９３】
図４は、本発明の第１の実施の形態のＸＭＬインスタンス０４０２の説明図である。
【００９４】
行番号０４０１は、ＸＭＬインスタンス０４０２の説明のために付されたものであり、実際には付されていない。
【００９５】
本説明図のＸＭＬインスタンス０４０２では、日立製作所が品物を送った取引先に関する情報がＸＭＬタグ付きで記載されている。
【００９６】
１行目には、当該ＸＭＬによって扱われる言語体系が記載されている。
【００９７】
２行目には、当該データを表示又は印刷する際に使われるスタイルシートの名称が記載されている。３行目の＜取引一覧＞タグから２０行目の＜／取引一覧＞タグの間には、取引先に関するデータが記載されている。
【００９８】
５行目の＜取引＞タグから１１行目の＜／取引＞タグの間には、ある取引先に関するデータが記載されている。同様に、１２行目の＜取引＞タグから１８行目の＜／取引＞タグの間にも、他の取引先に関するデータが記載されている。
【００９９】
６行目及び１３行目には、当該取引先の郵便番号が記載されている。また、７行目及び１４行目には、当該取引先の住所が記載されている。また、８行目及び１５行目には、当該取引先の名称が記載されている。また、９行目及び１６行目には、日立製作所が当該取引先に送った品物の金額が記載されている。また、１０行目及び１７行目には、当該取引先の区分の一意な識別子が記載されている。
【０１００】
すべての取引先に関する情報が記載された後に、＜／取引一覧＞タグが記載される。＜／取引一覧＞タグは、取引一覧の終了を示すタグである。本説明図では、２０行目に＜／取引一覧＞タグが記載されている。
【０１０１】
図５は、本発明の第１の実施の形態のＸＳＬスタイルシート０５０２の説明図である。
【０１０２】
行番号０５０１は、ＸＳＬスタイルシート０５０２の説明のために付されたものであり、実際には付されていない。
【０１０３】
ＸＳＬスタイルシート０５０２には、データベースのデータを視覚化する方法が定義されている。
【０１０４】
本説明図のＸＳＬスタイルシート０５０２は、ＸＭＬインスタンス０４０２（図４）をＨＴＭＬ形式に変換する。
【０１０５】
１行目には、当該ＸＭＬによって扱われる言語体系が記載されている。
【０１０６】
２行目には、当該ＸＳＬスタイルシート０５０２によって変換する旨の宣言が記載されている。３行目には、ＸＭＬインスタンス０４０２のルートノード以下のデータを変換する旨の宣言が記載されている。なお、ルートノードは、すべてのタグを束ねる最上位の概念である。
【０１０７】
４行目には、データをＨＴＭＬへ変換する旨の宣言が記載されている。
【０１０８】
５行目から７行目は、ヘッダ部である。なお、一般的に、ＨＴＭＬのヘッダ部は、表示されない。
【０１０９】
６行目には、ＸＭＬインスタンス０４０２の「取引一覧／社名」を挿入する旨が記載されている。なお、ＸＭＬインスタンス０４０２は、「／」記号で区切られたタグのツリー表記で記載される。従って、ＸＭＬインスタンス０４０２の「取引一覧／社名」とは、図４の３行目の＜取引一覧＞タグと図４の２０行目の＜／取引一覧＞タグとに囲まれ、且つ、＜社名＞と＜／社名＞とに囲まれている情報である。図４のＸＭＬインスタンス０４０２の場合、「取引一覧／社名」は、「株式会社日立製作所」を示す。
【０１１０】
８行目から２９行目は、ボディー部である。
【０１１１】
９行目には、「取引一覧表：」という表示に続いて、ＸＭＬインスタンス０４０２の「取引一覧／社名」を表示する旨が記載されている。
【０１１２】
１０行目には、「ｔａｂｌｅ」というＨＴＭＬの予約語が記載されている。更に、１０行目には、線の太さが３である表を表示する旨が記載されている。
【０１１３】
１０行目の＜ｔａｂｌｅ＞タグから２８行目の＜／ｔａｂｌｅ＞タグの間には、表の詳細な内容が記載されている。
【０１１４】
１１行目には、＜ｔｒ＞タグが記載されている。＜ｔｒ＞タグは、表の行を区切る旨のタグである。
【０１１５】
なお、１１行名の＜ｔｒ＞タグから１６行目の＜／ｔｒ＞タグまでの間には、表の一行目に関する記載が記載されている。
【０１１６】
１２行目から１５行目には、表の一行目のそれぞれのカラムに格納する情報が記載されている。なお、それぞれのカラムに格納される情報は、＜ｔｄ＞タグと＜／ｔｄ＞タグとで囲まれている。１２行目から１５行目には、＜ｔｄ＞と＜／ｔｄ＞とで囲まれている情報が４つ存在する。よって、表は四列から構成される。
【０１１７】
表の一行目のそれぞれのカラムには、「区分」、「送付先」、「郵便番号  送付先住所」及び「購入額」の順に格納される。つまり、表の一行目は、項目名となる。
【０１１８】
１７行目の＜ｘｓｌ：ｆｏｒ−ｅａｃｈ＞タグから２７行目の＜／ｘｓｌ：ｆｏｒ−ｅａｃｈ＞タグの間には、表の二行目以降に関する定義が記載されている。１７行目の＜ｘｓｌ：ｆｏｒ−ｅａｃｈ＞タグは、すべてのＸＭＬインスタンス０４０２を走査して、指定条件にあったデータをＨＴＭＬに挿入する旨のタグである。つまり、１７行目の＜ｘｓｌ：ｆｏｒ−ｅａｃｈ＞タグから２７行目の＜／ｘｓｌ：ｆｏｒ−ｅａｃｈ＞タグの間の処理を繰り返す。
【０１１９】
更に、１７行目には、表に格納するデータの条件が指定されている。なお、表に格納するデータの条件は、ｓｅｌｅｃｔという指定子によって指定されている。具体的には、１７行目には、「ｓｅｌｅｃｔ＝“取引一覧／取引”」が記載されている。つまり、ＸＭＬインスタンス０４０２の＜取引＞タグと＜／取引＞タグとで囲まれるすべてのすべての部分に対して、「ｆｏｒ」以下（１８行目から２６行目まで）を繰り返す。これによって、ＸＭＬインスタンス０４０２がＨＴＭＬに変換される。
【０１２０】
１８行目には、＜ｔｒ＞タグが記載されている。また、２６行目には、＜／ｔｒ＞タグが記載されている。よって、それぞれの取引先に関する情報は、一行で表される。
【０１２１】
１８行目の＜ｔｒ＞タグと２６行目には、＜／ｔｒ＞タグの間には、＜ｔｄ＞タグと＜／ｔｄ＞タグとで囲まれている情報が四つ存在する。よって、表は、四列から構成される。
【０１２２】
１９行目から２５行目には、表の二行目以降のそれぞれのカラムに格納する情報が記載されている。
【０１２３】
表の一列目のカラムには、ＸＭＬインスタンス０４０２の＜区分＞と＜／区分＞とで囲まれている情報が格納される。また、表の二列目のカラムには、＜名前＞と＜／名前＞とで囲まれている情報が格納される。
【０１２４】
また、表の三列目のカラムには、＜郵便＞と＜／郵便＞とで囲まれている情報及び＜住所＞と＜／住所＞とで囲まれている情報が格納される。なお、２２行目には、＜ｂｒ＞タグが記載されている。＜ｂｒ＞タグは、改行を挿入するタグである。よって、表の三列目のカラムには、＜郵便＞と＜／郵便＞とで囲まれている情報の後に、改行が格納される。
【０１２５】
また、表の四列目のカラムには、＜金額＞と＜／金額＞とで囲まれている情報が格納される。
【０１２６】
以上のように、ＸＳＬスタイルシート０５０２には、項目名の半順序構造及び項目記載内容の半順序構造が定義される。なお、半順序構造とは、並び順が緩く定義された構造である。例えば、半順序構造では、項目Ａ、項目Ｂ、項目Ｃ・・・という順で左から右へ並ぶ構造が定義されてもよい。また、半順序構造では、項目Ａ、項目Ｂ、項目Ｃ・・・という順で上から下へ並ぶ構造が定義されてもよい。なお、半順序構造では、項目が省略されてもよい。例えば、項目Ｂが省略された場合、半順序構造は、項目Ａ、項目Ｃ・・・という順で並ぶことを意味する。
【０１２７】
なお、ＸＳＬスタイルシート０５０２は、項目の並びの半順序構造だけでなく、項目の位置座標等を含んでいてもよい。
【０１２８】
例えば、帳票読取装置０１０８は、ＸＳＬスタイルシート０５０２を解釈することによって、項目の半順序構造を取得する。そして、取得した半順序構造に基づいて、読取対象領域を特定する。
【０１２９】
これよって、帳票読取装置０１０８は、項目名の配置と項目記載内容の配置との対応が不規則な帳票であっても、読取対象領域を特定できる。また、帳票読取装置０１０８は、帳票の差異を吸収しながら、帳票の読取範囲を特定できる。帳票の差異は、例えば、帳票の位置のずれ又は帳票のサイズのずれ等である。
【０１３０】
なお、ＸＳＬスタイルシート０５０２は、従来の枠構造定義と似ている。しかし、従来の枠構造定義は、項目の並びを厳密に定義している。また、従来の枠構造定義は、項目を分割する枠又は罫線の構造を定義している。また、従来の枠構造定義は、繰り返しの構造を定義できない。
【０１３１】
一方、ＸＳＬスタイルシート０５０２は、項目の並びを緩く規定する半順序構造が記述されている。また、ＸＳＬスタイルシート０５０２は、項目を分割する枠及び罫線の有無に関係なく、項目の並びを定義できる。また、ＸＳＬスタイルシート０５０２は、繰返しの構造を定義できる。これによって、帳票読取装置０１０８は、一つのＸＳＬスタイルシート０５０２に基づいて、項目の省略、罫線の有無又は項目の配置の違いなどから生じる複数の非定型の帳票を読み取ることができる。
【０１３２】
図６は、本発明の第１の実施の形態の帳票読取システムが表示した表の説明図である。
【０１３３】
本説明図の表は、ＸＳＬスタイルシート０５０２（図５）によって、ＸＭＬインスタンス０４０２（図４）をＨＴＭＬ形式に変換されたものである。
【０１３４】
表の上には、表の見出し０６０１として「取引一覧表：・・・」が表示されている。また、表は四列から構成される。
【０１３５】
表の一行目には、項目名が格納されている。表の二行目以降には、それぞれの取引先に関するデータが格納されている。
【０１３６】
表は、区分０６０２、送付先０６０３、郵便番号及び送付先住所０６０４並びに購入額０６０５を含む。
【０１３７】
区分０６０２には、当該取引先の区分の一意な識別子が格納される。送付先０６０３には、当該取引先の名称が格納される。郵便番号及び送付先住所０６０４には、当該取引先の郵便番号及び当該取引先の住所が格納される。なお、郵便番号と住所との間には、改行が挿入される。購入額０６０４は、日立製作所が当該取引先に送った品物の金額が格納される。
【０１３８】
図７は、本発明の第１の実施の形態の帳票読取装置０１０８のデータ読取プログラム０７０２の説明図である。
【０１３９】
行番号０７０１は、データ読取プログラム０７０２の説明のために付されたものであり、実際には付されていない。
【０１４０】
本説明図のデータ読取プログラム０７０２は、帳票読取装置０１０８と業務処理装置０１０９とが連携する帳票読取システムにおけるプログラムである。また、データ読取プログラム０７０２は、帳票読取装置が読取クエリを受信する度に読取処理（オンライン駆動）を行う場合のプログラムである。
【０１４１】
なお、データ読取プログラム０７０２は、業務処理装置０１０９の外部記憶装置０３１０又はメモリ０３１１に記憶されている。そして、業務処理装置０１０９の中央演算部０３１２が、データ読込プログラム０７０２を実行する。
【０１４２】
データ読取プログラム０７０２の２行目には、ＸＭＬＰａｐｅｒというクラスによってクエリ対応型の帳票読取装置０１０８を制御する旨が記載されている。３行目には、ＸＭＬＰａｐｅｒＱｕｅｒｙＡｎｓｗｅｒというクラスによってクエリの回答を制御する旨が記載されている。
【０１４３】
６行目には、画像データをメモリに取り込むコマンドが記載されている。帳票読取装置０１０８は、このコマンドを受けると、画像データを自身のメモリ０３０５に格納する。このとき、帳票読取装置０１０８は、画像撮像部０３０１を用いて、紙帳票から画像データを取得してもよい。
【０１４４】
７行目では、読取処理（クエリ処理）を行う条件が、セッション開始条件によって指定されている。なお、セッションとは、仮想の処理単位である。本説明図のデータ読取プログラムでは、ＸＳＬスタイルシートが指定されている。つまり、業務処理装置０１０９は、ＸＳＬスタイルシートを帳票読取装置０１０８に送信する。すると、帳票読取装置０１０８は、受信したＸＳＬスタイルシートに基づいて、帳票定義を作成する。そして、作成した帳票定義を、外部記憶装置０３０４又はメモリ３０５に格納する。なお、当該処理の詳細は、図９で説明する。
【０１４５】
８行目から１１行目では、読取クエリに対応して読取処理を行う旨が記載されている。読取クエリは、業務処理装置０１０９が帳票読取装置０１０８に送信する。９行目によると、ＸＭＬＰａｐｅｒオブジェクトに対してクエリ文が入力される。そして、その結果がＸＭＬＰａｐｅｒＱｕｅｒｙＡｎｓｗｅｒオブジェクトとして返される。つまり、帳票読取装置０１０８は、読取クエリを受信し、受信した読取クエリに対応する処理を行う。そして、処理結果を業務処理装置０１０９に送信する。すると、業務処理装置０１０９は、受信した処理結果を自身のメモリ０３１１に格納する。
【０１４６】
第１０行では、読取クエリの処理結果を出力する旨が記載されている。出力の対象は、ファイル、画面、プロセス間を繋ぐパイプ、共有メモリ又はデータベース等である。ここでは、業務処理装置０１０９が、帳票読取装置０１０８の処理結果を表示部０３１６に表示する。なお、業務処理装置０１０９は、帳票読取装置０１０８の処理結果をインスタンスとして受信する。よって、業務処理装置０１０９は、受信したインスタンスのデータをを容易にデータベースに格納できる。
【０１４７】
図８は、本発明の第１の実施の形態の帳票読取システムのタイミングチャートである。
【０１４８】
まず、業務処理装置０１０９には、帳票読取システムで処理される帳票に対応するＸＳＬスタイルシートが設定される（０８０３）。帳票読取システムで処理される帳票は、例えば、年金帳票、申し込み帳票又はレセプト等である。
【０１４９】
次に、業務処理装置０１０９は、設定されたＸＳＬスタイルシートのデータを帳票読取装置０１０８に送信する。
【０１５０】
帳票読取装置０１０８は、ＸＳＬスタイルシートのデータを業務処理装置０１０９から受信する（０８０５）。次に、帳票読取装置０１０８は、受信したＸＳＬスタイルシートのデータを解釈する（０８０６）。そして、ＸＳＬスタイルシートのデータを、読取処理に適した形に変換する。なお、ＸＳＬスタイルシートのデータ変換については、図９で詳細を説明する。
【０１５１】
次に、業務処理装置０１０９は、読み取りを要求する帳票の画像データを帳票読取装置０１０８に送信する。なお、業務処理装置０１０９は、帳票の画像データを送信する代わりに、帳票の読取要求を帳票読取装置０１０８に送信してもよい（０８０７）。
【０１５２】
帳票読取装置０１０８は、帳票の画像データ又は帳票の読取要求を受信する（０８０９）。帳票読取装置０１０８は、帳票の画像データを受信すると、受信した画像データをメモリ０３０５に格納する。一方、帳票読取装置０１０８は、帳票の読取要求を受信すると、画像撮像部０３０１を用いて紙帳票の画像データを取得する。そして、取得した紙帳票の画像データをメモリ０３０５に格納する。
【０１５３】
次に、帳票読取装置０１０８は、メモリ０３０５に格納されている画像データに対して読取前処理を行う（８１０）。読取前処理０８１０は、図９で詳細を説明する。
【０１５４】
なお、業務処理装置０１０９は、ステップ０８０３及びステップ０８０７のいずれを先に実行してもよい。例えば、帳票読取装置０１０８が同一の帳票を連続して読み取る場合、業務処理装置０１０９は、ステップ８０３を先に実行する。そして、業務処理装置０１０９は、連続して読み取る同一の帳票に対して、ステップ８０７を繰り返せばよい。
【０１５５】
また、帳票読取装置０１０８が異なる帳票を順番に読み取る場合、業務処理装置０１０９は、ステップ８０７を先に実行する。その後に、業務処理装置０１０９には、ＸＳＬスタイルシートが設定される。
【０１５６】
次に、業務処理装置０１０９は、読取クエリを帳票読取装置０１０８に送信する（８１１）。なお、読取クエリでは、画像データから読み取られる領域（読取対象領域）又は画像データから読み取られるデータの項目等が指定される。
【０１５７】
帳票読取装置０１０８は、読取クエリを業務処理装置０１０９から受信する（０８１３）。帳票読取装置０１０８は、受信した読取クエリに基づいて、画像データの読取対象領域を特定する。そして、帳票読取装置０１０８は、特定した読取対象領域を読み取る（０８１４）。
【０１５８】
次に、帳票読取装置０１０８は、読取結果をインスタンスへ変換する。そして、当該インスタンスを業務処理装置０１０９へ送信する（０８１７）。
【０１５９】
業務処理装置０１０９は、インスタンスを帳票読取装置０１０８から受信する（０８１５）。業務処理装置０１０９は、受信したインスタンスのデータをデータベースに格納する（０８１８）。
【０１６０】
次に、業務処理装置０１０９は、読み取りを要求するデータが同一の画像データ中に存在するかどうかを判定する（０８１９）。読み取りを要求するデータが存在する場合には、ステップ８１１に戻る。そして、読取クエリを再度送信する。
【０１６１】
一方、読み取りを要求するデータが存在しない場合には、業務処理装置０１０９は、他に処理する帳票が存在するかどうかを判定する（０８２０）。他に処理する帳票が存在すると、ステップ０８０７に戻る。そして、当該他の帳票を処理する。
【０１６２】
一方、他に処理する帳票が存在しないと、本処理を終了する。
【０１６３】
図９は、本発明の第１の実施の形態の帳票読取装置０１０８の機能のブロック図である。
【０１６４】
帳票読取装置０１０８は、画像撮像部０３０１を備える。また、帳票読取装置０１０８のメモリ０３０５は、帳票定義、帳票理解モジュール０９０８及びＸＳＬ解釈モジュール０９１３を記憶している。帳票定義は、構造定義０９１０、項目定義０９１１及び読取定義０９１２を含む。また、読取定義０９１２は、文字識別辞書及び表記定義を含む。なお、文字識別辞書及び表記定義は、図１１で詳細を説明する。
【０１６５】
構造定義０９１０は、帳票に記載されている枠及び罫線の配置に関する情報を含む。項目定義０９１１は、項目名と項目記載内容との対応に関する情報を含む。なお、項目記載内容は、例えば、年月日文字列、金額文字列、ＩＤ数字文字列又は一般単語文字列等である。
【０１６６】
帳票読取装置０１０８の中央演算部０３０６は、メモリ０３０５に記憶されている帳票理解モジュール０９０８及びＸＳＬ解釈モジュール０９１３を実行する。そして、当該モジュール０９０８、０９１３の実行結果を業務処理装置０１０９に送信する。
【０１６７】
まず、帳票読取装置０１０８の画像撮像部０３０１は、紙帳票を撮像することによって、紙帳票の画像データを取得する。
【０１６８】
次に、帳票理解モジュール０９０８は、画像撮像部０３０１が取得した画像データを処理する。帳票理解モジュール０９０８は、帳票定義を用いて、画像データを処理する。
【０１６９】
ＸＳＬ解釈モジュール０９１３は、指定されたＸＳＬスタイルシートを解釈する。これによって、ＸＳＬ解釈モジュール０９１３は、ＸＳＬスタイルシートを、構造定義０９１０、項目定義０９１１及び読取定義０９１２に変換する。
【０１７０】
なお、帳票読取装置０１０８は、ＸＳＬスタイルシートを指定されない場合、従来技術と同様に、帳票定義に関する辞書を用いる。
【０１７１】
帳票理解モジュール０９０８は、要素抽出モジュール０９０２、帳票判別モジュール０９０３、構造解析モジュール０９０４、項目解析モジュール０９０５、文字列読取モジュール０９０６及びクエリ解釈モジュール０９０７を含む。
【０１７２】
要素抽出モジュール０９０２は、画像データから帳票の構成要素を抽出する。なお、帳票の構成要素は、図１０で詳細を説明するが、線候補、セル候補、枠候補、空白罫線候補、文字要素候補、文字候補及び文字列候補等を含む。
【０１７３】
帳票判別モジュール０９０３は、帳票ＩＤ又はバーコード等を画像データから読み取る。これによって、帳票判別モジュール０９０３は、読取対象の帳票の種類を判別する。なお、画像データに帳票ＩＤが存在しない場合、帳票判別モジュール０９０３は省略される。
【０１７４】
構造解析モジュール０９０４は、画像データから罫線及び枠を抽出する。そして、構造解析モジュール０９０４は、当該画像データに対応する構造定義０９１０を用いて、抽出した罫線及び枠を構造解析する。これによって、構造解析モジュール０９０４は、読取対象となる枠の位置を特定する。なお、構造解析モジュール０９０４には、例えば、特許文献１に記載されている技術が用いられる。
【０１７５】
なお、画像データに対応する構造定義０９１０が存在しない場合又は項目解析モジュール０９０５のみによって処理を実行する場合、構造解析モジュール９０４は省略される。
【０１７６】
構造解析モジュール０９０４が枠構造を一意に特定できない場合、項目解析モジュール０９０５及び文字列読取モジュール０９０６の少なくとも一方が、処理を行う。
【０１７７】
項目解析モジュール０９０５は、項目定義０９１１を用いて、項目名に対応する文字列を（項目名文字列）特定する。文字列読取モジュール０９０６は、文字列表記定義０９１２を用いて、項目記載内容に対応する文字列を読み取る。
【０１７８】
クエリ解釈モジュール０９０７は、読取クエリに応じて、読取結果をマッピングする。そして、クエリ解釈モジュール０９０７は、読取クエリに対する回答を、インスタンスとして業務処理装置０１０９に送信する。
【０１７９】
これらのモジュール０９０２〜０９０７は、それぞれ独立して動作するのでなく、必要なタイミング（イベント駆動型）で動作する。例えば、項目定義０９１１が表記知識によって定義されている場合、項目解析モジュール０９０５は、文字列読取モジュール０９０６を起動する。そして、文字列読取モジュール０９０６が、読取範囲の文字列候補を読み取る。そして、項目解析モジュール０９０５は、文字列読取モジュール０９０６の読取結果を用いて、項目名文字列を特定する。
【０１８０】
次に、ＸＳＬ解釈モジュール０９１３及び帳票理解モジュール０９０８の処理を具体的に説明する。ここでは、インスタンスは、図４で説明したＸＭＬインスタンス０４０２とする。また、図５で説明したＸＳＬスタイルシート０５０２が指定されたとする。また、帳票の画像データは、図６で説明した表とする。
【０１８１】
まず、ＸＳＬ解釈モジュール０９１３は、指定されたＸＳＬスタイルシート０５０２を解釈する。これによって、ＸＳＬ解釈モジュール０９１３は、帳票の構造を解釈する。具体的には、ＸＳＬ解釈モジュール０９１３は、当該帳票が四列Ｎ行（Ｎは不定）の表構造であると解釈する。そこで、ＸＳＬ解釈モジュール０９１３は、四列Ｎ行の表形式を構造定義０９１０に登録する。
【０１８２】
次に、ＸＳＬ解釈モジュール０９１３は、ＸＳＬスタイルシート０５０２の１２行目から１５行目を解釈することによって、「区分」、「送付先」、「郵便番号  送付先住所」及び「購入額」を項目名として項目定義０９１１に登録する。次に、ＸＳＬ解釈モジュール０９１３は、ＸＳＬスタイルシート０５０２の１９行目から２５行目を解釈することによって、それぞれの項目名に対して、「区分」、「名前」、「郵番  住所」及び「金額」を項目記載内容として項目定義０９１１に登録する。更に、ＸＳＬ解釈モジュール０９１３は、項目名と項目記載内容とが上下で対応することを、項目定義０９１１に登録する。
【０１８３】
例えば、帳票理解モジュール０９０８が、住所に関する読取クエリを受信すると、画像データ（図６）の表の三列目のカラムを選択する。次に、選択したカラムの二行目以下の文字列を抽出する。なぜなら、ＸＳＬスタイルシート０５０２の２２行目及び２３行目によると、画像データの表の三列目には住所及び郵便番号列が格納される。そして、郵便番号と住所との間には、改行が挿入されるからである。
【０１８４】
次に、帳票理解モジュール０９０８は、抽出した文字列を、ＸＭＬインスタンス０４０２に変換する。そして、変換したＸＭＬインスタンス０４０２を業務処理装置０１０９に送信する。
【０１８５】
図１０は、本発明の第１の実施の形態の帳票理解モジュール０９０８が処理するデータの階層の説明図である。
【０１８６】
帳票理解モジュール０９０８は、画像データを徐々に抽象化することによって、データベースに格納しやすい形式のデータに変換する。そして、変換したデータを業務処理装置０１０９に送信する。
【０１８７】
要素抽出モジュール０９０２は、画像データ１００１から、ラン１００２及び連結成分１００３などの要素を抽出する。次に、要素抽出モジュール０９０２は、抽出したラン１００２及び連結成分１００３に基づいて、線候補１００４及び文字要素候補１００７を作成する。線候補１００４は、ラン１００２の集まりで表現される。また、線候補１００４は、端点の座標及び線の太さを持つ数字の組み合わせとして表現されてもよい。文字要素候補１００７は、ラン１００２の集まりで表現される。また、文字要素候補１００７は、当該文字要素候補１００７を包含する外接矩形座標として表現されてもよい。
【０１８８】
要素抽出モジュール０９０２は、線候補１００４の並びを解析することによって、セル候補１００５を作成する。例えば、上下四隅に罫線が存在する最小の空間をセルと定義したとする。この場合、要素抽出モジュール０９０２は、座標的に上下に隣接する罫線のペア及び座標的に左右に隣接する罫線のペアをセル候補１００５とする。
【０１８９】
文字候補１００８は、文字要素候補１００７の集まりで構成される。要素抽出モジュール０９０２は、文字要素候補１００７の上下の空白の大きさ、文字要素候補１００７の外接矩形の重なり度合い及び文字要素候補１００７同士のサイズ比等に基づいて、文字要素候補１００７同士の近接度合いを算出する。そして、算出した近接度合いに応じて、文字要素候補１００７同士を融合又は離散する。これによって、文字候補１００８を作成する。
【０１９０】
枠候補１００６は、セル候補１００５の集まりを含む表構造である。また、文字列候補１００９は、近接する文字候補１００８の集まりで構成される文字列である。
【０１９１】
要素抽出モジュール０９０２は、連結成分１００３に基づいて、空白罫線候補１０１０を求める。空白罫線候補１０１０は、行間空白、列間空白及び文字間空白等を含む。また、空白罫線候補１０１０は、文字列候補１００９が分割される際のセパレータとして使われる。また、空白罫線候補１０１０は、枠候補１００６が作成される際のセパレータとして使われる。
【０１９２】
帳票理解モジュール０９０８は、空白罫線候補１０１０をセパレータとして使用することによって、項目記載内容を分割する罫線又は枠が存在しない帳票からでも必要なデータを読み取ることができる。
【０１９３】
以上のような要素候補の集まりによって帳票が構成される。
【０１９４】
帳票判別モジュール０９０３は、文字列候補１００９の中から、読取対象となる帳票の帳票ＩＤを読み取る。帳票ＩＤは、帳票の種別の一意な識別子である。
【０１９５】
また、構造解析モジュール０９０４は、構造定義０９１０を参照して、枠候補１００６、セル候補１００５及び文字列候補１００９の中から読取対象領域を特定する。読取対象領域は、読取対象のデータセル１０１２の領域又は読取対象のデータ文字列１０１４の領域である。
【０１９６】
項目解析モジュール０９０５は、項目定義０９１１を参照して、項目名文字列１０１３を確定する。文字列読取モジュール０９０６は、読取定義０９１２を参照して、データ文字列１０１４を読み取る。クエリ解釈モジュール０９０７は、読取クエリに応じて、データセル１０１２、項目名文字列１０１３及びデータ文字列１０１４をマッピングする。
【０１９７】
帳票理解モジュール０９０８は、コンポーネントを扱う。コンポーネントは、画像１００１、ラン１００２、連結成分１００３、線候補１００４、文字要素候補１００７、セル候補１００５、文字候補１００８、枠候補１００６及び文字列候補１００９等である。また、帳票理解モジュール０９０８は、明示的に区切られないデータを区分するために、空白罫線候補１０１０を使用する。
【０１９８】
コンポーネントは、本説明図の右側に行くほど抽象度が高い。抽象度の高いコンポーネントは、多くの情報が含まれているので扱いやすいが、抽出及び認識に失敗する可能性が高い。逆に、コンポーネントは、本説明図の左側に行くほど抽象度が低い。よって、読取対象領域を指定する場合、これらのコンポーネントに対応した指定方法が選択されるとよい。
【０１９９】
帳票１０１１は、これらのコンポーネントによって構成される。帳票１０１１は、読取クエリに対して構造が一意に確定する。
【０２００】
図１１は、本発明の第１の実施の形態の文字列読取モジュール０９０６の処理のフローチャートである。
【０２０１】
文字列読取モジュール０９０６の処理の前には、項目名理解処理及び項目記載内容理解処理が行われる。これによって、読取対象領域（文字ブロック）が指定される。
【０２０２】
文字列読取モジュール０９０６は、指定された読取対象領域を順に選択する（１１０１）。次に、選択した読取対象領域から文字パタン候補を切り出す（１１０２）。
【０２０３】
次に、文字識別辞書１１０６を参照して、切り出した文字パタン候補を識別する（１１０３）。次に、表記定義１１０７を参照して、表記解析を行う（１１０４）。具体的には、識別した文字パタン候補に対応する文字コードを一意に確定する。なお、帳票読取装置０１０８のメモリ０３０５は、文字識別辞書１１０６及び表記定義１１０７を記憶している。
【０２０４】
次に、文字列読取モジュール０９０６は、読み取った文字パタン候補の尤度を算出する。例えば、文字識別の尤度及び文字の並びの尤度に基づいて、文字パタン候補の尤度を算出する。そして、算出した尤度の大きい順に、文字パタン候補を並び替え、読取結果とする（１１０５）。
【０２０５】
次に、文字列読取モジュール０９０６の具体的な処理を説明する。
【０２０６】
図１２Ａは、本発明の第１の実施の形態の文字列読取モジュール０９０６が読み取る文字列の説明図である。
【０２０７】
以下、文字列読取モジュール０９０６が、本説明図の文字列（読取対象文字列）を読み取る場合を説明する。文字列読取モジュール０９０６は、読取対象文字列から、文字パタンと推定される部分を様々に切り出す。これによって、文字パタン候補を作成する。そして、作成した文字パタン候補を文字識別することによって、文字列仮説を作成する。
【０２０８】
図１２Ｂは、本発明の第１の実施の形態の文字列読取モジュール０９０６が作成した文字列仮説の説明図である。
【０２０９】
文字列仮説は、文字パタン候補、文字識別文字コード１２０３及び文字パタン候補間の接続関係の情報を含む。なお、文字識別文字コード１２０３は、文字識別の類似度に応じて順位付けされている。
【０２１０】
文字列仮説では、文字パタン候補がアーク１２０１として表現される。また、文字パタンの境界が有向グラフであるノード１２０２として表現される。
【０２１１】
それぞれの文字パタン候補には、境界ＩＤ、文字識別文字コード１２０３及び識別類似度１２０４が含まれる。境界ＩＤは、ノード１２０２の一意な識別子である。
【０２１２】
有向グラフとして表現された文字列仮説を、候補文字ネットワークと呼ぶ。
【０２１３】
次に、文字列読取モジュール０９０６は、表記定義１１０７を参照して、文字列仮説から文字列パスを特定する。なお、文字列パスは、一意に確定した文字コード及び文字コードに対応する文字パタンの並びを含む。
【０２１４】
具体的には、文字列読取モジュール０９０６は、文字列仮説と表記定義１１０７とを比較する。そして、表記定義１１０７に含まれる文字列を文字列仮説の中から検索する。
【０２１５】
図１２Ｃは、本発明の第１の実施の形態の表記定義１１０７の一例の説明図である。
【０２１６】
表記定義１１０７は、表記知識に関する定義である。本説明図の表記定義１１０７によると、「明治」、「大正」又は「昭和」のいずれかが元号１２０５として記載される。また、元号１２０５に続いて、数字列１２０６が記載される。また、数字列１２０６に続いて、「年」、「・」又は「／」のいずれかが区切り記号として記載される。
【０２１７】
また、本説明図の表記定義１１０７では、元号１２０５及び数字列１２０６に下線が引かれている。これは、元号１２０５及び数字列１２０６が読取りの際に区分されるべき情報であることを意味する。
【０２１８】
表記定義１１０７は、本説明図以外の方法で表現されていてもよい。表記定義１１０７を表現する方法として、トライ法又は文脈自由文法などが知られている（例えば、特許文献４参照。）。
【０２１９】
文字列読取モジュール０９０６は、文字列仮説上で文字識別類似度が最大となるコストパス問題を解くことによって、文字列コード及び文字列パスを特定する。
【０２２０】
更に、表記定義１１０７は、文字列の区分先に関する定義を含むので、項目記載内容の文字列を分割する処理に使用される。
【０２２１】
図１２Ｄは、本発明の第１の実施の形態の文字列パスの説明図である。
【０２２２】
文字列読取モジュール０９０６は、このような処理によって、本説明図のような文字列パスを特定する。そして、特定した文字列パスが読取結果となる。
【０２２３】
次に、読取クエリを説明する。
【０２２４】
図１３は、本発明の第１の実施の形態の読取クエリの種類の説明図である。
【０２２５】
ＸＭＬに対するクエリは、ロケーションパスによってＸＭＬ文書におけるノードの位置を指定する。以下、ＸＭＬに対するクエリの一例を記載する。
／ロケーションステップ
／ロケーションステップ
／・・・
／軸：：ノードテスト［述語（条件式）］
【０２２６】
一方、ＸＭＬＰａｐｅｒに対するクエリ１３０１には、領域指定クエリ１３０２、セル指定クエリ１３０３、表記読取クエリ１３０４、マーク指定クエリ１３０５、項目読取クエリ１３０６及び表読取クエリ１３０７等の要素クエリが含まれる。
【０２２７】
領域指定クエリ１３０２は、読取対象領域（又は読取対象座標）を指定した読取要求である。セル指定クエリ１３０３は、表のカラムを指定した読取要求である。表記読取クエリ１３０４は、特定の表記列に関する読取要求である。マーク指定クエリ１３０５は、チェックマークなどのマーキング項目を指定した読取要求である。項目読取クエリ１３０６は、項目名に対応するデータの読取要求である。表読取クエリ１３０７は、表構造の二次元的な位置を指定した読取要求である。
【０２２８】
読取対象は、単独のクエリで指定されてもよいし、複数のクエリを組み合わせによって指定されてもよい。例えば、「ＸＸセルの中にあるＹＹというキーワード」のように読取対象が指定されてもよい。また、「複合セルで、セルＸＸの中にはＹＹという項目名がある」のように、読取対象が指定されてもよ。
【０２２９】
クエリ１３０１は、単独の要素クエリであってもよいし、複数の要素クエリの組み合わせであってもよい。ＸＭＬＰａｐｅｒに対するクエリ１３０１は、入れ子状に括弧が連なる単独のクエリのリストで記述されてもよいし、論理演算ＡＮＤ又はＯＲなどの連結子でクエリを結んだ形式で記述されてもよい。例えば、クエリ１３０１では、「／Ｃｅｌｌ（／Ａｒｅａ・・・）」又は「／Ｃｅｌｌ（・・・）＆／Ａｒｅａ（・・・）」等のようにセルの領域が指定される。
【０２３０】
業務処理装置０１０９は、単純な読取処理を要求する場合には、単独のクエリ１３０１を帳票読取装置０１０８に送信する。一方、業務処理装置０１０９は、複雑な読取処理を要求する場合には、複数のクエリ１３０１を組み合わせたものを、帳票読取装置０１０８に送信する。つまり、業務処理装置０１０９は、要求する処理のレベルに応じたクエリ１３０１を帳票読取装置０１０８に送信できる。
【０２３１】
本実施の形態によれば、帳票読取装置０１０８は、ＸＳＬスタイルシートを参照することによって、帳票の画像データから適切な情報を読み取ることができる。これによって、ユーザは、帳票定義辞書を作成する手間を省略できる。
【０２３２】
（第２の実施の形態）
第２の実施の形態では、帳票読取装置は、ＸＳＬスタイルシートを参照せずに、帳票を読み取る。
【０２３３】
図１４は、本発明の第２の実施の形態の帳票読取システムのブロック図である。
【０２３４】
第２の実施の形態の帳票読取システムは、ＸＳＬスタイルシートを管理しない。第２の実施の形態の帳票読取システムのそれ以外の構成は、第１の実施の形態の帳票読取システム（図２）と同一である。同一の構成には同一の番号を付し、説明を省略する。
【０２３５】
また、第２の実施の形態の帳票提出側の装置は、第１の実施の形態の帳票提出側のシステム０２０１と同一なので、図示を省略する。
【０２３６】
読取クエリでは、読取座標又は半順序構造が指定されてもよい。この場合、読取クエリは、第１の実施の形態のＸＳＬスタイルシートと同様に、配置構造が定義されている。
【０２３７】
ただし、第１の実施の形態のＸＳＬスタイルシートには、帳票全体の配置構造が定義されるので、複雑な定義が必要となる。一方、読取クエリには、帳票の部分的な配置構造が定義されるので、複雑な定義が不要である。つまり、帳票読取装置０１０８がＸＳＬスタイルシートを参照しない場合、帳票の配置構造に関する複雑な定義が不要になる。
【０２３８】
しかし、帳票読取装置０１０８は、ＸＳＬスタイルシートを参照しない場合、項目記載内容の領域（読取対象領域）を特定できない。そこで、帳票読取装置０１０８は、読取クエリに基づいて、読取対象領域を特定しなければならない。
【０２３９】
例えば、領域指定クエリ１３０２及び表読取クエリ１３０４は、項目名の配置と項目記載内容の配置との対応に関する情報を含むことができる。よって、帳票読取装置０１０８は、領域指定クエリ１３０２又は表読取クエリ１３０４に基づいて、読取対象領域を特定できる。
【０２４０】
また、項目読取クエリ１３０６は、項目記載内容の配置に関する情報を含まない。帳票読取装置０１０８は、項目読取クエリ１３０６を受けると、暗黙的知識に基づいて、読取対象領域を特定する。
【０２４１】
図１５は、本発明の第２の実施の形態の帳票読取装置０１０８の暗黙的知識の説明図である。
【０２４２】
暗黙的知識は、項目名の配置と項目記載内容の配置との対応に関する情報である。
【０２４３】
本説明図は、暗黙的知識名１５０１及び暗黙的知識１５０２を含む。
【０２４４】
暗黙的知識名１５０１は、暗黙的知識１５０２の名称である。
【０２４５】
本説明図の（Ａ）に示される一対一対応では、項目名と項目記載内容とが左右又は上下に対応する。本説明図の（Ｂ）に示される一体多対応では、一つの項目名に対して複数の項目記載内容が対応する。本説明図の（Ｃ）に示される階層対応では、複数の項目名を含む。そして、階層対応に含まれるそれぞれの項目名に一つの項目記載内容が対応する。
【０２４６】
本説明図の（Ｄ）に示されるリスト対応では、一つの項目名に対して複数の項目記載内容が連なっている。そして、同一の項目名に対応する複数の項目記載内容は、上下または左右で一纏まりになっている。
【０２４７】
本説明図の（Ｅ）に示される二次元対応では、二つの項目名によって項目記載内容が一意に特定される。
【０２４８】
本説明図の（Ｆ）に示される非直行対応は、例えば、財務諸表等に使用される。非直行対応については、図１６で後述する。
【０２４９】
帳票読取装置０１０８は、項目読取クエリを受けると、暗黙的知識の中から、尤もらしい配置関係の暗黙的知識を選択する。例えば、項目名の並びの直線関係及び項目名の配置間隔の一定性などを引数とする尤度関数に基づいて、尤もらしい配置関係の暗黙的知識を選択する。
【０２５０】
次に、帳票読取装置０１０８は、選択した暗黙的知識を用いることによって、画像データの読取対象領域を特定する。そして、読取対象領域を読み取る。
【０２５１】
また、読取クエリでは、暗黙的知識と同様の配置関係が指定できてもよい。
【０２５２】
図１６は、本発明の第２の実施の形態の非直行対応の配置の説明図である。
【０２５３】
本説明図では、財務諸表を例として、非直行対応の配置を説明する。
【０２５４】
財務諸表には、「決算」、「資本の部」、「不動産」、「現金」及び「株式」が項目名として記載されている。項目名の「不動産」と項目記載内容の「Ｘ」とは、左右に対応している。同様に、項目名の「現金」と項目記載内容の「Ｙ」とは、左右に対応している。また、項目名の「株式」と項目記載内容の「Ｚ」とは、左右に対応している。
【０２５５】
しかし、項目名の「資本の部」と項目記載内容の「Ｓ」とは、左右に対応して配置されていない。同様に、項目名の「決算」と項目記載内容の「Ｔ」とは、左右に対応して配置されていない。
【０２５６】
つまり、財務諸表は、項目名の配置と項目記載内容の配置との対応が不規則である。
【０２５７】
このような場合であっても、帳票読取装置０１０８は、読取クエリに基づいて、読取対象領域を特定できる。当該読取クエリは、表読取クエリ１３０７、項目読取クエリ１３０６及び非直行関係が指定されたクエリの組み合わせである。
【０２５８】
例えば、当該読取クエリは、「／ＴａｇＤａｔａ（／Ｔａｇ  資産の部）＆非直行対応（／Ｔａｇ（１、１）、／ＴａｇＤａｔａ（Ｘ，／Ｔａｂｌｅ（／ＣｏｌＮｕｍ）−１））」のように記述される。当該読取クエリには、項目名が「資産の部」であると記述されている。また、項目名と項目記載内奥とが非直行対応関係であると記述されている。また、項目名が１行１列であり、項目記載内容が任意の行（Ｘ行）のＹ列にありと記述されている。更に、Ｙ列が「表の列数−１」であると記述されている。
【０２５９】
帳票読取装置０１０８は、このようなクエリを受信すると、非定型の帳票であっても、読取対象領域を特定できる。
【０２６０】
以上のように、帳票読取装置０１０８は、ＸＳＬスタイルシートを参照せずに、読取クエリを解釈することによって、帳票を読み取ることができる。
【産業上の利用可能性】
【０２６１】
本発明は、紙の帳票又は紙の文書を処理する帳票読取システムに適用できる。
【図面の簡単な説明】
【０２６２】
【図１Ａ】従来の帳票読取システムのブロック図である。
【図１Ｂ】本発明の第１の実施の形態の帳票読取システムのブロック図である。
【図２】本発明の第１の実施の形態の帳票読取システムの処理の説明図である。
【図３】本発明の第１の実施の形態の帳票読取システムのブロック図である。
【図４】本発明の第１の実施の形態のＸＭＬインスタンスの説明図である。
【図５】本発明の第１の実施の形態のＸＳＬスタイルシートの説明図である。
【図６】本発明の第１の実施の形態の帳票読取システムが表示した表の説明図である。
【図７】本発明の第１の実施の形態の帳票読取装置のデータ読取プログラムの説明図である。
【図８】本発明の第１の実施の形態の帳票読取システムのタイミングチャートである。
【図９】本発明の第１の実施の形態の帳票読取装置の機能のブロック図である。
【図１０】本発明の第１の実施の形態の帳票理解モジュールが処理するデータの階層の説明図である。
【図１１】本発明の第１の実施の形態の文字列読取モジュールの処理のフローチャートである。
【図１２Ａ】本発明の第１の実施の形態の文字列読取モジュールが読み取る文字列の説明図である。
【図１２Ｂ】本発明の第１の実施の形態の文字列読取モジュールが作成した文字列仮説の説明図である。
【図１２Ｃ】本発明の第１の実施の形態の表記定義の一例の説明図である。
【図１２Ｄ】本発明の第１の実施の形態の文字列パスの説明図である。
【図１３】本発明の第１の実施の形態の読取クエリの種類の説明図である。
【図１４】本発明の第２の実施の形態の帳票読取システムのブロック図である。
【図１５】本発明の第２の実施の形態の帳票読取装置の暗黙的知識の説明図である。
【図１６】本発明の第２の実施の形態の非直行対応の配置の説明図である。
【符号の説明】
【０２６３】
０１０１  紙帳票
０１０２  帳票読取装置
０１０３  帳票定義辞書
０１０４  業務制御装置
０１０５  テキスト変換定義辞書
０１０６  業務ＤＢ装置
０１０７  ＤＢ定義辞書
０１０８  帳票読取装置
０１０９  業務処理装置
０１１０  ＸＳＬスタイルシート
０２０１  帳票提出側のシステム
０２０２  データベースＡ
０２０３  帳票提出側業務装置
０２０４  インスタンス
０２０５  印刷装置
０２０８  文書受付側のシステム
０２０９  データベースＢ
０２１１  読取クエリ
０２１２  インスタンス
０３０１  画像撮像部
０３０２  操作部
０３０３  表示部
０３０４  外部記憶装置
０３０５  メモリ
０３０６  中央演算部
０３０７  通信部
０３０８  内部バス
０３０９  外部通信線
０３１０  外部記憶装置
０３１１  メモリ
０３１２  中央演算部
０３１３  通信部
０３１４  内部バス
０３１５  操作部
０３１６  表示部
０９０２  要素抽出モジュール
０９０３  帳票判断モジュール
０９０４  構造解析モジュール
０９０５  項目解析モジュール
０９０６  文字列読取モジュール
０９０７  クエリ解釈モジュール
０９０８  帳票理解モジュール
０９１０  構造定義
０９１１  項目定義
０９１２  読取定義
０９１３  ＸＳＬ解釈モジュール
【図１Ａ】
0004809024.tif 000002
【図１Ｂ】
0004809024.tif 000003
【図２】
0004809024.tif 000004
【図３】
0004809024.tif 000005
【図４】
0004809024.tif 000006
【図５】
0004809024.tif 000007
【図６】
0004809024.tif 000008
【図７】
0004809024.tif 000009
【図８】
0004809024.tif 000010
【図９】
0004809024.tif 000011
【図１０】
0004809024.tif 000012
【図１１】
0004809024.tif 000013
【図１２Ａ】
0004809024.tif 000014
【図１２Ｂ】
0004809024.tif 000015
【図１２Ｃ】
0004809024.tif 000016
【図１２Ｄ】
0004809024.tif 000017
【図１３】
0004809024.tif 000018
【図１４】
0004809024.tif 000019
【図１５】
0004809024.tif 000020
【図１６】
0004809024.tif 000021