(57)【要約】【課題】構造が未知の表の表構造を誤認せずに正しく認識することが可能な表構造認識装置、表構造認識プログラム及び表構造認識方法を提供することを目的としている。【解決手段】入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる尤度波及部と、前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する重複時対処部と、を有する。【選択図】図２
2013205974.tif 000002
【特許請求の範囲】
【請求項１】
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる尤度波及部と、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する重複時対処部と、を有する表構造認識装置。
【請求項２】
前記尤度波及部は、
前記隣接する項目名セルと項目値セルとの組合せに前記尤度を減衰させて波及させる請求項１記載の表構造認識装置。
【請求項３】
前記尤度波及部は、
前記表の上から下へ向かう方向と、前記表の下から上に向かう方向と、前記表の左から右に向かう方向と、前記表の右から左に向かう方向の４方向を前記項目値セルが位置する方向と前記尤度とを波及させる波及方向とする請求項１又は２記載の表構造認識装置。
【請求項４】
前記重複時対処部は、
前記項目名セルを前記尤度の高い順に並べ、前記尤度の高い順に、前記項目名セルに対して項目値セルが位置する方向と、前記波及方向とを決定する請求項３記載の表構造認識装置。
【請求項５】
コンピュータに、
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを項目名候補データベースを参照して抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる処理と、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する処理と、を実行させる表構造認識プログラム。
【請求項６】
コンピュータが表構造を認識する表構造認識方法であって、該コンピュータに、
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを項目名候補データベースを参照して抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させ、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択させる表構造認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された文書データに含まれる表の構造を認識する表構造認識装置、表構造認識プログラム及び表構造認識方法に関する。
【背景技術】
【０００２】
例えばプログラムの要件定義書や業務の運用手順書等には、様々な事項が表形式にまとめられている場合がある。従来では、要件定義書や運用手順書等の整合性の判断や品質のチェックを行うため、表形式で記載された情報を読み取って、表構造を認識する技術が知られている。
【０００３】
例えば従来では、帳票等を解析して罫線等で囲われたセルとセルに記載をされた文字列とを認識し、項目名のセルの位置と、項目名に対応した項目値のセルとを認識し、表構造を抽出する技術が知られている。
【０００４】
また他には、帳票画像により、文字列が項目名である確率を示す項目名尤度と、文字列が項目値である確率を示す項目値尤度と、項目名と項目値との関係の妥当性を示す配置尤度と、を用いて、項目名と項目値との対応関係を決定する技術が知られている。
【０００５】
また他には、例えば入力された新規表構造に一番近い既存構造を選び、新規表構造と既存構造とで異なる部分に対して別の既存構造を採用する処理を繰り返し、表認識を可能とすることが知られている。更に従来では、各項目名候補となる条件と、該当項目名から見た項目値の位置とを既知の情報として表全体の認識を行うことが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２４８６０９号公報
【特許文献２】特開２００９−１２２７２３号公報
【特許文献３】特開２０１１−１４６５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来の技術では、認識対象の表に既知の情報が存在しない項目名が含まれていた場合や、項目名と類似する項目値が含まれる場合等は、表構造の認識精度が低くなる。
【０００８】
また従来の技術では、項目名と項目値との対応関係を決定する際に、項目名と項目値のペア毎の妥当性のみを判断基準としており、項目名と項目値とのペア同士の関係については考慮されていない。したがって、例えば隣接するペア同士における項目名と項目値との位置関係に統一性がなく、現実では発生し難い認識結果が出力される可能性がある。
【０００９】
開示の技術は、構造が未知の表の表構造を誤認せずに正しく認識することが可能な表構造認識装置、表構造認識プログラム及び表構造認識方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
開示の技術の一態様によれば、入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる尤度波及部と、前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する重複時対処部と、を有する。
【００１１】
上記各部を手順としてコンピュータにより実行させる方法、上記各部を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１２】
開示の技術によれば、構造が未知の表の表構造を誤認せずに正しく認識することができる。
【図面の簡単な説明】
【００１３】
【図１】表構造認識装置のハードウェアの構成例を示す図である。
【図２】表構造認識装置の機能構成の例を説明する図である。
【図３】文書データから抽出された表の例を示す図である。
【図４】項目名セルと項目値セルとの対応関係を説明する図である。
【図５】項目名・項目値対応関係抽出部から出力される項目名セルと項目値セルとの対応関係の例を示す図である。
【図６】表構造認識装置の動作を説明するフローチャートである。
【図７】尤度波及部の処理を説明する第一のフローチャートである。
【図８】尤度波及部の処理を説明する第二のフローチャートである。
【図９】尤度波及部の処理を説明する第一の具体例である。
【図１０】尤度波及部の処理の一部を実行した直後の状態の一例を示す図である。
【図１１】尤度波及部の処理を説明する第二の具体例である。
【図１２】尤度波及部の処理の一部を実行した直後の状態の他の例を示す図である。
【図１３】尤度波及部の処理を説明する第三の具体例である。
【図１４】尤度波及部の処理の一部を実行した直後の状態の他の例を示す図である。
【図１５】尤度波及部の処理を説明する第三のフローチャートである。
【図１６】尤度波及部の処理を説明する第四のフローチャートである。
【図１７】尤度波及部の項目値セルに値を設定した直後の状態を示す図である。
【図１８】重複時対処部の処理を説明するフローチャートである。
【図１９】設定済みフラグと無効化フラグとの設定欄が設けられた結果テーブルの例を示す図である。
【図２０】項目名セルの尤度が大きい順にソートした結果の一例を示す図である。
【図２１】設定済みフラグがオンとされた例を示す第一の図である。
【図２２】無効化フラグがオンとされた例を示す第一の図である。
【図２３】重複時対処の処理済みのセルを示す第一の図である。
【図２４】設定済みフラグがオンとされた例を示す第二の図である。
【図２５】無効化フラグが設定された例を示す第二の図である。
【図２６】全ての項目名セルに重複時対処の処理を行った状態の例を示す図である。
【図２７】表構造認識装置における表認識結果の一例を示す図である。
【発明を実施するための形態】
【００１４】
本実施例の表構造認識装置は、項目名セルと項目値セルとのペアにおいて項目名セルから見た項目値セルの向きと尤度とを、隣接する項目名セルと項目値セルのペアに伝達することで、表構造を正しく認識する。表構造とは、表における項目名と項目値にどのようなものがあり、項目名セルと項目値セルとがどのような配置されているかを表現したものである。
【００１５】
以下に図面を参照して本実施例の表構造認識装置について説明する。図１は、本実施例の表構造認識装置のハードウェア構成の一例を示す図である。
【００１６】
図１は、表構造認識装置のハードウェアの構成例を示す図である。本実施例の表構造認識装置１００は、それぞれバスＢで相互に接続されている入力装置１１、出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６及びインターフェース装置１７を有する。
【００１７】
入力装置１１はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置等を含み、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム，ＬＡＮ（Local Area Network）カード等を含み、ネットワークに接続する為に用いられる。
【００１８】
本実施例の表構造認識プログラムは、表構造認識装置１００を制御する各種プログラムの少なくとも一部である。表構造認識プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。表構造認識プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１９】
また、表構造認識プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、表構造認識プログラムは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた表構造認識プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００２０】
補助記憶装置１４は、インストールされた表構造認識プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から表構造認識プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置２５に格納された表構造認識プログラムに従って、後述するような各種処理を実現している。
【００２１】
図２は、表構造認識装置の機能構成の例を説明する図である。本実施例の表構造認識装置１００は、文書入力部１１０、表領域抽出部１２０、項目名・項目値対応関係抽出部１３０、波及尤度計算部１４０、データ出力部１５０、項目名候補データベース１６０を有する。
【００２２】
文書入力部１１０は、表構造認識装置１００に入力された文書データを取得する。文書データは、例えばワード文書データやＰＤＦ文書データ等であっても良い。
【００２３】
表領域抽出部１２０は、入力された文書データから、矩形部分の抽出機能を利用し、表の領域を抽出する。本実施例の表とは、文書中に現れる枠で囲まれた領域である。表の領域には、項目名を示す文字列が出現する項目名セルと、項目値を示す文字列が出現する項目値セルとが含まれる。
【００２４】
項目名・項目値対応関係抽出部１３０は、項目名候補データベース１６０を参照し、抽出した表の領域における項目名セルと項目値セルとの対応関係を抽出する。項目名候補データベース１６０は、例えば認識対象となる表の項目名セルに記載される文字列と、項目値セルに記載される文字列とが格納されたデータベースであり、例えば補助記憶装置１４の所定領域に設けられている。
【００２５】
本実施例の項目名・項目値対応関係抽出部１３０は項目名セルと項目値セルとの対応関係を抽出する。尚本実施例では、最小矩形領域（以下、セルと呼ぶ。）を項目名セル及び項目値セルとする。また本実施例における項目名セルと項目値セルとの対応関係とは、例えば項目名セルから項目値セルを見たときの項目値セルの向きと、その尤度である。本実施例の尤度は、例えば項目名らしさと項目値セルとの距離等から算出される。項目名らしさとは、例えば項目名候補データベース１６０で与えられた項目名との類似度を計算した結果により示される。
【００２６】
尚本実施例の項目名とは、項目名セルに出現する文字列の中で、値の意味を示すものであり、例えば見出し、ヘッダー等を含むものである。項目値は、表中の項目値セルに出現する文字列の中で、値に該当するものである。また本実施例の項目値セルの向きとは、表内において項目名セルから見て項目値セルが存在する方向である。項目値セルの向きは、例えば項目名セルの上下左右のみでなく、例えば「項目名セルから下方向に表内の最後の最小矩形まで」や「項目名セルから右方向に表内の最後の最小矩形まで」として、一つの項目名セルに複数の項目値セルの向きを対応付けても良い。また項目値セルの向きと尤度は、項目名セルと項目値セルのペアにおいて、項目名セルに付けられる。項目値セルには、対応する項目名セルに付けられた向きと尤度とが設定される。
【００２７】
波及尤度計算部１４０は、項目名・項目値対応関係抽出部１３０により抽出された項目名セルと項目値セルとの対応関係に基づき、項目値セルの向きと尤度を計算し、項目名セルと項目値セルとの妥当な組み合わせを決定する。波及尤度計算部１４０は、尤度波及部１４１と重複時対処部１４２と、を有する。尤度波及部１４１は、尤度の高い向きを隣接するセルへ伝達させる。重複時対処部１４２は、同一のセルに対して複数の向きが伝達された場合に、尤度が高い方の向きを選択する。波及尤度計算部１４０の詳細は後述する。
【００２８】
データ出力部１５０は、表構造認識装置１００による表構造の認識結果を出力する。本実施例の表構造は、例えば項目領域名と項目値セルとを対応されたリスト等の形式で出力される。
【００２９】
以下に、本実施例における項目名セルと項目値セルとの対応関係について説明する。図３は、文書データから抽出された表の例を示す図である。図３（Ａ）は抽出された表の例を示し、図３（Ｂ）は抽出された表の各セルを符号で表した例を示している。
【００３０】
本実施例の表３０は、文書入力部１１０から入力された文書データから表領域抽出部１４２０が抽出した表である。
【００３１】
表３０では、セルａ１，ａ３，ａ５，ｍ１，ｍ２，ｒ１，ｗ１，ｘ１，ｙ１，ｚ１が項目名が出現する項目値セルであり、それ以外のセルは項目値が出現する項目値セルである。
【００３２】
図４は、項目名セルと項目値セルとの対応関係を説明する図である。図４（Ａ）は項目値セルの向きと尤度とを説明する図であり、図４（Ｂ）は表３０における項目値セルの向きと尤度とを説明する図である。
【００３３】
本実施例の図４（Ａ）では、項目名セルから見た項目値セルの所在方向は、右である。したがって図４（Ａ）では、項目名セルの右側に、１つ項目値セルが存在することを示す。この記述を表３０に適用した例が図４（Ｂ）である。
【００３４】
図４（Ｂ）では、セルａ１は項目名セルであり、セルａ２とセルｈ１はセルａ１と対応した項目値セルである。セルａ２は、セルａ１の項目名に対応した項目値の領域である確率を示す尤度が０．３である。またセルｈ１は、セルａ１の項目名に対応した項目値の領域である確率を示す尤度は０．３である。またセルａ３は項目名セルであり、セルｈ３は、セルａ３に対応した項目値セルである。セルｈ３では、セルａ３と対応する項目値が格納されている確率を示す尤度は、０．６である。またセルａ５は項目名セルであり、セルｈ５はセルａ５と対応する項目値セルである。セルａ５では、セルａ５に対応した項目値が格納されている確率を示す尤度は１．０である。
【００３５】
図５は、項目名・項目値対応関係抽出部から出力される項目名セルと項目値セルとの対応関係の例を示す図である。
【００３６】
本実施例の項目名・項目値対応関係抽出部１３０は、入力された文書データから、項目名セルと項目値セルとの対応関係を対応関係テーブル５０として波及尤度計算部１４０に出力する。尚項目名・項目値対応関係抽出部１３０による項目名セルと項目値セルとの対応関係の抽出は、既存の表認識技術のどのような手法を用いて行っても良い。
【００３７】
対応関係テーブル５０では、セルを特定する矩形座標（セル名）と、項目名と、尤度と、項目名／項目値の何れかを示す種別と、項目名セルから見た項目値セルの向きと数と、項目値セルとなるセル名とが対応付けられて格納されている。
【００３８】
例えばセルａ１には項目名として文字列「システム機能ＩＤ」と書かれており、尤度は０．３、種別は項目名、項目値セルの向きは右、数は１つであり、項目値セルの矩形座標はセルｈ１である。すなわちセルａ１では、セルａ１に対応した項目値セルが右側にある尤度が０．３であり、セルａ１に対応した項目値セルが下側にある尤度が０．３である。
【００３９】
このように本実施例では、１つの項目名セルについて複数の項目値セルが対応付けられていても良い。
【００４０】
同様にセルｍ１では、項目名として文字列「機能名」と書かれており、尤度は０．３、種別は項目名、項目値セルの向きは下、数は１つであり、項目値セルの矩形座標はセルｍ２である。すなわちセルｍ１では、セルｍ１に対応した項目値セルが右側にある尤度が０．３である。
【００４１】
同様にセルｈ１では、種別は項目値であり、項目値セルであることがわかる。対応関係テーブル５０において、セルｈ１が項目値セルの矩形座標に格納されているセルは、セルａ１である。よってセルｈ１はセルａ１に対応する項目値セルであることがわかる。
【００４２】
また本実施例では、対応関係テーブル５０におけるセルｙ１，ｚ１等のように、対応付けが実施されておらず値が未格納の領域があっても良い。
【００４３】
本実施例の表構造認識装置１００では、以上のようにして抽出された項目名セルと項目値セルとの対応関係に基づき、波及尤度計算部１４０により項目名セルと項目値セルとの妥当な組み合わせを決定する。
【００４４】
本実施例の波及尤度計算部１４０の処理は、一般的な表において、項目名セルから見た項目値セルの向きが入り乱れた表が殆ど存在しない点に着目した処理である。すなわち本実施例では、既存技術による表認識により得られた項目名セルから見た項目値セルの向きを隣接する領域と比較し、向きが同じ方向になるように修正すれば、誤った表構造の認識をなくすことができる、という発想に基づくものである。
【００４５】
以下に図６を参照して本実施例の表構造認識装置１００の動作を説明する。図６は、表構造認識装置の動作を説明するフローチャートである。
【００４６】
本実施例の表構造認識装置１００は、文書入力部１１０により文書データの入力を受け付ける（ステップＳ６１）。続いて表構造認識装置１００は、表領域抽出部１２０により文書データから表の領域を抽出する（ステップＳ６２）。続いて表構造認識装置１００は、項目名・項目値対応関係抽出部１３０により、ステップＳ６２で抽出された表における項目名セルと項目値セルとの対応関係を抽出する（ステップＳ６３）。項目名セルと項目値セルとの対応関係の詳細は後述する。尚本実施例における表の領域の抽出及び項目名セルと項目値セルとの対応関係の抽出の処理は、例えば既存の表構造の認識技術により実現されても良い。
【００４７】
続いて表構造認識装置１００は、波及尤度計算部１４０の尤度波及部１４１により尤度の波及を行う（ステップＳ６４）。本実施例の尤度波及部１４１は、尤度の高い組合せにおける項目名セルの向きを、尤度を近傍の組合せに波及（伝達）させる。本実施例では、尤度を波及させる際に、所定の条件にしたがって尤度を減衰させる。また本実施例の尤度波及部１４１は、項目名セルの向きである上下左右の４つの向きについて、尤度の波及を行う。
【００４８】
尤度の波及は、表において下から上へ向かう方向への波及、上から下へ向かう方向への波及、右から左へ向かう方向への波及、左から右へ向かう方向への波及と、４つの方向についての波及を行う。
【００４９】
続いて表構造認識装置１００は、波及尤度計算部１４０の重複時対処部１４２により、重複時対処処理を行う（ステップＳ６５）。本実施例の重複時対処部１４２は、尤度を保持する全ての項目名セルを対象に、最大の尤度に対応する項目値セルの向きを採用する。そして全ての項目名セルにおいて、項目値セルの向きが採用された領域と重複する領域に対しては、項目値セルの向きを行わない。
【００５０】
ステップＳ６４とステップＳ６５の処理の詳細は後述する。
【００５１】
続いて表構造認識装置１００は、データ出力部１５０により、表構造として各項目名と、項目名に対応する項目値とをリストとして出力する（ステップＳ６６）。
【００５２】
以下に図７、図８を参照して本実施例の尤度波及部１４１の処理の一部を説明する。図７、図８で説明する処理は、項目名セルに対して行う処理である。
【００５３】
図７は、尤度波及部の処理を説明する第一のフローチャートである。
【００５４】
本実施例の尤度波及部１４１は、項目名・項目値対応関係抽出部１３０により抽出された対応関係テーブルから、尤度波及の処理に用いる情報を取得する（ステップＳ７０１）。ここで尤度波及部１４１が取得する情報は、対応関係テーブルにおける各セルの向き、項目名、尤度、自身の種別（項目名／項目値）である。
【００５５】
続いて尤度波及部１４１は、項目値セルの向きを上下左右から１つ決定し（ステップＳ７０２）、ステップＳ７０３〜ステップＳ７０９までの処理を繰り返す（ループ１）。
【００５６】
続いて尤度波及部１４１は、尤度を波及させる方向を後述する４方向から１つ決定し（ステップＳ７０３）、ステップＳ７０４からステップＳ７０８までの処理を繰り返す（ループ２）。
【００５７】
続いて尤度波及部１４１は、処理の開始セルと尤度を波及させる方向を決定する（ステップＳ７０４）。具体的には尤度を波及させる方向は、処理の開始セルを認識対象の表の一番左下のセルとして、下から上へ向かう方向と左から右へ向かう方向、開始セルを一番左上のセルとして上から下へ向かう方向、左から右へ向かう方向がある。またさらに尤度を波及させる方向は、開始セルを一番右上のセルとして、右から左へ向かう方向と上から下へ向かう方向、開始セルを一番右下のセルとして、右から左へ向かう方向と下から上へ向かう方向とがある。
【００５８】
続いて尤度波及部１４１は、使用変数の初期化と、処理対象となる領域の準備を行う（ステップＳ７０５）。続いて尤度波及部１４１は、処理の開始セルから終了セルまで順に、波及元となるセルの尤度から波及先となるセルの尤度を計算する処理を繰り返す（ループ３，ステップＳ７０６〜ステップＳ７０８）。尚ステップＳ７０７の処理の詳細は後述する。
【００５９】
ステップＳ７０６〜７０８の処理を行うと、尤度波及部１４１は、ステップＳ７０４で全ての方向について処理を行う（ステップＳ７０９）。続いて尤度波及部１４１は、ステップＳ７０２における全ての向きについて処理を行う（ステップＳ７１０）。
【００６０】
図８は、尤度波及部の処理を説明する第二のフローチャートである。図８では、図７のステップＳ７０７の処理の詳細に示している。
【００６１】
本実施例の尤度波及部１４１は、前回のループ３の実行で計算された隣接セルの尤度を取得する（ステップＳ８０１）。続いて尤度波及部１４１は、隣接セルから波及した尤度を減衰させ、このセルの尤度を計算する（ステップＳ８０２）。ここでＡ＝尤度−減衰量とする。
【００６２】
続いて尤度波及部１４１は、現在尤度の計算対象となっているセルに、ステップＳ７０２で決定した向き以外の向きに尤度がついているか否かを判断する（ステップＳ８０３）。本実施例では、波及させる向き以外の尤度を有する向きが存在する場合、波及させる向きの尤度を減衰させる。
【００６３】
ステップＳ８０３において別の向きが存在する場合、尤度波及部１４１は波及させる向きの尤度から減衰量を減算し、減算結果の値をＢとする（ステップＳ８０４）。尚本実施例では、減衰量は定数として予め設定されているものとした。また本実施例では、他の向きが存在する場合の尤度の減衰量が、他の向きが存在しない場合の減衰量よりも大きくなるようにした。
【００６４】
ステップＳ８０３において別の向きが存在しない場合、尤度波及部１４１は減算処理を実行しない（ステップＳ８０５）。
【００６５】
続いて尤度波及部１４１は、波及方向の隣接セル（向う隣）は同じ向きの尤度を有する項目名セルか否かを判断する（ステップＳ８０６）。ステップＳ８０６において項目名セルである場合、尤度波及部１４１は、波及させる尤度と、隣接セルの尤度との平均値を算出し、その値をＣとする（ステップＳ８０７）。ステップＳ８０６において項目名セルでない場合、尤度波及部１４１は、平均値を計算せず、Ｃ＝０となる（ステップＳ８０８）。
【００６６】
続いて尤度波及部１４１は、尤度計算対象のセルにおけるその向きの尤度をＤとする（ステップＳ８０９）。続いて尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も大きい値を尤度計算対象セルの尤度とする（ステップＳ８１０）。
【００６７】
尚本実施例では、尤度を波及させる際に減衰量の大きさを変える場合として説明したが、減衰量の大きさを変化させない場合には、ステップＳ８０３〜８０７までの処理は行わなくても良い。
【００６８】
続いて尤度波及部１４１は、尤度としてＤの値を採用したか否かを判断する（ステップＳ８１１）。ステップＳ８１１において、Ｄの値を尤度に採用した場合、尤度波及部１４１は、このセルを基点とする（ステップＳ８１２）。尚基点についての説明は後述する。ステップＳ８１１でＤの値を尤度に採用しなかった場合、尤度波及部１４１は、次に計算対象となるセルがあるか否かを判断する（ステップＳ８１３）。すなわち尤度波及部１４１は、現在のセルが表の端のセルか否かを判断する。
【００６９】
ステップＳ８１３において表の端であった場合、尤度波及部１４１は、基点＝ＮＵＬＬとする（ステップＳ８１４）。ステップＳ８１３において表の端でない場合、尤度波及部１４１は、次の尤度計算対象のセルが、現在計算対象であったセルの項目名に対応した項目値セルであるか否かを判断する（ステップＳ８１５）。
【００７０】
ステップＳ８１５で対応した項目値セルであった場合、尤度波及部１４１はこのセルの計算をスキップして、次にセルを尤度計算対象とし（ステップＳ８１６）、ステップＳ８１５へ戻る。ステップＳ８１５で対応した項目値セルでない場合、尤度波及部１４１は、ループ３の処理を終了する。
【００７１】
以下に本実施例の尤度波及部１４１の処理を具体的に説明する。以下の例では、図７のループ１における向きを項目名セルの向きを右向き、項目値セルの数を１とし、ループ２における波及方向を右下から右上とした場合を説明する。
【００７２】
図９は、尤度波及部の処理を説明する第一の具体例である。図９は、図４（Ｂ）に示す表３０に対して、尤度波及部１４１の処理を実行した例である。
【００７３】
図９において、波及方向は下から上である。よってループ３において最初に尤度の計算対象となるセルは、セルａ５である。対応関係テーブル５０において、セルａ５は項目名であり、対応する項目値セルの向きは右、尤度は１．０である。
【００７４】
ここでセルａ５は、最初のセルなので、前のループ３の処理で計算された尤度は存在しない。またセルａ５には、別の向きの尤度はついておらず、セルａ５の下方向に隣接するセルも存在しない。
【００７５】
したがってセルａ５の尤度は、自身の尤度１．０となり、セルａ５は基点となる。尚本実施例の基点とは、ある方向へ尤度を波及させる際の最初のセルを示す。すなわちセルａ５は、右向きの尤度を表３０の下から上に波及させる際の最初のセルである。
【００７６】
次の尤度の計算対象となるセルは、尤度の波及方向が下から上であるから、セルａ５の上にある項目名セルであるセルａ３となる。
【００７７】
セルａ３が計算対象となった場合、前のループ３の処理で計算された尤度は１．０である。よってセルａ３の右向きの尤度は、Ａ＝１．０−減衰量となる。ここで本実施例では、例えば他の向きの尤度がついていない場合の尤度の減衰量を０．１とし、他の向きの尤度がついている場合の尤度の減衰量を０．２とした。
【００７８】
セルａ３には他の向きの尤度はついていないため、セルａ３の尤度の計算で用いられる減衰量は０．１である。よってセルａ３の右向きの尤度は、Ａ＝１．０−０．１＝０．９となる。またセルａ３には他の向きの尤度はついていないため、Ｂ＝０となる。またセルａ３の上方向で隣接するセルａ２は、ほかの向きの尤度がついていないため、Ｃ＝０となる。
【００７９】
ここで、セルａ３自身が有する右向きの尤度はＤ＝０．６である（図４（Ｂ）参照）。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＡ＝０．９をセルａ３の右向きの尤度とする。またここではセルａ３自身の尤度は採用されていないため、セルａ３は基点とならない。
【００８０】
次の尤度の計算対象となるセルは、尤度の波及方向が右下から右上であるから、セルａ３の上にあるセルａ２となる。セルａ２は、項目値セルであるが、セルａ３に対応した項目値セルではないため、尤度波及部１４１の処理が行われる。
【００８１】
セルａ２が計算対象となった場合、前のループ３の処理で計算された波及尤度はセル３の０．９である。よってセルａ２の右向きの尤度は、Ａ＝０．９−減衰量となる。セルａ２には他の向きの尤度はついていないため、セルａ２の尤度の計算で用いられる減衰量は０．１である。よってセルａ２の右向きの尤度は、Ａ＝０．９−０．１＝０．８となる。またセルａ３には他の向きの尤度はついていないため、Ｂ＝０となる。
【００８２】
またセルａ２の上方向で隣接するセルａ１は、下向きの尤度０．３がついている。よって尤度波及部１４１は、波及尤度０．９と、０．３との平均値Ｃを計算する。Ｃの値は０．６となる。
【００８３】
ここで、セルａ２自身は右向きの尤度を有していない。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＡ＝０．８をセルａ２の右向きの尤度とする。またここではセルａ２自身の尤度は採用されていないため、セルａ２は基点とならない。
【００８４】
次の尤度の計算対象となるセルは、尤度の波及方向が下から上であるから、セルａ２の上にあるセルａ１となる。
【００８５】
セルａ１が計算対象となった場合、前のループ３の処理で計算された波及尤度はセル２の０．８である。またセルａ１には下向きの尤度がついているため、セルａ１の尤度の計算で用いられる減衰量は０．２である。よってセルａ１の右向きの尤度は、Ｂ＝０．８−０．２＝０．６となる。またセルａ１の上方向に隣接するセルは存在しないため、Ｃ＝０となる。
【００８６】
ここで、セルａ１自身が有する右向きの尤度はＤ＝０．３である（図４（Ｂ）参照）。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＢ＝０．６をセルａ１の右向きの尤度とする。またここではセルａ１自身の尤度は採用されていないため、セルａ１は基点とならない。
【００８７】
次に尤度波及部１４１は、右方向に進み、次の尤度の計算対象となるセルはセルｈ５となる。セルｈ５は、項目値セルであり、自身の尤度もっていないため、尤度の計算処理は不要となりスキップされる。
【００８８】
次の尤度の計算対象となるセルは、セルｈ５の上方向に隣接するセルｈ３である。セルｈ３もセルｈ５と同じくここでは処理不要となりスキップされる。セルｈ２，セルｈ１も同様である。尚項目値セルにおける向きと尤度は、後述する項目値セルの処理で決定される。
【００８９】
次に尤度波及部１４１は、再度右方向に進む。ここでは、セルｈ５，ｈ３については一度処理が実行されているため、次の尤度の計算対象となるセルは、セルｍ２となる。
【００９０】
セルｍ２が計算対象となった場合、前のループ３の処理で計算された波及尤度はセル１の０．６であり、セルｍ２には他の向きはついていないため、セルｍ２の尤度の計算で用いられる減衰量は０．１である。よってセルｍ１の右向きの尤度は、Ｂ＝０．６−０．１＝０．５となる。
【００９１】
またセルｍ２の上方向で隣接するセルｍ１は、下向きの尤度０．３がついている。よって尤度波及部１４１は、波及尤度０．６と、０．３との平均値Ｃを計算する。Ｃの値は０．４５となる。
【００９２】
ここで、セルｍ２自身が有する右向きの尤度はＤ＝０．８である（図４（Ｂ）参照）。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＤ＝０．８をセルｍ２の右向きの尤度とする。またここでは、セルｍ２自身の尤度が採用されているため、基点がセルａ５からセルｍ２へ変更される。したがってセルｍ１以降において右向きの尤度を計算する場合の基点は、セルｍ２となる。
【００９３】
次の尤度の計算対象となるセルは、セルｍ１となる。セルｍ１は項目名セルであり、下向きの尤度がついている。よってセルｍ２の尤度の計算で用いられる減衰量は０．１である。よってセルｍ１の右向きの尤度は、Ｂ＝０．８−０．２＝０．６となる。ここでセルｍ１には右向きの尤度はついていないため、セルｍ１の尤度は０．６となる。
【００９４】
図１０は、尤度波及部の処理の一部を実行した直後の状態の一例を示す図である。図１０は、項目名・項目値対応関係抽出部１３０により抽出された対応関係テーブル５０に、尤度波及部１４１による処理結果を追加した結果テーブル５１である。
【００９５】
図１０では、ループ１における向きを項目名セルの向きを右向き、項目値セルの数を１とし、ループ２における波及方向を下から上とした場合を実行した直後の状態を示している。
【００９６】
図１０では、作業情報１０１に含まれる波及方向上１０２において、ループ３の処理で計算された各セルの尤度が格納されている。
【００９７】
次に、ループ２における波及方向を他の方向にした場合を説明する。
【００９８】
図１１は、尤度波及部の処理を説明する第二の具体例である。図１１（Ａ）はループ２の波及方向を上から下とした場合の例を示し、図１１（Ｂ）はループ２の波及方向を右から左とした場合を示し、図１１（Ｃ）はループ２の波及方向を左から右とした場合を示す。
【００９９】
図１１（Ａ）では、最初の尤度の計算対象となるセルは、尤度の波及方向が上から下であるから、セルａ１が最初のセルとなる。セルａ１は項目名セルである。セルａ１は最初のセルなので、前のループ３の処理で計算された尤度は存在しない。またセルａ１には、別の向きの尤度はついておらず、別の向きがついているセルとも隣接していない。したがってセルａ１の尤度は、自身の尤度０．３となり、セルａ１は基点となる。
【０１００】
次に尤度の計算対象となるセルは、セルａ１の下方向で隣接するセルａ２であるが、セルａ２はセルａ１と対応する項目値セルであるから、処理はスキップされる。
【０１０１】
次に尤度の計算対象となるセルは、セルａ２の下方向で隣接するセルａ３である。セルａ３が計算対象となった場合、前のループ３の処理で計算された尤度は０．３である。セルａ３には他の向きの尤度はついていないため、セルａ３の尤度の計算で用いられる減衰量は０．１である。よってセルａ３の右向きの尤度は、Ａ＝０．３−０．１＝０．２となり、Ｂ＝０となる。またセルａ３の下方向で隣接するセルａ４は、他の向きの尤度がついていないため、Ｃ＝０となる。
【０１０２】
ここで、セルａ３自身の右向きに０．６の尤度がついているため、Ｄ＝０．６である。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＤ＝０．６をセルａ３の右向きの尤度とする。またここではセルａ３自身の尤度は採用されため、基点がセルａ１からセルａ３へ変更される。
【０１０３】
次に尤度の計算対象となるセルは、セルａ３の下方向で隣接するセルａ５である。セルａ５が計算対象となった場合、前のループ３の処理で計算された尤度は０．６である。セルａ５には他の向きの尤度はついていないため、セルａ５の尤度の計算で用いられる減衰量は０．１である。よってセルａ５の右向きの尤度は、Ａ＝０．６−０．１＝０．５となり、Ｂ＝０となる。またセルａ５の下方向で隣接するセルは存在しないため、Ｃ＝０となる。
【０１０４】
ここで、セルａ５自身の右向きに１．０の尤度がついているため、Ｄ＝１．０である。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＤ＝１．０をセルａ５の右向きの尤度とする。またここではセルａ５自身の尤度は採用されため、基点がセルａ３からセルａ５へ変更される。
【０１０５】
図１１（Ｂ）では、最初の尤度の計算対象となるセルは、尤度の波及方向が左から右であるから、セルｚ１が最初のセルとなるが、セルｚ１は右向きの尤度がついていない。またセルｚ１の左方向で隣接するセルｙ１も、セルｙ１の左側で隣接するセルｗ１も、右向きの尤度がついていない。この行では、セルａ１まで、右向きの尤度がついたセルは存在しない。よってセルａ１が基点となり、右向きの尤度は０．３となる。
【０１０６】
次に尤度の計算対象となるセルは、セルｚ２である。セルｚ２の行でも、セルｍ２まで右向きの尤度がついてセルが存在しない。
【０１０７】
よってセルｍ２が基点となり、セルｍ２の右向きの尤度は０．８となる。
【０１０８】
次に尤度の計算対象となるセルは、セルｍ１の左方向で隣接するセルｈ２である。セルｈ２は項目値セルであるが、セルｍ１と対応した項目値セルではないため、尤度の計算を行う。セルｈ２には他の向きの尤度はついていないため、ここで用いられる減衰量は０．１である。よってセルｈ２においてＡ＝０．８−０．１＝０．７となる。
【０１０９】
次に尤度の計算対象となるセルは、セルａ２である。セルａ２も項目値セルであるが、セルｈ２に対応する項目値セルではないため、尤度の計算が行われる。セルａ２が尤度の計算対象となった場合、前のループ３の処理で計算された尤度は０．７である。セルａ２には他の向きの尤度はついていないため、セルａ２の尤度の計算で用いられる減衰量は０．１である。よってセルａ２の右向きの尤度は、Ａ＝０．７−０．１＝０．６となり、Ｂ＝０となる。
【０１１０】
ここで、セルａ２も自身の尤度を有していない。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＡ＝０．６をセルａ２の右向きの尤度とする。またここではセルａ２自身の尤度は採用されていないため、セルｈ２は基点とならない。
【０１１１】
図１１（Ｃ）では、最初の尤度の計算対象となるセルは、尤度の波及方向が左から右であるから、セルａ１が最初のセルとなる。セルａ１は最初のセルなので、前のループ３の処理で計算された尤度は存在しない。またセルａ１には、別の向きの尤度はついておらず、別の向きがついているセルとも隣接していない。したがってセルａ１の尤度は、自身の尤度０．３となり、セルａ１は基点となる。
【０１１２】
セルａ１の右方向に隣接するセルｈ１は、セルａ１と対応する項目値セルであるから処理はスキップされる。よってセルｍ１が次の尤度の計算対象のセルとなる。セルｍ１が計算対象となった場合、前のループ３の処理で計算された尤度は０．３である。またセルｍ１には下向きの尤度はついているため、セルｍ１の尤度の計算で用いられる減衰量は０．２である。よってセルｍ１の右向きの尤度はＢ＝０．３−０．２＝０．１となる。
【０１１３】
同様にしてセルｘ１の右向きの尤度を計算すると、セルｘ１の右向きの尤度がゼロになる。すなわち、セルａ１の右向きの尤度が小さいため、右向きに１つの項目値セルという情報はセルｘ１までしか伝達されない。同様にして他の行についても尤度が計算される。尚図１１では、枠線で囲われた数字は、基点となるセルの尤度を示す。
【０１１４】
図１２は、尤度波及部の処理の一部を実行した直後の状態の他の例を示す図である。図１２は、結果テーブル５１において他の波及方向における尤度と向きが設定された状態を示す。
【０１１５】
図１２では、ループ１における向きを項目名セルの向きを右向き、項目値セルの数を１とし、ループ２における４方向全て行った場合を実行した直後の状態を示している。
【０１１６】
図１２では、作業情報１０１に含まれる波及方向上１０２以外の波及方向下１０３、波及方向左１０４、波及方向右１０５においてループ３の処理で計算された各セルの尤度が格納されている。
【０１１７】
次に、ループ１における項目値セルの向きを下向きとした場合を説明する。
【０１１８】
図１３は、尤度波及部の処理を説明する第三の具体例である。図１３（Ａ）は項目値セルの向きを下向きとし、ループ２の波及方向を下から上とした場合の例を示し、図１３（Ｂ）は項目値セルの向きを下向きとし、ループ２の波及方向を上から下とした場合の例を示す。図１３（Ｃ）は項目値セルの向きを下向きとし、ループ２の波及方向を右から左とした場合を示し、図１３（Ｄ）は項目値セルの向きを下向きとし、ループ２の波及方向を左から右とした場合を示す。
【０１１９】
図１３（Ａ）では、最初の尤度の計算対象となるセルは、セルａ５であるが、セルａ５は下向きの尤度がついていないためスキップする。次の尤度の計算対象となるセルは、セルａ５の上方向で隣接するセルａ３である。しかし、セルａ３も下向きの尤度がついていないため、スキップされる。
【０１２０】
このようにしてセルａ５の列は、セルａ１まで下向きの尤度がついたセルが存在しない。この場合、セルａ１が基点となり、下向きの尤度は自身の尤度０．３となる。
【０１２１】
次に尤度の計算対象となるセルは、セルｈ５であるが、セルｈ５の列は全て項目値セルであるから、尤度の計算はスキップされる。
【０１２２】
次に尤度の計算対象となるセルは、セルｍ２であるが、セルｍ２は下向きの尤度はついていないため、スキップされる。次の尤度の計算対象のセルは、セルｍ１である。セルｍ１は、下向きの尤度が存在する。よってこの場合、セルｍ１が基点となり、下向きの尤度はセルｍ１自身の尤度０．３となる。
【０１２３】
その他の列についても同様に、尤度が計算される。
【０１２４】
図１３（Ｂ）では、波及方向が上からなので、最初の尤度の計算対象となるセルはセルａ１である。セルａ１は、下向きの尤度０．３を有し、自身の尤度がセルａ１の尤度に採用されている。よってセルａ１が基点となる。
【０１２５】
セルａ１の下方向に隣接するセルａ２は、セルａ１と対応する項目値セルであるか処理はスキップされる。よって次に計算対象となるのは、セルａ３である。セルａ３には、右向きの尤度がついている。よってセルａ３の尤度の計算で用いられる減衰量は０．２である。セルａ３の右向きの尤度は、Ａ＝０．３−０．２＝０．１となる。またセルａ３の下方向で隣接するセルａ５は、右向きの尤度がついているため、セルａ３からの下向きの尤度は、尤度が小さすぎて伝達されない。
【０１２６】
図１３（Ｃ）では、波及方向が右から左であるから、最初の尤度の計算対象となるセルはセルｚ１であるが、セルｚ１は下向きの尤度はついていないため、スキップされる。セルｚ１の行で、最初に下向きの尤度がついていたのはセルｘ１である。よってセルｘ１が基点となり、セルｘ１の下向きの尤度０．８が採用される。
【０１２７】
次に尤度の計算対象となるセルは、セルｘ１の左方向で隣接するセルｗ１である。セルｗ１が計算対象のセルとなると、前のループ３の処理で計算された尤度は０．８である。またセルｗ１には他の向きの尤度はついていないため、セルｗ１の尤度の計算で用いられる減衰量は０．１である。よってセルｗ１の下向きの尤度は、Ａ＝０．８−０．１＝０．７となる。
【０１２８】
ここで本実施例の尤度波及部１４１は、セルｗ１の左方向で隣接するセルｒ１における下向きの尤度が０．８であることに着目する。すなわちセルｗ１は、左右両側において隣接するセルが、下方向に０．８の尤度を有することになる。本実施例の尤度波及部１４１は、このように両側の隣接するセルの尤度と向きが同じである場合、間に挟まれたセルｗ１の尤度は、両側のセルの尤度と同じとする。よって図１３（Ｃ）の例では、セルｗ１は下向きの尤度０．８が採用される。
【０１２９】
図１３（Ｄ）では、波及方向が左から右であるから、最初の尤度の計算対象となるセルは、セルａ１である。セルａ１の下向きの尤度は０．３である。セルａ１が基点となり、セルａ１の下向きの尤度０．３が採用される。
【０１３０】
次に尤度の計算対象となるセルは、セルａ１の右方向で隣接するセルｈ１であるが、セルｈ１はセルａ１に対応する項目値セルであるから、処理はスキップされる。よって次の計算対象のセルは、セルｍ１である。セルｍ１が計算対象となった場合、前のループ３の処理で計算された尤度は０．３である。セルｍ１には他の向きの尤度はついていないため、セルｍ１の尤度の計算で用いられる減衰量は０．１である。よってセルｍ１の下向きの尤度は、Ａ＝０．３−０．１＝０．２となり、Ｂ＝０となる。またセルｍ１の下方向で隣接するセルｒ１は、他の向きの尤度がついていないため、Ｃ＝０となる。
【０１３１】
ここで、セルｍ１自身の下向きの尤度Ｄ＝０．３である。したがって尤度波及部１４１は、Ａ，Ｂ，Ｃ，Ｄ，０のうち最も値が大きいＤ＝０．３をセルｍ１の下向きの尤度とする。またここではセルｍ１自身の尤度は採用されたため、セルｍ１は基点となる。他の同様にして計算される。
【０１３２】
図１４は、尤度波及部の処理の一部を実行した直後の状態の他の例を示す図である。図１４は、結果テーブル５１に、ループ１における向きを項目名セルの向きを下向き、項目値セルの数を１とし、ループ２における４方向全て行った場合を実行した結果を追加した結果テーブル５２を示している。
【０１３３】
図１４では、作業情報１０１に含まれる波及方向上１０２以外の波及方向下１０３、波及方向左１０４、波及方向右１０５においてループ３の処理で計算された各セルの尤度が格納されている。また作業情報１１１に含まれる波及方向上１１２以外の波及方向下１１３、波及方向左１１４、波及方向右１１５においてループ３の処理で計算された各セルの尤度が格納されている。尚本実施例では、図示していないが、結果テーブル５２には、ループ１における向きを項目名セルの向きを上向き、左向きとした場合のそれぞれの結果がさらに追加される。
【０１３４】
次に図１５、図１６を参照して本実施例の尤度波及部１４１の処理の一部を説明する。図１５、図１６で説明する処理は、項目値セルに対して行う処理である。本実施例の尤度波及部１４１は、前述した項目名セルに対する処理と、後述する項目値セルに対する処理とを行うと、重複時対処部１４２に処理へ移行する。
【０１３５】
図１５は、尤度波及部の処理を説明する第三のフローチャートである。
【０１３６】
図１５のステップＳ１５０１からステップＳ１５０５及びステップＳ１５０７からステップＳ１５０９までの処理は、図７のステップＳ７０１からステップＳ７０５及びステップＳ７０７からステップＳ７０９までの処理と同様であるから説明を省略する。
【０１３７】
ステップＳ１５０５においてループ１３が開始されると、尤度波及部１４１は、項目名セルの尤度を項目値セルに設定する（ステップＳ１５０６）。
【０１３８】
以下に図１６を参照してステップＳ１５０６の処理の詳細を説明する。図１６は、尤度波及部の処理を説明する第四のフローチャートである。
【０１３９】
本実施例の尤度波及部１４１は、始めにステップＳ１６０１からステップＳ１６０３を実行して項目名セルを把握する処理を行う。
【０１４０】
本実施例の尤度波及部１４１は、あるセルに向きと尤度とがついているか否かを判断する（ステップＳ１６０１）。ステップＳ１６０１において向きと尤度がついている場合、尤度波及部１４１は、そのセルを項目名セルと判断し、該当する項目名セルの尤度と、基点となるセルの座標を読み込む（ステップＳ１６０２）。ステップＳ１６０１において向きと尤度がついていない場合、処理を終了する。続いて尤度波及部１４１は、項目名セルに対応する項目値セルを把握する（ステップＳ１６０３）。
【０１４１】
本実施例の尤度波及部１４１は、次にステップＳ１６０４からステップＳ１６０６のループ１４を実行して項目値セルに情報を設定する。
【０１４２】
尤度波及部１４１は、項目値セルであるセルに対して、ステップＳ１６０５の処理を繰り返す（ステップＳ１６０４）。尤度波及部１４１は、自身が項目値セルであること、対応する項目名の情報とを設定する。項目名の情報とは、項目名セルにつけられた尤度と、基点を示す。
【０１４３】
尤度波及部１４１は、ステップＳ１６０５の処理が全ての項目名セルに対して終了すると（ステップＳ１６０６）、処理を終了する。
【０１４４】
図１７は、尤度波及部の項目値セルに値を設定した直後の状態を示す図である。図１７では、結果テーブル５２において、項目名セルに対応する項目値セルに向きと、尤度と、項目値セルであることとが設定されている。
【０１４５】
例えば項目名セルであるセルａ５について説明する。尤度波及部１４１は、セルａ５と対応する項目値セルと、向き、尤度、基点とを読み込む。この場合、セルａ５と対応する項目値セルは右側にあるセルｈ５の１つあり、基点はセルａ５であり、尤度が１であることがわかる。よって尤度波及部１４１は、セルｈ５の向きを右、基点をセルａ５、尤度を１と設定する。
【０１４６】
本実施例の尤度波及部１４１は、他の項目値セルにおいても同様の設定を行う。尚本実施例では、項目名セルに対する処理の段階で、向きと尤度が決められた項目値セルについては、先に決められた向きと値とを優先させても良い。
【０１４７】
次に、図１８を参照して本実施例の重複時対処部１４２の処理を説明する。図１８は、重複時対処部の処理を説明するフローチャートである。
【０１４８】
本実施例の重複時対処部１４２は、尤度波及部１４１から出力された結果における全てのセルについて、設定済みフラグと無効化フラグとを設け、全ての設定済みフラグと無効化フラグとをオフとする（ステップＳ１８０１）。尚設定済みフラグは、セル毎に設定されるフラグであり、各セルに対して尤度と向きとの設定が確定したことを示すフラグである。無効化フラグは、各セルにおける波及方向毎に対して設定されるフラグであり、無効化フラグがオンとなった波及方向の尤度と向きを無効とすることを示すフラグである。
【０１４９】
続いて重複時対処部１４２は、尤度波及部１４１による全ての処理の結果が設定された結果テーブルにおいて、項目名セルの全てについて、尤度の大きいものから順にソートする（ステップＳ１８０２）。
【０１５０】
続いて重複時対処部１４２は、ソートされた項目名セルに対してステップＳ１８０４以降の処理を行う（ステップＳ１８０３）。
【０１５１】
重複時対処部１４２は、項目名セルについて、設定済みフラグがオフで、且つ無効化フラグがオフであり、且つ対応する全ての項目値セルの設定済みフラグがオフであるか否かを判断する（ステップＳ１８０４）。ステップＳ１８０４において、設定済みフラグ、無効化フラグ共にオフ、対応する項目値セルも設定済みフラグがオフでない場合、重複時対処部１４２は後述するステップＳ１８０９へ進む。
【０１５２】
ステップＳ１８０４において、設定済みフラグ、無効化フラグ共にオフ、対応する項目値セルも設定済みフラグがオフであった場合、重複時対処部１４２は、採用する向きを決定する（ステップＳ１８０５）。
【０１５３】
具体的には重複時対処部１４２は、項目名セルの尤度と向きをこの項目名セルの尤度と向きに決定する。そしてこの項目名セル及び対応する全ての項目値セルの設定済みフラグをオンとする。
【０１５４】
続いて重複時対処部１４２は、この項目名セルに異なる向きの尤度が存在するか否かを判断する（ステップＳ１８０６）。ステップＳ１８０６において異なる向きの尤度が存在しない場合、重複時対処部１４２は後述するステップＳ１８０９へ進む。
【０１５５】
ステップＳ１８０６において異なる向きの尤度が存在する場合、重複時対処部１４２はステップＳ１８０７及びステップＳ１８０８において尤度の波及を撤回させる波及撤回処理を行う。
【０１５６】
重複時対処部１４２は、項目名セルにおける異なる向きの尤度と基点とを結果テーブルから読み込む（ステップＳ１８０７）。続いて重複時対処部１４２は、この項目名セルの先にあり、向きと基点とがステップＳ１８０７で読み込んだものと等しく且つ尤度を有するセルにおいて、ステップＳ１８０７で読み込んだ向きと波及方向の無効化フラグをオンとする（ステップＳ１８０８）。ステップＳ１８０７とステップＳ１８０８の処理については、具体例を用いて詳細を後述する。
【０１５７】
続いて重複時対処部１４２は、全てのセルについて設定済みフラグがオンか否かを判断する（ステップＳ１８０９）。ステップＳ１８０９において全ての設定済みフラグがオンの場合処理を終了する。ステップＳ１８０９において全ての設定済みフラグがオンとなっていない場合、重複時対処部１４２はステップＳ１８０３へ戻る（ステップＳ１８１０）。
【０１５８】
次に、具体例を参照して本実施例の重複時対処部１４２の処理を説明する。図１９は、設定済みフラグと無効化フラグとの設定欄が設けられた結果テーブルの例を示す図である。図１９に示す結果テーブル５３では、矩形座標（セル名）と、設定済みフラグの設定欄１９１と、セルの種別とが対応付けられている。また図１９に示す結果テーブル５４では、矩形座標（セル名）と、波及及方向毎の無効化フラグの設定欄１９２〜１９５とが設けられている。図１９では、設定済みフラグ、無効化フラグ共に全てオフとされている。本実施例の図１９は、例えばステップＳ１８０１の処理が実行された後の状態である。
【０１５９】
図２０は、項目名セルの尤度が大きい順にソートした結果の一例を示す図である。図２０の結果テーブル５５では、結果テーブル５２において尤度の大きい項目名セルから順にソートした結果である。結果テーブル５５では、項目名セルと、対応した項目名セルの組合せ毎にソートした。
【０１６０】
例えば項目名セルに付けられた尤度で最も大きい値は１．０である。よって重複時対処部１４２は、項目名セルであり且つ尤度が１．０のセルａ５と、セルａ５に対応する項目値セルであるセルｈ５と組合せが結果テーブル５５の最初の組合せとなる。
【０１６１】
次に大きい尤度は０．９である。よって重複時対処部１４２は、項目名セルであり且つ尤度が０．９のセルａ３と、セルａ３に対応する項目値セルであるセルｈ３と組合せが結果テーブル５５の次の組合せとなる。
【０１６２】
尚本実施例において尤度が大きい順にソートする際に、重複時対処部１４２は、例えば項目名セルに対応する項目値セルに異なる向きの尤度がついていないものを優先して順位を付けても良い。また重複時対処部１４２は、例えば項目名セルに対応する項目値セルに異なる向きの尤度の平均値が大きい方を優先しても良い。また重複時対処部１４２は、例えば項目名セルと項目値セルとの対応関係に矛盾がない組合せ優先させても良い。
【０１６３】
次に図１８のステップＳ１８０４〜ステップＳ１８０８の処理を具体的に説明する。
【０１６４】
図２１は、設定済みフラグがオンとされた例を示す第一の図である。
【０１６５】
本実施例の結果テーブル５５では、ソートした結果としてセルａ５の情報が一番上となっている。また結果テーブル５３において、セルａ５の設定済みフラグと無効化フラグはオフであり、対応する項目値セルであるセルｈ５の設定済みフラグもオフである。よって重複時対処部１４２は、セルａ５において採用する向きを決定する。
【０１６６】
セルａ５では、項目値セルの向きは右であり、数は１つであり、波及方向は上であり、尤度は１．０である。また対応する項目値セルであるセルｈ５も、向きが右であり尤度が１．０である。よって重複時対処部１４２は、セルａ５における項目値セルの向きに、右を採用し、結果テーブル５３のセルａ５とセルｈ５の設定済みフラグをオンとする。
【０１６７】
図２１に示す結果テーブル５３Ａでは、セルａ５とセルｈ５の設定済みフラグがオンとされている。
【０１６８】
続いて重複時対処部１４２は、波及撤回処理を行う。結果テーブル５３によれば、セルａ３は、基点をセルａ１とし、項目値セルの向きを下に波及させている。そこで重複時対処部１４２は、セルａ３から見てセルａ１と反対側において、基点をセルａ１として「下に１」を下へ波及させる箇所の無効化フラグをオンとする。
【０１６９】
セルａ５において該当する箇所があるため、重複時対処部１４２は、結果テーブル５４Ａにおいて該当箇所の無効化フラグをオンとする。
【０１７０】
図２２は、無効化フラグがオンとされた例を示す第一の図である。
【０１７１】
図２２の結果テーブル５４Ａでは、セルａ５において、セルａ１を基点として下へ向かう波及について、無効化フラグがオンされている。すなわちセルａ５においては、セルａ１を基点として下へ向かう波及が撤回される。このときセルａ５における波及方向は右向きに設定されているため、影響はない。
【０１７２】
セルａ５の場合、表３０の一番下であるため、実際に無効化フラグがオンされるセルはない。
【０１７３】
次に重複時対処部１４２は、結果テーブル５５の２番目の項目名セルについて処理を行う。結果テーブル５５の２番目の項目名セルは、同じくセルａ５である。ここではセルａ５は、すでに設定済みフラグがオンとなっているため、処理はスキップされる。
【０１７４】
結果テーブル５５において４番目の項目名セルまではセルａ５であるから、重複時対処部１４２は、４番目の項目名セルまでの処理はスキップする。
【０１７５】
次に結果テーブル５５において５番目の項目名セルはセルａ３である。セルａ３は設定済みフラグ、無効化フラグ共にオフであり、セルａ３と対応する項目値セルであるセルｈ３の無効化フラグもオフである。よってセルａ３は重複時対処部１４２の処理対象となる。
【０１７６】
セルａ３では、項目値セルの向きは右であり、数は１つであり、波及方向は上であり、尤度は０．９である。また対応する項目値セルであるセルｈ３も、向きが右であり尤度が０．９である。よって重複時対処部１４２は、セルａ３における項目値セルの向きに、右を採用し、結果テーブル５３のセルａ３とセルｈ３の設定済みフラグをオンとする。
【０１７７】
図２１に示す結果テーブル５３Ａでは、セルａ３とセルｈ３の設定済みフラグがオンとされている。
【０１７８】
続いて重複時対処部１４２は、波及撤回処理を行う。結果テーブル５３によれば、セルａ３は、基点をセルａ１とし、項目値セルの向きを下に波及させている。そこで重複時対処部１４２は、セルａ３から見てセルａ１と反対側において、基点をセルａ１として「下に１」を下へ波及させる箇所の無効化フラグをオンとする。
【０１７９】
セルａ５において該当する箇所があるため、重複時対処部１４２は、結果テーブル５４Ａにおいて該当箇所の無効化フラグをオンとする。
【０１８０】
図２２の結果テーブル５４Ａでは、セルａ５において、セルａ１を基点として下へ向かう波及について、無効化フラグがオンされている。すなわちセルａ５においては、セルａ１を基点として下へ向かう波及が撤回される。このときセルａ５における波及方向は右向きに設定されているため、影響はない。
【０１８１】
図２３は、重複時対処の処理済みのセルを示す第一の図である。本実施例では、尤度１．０のセルａ５と尤度０．９のセルａ３について、重複時対処の処理を行った結果、結果テーブル５５のセルａ３までの重複時対処の処理が終了したことになる。
【０１８２】
図２４は、設定済みフラグがオンとされた例を示す第二の図である。
【０１８３】
図２４は、結果テーブル５５におけるセルｒ１について重複時対処の処理を行った後に設定済みフラグがオンされた結果テーブル５５Ｂが示されている。
【０１８４】
本実施例の結果テーブル５５において、セルｒ１の設定済みフラグと無効化フラグはオフであり、対応する項目値セルであるセルｒ２の設定済みフラグもオフである。よって重複時対処部１４２は、セルｒ１において採用する向きを決定する。
【０１８５】
セルｒ１では、項目値セルの向きは下であり、数は１つであり、波及方向は上であり、尤度は０．８である。また対応する項目値セルであるセルｒ２も、向きが下であり尤度が０．８である。よって重複時対処部１４２は、セルｒ１における項目値セルの向きに下を採用し、結果テーブル５３のセルｒ１とセルｒ２の設定済みフラグをオンとする。
【０１８６】
図２３に示す結果テーブル５３Ｂでは、セルｒ１とセルｒ２の設定済みフラグがオンとされている。
【０１８７】
次に重複時対処部１４２は異なる向きの波及撤回処理を行う。重複時対処部１４２は、結果テーブル５４を参照し、セルｒ１に異なる向きの尤度がついているか否かを判断する。するとセルｒ１には、基点をセルｍ２とし、項目値セルの向きを上方向に波及させている。またさらにセルｒ１は、基点をセルａ１として項目値セルの向きを右方向へ波及させていることがわかる。
【０１８８】
そこで重複時対処部１４２は、セルｍ２を基点として上へ向かう波及と、セルａ１を基点として右に向かう波及とを撤回する波及撤回処理を行う。
【０１８９】
重複時対処部１４２は、セルｒ１から見て、セルｍ２と反対側にあり、且つセルｍ２を基点とし、項目値セルの向きが右であり、数が１であり、波及方向が右という箇所に対して無効化フラグを立てる。
【０１９０】
本実施例では、この箇所は、セルｗ２，ｘ２，ｙ２，ｚ２に該当する箇所があるため、該当する箇所の無効化フラグをオンとする。
【０１９１】
また重複時対処部１４２は、セルｒ１から見て、セルａ１と反対側にあり、且つセルａ１を基点とし、項目値セルの向きが右であり、数が１であり、波及方向が右という箇所に対して無効化フラグを立てる。
【０１９２】
本実施例では、この箇所は、セルｗ１，ｘ１，ｙ１，ｚ１に該当する箇所があるため、該当する箇所の無効化フラグをオンとする。
【０１９３】
図２５は、無効化フラグが設定された例を示す第二の図である。
【０１９４】
図２５に示す結果テーブル５４Ｂでは、セルｗ１，ｘ１，ｙ１，ｚ１の該当箇所と、セルｗ２，ｘ２，ｙ２，ｚ２の該当箇所の無効化フラグがオンとなっている。
【０１９５】
本実施例の重複時対処部１４２は、結果テーブル５５において、尤度の大きい順に呪術した重複時対処の処理を行う。
【０１９６】
図２６は、全ての項目名セルに重複時対処の処理を行った状態の例を示す図である。図２６（Ａ）は、全ての項目名セルの設定済みフラグがオンとされた結果テーブル５３Ｃを示しており、図２６（Ｂ）は全ての項目名セルの設定済みフラグがオンとされた後の結果テーブル５５Ａを示している。
【０１９７】
本実施例では、結果テーブル５３Ｃに示すように、全ての項目名セルの設定済みフラグがオンとされた時点で、結果テーブル５５におけるそれ以降の処理が不要となる。よって本実施例では、結果テーブル５５において、同一のセルが複数の波及方向を有する場合には、設定された波及方向以外の波及方向を削除することができる。
【０１９８】
図２７は、表構造認識装置における表認識結果の一例を示す図である。
【０１９９】
本実施例のデータ出力部１５０は、結果テーブル５５Ａから得られる項目名セルと項目値セルとの対応関係から、図２７に示すような表認識結果を出力する。
【０２００】
図２７に示す認識結果は、図３に示す表３０と同様の表構造である。すなわち本実施例では、構造が未知の表の表構造を誤認せずに正しく認識することができる。
【０２０１】
以上のように、本実施例では、同じセルにおいて複数の波及方向が存在する場合には、尤度の高い方の波及方向を採用し、その他の波及方向については、波及されないように無効とする処理を行う。これにより、本実施例では、一つの項目名セルについて複数の項目値セルが組み合わされたりすることがなく、項目名セルから見た項目値セルの向きが入り乱れた表として誤認識することを防止できる。
【０２０２】
本発明は、以下に記載する付記のような形態が考えられる。
（付記１）
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる尤度波及部と、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する重複時対処部と、を有する表構造認識装置。
（付記２）
前記尤度波及部は、
前記隣接する項目名セルと項目値セルとの組合せに前記尤度を減衰させて波及させる付記１記載の表構造認識装置。
（付記３）
前記尤度波及部は、
前記隣接する項目名セルと項目値セルとの組合せにおいて、前記項目名セルに複数の前記項目値セルが位置する方向が存在する場合に減衰させる値を、
前記項目名セルに対して項目値セルが位置する方向一つの場合に減衰させる値より大きくする付記２記載の表構造認識装置。
（付記４）
前記尤度波及部は、
前記項目名セルの両隣に項目名セルが存在し、前記両隣の項目名セルの尤度がそれぞれ等しい場合、前記項目名セルの尤度を前記両隣の項目名セルの尤度とする付記１乃至３の何れか一項に記載の表構造認識装置。
（付記５）
前記尤度波及部は、
前記表の上から下へ向かう方向と、前記表の下から上に向かう方向と、前記表の左から右に向かう方向と、前記表の右から左に向かう方向の４方向を前記項目値セルが位置する方向と前記尤度とを波及させる波及方向とする付記１ないし４の何れか一項に記載の表構造認識装置。
（付記６）
前記尤度波及部は、
前記隣接する項目名セルと項目値セルとの組合せにおける前記項目名セルに対し、前記項目値セルが位置する方向と前記尤度とを波及させ、
前記組合せにおける前記項目値セルに対し、前記項目名セルに対して波及させた前記項目値セルが位置する方向と前記尤度とを設定する付記１ないし５の何れか一項に記載の表構造認識装置。
（付記７）
前記重複時対処部は、
前記項目名セルを前記尤度の高い順に並べ、前記尤度の高い順に、前記項目名セルに対して項目値セルが位置する方向と、前記波及方向とを決定する付記４ないし６の何れか一項に記載の表構造認識装置。
（付記８）
前記重複時対処部は、
前記波及方向を決定した項目名セルにおいて、他の波及方向が存在した場合、
前記他の波及方向の元となる項目名セルと、前記波及方向の元となる項目名セルから前記項目値セルが位置する方向と前記尤度とが波及される項目名セル又は項目値セルの前記項目値セルが位置する方向と前記尤度とを無効とする付記７記載の表構造認識装置。
（付記９）
コンピュータに、
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを項目名候補データベースを参照して抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させる処理と、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択する処理と、を実行させる表構造認識プログラム。
（付記１０）
コンピュータが表構造を認識する表構造認識方法であって、該コンピュータに、
入力された文書データに含まれる表の項目名セルと項目値セルとの組合せと、前記項目名セルに対して前記項目値セルが位置する方向と、前記組合せの尤度とを項目名候補データベースを参照して抽出し、前記項目値セルが位置する方向と前記尤度とを隣接する項目名セルと項目値セルとの組合せに波及させ、
前記項目名セルにおいて複数の前記項目値セルが位置する方向が存在した場合に、前記尤度が最も大きい方向を選択させる表構造認識方法。
【０２０３】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２０４】
１００  表構造認識装置
１１０  文書入力部
１２０  表領域抽出部
１３０  項目名・項目値対応関係抽出部
１４０  波及尤度計算部
１４１  尤度波及部１４１
１４２  重複時対処部
１５０  データ出力部
【図１】
2013205974.tif 000003
【図２】
2013205974.tif 000004
【図３】
2013205974.tif 000005
【図４】
2013205974.tif 000006
【図５】
2013205974.tif 000007
【図６】
2013205974.tif 000008
【図７】
2013205974.tif 000009
【図８】
2013205974.tif 000010
【図９】
2013205974.tif 000011
【図１０】
2013205974.tif 000012
【図１１】
2013205974.tif 000013
【図１２】
2013205974.tif 000014
【図１３】
2013205974.tif 000015
【図１４】
2013205974.tif 000016
【図１５】
2013205974.tif 000017
【図１６】
2013205974.tif 000018
【図１７】
2013205974.tif 000019
【図１８】
2013205974.tif 000020
【図１９】
2013205974.tif 000021
【図２０】
2013205974.tif 000022
【図２１】
2013205974.tif 000023
【図２２】
2013205974.tif 000024
【図２３】
2013205974.tif 000025
【図２４】
2013205974.tif 000026
【図２５】
2013205974.tif 000027
【図２６】
2013205974.tif 000028
【図２７】
2013205974.tif 000029