(57)【要約】      （修正有）【課題】非定型文書に対して、事前定義が少なく、汎用的で高精度な文書構造解析を行う方法又は装置を提供する。【解決手段】可能性のある複数の文書構造を表現するネットワーク（多重仮説文書構造ネットワーク）を生成し、そのネットワークからコンテンツの知識を用いて、構造の曖昧性を低減（文書構造を絞り込み）しながら、データを抽出する。多重仮説文書構造ネットワークには、文書の構成要素をノードとし、論理的に関係する可能性のある構成要素のノード間にエッジが含まれている。これにより、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークが生成される。ノードには、タイトル、ノーマル、項目、データ等の属性が付与される。ノード間には、ノードの属性に関する条件付き確率を有し、確率が最大となるノードの属性を求める。文書構造の特性から兄弟関係にあるノードへも確率を伝搬することで文書全体として適した構造を決定する。【選択図】図２
2015127913.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、当該プロセッサが実行するプログラムを格納するメモリと、を有するコンピュータが実行する文書構造解析方法であって、
前記プロセッサが、処理対象の文書データにおける文字行を抽出するステップと、
前記プロセッサが、前記文書データの物理情報と言語情報を用いて前記抽出された文字行の属性を判別し、当該判別の結果に基づいて、前記属性の尤もらしさを示す属性確率を算出するステップと、
前記プロセッサが、前記文書データの前記文字行を構成要素としてノードとし、論理的関係を有する可能性のある前記ノード間にエッジを持たせることで、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークを生成するステップと、
前記プロセッサが、前記属性確率と、前記属性確率に基づいて求められ、各エッジにおける属性関係が成立する確率を示す属性関係確率と、前記論理的関係の情報と、を用いて、前記文書データにおいて各ノード間の遷移が尤もらしい文書構造を決定するステップと、
を含むことを特徴とする文書構造解析方法。
【請求項２】
請求項１において、
前記論理的関係は、文書構造としての親子関係、兄弟関係を含み、
前記多重仮説文書構造ネットワークを生成するステップにおいて、前記プロセッサは、前記親子関係を有する可能性のあるノードについては直接エッジを形成させ、前記兄弟関係を有する可能性のあるノードについては共通の親ノードを持たせ、前記ノードには、タイトル、ノーマル、項目、データの属性を付与することを特徴とする文書構造解析方法。
【請求項３】
請求項２において、
前記文書構造を決定するステップにおいて、前記プロセッサは、各エッジにおいて、前記属性確率と前記属性関係確率を閾値処理することにより、前記ノードの前記属性確率と前記属性関係確率を変更しながら前記文書構造を絞り込むことを特徴とする文書構造解析方法。
【請求項４】
請求項２において、
さらに、前記プロセッサが、コンテンツの単語の論理関係が登録されたコンテンツ知識辞書を参照し、当該コンテンツ知識辞書内の単語の論理的関係と、前記多重仮説文書構造ネットワーク内の論理的関係とが照合される箇所の前記属性関係確率を変更することにより、前記文書構造を絞り込むステップを含むことを特徴とする文書構造解析方法。
【請求項５】
請求項１において、
さらに、前記プロセッサが、ユーザの指示操作によって、前記多重仮説文書構造ネットワーク内の部分的な論理的関係を決定し、前記属性関係確率を変更することにより、前記文書構造を絞り込むステップを含むことを特徴とする文書構造解析方法。
【請求項６】
プログラムを実行するプロセッサと、当該プロセッサが実行するプログラムを格納するメモリと、を有する文書構造解析装置であって、
前記プロセッサは、
処理対象の文書データにおける文字行を抽出する処理と、
前記文書データの物理情報と言語情報を用いて前記抽出された文字行の属性を判別し、当該判別の結果に基づいて、前記属性の尤もらしさを示す属性確率を算出する処理と、
前記文書データの前記文字行を構成要素としてノードとし、論理的関係を有する可能性のある前記ノード間にエッジを持たせることで、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークを生成する処理と、
前記属性確率と、前記属性確率に基づいて求められ、各エッジにおける属性関係が成立する確率を示す属性関係確率と、前記論理的関係の情報と、を用いて、前記文書データにおいて各ノード間の遷移が尤もらしい文書構造を決定する処理と、
を実行することを特徴とする文書構造解析装置。
【請求項７】
請求項６において、
前記論理的関係は、文書構造としての親子関係、兄弟関係を含み、
前記多重仮説文書構造ネットワークを生成する処理において、前記プロセッサは、前記親子関係を有する可能性のあるノードについては直接エッジを形成させ、前記兄弟関係を有する可能性のあるノードについては共通の親ノードを持たせ、前記ノードには、タイトル、ノーマル、項目、データの属性を付与することを特徴とする文書構造解析装置。
【請求項８】
請求項７において、
前記文書構造を決定する処理において、前記プロセッサは、各エッジにおいて、前記属性確率と前記属性関係確率を閾値処理することにより、前記ノードの前記属性確率と前記属性関係確率を変更しながら前記文書構造を絞り込むことを特徴とする文書構造解析装置。
【請求項９】
請求項７において、
前記プロセッサは、さらに、コンテンツの単語の論理関係が登録されたコンテンツ知識辞書を参照し、当該コンテンツ知識辞書内の単語の論理的関係と、前記多重仮説文書構造ネットワーク内の論理的関係とが照合される箇所の前記属性関係確率を変更することにより、前記文書構造を絞り込む処理を実行することを特徴とする文書構造解析装置。
【請求項１０】
請求項６において、
前記プロセッサは、さらに、ユーザの指示操作によって、前記多重仮説文書構造ネットワーク内の部分的な論理的関係を決定し、前記属性関係確率を変更することにより、前記文書構造を絞り込む処理を実行することを特徴とする文書構造解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書構造解析方法、及び文書構造解析装置に関する。
【背景技術】
【０００２】
近年、文書認識技術を用いて仕様書等の非定型文書からデータを抽出したいというニーズがある。非定型文書は、様々な会社で独自に作成した文書であり、様々な内容が数多く記載されるため、複雑で多様な書式となっている。また、１件の仕様書が数千ページに及ぶこともある。このような文書に対しては、章節タイトルや項目の階層関係を用いて、抽出対象のデータを絞り込んで探すことが有効である。ただし、文書中のデータを効率よく抽出するためには、章節構造や表構造を正しく解析する必要がある。
【０００３】
文書構造を解析するための技術として、例えば、特許文献１に開示されたようなものがある。特許文献１では、確率文法を用いて解析する。具体的には、文書の論理構造の曖昧性に対し、各構成要素(文字行)のとりえる属性をノードとした確率ネットワークを生成し、エッジの重みの総和を評価関数とし、最適パスをみつける。そして、構成要素を１次元に並べ、前後の構成要素との関係のみの確率を用いて、文書構造を解析する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−６９４５公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、前後の２つのノードの関係の確率のみを用いているため、即ち、局所的な情報のみを用いて解析するため、文書全体として整合性が合わず、精度が低下するという課題がある。
【０００６】
また、一般的に、項目間の相対的配置関係を事前に定義する必要がある場合が多い。このため、汎用的に用いることができないという課題も存在する。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、非定型文書に対して、事前定義が少なく、汎用的で高精度な文書構造解析を行うことを可能にする技術を提供するものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明による文書構造解析法および文書構造解析装置では、可能性のある複数の文書構造を表現するネットワーク（多重仮説文書構造ネットワーク）を生成し、そのネットワークからコンテンツの知識を用いて、構造の曖昧性を低減（文書構造を絞り込み）しながら、データを抽出する。多重仮説文書構造ネットワークには、文書の構成要素をノードとし、論理的に関係する可能性のある構成要素のノード間にエッジが含まれている。これにより、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークが生成される。論理的関係には、文書構造としての親子関係、兄弟関係がある。親子関係では直接エッジを形成し、兄弟関係では共通の親ノードを持たせる。ノードには、タイトル、ノーマル、項目、データ等の属性が付与される。ノード間には、ノードの属性に関する条件付き確率を有し、確率が最大となるノードの属性を求める。文書構造の特性から兄弟関係にあるノードへも確率を伝搬することで文書全体として適した構造を決定する。コンテンツの単語の関係を登録したコンテンツ知識辞書を用いる。コンテンツ知識辞書内の単語の論理的関係と、文書構造ネットワーク内の論理的関係が照合される箇所を正例とし、条件付き確率を更新する。
【０００９】
つまり、本発明による文書構造解析方法は、プログラムを実行するプロセッサと、当該プロセッサが実行するプログラムを格納するメモリと、を有するコンピュータが実行する文書構造解析方法であって、処理対象の文書データにおける文字行を抽出するステップと、文書データの物理情報と言語情報を用いて前記抽出された文字行の属性を判別し、当該判別の結果に基づいて、属性の尤もらしさを示す属性確率を算出するステップと、文書データの文字行を構成要素としてノードとし、論理的関係を有する可能性のあるノード間にエッジを持たせることで、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークを生成するステップと、属性確率と、属性確率に基づいて求められ、各エッジにおける属性関係が成立する確率を示す属性関係確率と、論理的関係の情報と、を用いて、文書データにおいて各ノード間の遷移が尤もらしい文書構造を決定するステップと、を含んでいる。
【００１０】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【００１１】
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【００１２】
本発明によれば、非定型文書に対して、事前定義が少なくて済み、汎用的で高精度な文書構造解析をすることができるようになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態による文書構造解析・データ抽出装置のハードウェア構成例を示すブロック図である。
【図２】本発明の実施形態による文書構造解析・データ抽出処理を説明するためのフローチャートである。
【図３】文字行抽出結果例を示す図である。
【図４】親子関係のネットワークを示す図である。
【図５】兄弟関係のネットワークを示す図である。
【図６】章構造の解析結果の例を示す図である。
【図７】Heading情報のない場合の文字行抽出結果の例を示す図である。
【図８】Heading情報のない場合の文字行抽出結果の別の例を示す図である。
【図９】章構造解析結果の例を示す図である。
【図１０】誤った章構造解析結果の例を示す図である。
【図１１】多重仮説文書構造ネットワークの例を示す図である。
【図１２】各エッジを構成する２つの文字行（ノード）の類似度（物理的類似度と言語的類似度）、兄弟関係度、及び親子関係度を示す表である。
【図１３】属性確率表を示す図である。
【図１４】タイトル階層確率表を示す図である。
【図１５】属性関係確率表を示す図である。
【図１６】構造整合処理を説明するためのフローチャートである。
【図１７】章構造解析における構造整合処理の例（１）を示す図である。
【図１８】章構造解析における構造整合処理の例（２）を示す図である。
【図１９】章構造解析における構造整合処理の例（３）を示す図である。
【図２０】章構造解析における構造整合処理の例（４）を示す図である。
【図２１】コンテンツ知識照合を利用した場合の文書構造解析・データ抽出処理を説明するためのフローチャートである。
【図２２】項目とデータの属性関係確率表を示す図である。
【図２３】コンテンツ知識辞書の例を示す図である。
【図２４】コンテンツ知識辞書における照合例を示す図（１）である。
【図２５】コンテンツ知識辞書における照合例を示す図（２）である。
【図２６】コンテンツ知識辞書における照合例を示す図（３）である。
【図２７】コンテンツ知識辞書を用いた文書構造ネットワークの構造整合処理の例を示す図である。
【図２８】カラム構造と枠なし表の造解析結果の例を示す図である。
【図２９】図２８に示す構造解析結果を文書構造ネットワークで示した図である。
【図３０】Recursive XY-cut法の処理結果の例を示す図である。
【図３１】Recursive XY-cut法の処理結果を用いた多重仮説文書構造ネットワークの例を示す図である。
【図３２】項目とデータの属性確率表を示す図である。
【図３３】カラムと枠なし表の構造解析における構造整合処理の例（１）を示す図である。
【図３４】図３３の構造整合処理結果を示す図である。
【図３５】カラムと枠なし表の構造解析における構造整合処理の例（２）を示す図である。
【図３６】図３５の構造整合処理結果を示す図である。
【図３７】カラムと枠なし表の構造解析における構造整合処理の例（３）を示す図である。
【図３８】図３７の構造整合処理結果を示す図である。
【図３９】カラムと枠なし表の構造解析における構造整合処理の例（４）を示す図である。
【図４０】図３９の構造整合処理結果を示す図である。
【図４１】領域分割処理を実施した場合の文書構造解析・データ抽出処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
本発明は、可能性のある複数の文書構造を表現するネットワーク（多重仮説文書構造ネットワーク）を生成し、文書構造の階層関係の特性を用いて、文書全体として適した文書構造を決定する。また、文書に記載されるコンテンツの単語の論理関係を示すネットワークと多重仮説文書構造ネットワークを照合することで、文書構造の曖昧性を低減する。文書全体として整合性が合うよう解析することができるため、高精度の解析結果を期待することができる。また、事前に文書を学習して項目名の相対位置を定義する必要がないため、事前に定義する辞書の作成コストが少ない。このため、比較的汎用的に高精度な解析を行うことができる。さらに、本発明による文書構造解析は、必ずしも辞書を用意する必要が無いため（項目間の相対的配置関係を事前に定義する必要がないため）、汎用的に用いることができる。
【００１５】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１６】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１７】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１８】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１９】
＜文書構造化装置の構成＞
図１は、本発明の実施形態による文書構造解析・データ抽出装置のハードウェア構成例を示すブロック図である。
【００２０】
文書構造解析・データ抽出装置１００は、通信装置１０１と、画像取得装置１０２と、表示装置１０３と、補助記憶装置１０４と、メモリ１０５と、プロセッサ１０６と、入力装置１０７と、を有し、これらのデバイスはＰＣＩバスなどの通信線で接続されている。
【００２１】
通信装置１０１は、文書構造解析・データ抽出装置１００をネットワークに接続するためのネットワークインターフェイスである。画像取得装置１０２は、データが抽出される文書のイメージを取得するための装置であり、例えば、スキャナ、複合機、ＯＣＲ、デジタルカメラなどを用いることができる。なお、画像取得装置１０２は、外部接続されたスキャナが取得した文書の画像データが入力されるインターフェイスでもよい。
【００２２】
表示装置１０３は、プログラムの実行結果を表示するディスプレイであり、例えば、液晶表示装置を用いることができる。補助記憶装置１０４は、磁気ディスクドライブ、フラッシュメモリ（ＳＳＤ）などの不揮発性記憶装置であり、プロセッサ１０６が実行するプログラム及びプログラム実行時に使用されるデータを格納する。メモリ１０５は、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶装置であり、オペレーティングシステムおよびアプリケーションプログラムを格納する。
【００２３】
プロセッサ１０６は、メモリ１０５に格納されたプログラムを実行する中央演算装置である。プロセッサ１０６が、オペレーティングシステムを実行することによって、文書構造解析・データ抽出装置１００の基本機能が実現され、アプリケーションプログラムを実行することによって、文書構造化装置１００が提供する機能が実現される。
入力装置１０７は、キーボード、マウスなどのユーザインターフェイスである。
【００２４】
プロセッサ１０６によって実行されるプログラムは、不揮発性の記憶媒体またはネットワークを介して計算機に提供され、非一時的記憶媒体である補助記憶装置１０４に格納される。すなわち、プロセッサ１０６が実行するプログラムは、補助記憶装置１０４から読み出されて、メモリ１０５にロードされて、プロセッサ１０６によって実行される。
【００２５】
プロセッサ１０６に入力される文書は、画像取得装置１０２又は通信装置１０１から入力されたものでも、補助記憶装置１０４に記憶されたものでもよい。代表的な例として、ディスプレイおよび複合機が接続されたパーソナルコンピュータがある。
【００２６】
文書構造解析・データ抽出装置１００は、文書構造化処理の抽出結果を表示装置１０３に出力する。また、文書構造解析・データ抽出装置１００は、通信装置１０１を経由して文書構造化処理の抽出結果を外部に出力してもよく、文書構造解析・データ抽出装置１００で実行される他のプログラムが使用してもよい。
【００２７】
＜文書構造化処理の概要＞
図２は、本発明の実施形態による文書構造解析・データ抽出装置１００において実行される文書構造化処理の概要を説明するためのフローチャートである。
【００２８】
（i）ステップ２０１
まず、文書構造解析・データ抽出装置１００（プロセッサ１０６）は、文書取得処理を実行する（Ｓ２０１）。例えば、文書構造解析・データ抽出装置１００は、画像データである電子文書やスプレッドシート、文書ファイルなどの電子文書を、補助記憶装置１０４から読み出したり、通信装置１０１を介して外部から受信する。元々電子文書であれば、テキストデータは存在するので、そこからテキストデータを取得することができるからである。また、画像取得装置１０２により、紙媒体の文書をスキャナで読み込み画像データ化することとしてもよい。画像データ化された文書については、文書構造解析・データ抽出装置１００は、ＯＣＲにより文字認識をしてテキストデータを取得することとしてもよい。なお、テキスト化によって文書中の罫線はなくならい。よって、表を認識することができるようなっている。
【００２９】
（ii）ステップ２０２
文書構造解析・データ抽出装置１００（プロセッサ１０６）は、文字行抽出処理を実行する（Ｓ２０２）。文字行抽出処理では、ステップ２０１で取得された文書中の文字行が抽出される。文書構造解析・データ抽出装置１００は、文字の位置情報と罫線の位置情報を用いて文字行の抽出を行う。これにより取得した文書中の文字行が抽出される。
【００３０】
（iii）ステップ２０３
文書構造解析・データ抽出装置１００（プロセッサ１０６）は、文字行判別処理を実行する（Ｓ２０３）。文字行判別処理では、文字行が何を示す文字行なのか、属性毎の属性確率が算出される。具体的には、1)物理情報による判別処理と、2)言語情報による判別処理と、3)辞書を用いた判別処理が実行される。属性情報としては、タイトル、ノーマル（前行からの文章の続き）、項目名（例えば、表）、データ等を用意する。文書構造解析・データ抽出装置１００のプロセッサ１０６は、1)と2)の結果から、タイトルの文字行らしさを示すタイトル属性確率、ノーマルの文字行らしさを示すノーマル属性確率、項目名の文字行らしさを示す項目名属性確率、データの文字行らしさを示すデータ属性確率を算出する。プロセッサ１０６は、1)の物理情報による判別については、インデント、センタリング、文字の大きさ、文字行の長さ、文字行の高さ等の情報を用いて行う。また、プロセッサ１０６は、2)の言語情報による判別については、“２章”、“２.２”、“（１）”等のheading情報との照合を行う。プロセッサ１０６は、物理情報による判別によって得られた結果と言語情報による判別によって得られた結果を用いて、タイトル属性確率、ノーマル属性確率を算出する。
【００３１】
タイトル属性確率の算出方法の例を説明する。事前に学習サンプルにあるタイトルの文字行の物理情報の平均ベクトル(Vt)を算出しておく。処理対象となる文字行の物理情報のベクトル(Vp)を算出し、VpとVtの距離が近いほど大きい値をとる関数によってタイトル文字行らしさを示す尤度とすることができる。尤度は１．０〜０．０の値へ正規化した値をタイトル属性確率とする。そして、“２章”、“２.２”、“（１）”等のheading情報との照合を行い、照合できた場合はそのままの値を属性確率とする。照合できなかった場合は、タイトル文字行らしさを下げるために、照合度が低いほど属性確率が低い値になるように１．０〜０．０を掛けた値を属性確率とする。尤度の算出方法は、上記のように平均ベクトルを用いる方法の他にも線形識別器を用いるなど、タイトル文字行らしさを算出する方法であればよい。また、尤度を算出せずIf-thenルールを用いて属性確率を算出することもできる。
【００３２】
次に、ノーマル属性確率の算出方法の例を説明する。事前に学習サンプルにあるノーマル文字行の物理情報の平均ベクトル(Vn)を算出しておく。処理対象となる文字行の物理情報のベクトル(Vp)を算出し、VpとVnの距離が近いほど大きい値をとる関数によってノーマル文字行らしさを示す尤度とすることができる。尤度は１．０〜０．０の値へ正規化した値をタイトル属性確率とする。そして、“２章”、“２.２”、“（１）”等のheading情報との照合を行い、照合できた場合は、ノーマル文字行ではない可能性が高いため、照合度が高いほど属性確率が低くなるように１．０〜０．０の値を掛けた値を属性確率とする。照合できなかった場合は、そのままの値を属性確率とする。尤度の算出方法は、上記のように平均ベクトルを用いる方法の他にも線形識別器を用いるなど、タイトル文字行らしさを算出する方法であればよい。また、尤度を算出せずIf-thenルールを用いて属性確率を算出することもできる。
【００３３】
また、項目名属性確率とデータ属性確率は、辞書を用いた判別処理で算出できる。詳細は後述する。
【００３４】
（iv）ステップ２０４
文書構造解析・データ抽出装置１００（プロセッサ１０６）は、文書構造ネットワーク生成処理を実行する（Ｓ２０４）。本処理により、可能性のある複数の文書構造を表現するネットワーク（多重仮説文書構造ネットワーク）が生成される。文書構造ネットワーク生成処理の詳細については後述する。
【００３５】
（v）ステップ２０５
文書構造解析・データ抽出装置１００（プロセッサ１０６）は、構造整合処理を実行する（Ｓ２０５）。本処理では、文書構造の階層関係の特性を用いて、文書全体として適した文書構造を決定する。構造整合処理の詳細については後述する。
【００３６】
（vi）ステップ２０６
文書構造解析・データ抽出装置１００（プロセッサ１０６）は、データ抽出処理を実行する（ステップＳ２０６）。本処理により、解析された文書構造を利用してデータが抽出される。
【００３７】
以下では、章構造解析処理とカラム構造と枠なし表の構造解析処理を例に文書構造解析について説明する。
【００３８】
＜章構造解析処理＞
（１）文書構造化処理結果の例
図３は、文字行抽出結果の一例を示す図であり、文字行判別処理（Ｓ２０３）によって得られた結果（例）を示している。図３の例では、Ａ〜Ｒまでの文字行があり、Sec、Sub Sec、Sub Sec のheading情報が記載されている。
【００３９】
図４は、文字行Ａと文字行Ｂに親子関係がある場合のネットワークを示している。親子関係にある場合、各ノードは、直列にエッジを構成する。
【００４０】
また、図５は、文字行Ａと文字行Ｂに兄弟関係がある場合のネットワークを示す。兄弟関係にある場合、各ノードは、親ノードを共有するようにエッジを構成する。
【００４１】
図６は、図３の文字行抽出結果を、ネットワーク化した結果（Ｓ２０４の結果）を示す図である。言語情報（例えば、Heading情報）と物理情報から解析できる。なお、図６において、Ｚは具体的な文字行を示すものではなく、例えば、文書名（ファイル名）を示している。ただし、何も書かれていなくも良いし、文書のタイトル（例えば、製品仕様書）でも良い。
【００４２】
（２）文書構造の曖昧性：文書構造化処理の難しさ
ところが、タイトルではない文字行の先頭に数字がある場合や、図７に示すようにheading情報がない場合、文書構造の解釈に曖昧性が発生してしまう。例えば、図７に示す文字行Ａと文字行Ｂの階層関係は親子関係なのか、兄弟なのか判断するが難しい。
【００４３】
（３）多重仮説文書構造ネットワーク生成処理
図８乃至１４を用いて、多重仮説文書構造ネットワーク生成処理（Ｓ２０４）について説明する。図８は、抽出された文字行（Heading情報なし）の例を示す図である。図８において、「オイルミストセパレータ」「ファン」「タービン」は、文書中に現れるキーワードを示している。また、図９乃至１１は、文書構造の解釈例を示す図である。
【００４４】
例えば、図８に示す文字行抽出結果が得られた場合、図９示すような文書構造の解釈が可能である。このとき、「オイルミストセパレータ」が含まれる文字行と「タービン」が含まれる文字行がタイトル文字行である。
【００４５】
しかし、「ファン」が含まれる文字行もタイトルの文字行である可能性が高く、図１０に示す文書構造が抽出される場合もある。これは誤った構造解析の結果であり、「オイルミストセパレータ」の「ファン」なのか、「タービン」の「ファン」なのかの区別ができなくなってしまう。
【００４６】
これに対して、図１１は、文字行Ｃと文字行Ｄの両方がタイトルである可能性があるため、それらを示すエッジを両方加えたネットワークを示している。
【００４７】
このように、どこまで尤もらしいかを解析することによって、可能性あるネットワークの数を決めることができる。これにより、複数の可能性のある構造を含んだ文書構造のネットワークを生成しておき、「オイルミストセパレータ」と「タービン」の「ファン」というデータを抽出できる。
【００４８】
（４）構造整合処理
図１２は、各エッジを構成する２つの文字行（ノード）の類似度（物理的類似度と言語的類似度）、兄弟関係度、及び親子関係度を示す表である。各文字行は、他の文字行に対し、物理的類似度と言語的類似度から求めた兄弟関係度、物理的類似度と言語的類似度から求めた親子関係度を持つ。そこで、図１２の表において、各エッジ（エッジＮｏ．１，２，・・・）を構成する２つの文字行（２つのノード）の物理的類似度、言語的類似度、兄弟関係度、及び親子関係度の値が示されている。これにより、兄弟関係度が強い文字行同士は、同じ階層のタイトル文字列を示す可能性が高いということになり、その値は高くなる。物理的類似度は、文字行のインデントの有りなし、文字の高さの違いなどから算出する。算出の方法には、各文字行のインデントの有無や文字の高さを特徴ベクトル化し、互いの特徴ベクトルの距離値を算出する方法や、予め定められた閾値をもとにIf-Thenルールで算出する方法などがある。
【００４９】
図１３は、属性確率表の例を示す図である。当該属性確率表は、各文字行が属性の種類に対する尤度を示す。タイトルである確率をＰｔ、ノーマルである確率をＰｎとしている。タイトル及びノーマルの属性確率は、インデント、センタリング、文字の大きさ、文字行の長さ、文字行の高さ等の情報と２章”、“２.２”、“（１）”等のheading情報との照合結果から求められる。
【００５０】
図１４は、各文字行がタイトルだった場合に何番目の階層のタイトルであるかを示す確率を示す図である。図１４において、第１階層である確率をＰｔ１、第２階層である確率をＰｔ２としている。これらの確率は、インデント、センタリング、文字の大きさ、文字行の長さ、文字行の高さ等の情報とheading情報との照合結果から求めることができる。
【００５１】
図１５は、属性関係確率表の例を示す図である。図１５の各表は、各文字行（ノード）間のエッジ毎に持つ情報を示している。つまり、各エッジ（文字行Ａと文字行Ｂのエッジ、文字行Ａと文字行Ｃのエッジ、・・・・）における前ノードの属性と自ノードの属性の関係が、タイトルからタイトルであるか、タイトルからノーマルであるか、ノーマルからノーマルであるか、ノーマルからタイトルであるかの確からしさを表わす値である。これら属性関係確率は、図１２〜図１４の表の情報から算出される。
【００５２】
そして、構造整合処理（Ｓ２０５）は、図１２〜図１５で示す値を用いて、実行される。図１６は、構造整合処理を説明するためのフローチャートである。各ノードを１つずつ調査し、属性判定可能な文字行が存在するまで続ける。属性判定可能な文字行がなくなれば終了する。
【００５３】
（i）ステップ１６０１
まず、プロセッサ１０６は、処理対象の文字行において、文字行の属性確率及びエッジの属性関係確率が判定可能かチェックする（Ｓ１６０１）。判定可能かどうかは各文字行にある判定フラグを用いる。判定フラグは初期値がOFFであり、OFFであれば判定可能である。属性判定可能な文字行がある場合には、処理はステップ１６０２に移行し、無い場合には、処理はステップ１６０６に移行する。
【００５４】
（ii）ステップ１６０２
プロセッサ１０６は、属性と属性関係を決定する（Ｓ１６０２）。ここでは、各属性確率（図１３参照）と各属性関係確率（図１５参照）が事前に決めた閾値よりも高い場合に、それらが示す属性がノードの属性として決定する。
【００５５】
（iii）ステップ１６０３
プロセッサ１０６は、ステップ１６０２において、属性と属性関係を決定できたか判定する（Ｓ１６０３）。つまり、プロセッサ１０６は、閾値処理によって、属性と属性関係を１つに確定できたかをチェックする。確定できた場合には、処理はＳ１６０４に移行し、確定できなかった場合には、処理はＳ１６０５に移行する。
【００５６】
（iv）ステップ１６０４
プロセッサ１０６は、関連ノードの属性確率と属性関係確率の変更を行う。つまり、着目中のノードと兄弟関係にある（兄弟関係度の高い）ノードの属性確率と属性関係確率、親子関係にあるノードの属性確率と属性関係確率の変更を行う。例えば、図１１において、文字行ＡとＢの間のエッジ及び文字行ＢとＣの間のエッジを決定すると、文字行Ｃがノーマルであると分かるので、文字行ＣとＤの間のネットワークで、ＣがタイトルでＤがノーマルであるという確率が減ることになる。よって、文字行ＣとＤのネットワーク（エッジ）を切断することが可能となる。そして、処理はＳ１６０１に移行する。属性と属性関係を決定できなくなるまで、当該エッジの処理は継続される。決定できなくなったときに判定フラグがONになる。
【００５７】
（v）ステップ１６０５
プロセッサ１０６は、処理対象を次のエッジにする（Ｓ１６０５）。
【００５８】
（vi）ステップ１６０６
プロセッサ１０６は、全てのエッジの判定が不可であった（属性と属性関係の決定ができなかった）か判定する（Ｓ１６０６）。全てのエッジの判定が不可でない場合（Ｓ１６０６でＮｏの場合）、処理はＳ１６０１に移行する。全てのエッジの判定が不可の場合（Ｓ１６０６でＹｅｓの場合）、処理は終了する。
【００５９】
（５）文書の階層構造を利用した構造整合処理の例
図１７乃至２０は、文書の階層構造を利用した構造整合処理の例を説明するための図である。
【００６０】
例えば、図１７に示すように、Ａ（タイトル）→Ｂ（ノーマル）→Ｃ（ノーマル）で決定された場合、図１８に示すように、ＣからＤへのタイトル→ノーマル、タイトル→タイトルの属性関係確率は低くなる。これにより親子関係度は低くなりエッジの関係がなくなる。
【００６１】
図１９の例では、Ａ（タイトル）→Ｂ（タイトル）→Ｆ（ノーマル）が決定され、ＢとＩとＯの兄弟関係が高い場合、Ａ（タイトル）→Ｉ（タイトル）→Ｊ（ノーマル）の属性接続確率が高くなる。これにより、図２０に示すように文書構造を絞り込むことができる。
【００６２】
（６）コンテンツ知識照合を利用した文書構造化処理
図２１は、コンテンツ知識照合を利用した場合の文書構造化処理を説明するためのフローチャートである。なお、図２１において、Ｓ２０１乃至Ｓ２０６の処理内容は、図２と同じである。また、コンテンツ知識照合処理（Ｓ２１０１）は、図２２に示す属性と属性関係の判定に用いられる。前述のように、閾値処理によって各ノード間のエッジを切断していたが、コンテンツ知識によってエッジを切断することもできる。また、各ノードが項目であるのか、データであるのかがコンテンツ知識照合処理によって決めることができる。図２２は「仕様書」を念頭にしたため、項目とデータが定義されているが、これらに限られるものではない。通常の文章では、コンテンツの関係として、タイトルと項目、タイトルとデータ、ノーマルとデータ、タイトルとそれ以外等、様々な組み合わせが存在する。
【００６３】
（i）コンテンツ知識辞書について
図２３は、コンテンツ知識辞書の例を示す図である。図２３において、各ノードのＡ、Ｂ、Ｃ、・・・は、ターム（単語或いは複合語）であり、エッジで結ばれたタームには論理的な関係があることを意味している。
【００６４】
本辞書の論理関係と文書構造ネットワークを照合することで、文書構造ネットワークの曖昧性を軽減する。具体的には、プロセッサ１０６は、ステップ２１０１において、コンテンツ知識辞書２１０２を参照し、文書構造ネットワークの中で、コンテンツ知識辞書の論理関係と一致する箇所の属性関係確率を上げる。
【００６５】
（ii）コンテンツ知識照合処理の例
図２４は、コンテンツ知識照合処理の例を示す図である。図２４において、太線で示すＡ→Ｂ→Ｃの関係があることを利用すると、図１７に示した太線の属性関係を高くすることができる。
【００６６】
また、図２５に示すように、Ａ→Ｃの関係であっても、図１７に示した文書構造ネットワークにおいて、Ａ→Ｃは直接結ばれた関係ではないが、文書構造上親子の関係があるため、属性関係確率を増加させることができる。
【００６７】
以上のように、コンテンツ知識辞書の親子関係を用いて照合することができるが理解される。
【００６８】
一方、図２６に示されるように、コンテンツ知識辞書の兄弟関係を用いて照合することも可能である。図２６に示すコンテンツ知識辞書では、ＡとＤに兄弟関係がある。これによって、文書構造ネットワーク上で兄弟関係となっているノード間の属性関係確率を増加させる。これにより、図２７に示す兄弟関係確率を増加させることが可能となる。
【００６９】
＜カラム構造と枠なし表の構造解析の構造解析＞
（１）文書構造化処理結果の例、および文書構造の曖昧性について
図２８は、カラム構造と枠なし表が記載された文書の構造解析結果の例を示す図である。
【００７０】
入力文書２８００については、図４１に示される領域分割処理（Ｓ４１０１）及び文字行判別処理（Ｓ２０３）を実行することによって、構造例２８０１、構造例２８０２、及び構造例２８０３のように、複数の文書構造によって構成されていると解釈することが可能である。
【００７１】
図２９は、図２８で示されるそれぞれの解釈をネットワーク形式で示したものである。文書構造ネットワーク生成処理（Ｓ２０４）を実行することによって、構造例２８０１は、ネットワーク２９０１のように、構造例２８０２は、ネットワーク２９０２のように、構造例２８０３は、ネットワーク２９０３のように、それぞれ表すことができる。
従って、これらのネットワークの何れに該当するのかを確定する必要がある。
【００７２】
（２）多重仮説文書構造ネットワーク生成
図３０は、レイアウト解析で一般に用いられるRecursive XY-cut法によって領域分割した結果を示す図である。この情報を用いて、図３１のように文書構造ネットワークを生成する（Ｓ２０４）。図３１の文書構造ネットワークは、表に現れる各項目やデータについて、可能性ある全ての属性関係を示したものとなっており、ここから属性確率や属性関係確率を用いて構造を確定していく。
【００７３】
（３）構造整合処理
図３２は、カラムや表における項目とデータの属性及びその属性確率を示す図である。この属性及び属性確率が各ノードに対して割り当てられる。図３２において、各ノードは文字行であり、項目である確率をＰｉ、データである確率をＰｄとする。
【００７４】
また、図２２に示すように、項目→項目、項目→データ、データ→データ、データ→項目の属性関係と属性関係確率を各エッジに持たせる。図２２において、項目→項目は、エッジの両端にあるノードが両方とも項目である確率を示している。項目→データとデータ→項目は、エッジの端が項目のノードとデータのノードである確率を示している。データ→データは、エッジの両端にあるノードが両方ともデータである確率を示している。
【００７５】
本処理で用いる確率（属性確率及び属性関係確率）は、それぞれの尤もらしさを表わす数値であればよい。例えば、事前に項目となる文字列とデータとなる文字列を辞書内に登録しておく。そして、処理対象の文字列と辞書内の文字列を照合する。照合の結果、完全一致する文字列が辞書内に存在すれば１、存在しない場合にも類似した文字列があればその類似度（１．０〜０．０）、すべて異なる文字列であれば０とする。辞書内に登録してある文字列毎に１．０〜０．０の重み値を登録しておき、類似度に重み値を掛けた値を用いることもできる。また、登録する文字列は正規表現文字列でもよく、正規表現とのマッチング度合いを類似度に掛けた値を用いることもできる。
【００７６】
（４）文書の階層構造を利用した構造整合処理の例
以下、図３１の文書構造ネットワークにおける属性関係確率の伝搬について、４つの例を挙げて説明する。
【００７７】
（i）具体例１
図３３及び３４は、具体例１を示す図である。図３３に示すように、Ｂ→Ｃ→Ｘの関係が決定できた場合、Ｂ→Ｅの属性関係確率を低下させる。また、同じ境界線を共有するＤ→Ｆ、Ｙ→Ｚの属性関係確率を低下させる。その結果、図３４の構造になる確率が増加する。
【００７８】
（ii）具体例２
図３５及び３６は、具体例２を示す図である。図３５に示すように、Ｂ→Ｅの関係が確定できた場合、Ｂ→Ｃへの属性関係確率を低下させる。また、同じ境界線を共有するＢ→Ｄ、Ｅ→Ｆ、Ｅ→Ｇの３つの属性関係確率を低下させる。その結果、図３６の構造になる確率が増加する。
【００７９】
（iii）具体例３
図３７及び３８は、具体例３を示す図である。図３７に示すように、Ｂ→Ｃの関係が確定した場合を考える。これに加え、ＢとＥの文字行の兄弟関係度が高い場合、図３８に示すように、Ｂ→Ｅの属性接続関係は低下し、Ａ→Ｂ、Ａ→Ｅへの属性関係確率を増加させる。その結果、図３８の構造になる確率が増加する。
【００８０】
（iv）具体例４
図３９及び４０は、具体例４を示す図である。具体例４は、図２５示すコンテンツ知識辞書を用いてコンテンツ知識照合を行った場合の例である。
【００８１】
コンテンツ知識辞書にＡ→Ｃの関係がある。これにより、Ａ→Ｂ→Ｃの属性接続確率が増加する。これにより、Ａ→Ｂ→Ｃ確定した場合、Ｂ→Ｅの属性接続確率が低下する。その結果Ａ→Ｅの属性接続確率が相対的に高くなるため、Ａ→Ｅの関係が決定される。
【００８２】
＜まとめ＞
（１）以上のように、本実施形態によれば、文書構造解析・データ抽出装置は、処理対象の文書データにおける文字行を抽出し、文書データの物理情報と言語情報を用いて、抽出された文字行の属性を判別し、当該判別の結果に基づいて、属性の尤もらしさを示す属性確率を算出する。また、当該装置は、文字行をノードとし、論理的関係を有する可能性のあるノード間にエッジを持たせることで、複数の文書構造の可能性を表現するように多重仮説文書構造ネットワークを生成する。さらに、当該装置は、属性確率と、属性確率に基づいて求められ、各エッジにおける属性関係が成立する確率を示す属性関係確率と、論理的関係の情報と、を用いて、文書データにおいて各ノード間の遷移が尤もらしい文書構造を決定する。このようにすることにより、文書全体として整合性が合うよう解析することができるため、解析結果の精度を高くすることができる。また、事前に文書を学習する、項目名の相対位置を定義する必要がないため、事前に定義する辞書の作成コストが少なくて済むという効果もある。このため、比較汎用的に高精度な解析を行うことができる。さらに、必ずしも辞書を用意する必要が無いため、より汎用的に用いることができる。
【００８３】
上述の論理的関係には、文書構造としての親子関係、兄弟関係が含まれる。このとき、多重仮説文書構造ネットワークを生成する場合、文書構造解析・データ抽出装置は、親子関係を有する可能性のあるノードについては直接エッジを形成させ、兄弟関係を有する可能性のあるノードについては共通の親ノードを持たせるようにする。これにより、各ノードの関係を明確に表現することが可能である。そして、各ノードの間で親子関係及び兄弟関係が成立する確率を用いることにより、エッジを切断するか、維持するか容易に判断することができるようになる。エッジの切断及び維持の判断は、例えば、各エッジにおいて、属性確率と属性関係確率を閾値処理することにより実現することができる。そして、この場合、ノードの属性確率と属性関係確率を変更しながら文書構造を絞り込むことが可能となる。また、コンテンツの単語の論理関係が登録されたコンテンツ知識辞書を用意し、これを参照して、コンテンツ知識辞書内の単語の論理的関係と、多重仮説文書構造ネットワーク内の論理的関係とを照合して、該当箇所の属性関係確率を変更することにより、文書構造を絞り込むようにしても良い。さらに、ユーザの指示操作によって、多重仮説文書構造ネットワーク内の部分的な論理的関係を決定し、属性関係確率を変更することにより、文書構造を絞り込むようにしても良い。
【００８４】
（２）本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【００８５】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【００８６】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【００８７】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【００８８】
（３）以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【００８９】
１００・・・文書構造解析・データ抽出装置
１０１・・・通信装置
１０２・・・画像取得装置
１０３・・・表示装置
１０４・・・補助記憶装置
１０５・・・メモリ
１０６・・・プロセッサ
１０７・・・入力装置
【図１】
2015127913.tif 000003
【図２】
2015127913.tif 000004
【図３】
2015127913.tif 000005
【図４】
2015127913.tif 000006
【図５】
2015127913.tif 000007
【図６】
2015127913.tif 000008
【図７】
2015127913.tif 000009
【図８】
2015127913.tif 000010
【図９】
2015127913.tif 000011
【図１０】
2015127913.tif 000012
【図１１】
2015127913.tif 000013
【図１２】
2015127913.tif 000014
【図１３】
2015127913.tif 000015
【図１４】
2015127913.tif 000016
【図１５】
2015127913.tif 000017
【図１６】
2015127913.tif 000018
【図１７】
2015127913.tif 000019
【図１８】
2015127913.tif 000020
【図１９】
2015127913.tif 000021
【図２０】
2015127913.tif 000022
【図２１】
2015127913.tif 000023
【図２２】
2015127913.tif 000024
【図２３】
2015127913.tif 000025
【図２４】
2015127913.tif 000026
【図２５】
2015127913.tif 000027
【図２６】
2015127913.tif 000028
【図２７】
2015127913.tif 000029
【図２８】
2015127913.tif 000030
【図２９】
2015127913.tif 000031
【図３０】
2015127913.tif 000032
【図３１】
2015127913.tif 000033
【図３２】
2015127913.tif 000034
【図３３】
2015127913.tif 000035
【図３４】
2015127913.tif 000036
【図３５】
2015127913.tif 000037
【図３６】
2015127913.tif 000038
【図３７】
2015127913.tif 000039
【図３８】
2015127913.tif 000040
【図３９】
2015127913.tif 000041
【図４０】
2015127913.tif 000042
【図４１】
2015127913.tif 000043