(57)【要約】  文書処理装置２００は、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、を有する。文書処理装置２００は、文書内のある文字列または前記ある文字列を含む領域から右方向および下方向に向かって、前記ある文字列と前記右方向に存在する文字列とを連結するとともに、前記ある文字列と前記下方向に存在する文字列とを連結することにより、多重仮説文書構造ネットワークを生成する。
2014170965.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、を有するコンピュータが実行する文書処理方法であって、
前記プロセッサは、
文書内の文字列群の中のある文字列または前記ある文字列を含む領域から右方向および下方向に向かって、前記ある文字列と前記右方向に存在する文字列とを連結するとともに、前記ある文字列と前記下方向に存在する文字列とを連結することにより、多重仮説文書構造ネットワークを生成することを特徴とする文書処理方法。
【請求項２】
前記プロセッサは、
前記文字列群を、表の項目名を階層化した階層付項目名列を記憶する辞書情報内の項目名に該当する文字列である所望項目名文字列と該当しない文字列である非所望項目名文字列とに分類する分類手順と、
前記生成された多重仮説文書構造ネットワークにおいて、前記分類手順によって分類された前記非所望項目名文字列から上位階層に向かって左方向に前記所望項目名文字列を探索するとともに、前記上位階層に向かって上方向に前記所望項目名文字列を探索することにより、前記左方向の探索結果と前記上方向の探索結果とを結合した項目データ対応列を生成する項目データ対応列生成手順と、
前記階層付項目名列と前記項目データ対応列生成手順によって生成された項目データ対応列との関連性の高さを示す信頼度に応じて、前記階層付項目名列と、前記項目データ対応列とを関連付ける関連付け手順と、
前記関連付け手順によって関連付けられた前記階層付項目名列および前記項目データ対応列と、前記項目データ対応列の中にある非所望項目名文字列とを出力する出力手順と、
を実行することを特徴とする請求項１に記載の文書処理方法。
【請求項３】
前記関連付け手順は、前記階層付項目名列の項目名と前記項目データ対応列の所望項目名文字列との一致度に基づいて前記信頼度を算出し、算出した前記信頼度に応じて、前記階層付項目名列と、前記項目データ対応列の生成元である前記非所望項目名文字列とを関連付けることを特徴とする請求項２に記載の文書処理方法。
【請求項４】
前記関連付け手順は、さらに、前記階層付項目名列における項目名の配列と前記項目データ対応列における所望項目名文字列の配列とに基づいて前記信頼度を算出し、算出した前記信頼度に応じて、前記階層付項目名列と、前記項目データ対応列の生成元である前記非所望項目名文字列とを関連付けることを特徴とする請求項３に記載の文書処理方法。
【請求項５】
前記関連付け手順は、さらに、前記階層付項目名列のうち前記左方向における最下層の項目名と前記上方向における最下層の項目名と、前記項目データ対応列のうち前記左方向における最下層の所望項目名文字列と前記上方向における最下層の所望項目名文字列と、の一致度に基づいて前記信頼度を算出し、算出した前記信頼度に応じて、前記階層付項目名列と、前記項目データ対応列の生成元である前記非所望項目名文字列とを関連付けることを特徴とする請求項３に記載の文書処理方法。
【請求項６】
前記辞書情報は、さらに単位を示す単位文字列を含み、
前記プロセッサは、
前記辞書情報を参照して、前記非所望項目名文字列が前記単位文字列に該当するか否かを判別する判別手順を実行し、
前記関連付け手順は、さらに、前記判別手順によって判別された判別結果に基づいて前記信頼度を算出し、算出した前記信頼度に応じて、前記階層付項目名列と、前記項目データ対応列の生成元である前記非所望項目名文字列とを関連付けることを特徴とする請求項３に記載の文書処理方法。
【請求項７】
前記辞書情報は、さらに単位を指示する項目名である単位指示文字列を含み、
前記プロセッサは、
前記辞書情報を参照して、前記階層付項目名列のうち前記左方向における最下層の項目名または前記上方向における最下層の項目名のうち少なくともいずれか一方の項目名が、前記単位指示文字列に該当するか否かを判別する判別手順を実行し、
前記関連付け手順は、さらに、前記判別手順によって判別された判別結果に基づいて前記信頼度を算出し、算出した前記信頼度に応じて、前記階層付項目名列と、前記項目データ対応列の生成元である前記非所望項目名文字列とを関連付けることを特徴とする請求項３に記載の文書処理方法。
【請求項８】
前記出力手順は、前記階層付項目名列に関連付けられた非所望項目名文字列ごとに前記信頼度の高い順に表示する画面を出力することを特徴とする請求項３に記載の文書処理方法。
【請求項９】
前記出力手順は、前記信頼度の高い順に表示する画面上でいずれかの非所望項目名文字列が選択された場合、選択された非所望項目名文字列についての前記左方向の探索結果と前記下方向の探索結果とを前記文書上に表示する画面を出力することを特徴とする請求項８に記載の文書処理方法。
【請求項１０】
プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、を有する文書処理装置であって、
前記プロセッサは、
文書内の文字列群のある文字列または前記ある文字列を含む領域から右方向および下方向に向かって、前記ある文字列と前記右方向に存在する文字列とを連結するとともに、前記ある文字列と前記下方向に存在する文字列とを連結することにより、多重仮説文書構造ネットワークを生成することを特徴とする文書処理装置。
【請求項１１】
プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、を有するコンピュータに、
文書内の文字列群のある文字列または前記ある文字列を含む領域から右方向および下方向に向かって、前記ある文字列と前記右方向に存在する文字列とを連結するとともに、前記ある文字列と前記下方向に存在する文字列とを連結することにより、多重仮説文書構造ネットワークを生成させることを特徴とする文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書を処理する文書処理方法、文書処理装置および文書処理プログラムに関する。
【背景技術】
【０００２】
近年、文書認識技術を用いて仕様書等の様々な非定型文書からデータを抽出したいというニーズがある。非定型文書は、様々な会社で独自に作成した文書であり、様々な内容が数多く記載されるため、金融向けの非定型帳票よりも複雑で多様な書式となっていることが多い。そのため、容易な定義指定で複雑な書式からデータを抽出する方法が必要となる。【０００３】
特許文献１の文書処理装置は、文書画像から表領域に相当する部分画像を抽出し、表領域に含まれるセルの構造を表すセル特徴を抽出し、部分画像に文字認識処理を施すことにより、セルに対応する表要素を抽出する。そして、特許文献１の文書処理装置は、セル特徴を用い、複数個のセルが一つのセルに簡略化された簡略セルを検出し、簡略セルの表要素を別のセルに分配して挿入するとともに、簡略セルを削除する。【０００４】
特許文献２は、項目名辞書を用いてデータを抽出する技術である。また、特許文献３は、階層化された項目名と配置関係の辞書を用いてデータを抽出する技術である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−９９４８０号公報
【特許文献２】特開２００８−２０４２２６号公報
【特許文献３】特開２００８−３３８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複雑で多様な構造を持つ文書は、そのレイアウト構造の解釈に曖昧性が生じるため、項目とデータの対応関係を特定することが難しい。特許文献１では、レイアウトの構造と事前定義の配置パターンを用いて解析するにすぎないため、項目とデータの対応関係を特定することが難しいという問題がある。特許文献２は、項目名辞書を用いてデータを抽出するが、項目名の階層関係の情報を用いていないため、文書のレイアウト構造が限定されてしまい、多様な構造を網羅することができないという問題がある。【０００７】
また、特許文献３で、文書内の複雑で多様な構造を特定するためには、項目間の配置関係を事前に定義しておく必要があり、多くの種類の非定型文書の辞書を定義するのに大きなコストがかかるという問題がある。複雑で多様なレイアウト構造は、その解釈に曖昧性があるため対応できない。また、事前定義のコストが大きく、専門知識がないと定義することが難しく、一般ユーザが自由に欲しい情報取得のための定義をすることが困難である。【０００８】
本発明は、事前定義のコストを少なく、文書の多様な構造を表現することができることを目的とする。
【課題を解決するための手段】
【０００９】
本願において開示される発明の一側面となる文書処理方法、文書処理装置および文書処理プログラムは、プログラムを実行するプロセッサと、前記プロセッサが実行するプログラムを格納するメモリと、を有するコンピュータが実行する文書処理方法、文書処理装置および文書処理プログラムであって、前記プロセッサは、文書内のある文字列または前記ある文字列を含む領域から右方向および下方向に向かって、前記ある文字列と前記右方向に存在する文字列とを連結するとともに、前記ある文字列と前記下方向に存在する文字列とを連結することにより、多重仮説文書構造ネットワークを生成することを特徴とする。
【発明の効果】
【００１０】
本発明の代表的な実施の形態によれば、事前定義のコストを少なく、文書の多様な構造を表現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例にかかるデータ抽出例を示す説明図である。
【図２】文書処理装置のハードウェア構成例を示すブロック図である。
【図３】図１に示した辞書ＤＢの記憶内容例を示す説明図である。
【図４】階層付項目名辞書の記憶内容例を示す説明図である。
【図５】文書処理装置による文書処理手順例を示すフローチャートである。
【図６】文書構造ネットワーク生成処理例を示す説明図である。
【図７】図５に示した文書構造ネットワーク処理（ステップＳ５０４）の詳細な処理手順例を示すフローチャートである。
【図８】項目データ対応列生成処理例を示す説明図である。
【図９】図８に示した例における探索結果を示す説明図である。
【図１０】図５に示した項目データ対応列生成処理（ステップＳ５０５）の詳細な処理手順例を示すフローチャートである。
【図１１】図１０に示した探索処理（ステップＳ１００５）の詳細な処理手順例を示すフローチャートである。
【図１２】探索結果と選択した階層付項目名列との照合例１を示す説明図である。
【図１３】探索結果と選択した階層付項目名列との照合例２を示す説明図である。
【図１４】非所望項目名文字列が単位文字列である場合の照合例を示す説明図である。
【図１５】非所望項目名文字列が単位指示文字列である場合の照合例を示す説明図である。
【図１６】非所望項目名文字列候補ランキング処理（ステップＳ５０６）の詳細な処理手順例を示すフローチャートである。
【図１７】図１６のステップＳ１６０６における抽出結果の一例を示す説明図である。
【図１８】データ選択箇所表示画面例１を示す説明図である。
【図１９】データ選択箇所表示画面例２を示す説明図である。
【図２０】文書処理装置の機能的構成例を示すブロック図である。
【図２１】枠がない文書についてのレイアウト解析処理を示す説明図である。
【図２２】図２１に示したレイアウト解析結果からの文書構造ネットワークの生成例を示す説明図である。
【図２３】探索例を示す説明図である。
【図２４】レイアウト解析結果の統合例を示す説明図である。
【図２５】枠端の整列性解析を用いたネットワーク生成を示す説明図である。
【図２６】連続する複数の枠内の文字列とのリンク生成を示す説明図である。
【図２７】項目データ対応列候補生成処理例を示す説明図である。
【図２８】図２７（ａ）の正解となる項目データ対応列を示す説明図である。
【図２９】図２７（ｂ）の正解となる項目データ対応列を示す説明図である。
【図３０】各エントリに対して複数の項目データ対応付け候補がランキングされた結果のイメージ図である。
【発明を実施するための形態】
【００１２】
本発明は、可能性のある複数の文書構造を表現するネットワーク（以下、「多重仮説文書構造ネットワーク」という）を生成し、多重仮説文書構造ネットワークからコンテンツの知識を用いて、文書構造を絞り込むことで文書構造の曖昧性を低減させながら、データを抽出する。
【００１３】
多重仮説文書構造ネットワークは、文字列をノードとして論理関係のあるノード間にエッジを形成する有効グラフである。枠の端位置の整列性解析及び枠がない場合は文字列位置の整列性解析により生成される。コンテンツの知識には、項目の階層構造とデータの種類を記した階層付項目名辞書、単位文字列を記した単位文字列辞書、単位を指示する文字列を記した単位指示文字列辞書の３種類が用いられる。データの種類は、文字列であるか数字列であるか、数字と文字列の組み合わせであるか、記号であるかによって指定される。データの種類は必ずしも指定する必要はない。
【００１４】
これにより、文書認識技術に関する専門知識がないユーザでも定義することが可能である。多重仮説文書構造ネットワークとコンテンツの知識を照合することによって、可能性のある複数の文書構造を絞り込むことができる。そのため、多様な文書からのデータ抽出を高精度に実現することができる。このように、事前に文書のネットワーク構造の定義を最小限にとどめて、非定型文書からデータを抽出することができる。特に、表形式の非定型文書には行方向の項目と列方向の項目が存在するため、行方向の項目と列方向の項目とが交差する位置のデータを抽出することができる。このように、入力される文書の構造について制約がないため、データ抽出の対象となる文書が増加し、多様な文書からのデータ抽出を高精度に実現することができ、適用対象拡大を図ることができる。以下、添付図面を用いて詳細に説明する。
【００１５】
＜データ抽出例＞
図１は、本発明の実施例にかかるデータ抽出例を示す説明図である。文書処理装置は、入力文書１１についてレイアウト解析をおこなう。入力文書１１は、画像データやスプレッドシート、文書ファイルなどの電子データである。紙媒体の場合は、スキャナで読み込むことにより電子データ化される。文書処理装置は、レイアウト解析結果から入力文書１１内の文字列の階層構造を示す多重仮説文書構造ネットワークを生成する。図１では、多重仮説文書構造ネットワーク１２は１つ生成されているが、複数生成されてもよい。
【００１６】
また、文書処理装置は、入力文書１１内の文字列と辞書ＤＢ１３（Ｄａｔａ  Ｂａｓｅ）内の文字列とを照合する。照合には、たとえば、レーベンシュタイン距離をベースに文字列長を考慮した評価関数が用いられる。文書内の文字が文字認識結果により得られたが文字認識に誤りがあった場合にも照合ができる。そして、文書処理装置は、照合結果と文書構造ネットワーク１２とを組み合わせることにより、抽出結果１４を得る。たとえば、抽出結果１４の８番目のエントリでは、「機器Ｘ」、「温度」、「種類Ｂ」、「Ｗａｔｅｒ」に該当するデータ候補として、「Ｄ２２」、「Ｄ２１」、「Ｄ２３」、…が得られる。
【００１７】
また、文書処理装置は、データ候補ごとに信頼度を算出し、信頼度が高い順にランキングする。抽出結果１４の８番目のエントリでは、信頼度が高い順に「Ｄ２２」、「Ｄ２１」、「Ｄ２３」が表示される。したがって、文書処理装置は、入力文書１１に対応する文書構造ネットワークの定義がなくても、文書構造ネットワーク１２を生成することにより、抽出結果１４のエントリごとにどのデータが尤もらしいか評価することができる。
【００１８】
＜文書処理装置のハードウェア構成例＞
図２は、文書処理装置のハードウェア構成例を示すブロック図である。文書処理装置２００は、通信装置２０１、画像取得装置２０２、表示装置２０３、補助記憶装置２０４、メモリ２０５、プロセッサ２０６および入力装置２０７を有し、これらのデバイスはＰＣＩバスなどの通信線で接続されている。
【００１９】
通信装置２０１は、文書処理装置２００をネットワークに接続するためのネットワークインターフェイスである。画像取得装置２０２は、データが抽出される文書のイメージを取得するための装置であり、例えば、スキャナ、複合機、ＯＣＲ、デジタルカメラなどを用いることができる。なお、画像取得装置２０２は、外部接続されたスキャナが取得した文書の画像データが入力されるインターフェイスでもよい。
【００２０】
表示装置２０３は、プログラムの実行結果を表示するディスプレイであり、例えば、液晶表示装置を用いることができる。補助記憶装置２０４は、磁気ディスクドライブ、フラッシュメモリ（ＳＳＤ）などの不揮発性記憶装置であり、プロセッサ２０６が実行するプログラム及びプログラム実行時に使用されるデータを格納する。メモリ２０５は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶装置であり、オペレーティングシステムおよびアプリケーションプログラムを格納する。
【００２１】
プロセッサ２０６は、メモリ２０５に格納されたプログラムを実行する中央演算装置である。プロセッサ２０６が、オペレーティングシステムを実行することによって、文書処理装置２００の基本機能が実現され、アプリケーションプログラムを実行することによって、文書処理装置２００が提供する機能が実現される。入力装置２０７は、キーボード、マウスなどのユーザインターフェイスである。
【００２２】
プロセッサ２０６によって実行されるプログラムは、不揮発性の記憶媒体またはネットワークを介して計算機に提供され、非一時的記憶媒体である補助記憶装置２０４に格納される。すなわち、プロセッサ２０６が実行するプログラムは、補助記憶装置２０４から読み出されて、メモリ２０５にロードされて、プロセッサ２０６によって実行される。ＣＰＵ２０６に入力される文書は、画像取得装置２０２又は通信装置２０１から入力されたものでも、補助記憶装置２０４に記憶されたものでもよい。代表的な例として、ディスプレイおよび複合機が接続されたパーソナルコンピュータがある。
【００２３】
文書処理装置２００は、データ抽出処理の抽出結果１４を表示装置２０３に出力する。また、文書処理装置２００は、データ抽出処理の抽出結果１４を通信装置２０１を経由して外部に出力してもよく、文書処理装置２００で実行される他のプログラムが使用してもよい。
【００２４】
＜辞書ＤＢ１３の記憶内容＞
図３は、図１に示した辞書ＤＢ１３の記憶内容例を示す説明図である。辞書ＤＢ１３は、図２に示したメモリ２０５や補助記憶装置２０６に記憶されるデータベースである。文書処理装置２００は、通信装置２０１を介して外部サーバ内の辞書ＤＢ１３を参照可能としてもよい。辞書ＤＢ１３は、単位文字列辞書３０１と、単位指示文字列辞書３０２と、階層付項目名辞書３０３と、を有する。
【００２５】
単位文字列辞書３０１とは、単位文字列を記憶する辞書データである。単位文字列とは、「ｋｇ」、「ｃｍ」などの単位を示す文字列である。単位文字列をデータとして抽出する可能性を低下させることができる。
【００２６】
単位指示文字列辞書３０２とは、単位指示文字列を記憶する辞書データである。単位指示文字列とは、単位を指示する文字列である。単位指示文字列辞書３０２は、たとえば、「ＵＮＩＴ」や「単位」といった文字列を単位指示文字列として記憶する。単位指示文字列が指し示す非所望項目名文字列は、単位文字列である可能性がある。単位指示文字列辞書３０２を用いることにより、単位を指し示す可能性のある非所望項目名文字列かどうかを判定することができる。そのため単位文字列をデータとして抽出する可能性を低下させることができる。
【００２７】
階層付項目名辞書３０３とは、階層付項目名列を記憶する辞書である。階層付項目名列とは、階層が付与された項目名とデータの種類を合わせたデータである。階層とは、項目名の上下関係を示す情報である。本例では、階層番号が小さいほど上位階層とする。項目名とは、項目となり得る文字列である。図１の抽出結果１４のエントリｅ１〜ｅ８内の階層１〜階層４とデータ種類と単位が指し示す文字列の集合が、階層付項目名列である。階層付項目名辞書３０３を用いることにより、事前に文書１１の多重仮説文書構造ネットワーク１２を定義することなく、階層付項目名列ごとにとり得るデータ候補をランク付けすることができる。
【００２８】
図４は、階層付項目名辞書３０３の記憶内容例を示す説明図である。階層付項目名辞書３０３は、左端のエントリ番号項目と、項目名と、データ種類と、単位と、を有し、エントリ番号ごとにエントリを構成する。エントリ番号は、階層付項目名列を一意に特定する識別情報である。以降、エントリ番号＃（＃は１以上の整数）のエントリを「エントリｅ＃」と称す。
【００２９】
階層項目は、階層ごとの項目名を記憶する。たとえば、エントリｅ１では、階層項目は、階層１の項目名として「機器Ｘ」、階層２の項目名として「圧力」、階層３の項目名として「種類Ａ」、階層４の項目名として「Ｏｉｌ」を記憶する。
【００３０】
データ種類は、階層付項目名列に対応するデータの種類を示す情報を記憶する。データ種類には、たとえば、数字、文字、記号、文字および数字（図４中、「文数」と表記）がある。単位項目は、階層付項目名列に対応するデータの単位を記憶する。単位項目は、単位を示す文字列を記憶する。たとえば、エントリ１では、単位を示す文字列として「Ｐ」を記憶する。
【００３１】
＜データ抽出処理手順＞
図５は、文書処理装置２００によるデータ抽出処理手順例を示すフローチャートである。まず、文書処理装置２００は、文書取得処理を実行する（ステップＳ５０１）。具体的には、たとえば、文書処理装置２００は、画像データである電子文書やスプレッドシート、文書ファイルなどの電子文書を、補助記憶装置２０６から読み出したり、通信装置２０１を介して外部から受信する。また、文書処理装置２００は、画像取得装置２０２により、紙媒体の文書をスキャナで読み込み画像データ化することとしてもよい。画像データ化された文書１１については、文書処理装置２００は、ＯＣＲにより文字認識をしてテキストデータを取得することとしてもよい。
【００３２】
つぎに、文書処理装置２００は、レイアウト解析処理を実行する（ステップＳ５０２）。レイアウト解析処理（ステップＳ５０２）では、ステップＳ５０１で取得された文書１１のレイアウトを解析する。文書処理装置２００は、文字の位置情報と罫線の位置情報を用いて枠の抽出と文字行の抽出を行う。これにより取得した文書１１のレイアウトが特定される。
【００３３】
つぎに、文書処理装置２００は、文字列判別処理を実行する（ステップＳ５０３）。文字列判別処理（ステップＳ５０３）では、文字列判別処理では文字列が何を示す文字列なのか、属性を判別する。具体的には、（１）階層付項目辞書内の項目名であるのか（項目名文字列照合）、（２）データの種別はなんであるか（データ文字列種判別）、（３）単位文字列であるか（単位文字列照合）、（４）単位指示文字列であるか（単位指示文字列照合）の４つの判別を行う。
【００３４】
（１）項目名文字列照合では、文字行内の文字列が階層付項目辞書内にある項目名と一致するか判定する。一致する文字列を「所望項目文字列」、一致しない文字列を「非所望項目文字列」とする。非所望項目文字列には、階層付項目辞書に入っていない項目名を表わす文字列とデータを表わす文字列があり、それらの区別はつかない。
【００３５】
（２）データ文字列種判別では、文字列が数字だけで構成される数字列であるのか、文字列が数字以外の文字で構成される非数字文字列であるのか、文字と数字で構成される数字文字列であるのかを判別する。
【００３６】
（３）単位文字列照合では、各文字行の文字列が単位文字列辞書に記載された文字列と一致するかを判定する。
【００３７】
（４）単位指示文字列照合では、文字列が単位指示文字列辞書に記載された文字列と一致するかを判定する。文字列が項目名、単位文字列、単位指示文字列と一致するか否かの判定には、レーベンシュタイン距離をベースに文字列長を考慮した評価関数を用いることができるが、その他の方法を用いても良い。
【００３８】
つぎに、文書処理装置２００は、多重仮説文書構造ネットワーク生成処理を実行する（ステップＳ５０４）。多重仮説文書構造ネットワーク生成処理（ステップＳ５０４）では、文書処理装置２００は、取得した文書から文書構造ネットワーク１２を生成する。具体的には、たとえば、文書処理装置２００は、レイアウト解析処理（ステップＳ５０２）により得られたレイアウトから複数の文書構造の可能性を表現する多重仮説文書構造ネットワークを生成する。
【００３９】
つぎに、文書処理装置２００は、項目データ対応列生成処理を実行する（ステップＳ５０５）。項目データ対応列候補生成処理（ステップＳ５０５）では、文書処理装置２００は、多重仮説文書構造ネットワークから、階層項目辞書の各エントリに該当する項目名とデータの文字列の組（項目データ対応列）と、単位指示文字列と単位文字列の組（単位文字列対応列）とを抽出する。各エントリに該当する項目名とデータ文字列の対応関係には、複数の対応関係の可能性がある。そのため、可能性のある複数の項目とデータの対応付けの候補（項目データ対応列）を抽出する。項目データ対応列候補と呼ぶ。詳細は後述する。
【００４０】
つぎに、文書処理装置２００は、項目データ対応列候補ランキング処理を実行する（ステップＳ５０６）。項目データ対応列候補ランキング処理（ステップＳ５０６）では、階層付項目辞書の各エントリに対し、各項目データ対応列候補がどの程度一致するかの信頼度を算出し、項目データ対応付スコアを用いてランキングする。
【００４１】
つぎに、文書処理装置２００は、ランキング修正処理を実行する（ステップＳ５０７）。ランキング修正処理（ステップＳ５０７）では、信頼度を用いてランキングした結果を修正する。単位文字列と照合された文字列、単位指示文字列と照合された文字列の情報を用いてランキングを修正する。この処理によって、単位文字列が項目とデータの間に挿まれている場合にも、単位文字列ではなく所望のデータを上位に出力できる。ランキングされた項目データ対応列は、図１に示したように、プルダウンにより列挙される。
【００４２】
これにより、文書処理装置２００は、データを指し示す項目が階層構造のある複数の項目名で記載、項目とデータの間に単位を示す文字列が含まれる、枠線がない等の複雑で多様な文書構造を文書からであっても高精度にデータを抽出することができる。また、階層構造付項目データ辞書を指定するだけで、階層構造のある仕様項目に対応するデータを抽出できる。そのため、文書認識技術に関する専門知識がないユーザでも辞書を定義し利用することが可能である。
【００４３】
＜多重仮説文書構造ネットワーク生成処理例＞
図６は、文書構造ネットワーク生成処理例を示す説明図である。図６において、（Ａ）は、文書取得処理（ステップＳ５０１）によって取得された文書１１の一例である。（Ｂ）は、（Ａ）の次状態であるレイアウト解析処理（ステップＳ５０２）の解析結果６００である。（Ｂ）では、文書１１の枠が認識される。また、（Ｂ）において太線矩形で示した文書内の文字列の領域も認識される。以降、太線矩形は、文書構造ネットワーク１２のノードとなる。以降、太線矩形を「ノード」と称す。各ノードは、その生成元の文字列と関連付けられる。
【００４４】
（Ｃ）は、（Ｂ）の次状態である文書構造ネットワーク生成処理（ステップＳ５０４）の生成結果である。生成結果が多重仮説文書構造ネットワーク１２となる。多重仮説文書構造ネットワーク１２はノード間をリンクで接続した有向グラフである。
【００４５】
多重仮説文書構造ネットワークは、次の２つの特徴を利用して生成される。１つ目は、文書に記載される文字列間の論理関係は、左から右、上から下へ意味の結合があるように記載されるという特徴である。２つ目は、枠端位置が揃った枠内の文字列には論理関係があるという特徴である。
【００４６】
図２５に示す（ａ）と（ｂ）のように、１：Ｎ（Ｎは１より大きい整数）の関係で枠端位置が揃う場合、枠内の文字行には項目名とデータ、或いは項目名と項目名の意味的階層関係がある場合が多い。また、図２５に示す（Ｃ）と（ｄ）のように１：１の関係で、枠端位置が揃う場合、枠内の文字列には、項目名とデータ、或いは連続するデータの関係がある場合が多い。そして、文書に記載の文字列は、左から右、上から下へ項目とデータ、項目の上下の関係をもつように記載される。そのため、文書処理装置２００は、左から右、上から下へとつながるリンクを生成する。
【００４７】
（ａ）と（ｂ）の場合と同様に、文書に記載の文字列は、左から右、上から下へ項目とデータ、データの順番の関係を持つように記載されるため、文書処理装置２００は、左から右、上から下へのリンクを生成する。また、項目の位置から下方向、或いは右方向へ連続するデータの記載に対応するため、文書処理装置２００は、図２６に示すように、枠端の位置が同じ枠が連続する場合は、連続する複数の枠内の文字列とのリンクを生成する。ハッチングがかかった２つの文字列からのリンクについてのみ図示している。他の文字列からも同様に上から下、左から右へリンクが生成される。
【００４８】
仮に、行方向において右から左に参照する場合は、ノード群の各ノードは、自ノードを含む枠の左隣りの枠内のノードに対しリンクで接続される。また、列方向において下から上に参照する場合は、各ノードは、自ノードを含む枠の直上の枠内のノードに対しリンクで接続される。
【００４９】
図７は、図５に示した多重仮説文書構造ネットワーク生成処理（ステップＳ５０４）の詳細な処理手順例を示すフローチャートである。まず、文書処理装置２００は、図６の（Ｂ）に示す解析結果のノード群の中から、未選択ノードがあるか否かを判断する（ステップＳ７０１）。未選択ノードがある場合（ステップＳ７０１：Ｙｅｓ）、文書処理装置２００は、未選択ノードを１つ選択する（ステップＳ７０２）。そして、文書処理装置２００は、選択ノードを含む枠の右隣りの枠および直下の枠の各々に含まれるノードに対し、リンクを生成する（ステップＳ７０３）。このあと、ステップＳ７０１に戻る。
【００５０】
ステップＳ７０１において、未選択ノードがない場合（ステップＳ７０１：Ｎｏ）、図５の項目データ対応列候補生成処理（ステップＳ５０５）に移行する。これにより、多重仮説文書構造ネットワーク処理（ステップＳ５０４）の一連の処理を終了する。多重仮説文書構造ネットワーク処理（ステップＳ５０４）により、事前に文書のネットワーク構造が定義されていなくても、取得された文書の構造を、文書構造ネットワーク１２として特定することができる。
【００５１】
＜項目データ対応列候補生成処理例＞
項目データ対応列候補生成処理では、多重仮説文書構造ネットワークから複数の項目データ対応列候補を生成する。
【００５２】
図８は、項目データ対応列候補生成処理例を示す説明図である。階層付項目辞書のすべてのエントリに対し、全ての非所望項目文字列を起点とする探索処理を行う。図８において、文書処理装置２００は、階層付項目名辞書３０３の中から、ある階層付項目名列を選択する。ここでは、エントリｅ３の階層付項目名列が選択されたものとする。また、文書処理装置２００は、文書構造ネットワーク１２の非所望項目名文字列に対応するノードを選択する。ここでは、非所望項目名文字列「Ｄ２６」に対応するノードが選択されたものとする。項目データ対応列候補生成処理（ステップＳ５０５）では、選択された非所望項目名文字列に対応するノードを注目ノードとして、文書構造ネットワーク１２を右方向および上方向に存在する所望項目名文字列に対応するノードを探索する。
【００５３】
図９は、図８に示した例における探索結果を示す説明図である。探索処理では、起点としている非所望項目文字列がデータであると仮定し、非所望項目文字列とリンクする項目名文字列を探索する。まず左方向に出現する所望項目名文字列を探索する。次に上方向に出現する所望項目名文字列を探索する。その結果得られた左方向探索結果と上方向探索結果を連結することで項目データ対応列候補とする。
【００５４】
図２７の（ａ）にハッチングで示す文字列は、ｉｔｅｍＺとｉｔｅｍＡとｉｔｅｍＢが項目名として照合された場合に候補となる非所望項目文字列である。図２８に正解となる項目データ対応付け候補を示す。階層付項目辞書の中で着目中のエントリにある３つの項目名が一致する非所望項目文字列である。
【００５５】
図２７の（ｂ）は、（ａ）と文字列の配置が異なる表である。ハッチングで示す文字列はｉｔｅｍＡとｉｔｅｍＢが項目名として照合された場合に候補となる非所望項目文字列である。図２９に正解となる項目データ対応付け候補を示す。左方向の探索結果と上方向の探索結果を連結することにより、２次元の項目名で指定された非所望項目文字列を抽出する。
【００５６】
また、これまで非所望項目文字列をデータであると仮定し、所望項目名文字列を探索する処理について説明してきた。これと同じように、非所望項目文字列を単位文字列であると仮定し、単位指示文字列を探索することにより、単位文字列対応列を抽出する。
【００５７】
探索結果９００は、左方向探索結果９０１と上方向探索結果９０２とを含む。自ノード以外の非所望項目名文字列のノードは、探索結果９００には含まれない。また、探索結果９００において、非所望項目名文字列を直接指定する所望項目名文字列は、左方向探索結果９０１の最下層の所望項目名文字列と上方向探索結果９０２の最下層の所望項目名文字列である。図９の例では、所望項目名文字列「種類Ｃ」と所望項目名文字列「Ｗａｔｅｒ」である。文書処理装置２００は、左方向探索結果９０１と上方向探索結果９０２とを連結して、項目データ対応列９１０を生成する。
【００５８】
なお、このような探索方向とするのは、表における行方向（横方向）の見方が左から右、列方向（縦方向）の見方が上から下であるからである。仮に、行方向において右から左に参照する場合は、文書処理装置２００は、注目ノードから左方向に探索する。また、列方向において下から上に参照する場合は、文書処理装置２００は、注目ノードから下方向に探索する。
【００５９】
図１０は、図５に示した項目データ対応列候補生成処理（ステップＳ５０５）の詳細な処理手順例を示すフローチャートである。まず、文書処理装置２００は、階層付項目名辞書３０３の中から未選択のエントリがるか否かを判断する（ステップＳ１００１）。未選択のエントリがある場合（ステップＳ１００１：Ｙｅｓ）、文書処理装置２００は、未選択のエントリを１つ選択する（ステップＳ１００２）。
【００６０】
また、文書処理装置２００は、選択したエントリについて、未選択の非所望項目名文字列があるか否かを判断する（ステップＳ１００３）。未選択の非所望項目名文字列がある場合（ステップＳ１００３：Ｙｅｓ）、文書処理装置２００は、未選択の非所望項目名文字列を１つ選択する（ステップＳ１００４）。
【００６１】
そして、文書処理装置２００は、選択した非所望項目名文字列について探索処理を実行する（ステップＳ１００５）。探索処理（ステップＳ１００５）の詳細については図１１で説明する。探索処理（ステップＳ１００５）により、図１０に示したような探索結果が項目位データ列候補として生成される。探索処理（ステップＳ１００５）のあと、ステップＳ１００３に戻る。ステップＳ１００３において、未選択の非所望項目名文字列がない場合（ステップＳ１００３：Ｎｏ）、ステップＳ１００１に戻る。ステップＳ１００１において、未選択のエントリがない場合（ステップＳ１００１：Ｎｏ）、図５の非所望項目名文字列ランキング処理（ステップＳ５０６）に移行する。
【００６２】
図１１は、図１０に示した探索処理（ステップＳ１００５）の詳細な処理手順例を示すフローチャートである。まず、文書処理装置２００は、選択した非所望項目名文字列の左側に最初に出現する所望項目名文字列から左方向に所望項目名文字列を探索する（ステップＳ１１０１）。左方向に所望項目名文字列がなくなれば探索が終了する。また、文書処理装置２００は、選択した非所望項目名文字列の上側に最初に出現する所望項目名文字列から上方向に所望項目名文字列を探索する（ステップＳ１１０２）。上方向に所望項目名文字列がなくなれば探索が終了する。ステップＳ１１０１とステップＳ１１０２は順番に実行してもよく、逆順に実行してもよく、同時に実行してもよい。このあと、文書処理装置２００は、ステップＳ１１０１の左方向探索結果９０１とステップＳ１１０２の上方向探索結果９０２とを連結する（ステップＳ１１０３）。これにより、図９に示したような項目データ対応列９１０を得ることができる。
【００６３】
＜項目データ対応列候補ランキング処理例＞
つぎに、項目データ対応列候補ランキング処理例について説明する。項目データ対応列ランキング処理（ステップＳ５０７）では、文書処理装置２００は、階層付項目辞書の各エントリに対し、項目データ対応付け候補がどの程度一致するかを示す信頼度を算出し、項目データ対応列候補をランキングする。
【００６４】
図３０は、各エントリに対して複数の項目データ対応付け候補がランキングされた結果のイメージ図である。信頼度は、次の５つの値の重み付き線形和となる。
【００６５】
（１）項目名の一致数：項目データ対応付け候補の中にある項目名の中で、着目しているエントリ内の項目名と一致する数。
（２）項目名不一致数：項目データ対応付け候補の中にある項目名の中で、着目しているエントリ内の項目名と一致せずに、他のエントリ内の項目名と一致する数。
（３）項目名照合度：項目名と一致した度合い、レーベンシュタイン距離をベースに文字列長を考慮した値。
（４）項目名順序：着目しているエントリ内の項目名の出現順序と項目データ対応付け候補内の項目名の出現順序の一致度。
（５）データ一致度：着目しているエントリにおけるデータの種類と項目データ対応付け候補におけるデータの種類が一致するか。
【００６６】
また、項目データ対応列候補の中で、データに直接接続されている項目名が、各エントリの中で最下層の項目名と一致する候補を優先して上位にランキングする。これは、各エントリ内に記載される項目名のうち上位の項目名は下位の項目名を修飾している単語となり、最下層に記載される項目名がデータを直接指し示す単語である場合が多いためである。
【００６７】
図１２は、探索結果と選択した階層付項目名列との照合例１を示す説明図である。ここでは、図９に示した探索結果９００から得られる項目データ対応列９１０と図８で選択したエントリｅ３の階層付項目名列との照合を例に挙げて説明する。項目データ対応列９１０は、左方向探索結果９０１と上方向探索結果９０２とを連結した項目データ対応列である。
【００６８】
文字列間の編集距離（レーベンシュタイン距離）および項目数の一致度を用いる場合の例を示す。階層付項目名列と探索結果９００から得られる項目データ対応列９１０との近似文字列照合により一致した所望項目名文字列数をｔとする。
【００６９】
また、探索結果９００から得られる項目データ対応列９１０内の近似文字列照合により一致した所望項目名文字列のうちｉ番目の所望項目名文字列をＷｉとし、Ｗｉの文字数をＭｉとする。また、Ｗｉが階層付項目名列と照合されたときの編集距離（レーベンシュタイン距離）をＮｉとする。この場合、信頼度Ｆは、式（１）で表すことができる。αはユーザが調整できる重みパラメータである。
【００７０】
【数１】
2014170965.tif 000003
【００７１】
式（１）の信頼度Ｆは、近似文字列照合により一致した所望項目名文字列数が多いほど高い値となり、それらの照合の際に用いられた編集距離が大きいほど低い値となる。このため、信頼度Ｆは、探索結果から得られる項目データ対応列が階層付項目名列に対応する確度を示すことになる。なお、信頼度Ｆは、一致する所望項目名文字列数が多いほど高い値となり、類似度が大きいほど高い値（編集距離が大きいほど低い値）となる関数であれば、他の関数や変換テーブルを用いてもよい。
【００７２】
図１２の例では、第１階層である「機器Ｘ」が一致するが、第２階層〜第４階層の所望項目名文字列どうしは一致しない。したがって、ｔ＝１となる。このため、ｉ＝１となり、所望項目名文字列Ｗｉは文字列「機器Ｘ」となる。
【００７３】
なお、近似文字列照合により一致した所望項目名文字列数ｔとＭｉ及び編集距離Ｎｉを引数とする関数を用いて信頼度を計算したが、必ずしも両方を用いる必要はない。また、編集距離Ｎｉを用いて項目の類似度を算出したが、項目の類似度を示すものであれば、編集距離以外の値を用いて信頼度を計算してもよい。
【００７４】
図１３は、探索結果と選択した階層付項目名列との照合例２を示す説明図である。ここでは、非所望項目名文字列「Ｄ２２」についての探索結果９００から得られる項目データ対応列９１０と図４のエントリｅ１６の階層付項目名列との照合例である。図１３の場合、一致数ｔはｔ＝３となる。このため、Ｗ１＝「機器Ｘ」、Ｗ２＝「温度」、Ｗ３＝「Ｗａｔｅｒ」となる。
【００７５】
なお、図１３のように、「温度」の配列位置が、階層付項目名列と項目データ対応列９１０とで異なる。このような配列の一致度についても、重み付線形和の項として式（１）に追加してもよい。これにより、配列の違いにより信頼度が変動するため、配列が類似するほど信頼度Ｆが高くなり、データ抽出の高精度化を図ることができる。また、配列に相違があっても信頼度Ｆが低下するだけで候補として存在するため、多様な文書にも対応することができる。
【００７６】
また、非所望項目名文字列を直接指定する所望項目名文字列の一致度についても重み付線形和の項として式（１）に追加してもよい。たとえば、図１２の例では、左方向探索結果の最下層の所望項目名文字列「種類Ｃ」と上方向探索結果の最下層の所望項目名文字列「Ｗａｔｅｒ」により、注目する非所望項目名文字列「Ｄ２６」が指定される。したがって、文書処理装置２００は、非所望項目名文字列を直接指定する所望項目名文字列どうしの一致度の高さや編集距離の小ささにより非所望項目名文字列を直接指定する所望項目名文字列の一致度を、重み付線形和の項として算出する。
【００７７】
たとえば、単純に一致度で見ると、図１２の場合、第３階層は「種類Ａ」と「種類Ｃ」であるため異なり、第４階層も「Ｗａｔｅｒ」と「Ｏｉｌ」であるため異なる。また、図１４の場合、第３階層は「種類Ｂ」と「温度」であるため異なるが、第４階層はともに「Ｗａｔｅｒ」であるため一致する。
【００７８】
なお、非所望項目名文字列を直接指定する所望項目名文字列を重要視する場合、左方向探索結果９０１の最下層の所望項目名文字列と上方向探索結果９０２の最下層の所望項目名文字列のうち少なくともいずれか一方が相違する場合は、文書処理装置２００は、当該非所望項目名文字列を階層付項目名列と結びつく非所望項目名文字列候補から除外してもよい。
【００７９】
また、単位を示す文字列は、当該文字列に隣接する文字列に付随する文字列である可能性が高い。したがって、非所望項目名文字列が単位を示す文字列である場合、信頼度Ｆを低下させるような補正値を式（１）に追加することとしてもよい。
【００８０】
図１４は、非所望項目名文字列が単位文字列である場合の照合例を示す説明図である。文書１４００における非所望項目名文字列が単位文字列である場合、文字列判別処理においてその旨を示す情報が付与される。したがって、非所望項目名文字列が単位文字列であると判別された場合、文書処理装置２００は、信頼度Ｆを低下させる補正値を設定する。信頼度Ｆを低下させる補正値は、あらかじめ決められた数値でもよく、単位の種類に応じて数値の大きさを変更することとしてもよい。
【００８１】
また、単位を指示する所望項目名文字列は、単位を示す非所望項目名文字列を指示する。したがって、所望項目名文字列が単位を指示する文字列である場合、信頼度Ｆを低下させるような補正値を式（１）に追加することとしてもよい。
【００８２】
図１５は、非所望項目名文字列が単位指示文字列である場合の照合例を示す説明図である。文書１４００における非所望項目名文字列が単位指示文字列である場合、文字列判別処理においてその旨を示す情報が付与される。したがって、非所望項目名文字列が単位指示文字列であると判別された場合、文書処理装置２００は、信頼度Ｆを低下させる補正値を設定する。信頼度Ｆを低下させる補正値は、あらかじめ決められた数値でもよく、単位の種類に応じて数値の大きさを変更することとしてもよい。
【００８３】
図１６は、非所望項目名文字列候補ランキング処理（ステップＳ５０６）の詳細な処理手順例を示すフローチャートである。まず、文書処理装置２００は、階層付項目名辞書３０３の中から未選択のエントリがるか否かを判断する（ステップＳ１６０１）。未選択のエントリがある場合（ステップＳ１６０１：Ｙｅｓ）、文書処理装置２００は、未選択のエントリを１つ選択する（ステップＳ１６０２）。
【００８４】
また、文書処理装置２００は、選択したエントリについて、未選択の非所望項目名文字列があるか否かを判断する（ステップＳ１６０３）。未選択の非所望項目名文字列がある場合（ステップＳ１６０３：Ｙｅｓ）、文書処理装置２００は、未選択の非所望項目名文字列を選択する（ステップＳ１６０４）。
【００８５】
そして、文書処理装置２００は、選択した非所望項目名文字列およびその探索結果９００から得られる項目データ対応列９１０を用いて、上述したように、信頼度算出処理を実行する（ステップＳ１６０５）。信頼度算出処理（ステップＳ１６０５）により、探索結果９００の探索元である非所望項目名文字列ごとに、階層付項目名列との対応付けの尤もらしさを示す信頼度が算出される。信頼度算出処理（ステップＳ１６０５）のあと、ステップＳ１６０３に戻る。
【００８６】
ステップＳ１６０３において、未選択の非所望項目名文字列がない場合（ステップＳ１６０３：Ｎｏ）、ステップＳ１６０１に戻る。ステップＳ１６０１において、未選択のエントリがない場合（ステップＳ１６０１：Ｎｏ）、文書処理装置２００は、抽出結果１４を出力する（ステップＳ１６０６）。抽出結果１４については後述する。このあと、図５のランキング修正処理（ステップＳ５０７）に移行する。
【００８７】
＜ランキング修正処理＞
ランキング修正処理（ステップＳ５０７）では、項目データ対応付けスコアを用いてランキングした結果を修正する。階層付項目列との照合による信頼度だけでなく、評価尺度の枠組みに収まらない情報を用いるための処理である。項目とデータの間に単位文字列が存在する場合であっても、正しいデータを上位にランキングさせる。ランキング修正処理には、単位文字列辞書を用いたランキング修正処理と単位指示文字列を用いたランキング修正処理がある。
【００８８】
単位文字列辞書を用いたランキング修正処理では、階層付項目データ辞書の各エントリに対応する複数の項目データ対応付け候補の中で、単位文字列がデータとなっている項目データ対応付け候補の順位を下げる処理を行う。図１４に示すケースでは、単位を示す文字列“ＫＷ”と“３５０”の両方が候補として抽出される。これに対し、“ＫＷ”をデータとして持つ項目データ対応付け候補の順位を下げることにより、“３５０”をデータとして持つ項目データ対応付け候補が上位にランキングされる。
【００８９】
単位指示文字列辞書を用いたランキング修正処理では、階層付項目データ辞書の各エントリに対応する複数の項目データ対応付け候補の中で、単位指示文字列に記載された文字列が項目名として抽出されている項目データ対応付け候補の順位を下げる処理を行う。図１５に示すケースでは、単位を示す文字列“ＫＷ”と“３５０”の両方が候補として抽出される。これに対し、“ＵＮＩＴ”を項目名として持つ項目データ対応付候補の順位を下げることにより、“３５０”をデータとして持つ項目データ対応付け候補が上位にランキングされる。
【００９０】
図１７は、図１６のステップＳ１６０６における抽出結果１４の一例を示す説明図である。抽出結果１４は、データ選択画面１７００として図２の表示装置２０３に表示される。抽出結果１４は、階層付項目名辞書３０３における階層付項目名列ごとに、データ候補項目、手入力項目、および単位項目を有する。階層所望項目名文字列種類項目および単位項目については、階層付項目名辞書３０３から流用される。
【００９１】
データ候補項目には、非所望項目名文字列候補が、たとえばプルダウン形式で表示される。非所望項目名文字列候補は、信頼度Ｆの高い順に表示される。文書処理装置２００は、入力装置２０７からの入力によりプルダウンの中から非所望項目名文字列候補の選択を受け付ける。手入力項目には、入力装置２０７から入力された文字列や数値、記号などの情報が表示される。これにより、プルダウン内の非所望項目名文字列候補に、所望の非所望項目名文字列が存在しない場合、ユーザは、入力装置２０７を操作することにより任意の値を入力することができる。このプルダウンの選択および手入力操作が、図５に示したランキング修正処理（ステップＳ５０７）となる。
【００９２】
図１８は、データ選択箇所表示画面例１を示す説明図である。データ選択箇所表示画面１８００には、取得した文書１１が表示される。表示される文書１１の各枠は多重仮説文書構造ネットワーク１２のノードに関連付けされている。文書処理装置２００は、図１８において非所望項目名文字列候補を選択した場合、選択した非所望項目名文字列候補についての探索結果９００をメモリ２０５または補助記憶装置２０６から読み出して、データ選択箇所表示画面１８００の文書１１上に表示する。
【００９３】
たとえば、図１７において、ユーザが図１７のデータ選択画面１７００のエントリｅ８において信頼度が最も高い非所望項目名文字列候補「Ｄ２２」を選択した場合、図１８における非所望項目名文字列「Ｄ２２」について、文書処理装置２００は、点線矩形および矢印を探索結果に対応付けることにより、探索結果を特定する。
【００９４】
図１９は、データ選択箇所表示画面例２を示す説明図である。図１８では、ユーザが図１７のデータ選択画面１７００のエントリｅ８において信頼度が最も高い非所望項目名文字列候補「Ｄ２２」を選択した場合について説明した。図１９は、ユーザが図１７のデータ選択画面のエントリｅ８において信頼度が３番目に高い非所望項目名文字列候補「Ｄ２３」を選択した場合のデータ選択箇所表示画面１９００の例である。
【００９５】
この場合、所望項目名文字列「種類Ｂ」と所望項目名文字列「Ｗａｔｅｒ」により指定される非所望項目名文字列は「Ｄ２２」となるべきところ、図２０では「Ｄ２３」になる。したがって、「Ｄ２３」を、階層付項目名列「機器Ｘ→温度→種類Ｂ→Ｗａｔｅｒ」に対応付けるのはふさわしくないことが視覚的に把握することができる。
【００９６】
＜文書処理装置２００の機能的構成例＞
図２０は、文書処理装置２００の機能的構成例を示すブロック図である。文書処理装置２００は、取得部２００１と、レイアウト解析部２００２と、文字列判別部２００３と、文書構造ネットワーク生成部２００４と、項目データ対応列生成部２００５と、関連付け部２００６と、出力部２００７と、を有する。各構成２００１〜２００７は、たとえば、図２に示したメモリ２０５または補助記憶装置２０６に記憶されたプログラムをプロセッサに実行させることによりその機能を実現する。
【００９７】
取得部２２０１は文書１１を取得する。具体的には、たとえば、取得部２００１は、図５の文書取得処理（ステップＳ５０１）を実行する。レイアウト解析部２００２は、取得部２００１によって取得された文書１１のレイアウトを解析する。具体的には、たとえば、レイアウト解析部２００２は、図５のレイアウト解析処理（ステップＳ５０２）を実行する。
【００９８】
文字列判別部２００３は、文書１１中の文字列を判別する。具体的には、たとえば、文字列判別部２００３は、図５の文字列判別処理（ステップＳ５０３）を実行する。文字列判別部２００３は、分類部２０３１と判別部２０３２とを有する。分類部２０３１は、項目名を階層化した階層付項目名列を記憶する辞書情報内の項目名に該当する文字列である所望項目名文字列と該当しない文字列である非所望項目名文字列とに分類する。
【００９９】
項目名を階層化した階層付項目名列を記憶する辞書情報とは、図４に示した階層付項目名辞書３０３である。分類部２０３１は、図５に示した文字列判別処理（ステップＳ５０３）のうち、階層付項目名辞書３０３内の項目名と文書内の文字列群との一致判定を実行することにより、文書内の文字列群を所望項目名文字列と非所望項目名文字列とに分類する。また、判別部２０３２は、図５に示した文字列判別処理（ステップＳ５０３）のうち、文字種の判別や単位文字列との一致判定、単位指示文字列との一致判定を実行する。
【０１００】
文書構造ネットワーク生成部２００４は、文書内のある文字列またはある文字列を含む領域から右方向および下方向に向かって、ある文字列と右方向に存在する文字列とを連結する。また、文書構造ネットワーク生成部２００４は、ある文字列と下方向に存在する文字列とを連結する。これにより、文書構造ネットワーク生成部２００４は、多重仮説文書構造ネットワークを生成する。ある文字列を含む領域とは、たとえば、ある文字列を含む枠である。具体的には、たとえば、文書構造ネットワーク生成部２００４は、図５に示した多重仮説文書構造ネットワーク生成処理（ステップＳ５０４）を実行する。
【０１０１】
項目データ対応列生成部２００５は、多重仮説文書構造ネットワーク１２において、非所望項目名文字列から左方向と上方向に所望項目名文字列を探索する。そして、項目データ対応列生成部２００５は、左方向の探索結果と上方向の探索結果とを結合した項目データ対応列を生成する。具体的には、たとえば、項目データ対応列生成部２００５は、図５に示した項目データ対応列生成処理（ステップＳ５０５）を実行する。
【０１０２】
関連付け部２００６は、階層付項目名列と項目データ対応列との関連性の高さを示す信頼度に応じて、階層付項目名列と項目データ対応列の生成元である非所望項目名文字列とを関連付ける。具体的には、たとえば、関連付け部２００６は、図５に示した所望項目名文字列候補ランキング処理（ステップＳ５０６）を実行する。すなわち、関連付け部２００６は、信頼度Ｆを算出して、各階層付項目名列について、信頼度Ｆの高い順に非所望項目名文字列を関連付ける。
【０１０３】
出力部２００７は、関連付けられた階層付項目名列および非所望項目名文字列を出力する。具体的には、たとえば、図１７〜図１９に示した画面を出力する。このように上述した実施例によれば、事前に文書１１のネットワーク構造の定義を決めることなく、文書１１からのデータ抽出の高精度化を図ることができる。
【０１０４】
また、上述した実施例では、入力される文書には枠が存在するが、枠が存在しない文書或いは枠を構成する罫線の一部が欠如している文書についても適用可能である。以下、枠がない文書に対してデータ抽出をおこなう場合について説明する。
【０１０５】
枠がない場合、文書処理装置２００は、枠位置の整列性解析を行う代わりに、文字列位置の整列性解析結果を用いることによって多重仮説文書構造ネットワークを生成する。枠がない場合のレイアウト解析処理には、ＸＹｃｕｔ等のトップダウンの解析方法、文字矩形間の距離を判定して文字矩形を統合していくボトムアップの解析方法、トップダウンの解析方法とボトムアップの解析方法を組み合わせる方法等がある。解析方法やパラメータの違いにより解析結果は異なる。
【０１０６】
図２１に、入力文書に対する３種類のレイアウト解析結果を示す。レイアウト解析結果２１０１は、行方向（水平方向）を優先して矩形を統合したレイアウト解析結果である。レイアウト解析結果２１０２は、行方向だけでなく列方向（垂直方向）の分割を行ったレイアウト解析結果である。レイアウト解析結果Ｃは、レイアウト解析結果Ｂの方式に比べて垂直方向の分割が優位に働くパラメータで解析した結果となっている。各レイアウト解析結果の中にあるブロック内の文字列同士にはリンク関係がある。
【０１０７】
図２１の文書構造ネットワーク２２０１〜２２０３は、レイアウト解析結果２１０１〜２１０３の論理構造を示している。具体的には、文書構造ネットワーク２２０１では、同じブロック内にある文字列ＢＢＢから文字列ＥＥＥをリンクする。同様に、文字列ＣＣＣから文字列ＤＤＤ、文字列ＤＤＤから文字列ＦＦＦ、文字列ＦＦＦから文字列ＧＧＧ、文字列ｘｘｘから文字列ｙｙｙ、文字列ｙｙｙから文字列ｚｚｚ、文字列ｚｚｚから文字列ｑｑｑをリンクする。また、ブロック間のリンクのため、先頭文字列間を上から下に向かってリンクする。
【０１０８】
図２３は、探索例を示す説明図である。（Ａ）は、階層付項目名辞書３０３を示す。（Ａ）では、階層付項目名列を模式的に木構造で表現する。文書構造ネットワーク２２０１では、文字列ＡＡＡから文字列ＢＢＢの関係までしか辿ることができない。多重仮説文書構造ネットワーク２１０３では、（Ｂ）文字列ＡＡＡから文字列ＢＢＢ、（Ｃ）文字列ＢＢＢから文字列ＣＣＣ、（Ｄ）文字列ＣＣＣから文字列ＸＸＸと辿ることができる。その結果、文字列ＡＡＡと文字列ＢＢＢと文字列ＣＣＣを項目名、文字列ｘｘｘをデータとする項目データ対応付け候補を生成する。
【０１０９】
図２４は、レイアウト解析結果の統合例を示す説明図である。文書処理装置２００は、多重仮説文書構造ネットワーク２２０１〜２２０３の論理和をとる。（Ａ）が多重仮説文書構造ネットワーク２２０１〜２２０３の論理和となる多重仮説文書構造ネットワーク２４００である。論理和をとることにより、元となる多重仮説文書構造ネットワークを網羅した単一のネットワークを生成することができる。
【０１１０】
（Ｂ）は、非所望項目名文字列「ｘｘｘ」が選択された場合の多重仮説文書構造ネットワーク２４００の探索例を示す。太線が探索経路、太枠のノードは探索されたノードである。文書処理装置２００は、図２３のように多重仮説文書構造ネットワーク２２０１〜２２０３ごとに個別に探索を実行してもよく、図２４のように多重仮説文書構造ネットワーク２４００に統合してから探索を実行することとしてもよい。
【０１１１】
以上に説明したように、本発明の実施例によると、事前に文書のネットワーク構造の定義を決めることなく、文書からのデータ抽出の高精度化を図ることができる。また、文書処理装置２００は、階層付項目名辞書の階層付項目名列と項目データ対応列との一致度により、階層付項目名列と項目データ対応列とがどの程度類似するかという信頼度Ｆを算出し、信頼度Ｆの高さにより、階層付項目名列と非所望項目名文字列とを関連付ける。これにより、入力される文書がどのようなネットワーク構造であるかわからなくても、階層付項目名列に対して尤もらしい非所望項目名文字列を対応付けることができる。また、非所望項目名文字列ごとに信頼度が算出されるため、各非所望項目名文字列を信頼度Ｆ順に関連付けることにより、ユーザはどの非所望項目名文字列が尤もらしいかを容易に確認することができる。
【０１１２】
また、ランク付けされたいずれかの項目データ対応列を選択することにより、選択した項目データ対応列の非所望項目名文字列と所望項目名が文書上で表示されるため、非所望項目名文字列が行方向および列方向のどの項目名の組み合わせにより指定されるかを直感的に把握することができる。
【０１１３】
また、信頼度Ｆとして、階層付項目名列内の項目名の順序と項目データ対応列内の項目名の順序を考慮することにより、階層の順序が正しいほど信頼度Ｆが高くなるため、対応付けさせる非所望項目名文字列の抽出精度の向上を図ることができる。また、部分的に順序が異なっている場合であっても、一部一致していれば信頼度として考慮される。したがって、項目名の順序が等しい項目データ対応列ほど、信頼度が高くなり、正しい項目データ対応列を上位にランキングすることができる。
【０１１４】
また、行方向の最下層の項目名と列方向の最下層の項目名は、非所望項目名文字列を直接指定する。したがって、これらの項目名が階層付項目列の最下層の項目名と一致した場合には、信頼度Ｆを高くするよう補正することで、対応付けさせるデータの抽出精度の向上を図ることができる。これは、各エントリ内に記載される項目名の中で、上位の項目名は下位の項目名を修飾している単語となり、最下層に記載される項目名がデータを直接指し示す単語である場合が多いためである。
【０１１５】
このように、本実施例では、データを指し示す項目が階層構造のある複数の項目名で記載、項目とデータの間に単位を示す文字列が含まれる、枠線がない等の複雑で多様な文書構造を文書からであっても高精度にデータを抽出することができる。
【０１１６】
また、階層構造付項目データ辞書を指定するだけで、階層構造のある仕様項目に対応するデータを抽出できる。そのため、文書認識技術に関する専門知識がないユーザでも辞書を定義し利用することが可能である。また、仕様書に記載のすべての項目名に関する情報を辞書に定義する必要はなく、ユーザが所望する項目名の辞書を作成するだけで良い。そのため、様々な仕様項目が記載されている文書からのデータ抽出にも適用可能である。
【０１１７】
上記方式で抽出したデータの確認作業、修正作業および登録作業を行うことができる仕様データ抽出ツールは、可能性のある複数のデータを候補として抽出し、ユーザにそれらを提供するインターフェイスを持つ。ゆえに、第一位のデータ候補に誤りがあった場合にもその他のデータ候補の中から正解データを探すことができる。そのため、適用可能な書式が多く、高精度な認識精度が確保できない場合にも適用しやすい。
【０１１８】
このように、本実施例によれば、書式毎に項目間の相対的な位置関係を事前に定義することなく、所望のデータを示す項目に関する階層付項目名辞書を用意するだけで、事前定義のコストを少なく、文書の多様な構造を表現することができる。これにより、多様な書式の文書からデータを高精度に抽出することができ、適用対象拡大を図ることができる。
【０１１９】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
2014170965.tif 000004
【図２】
2014170965.tif 000005
【図３】
2014170965.tif 000006
【図４】
2014170965.tif 000007
【図５】
2014170965.tif 000008
【図６】
2014170965.tif 000009
【図７】
2014170965.tif 000010
【図８】
2014170965.tif 000011
【図９】
2014170965.tif 000012
【図１０】
2014170965.tif 000013
【図１１】
2014170965.tif 000014
【図１２】
2014170965.tif 000015
【図１３】
2014170965.tif 000016
【図１４】
2014170965.tif 000017
【図１５】
2014170965.tif 000018
【図１６】
2014170965.tif 000019
【図１７】
2014170965.tif 000020
【図１８】
2014170965.tif 000021
【図１９】
2014170965.tif 000022
【図２０】
2014170965.tif 000023
【図２１】
2014170965.tif 000024
【図２２】
2014170965.tif 000025
【図２３】
2014170965.tif 000026
【図２４】
2014170965.tif 000027
【図２５】
2014170965.tif 000028
【図２６】
2014170965.tif 000029
【図２７】
2014170965.tif 000030
【図２８】
2014170965.tif 000031
【図２９】
2014170965.tif 000032
【図３０】
2014170965.tif 000033
【国際調査報告】
2014170965.tif 000034
2014170965.tif 000035
2014170965.tif 000036