(57)【要約】【課題】既存の文書構造定義が適用できない文書の処理を容易にする。【解決手段】文書構造探索部１３２は、入力された文書の画像に最もよく適合する最適文書構造定義を文書構造定義ＤＢ１５０から探索し、最適文書構造定義のうちその入力画像から抽出した値が当てはまらない要素（不適合要素）を特定する。部分構造探索部１３４は、部分構造定義ＤＢ１６０から不適合要素に対応する部分構造定義を取得し、それら取得した各部分構造定義と、入力画像のうち最適文書構造定義に当てはまらなかった不適合部分とを比較する。そして、不適合部分に対して最もよく適合する部分構造定義を、最適文書構造定義と組み合わせることで、入力画像に対応する文書構造定義を構築する。【選択図】図１０
2008257590.tif 000002
【特許請求の範囲】
【請求項１】
複数の部分からなる文書の構造の定義を示す文書構造定義情報を格納した第１格納手段と、
文書を構成する部分の構造の定義を示す部分構造定義情報を、部分の種類ごとに分類可能に格納した第２格納手段と、
前記第１格納手段に格納された文書構造定義情報の中から、対象文書画像に対する適合度に基づき対象文書画像に適合する適合文書構造定義情報を求める第１探索手段と、
前記対象文書画像の中に、前記第１探索手段が求めた適合文書構造定義情報に適合しない部分がある場合に、その部分の種類に該当する部分構造定義情報の中から、その部分に対する適合度に基づきその部分に適合する適合部分構造定義情報を求める第２探索手段と、
前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に関する処理を実行する処理実行手段と、
を備える文書処理システム。
【請求項２】
前記処理実行手段は、
前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に対応する文書構造定義情報を作成し、作成した文書構造定義情報に対して前記対象文書画像の各部分の値を当てはめることで、前記対象文書画像に対応する構造化文書を作成する構造化文書作成手段と、
を備えることを特徴とする請求項１記載の文書処理システム。
【請求項３】
前記処理実行手段は、
前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に対応する文書構造定義情報を作成し、前記第１格納手段に登録する登録手段と、
を備えることを特徴とする請求項１記載の文書処理システム。
【請求項４】
コンピュータを、
複数の部分からなる文書の構造の定義を示す文書構造定義情報を格納した第１格納手段、
文書を構成する部分の構造の定義を示す部分構造定義情報を、部分の種類ごとに分類可能に格納した第２格納手段、
前記第１格納手段に格納された文書構造定義情報の中から、対象文書画像に対する適合度に基づき対象文書画像に適合する適合文書構造定義情報を求める第１探索手段、
前記対象文書画像の中に、前記第１探索手段が求めた適合文書構造定義情報に適合しない部分がある場合に、その部分の種類に該当する部分構造定義情報の中から、その部分に対する適合度に基づきその部分に適合する適合部分構造定義情報を求める第２探索手段、
前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に関する処理を実行する処理実行手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の構造を定義する文書構造定義に従って対象文書画像を処理するためのシステムに関する。
【背景技術】
【０００２】
文書処理のために、ＸＭＬ(eXtensible Markup Language)、ＳＧＭＬ(Standard Generalized Markup Language )、ＨＴＭＬ(Hypertext Markup Language)等の構造化記述言語により文書を構造化して取り扱うことが一般的になっている。例えば、ＸＭＬでは、ＤＴＤ(Document Type Definition)やＸＭＬスキーマ(XML schema)などのようなスキーマ言語により文書の構造を定義し、その構造定義を用いて文書の解析等の各種の処理が行われている。また、紙の原稿をスキャナで読み取り、読み取り結果の画像の中から文字列や画像などの要素を検出し、その検出結果を用いて原稿に対応する構造化文書を生成する技術も知られている。
【０００３】
実際の文書の構造は、同じ種類の文書でも様々に異なる。例えば、「請求書」という種類に該当する文書は、発行者名や宛名、発行日、請求金額などといった、請求書が一般に備えるべき情報項目を含んでいるが、そのほかに独自の情報項目を含んでいる場合もある。また、それら情報項目を表す名称や文書上での各情報項目のレイアウトなども様々である。また、それら情報項目同士の論理的な関係の仕方も、請求書によって異なる場合がある。このように、同じ種類の文書であっても、実際にはそれら文書の構造又はスキーマ（以下でいう「構造」又は「スキーマ」は、論理的な構造又は表示上でのレイアウト構造又はその両方を含む）は完全には同一ではない。
【０００４】
このように構造の異なる情報を取り扱うシステムとして、例えば特許文献１に示されるものが知られている。このシステムは、スキーマの属性が異なる商品やショップなどの情報を、広大なネットワークの中からユーザが容易に探し出すことができる情報検索システム及び電子商取引システムを提供するためのものである。このシステムは、各データベースからスキーマを収集し、収集した前記スキーマを標準スキーマに変換して端末に供給する第１のサーバと、前記標準スキーマをもとに標準クエリーを生成して問合せを行う端末と、前記端末から送られる標準クエリーを前記各データベースに対応するクエリーに変換して各データベースに対して同時に問合せを行い、データベースごとに返されるリザルトを標準リザルトに変換して前記端末に返す第２のサーバとを有する。
【０００５】
【特許文献１】特開２００１−２４３２４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
対象の文書をその構造に従って処理する場合、その文書に対応する構造定義が存在すれば、その構造定義を用いればよい。しかし、対象の文書に対応する構造定義が常に存在するとは限らない。例えば様々な発行者から受け取った請求書をデータベース化する場合、どのような発行者からどのような請求書を受け取るか事前に分からない以上、すべての発行者の請求書の構造定義を前もって用意することは現実的には難しい。また、同じ発行者が発行した請求書であっても、時間を経るにしたがって構造が変わる場合もあるので、以前に入手したその発行者の請求書の構造定義が、新たにその発行者から受け取った請求書の処理にそのまま適用できるとは限らない。
【０００７】
したがって、既存の構造定義に適合しない文書を処理するには、その文書に適合した構造定義を作成する必要が出てくる。従来、文書の構造定義の作成は、人手により行うことが一般的であった。
【０００８】
特許文献１に示される従来技術は、異なるスキーマに従った情報を統一的に扱うための技術ではあるが、新たな文書に対して適切なスキーマを作成するための助けとしては、十分ではない。
【０００９】
本発明は、既存の文書構造定義が適用できない文書の処理を容易にするためのシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、複数の部分からなる文書の構造の定義を示す文書構造定義情報を格納した第１格納手段と、文書を構成する部分の構造の定義を示す部分構造定義情報を、部分の種類ごとに分類可能に格納した第２格納手段と、前記第１格納手段に格納された文書構造定義情報の中から、対象文書画像に対する適合度に基づき対象文書画像に適合する適合文書構造定義情報を求める第１探索手段と、前記対象文書画像の中に、前記第１探索手段が求めた適合文書構造定義情報に適合しない部分がある場合に、その部分の種類に該当する部分構造定義情報の中から、その部分に対する適合度に基づきその部分に適合する適合部分構造定義情報を求める第２探索手段と、前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に関する処理を実行する処理実行手段と、を備える文書処理システムである。
【００１１】
請求項２に係る発明は、請求項１に係る発明において、前記処理実行手段は、前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に対応する文書構造定義情報を作成し、作成した文書構造定義情報に対して前記対象文書画像の各部分の値を当てはめることで、前記対象文書画像に対応する構造化文書を作成する構造化文書作成手段と、を備えることを特徴とする。
【００１２】
請求項３に係る発明は、請求項１に係る発明において、前記処理実行手段は、前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に対応する文書構造定義情報を作成し、前記第１格納手段に登録する登録手段と、を備えることを特徴とする。
【００１３】
請求項４に係る発明は、コンピュータを、複数の部分からなる文書の構造の定義を示す文書構造定義情報を格納した第１格納手段、文書を構成する部分の構造の定義を示す部分構造定義情報を、部分の種類ごとに分類可能に格納した第２格納手段、前記第１格納手段に格納された文書構造定義情報の中から、対象文書画像に対する適合度に基づき対象文書画像に適合する適合文書構造定義情報を求める第１探索手段、前記対象文書画像の中に、前記第１探索手段が求めた文書構造定義情報に適合しない部分がある場合に、その部分の種類に該当する部分構造定義情報の中から、その部分に対する適合度に基づきその文書に適合する適合部分構造定義情報を求める第２探索手段、前記第１探索手段が求めた適合文書構造定義情報と、前記第２探索手段が求めた適合部分構造定義情報とに基づき、前記対象文書画像に関する処理を実行する処理実行手段、として機能させるためのプログラム、である。
【発明の効果】
【００１４】
請求項１及び請求項４に係る発明によれば、第１格納手段に格納された文書構造定義情報の中に対象文書画像に完全に適合するものがない場合でも、適合しない部分について部分構造定義情報を組み合わせることで、対象文書画像に適合した処理が可能となる。
【００１５】
請求項２に係る発明によれば、第１格納手段に格納された文書構造定義情報の中に対象文書画像に完全に適合するものがない場合でも、対象文書画像に対応する構造化文書を作成することができる。
【００１６】
請求項３に係る発明によれば、第１格納手段に格納された文書構造定義情報の中に対象文書画像に完全に適合するものがない場合でも、対象文書画像に対応する文書構造定義情報を作成することができる。
【発明を実施するための最良の形態】
【００１７】
本実施形態では、複数の部分からなる文書の構造の定義を示す文書構造定義情報を文書ごとに用意すると共に、文書を構成する各部分の構造の定義を示す部分構造定義情報を、部分の種類ごとに用意する。ここでいう「部分」は、例えば構造化文書における要素、又は複数の要素の集まりである。そして、構造化の対象となる対象文書と、各文書構造定義情報とを比較し、対象文書に対する適合度に基づき対象文書画像に適合する適合文書構造定義情報を求める。そして、適合文書構造定義情報が定義する部分の中に、対象文書の部分が適合しない部分がある場合に、その適合しない部分の種類に該当する部分構造定義情報の中から、その部分に対する適合度に基づきその部分に適合する適合部分構造定義情報を求める。そして、適合文書構造定義情報と適合部分構造定義情報とに基づき、前記対象文書に関する処理を実行する。この処理は、例えば、対象文書画像に対応する構造化文書の作成である。
【００１８】
以下、図面を参照して本発明の好適な実施の形態を説明する。図面において、同様の構成要素又はステップには同一符号を付して、重複した説明は省略する。
【００１９】
本実施形態では、一例として、見積書等の定型文書の画像を解析してその定型文書に含まれる各文書要素の値を求め、それら各文書要素の値を含んだ構造化文書の文書データ（以下単に「構造化文書」と呼ぶ）を生成するためのシステムを説明する。また、以下では、一例として、スキャナ、プリンタ、複写機などの機能をあわせ持つ画像形成装置（このような画像形成装置は、デジタル複合機とも呼ばれる）をベースにしたシステムを例にとって説明する。すなわち、以下では、紙等の媒体に印刷された文書を画像形成装置にて読み取り、読取結果の画像を解析して構造化文書を作成する処理を例にとって説明する。このシステムは、例えば、紙の見積書を読み取り、その読み取り画像から、発行者や宛先、個々の商品の単価や個数、合計金額などの要素を認識し、それら要素からなる構造化文書を生成するのに用いられる。
【００２０】
本実施形態の画像形成装置の制御機構の主要部を図１に示す。図１においてＲＯＭ（リード・オンリ・メモリ）１２には、画像形成装置の動作制御のための制御プログラムなどのデジタル情報が格納されている。ＣＰＵ（中央処理装置）１０がこのＲＯＭ１２内の制御プログラムを実行することにより、以下に説明する画像形成装置の各部の制御が実現される。
【００２１】
ＲＡＭ（ランダム・アクセス・メモリ）１４は、画像形成装置の主記憶装置であり、制御プログラムの実行の際にワークメモリとしても用いられる。ＲＡＭ１４は、例えば、画像出力装置２４に供給する１ページ分の画像データを蓄えるページバッファとして用いることもできる。
【００２２】
大容量記憶装置１６は、各種のデータを保存するための補助記憶装置であり、例えばハードディスクやＥＥＰＲＯＭ(Electrically Erasable Programmable Read-Only Memory)などの不揮発性の記憶装置である。
【００２３】
操作パネル１８は、この画像形成装置のユーザインタフェースのための表示や、ユーザからの各種指示の入力受付などのためのユーザインタフェース手段である。操作パネル１８は、例えば、スタートボタンなどの機械的な操作ボタンと、ＧＵＩ（グラフィカル・ユーザ・インタフェース）のための液晶タッチパネルと、を備える。液晶タッチパネルは、ＣＰＵ１０で実行される制御プログラムが生成したＧＵＩ画面を表示し、そのディスプレイに対するユーザのタッチ位置を検出して制御プログラムに渡す。制御プログラムは、そのタッチ位置の情報からユーザの入力内容を解釈する。
【００２４】
通信インタフェース２０は、ＬＡＮ（ローカル・エリア・ネットワーク）等のネットワークを介して他の装置とデータ通信を行う際の制御を担う装置である。リモートホストからのプリント指示等は、この通信インタフェース２０を介して画像形成装置内に入力される。また、ネットワーク上にある言語翻訳サーバなどといった外部サーバにアクセスする際にも、通信インタフェース２０は用いられる。
【００２５】
画像読取装置２２は、原稿を光学的に読み取って電子的な画像データを生成する装置である。例えば、ラインセンサやエリアセンサを用いたスキャナがその一例である。自動原稿送り装置（ＡＤＦ）（図示省略）にセットされた原稿は、ＡＤＦの機能により１枚ずつ画像読取装置に送られ、光学的に読み取られる。
【００２６】
画像出力装置２４は、ＣＰＵ１０の制御により供給される画像データを用紙に画像形成（印刷）する装置であり、プリントエンジンとも呼ばれる。
【００２７】
ファクシミリモジュール２６は、ファクシミリデータの送受信を行うモジュールである。
【００２８】
像域分離回路２８は、画像読取装置２２により得られた読取画像の像域分離を行う回路である。よく知られるように、像域分離では、画像のエッジ強度や空間周波数などの各種の画像特徴を用いて文字や連続調画像などの像域（以下紛れのない場合に、像域を「領域」と呼ぶこともある）を判別する。像域分離回路２８は、読取画像を同じ画像特徴を有する連続した領域ごとに区切る。その区切りの結果得られた各連続領域がそれぞれ像域と呼ばれる。複写機等の画像形成装置は、印刷画質向上のために、読み取った画像中の文字領域と連続調画像領域とを分離する像域分離の機能を備えるものが一般的になっている。また、高速な印刷処理のため、この像域分離の機能の多くの部分はＡＳＩＣ(Application Specific Integrated Circuit) やＤＳＰ(Digital Signal Processor)等のハードウエア回路として実装されている。像域分離回路２８としては、そのような従来から画像形成装置が備える回路を用いることができる。従来は、像域分離回路は、もっぱら印刷などといった画像出力のためのみに用いられていたが、この像域分離回路２８は、画像出力だけでなく、文書画像の解析処理にも利用される。
【００２９】
画像処理回路３０は、文書画像に対し、印刷やファクシミリ送信等の用途に応じた画像処理を施す回路である。例えば、印刷を行う場合、像域分離回路２８で分離された文字と画像の像域に対し、それぞれ文字用の画像処理（エッジ強調など）と連続調画像用の画像処理（階調補正など）を施す。
【００３０】
次に、この画像形成装置の構造化文書作成処理に関する機能部分の構成及びその処理内容を説明する。この画像形成装置は、構造化文書作成処理のための機能として、図２に示す情報処理部１００を備える。情報処理部１００は、以下に説明する機能又は手順を記述したプログラムをＣＰＵ１０に実行させることにより実現できる。このプログラムは、ＲＯＭ１２又は大容量記憶装置１６に記憶されており、ＣＰＵ１０により実行される。このプログラム又はその一部は、ディスク等の可搬型媒体又はネットワーク経由のダウンロードにより大容量記憶装置１６にインストールしてもよい。
【００３１】
情報処理部１００のうち文字認識部１２０は、読取画像中の文字領域の画像に対して文字認識を行う。文字認識部１２０は、周知のＯＣＲ（Optical Character Recognition:光学文字認識）技術を用いたものでよい。文字認識部１２０は、漢字や仮名などの日本語の文字、アルファベット、数字、記号などの各種の文字のうちの１以上を認識する。
【００３２】
文書解析部１３０は、文字認識部１２０の処理結果に基づき、読取画像の構造を解析し、その解析結果に基づき読取画像の内容を表す構造化文書を作成する。この処理において、文書解析部１３０は、文書構造定義ＤＢ（データベース）１５０及び部分構造定義ＤＢ１６０を参照する。文書構造定義ＤＢ１５０には、文書の構造を定義する情報である文書構造定義を特定するための情報が登録されている。部分構造定義ＤＢ１６０には、文書を構成する各部分の構造を定義する情報である部分構造定義が登録されている。文書構造定義、部分構造定義、及び文書解析部１３０の詳細については、あとで説明する。
【００３３】
文書登録部１４０は、文書解析部１３０が生成した構造化文書を文書ＤＢ１７０に登録する処理を行う。文書ＤＢ１７０は、構造化文書を蓄積するデータベースである。文書ＤＢ１７０は、画像形成装置内に設けられていてもよいし、画像形成装置からアクセス可能なネットワーク上に設けられていてもよい。
【００３４】
次に、文書構造定義について詳しく説明する。例えば構造化文書をＸＭＬで記述する場合には、文書構造定義は、例えばＤＴＤ（Document Type Definition）やＷ３Ｃ  ＸＭＬ  ｓｃｈｅｍａ、ＲＥＬＡＸ  ＮＧ(Regular Language description for XML New Generation)などの、ＸＭＬ用のスキーマ言語により記述される。文書構造定義は、ある会社「Ａ」の見積書の第１バージョン、第２バージョン、別の会社「Ｂ」の領収書の第１バージョンなどといったように、個々の文書ごとに作成される。文書構造定義は、文書を構成する複数の要素の論理構造を表す。また、文書構造定義には、それら各要素の要素名、データ型等の情報を含めることもできる。データ型には、文字列型、整数型、日付型などといった様々な型がある。またそれら単純な型を組み合わせた複合型なども定義できる。また文書構造定義には、文書中での要素の出現回数や要素の配列順序などの情報を含めることもできる。
【００３５】
文書構造定義の一例を図３に示す。この例は、図４に示した会社「Ａ」の見積書の文書構造定義をＷ３Ｃ  ＸＭＬ  ｓｃｈｅｍａで記述した例である。
【００３６】
文書構造定義ＤＢ１５０には、このような文書構造定義が登録される。また、文書構造定義ＤＢ１５０には、図５に示すように、文書ごとに、スタイル情報２０４又は検索キー情報２０６又はその両方を、上述のような文書構造定義２０２と対応づけて登録してもよい。
【００３７】
スタイル情報２０４は、文書を構成する各要素の表示（可視化）の仕方を規定する情報である。ここで、例えば像域分離により求められ個々の像域が、それぞれ文書の要素に対応する。スタイル情報２０４は、例えば、それら各要素に対応する像域の読取画像内での位置、形状の情報を含む。また、スタイル情報２０４には、それら各要素の種類の情報が含まれていてもよい。要素の種類は、例えば、文字列、連続調画像、グラフィック図形などがある。文字列を、更に詳細に例えば数字列と日本語文字列とに分類してもよい。これら要素の種類は、像域分離及び文字認識の処理において特定することができる。また、文字領域に対応する要素の場合、その領域に含まれる文字のサイズ、フォント、字詰めなどは、その要素に対するスタイル情報２０４の項目の一例である。スタイル情報２０４は、例えばＣＳＳ(Cascading Style Sheets)やＸＳＬ(eXtensible Stylesheet Language)などのスタイルシート言語で記述されたものでよい。
【００３８】
検索キー情報２０６は、文書構造定義を検索する際の検索条件の情報である。例えば、会社名の文字列（例えば「株式会社  ＡＡＡ」）、会社のロゴマークや社印の画像情報、又は文書の表題の文字列（例えば「見積書」、「領収書」）などが、検索キー情報２０６の一例である。１つの文書構造定義に対応する検索キー情報２０６は、会社名、ロゴマーク、表題などといった情報のうちのいずれかを含んでいればよい。また、文書構造定義ＤＢ１５０に登録された文書構造定義２０２のすべてについて検索キー情報２０６が登録されている必要は必ずしもない。
【００３９】
例えば見積書、請求書、領収書などという、使用目的から見た文書の種類（以下、特に断りがない場合、「文書の種類」又は「文書種類」は使用目的から見た種類のことを指す）により文書に記載される内容は変わる。また同じ見積書でも発行する人や会社が異なれば、その文書のレイアウトは変わってくる。このように、文書の発行者と文書種類に応じて文書のパターンは多種多様である。また、同じ発行者が発行した同じ文書種類の文書の中にも、その文書に含まれる要素や、それら各要素の表示上でのレイアウトが異なる様々なバージョンが存在する場合がある。これら多種多様な文書それぞれに対して文書構造定義が作成され、文書構造定義ＤＢ１５０に登録される。
【００４０】
次に、部分構造定義について説明する。部分構造定義は、例えば、住所欄、商品名を表示する商品名欄や、消費税等の税金を表示する税金欄など、文書の中で１つの役割をなす「部分」の構造を定義した情報である。「部分」は、例えば文書の１つの要素である。また、複数の要素の集まりを１つの部分として取り扱ってもよい。商品名、数量、単価、金額小計などといった商品に対する複数の要素により１つの商品についての商品欄が構成される場合、その商品欄を１つの部分として取り扱ってもよい。部分構造定義は、文書構造定義と同様、スキーマ言語によって記述することができる。部分構造定義の一例を図６に示す。この例は、見積書及び領収書などの商品欄の部分の構造定義をＷ３Ｃ  ＸＭＬ  ｓｃｈｅｍａで記述した例である。このような部分構造定義が部分構造定義ＤＢ１６０に登録される。
【００４１】
例えば、見積書の商品欄に含まれる項目群やそれら項目群の配列は、見積書の発行者によって異なったり、同じ発行者が発行した場合でも、発行の時期等によって異なったりする。部分構造定義ＤＢ１６０には、例えば、様々な発行者が様々な時期に発行した文書の商品欄の構造定義が登録される。例えば商品欄は、見積書や領収書など、様々な種類の文書に含まれるが、部分構造定義ＤＢ１６０は、商品欄の部分構造定義をその商品欄が属する文書の種類ごとに分類して保持してもよいし、文書の種類によらず一括して保持してもよい。
【００４２】
また、部分構造定義ＤＢ１６０には、図７に示すように、当該部分の種類を表す部分種類情報２１４を、上述のような部分構造定義２１２と対応づけて登録してもよい。部分の種類は、例えば「商品」など、その部分に対応する文書要素の名前で表すことができる。また、部分種類情報２１４の代わりに、又はそれに加えて、部分ごとの検索キー情報２１６を、部分構造定義２１２と対応づけて登録してもよい。検索キー情報２１６は、部分構造定義２１２の検索条件となるキーワード等の情報である。例えば、文書中で、部分構造定義２１２に対応する部分に現れる見出し等の文字列、或いはその部分に含まれる各要素（この要素は、構造化文書を構成する「要素」のことである）の要素名やデータ型が、検索キー情報２１６に含まれる。例えば、見積書の商品欄の場合、「商品名」又は「品名」等の文字列が検索キー情報の一例である。また、図４の例のように、商品欄が、商品名、数量、単価、消費税、金額（小計）のような複数の見出しを含む場合、それら複数の見出しのうちの１以上が検索キー情報２１６に含まれる。なお、部分構造定義２１２に対応づけて当該部分のスタイル情報を部分構造定義ＤＢ１６０に登録してもよい。
【００４３】
以上の例では、文書構造定義ＤＢ１５０及び部分構造定義ＤＢ１６０に、文書構造定義及び部分構造定義（及びそれに付随する検索キー情報やスタイル情報など）をそれぞれ登録したが、具体的な実装はこれに限るものではない。この代わりに、例えば、文書構造定義ＤＢ１５０及び部分構造定義ＤＢ１６０には、ネットワーク上に格納されている文書構造定義及び部分構造定義（及びそれに付随する情報）にアクセスするためのアクセス情報を登録しておいてもよい。例えば、文書の発行者が自分の管理するサーバに自分の発行した文書の文書構造定義を登録しておき、画像形成装置がそのサーバにアクセスして文書構造定義を取得するという枠組みがその一例である。アクセス情報は、例えばＵＲＬ(Uniform Resource Locator)やＵＲＮ(Uniform Resource Name)、ＵＲＩ(Uniform Resource Identifier)、ＵＵＩＤ(Universally Unique Identifier)などのうちのいずれかを用いればよい。
【００４４】
図８に、文書構造定義のアクセス情報が登録された文書構造定義ＤＢ１５０のデータ内容の一例を示す。この例では、文書を発行した会社の社名と文書の種類との組合せに対応づけて、文書構造定義のＵＲＬが登録されている。図７の例では、例えば「ＸＸＸＸＸＸ社」について、パソコンの見積書が２種類と、ＯＡ機器の見積書が２種類、登録されている。
【００４５】
図９に、部分構造定義のアクセス情報が登録された部分構造定義ＤＢ１６０のデータ内容の一例を示す。この例では、住所欄や商品欄、税金欄などといった「部分」の種類ごとに、その部分に該当する各部分構造定義のＵＲＬが列挙されている。
【００４６】
次に、図１０及び図１１を参照して、文書解析部１３０の詳細を説明する。図１０に示した例では、文書解析部１３０は文書構造探索部１３２，部分構造探索部１３４，構造編集部１３６及び構造登録部１３８を含む。
【００４７】
文書構造探索部１３２は、文書構造定義ＤＢ１５０に登録された文書構造定義の中から、画像読取部２２から入力された読取画像に最もよく適合する文書構造定義を探す（Ｓ１１）。
【００４８】
この探索処理において、文書構造探索部１３２は、例えば、文書の読取画像中に含まれる文書の見出し（表題）を抽出し、抽出した表題により文書構造定義の探索範囲を絞り込む。例えば、読取画像中の見出しの存在する可能性の高い範囲（例えば文書の上部）にある文字領域に対して文字認識を行い、この結果得られた文字列が文書の見出しとなり得る文字列であれば、その文書の見出しの文字列と判定する。文書の見出しとなり得る文字列のリストは、あらかじめ情報処理部１００に登録しておけばよい。そして、文書構造定義ＤＢ１５０に登録された文書構造定義２０２のうち、対応する検索キー情報２０６がその見出しの文字列（又はその類義語）を含む文書構造定義２０２を、読取画像の文書構造定義の候補として抽出する。
【００４９】
以上では、文書の見出しによる絞り込みの例を説明したが、見積書等の定型文書中にはその文書を発行した発行者の社名、住所、又はロゴマークが含まれる場合も多いので、それらのうちいずれかを用いて候補の絞込を行うこともできる。この場合、社名、住所等も検索キー情報２０６の項目として文書構造定義ＤＢ１５０に登録しておけばよい、また、見出し、社名、住所、ロゴマークのうちの２以上の組合せにより候補を絞り込んでもよい。なお、このような見出し、社名等の文字列は、文字認識部１２０により求められる。
【００５０】
以上のような絞込を行う代わりに、読取画像から抽出した見出しや社名等の各種検索キーに応じて、文書構造定義ＤＢ１５０中の各文書構造定義について、読取画像に対する適合の度合いを示すスコアを求めてもよい。例えば、見出しについてのスコアは、読取画像から抽出した見出しの文字列と意味的に近い見出し文字列を検索キー情報２０６に含んだ文書構造定義２０２ほど高い値となるようにつければよい。また例えば、見出し、社名などといった項目ごとにこのようなスコアを求め、それらを総合した値（例えばそれらの平均値）を総合的なスコアとし、その総合的なスコアが最も高い文書構造定義を、読取画像に対応する文書構造定義と判定してもよい。
【００５１】
また、文書構造探索部１３２は、そのような検索キー情報２０６を用いた探索の代わりに、或いはそのような探索に加えて、文書要素群のレイアウトに基づく探索を行ってもよい。レイアウトに基づく探索は、例えば、像域分離回路２８の像域分離結果を利用することができる。例えば、像域分離により求められた文字領域、連続調画像領域等のレイアウトと、文書構造定義ＤＢ１５０内の各文書構造定義２０２に対応するスタイル情報２０４が示すレイアウトとを比較することで、読取画像とそれら各文書構造定義２０２とのレイアウトに関する類似度合いを求めることができる。類似度合いは、例えば、読取画像のレイアウトにおける各領域を、スタイル情報２０４が示すレイアウトにおいてその領域と同じ種類（文字、連続調画像、又はグラフィック図形など）の領域のうち最も近い領域と重複なく対応付け、それら対応付けられた領域同士の位置やサイズの差を総合した値（例えばそれら差の自乗和など）から類似度合いのスコアを求めればよい。例えば、対応づけられた領域同士の差が小さいほど類似度合いのスコアは高くなるような関数を用いればよい。
【００５２】
また、レイアウトの類似度合いを求める際に、文字領域、連続調画像領域などといった画像の種類だけでなく、各領域のデータ型の適合の度合いを考慮してもよい。例えば、読取領域の各文字領域内の文字列のデータ型は、文字認識部１２０による文字認識により判明する。文字認識部１２０は、例えば、単純な文字認識により得られた文字列を、金額特有の表記パターン、日付の文字列パターンや、住所特有の表記パターンなどと照合することにより、その文字列が金額、日付、住所などといったデータ型のいずれに該当するかを判定することができる。一方、文書構造定義２０２には各要素のデータ型が記述されている。したがって、例えば、読取画像の領域ごとに、その領域のデータ型と、文書構造定義２０２内の要素のうちその領域に対応する要素のデータ型とを求め、データ型が適合する領域又は要素の数、又はその数の文書構造定義の全要素数に対する割合に基づき、レイアウトの類似度合いのスコアを求めることができる。読取画像の領域に対応する文書構造定義２０２の要素は、例えば、その文書構造定義２０２に対応するスタイル情報２０４が示すレイアウトにおいて、その領域に最も近い要素である。
【００５３】
また、レイアウトの類似度合いを求める際に、読取画像の各領域に含まれる見出し文字列を考慮してもよい。例えば、商品欄の場合、「商品名」や「数量」などといった見出し文字列が含まれる。文書構造探索部１３２は、読取画像のある領域の文字認識結果の中にそのような見出しに該当する文字列があれば、その文字列と、文書構造定義２０２中の要素のうちその領域に対応する要素に含まれる見出し文字列との類似度合いを求め、その類似度合いに基づき、レイアウトの類似度合いのスコアを求めることができる。
【００５４】
以上、レイアウトの類似度合いのスコアの求め方をいくつか例示した。このような手法で求めたスコアが最も高い文書構造定義２０２を、読取画像に対する適合度が最も高い文書構造定義２０２と判定してもよい。
【００５５】
なお、レイアウトの類似度合いを求めるにあたり、以上に例示した領域同士の位置やサイズの類似度、データ型の適合度、及び見出し文字列の類似度のうちの２以上を総合してもよい。
【００５６】
また、文書の見出しの類似度合いと、レイアウトの類似度合いとを総合したスコアを求め、そのスコアが最も高い文書構造定義２０２を、読取画像に対する適合度が最も高い文書構造定義２０２と判定してもよい。また、文書の見出しでもレイアウトでもない他の観点の類似度合いを用いてもよい。
【００５７】
文書構造探索部１３２は、以上のようにして求めた読取画像に対する適合度が最も高い文書構造定義（「最適文書構造定義」と呼ぶ）に対し、読取画像から抽出した各領域（要素）の値を当てはめていく。ここで、読取画像に含まれる情報のすべてを構造化文書に反映させる必要がない場合もある。例えば、図４に例示した見積書において社印の画像は、構造化文書に組み込まなくてよい、等といった場合がその一例である。したがって、この当てはめ処理では、最適文書構造定義の要素ごとに、その要素に対して読取画像における対応領域の値を当てはめていけばよい。要素に対応する領域は、その要素に対して所定距離以内の領域を選べばよい。そのような領域の値のデータ型が、その要素のデータ型に適合しない場合は、その要素には値の当てはめは行わない。
【００５８】
なお、以上の処理において、適合度に対して閾値を設定しておき、文書構造定義２０２群のうちの最高の適合がその閾値以上の場合にのみ、その最高値に対応する文書構造定義を最適な文書構造定義として採用するようにしてもよい。この場合、最高値がその閾値より低い場合には、読取画像に適合する文書構造定義がないことになる（Ｓ１２の判定結果がＮｏ）。この場合、例えばユーザに対してその旨を通知してもよい。この通知は、例えば画像形成装置の操作パネル１８に表示してもよい。また、この通知の代わりに、又はこの通知に加えて、ユーザに対して読取画像に対応する文書構造定義の編集依頼を行ってもよい（Ｓ１３）。この編集依頼では、例えば操作パネルに読取画像と文書構造定義の編集画面を表示してもよい。
【００５９】
その依頼に応じてユーザが文書構造定義を編集すると、構造編集部１３６は、その編集結果の文書構造定義に対して読取画像から抽出した各値を当てはめることで、読取画像に対する構造化文書を作成してもよい。また編集された文書構造定義を、文書構造定義ＤＢ１５０に登録してもよい。
【００６０】
文書構造探索部１３２による当てはめ処理の結果、最適文書構造定義の要素の中に値が当てはめられない要素が出てくる場合がある。読取画像に完全に適合する文書構造定義が文書構造定義ＤＢ１５０に登録されていない場合、このような事態が生じ得る。このように値が当てはめられない要素を不適合要素と呼ぶことにする。不適合要素が残ったまま構造化文書を作成すると、作成された構造化文書が不十分なものとなってしまう場合がある。
【００６１】
そこで文書構造探索部１３２は、そのような不適合要素が残るか否かを判定する（Ｓ１４）。不適合要素が残らない場合は、最適文書構造定義におけるすべての要素に対し読取画像から抽出した値が当てはめられたということである。この場合、構造編集部１３６がその当てはめの結果に基づき構造化文書を作成し（Ｓ１８）、その構造化文書を文書登録部１４０が文書ＤＢ１７０に登録する。
【００６２】
不適合要素が残る場合、部分構造探索部１３４が、その不適合要素の種類に該当する部品構造定義を部分構造定義ＤＢ１６０から検索する（Ｓ１５）。ここでは、例えば、その要素の要素名（又はそれに対応づけられた種類を表す表現）を部分種類情報２１４の値として持つ部分構造定義２１２を検索すればよい。またこの代わりに、その不適合要素に含まれる各要素の要素名のうちの所定割合以上の要素名を持つ要素を含んだ部分構造定義２１２を検索してもよい。
【００６３】
部分構造検索部１３４は、このようにして検索された各部分構造定義２１２に対し、前記読取画像のうちの前記最適文書構造定義に当てはめることができなかった部分（不適合部分と呼ぶ）の当てはめを試みる。この当てはめは、最適文書構造定義を求める場合の処理と同様でよい。
【００６４】
すなわち、最適文書構造定義を求める際に、読取画像に対するレイアウトの類似度合いにより各文書構造定義を評価したが、部分構造定義はいわば文書構造定義の一部分を取り出したものであり、文書構造定義２０２と同様の構造・内容を持っているので、レイアウトの類似度合いに基づく評価が可能である。例えば、不適合部分に含まれる各領域から認識された文字列の中から見出しに該当する文字列を見つけ、それら各領域の見出しに該当する文字列と、部分構造定義２１２の各要素の見出し文字列との類似度合いのスコアを求めればよい。類似度合いの値は、例えば、部分構造定義２１２に含まれる各要素の見出し文字列のうち、不適合部分の中から見つかった見出し文字列と同一又は類似の範囲内にあるものの割合に基づいて算出すればよい。また、このとき、部分構造定義２１２に付随するスタイル情報（例えば、要素間の位置関係や、各要素のサイズ等の情報を含む）を考慮してもよい。この場合、例えば、部分構造定義２１２における見出しを持つ要素同士の位置関係と、それら各要素の見出し文字列に同一又は類似の文字列を持つ不適合部分の各領域の位置関係と、の類似度合いをスコアに反映させればよい。
【００６５】
このようにして求められたスコアが最も高い部分構造定義２１２を、最適部分構造定義として採用すればよい。なお、類似度合いのスコアに閾値を設定しておき、部分構造探索部１３４は、部分構造定義２１２群のうちの最高のスコアとその閾値との比較により、最適部分構造定義が見つかったか否かを判定すればよい（Ｓ１５）。そして、閾値以上であれば、見つかった部分構造定義を構造編集部１３６に渡す。
【００６６】
構造編集部１３６は、文書構造探索部１３２が求めた最適文書構造定義と、部分構造探索部１３４が求めた最適部分構造定義とに基づき、読取画像に対応する構造化文書を作成する（Ｓ１８）。例えば、最適文書構造定義に対する読取画像の各領域の値の当てはめ結果（不適合要素・不適合部分は除く）と、最適部分構造定義に対する不適合部分の値の当てはめ結果とを組み合わせることで、読取画像に対応する構造化文書を生成すればよい。生成された構造化文書は、文書登録部１４０（図２参照）により文書ＤＢ１７０に登録される。
【００６７】
また、構造編集部１３６は、最適文書構造定義のうちの不適合要素以外の部分と、最適部分構造定義とを組み合わせることで、その読取画像に対応する文書構造定義を生成してもよい。この場合、最適文書構造定義のうちの不適合要素が、最適部分構造定義に置き換えられることになる。
【００６８】
構造編集部１３６が生成した文書構造定義は、構造登録部１３８により文書構造定義ＤＢ１５０に登録してもよい。この場合、読取画像の解析の際に求めた各領域のレイアウトや文字サイズ等の情報をスタイル情報として、その文書構造定義に対応づけて登録することもできる。また、読取画像の解析の際に各領域から求めた文書の見出しや各欄の見出しの文字列を検索キー情報として、その文書構造定義に対応づけて登録してもよい。
【００６９】
ステップＳ１６で、最高のスコアが閾値より低かった（即ち類似度合いが低い）場合には、最適部分構造定義がないとして、例えばユーザに対してその旨を通知してもよい。また、ユーザに対してその不適合部分に対する部分構造定義の編集依頼を行ってもよい（Ｓ１７）。その依頼に応じてユーザが部分構造定義を編集すると、構造編集部１３６は、その編集結果の部分構造定義に対して読取画像の不適合部分から抽出した各値を当てはめ、その当てはめ結果と、最適文書構造定義に対する読取画像の当てはめ結果とを組み合わせることで、読取画像に対する構造化文書を作成してもよい。また部分構造定義の編集結果を最適文書構造定義と組み合わせることで、読取画像に対応する文書構造定義を作成し、文書構造定義ＤＢ１５０に登録してもよい。
【００７０】
以上の例では、最適文書構造定義に規定される要素のうち、読取画像から求めた値が当てはまらなかった要素はすべて不適合要素とし、その不適合要素に対応する部分構造定義のうち、その読取画像における不適合部分に当てはまるものを最適部分構造定義として求めた。しかし、文書構造定義に規定される要素すべてが、文書ＤＢ１７０に蓄積する構造化文書にとって必須とは限らない。蓄積する文書にとって必須でない要素が仮に読取画像に適合しなかった場合に、その要素の値は未定のまま構造化文書を作成して蓄積しても、それ自体は問題とならない。そこで、文書構造定義の各要素に対し、その要素の値が必須であるのか否かを示す属性を付加しておき、部分構造探索部１３４は、不適合要素のうちその属性が「必須」である要素についてのみ、その要素に置き換えられる最適部分構造定義を求めるようにしてもよい。
【００７１】
以上に説明した実施形態の情報処理部１００に対し、例えば図１２に例示した見積書画像４００が入力されたとする。このとき、文書構造探索部１３２が見つけた最適文書構造定義が、図４の見積書に対応する図３のようなデータであったとする。このケースでは、見積書画像４００のうち消費税の欄４１０が、図４の見積書の税の記載様式と合致しない。この場合、文書構造探索部１３２は、例えば最適文書構造定義（図３）のうち、商品欄に対応する要素３１０を不適合要素として認識する。そして、部分構造探索部１３４の処理により、商品欄に対応する１以上の部分構造定義の中から、図１２の消費税の記載様式に合致する図６に示した部分構造定義が検索されたとする。この場合、構造編集部１３６は、図３の文書構造定義と図６の部分構造定義とを合成して、図１３に示すような文書構造定義を生成する。この例では、図３の文書構造定義の商品欄の要素３１０が、図６の部分構造定義に置き換えられている。
【００７２】
以上、実施形態を説明した。以上の実施形態では、紙の文書を読み取ってその読み取り結果の画像から構造化文書を作成したが、本システムは、外部から入力された文書画像に対しても同様の処理を行うことができる。
【００７３】
また、以上の例では、読取画像に対する適合度が最も高い文書構造定義を最適文書構造定義として求めたが、これは一例に過ぎない。この代わりに、例えば、適合度に基づき複数の文書構造定義を適合文書構造定義として求めてもよい。例えば、適合度が上位所定数の文書構造定義、又は、適合度が所定の閾値以上となる文書構造定義を、適合文書構造定義として求めるなどである。この場合、それら適合文書構造定義ごとに、その適合文書構造定義に適合しない不適合部分を特定し、不適合部分に対する最適部分構造定義を特定すればよい。この場合、読取画像に対して複数の解析結果が求められることになるので、文書解析部１３０は、例えば、それら複数の解析結果を操作パネル１８の表示部に表示し、ユーザにその中から最終結果を選択させてもよい。また、複数の解析結果のそれぞれについて、当該解析結果を構成する適合文書構造定義及び最適部分構造定義のそれぞれの適合度に基づき当該解析結果の適合度を計算し、計算した適合度が最も高い解析結果をユーザに提示してもよい。
【００７４】
以上では、文書構造定義について、「最適」なもののみでなく適合度が高いものを抽出してよいことを示したが、不適合部分に対応する部分構造定義についても同様である。
【００７５】
また、上記実施形態のシステムは、画像形成装置をベースとしたものであったが、画像形成装置の代わりに、情報処理部１００の機能を表すプログラムを汎用のコンピュータにインストールしても、同様の処理が行える。この場合、プログラムは、可搬型の記録媒体又はネットワーク経由でコンピュータにインストールすることができる。
【図面の簡単な説明】
【００７６】
【図１】実施形態の画像形成装置のハードウエア構成の一例を示す図である。
【図２】実施形態の装置の一部の構成の例を示す図である。
【図３】文書構造定義の一例を示す図である。
【図４】見積書の画像の一例を示す図である。
【図５】文書構造定義ＤＢに登録されるデータの構造の例を示す図である。
【図６】部分構造定義の一例を示す図である。
【図７】部分構造定義ＤＢに登録されるデータの構造の例を示す図である。
【図８】文書構造定義ＤＢに登録されるデータの別の例を示す図である。
【図９】部分構造定義ＤＢに登録されるデータの別の例を示す図である。
【図１０】文書解析部の構成の例を示す図である。
【図１１】実施形態の処理手順の一例を示す図である。
【図１２】見積書の画像の別の例を示す図である。
【図１３】文書構造定義の別の例を示す図である。
【符号の説明】
【００７７】
２２  画像読取装置、１００  情報処理部、１２０  文字認識部、１３０  文書解析部、１３２  文書構造探索部、１３４  部分構造探索部、１３６  構造編集部、１３８  構造登録部、１４０  文書登録部、１５０  文書構造定義ＤＢ、１６０  部分構造定義ＤＢ、１７０  文書ＤＢ。
【図１】
2008257590.tif 000003
【図２】
2008257590.tif 000004
【図３】
2008257590.tif 000005
【図４】
2008257590.tif 000006
【図５】
2008257590.tif 000007
【図６】
2008257590.tif 000008
【図７】
2008257590.tif 000009
【図８】
2008257590.tif 000010
【図９】
2008257590.tif 000011
【図１０】
2008257590.tif 000012
【図１１】
2008257590.tif 000013
【図１２】
2008257590.tif 000014
【図１３】
2008257590.tif 000015