(57)【要約】【課題】論理要素間の整合性のとれた電子帳票の自動認識を高精度におこなうこと。【解決手段】帳票処理装置１３００では、あらかじめ帳票２００からレイアウト情報５００と文字情報６００とを抽出しておく。単語候補抽出部１３０１は、文字情報６００から単語候補を抽出する機能を有する。単語出現数値化部１３０２は、単語候補の各要素から出現する割合（出現確率）を算出する機能を有する。単語関係数値化部１３０３は、各単語候補間の関係が成り立つ割合（遷移確率）を与える機能を有する。単語評価部１３０４は、各単語候補がそれぞれの論理要素から出現する割合（評価値、具体的には事後確率）を算出する機能を有する。単語決定部１３０５は、評価値に基づいて、要素およびその単語候補を、帳票２００における要素およびその文字列に決定する機能を有する。【選択図】図１３
2008033830.tif 000002
【特許請求の範囲】
【請求項１】
帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造をコンピュータに認識させる帳票処理プログラムであって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記電子帳票から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出させる単語候補抽出工程と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出させる単語出現数値化工程と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出させる単語関係数値化工程と、
前記単語出現数値化工程によって算出された出現確率と、前記単語関係数値化工程によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出させる単語評価工程と、
を前記コンピュータに実行させることを特徴とする帳票処理プログラム。
【請求項２】
前記単語出現数値化工程は、
さらに、前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度をあらわす確率に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出させることを特徴とする請求項１に記載の帳票処理プログラム。
【請求項３】
請求項１または２に記載の帳票処理プログラムを格納する前記コンピュータに読み取り可能な記録媒体。
【請求項４】
帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造を認識する帳票処理装置であって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出する単語候補抽出手段と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出手段によって抽出された単語候補が前記論理要素において出現する出現確率を算出する単語出現数値化手段と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出する単語関係数値化手段と、
前記単語出現数値化手段によって算出された出現確率と、前記単語関係数値化手段によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出する単語評価手段と、
を備えることを特徴とする帳票処理装置。
【請求項５】
帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造を認識する帳票処理方法であって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出する単語候補抽出工程と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出する単語出現数値化工程と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出する単語関係数値化工程と、
前記単語出現数値化工程によって算出された出現確率と、前記単語関係数値化工程によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出する単語評価工程と、
を含んだことを特徴とする帳票処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、紙帳票からスキャンした帳票画像、または非構造化された電子文書形式の帳票などの電子帳票を処理する帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法に関する。
【背景技術】
【０００２】
従来、紙帳票の中にあるデータを入力する業務では、定型帳票を対象に自動入力が進められてきた。定型帳票では、データ位置を予め読み取り位置として指定したレイアウト定義体を作成し、読み取り位置に対して文字認識を行うことによってデータを入力することができる。
【０００３】
しかし、対象となる帳票のレイアウトが未知の場合には、レイアウト定義体を作成するためのコストが膨大となることから、一般には人手で見出しに対応したデータを探し、入力を行っているのが実情であり、人的コストが非常に大きい。特に、納品書や見積書といった会社外部から送られる帳票では、レイアウトを特定することが困難であり、電子化の際のコストの上昇の要因となっている。
【０００４】
同じような問題は、ワードやエクセルによって生成された非構造化文書の帳票に対しても言え、データを入力するに際し、コピーしてペーストといった処理を人間が行わなければならない。
【０００５】
このように、レイアウト情報を持たない紙帳票や非構造化された電子文書形式の帳票に対して、所望のデータを認識して抽出することが困難であり、従来より自動的に認識・抽出を行うことが求められていた（たとえば、下記非特許文献１を参照。）。非定型帳票からの論理構造認識方式として、たとえば、特許文献１では表のセル情報に基づき、見出し辞書を用いることなく見出しと対応するデータを求めている。
【０００６】
しかし、セルの構成は非常に多様で、セルの内部に見出しとデータとが存在する場合では、特許文献１の方法は適用することができない。さらに、セル情報が誤っている場合に、その誤りに従って間違った見出しとデータの関係を形成してしまうこととなる。
【０００７】
このような問題から、近年では予め与えた見出しに対してデータを抽出するという方法が広く一般的に用いられるようになっている（たとえば、下記特許文献１、非特許文献２を参照。）。これらの方法では、最初に見出し辞書に対応する文字列を抽出し、それに対応したデータを獲得することによってデータを抽出する。特に、特許文献１では、大見出しの下に小見出しが存在し、その小見出しに対してデータが存在する状況において、小見出しの順序がどのように現れてもデータの認識を可能にしている。また、非特許文献２は見出しを抽出し、その見出しに対応したデータを認識するためのものである。
【０００８】
【非特許文献１】T. Watanabe et al., Layout Recognition of Multi-Kinds of Table Form Documents, IEEE Trans. on Pattern analysis and Machine Intelligence, vol. 17, no. 5, pp. 432-445, 1995.（ワタナベ  エト  アル、レイアウト  レコグニション  オブ  マルチ  カインド  オブ  テーブル  フォーム  ドキュメント、アイトリプルイー  トランザクション  オン  パターン  アナリシス  アンド  マシン  インテリジェンス、ボリューム１７、ナンバー５、４３２ページから４４５ページ、１９９５年）
【非特許文献２】Diar Tuganbaev et al., “Universal Data Capture Technology from Semi-structured Forms,” Proc. ICDAR, pp.458-462, 2005.（ツガンバエ  エト  アル、ユニバーサル  データ  キャプチャ  テクノロジー  フロム  セミ  ストラクチャード  フォーム、  プロシーディングス  オブ  アイシーディーエーアール、４５８ページから４６２ページ、２００５年）
【特許文献１】特開２００５−２７５８３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１では、レイアウトに対する自由度は非常に高くなる一方で、小見出しが省略される場合などには適用できず、必ず見出しが存在する帳票に対してしか適用することができない。そのため、レイアウトに対する自由度が高い一方で、文字列に対して制約が大きい。したがって、適用できる帳票は限定的であり、汎用性が低いという問題があった。
【００１０】
また、上述した非特許文献２では、大見出しから小見出しを抽出し、最終的に対応するデータを認識するための方式である。しかし、同じような見出しが帳票内部に数多く存在し、見出しが一度認識を誤ると、その小見出し以降はすべて誤ってしまうという問題がある。
【００１１】
このように、上述した従来の非定型帳票からの論理構造認識方式では、表の内部の情報に対する処理に対して、罫線情報やセル情報を使用しなかったり、セル内部での右寄せ処理に対応できなかったりするため、利便性が低いという問題があった。このため、見出しに対するデータや大見出しに対する小見出しの探索方法として妥当でない。また、セルの情報を用いると、様々なセルの組み合わせに対応した処理を必要とし、見出しの配置に対するセルの組み合わせが限定されてしまい、利便性が低いという問題があった。
【００１２】
また、文字列情報に対してすべての階層が存在しているものとして認識をおこなってしまうという問題があった。
【００１３】
また、大見出しに相当する上位階層からの認識を行うので、高い階層を持つ帳票では、小見出しやデータといった低い階層まで到達する際の精度が指数的に低下するという問題があった。また、精度の低い大見出しに対して認識をおこなって一度誤るとその後の認識処理がすべて誤った認識結果に従ってしまうという問題があった。
【００１４】
また、データに依存して同じ見出しでも論理構造の要素が違うことに対応できない。また、多数の論理要素を勘案した際に出現する問題で議論されることは特に、認識すべき見出しが多くなったり、見出しの階層が増加すると、見出しの文字列として同じ文字列が増大することから、複数の同じ文字列の見出しの中から所望の見出しに対応する文字列を識別すること、さらに認識した結果に対する整合性処理が重要になる。
【００１５】
また、上述した特許文献１および非特許文献２の従来技術では、帳票の全体的な整合処理に関する処理が不十分であるという問題があった。
【００１６】
この発明は、上述した従来技術による問題点を解消するため、論理要素間の整合性のとれた紙帳票または電子帳票の自動認識を高精度におこなうことができる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するため、この発明にかかる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法は、帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造を認識する帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法であって、前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出し、前記論理要素となる文字列の出現頻度に基づいて、前記単語候補が前記論理要素において出現する出現確率を算出し、前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出し、前記出現確率と、前記遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出することを特徴とする。
【００１８】
また、上記発明において、前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度をあらわす確率に基づいて、前記単語候補が前記論理要素において出現する出現確率を算出することとしてもよい。
【００１９】
また、上記発明において、前記論理要素となる文字列が前記処理対象に存在しないことを前記単語候補の一つとして定義して、前記単語候補がその論理要素において出現する出現確率を算出することとしてもよい。
【００２０】
また、上記発明において、前記処理対象のレイアウトにおける前記論理要素間の相対距離から得られる前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出することとしてもよい。
【００２１】
また、上記発明において、前記論理要素間での単語候補どうしが組み合わせのうち下位階層の論理要素の文字列が前記下位階層の論理要素の単語候補である場合に、その上位階層の論理要素の文字列が前記上位階層の論理要素の単語候補である確率に基づいて、前記評価値を算出することとしてもよい。
【００２２】
また、上記発明において、前記論理要素間での単語候補どうしが組み合わせのうち上位階層の論理要素の文字列が前記上位階層の論理要素の単語候補である場合に、その下位階層の論理要素の文字列が前記下位階層の論理要素の単語候補である確率に基づいて、前記評価値を算出することとしてもよい。
【００２３】
また、上記発明において、前記各論理要素の単語候補の評価値に基づいて、前記論理要素およびその単語候補を、前記処理対象における論理要素およびその文字列に決定することとしてもよい。
【００２４】
また、上記発明において、前記複数の論理要素において同一の単語候補が重複する場合、当該論理要素ごとの評価値に基づいて選ばれた一の論理要素およびその単語候補を、前記処理対象における論理要素およびその文字列に決定することとしてもよい。
【００２５】
また、上記発明において、前記複数の単語候補が前記論理要素において重複する場合、当該論理要素および当該単語候補ごとの評価値に基づいて選ばれた一の単語候補を、前記処理対象における論理要素およびその文字列に決定することとしてもよい。
【００２６】
また、上記発明において、前記評価値に基づいて選ばれなかった単語候補の出現確率を、現在の値よりも低い値に変換し、その変換結果に基づいて、前記論理要素およびその単語候補を、前記処理対象における論理要素およびその文字列に決定することとしてもよい。
【発明の効果】
【００２７】
本発明にかかる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法によれば、論理要素間の整合性のとれた紙帳票または電子帳票の自動認識を高精度におこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、この発明にかかる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法の好適な実施の形態を詳細に説明する。
【００２９】
（帳票処理装置のハードウェア構成）
まず、この発明の実施の形態にかかる帳票処理装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる帳票処理装置のハードウェア構成を示すブロック図である。
【００３０】
図１において、帳票処理装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００３１】
ここで、ＣＰＵ１０１は、帳票処理装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００３２】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを帳票処理装置に読み取らせたりする。
【００３３】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３４】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３５】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３６】
スキャナ１１２は、画像を光学的に読み取り、帳票処理装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３７】
（対象となる帳票の一例）
つぎに、この発明の実施の形態にかかる帳票処理装置の処理対象となる帳票の一例について説明する。図２は、この発明の実施の形態にかかる帳票処理装置の処理対象となる帳票の一例を示す説明図である。図２において、帳票２００は、複数（図２では３つ）のセルＣ１〜Ｃ３から構成されている。セルＣ１には『氏名』、セルＣ２には『フリガナ』、『フジ』、『タロウ』、セルＣ３には『（姓）』、『（名）』、『富士』、『太郎』の文字情報が表示されている。
【００３８】
この帳票２００が紙帳票を読み込んだイメージデータである場合には、イメージデータとして取り込む際に、セルＣ１〜Ｃ３内の文字情報やセルＣ１〜Ｃ３のレイアウト情報を認識することができる。また、帳票２００が、ワープロソフトや表計算ソフトなどで作成された非構造化電子文書（電子帳票）である場合、セルＣ１〜Ｃ３内の文字情報やセルＣ１〜Ｃ３のレイアウト情報を、電子帳票から抽出することができる。これらの手法としては様々な方法が知られており、ここでは任意の手法を用いるとする。
【００３９】
図３は、図２に示した帳票２００のマスを示す説明図である。各セルＣ１〜Ｃ３は、マスに分割される。各マスは、縦方向にはａ〜ｆのアルファベットが割り振られ、横方向には１〜４の数字が割り振られている。この組合せをマス番号と称す。たとえば、マス番号ａ２には、『フリガナ』という文字情報が位置する。また、図２に示した帳票２００内の文字列の各文字には固有の文字番号が割り振られる。
【００４０】
図４は、図２に示した帳票２００内の各文字に割り振られた文字番号を示す説明図である。図４において、文字番号０〜２０は一文字ごとに割り振られている。
【００４１】
図５は、図２に示した帳票２００のレイアウト情報を示す説明図である。図５において、レイアウト情報５００は、線や多角形によってあらわされる帳票２００のレイアウトを特定する情報であり、図３に示したマスを用いて特定される。具体的には、たとえば、レイアウト情報５００は、セルごとに、当該セルを構成するマスのマス番号、当該セルの頂点数、その頂点座標を含む情報である。たとえば、セルＣ１は、マスａ１，ｂ１，ｃ１，ｄ１，ｅ１，ｆ１によって構成される。また、セルＣ１の頂点数は４である。
【００４２】
図６は、図２に示した帳票２００の文字情報を示す説明図である。図６において、文字情報６００は、帳票２００内の文字を特定する情報であり、図４に示した文字番号を用いて特定される。具体的には、たとえば、文字情報６００は、文字ごとに、当該文字を特定する文字コード、当該文字が含まれるセルのセル番号、当該文字自身の座標、フォント、サイズを含む情報である。たとえば、文字番号０の文字の文字コードは『氏』であり、セルＣ１内に位置しており、フォントはゴシック、サイズは１１である。
【００４３】
（共通論理構造データベースの説明）
つぎに、この発明の実施の形態にかかる帳票処理装置における共通論理構造データベース（ＤＢ）について説明する。共通論理構造ＤＢには、論理的な構造化処理がおこなわれる帳票２００に一般的な共通論理構造が格納される。具体的には、帳票を階層構造化する際の論理要素（タグともいう。以下、単に「要素」と称す。）とその意味、それら要素が具体的に帳票上で表現される文字列、および要素間の関係が記述される。より具体的には、共通論理構造テーブルと、文字列情報テーブルと、接続情報テーブルとを有する。
【００４４】
図７は、共通論理構造テーブルを示す説明図である。図７において、共通論理構造テーブル７００は、要素ごとに、要素番号、代表文字列、属性、対応文字列、親要素番号とから構成される。要素番号とは、代表文字列を特定する固有の番号である。以下、「要素番号ｉ（ｉは数字）の要素」を、「要素Ｅｉ」と称す。代表文字列とは、帳票２００内の文字列の中でよく用いられる代表的な文字列である。
【００４５】
属性とは、代表文字列の帳票２００内の性質または特徴をあらわしており、見出し要素とデータ要素を有する。見出し要素とは、セルの意味を特定する固定の文字列（たとえば、図２では『フリガナ』など）である。データ要素とは、セルに書き込まれる文字列（たとえば、図２では、『太郎』など）である。
【００４６】
また、対応文字列とは、要素の文字列として扱うことができる文字列であり、具体的には、代表文字列と同一文字列、または代表文字列と意味が類似する文字列である。同一の意味であっても帳票によっては表現が異なる文字列を代表文字列に類似する文字列として保持している。
【００４７】
逆に、対応文字列の中から選ばれた代表的な文字列が、代表文字列と言える。また、要素「姓データ」のように文字列が限定できない場合には、ワイルドカード「＊」による文字種限定によって文字列を与えてもよい。また、親要素番号とは、当該要素の上位に位置する要素の要素番号である。最上位の要素０については、その上位に位置する要素はないため、「ＮＵＬＬ」となる。
【００４８】
図８は、文字列情報テーブルを示す説明図である。図８において、文字列情報テーブル８００は、各要素の対応文字列の出現頻度ｐ１（ｉ，ｊ）を保持するテーブルである。文字列番号ｊとは、要素Ｅｉ内の各対応文字列に与えられる番号であり、ここでは０から始まる通番である。なお、要素Ｅｉ内の文字列番号ｊの対応文字列を便宜上、「対応文字列Ｍｉｊ」と表記する。
【００４９】
出現頻度ｐ１（ｉ，ｊ）とは、要素Ｅｉとして出現する対応文字列Ｍｉｊの出現割合を示したものである。たとえば、要素Ｅ０の代表文字列「氏名」に対しては文字列番号０の対応文字列「お名前」と文字列番号１の「氏名」が存在し、学習による出現頻度ｐ１（ｉ，ｊ）が「お名前」がｐ１（０，０）＝３０％、「氏名」がｐ１（０，１）＝７０％であれば、「０．３」，「０．７」と記述する。これは、真の要素の出現頻度そのものであり、文字列の出易さを示す。なお、すべてを等確率で与えたい場合には同じ数値を格納する。
【００５０】
また、文字列が省略される場合があれば、対応文字列Ｍｉｊとして「ＮＵＬＬ」およびその出現頻度を規定しておく。要素Ｅ０の代表文字列「氏名」に対しては文字列番号２が付与されている「ＮＵＬＬ」の出現頻度ｐ１（０，２）は、ｐ１（０，２）＝０％である。このように省略された対応文字列Ｍｉｊを便宜上、「ＮＵＬＬ文字列」と称す。
【００５１】
図９は、接続情報テーブルを示す説明図である。図９において、接続情報テーブル９００とは、一対の要素間の相対位置関係を示す情報テーブルである。要素番号対とは、セルが隣接しあう２つの要素をあらわす要素番号の組合せである。
【００５２】
相対位置情報は、要素間の左右距離および上下距離であらわされる。左右距離とは、要素番号対の一方の要素により特定される文字列を含むセルを基準とした場合、当該セルから他方の要素により特定される文字列を含むセルまでの横方向のセル数である。たとえば、要素番号対の左側の要素を基準となる一方の要素とした場合、右方向が正、左方向が負となる。
【００５３】
同様に、上下距離とは、要素番号対の一方の要素により特定される文字列を含むセルを基準とした場合、当該セルから他方の要素により特定される文字列を含むセルまでの縦方向のセル数である。たとえば、要素番号対の左側の要素を基準となる一方の要素とした場合、上方向が負、下方向が正となる。
【００５４】
また、頻度は、要素番号対ごとに、左右距離および上下距離の組合せが発生する割合を示している。なお、要素Ｅ１には０．４（４０％）のＮＵＬＬ文字列が存在するため、図９において、（ａ）〜（ｆ）の頻度の合計は０．６（６０％）となっている。このように、接続情報テーブル９００は、親要素から見た場合の子要素の存在位置に関する分布を示すものである。
【００５５】
図１０は、接続情報テーブル９００の展開例を示す説明図である。図１０において、親要素をＥ０、子要素をＥ１とする。頻度（ｂ）で示したセルに親である要素Ｅ０が含まれているとすると、子の要素Ｅ１は、それぞれ頻度（ａ）〜（ｆ）で示したセルに当該頻度で含まれることとなる。このように、要素対により両要素の相対位置が特定される。この相対位置により、子の要素の位置を限定することができる。また、上述した左右距離および上下距離におけるセル数の計数では、その経路によって計数されるセル数が異なることがある。
【００５６】
図１１は、セル数の計算例を示す説明図である。図１１中、矩形はセルである。また、要素ＥｘのセルＣｘから要素ＥｙのセルＣｙまでの経路を点線矢印であらわしている。計数されるセル数は、セルの越境回数の最小値とする。図１１では、太線矢印で示した経路が最も越境回数が小さい（２回）ため、（左右距離，上下距離）＝（１，１）として接続情報テーブル９００に書き込まれる。
【００５７】
図１２は、共通論理構造の要素間の関係を示した木構造を示す説明図である。この木構造１２００は、図７に示した共通論理構造テーブル７００における要素番号と親要素番号との関連付けをもとにして構成されている。木構造１２００において上位階層は大見出しに相当し、下位階層に行くに従い小見出しとなり、最終的にデータに対応する要素となる。また、図１２中、矢印は、図９の要素番号対をあらわしている。
【００５８】
（帳票処理装置の機能的構成）
つぎに、この発明の実施の形態にかかる帳票処理装置の機能的構成について説明する。図１３は、この発明の実施の形態にかかる帳票処理装置の機能的構成を示すブロック図である。
【００５９】
図１３において、帳票処理装置１３００は、共通論理構造テーブル７００（図７参照）、文字列情報テーブル８００（図８参照）、接続情報テーブル９００（図９参照）を含む共通論理構造ＤＢ１３１０と、単語候補抽出部１３０１と、単語出現数値化部１３０２と、単語関係数値化部１３０３と、単語評価部１３０４と、単語決定部１３０５と、から構成されている。
【００６０】
まず簡単に説明すると、帳票処理装置１３００では、あらかじめ帳票２００からレイアウト情報５００と文字情報６００とを抽出しておく。単語候補抽出部１３０１は、文字情報６００から単語候補を抽出する機能を有する。単語出現数値化部１３０２は、単語候補の各要素から出現する割合（出現確率）を算出する機能を有する。単語関係数値化部１３０３は、各単語候補間の関係が成り立つ割合（遷移確率）を与える機能を有する。
【００６１】
単語評価部１３０４は、各単語候補がそれぞれの論理要素から出現する割合（評価値、具体的には事後確率）を算出する機能を有する。単語決定部１３０５は、評価値に基づいて、要素およびその単語候補を、帳票２００における要素およびその文字列に決定する機能を有する。
【００６２】
共通論理構造ＤＢ１３１０は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体によって、その機能を実現する。また、単語候補抽出部１３０１、単語出現数値化部１３０２、単語関係数値化部１３０３、単語評価部１３０４、および単語決定部１３０５は、具体的には、たとえば、図１に示したＲＯＭ１０２，ＲＡＭ１０３，ＨＤ１０５などの記録媒体に記録されているプログラムを、ＣＰＵ１０１に実行させることによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００６３】
つぎに、この発明の実施の形態にかかる帳票処理装置１３００による帳票処理手順について説明する。図１４は、この発明の実施の形態にかかる帳票処理装置１３００による帳票処理手順を示すフローチャートである。図１４において、まず、処理対象となる帳票２００を取得する（ステップＳ１４０１）。たとえば、紙帳票を画像入力してもよく、また、表計算ソフトで作成された非構造化電子文書を入力することとしてもよい。そして、取得された帳票２００から上述したレイアウト情報および文字情報６００を取得する（ステップＳ１４０２）。
【００６４】
このあと、単語候補抽出部１３０１による単語候補抽出処理（ステップＳ１４０３）、単語出現数値化部１３０２による単語出現数値化処理（ステップＳ１４０４）、単語関係数値化部１３０３による単語関係数値化処理（ステップＳ１４０５）、単語評価部１３０４による単語評価処理（ステップＳ１４０６）、単語決定部１３０５による単語決定処理（ステップＳ１４０７）を順次実行する。
【００６５】
そして、反復処理終了フラグ＝１であるか否かを判断し（ステップＳ１４０８）、反復処理終了フラグ＝１でない場合（ステップＳ１４０８：Ｎｏ）、ステップＳ１４０６に戻る。一方、反復処理終了フラグ＝１である場合（ステップＳ１４０８：Ｙｅｓ）、一連の処理を終了する。以下、図１３に示した帳票処理装置１３００の各機能構成および図１４に示した各機能構成の処理について具体的に説明する。
【００６６】
［単語候補抽出部１３０１の詳細説明］
まず、単語候補抽出部１３０１について説明する。単語候補抽出部１３０１では、各要素Ｅｉに該当すると思われるすべての文字列を、共通論理構造データベースの文字列情報テーブル８００に基づき単語候補として抽出し、単語候補テーブルを出力する。
【００６７】
具体的には、文字列は、文字情報６００における各文字の座標を参照することにより抽出される。たとえば、帳票２００の『フリガナ』という文字列は、「フ」と「リ」と「ガ」と「ナ」の組合せであるが、縦方向の座標値がほぼ同一で、横方向の座標値がほぼ一定間隔で揃っている場合、『フリガナ』という一つの単語として抽出される。このように文字情報６００から抽出された文字列を「抽出文字列」と称す。
【００６８】
図１５は、単語候補テーブルを示す説明図である。単語候補テーブル１５００は、要素と抽出文字列との関係をあらわしている。具体的には、単語候補テーブル１５００は、要素番号ｉと、文字列番号ｊと、単語候補番号ｋと、抽出文字列と、文字数と、文字番号と、から構成されている。単語候補番号ｋとは、要素番号ｉの文字列番号ｊの対応文字列との対比において、単語候補となった抽出文字列に与えられる番号であり、ここでは０から始まる通番である。また、文字数とは、抽出文字列の文字数である。
【００６９】
単語候補抽出部１３０１は、要素番号ｉおよび文字列番号ｊにより、文字列情報テーブル８００（図８参照）から対応文字列Ｍｉｊを読み出す。たとえば、単語候補テーブル１５００の１行目では、要素番号０、文字列番号１であるため、要素Ｅ０の対応文字列Ｍ０１（『氏名』）が読み出されることとなる。そして、抽出文字列『氏名』は、読み出された対応文字列Ｍ０１（『氏名』）と完全一致するため、要素Ｅ０の単語候補となる。ここでは、単語候補番号ｋとしてｋ＝０を割り振る。
【００７０】
また、対応文字列『氏名』と一部一致する抽出文字列も、要素Ｅ０の単語候補となる。たとえば、単語候補テーブル１５００の２行目において、抽出文字列『（名）』は要素Ｅ０の対応文字列Ｍ０１（『氏名』）と文字「名」が一致するため、要素Ｅ０の単語候補となる。ここでは、単語候補番号ｋとしてｋ＝１を割り振る。
【００７１】
すなわち、単語候補テーブル１５００において、抽出文字列『氏名』，『（名）』が要素Ｅ０の対応文字列Ｍ０１（『氏名』）の単語候補として抽出され、抽出文字列『（姓）』が要素Ｅ１の対応文字列Ｍ１０（『姓』）の単語候補として抽出され、抽出文字列『氏名』，『（名）』が要素Ｅ２の対応文字列Ｍ２０の単語候補として抽出され、抽出文字列『氏名』，『フジ』，『タロウ』，『富士』，『太郎』が要素Ｅ３の対応文字列Ｍ３０の単語候補として抽出される。以降、要素Ｅｉ内の単語候補として抽出された単語候補番号ｋの抽出文字列を、「単語候補Ｗｋ」と称す。
【００７２】
［単語候補抽出処理手順］
つぎに、図１４に示した単語候補抽出部１３０１による単語候補抽出処理手順について具体的に説明する。図１６は、図１４に示した単語候補抽出部１３０１による単語候補抽出処理手順を示すフローチャートである。
【００７３】
図１６において、文字情報６００の座標値などを用いて、帳票２００に存在するすべての文字列を抽出する（ステップＳ１６０１）。ここで、抽出された文字列を抽出文字列Ｓｔと表記する。抽出文字列Ｓｔはｔ番目の文字列である。ｔをテキスト番号と称す。テキスト番号ｔはｔ＝１〜ｔｍａｘである。ｔｍａｘは抽出文字列Ｓｔの最大数である。
【００７４】
つぎに、要素番号ｉ＝０、文字列番号ｊ＝０とし（ステップＳ１６０２）、対応文字列Ｍｉｊを読み出す（ステップＳ１６０３）。そして、ｔ＝１とする（ステップＳ１６０４）。そして、対応文字列Ｍｉｊ内の文字と一致する文字が抽出文字列Ｓｔに存在するか否かを判断する（ステップＳ１６０５）。
【００７５】
存在しない場合（ステップＳ１６０５：Ｎｏ）、ステップＳ１６０７に移行する。一方、存在する場合（ステップＳ１６０５：Ｙｅｓ）、抽出文字列Ｓｔを単語候補Ｗｋに決定して（ステップＳ１６０６）、ステップＳ１６０７に移行する。
【００７６】
ステップＳ１６０７では、抽出文字列数ｔをインクリメントし、ｔ＞ｔｍａｘであるか否かを判断する（ステップＳ１６０８）。ｔ＞ｔｍａｘでない場合（ステップＳ１６０８：Ｎｏ）、ステップＳ１６０５に戻る。一方、ｔ＞ｔｍａｘである場合（ステップＳ１６０８：Ｙｅｓ）、文字列番号ｊをインクリメントする（ステップＳ１６０９）。
【００７７】
そして、ｊ＞Ｊｉか否かを判断する（ステップＳ１６１０）。ここで、Ｊｉとは、要素Ｅｉにおける対応文字列数である。ｊ＞Ｊｉでない場合（ステップＳ１６１０：Ｎｏ）、ステップＳ１６０３に戻る。一方、ｊ＞Ｊｉである場合（ステップＳ１６１０：Ｙｅｓ）、要素番号ｉをインクリメントする（ステップＳ１６１１）。
【００７８】
そして、ｉ＞Ｉであるか否かを判断する（ステップＳ１６１２）。ここで、Ｉとは要素Ｅｉの要素数である。ｉ＞Ｉでない場合（ステップＳ１６１２：Ｎｏ）、ステップＳ１６０３に戻る。一方、ｉ＞Ｉである場合（ステップＳ１６１２：Ｙｅｓ）、単語出現数値化処理（ステップＳ１４０４）に移行する。これにより、一連の単語候補抽出処理を終了する。このように、単語候補抽出部１３０１によれば、処理対象となる帳票２００内の文字列を単語候補として自動抽出することができる。
【００７９】
［単語出現数値化部１３０２の詳細説明］
つぎに、単語出現数値化部１３０２について説明する。単語出現数値化部１３０２では、要素Ｅｉ、文字列番号ｊ、単語候補Ｗｋのすべてに対して、各単語候補Ｗｋの出現確率ｐ３（ｉ，ｊ，ｋ）を算出する。具体的には、まず、単語候補テーブル１５００から要素番号ｉおよび文字列番号ｊの組合せを読み込み、その要素番号ｉおよび文字列番号ｊの組合せを手掛かりとして、その対応文字列の出現頻度ｐ１（ｉ，ｊ）を文字列情報テーブル８００から抽出する。
【００８０】
そして、要素番号ｉおよび文字列番号ｊにより特定される対応文字列とその単語候補Ｗｋとのマッチングの度合い（一致度）によって、単語候補Ｗｋの確からしさを算出する。すなわち、対応文字列の文字数をｍ０、対応文字列および抽出文字列の一致文字数をｍ１とすると、マッチングの度合いをあらわす観測確率ｐ２（ｉ，ｊ，ｋ）は、下記式（１）であらわされる。
【００８１】
ｐ２（ｉ，ｊ，ｋ）＝ｍ１／ｍ０・・・（１）
【００８２】
たとえば、単語候補テーブル１５００の１行目において、要素番号０、文字列番号１により特定される要素Ｅ０の対応文字列『氏名』（図８参照）および抽出文字列『氏名』では、対応文字列Ｍ０１のすべて（２文字）の文字「氏」，「名」が一致するため、２文字中２文字が一致することとなり、ｐ２（０，１，０）＝１００％となる。また、単語候補テーブル１５００の２行目において、抽出文字列『（名）』は要素Ｅ０の対応文字列『氏名』の文字「名」が一致するため、２文字中１文字が一致することとなり、ｐ２（０，１，１）＝５０％となる。
【００８３】
そして、出現頻度ｐ１（ｉ，ｊ）と観測確率ｐ２（ｉ，ｊ，ｋ）を用いて、各単語候補Ｗｋの出現確率ｐ３（ｉ，ｊ，ｋ）を下記式（２）により算出する。
【００８４】
ｐ３（ｉ，ｊ，ｋ）＝ｐ１（ｉ，ｊ）×ｐ２（ｉ，ｊ，ｋ）・・・（２）
【００８５】
また、単語出現数値化部１３０２では、すべての要素ＥｉにＮＵＬＬ文字列の出現確率ｐ３（ｉ，ｊ，ｋ）を単語候補テーブル１５００に追加する。この場合、各要素Ｅｉにおいて、出現確率ｐ３（ｉ，ｊ，ｋ）の総計が１（１００％）とならないため、出現確率ｐ３（ｉ，ｊ，ｋ）の総計が１となるように規格化する。規格化された出現確率ｐ３（ｉ，ｊ，ｋ）を規格化出現確率ｐ３’（ｉ，ｊ，ｋ）と表記する。このように、単語出現数値化部１３０２では、単語候補テーブル１５００にあらたな情報（出現確率ｐ３（ｉ，ｊ，ｋ）、規格化出現確率ｐ３’（ｉ，ｊ，ｋ）など）が追加されて出力される。
【００８６】
図１７は、単語出現数値化部１３０２から出力される単語候補テーブルを示す説明図である。以降、図１５に示した単語候補抽出部１３０１から得られる単語候補テーブルを「第１の単語候補テーブル１５００」と表記し、図１７に示した単語出現数値化部１３０２から得られる単語候補テーブルを「第２の単語候補テーブル１７００」と表記する。
【００８７】
また、図１８は、要素Ｅｉごとの単語候補Ｗｋの規格化出現確率ｐ３’（ｉ，ｊ，ｋ）を模式化した説明図である。単語候補Ｗｋとなる各抽出文字列を囲む矩形の枠の太さは、規格化出現確率ｐ３’（ｉ，ｊ，ｋ）の高さをあらわしている。
【００８８】
なお、単語出現数値化部１３０２のより具体的な算出方法を説明する。算出方法として、要素番号ｉの文字列番号ｊの対応文字列Ｍｉｊには出現頻度ｐ１（ｉ，ｊ）が共通論理
構造ＤＢ１３１０に格納されており、出現頻度ｐ１（ｉ，ｊ）を下記式（３）で表現する。
【００８９】
【数１】
2008033830.tif 000003
【００９０】
式（３）において、Ｃは論理要素の数を次元数としたベクトルである。また、Ｔは対応文字列Ｍｉｊの数を次元数としたベクトルである。ｅは正規直交基底を示し、ｅｉはｉ番
目の要素が１でそれ以外が０の要素を示す正規直交基底であり、要素iを表現するものとする。
【００９１】
また、Ｍijを各単語候補の正しい文字列を示す隠れ変数としたときにそれぞれの単語候補がこの文字列を使用したときに帳票上で表現される単語候補である確率を下記式（４）で定義する。
【００９２】
【数２】
2008033830.tif 000004
【００９３】
これらはすべての単語候補Ｗｋに対して確率１とみなす。なお、ここでの記法としてＰ（Ｘ｜Ｙ）は「Ｙで条件付けたときのＸの確率」をあらわす。
【００９４】
また、上述した観測確率ｐ２（ｉ，ｊ，ｋ）は、式（４）を掛け合わせた下記式（５）により算出する。
【００９５】
【数３】
2008033830.tif 000005
【００９６】
この式（３）と式（５）とを掛け合わせることで、出現確率ｐ３（ｉ，ｊ，ｋ）を算出する。出現確率ｐ３（ｉ，ｊ，ｋ）は、下記式（６）で表現される。
【００９７】
【数４】
2008033830.tif 000006
【００９８】
ここで、式（６）において、Ｏは観測変数ベクトルで抽出した単語候補それ自身を示す。なお、ＮＵＬＬ文字列の出現確率については、ｐ３ｎｕｌｌ（ｉ）として、文字列情報
テーブル８００から読み込み、直接、規格化出現確率ｐ３’（ｉ，ｊ，ｋ）とする。そして、上述したように、ＮＵＬＬ文字列以外の単語候補Ｗｋについても規格化すればよい。
【００９９】
［単語出現数値化処理手順］
つぎに、図１４に示した単語出現数値化部１３０２による単語出現数値化処理手順について具体的に説明する。図１９は、図１４に示した単語出現数値化部１３０２による単語出現数値化処理手順を示すフローチャートである。
【０１００】
図１９において、まず、要素番号ｉ＝０とし（ステップＳ１９０１）、文字列番号ｊ＝０とする（ステップＳ１９０２）。そして、要素番号ｉ，文字列番号ｊに対する出現頻度ｐ１（ｉ，ｊ）を文字列情報テーブル８００から読み込む（ステップＳ１９０３）。
【０１０１】
そして、単語候補番号ｋ＝０とし（ステップＳ１９０４）、要素番号ｉ、文字列番号ｊの単語候補Ｗｋにおける観測確率ｐ２（ｉ，ｊ，ｋ）を上記式（１）を用いて算出する（ステップＳ１９０５）。
【０１０２】
このあと、出現頻度ｐ１（ｉ，ｊ）と観測確率ｐ２（ｉ，ｊ，ｋ）とを掛け合わせることにより、要素番号ｉ、文字列番号ｊの単語候補Ｗｋにおける出現確率ｐ３（ｉ，ｊ，ｋ）を算出する（ステップＳ１９０６）。そして、単語候補番号ｋをインクリメントし（ステップＳ１９０７）、単語候補番号ｋがｋ＞Ｋｉｊか否かを判断する（ステップＳ１９０８）。ここで、Ｋｉｊとは、要素番号ｉ、文字列番号ｊの単語候補数である。
【０１０３】
ｋ＞Ｋｉｊでない場合（ステップＳ１９０８：Ｎｏ）、ステップＳ１９０５に戻る。一方、ｋ＞Ｋｉｊである場合（ステップＳ１９０８：Ｙｅｓ）、文字列番号ｊをインクリメントする（ステップＳ１９０９）。
【０１０４】
そして、ｊ＞Ｊｉであるか否かを判断する（ステップＳ１９１０）。ここで、Ｊｉとは、要素Ｅｉにおける対応文字列数である。ｊ＞Ｊｉでない場合（ステップＳ１９１０：Ｎｏ）、ステップＳ１９０３に戻る。一方、ｊ＞Ｊｉである場合（ステップＳ１９１０：Ｙｅｓ）、要素ＥｉがＮＵＬＬとなる出現頻度ｐ３ｎｕｌｌ（ｉ）を文字列情報テーブル８００から読み込む（ステップＳ１９１１）。
【０１０５】
このあと、要素番号ｉをインクリメントして（ステップＳ１９１２）、ｉ＞Ｉであるか否かを判断する（ステップＳ１９１３）。ここで、Ｉとは要素Ｅｉの要素数である。ｉ＞Ｉでない場合（ステップＳ１９１３：Ｎｏ）、ステップＳ１９０２に戻る。一方、ｉ＞Ｉである場合（ステップＳ１９１３：Ｙｅｓ）、単語関係数値化処理（ステップＳ１４０５）に移行する。これにより、一連の単語出現数値化処理を終了する。このように、単語出現数値化部１３０２によれば、単語候補Ｗｋがその要素Ｅｉ内において出現する頻度を数値化することができる。
【０１０６】
［単語関係数値化部１３０３の詳細説明］
つぎに、単語関係数値化部１３０３について説明する。単語関係数値化部１３０３では、図９に示した接続情報テーブル９００を用いて、各要素Ｅｉで任意に選択した単語候補どうしの組み合わせの出現確率または親要素の単語候補が確定した場合の子要素の単語候補の出現確率（条件付確率）を算出する。
【０１０７】
具体的には、接続関係のある上位の要素を親要素Ｅｉ１（ｉ１は数字）、下位の要素を子要素Ｅｉ２（ｉ２は数字で、ｉ２≠ｉ１）とすると、親子関係となる接続された２つの要素Ｅｉ１，Ｅｉ２から、親要素Ｅｉ１の単語候補Ｗｋ（以下、「単語候補Ｗｋｉ１」と称す。）が存在した場合の子要素Ｅｉ２の単語候補Ｗｋ（以下、「単語候補Ｗｋｉ２」と称す。）の出現確率を算出する。この出現確率は、図１１に示したセルの計数値に基づいて算出することができる。
【０１０８】
具体的には、２つの単語候補Ｗｋｉ１，Ｗｋｉ２が属するセルの相対位置関係をあらわす遷移確率をｐ４｛ｘ，ｙ｝（または単にｐ４）と表記する。ｘは親要素Ｅｉ１が属するセルの位置を基準とした場合に子要素Ｅｉ２が属するセルの上下方向における相対位置（下が正、上が負）であり、ｙは親要素Ｅｉ１が属するセルの位置を基準とした場合に子要素Ｅｉ２が属するセルの左右方向における相対位置（右が正、左が負）である。
【０１０９】
たとえば、２つの単語候補Ｗｋｉ１，Ｗｋｉ２が同じ高さのセルに存在し、親要素Ｅｉ１の単語候補Ｗｋｉ１が属するセルの１つ右側のセルに子要素Ｅｉ２の単語候補Ｗｋｉ２が属するとすると、遷移確率はｐ４｛０，１｝と表現され、同じセル内に存在する場合の遷移確率はｐ４｛０，０｝と表現される。この遷移確率ｐ４｛ｘ，ｙ｝は接続情報テーブル９００に記述された頻度から算出することができる。ここで、単語関係数値化部１３０３による処理結果をまとめた接続候補テーブルについて説明する。
【０１１０】
図２０は、親要素Ｅｉ１＝Ｅ０と子要素Ｅｉ２＝Ｅ１との接続関係を示す接続候補テーブルを示す説明図である。図２０において、接続候補テーブル２０００では、親要素番号ｉ１、文字列番号ｊ１、単語候補番号ｋ１により、単語候補Ｗｋ１として選ばれた抽出文字列が特定される。また、図２０において、子要素番号ｉ２、文字列番号ｊ２、単語候補番号ｋ２により、単語候補Ｗｋ２として選ばれた抽出文字列が特定される。
【０１１１】
つぎに、接続候補テーブル２０００において特定された親要素Ｅｉ１の単語候補Ｗｋ１と子要素Ｅｉ２の単語候補Ｗｋ２との相対位置情報に合致する相対位置情報を接続情報テーブル９００から特定し、その相対位置情報の接続頻度を、接続情報テーブル９００から読み出す。
【０１１２】
接続候補テーブル２０００の１行目に着目すると、たとえば、｛Ｅｉ１，ｊ１，ｋ１｝＝｛Ｅ０，１，０｝の場合、単語候補Ｗｋ１として選ばれた抽出文字列は『氏名』となる（図１５または図１７を参照。）。また、｛Ｅｉ２，ｊ２，ｋ２｝＝｛Ｅ０，０，０｝の場合、単語候補Ｗｋ２として選ばれた抽出文字列は『（姓）』となる（図１５または図１７を参照。）。
【０１１３】
一方、親要素Ｅ０と子要素Ｅ１との組み合わせの場合、図９に示した接続情報テーブル９００では６通りの相対位置情報が保持されている。図２の帳票２００では、単語候補Ｗｋ１の抽出文字列『氏名』はセルＣ１に属しており、単語候補Ｗｋ２の抽出文字列『（姓）』はセルＣ３に属している。
【０１１４】
したがって、セルＣ３はセルＣ１から右から１つ目のセルであるため左右距離ｈはｈ＝１、縦方向は同一であるため上下距離ｖはｖ＝０となり、｛ｈ，ｖ｝＝｛１，０｝となる接続頻度０．３０を読み出す。この接続頻度が遷移確率ｐ４（ｉ１，ｊ１，ｋ１，ｉ２，
ｊ２，ｋ２）である。単に、遷移確率ｐ４と表記することもある。
【０１１５】
遷移確率ｐ４は、下記式（７）で与えることが可能である。なお、ｉ’はｉの親要素を
示すものとする。
【０１１６】
【数５】
2008033830.tif 000007
【０１１７】
図２１は、親要素Ｅ０の単語候補と子要素Ｅ１となりうる単語候補との遷移確率ｐ４の高さを模式的に示した説明図である。親要素Ｅ０の単語候補として選ばれた抽出文字列は『氏名』，『（名）』，ＮＵＬＬであり、子要素Ｅ１の単語候補として選ばれた抽出文字列は『（姓）』，ＮＵＬＬである。矢印は親子関係をあらわしており、始点側が親要素Ｅ０の単語候補であり、終点側が子要素Ｅ１の単語候補である。また、矢印の太さが接続頻度（遷移確率ｐ４）の高さをあらわしている。
【０１１８】
また同様に、図２２は、親要素Ｅｉ１＝Ｅ１と子要素Ｅｉ２＝Ｅ２との接続関係を示す接続候補テーブルを示す説明図である。また、図２３は、親要素Ｅ１の単語候補と子要素Ｅ２となりうる単語候補との遷移確率ｐ４の高さを模式的に示した説明図である。
【０１１９】
また、セルの内部で複数の単語候補が生じた場合には、重みを加えて規格化する。たとえば、親要素Ｅｉ１から見て対象領域に存在する子要素Ｅｉ２となりうる単語候補Ｗｋ２に対して、親要素Ｅｉ１の単語候補Ｗｋ１の外接矩形との距離を測り、その距離に応じて重み付けをおこなう。
【０１２０】
図２４は、遷移頻度の重み付けを示す説明図である。図２４において、白色領域については、重み付けはされない。一方、灰色領域が重み付けの対象領域として設定される。ここでは、重み付けの関数は、指数関数を用いている。姓データ『富士』と『太郎』が存在した場合、このセルＣ３に対するある親要素Ｅｉ１の単語候補からの遷移頻度を遷移確率ｐ４＝０．３とし、『（姓）』からの距離をそれぞれｄ1，ｄ2とする。
【０１２１】
セルＣ３に対するある親要素Ｅｉ１の単語候補と姓データ『富士』との重み付け後の遷移確率ｐ４’は下記式（８）によってあらわされる。
【０１２２】
ｐ４’＝ｐ４×ｗ１／（ｗ１＋ｗ２）＝０．３×ｗ１／（ｗ１＋ｗ２）・・・（８）
【０１２３】
同様に、セルＣ３に対するある親要素Ｅｉ１の単語候補と姓データ『太郎』との重み付け後の遷移確率ｐ４’は下記式（９）によってあらわされる。
【０１２４】
ｐ４’＝ｐ４×ｗ２／（ｗ１＋ｗ２）＝０．３×ｗ２／（ｗ１＋ｗ２）・・・（９）
【０１２５】
この重み付け後の遷移確率ｐ４’を規格化遷移確率ｐ４’と称す。なお、上記式（８），（９）において、ｗ１は距離ｄ1に関する重み、ｗ２は距離ｄ2に関する重みであり、下記式（１０），（１１）によってあらわされる。
【０１２６】
【数６】
2008033830.tif 000008
【０１２７】
また、ＮＵＬＬ文字列が親要素Ｅｉ１である場合には、その要素の親要素の遷移確率ｐ４を用いる。たとえば、図２０に示した例では、親要素Ｅ０から子要素Ｅ１の場合には、親要素Ｅ０のＮＵＬＬ文字列からの遷移確率ｐ４はすべての子要素Ｅｉ２の単語候補Ｗｋ２に対してｐ４＝０である。
【０１２８】
一方、図２２に示した親要素Ｅ１から子要素Ｅ３の例では、親要素Ｅ１のＮＵＬＬ文字列からの遷移確率ｐ４が存在する。この場合、親要素Ｅ１の親要素である要素Ｅ０から子要素Ｅ３までの遷移確率ｐ４を、接続情報テーブル９００を用いて求める。子要素Ｅ３の単語候補Ｗｋ２として選ばれた抽出文字列（『氏名』，『フジ』，『タロウ』，『富士』，『太郎』）は，親要素Ｅ０の単語候補として選ばれた抽出文字列『氏名』から見ると、遷移確率ｐ４＝｛０．１、０．３、０．３、０．３、０．３｝の位置に存在する。
【０１２９】
ただし、このうち『氏名』は図２４の対象領域から除外できるので、『氏名』に関する遷移確率ｐ４＝０．１をｐ４＝０とする。残りの抽出文字列（『フジ』，『タロウ』，『富士』，『太郎』）については、セルは違うけれども『氏名』が属するセルＣ１からみて右に１進んだセルＣ３内の位置に存在するので、この４つで遷移確率ｐ４＝０．３を規格化する。
【０１３０】
図２４に示した重み付けの操作で、各遷移確率ｐ４はそれぞれ、ｐ４＝｛０．０、０．１、０．０５、０．１、０．０５｝にそれぞれなったとする。同様の操作を要素Ｅ０の単語候補の抽出文字列『名』に対しておこなうと、ｐ４＝｛０．０、０．０、０．１、０．１５、０．１５｝であり、規格化して、ｐ４’＝｛０．０、０．０、０．１、０．０５、０．１｝となる。この２つの数値に対して、親要素Ｅ０の各要素から要素Ｅ１のＮＵＬＬ文字列への遷移確率の比で和をとればｐ４’＝｛０、０．０８、０．０６、０．０９、０．０６｝となる。
【０１３１】
［単語関係数値化処理手順］
つぎに、図１４に示した単語関係数値化部１３０３による単語関係数値化処理手順について具体的に説明する。図２５は、図１４に示した単語関係数値化部１３０３による単語関係数値化処理手順を示すフローチャートである。
【０１３２】
図２５において、まず、親要素番号ｉ１をｉ１＝０とし（ステップＳ２５０１）、その文字列番号ｊ１をｊ１＝０とし（ステップＳ２５０２）、単語候補番号ｋ１＝０とする（ステップＳ２５０３）。そして、親要素Ｅｉ１の子要素Ｅｉ２の子要素番号ｉ２を読み込む（ステップＳ２５０４）。そして、この子要素Ｅｉ２の文字列番号ｊ２をｊ２＝０とし（ステップＳ２５０５）、子要素Ｅｉ２の単語候補番号ｋ２をｋ２＝０とする（ステップＳ２５０６）。
【０１３３】
そして、親要素Ｅｉ１から子要素Ｅｉ２までの上下距離ｃｘを計数する（ステップＳ２５０７）。同様に、親要素Ｅｉ１から子要素Ｅｉ２までの左右距離ｃｙを計数する（ステップＳ２５０８）。そして、距離（ｃｘ，ｃｙ）で親要素Ｅｉ１および子要素Ｅｉ２が存在する遷移確率ｐ４を接続情報テーブル９００から読み出す（ステップＳ２５０９）。
【０１３４】
そして、読み出された遷移確率ｐ４を規格化して（ステップＳ２５１０）、規格化遷移確率ｐ４’を得る。このあと、子要素Ｅｉ２の単語候補番号ｋ２をインクリメントし（ステップＳ２５１１）、単語候補番号ｋ２がｋ２＞Ｋ２であるか否かを判断する（ステップＳ２５１２）。ここで、Ｋ２とは、子要素Ｅｉ２の文字列番号ｊ２の単語候補数である。
【０１３５】
ｋ２＞Ｋ２でない場合（ステップＳ２５１２：Ｎｏ）、ステップＳ２５０７に戻る。一方、ｋ２＞Ｋ２である場合（ステップＳ２５１２：Ｙｅｓ）、子要素Ｅｉ２の文字列番号ｊ２をインクリメントする（ステップＳ２５１３）。そして、子要素Ｅｉ２の文字列番号ｊ２がｊ２＞Ｊ２であるか否かを判断する（ステップＳ２５１４）。ここで、Ｊ２とは、子要素Ｅｉ２の対応文字列数である。
【０１３６】
ｊ２＞Ｊ２でない場合（ステップＳ２５１４：Ｎｏ）、ステップＳ２５０６に戻る。一方、ｊ２＞Ｊ２である場合（ステップＳ２５１４：Ｙｅｓ）、子要素番号ｉ２をインクリメントし（ステップＳ２５１５）、ｉ２＞Ｉ２であるか否かを判断する（ステップＳ２５１６）。ここで、Ｉ２とは、子要素Ｅｉ２の要素数である。
【０１３７】
ｉ２＞Ｉ２でない場合（ステップＳ２５１６：Ｎｏ）、ステップＳ２５０５に戻る。一方、ｉ２＞Ｉ２である場合（ステップＳ２５１６：Ｙｅｓ）、親要素Ｅｉ１の単語候補番号ｋ１をインクリメントし（ステップＳ２５１７）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ２５１８）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０１３８】
ｋ１＞Ｋ１でない場合（ステップＳ２５１８：Ｎｏ）、ステップＳ２５０４に戻る。一方、ｋ１＞Ｋ１である場合（ステップＳ２５１８：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ２５１９）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ２５２０）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０１３９】
ｊ１＞Ｊ１でない場合（ステップＳ２５２０：Ｎｏ）、ステップＳ２５０３に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ２５２０：Ｙｅｓ）、親要素Ｅｉ１の要素番号ｉ１をインクリメントし（ステップＳ２５２１）、親要素番号ｉ１がｉ１＞Ｉ１であるか否かを判断する（ステップＳ２５２２）。ここで、Ｉ１とは、親要素Ｅｉ１の要素数である
。
【０１４０】
ｉ１＞Ｉ１でない場合（ステップＳ２５２２：Ｎｏ）、ステップＳ２５０２に戻る。一方、ｉ１＞Ｉ１である場合（ステップＳ２５２２：Ｙｅｓ）、単語評価処理（ステップＳ１４０６）に移行する。これにより、一連の単語関係数値化処理を終了する。このように、単語関係数値化部１３０３によれば、親要素Ｅｉ１の単語候補と子要素Ｅｉ２の単語候補とが配置において関連しあう頻度を数値化することができる。
【０１４１】
［単語評価部１３０４の詳細説明］
つぎに、単語評価部１３０４について説明する。単語評価部１３０４では、単語の出現確率と、単語関係に関する候補間の関係とが考慮され、各要素Ｅｉにおける単語候補の確率が算出される。具体的には、たとえば、確率伝搬法（Ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ）を適用することができる。
【０１４２】
単語候補については、単語関係数値化部１３０３によって得られた規格化遷移確率ｐ４’に従い、階層構造に妥当な組み合わせを構成できる配置にある単語候補どうしであれば、高い確率が与えられ、そうでなければ低い確率が与えられる。
【０１４３】
類似手法として、隠れマルコフモデル（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  ｍｏｄｅｌ）が存在する。なお、計算方法については多くの例が存在し、任意の方法によって計算することができる。
【０１４４】
ここで、単語評価部１３０４について具体的に説明する。単語評価部１３０４では、単語出現数値化部１３０２によって得られた規格化出現確率ｐ３’と単語関係数値化部１３０３によって得られた規格化遷移確率ｐ４’に従って、各要素Ｅｉのそれぞれの単語候補Ｗｋがこの要素Ｅｉを示す帳票２００上の文字列である事後確率ｐｐ１を算出する。
【０１４５】
図２６は、単語評価部１３０４によって得られる第３の単語候補テーブルを示す説明図である。第３の単語候補テーブル２６００は、第２の単語候補テーブル１７００にさらに要素Ｅｉごとに事後確率ｐｐ１を追加した単語候補テーブルである。
【０１４６】
事後確率ｐｐ１の算出手法として、木構造１２００の共通論理構造を確率ネットワークとみなして計算をおこなう。ここでの例として、有向グラフの場合の計算方法を提示するが、無向グラフによる場合の計算方法もすでに確立されており、これらは片側マルコフと両側マルコフの等価性から、与える確率表現が異なるに過ぎないので割愛する。具体的には、上述した要素間の規格化遷移確率ｐ４’がポテンシャル関数に変化したものによって与えることができる。
【０１４７】
すなわち、単語評価部１３０４では、共通論理構造の要素と接続の関係に従い生成されたグラフに対して、文字列間の関係性を考慮した数値化をおこなう。これは、上記で与えられたグラフに対して、確率的な伝搬を施すことによって実施することができる。
【０１４８】
木構造１２００の有向グラフの計算方法として、３つのプロセスが必要となる。上位階層である親要素Ｅｉ１から計算をおこなうフォワードプロセス（ｆｏｒｗａｒｄ  ｐｒｏｃｅｓｓ）、下位階層から親要素Ｅｉ１への計算をおこなうバックワードプロセス（ｂａｃｋｗａｒｄ  ｐｒｏｃｅｓｓ）、そして、最後に事後確率の算出プロセスである。
【０１４９】
ここで、まず、フォワードプロセスについて説明する。フォワードプロセスでは、下位（子）の要素Ｅｉ２の単語候補Ｗｉ２とした場合、当該下位の要素Ｅｉ２に対するすべて
の上位（親）の要素Ｅｉ１の単語候補の確からしさをあらわす確率ｐｆ（ｉ，ｊ，ｋ）を
算出する。確率ｐｆ（ｉ，ｊ，ｋ）は下記式（１２）であらわされる。以後、単に確率ｐ
ｆと表記する場合もある。
【０１５０】
【数７】
2008033830.tif 000009
【０１５１】
ただし、式（１２）中、ｉ’は要素Ｅｉの親要素を示し、ｊ’は親要素ｉ’の文字列番
号を示し、ｋ’は文字列番号ｊ’によって抽出された単語候補番号を示す。また、｛Ｏi｝-は文字列ｉから見た場合の上位階層でのすべての単語候補をあらわす。
【０１５２】
つぎに、バックワードプロセスについて説明する。バックワードプロセスでは、上位（親）の要素Ｅｉ１の単語候補Ｗｉ１とした場合、当該上位の要素Ｅｉ２に対するすべての
下位（子）の要素Ｅｉ２の単語候補の確からしさをあらわす確率ｐｂ（ｉ，ｊ，ｋ）を算
出する。確率ｐｂ（ｉ，ｊ，ｋ）は下記式（１３）であらわされる。以後、単に確率ｐｂ
と表記する場合もある。
【０１５３】
【数８】
2008033830.tif 000010
【０１５４】
ここで、式（１３）中、ｉ’は要素Ｅｉの子要素を示し、ｊ’は子要素ｉ’の文字列番
号を示し、ｋ’は文字列番号ｊ’によって抽出された単語候補番号を示す。
【０１５５】
つぎに、事後確率算出プロセスについて説明する。事後確率算出プロセスでは、要素Ｅｉの対応文字列Ｍｉｊの単語候補Ｗｋに対する事後確率ｐｐ１（ｉ，ｊ，ｋ）を算出する
。以後、単にｐｐ１と表記する場合もある。事後確率ｐｐ１（ｉ，ｊ，ｋ）は下記式（１４）〜（１７）であらわされる。
【０１５６】
【数９】
2008033830.tif 000011
【０１５７】
式（１４）〜（１７）中、ｉ’は要素Ｅｉの親要素を示し、ｊ’は親要素ｉ’の文字列
番号を示し、ｋ’は文字列番号ｊ’によって抽出された単語候補番号を示す。｛Ｏｉ｝を
すべての論理要素に対する観測であるとする。これらのすべてのプロセスが、すべての要素Ｅｉの対応文字列Ｍｉｊの単語候補Ｗｋに対して実行される。
【０１５８】
事後確率算出プロセスにより事後確率ｐｐ１を算出するということは、ある親要素Ｅｉ１が存在し、その子要素Ｅｉ２に複数の単語候補Ｗｋ２が存在した場合、これらの中から確からしい単語候補Ｗｋ２を求める作業に相当する。
【０１５９】
上述した３つのプロセスのうち、フォワードプロセスは上位の階層から計算が実行され、上位の階層で得られた確率ｐｆを用いて現階層の確率ｐｆが算出される。この処理は、再帰処理によって実現することができる。逆に、バックワードプロセスでは、下位の階層で求められた確率ｐｂを用いて現階層の確率ｐｂを算出する。この処理も同様に再帰処理によって実現することができる。以下に具体例を示す。
【０１６０】
図２７は、フォワードプロセスの計算例を示す説明図である。図２７において、親要素Ｅ０のある単語候補が出現した場合に子要素Ｅ１のある単語候補が出現する確率ｐｆｘを、下記式（１８）に示す。
【０１６１】
ｐｆｘ＝（親要素Ｅ０のｐ３’）×（親要素Ｅ０の子要素Ｅ１に対するｐ４’）×（親要素Ｅ０のｐ３’）・・・（１８）
【０１６２】
図２７中、一つ例を挙げる。親要素Ｅ０の単語候補が『氏名』であり、子要素Ｅ１の単語候補が『（姓）』である場合、式（１８）に代入すると、
ｐｆ１＝０．６７×０．３×０．６＝０．１２
となる。
【０１６３】
また、親要素Ｅ０の単語候補が『（名）』であり、子要素Ｅ１の単語候補が『（姓）』である場合、式（１８）に代入すると、
ｐｆ２＝０．３３×０．０×０．６＝０
となる。
【０１６４】
また、親要素Ｅ０の単語候補がＮＵＬＬであり、子要素Ｅ１の単語候補が『（姓）』である場合、式（１８）に代入すると、
ｐｆ３＝０．０×０．８×０．６＝０
となる。
【０１６５】
これら親要素Ｅ０の単語候補『氏名』、『（名）』、ＮＵＬＬから子要素Ｅ１の単語候補『（姓）』へ伝搬する確率ｐｆ１〜ｐｆ３の合計が確率ｐｆ（＝０．１２＋０＋０＝０．１２）となる。
【０１６６】
つぎに、親要素Ｅ０との関係で子要素であった要素Ｅ１は、要素Ｅ３との関係では親要素となる。ここで、親要素Ｅ１のある単語候補から子要素Ｅ３のある単語候補へ伝搬する確率ｐｆｙを、下記式（１９）に示す。
【０１６７】
ｐｆｙ＝（親要素Ｅ１のｐｆ）×（子親要素Ｅ３のｐ３’）×（子要素Ｅ３の親要素Ｅ１に対するｐ４’）・・・（１９）
となる。
【０１６８】
図２７中、一つ例を挙げる。親要素Ｅ１の単語候補が『（姓）』であり、子要素Ｅ３の単語候補が『富士』である場合、式（１９）に代入すると、
ｐｆ１＝０．１２×０．２×０．１８＝０．００４３２
となる。
【０１６９】
また、親要素Ｅ１の単語候補がＮＵＬＬであり、子要素Ｅ３の単語候補が『富士』である場合、式（１９）に代入すると、
ｐｆ２＝０．１２０４×０．０９×０．１８＝０．００１９５
となる。
【０１７０】
これら親要素Ｅ１の単語候補『（姓）』、ＮＵＬＬから子要素Ｅ１の単語候補『富士』へ伝搬する確率ｐｆ１，ｐｆ２の合計が確率ｐｆ（＝０．００４３２＋０．００１９５＝０．００６２７）となる。
【０１７１】
図２８は、バックワードプロセスの計算例を示す説明図である。図２８において、子要素Ｅ３のある単語候補から親要素Ｅ１のある単語候補へ伝搬する確率ｐｂｘを、下記式（２０）に示す。
【０１７２】
ｐｂｘ＝（子要素Ｅ３の親要素Ｅ１に対するｐ４’）×（子要素Ｅ３のｐ３’）×（親要素Ｅ１のｐ３’）・・・（２０）
【０１７３】
図２８中、一つ例を挙げる。子要素Ｅ３の単語候補が『氏名』であり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ１＝０．１８×０．０×０．６＝０
となる。
【０１７４】
また、子要素Ｅ３の単語候補が『フジ』であり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ２＝０．１８×０．０×０．６＝０
となる。
【０１７５】
また、子要素Ｅ３の単語候補が『タロウ』であり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ３＝０．１８×０．０×０．６＝０
となる。
【０１７６】
また、子要素Ｅ３の単語候補が『富士』であり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ４＝０．１８×０．２×０．６＝０．０２１６
となる。
【０１７７】
また、子要素Ｅ３の単語候補が『太郎』であり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ５＝０．１８×０．１×０．６＝０．０１０８
となる。
【０１７８】
また、子要素Ｅ３の単語候補がＮＵＬＬであり、親要素Ｅ１の単語候補が『（姓）』である場合、式（２０）に代入すると、
ｐｂ６＝０．１×０．１×０．６＝０．００６
となる。
【０１７９】
これら子要素Ｅ３の単語候補『氏名』〜ＮＵＬＬから親要素Ｅ１の単語候補『（姓）』へ伝搬する確率ｐｂ１〜ｐｂ６の合計が確率ｐｂ（＝０＋０＋０＋０．０２１６＋０．０１０８＋０．００６＝０．０３８４）となる。
【０１８０】
つぎに、子要素Ｅ３との関係で親要素であった要素Ｅ１は、要素Ｅ０との関係では子要素となる。ここで、子要素Ｅ１のある単語候補から親要素Ｅ０のある単語候補へ伝搬する確率ｐｂｙを、下記式（２１）に示す。
【０１８１】
ｐｂｙ＝（子要素Ｅ１のｐｂ）×（親要素Ｅ０の子要素Ｅ１に対するｐ４’）×（親要素Ｅ０のｐ３’）・・・（２１）
【０１８２】
図２８中、一つ例を挙げる。子要素Ｅ１の単語候補が『（姓）』であり、親要素Ｅ０の単語候補が『氏名』である場合、式（２１）に代入すると、
ｐｂ１＝０．０３８４×０．３×０．６７＝０．００７７１
となる。
【０１８３】
また、子要素Ｅ１の単語候補がＮＵＬＬであり、親要素Ｅ０の単語候補が『氏名』である場合、式（２１）に代入すると、
ｐｂ２＝０．０２４９×０．４×０．６７＝０．００６６７
となる。
【０１８４】
これら子要素Ｅ１の単語候補『（姓）』、ＮＵＬＬから親要素Ｅ０の単語候補『氏名』へ伝搬する確率ｐｂ１、ｐｂ２の合計が確率ｐｂ（＝０．００７７１＋０．００６６７＝０．０１４４）となる。
【０１８５】
図２９は、事後確率算出プロセスの計算例を示す説明図である。図２９において、上段の文字列『氏名』，『（名）』，ＮＵＬＬが要素Ｅ０の単語候補であり、中段の文字列『（姓）』，ＮＵＬＬが要素Ｅ１の単語候補であり、下段の文字列『氏名』〜ＮＵＬＬが要素Ｅ３の単語候補である。
【０１８６】
要素Ｅ０の事後確率は、図２８に示したバックワードプロセスで得られた確率ｐｂを規格化した確率である。要素Ｅ０の各単語候補『氏名』，『（名）』，ＮＵＬＬの確率ｐｂは、それぞれ０．０１４４、０．０００８２２、０．０であり、その合計は０．０１５２２２である。したがって、単語候補『氏名』の事後確率ｐｐ１は、要素Ｅ０の各単語候補『氏名』，『（名）』，ＮＵＬＬの確率ｐｂで規格化すると、
ｐｐ１＝０．０１４４／０．０１５２２２＝９４．６％
となる。
【０１８７】
同様に、要素Ｅ０の単語候補『（名）』の事後確率ｐｐ１は、要素Ｅ０の各単語候補『氏名』，『（名）』，ＮＵＬＬの確率ｐｂで規格化すると、
ｐｐ１＝０．０００８２２／（０．０１４４＋０．０００８２２＋０．０）＝５．４％
となる。
【０１８８】
同様に、要素Ｅ０のＮＵＬＬ文字列の事後確率ｐｐ１は、要素Ｅ０の各単語候補『氏名』，『（名）』，ＮＵＬＬの確率ｐｂで規格化すると、
ｐｐ１＝０．０／（０．０１４４＋０．００８２２＋０．０）＝０％
となる。
【０１８９】
要素Ｅ１の事後確率も、図２８に示したバックワードプロセスで得られた確率ｐｂを規格化した確率である。子要素Ｅ１の単語候補が『（姓）』であり、親要素Ｅ０の単語候補が『氏名』である場合、式（２１）に代入すると、
ｐｂ１＝０．０３８４×０．３×０．６７＝０．００７７１
となる。
【０１９０】
また、子要素Ｅ１の単語候補がＮＵＬＬであり、親要素Ｅ０の単語候補が『氏名』である場合、式（２１）に代入すると、
ｐｂ２＝０．０２４９×０．４×０．６７＝０．００６６７
となる。
【０１９１】
子要素Ｅ１の単語候補が『（姓）』であり、親要素Ｅ０の単語候補が『（名）』である場合、式（２１）に代入すると、
ｐｂ３＝０．０３８４×０．０×０．３３＝０
となる。
【０１９２】
また、子要素Ｅ１の単語候補がＮＵＬＬであり、親要素Ｅ０の単語候補が『（名）』である場合、式（２１）に代入すると、
ｐｂ４＝０．０２４９×０．１×０．３３＝０．０００８２
となる。
【０１９３】
子要素Ｅ１の単語候補が『（姓）』であり、親要素Ｅ０の単語候補がＮＵＬＬである場合、式（２１）に代入すると、
ｐｂ５＝０．０３８４×０．８×０．０＝０
となる。
【０１９４】
また、子要素Ｅ１の単語候補がＮＵＬＬであり、親要素Ｅ０の単語候補がＮＵＬＬである場合、式（２１）に代入すると、
ｐｂ６＝０．０２４９×０．２×０．０＝０
となる。
【０１９５】
要素Ｅ１の単語候補『（姓）』の事後確率ｐｐ１は、その確率ｐｂ１を確率ｐｂ１〜ｐｂ６で規格化すると、
ｐｐ１
＝（ｐｂ１＋ｐｂ３＋ｐｂ５）／（ｐｂ１＋ｐｂ２＋ｐｂ３＋ｐｂ４＋ｐｂ５＋ｐｂ６）
＝０．００７７１／０．００７７１＋０．００６６７＋０＋０．０００８２＋０＋０）
＝０．００７７１／０．０１５２
＝５１％
となる。
【０１９６】
同様に、要素Ｅ０の単語候補『氏名』に対する要素Ｅ１のＮＵＬＬ文字列の事後確率ｐｐ１は、その確率ｐｂ１を確率ｐｂ１〜ｐｂ６で規格化すると、
ｐｐ１
＝（ｐｂ２＋ｐｂ４＋ｐｂ６）／（ｐｂ１＋ｐｂ２＋ｐｂ３＋ｐｂ４＋ｐｂ５＋ｐｂ６）
＝（０．００６６７＋０．０００８２）／０．００７７１＋０．００６６７＋０＋０．０００８２＋０＋０）
＝０．００７４９／０．０１５２
＝４９％
となる。
【０１９７】
要素Ｅ３の事後確率は、図２７に示したフォワードプロセスで得られた確率ｐｆを規格化した確率である。要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆは、それぞれ０．０、０．００１７３、０．００１３０、０．００６２７、０．００３４６、０．００２４０であり、その合計は０．０１５１６である。したがって、要素Ｅ３の単語候補『氏名』の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．０／０．０１５１６＝０％
となる。
【０１９８】
同様に、要素Ｅ３の単語候補『フジ』の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．００１７３／０．０１５１６＝１２％
となる。
【０１９９】
同様に、要素Ｅ３の単語候補『タロウ』の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．００１３０／０．０１５１６＝９．１％
となる。
【０２００】
同様に、要素Ｅ３の単語候補『富士』の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．００６２７／０．０１５１６＝４１．２％
となる。
【０２０１】
同様に、要素Ｅ３の単語候補『太郎』の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．００３４６／０．０１５１６＝２２．４％
となる。
【０２０２】
同様に、要素Ｅ３のＮＵＬＬ文字列の事後確率ｐｐ１は、要素Ｅ３の各単語候補『氏名』〜ＮＵＬＬの確率ｐｆで規格化すると、
ｐｐ１＝０．００２４０／０．０１５１６＝１５．３％
となる。
【０２０３】
この結果、要素Ｅ０では、単語候補『氏名』は事後確率ｐｐ１＝９４．６％で存在し、単語候補『（名）』は事後確率ｐｐ１＝５．４％で存在する。また、要素Ｅ１では、単語候補『（姓）』は事後確率ｐｐ１＝５１％で存在し、ＮＵＬＬ文字列は事後確率ｐｐ１＝４９％で存在する。これは、単語候補『（姓）』が出現している確率が、出現していない確率を上回っていることを示す。また、要素Ｅ３では、単語候補となる姓データは、『富士』、『太郎』、ＮＵＬＬ文字列、『フジ』、『タロウ』の順に確率が高い。
【０２０４】
［単語評価処理手順］
つぎに、図１４に示した単語評価部１３０４による単語評価処理手順について具体的に説明する。図３０は、図１４に示した単語評価部１３０４による単語評価処理手順を示すフローチャートである。
【０２０５】
図３０において、まず、確定テーブル番号ｑをｑ＝０とする（ステップＳ３００１）。確定テーブル番号ｑについては後述する。つぎに、フォワードプロセス（ステップＳ３００２）、バックワードプロセス（ステップＳ３００３）、事後確率算出プロセス（ステップＳ３００４）を実行して単語決定処理（ステップＳ１４０７）に移行することで、一連の単語評価処理を終了する。
【０２０６】
［フォワードプロセスの処理手順］
つぎに、図３０に示したフォワードプロセスの具体的な処理手順について説明する。図３１は、フォワードプロセスの具体的な処理手順を示すフローチャートである。図３１において、確率ｐｆ（ｉ，ｊ，ｋ）＝０とする（ステップＳ３１０１）。そして、親要素の要素番号ｉ１をｉ１＝０とする（ステップＳ３１０２）。
【０２０７】
つぎに、この親要素Ｅｉ１に対し子要素が存在するか否かを判断する（ステップＳ３１０３）。子要素が存在しない場合（ステップＳ３１０３：Ｎｏ）、バックワードプロセス（ステップＳ３００３）に移行する。一方、ステップＳ３１０３において、子要素が存在する場合（ステップＳ３１０３：Ｙｅｓ）、子要素の要素番号ｉ２をｉ２＝０とし（ステップＳ３１０４）、フォワード計算処理を実行する（ステップＳ３１０５）。フォワード計算処理のあと、バックワードプロセス（ステップＳ３００３）に移行する。
【０２０８】
［フォワード計算処理手順］
つぎに、図３１に示したフォワード計算処理の具体的な処理手順について説明する。図３２は、図３１に示したフォワード計算処理の具体的な処理手順を示すフローチャートである。図３２において、子要素Ｅｉ２の文字列番号ｊ２をｊ２＝０とし（ステップＳ３２０１）、文字列番号ｊ２の単語候補番号ｋ２をｋ２＝０とする（ステップＳ３２０２）。また、親要素Ｅｉ１の文字列番号ｊ１をｊ１＝０とし（ステップＳ３２０３）、文字列番号ｊ１の単語候補番号ｋ１をｋ１＝０とする（ステップＳ３２０４）。
【０２０９】
つぎに、子要素Ｅｉ２の親要素Ｅｉ１の単語が単語候補Ｗｋである確率ｐｆ（ｉ２，ｊ２，ｋ２）を算出する（ステップＳ３２０５）。確率ｐｆ（ｉ２，ｊ２，ｋ２）は下記式（２２）で算出される。
ｐｆ（ｉ２，ｊ２，ｋ２）
＝ｐ４’（ｉ１，ｉ２，ｊ１，ｊ２，ｋ１，ｋ２）×ｐｆ（ｉ１，ｊ１，ｋ１）×ｐ３’（ｉ２，ｊ２，ｋ２）・・・（２２）
【０２１０】
なお、子要素Ｅｉ２の親要素Ｅｉ１が存在しない場合（たとえば、子要素Ｅｉ２＝要素Ｅ０）、ｐｆ（ｉ１，ｊ１，ｋ１）の替わりに、当該子要素Ｅｉ２の規格化出現確率ｐ３’（ｉ２，ｊ２，ｋ２）を代入する。
【０２１１】
このあと、親要素Ｅｉ１の単語候補番号ｋ１をインクリメントし（ステップＳ３２０６）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ３２０７）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０２１２】
ｋ１＞Ｋ１でない場合（ステップＳ３２０７：Ｎｏ）、ステップＳ３２０５に戻り、確率ｐｆ（ｉ２，ｊ２，ｋ２）を算出する。一方、ｋ１＞Ｋ１である場合（ステップＳ３２０７：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ３２０８）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ３２０９）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０２１３】
ｊ１＞Ｊ１でない場合（ステップＳ３２０９：Ｎｏ）、ステップＳ３２０４に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ３２０９：Ｙｅｓ）、子要素Ｅｉ２の単語候補番号ｋ２をインクリメントし（ステップＳ３２１０）、単語候補番号ｋ２がｋ２＞Ｋ２であるか否かを判断する（ステップＳ３２１１）。ここで、Ｋ２とは、子要素Ｅｉ２の文字列番号ｊ２の単語候補数である。
【０２１４】
ｋ２＞Ｋ２（ｉ２，ｊ２）でない場合（ステップＳ３２１１：Ｎｏ）、ステップＳ３２０３に戻る。一方、ｋ２＞Ｋ２である場合（ステップＳ３２１１：Ｙｅｓ）、親要素Ｅｉ２の文字列番号ｊ２をインクリメントし（ステップＳ３２１２）、文字列番号ｊ２がｊ２＞Ｊ２であるか否かを判断する（ステップＳ３２１３）。ここで、Ｊ２とは、子要素Ｅｉ２の対応文字列数である。
【０２１５】
ｊ２＞Ｊ２でない場合（ステップＳ３２１３：Ｎｏ）、ステップＳ３２０２に戻る。一方、ｊ２＞Ｊ２である場合（ステップＳ３２１３：Ｙｅｓ）、さらに子要素が存在するか否かを判断する（ステップＳ３２１４）。子要素が存在しない場合（ステップＳ３２１４：Ｎｏ）、フォワード計算処理を終了し、ステップＳ３００３へ移行する。
【０２１６】
一方、子要素Ｅｉ２に対してさらに子要素が存在する場合（ステップＳ３２１４：Ｙｅｓ）、親要素番号ｉ１をｉ１＝ｉ２とする（ステップＳ３２１５）。すなわち、子要素Ｅｉ２を親要素Ｅｉ２にする。そして、子要素番号ｉ２をｉ２＝０として（ステップＳ３２１６）、ステップＳ３２０１に戻る。これにより、子要素が存在しなくなるまで、フォワード計算処理が実行される。
【０２１７】
［バックワードプロセスの処理手順］
つぎに、図３０に示したバックワードプロセスの具体的な処理手順について説明する。図３３は、バックワードプロセスの具体的な処理手順を示すフローチャートである。図３３において、確率ｐｂ（ｉ，ｊ，ｋ）＝０とする（ステップＳ３３０１）。そして、親要素の要素番号ｉ１をｉ１＝０とする（ステップＳ３３０２）。
【０２１８】
つぎに、この親要素Ｅｉ１に対し子要素が存在するか否かを判断する（ステップＳ３３０３）。子要素が存在しない場合（ステップＳ３３０３：Ｎｏ）、事後確率算出プロセス（ステップＳ３００４）に移行する。一方、ステップＳ３３０３において、子要素が存在する場合（ステップＳ３３０３：Ｙｅｓ）、子要素の要素番号ｉ２をｉ２＝０とし（ステップＳ３３０４）、バックワード計算処理を実行する（ステップＳ３３０５）。バックワード計算処理のあと、事後確率算出プロセス（ステップＳ３００４）に移行する。
【０２１９】
［バックワード計算処理手順］
つぎに、図３３に示したバックワード計算処理の具体的な処理手順について説明する。図３４は、図３３に示したバックワード計算処理の具体的な処理手順を示すフローチャートである。
【０２２０】
図３４において、まず、子要素Ｅｉ２に対してさらに子要素が存在するか否かを判断する（ステップＳ３４０１）。子要素が存在する場合（ステップＳ３４０１：Ｙｅｓ）、親要素番号ｉ１をｉ１＝ｉ２とする（ステップＳ３４０２）。すなわち、子要素Ｅｉ２を親要素Ｅｉ２にする。そして、子要素番号ｉ２をｉ２＝０として（ステップＳ３４０３）、ステップＳ３４０１に戻る。これにより、最下位の子要素を検出することができる。
【０２２１】
一方、子要素が存在しない場合（ステップＳ３４０１：Ｎｏ）、子要素Ｅｉ２の文字列番号ｊ２をｊ２＝０にし（ステップＳ３４０４）、文字列番号ｊ２の単語候補番号ｋ２をｋ２＝０とする（ステップＳ３４０５）。また、親要素Ｅｉ１の文字列番号ｊ１をｊ１＝０とし（ステップＳ３４０６）、文字列番号ｊ１の単語候補番号ｋ１をｋ１＝０とする（ステップＳ３４０７）。
【０２２２】
つぎに、確率ｐｂ（ｉ１，ｊ１，ｋ１）を算出する（ステップＳ３４０８）。確率ｐｂ（ｉ１，ｊ１，ｋ１）は下記式（２３）で算出される。
ｐｂ（ｉ１，ｊ１，ｋ１）
＝ｐ４’（ｉ１，ｉ２，ｊ１，ｊ２，ｋ１，ｋ２）×ｐｂ（ｉ２，ｊ２，ｋ２）×ｐ３’（ｉ１，ｊ１，ｋ１）・・・（２３）
【０２２３】
なお、子要素Ｅｉ２が最下位の子要素である場合、ｐｂ（ｉ２，ｊ２，ｋ２）の替わりに、当該子要素Ｅｉ２の規格化遷移確率ｐ４’（ｉ２，ｊ２，ｋ２）を代入する。
【０２２４】
このあと、親要素Ｅｉ１の単語候補番号ｋ１をインクリメントし（ステップＳ３４０９）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ３４１０）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０２２５】
ｋ１＞Ｋ１でない場合（ステップＳ３４１０：Ｎｏ）、ステップＳ３４０８に戻り、確率ｐｂ（ｉ１，ｊ１，ｋ１）を算出する。一方、ｋ１＞Ｋ１である場合（ステップＳ３４１０：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ３４１１）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ３４１２）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０２２６】
ｊ１＞Ｊ１でない場合（ステップＳ３４１２：Ｎｏ）、ステップＳ３４０７に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ３４１２：Ｙｅｓ）、子要素Ｅｉ２の単語候補番号ｋ２をインクリメントし（ステップＳ３４１３）、単語候補番号ｋ２がｋ２＞Ｋ２であるか否かを判断する（ステップＳ３４１４）。ここで、Ｋ２とは、子要素Ｅｉ２の文字列番号ｊ２の単語候補数である。
【０２２７】
ｋ２＞Ｋ２（ｉ２，ｊ２）でない場合（ステップＳ３４１４：Ｎｏ）、ステップＳ３４０６に戻る。一方、ｋ２＞Ｋ２である場合（ステップＳ３４１４：Ｙｅｓ）、親要素Ｅｉ２の文字列番号ｊ２をインクリメントし（ステップＳ３４１５）、文字列番号ｊ２がｊ２＞Ｊ２であるか否かを判断する（ステップＳ３４１６）。ここで、Ｊ２とは、子要素Ｅｉ２の対応文字列数である。
【０２２８】
ｊ２＞Ｊ２でない場合（ステップＳ３４１６：Ｎｏ）、ステップＳ３４０５に戻る。一方、ｊ２＞Ｊ２である場合（ステップＳ３４１６：Ｙｅｓ）、バックワード計算処理を終了し、ステップＳ３００４に移行する。これにより、最上位の親要素にたどり着くまでバックワード計算処理が実行される。
【０２２９】
［事後確率算出プロセスの処理手順］
つぎに、図３０に示した事後確率算出プロセスの具体的な処理手順について説明する。図３５は、事後確率算出プロセスの具体的な処理手順を示すフローチャートである。
【０２３０】
図３５において、まず、親要素番号ｉ１をｉ１＝０とし（ステップＳ３５０１）、その文字列番号ｊ１をｊ１＝０とし（ステップＳ３５０２）、単語候補番号ｋ１＝０とする（ステップＳ３５０３）。そして、親要素Ｅｉ１の子要素Ｅｉ２の子要素番号ｉ２を読み込む（ステップＳ３５０４）。つぎに、この子要素Ｅｉ２の文字列番号ｊ２をｊ２＝０とし（ステップＳ３５０５）、子要素Ｅｉ２の単語候補番号ｋ２をｋ２＝０とする（ステップＳ３５０６）。
【０２３１】
そして、上述した式（１４）〜（１７）を用いて、親要素番号ｉ１、文字列番号ｊ１、単語候補番号ｋ１に関する事後確率ｐｐ１（ｉ１，ｊ１，ｋ１）を算出する（ステップＳ３５０７）。
【０２３２】
このあと、子要素Ｅｉ２の単語候補番号ｋ２をインクリメントし（ステップＳ３５０８）、単語候補番号ｋ２がｋ２＞Ｋ２であるか否かを判断する（ステップＳ３５０９）。ここで、Ｋ２とは、子要素Ｅｉ２の文字列番号ｊ２の単語候補数である。
【０２３３】
ｋ２＞Ｋ２でない場合（ステップＳ３５０９：Ｎｏ）、ステップＳ３５０７に戻る。一方、ｋ２＞Ｋ２である場合（ステップＳ３５０９：Ｙｅｓ）、子要素Ｅｉ２の文字列番号ｊ２をインクリメントする（ステップＳ３５１０）。そして、子要素Ｅｉ２の文字列番号ｊ２がｊ２＞Ｊ２であるか否かを判断する（ステップＳ３５１１）。ここで、Ｊ２とは、子要素Ｅｉ２の対応文字列数である。
【０２３４】
ｊ２＞Ｊ２でない場合（ステップＳ３５１１：Ｎｏ）、ステップＳ３５０６に戻る。一方、ｊ２＞Ｊ２である場合（ステップＳ３５１１：Ｙｅｓ）、子要素番号ｉ２をインクリメントし（ステップＳ３５１２）、ｉ２＞Ｉ２であるか否かを判断する（ステップＳ３５１３）。ここで、Ｉ２とは、子要素Ｅｉ２の要素数である。
【０２３５】
ｉ２＞Ｉ２でない場合（ステップＳ３５１３：Ｎｏ）、ステップＳ３５０５に戻る。一方、ｉ２＞Ｉ２である場合（ステップＳ３５１３：Ｙｅｓ）、親要素Ｅｉ１の単語候補番号ｋ１をインクリメントし（ステップＳ３５１４）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ３５１５）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０２３６】
ｋ１＞Ｋ１でない場合（ステップＳ３５１５：Ｎｏ）、ステップＳ３５０４に戻る。一方、ｋ１＞Ｋ１である場合（ステップＳ３５１５：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ３５１６）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ３５１７）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０２３７】
ｊ１＞Ｊ１でない場合（ステップＳ３５１７：Ｎｏ）、ステップＳ３５０３に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ３５１７：Ｙｅｓ）、事後確率規格化処理を実行する（ステップＳ３５１８）。この処理については後述する。
【０２３８】
そして、親要素Ｅｉ１の要素番号ｉ１をインクリメントし（ステップＳ３５１９）、親要素番号ｉ１がｉ１＞Ｉ１であるか否かを判断する（ステップＳ３５２０）。ここで、Ｉ１とは、親要素Ｅｉ１の要素数である。
【０２３９】
ｉ１＞Ｉ１でない場合（ステップＳ３５２０：Ｎｏ）、ステップＳ３５０２に戻る。一方、ｉ１＞Ｉ１である場合（ステップＳ３５２０：Ｙｅｓ）、事後確率算出プロセスを終了し、単語決定処理（ステップＳ１４０７）に移行する。
【０２４０】
［事後確率規格化処理の手順］
つぎに、図３５に示した事後確率規格化処理の手順について説明する。図３６は、事後確率規格化処理の手順を示すフローチャートである。図３６において、まず、親要素Ｅｉ１の文字列番号ｊ１をｊ１＝０とし（ステップＳ３６０１）、その単語候補番号ｋ１をｋ１＝０とする（ステップＳ３６０２）。
【０２４１】
そして、ステップＳ３５０７で算出された事後確率ｐｐ１（ｉ１，ｊ１，ｋ１）を読み出して、規格化する（ステップＳ３６０３）。規格化は、読み出された事後確率ｐｐ１（ｉ１，ｊ１，ｋ１）を要素Ｅｉ１内のすべての事後確率ｐｐ１の合計で除算することによりおこなう。以降、規格化された事後確率ｐｐ１を事後確率ｐｐｎ１と称す。
【０２４２】
つぎに、親要素Ｅｉ１の単語候補番号ｋ１をインクリメントし（ステップＳ３６０４）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ３６０５）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０２４３】
ｋ１＞Ｋ１でない場合（ステップＳ３６０５：Ｎｏ）、ステップＳ３６０３に戻る。一方、ｋ１＞Ｋ１である場合（ステップＳ３６０５：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ３６０６）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ３６０７）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０２４４】
ｊ１＞Ｊ１でない場合（ステップＳ３６０７：Ｎｏ）、ステップＳ３６０２に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ３６０７：Ｙｅｓ）、事後確率規格化処理を終了し、ステップＳ３５１９に移行する。
【０２４５】
［単語決定部１３０５の詳細説明］
つぎに、単語決定部１３０５について説明する。単語決定部１３０５では、単語評価部１３０４によって得られた確率に応じて単語の確定をおこなう。すべての要素の中で最も高い確率を与える単語候補を持つ要素に対して、最も高い確率を与える単語候補を確定単語として出力する。または、ある一定のしきい値以上の確率を有した単語候補に対して確定を与えることとしてもよい。
【０２４６】
さらに、同じ要素の中で同時に複数の単語候補を格納することもできる。その際、確定した要素を持つ他の単語候補については、同一の要素として存在しないため、出現確率を０または非常に小さな確率値とする。加えて、その文字列に重複する単語候補を持つ要素の該当する単語候補の出現確率を０または非常に小さな確率値にする。
【０２４７】
つぎに、単語決定部１３０５の比較プロセスについて説明する。ここでは簡単のため、支払期日の見出しとデータとに関する共通論理構造をもち、見出しの要素の単語候補として『支払期日』が単語候補抽出部１３０１によって抽出され、その出現確率をａとする。また、データの単語候補として『２００６，８，１』および『２００６，１０，１』が同様に抽出され、その出現確率をｂとする。
【０２４８】
また、単語候補『支払期日』から単語候補『２００６，８，１』への遷移確率を０．４とし、単語候補『２００６，１０，１』への遷移確率を０．２とする。このとき、それぞれの文字列のこのデータの要素に対する確からしさとして事後確率ｐｐ１が算出される。単語候補『２００６，８，１』の事後確率は６６％となり、単語候補『２００６，１０，１』の事後確率は３３％となる。したがって、選択すべき単語候補は『２００６，８，１』となる。
【０２４９】
また、単語候補の決定で用いる量として、一つは上述した事後確率ｐｐ１を用い、もう一つはそれぞれの単語候補として与えられた文字列がどの要素に属するかを示す事後確率ｐｐ２を用いる。この２つの量のうち少なくともいずれか一方を参照して単語候補を決定する。
【０２５０】
事後確率ｐｐ２の算出では各要素での最大の事後確率を与える単語候補のみを抽出し、それらの重複関係を確認する。重複している文字列は、単語候補を囲む最小矩形を基本とし、これらの矩形が重複するものを重複単語として順番を割り振る。この重複単語番号をｓとしたとき、各文字列に対する事後確率ｐｐ２を算出する。事後確率ｐｐ２は、下記式（２４）〜（２６）によりあらわされる。
【０２５１】
【数１０】
2008033830.tif 000012
【０２５２】
重複要素の中で事後確率ｐｐ２を最大にする要素が、該当する文字列の単語候補として最もふさわしい要素であるから、上述した事後確率ｐｐ１に加え事後確率ｐｐ２を最大にする単語候補が一致したときに文字列が確定される。
【０２５３】
ここで、事後確率ｐｐ２について具体的に説明する。事後確率ｐｐ２の算出に先立って、単語候補ごとに、事後確率が最大となる要素を検出する。たとえば、図２９にも示したように、単語候補『氏名』は、要素Ｅ０の単語候補であると同時に、要素Ｅ３の単語候補でもある。要素Ｅ０では事後確率ｐｐ１＝０．９４６であるのに対し、要素Ｅ３では事後確率ｐｐ１＝０．０である。
【０２５４】
このように、要素Ｅ０と要素Ｅ３とで単語候補『氏名』が重複しており、いずれの要素がふさわしいかを確かめるため、事後確率ｐｐ２を算出する。図２９を参照すると、単語候補『氏名』の要素Ｅ０における確率ｐｂはｐｂ＝０．０１４４であり、要素Ｅ３における確率ｐｆはｐｆ＝０．０である。
【０２５５】
この場合、要素Ｅ０についての事後確率ｐｐ２は、
ｐｐ２＝ｐｂ／（ｐｆ＋ｐｂ）＝０．０１４４／（０．０１４４＋０．０）＝１００％
となる。
【０２５６】
一方、要素Ｅ３についての事後確率ｐｐ２は、
ｐｐ２＝ｐｆ／（ｐｆ＋ｐｂ）＝０．０／（０．０１４４＋０．０）＝０％
となる。両事後確率ｐｐ２を比較すると、要素Ｅ０の事後確率ｐｐ２のほうが大きいため、単語候補『氏名』は要素Ｅ０の文字列であると確定する。
【０２５７】
比較プロセスでは、同じ操作をすべての要素番号ｉ、文字列番号ｊ、単語候補番号ｋに対しておこない、最も高い事後確率ｐｐ１，ｐｐ２により単語候補を確定させ、反復処理フラグを１にセットする。またはすべての単語候補を確定させ、反復処理フラグを１にセットする。反復処理フラグが０であれば、このまま終了し、確定フラグに存在する単語候補を確定文字列として使用する。それ以外の場合には、以下の出現確率書換プロセスをおこなう。
【０２５８】
出現確率書換プロセスでは、最大の事後確率ｐｐ２となった要素以外の残余の要素については、その事後確率ｐｐ１を強制的に事後確率ｐｐ１＝０にする。上述した例では、単語候補『氏名』は要素Ｅ０以外の他のどの要素の単語候補としてもはやふさわしくないので、他の単語候補になっていればその出現確率ｐ３’をｐ３’＝０にする。書き換えられる値は０に限らず、単語決定に支障がきたさない程度の比較的小さな値であればよい。
【０２５９】
同様に、最大の事後確率ｐｐ２となった要素の単語候補以外の同一要素内における他の単語候補の出現確率ｐ３’も強制的にｐ３’＝０にする。上述した例では、最大の事後確率ｐｐ２となった要素Ｅ０の単語候補『氏名』以外の要素Ｅ０内の単語候補『（名）』は、要素Ｅ０の単語候補としてもはやふさわしくないので、出現確率ｐ３’＝０．３３を強制的にｐ３’＝０．０にする。
【０２６０】
書き換えられる値は０に限らず、単語決定に支障がきたさない程度の比較的小さな値であればよい。出現確率ｐ３’の強制変換後の単語候補テーブルを図３７に示す。図３７は、出現確率ｐ３’の強制変換後の第４の単語候補テーブルを示す説明図である。
【０２６１】
このように、要素Ｅｉの階層に依存せずに、確定された単語候補以外の単語候補の出現確率ｐ３’を強制的に０にすることにより、単語候補の絞込みの効率化を図ることができる。そして、単語決定部１３０５による処理を反復的に繰り返し実行することにより、一部の単語候補に文字認識誤りが存在し、出現確率がその単語に関して低くなった場合には、逐次的に決定していくことができる。これにより、誤りのあるあいまいな文字列は後の反復によって決定することができる。したがって、少ない単語候補の中からの単語候補の決定を効率的かつ高精度に実行することができる。
【０２６２】
［単語決定処理手順］
つぎに、図１４に示した単語決定部１３０５による単語決定処理手順について具体的に説明する。図３８は、図１４に示した単語決定部１３０５による単語決定処理手順を示すフローチャートである。
【０２６３】
図３８において、まず、比較プロセスを実行する（ステップＳ３８０１）。比較プロセスについては後述する。つぎに、反復処理終了フラグ＝１であるか否かを判断する（ステップＳ３８０２）。反復処理終了フラグ＝１でない場合（ステップＳ３８０２：Ｎｏ）、出現確率書換プロセスを実行する（ステップＳ３８０３）。出現確率書換プロセスについては後述する。一方、反復処理終了フラグ＝１である場合（ステップＳ３８０２：Ｙｅｓ）、単語決定処理を終了する。
【０２６４】
［比較プロセスの処理手順］
つぎに、図３８に示した比較プロセス（ステップＳ３８０１）の具体的な処理手順について説明する。図３９は、図３８に示した比較プロセス（ステップＳ３８０１）の具体的な処理手順を示すフローチャートである。
【０２６５】
図３９において、まず、反復処理終了フラグ＝１にセットし（ステップＳ３９０１）、親要素番号ｉ１をｉ１＝０とする（ステップＳ３９０２）。親要素Ｅｉ１内の最大事後確率ｐｐ１をｐｍａｘ（ｉ１）とした場合、最大事後確率ｐｍａｘ（ｉ１）＝０にする（ステップＳ３９０３）。
【０２６６】
また、親要素Ｅｉの文字列番号ｊ１をｊ１＝０とし（ステップＳ３９０４）、その単語候補番号ｋ１をｋ１＝０とする（ステップＳ３９０５）。そして、規格化された事後確率ｐｐｎ１（ｉ１，ｊ１，ｋ１）がｐｐｎ１（ｉ１，ｊ１，ｋ１）≧ｐｍａｘ（ｉ１）であるか否かを判断する（ステップＳ３９０６）。
【０２６７】
そして、ｐｐｎ１（ｉ１，ｊ１，ｋ１）≧ｐｍａｘ（ｉ１）である場合（ステップＳ３９０６：Ｙｅｓ）、最大文字列番号ｊｍａｘをそのときの文字列番号ｊ１（ｊｍａｘ＝ｊ１）とし（ステップＳ３９０７）、最大単語候補番号ｋｍａｘをそのときの単語候補番号ｋ１（ｋｍａｘ＝ｋ１）とし（ステップＳ３９０８）、最大テキスト番号ｔｍａｘをそのときの単語候補番号ｋ１に付与されているテキスト番号ｔとして（ステップＳ３９０９）、ステップＳ３９１０に移行する。
【０２６８】
一方、ステップＳ３９０６において、ｐｐｎ１（ｉ１，ｊ１，ｋ１）≧ｐｍａｘ（ｉ１）でない場合（ステップＳ３９０６：Ｎｏ）、ステップＳ３９１０に移行する。そして、ステップＳ３９１０では、単語候補番号ｋ１をインクリメントし（ステップＳ３９１０）、単語候補番号ｋ１がｋ１＞Ｋ１であるか否かを判断する（ステップＳ３９１１）。ここで、Ｋ１とは、親要素Ｅｉ１の文字列番号ｊ１の単語候補数である。
【０２６９】
ｋ１＞Ｋ１でない場合（ステップＳ３９１１：Ｎｏ）、ステップＳ３９０６に戻る。一方、ｋ１＞Ｋ１である場合（ステップＳ３９１１：Ｙｅｓ）、親要素Ｅｉ１の文字列番号ｊ１をインクリメントし（ステップＳ３９１２）、文字列番号ｊ１がｊ１＞Ｊ１であるか否かを判断する（ステップＳ３９１３）。ここで、Ｊ１とは、親要素Ｅｉ１の対応文字列数である。
【０２７０】
ｊ１＞Ｊ１でない場合（ステップＳ３９１３：Ｎｏ）、ステップＳ３９０５に戻る。一方、ｊ１＞Ｊ１である場合（ステップＳ３９１３：Ｙｅｓ）、比較計算処理を実行する（ステップＳ３９１４）。この処理については後述する。
【０２７１】
そして、親要素Ｅｉ１の要素番号ｉ１をインクリメントし（ステップＳ３９１５）、親要素番号ｉ１がｉ１＞Ｉ１であるか否かを判断する（ステップＳ３９１６）。ここで、Ｉ１とは、親要素Ｅｉ１の要素数である。ｉ１＞Ｉ１でない場合（ステップＳ３９１６：Ｎｏ）、ステップＳ３９０３に戻る。一方、ｉ１＞Ｉ１である場合（ステップＳ３９１６：Ｙｅｓ）、ステップＳ３８０２に移行する。
【０２７２】
［比較計算処理の手順］
つぎに、図３９に示した比較計算処理（ステップＳ３９１４）の手順について説明する。図４０は、図３９に示した比較計算処理（ステップＳ３９１４）の手順を示すフローチャートである。このフローチャートは、図３９のステップＳ３９０９のテキスト番号ｔを最大テキスト番号ｔｍａｘとする親要素Ｅｉ１の単語候補Ｗｋ１とその重複候補とを比較計算する処理手順である。
【０２７３】
図４０において、まず重複する子要素の重複候補番号ｓをｓ＝０とする（ステップＳ４００１）。そして、重複候補番号ｓが与えられる子要素Ｅｉ２の要素番号をｉ２（ｓ）とする（ステップＳ４００２）。重複する子要素Ｅｉ２を重複要素Ｅｉ２（ｓ）と表記する。
【０２７４】
また、重複要素Ｅｉ２（ｓ）の重複文字列番号をｊ２（ｓ）とし（ステップＳ４００３）、その重複単語候補番号をｋ２（ｓ）とする（ステップＳ４００４）。そして、このときの規格化された事後確率ｐｐｎ１（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））を読み出す（ステップＳ４００５）。
【０２７５】
このあと、重複候補番号ｓをインクリメントし（ステップＳ４００６）、重複候補番号ｓがｓ＞Ｓであるか否かを判断する（ステップＳ４００７）。ここで、Ｓは重複要素数である。ｓ＞Ｓでない場合（ステップＳ４００７：Ｎｏ）、ステップＳ４００２に戻る。一方、ｓ＞Ｓである場合（ステップＳ４００７：Ｙｅｓ）、重複候補番号ｓをｓ＝０にする（ステップＳ４００８）。
【０２７６】
このステップＳ４００１〜ステップＳ４００７までの一連の処理手順により、重複要素Ｅｉ２（ｓ）の事後確率ｐｐｎ１（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））をすべて読み出すことができる。
【０２７７】
ステップＳ４００８のあと、事後確率ｐｐｎ１（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））に対して事後確率ｐｐ２（ｓ）を算出する（ステップＳ４００９）。このあと、重複候補番号ｓをインクリメントし（ステップＳ４０１０）、重複候補番号ｓがｓ＞Ｓであるか否かを判断する（ステップＳ４０１１）。ｓ＞Ｓでない場合（ステップＳ４０１１：Ｎｏ）、ステップＳ４００９に戻る。
【０２７８】
一方、ｓ＞Ｓである場合（ステップＳ４０１１：Ｙｅｓ）、ステップＳ４０１２に移行する。このステップＳ４００８〜ステップＳ４０１１までの一連の処理によりすべての重複要素Ｅｉ２（ｓ）の事後確率ｐｐｎ１（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））に対して、事後確率ｐｐ２（ｓ）を算出することができる。
【０２７９】
このあと、事後確率ｐｐ２（ｓ）の最大値が、図３９のステップＳ３９０９のテキスト番号ｔを最大テキスト番号ｔｍａｘとする親要素Ｅｉ１の単語候補Ｗｋ１の事後確率ｐｐ２（ｉ１，ｊ１，ｋ１）であるか否かを判断する（ステップＳ４０１２）。
【０２８０】
単語候補Ｗｋ１の事後確率ｐｐ２（ｉ１，ｊ１，ｋ１）でない場合（ステップＳ４０１２：Ｎｏ）、比較計算処理を終了する。一方、単語候補Ｗｋ１の事後確率ｐｐ２（ｉ１，ｊ１，ｋ１）である場合（ステップＳ４０１２：Ｙｅｓ）、反復処理フラグ＝０にセットし（ステップＳ４０１３）、確定テーブルｑに（ｉ１，ｊ１，ｋ１，ｔ）を記憶する（ステップＳ４０１４）。
【０２８１】
そして、確定テーブル番号ｑをインクリメントして（ステップＳ４０１５）、比較計算処理を終了し、ステップＳ３９１５に移行する。これにより、単語候補が重複した場合、優先すべき単語候補を特定する情報（ｉ１，ｊ１，ｋ１，ｔ）を確定テーブルｑに記憶しておくことができる。
【０２８２】
［出現確率書換プロセスの手順］
つぎに、図３８のステップＳ３８０３で示した出現確率書換プロセスの具体的な処理手順について説明する。図４１は、図３８のステップＳ３８０３で示した出現確率書換プロセスの具体的な処理手順を示すフローチャートである。
【０２８３】
図４１において、まず確定テーブル番号ｑをｑ＝０にする（ステップＳ４１０１）。そして、確定テーブル番号ｑの要素番号ｉ１、文字列番号ｊ１、単語候補番号ｋ１を読み込む（ステップＳ４１０２〜ステップＳ４１０４）。
【０２８４】
そして、子要素Ｅｉ２の要素番号ｉ２をｉ２＝ｉ１とし（ステップＳ４１０５）、その文字列番号ｊ２をｊ２＝０とし（ステップＳ４１０６）、単語候補番号ｋ２をｋ２＝０とする（ステップＳ４１０７）。そして、親要素Ｅｉ１の文字列番号ｊ１がｊ１＝ｊ２でかつ単語候補番号ｋ１がｋ１＝ｋ２であるか否かを判断する（ステップＳ４１０８）。
【０２８５】
ｊ１＝ｊ２でかつｋ１＝ｋ２である場合（ステップＳ４１０８：Ｙｅｓ）、子要素Ｅｉ２の文字列番号ｊ２の単語候補Ｗｋ２の出現確率ｐ３（ｉ２，ｊ２，ｋ２）を強制的にｐ３（ｉ２，ｊ２，ｋ２）＝０に書き換えて（ステップＳ４１０９）、ステップＳ４１１０に移行する。一方、ｊ１＝ｊ２でかつｋ１＝ｋ２でない場合（ステップＳ４１０８：Ｎｏ）、出現確率ｐ３（ｉ２，ｊ２，ｋ２）の書換はおこなわずに、ステップＳ４１１０に移行する。
【０２８６】
ステップＳ４１１０では、子要素Ｅｉ２の単語候補番号ｋ２をインクリメントし、ｋ２＞Ｋ２であるか否かを判断する（ステップＳ４１１１）。ここで、Ｋ２とは、子要素Ｅｉ２の文字列番号ｊ２の単語候補数である。
【０２８７】
ｋ２＞Ｋ２でない場合（ステップＳ４１１１：Ｎｏ）、ステップＳ４１０７に戻る。一方、ｋ２＞Ｋ２である場合（ステップＳ４１１１：Ｙｅｓ）、親要素Ｅｉ２の文字列番号ｊ２をインクリメントし（ステップＳ４１１２）、文字列番号ｊ２がｊ２＞Ｊ２であるか否かを判断する（ステップＳ４１１３）。ここで、Ｊ２とは、子要素Ｅｉ２の対応文字列数である。そして、ｊ２＞Ｊ２でない場合（ステップＳ４１１３：Ｎｏ）、ステップＳ４１０６に戻る。
【０２８８】
このステップＳ４１０２〜ステップＳ４１１３までの一連の処理により、同一要素内の出現確率ｐ３が低い他の単語候補の出現確率ｐ３を強制的にｐ３＝０に書き換えることができる。
【０２８９】
一方、ｊ２＞Ｊ２である場合（ステップＳ４１１３：Ｙｅｓ）、このときの単語候補Ｗｋ１のテキスト番号ｔを読み込む（ステップＳ４１１４）。つぎに、重複する子要素Ｅｉ２の重複候補番号ｓをｓ＝０とする（ステップＳ４１１５）。そして、重複候補番号ｓが与えられる子要素Ｅｉ２の要素番号をｉ２（ｓ）とする（ステップＳ４１１６）。重複する子要素Ｅｉ２を重複要素Ｅｉ２（ｓ）と表記する。
【０２９０】
また、重複要素Ｅｉ２（ｓ）の重複文字列番号をｊ２（ｓ）とし（ステップＳ４１１７）、その重複単語候補番号をｋ２（ｓ）とする（ステップＳ４１１８）。そして、この単語候補Ｗｋ２（ｓ）の出現確率ｐ３（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））を強制的にｐ３（ｉ２（ｓ），ｊ２（ｓ），ｋ２（ｓ））＝０に書き換える（ステップＳ４１１９）。
【０２９１】
このあと、重複候補番号ｓをインクリメントし（ステップＳ４１２０）、重複候補番号ｓがｓ＞Ｓであるか否かを判断する（ステップＳ４１２１）。ここで、Ｓは重複要素数である。ｓ＞Ｓでない場合（ステップＳ４１２１：Ｎｏ）、ステップＳ４１１６に戻る。
【０２９２】
一方、ｓ＞Ｓである場合（ステップＳ４１２１：Ｙｅｓ）、確定テーブル番号ｑをインクリメントし（ステップＳ４１２２）、ｑ＞Ｑであるか否かを判断する（ステップＳ４１２３）。ここでＱとは、確定テーブル数である。ｑ＞Ｑでない場合（ステップＳ４１２３：Ｎｏ）、ステップＳ４１０２に戻る。一方、ｑ＞Ｑである場合（ステップＳ４１２３：Ｙｅｓ）、出現確率書換プロセスを終了する。
【０２９３】
このように、上述した実施の形態によれば、階層を有する共通論理構造を用い、複数の同一文字列や類似文字列を含む非構造化文書や帳票画像から認識・抽出した文字列情報に対して、見出しやデータを自動で認識し、論理構造の各要素に文字列を対応させることができる。
【０２９４】
また、表内部の計量をセルに基づいて数値化することによって、安定した表内部での単語間の関係を数値化することができる。さらに、ＮＵＬＬ文字列を導入することによって、論理要素の抜けに対応した論理構造認識をおこなうことができる。
【０２９５】
また、大見出しの決定の際には小見出しやデータの確からしさに関する情報を、また小見出しを決定するには大見出しとともにデータの確からしさに関する情報を利用することによって、安定した認識を実現することができる。さらに、その評価値に応じて、論理要素の上位下位に関わらず、対応付けをおこなうことができる。これにより、あいまいな文字列が上位要素に存在したとしても、妥当な確率を与えることによって下位の要素として認識することができる。
【０２９６】
さらに、複数の見出しで同じ文字列が使用されても、各論理要素に対応する子要素として存在するデータ（文字列）の論理要素に対する適合度合いを参照することで、見出しがどの論理要素に対応するかを決定することができる。
【０２９７】
また、複数の論理要素が一つの文字列を単語候補として獲得されている場合に、一方の論理要素にその文字列が確定することによって、もう一方の文字列の候補から除外する。これにより、徐々に単語候補の絞込みをおこなうことができる。
【０２９８】
以上説明したように、この発明の実施の形態にかかる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法によれば、論理要素間の整合性のとれた帳票の構造に関する自動認識を高精度におこなうことができる。
【０２９９】
なお、本実施の形態で説明した帳票処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０３００】
（付記１）帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造をコンピュータに認識させる帳票処理プログラムであって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出させる単語候補抽出工程と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出させる単語出現数値化工程と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出させる単語関係数値化工程と、
前記単語出現数値化工程によって算出された出現確率と、前記単語関係数値化工程によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出させる単語評価工程と、
を前記コンピュータに実行させることを特徴とする帳票処理プログラム。
【０３０１】
（付記２）前記単語出現数値化工程は、
さらに、前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度をあらわす確率に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出させることを特徴とする付記１に記載の帳票処理プログラム。
【０３０２】
（付記３）前記単語出現数値化工程は、
さらに、前記論理要素となる文字列が前記電子帳票に存在しないことを前記単語候補の一つとして定義して、前記単語候補抽出工程によって抽出された単語候補がその論理要素において出現する出現確率を算出させることを特徴とする付記２に記載の帳票処理プログラム。
【０３０３】
（付記４）前記単語関係数値化工程は、
前記処理対象のレイアウトにおける前記論理要素間の相対距離から得られる前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出させることを特徴とする付記１〜３のいずれか一つに記載の帳票処理プログラム。
【０３０４】
（付記５）前記単語評価工程は、
さらに、前記論理要素間での単語候補どうしが組み合わせのうち下位階層の論理要素の文字列が前記下位階層の論理要素の単語候補である場合に、その上位階層の論理要素の文字列が前記上位階層の論理要素の単語候補である確率に基づいて、前記評価値を算出させることを特徴とする付記１〜４のいずれか一つに記載の帳票処理プログラム。
【０３０５】
（付記６）前記単語評価工程は、
さらに、前記論理要素間での単語候補どうしが組み合わせのうち上位階層の論理要素の文字列が前記上位階層の論理要素の単語候補である場合に、その下位階層の論理要素の文字列が前記下位階層の論理要素の単語候補である確率に基づいて、前記評価値を算出させることを特徴とする付記１〜４のいずれか一つに記載の帳票処理プログラム。
【０３０６】
（付記７）前記単語評価工程によって算出された前記各論理要素の単語候補の評価値に基づいて、前記論理要素およびその単語候補を、前記電子帳票における論理要素およびその文字列に決定させる単語決定工程を、前記コンピュータに実行させることを特徴とする付記１〜６のいずれか一つに記載の帳票処理プログラム。
【０３０７】
（付記８）前記単語決定工程は、
前記複数の論理要素において同一の単語候補が重複する場合、当該論理要素ごとの評価値に基づいて選ばれた一の論理要素およびその単語候補を、前記処理対象における論理要素およびその文字列に決定させることを特徴とする付記７に記載の帳票処理プログラム。
【０３０８】
（付記９）前記単語決定工程は、
前記複数の単語候補が前記論理要素において重複する場合、当該論理要素および当該単語候補ごとの評価値に基づいて選ばれた一の単語候補を、前記処理対象における論理要素およびその文字列に決定させることを特徴とする付記７に記載の帳票処理プログラム。
【０３０９】
（付記１０）前記単語決定工程は、
前記評価値に基づいて選ばれなかった単語候補の出現確率を、現在の値よりも低い値に変換させる出現確率変換工程を含み、
前記出現確率変換工程によって変換された変換結果に基づいて、前記論理要素およびその単語候補を、前記処理対象における論理要素およびその文字列に決定させることを特徴とする付記７〜９のいずれか一つに記載の帳票処理プログラム。
【０３１０】
（付記１１）付記１〜１０のいずれか一つに記載の帳票処理プログラムを格納する前記コンピュータに読み取り可能な記録媒体。
【０３１１】
（付記１２）帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造を認識する帳票処理装置であって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出する単語候補抽出手段と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出手段によって抽出された単語候補が前記論理要素において出現する出現確率を算出する単語出現数値化手段と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出する単語関係数値化手段と、
前記単語出現数値化手段によって算出された出現確率と、前記単語関係数値化手段によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出する単語評価手段と、
を備えることを特徴とする帳票処理装置。
【０３１２】
（付記１３）帳票を論理的に構成する階層構造化された論理要素からなる論理構造を、当該各論理要素となる文字列の出現頻度および前記論理要素間の前記帳票上の相対位置に関する頻度とともに記憶するデータベースを用いて、処理対象となる紙帳票または電子帳票の論理構造を認識する帳票処理方法であって、
前記処理対象から抽出された文字列と前記論理要素となる文字列との一致度に基づいて、前記処理対象から抽出された文字列の中から単語候補となる文字列を前記論理要素となる文字列ごとに抽出する単語候補抽出工程と、
前記論理要素となる文字列の出現頻度に基づいて、前記単語候補抽出工程によって抽出された単語候補が前記論理要素において出現する出現確率を算出する単語出現数値化工程と、
前記論理要素間の前記帳票上の相対位置に関する頻度に基づいて、前記論理要素間での単語候補どうしが組み合わせとして出現する遷移確率を算出する単語関係数値化工程と、
前記単語出現数値化工程によって算出された出現確率と、前記単語関係数値化工程によって算出された遷移確率とに基づいて、前記各論理要素の単語候補が当該論理要素に該当する前記処理対象上の文字列であることの確からしさをあらわす評価値を算出する単語評価工程と、
を含んだことを特徴とする帳票処理方法。
【産業上の利用可能性】
【０３１３】
以上のように、本発明にかかる帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法は、紙帳票からスキャンした帳票画像、または電子化された非構造化文書の帳票（電子帳票）の自動認識に有用である。
【図面の簡単な説明】
【０３１４】
【図１】この発明の実施の形態にかかる帳票処理装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる帳票処理装置の処理対象となる帳票の一例を示す説明図である。
【図３】図２に示した帳票２００のマスを示す説明図である。
【図４】図２に示した帳票２００内の各文字に割り振られた文字番号を示す説明図である。
【図５】図２に示した帳票２００のレイアウト情報を示す説明図である。
【図６】図２に示した帳票２００の文字情報を示す説明図である。
【図７】共通論理構造テーブルを示す説明図である。
【図８】文字列情報テーブルを示す説明図である。
【図９】接続情報テーブルを示す説明図である。
【図１０】接続情報テーブルの展開例を示す説明図である。
【図１１】セル数の計算例を示す説明図である。
【図１２】共通論理構造の要素間の関係を示した木構造を示す説明図である。
【図１３】この発明の実施の形態にかかる帳票処理装置の機能的構成を示すブロック図である。
【図１４】この発明の実施の形態にかかる帳票処理装置１３００による帳票処理手順を示すフローチャートである。
【図１５】単語候補テーブルを示す説明図である。
【図１６】図１４に示した単語候補抽出部１３０１による単語候補抽出処理手順を示すフローチャートである。
【図１７】単語出現数値化部１３０２から出力される単語候補テーブルを示す説明図である。
【図１８】要素Ｅｉごとの単語候補Ｗｋの規格化出現確率ｐ３’（ｉ，ｊ，ｋ）を模式化した説明図である。
【図１９】図１４に示した単語出現数値化部１３０２による単語出現数値化処理手順を示すフローチャートである。
【図２０】親要素Ｅｉ１＝Ｅ０と子要素Ｅｉ２＝Ｅ１との接続関係を示す接続候補テーブルを示す説明図である。
【図２１】親要素Ｅ０の単語候補と子要素Ｅ１となりうる単語候補との遷移確率ｐ４の高さを模式的に示した説明図である。
【図２２】親要素Ｅｉ１＝Ｅ１と子要素Ｅｉ２＝Ｅ２との接続関係を示す接続候補テーブルを示す説明図である。
【図２３】親要素Ｅ１の単語候補と子要素Ｅ２となりうる単語候補との遷移確率ｐ４の高さを模式的に示した説明図である。
【図２４】遷移頻度の重み付けを示す説明図である。
【図２５】図１４に示した単語関係数値化部１３０３による単語関係数値化処理手順を示すフローチャートである。
【図２６】単語評価部１３０４によって得られる第３の単語候補テーブルを示す説明図である。
【図２７】フォワードプロセスの計算例を示す説明図である。
【図２８】バックワードプロセスの計算例を示す説明図である。
【図２９】事後確率算出プロセスの計算例を示す説明図である。
【図３０】図１４に示した単語評価部１３０４による単語評価処理手順を示すフローチャートである。
【図３１】フォワードプロセスの具体的な処理手順を示すフローチャートである。
【図３２】図３１に示したフォワード計算処理の具体的な処理手順を示すフローチャートである。
【図３３】バックワードプロセスの具体的な処理手順を示すフローチャートである。
【図３４】図３３に示したバックワード計算処理の具体的な処理手順を示すフローチャートである。
【図３５】事後確率算出プロセスの具体的な処理手順を示すフローチャートである。
【図３６】事後確率規格化処理の手順を示すフローチャートである。
【図３７】出現確率ｐ３’の強制変換後の第４の単語候補テーブルを示す説明図である。
【図３８】図１４に示した単語決定部１３０５による単語決定処理手順を示すフローチャートである。
【図３９】図３８に示した比較プロセス（ステップＳ３８０１）の具体的な処理手順を示すフローチャートである。
【図４０】図３９に示した比較計算処理（ステップＳ３９１４）の手順を示すフローチャートである。
【図４１】図３８のステップＳ３８０３で示した出現確率書換プロセスの具体的な処理手順を示すフローチャートである。
【符号の説明】
【０３１５】
２００  帳票（処理対象となる紙帳票または電子帳票）
５００  レイアウト情報
６００  文字情報
７００  共通論理構造テーブル
８００  文字列情報テーブル
９００  接続情報テーブル
１２００  木構造
１３００  帳票処理装置
１３０１  単語候補抽出部
１３０２  単語出現数値化部
１３０３  単語関係数値化部
１３０４  単語評価部
１３０５  単語決定部
１３１０  共通論理構造ＤＢ
【図１】
2008033830.tif 000013
【図２】
2008033830.tif 000014
【図３】
2008033830.tif 000015
【図４】
2008033830.tif 000016
【図５】
2008033830.tif 000017
【図６】
2008033830.tif 000018
【図７】
2008033830.tif 000019
【図８】
2008033830.tif 000020
【図９】
2008033830.tif 000021
【図１０】
2008033830.tif 000022
【図１１】
2008033830.tif 000023
【図１２】
2008033830.tif 000024
【図１３】
2008033830.tif 000025
【図１４】
2008033830.tif 000026
【図１５】
2008033830.tif 000027
【図１６】
2008033830.tif 000028
【図１７】
2008033830.tif 000029
【図１８】
2008033830.tif 000030
【図１９】
2008033830.tif 000031
【図２０】
2008033830.tif 000032
【図２１】
2008033830.tif 000033
【図２２】
2008033830.tif 000034
【図２３】
2008033830.tif 000035
【図２４】
2008033830.tif 000036
【図２５】
2008033830.tif 000037
【図２６】
2008033830.tif 000038
【図２７】
2008033830.tif 000039
【図２８】
2008033830.tif 000040
【図２９】
2008033830.tif 000041
【図３０】
2008033830.tif 000042
【図３１】
2008033830.tif 000043
【図３２】
2008033830.tif 000044
【図３３】
2008033830.tif 000045
【図３４】
2008033830.tif 000046
【図３５】
2008033830.tif 000047
【図３６】
2008033830.tif 000048
【図３７】
2008033830.tif 000049
【図３８】
2008033830.tif 000050
【図３９】
2008033830.tif 000051
【図４０】
2008033830.tif 000052
【図４１】
2008033830.tif 000053