(57)【特許請求の範囲】
【請求項１】
制御部と、該制御部に接続される記憶部と、画像情報が入力される入力部と、を有する表構造解析装置であって、
前記制御部は、
前記入力部より入力された画像情報から、画像に含まれる表を構成する枠領域を検出し、
前記検出された枠領域の特徴量を示す枠特徴量を算出し、
隣接する２つの枠領域間における前記枠特徴量の差を算出し、
該算出された枠特徴量の差と、前記隣接する２つの枠領域間の線分とを対応付け、
前記表を構成する罫線を構成する前記線分に対応付けられた前記枠特徴量の差に基づいて、前記表における項目名が存在する枠領域とデータが存在する枠領域との境界となる罫線を境界線として抽出し、
前記境界線に基づいて、前記表において項目名が存在する枠領域、又は、項目名が存在する枠領域とデータが存在する枠領域との対応関係を判定すること、を特徴とする表構造解析装置。
【請求項２】
請求項１に記載の表構造解析装置であって、
前記記憶部には項目名が登録された項目名辞書が格納され、
前記制御部は、前記項目名が存在する枠領域と判定された枠領域内の文字列を、前記項目名辞書に項目名として登録することを特徴とする表構造解析装置。
【請求項３】
請求項１に記載の表構造解析装置であって、
前記記憶部には、文字列と該文字列の項目名らしさを示す尤度情報とが対応付けられて登録された項目名辞書が格納され、
前記制御部は、前記項目名辞書に登録されている前記尤度情報のうち、前記項目名が存在する枠領域と判定された枠領域内の文字列に対応する前記尤度情報を変更することを特徴とする表構造解析装置。
【請求項４】
請求項１に記載の表構造解析装置であって、
前記記憶部には、文字列と該文字列の項目名らしさを示す尤度情報とが対応付けられて登録された項目名辞書が格納され、
前記制御部は、
前記検出された枠領域内の文字列を検出し、
前記項目名辞書から、前記検出された文字列に対応する前記尤度情報を、前記枠特徴量として算出し、
隣接する２つの枠領域間の前記尤度情報の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析装置。
【請求項５】
請求項１に記載の表構造解析装置であって、
前記制御部は、
前記検出された枠領域における枠の書式の特徴量を示す枠書式特徴量を、前記枠特徴量として算出し、
隣接する２つの枠領域間の前記枠書式特徴量の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析装置。
【請求項６】
請求項１に記載の表構造解析装置であって、
前記制御部は、
前記検出された枠領域内の文字列を検出し、
前記検出された文字列の特徴量を示す文字列特徴量を、前記枠の特徴量として算出し、
隣接する２つの枠領域間の前記文字列特徴量の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析装置。
【請求項７】
請求項１に記載の表構造解析装置であって、
前記制御部は、
隣接する２つの枠領域間の前記枠特徴量の差を示す枠特徴差分値を算出し、
該算出された枠特徴差分値と、前記隣接する２つの枠領域間の線分とを対応付け、
前記罫線を構成する前記線分に対応付けられた前記枠特徴差分値に基づいて、前記罫線の前記境界線らしさを示す境界線尤度情報を算出し、
前記罫線の前記境界線尤度情報が所定の値以上である場合に、前記罫線を前記境界線であると判定することを特徴とする表構造解析装置。
【請求項８】
請求項１に記載の表構造解析装置であって、
前記制御部は、
隣接する２つの枠領域間の前記枠特徴量の差を示す枠特徴差分値を算出し、
該算出された枠特徴差分値と、前記隣接する２つの枠領域間の線分とを対応付け、
前記罫線を構成する前記線分に対応付けられた前記枠特徴差分値に基づいて、前記罫線の前記境界線らしさを示す境界線尤度情報を算出し、
前記表を構成する複数の前記罫線のうち、前記尤度情報が大きい所定数の罫線を、前記境界線であると判定することを特徴とする表構造解析装置。
【請求項９】
電子情報に含まれる表の構造を解析する表構造解析方法であって、
入力された画像情報から、画像に含まれる表を構成する枠領域を検出し、
前記検出された枠領域の特徴量を示す枠特徴量を算出し、
隣接する２つの枠領域間の前記枠特徴量の差を算出し、
該算出された枠特徴量の差と、前記隣接する２つの枠領域間の線分とを対応付け、
前記表を構成する罫線を構成する前記線分に対応付けられた前記枠特徴量の差に基づいて、前記表における項目名が存在する枠領域とデータが存在する枠領域との境界となる罫線を境界線として抽出し、
前記境界線に基づいて、前記表において項目名が存在する枠領域、又は、項目名が存在する枠領域とデータが存在する枠領域との対応関係を判定すること、を特徴とする表構造解析方法。
【請求項１０】
請求項９に記載の表構造解析方法であって、
前記項目名が存在する枠領域と判定された枠領域内の文字列を、項目名が登録された項目名辞書に項目名として登録することを特徴とする表構造解析方法。
【請求項１１】
請求項９に記載の表構造解析方法であって、
文字列と該文字列の項目名らしさを示す尤度情報とが対応付けられて登録された項目名辞書に登録されている前記尤度情報のうち、前記項目名が存在する枠領域と判定された枠領域内の文字列に対応する前記尤度情報を変更することを特徴とする表構造解析方法。
【請求項１２】
請求項９に記載の表構造解析方法であって、
前記検出された枠領域内の文字列を検出し、
文字列と該文字列の項目名らしさを示す尤度情報とが対応付けられて登録された項目名辞書から、前記検出された文字列に対応する前記尤度情報を、前記枠領域特徴量として抽出し、
隣接する２つの枠領域間の前記尤度情報の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析方法。
【請求項１３】
請求項９に記載の表構造解析方法であって、
前記検出された枠領域における枠の書式の特徴を示す枠書式特徴量を、前記枠特徴量として抽出し、
隣接する２つの枠領域間の前記枠書式特徴量の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析方法。
【請求項１４】
請求項９に記載の表構造解析方法であって、
前記検出された枠領域内の文字列を検出し、
前記検出された文字列の特徴量を示す文字列特徴量を、前記枠領域の特徴量として算出し、
隣接する２つの枠領域間の前記文字列特徴量の差を、前記隣接する２つの枠領域間の前記枠特徴量の差として算出することを特徴とする表構造解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，文書内の表解析方式に係り，特に文書内の表における項目名、又は、項目名とデータとの対応関係の抽出方式に関する。
【背景技術】
【０００２】
表解析技術において，表内に記載される文字列のうち，文字列の属性を表すキーワードである項目名と，文字列の値を表すデータとを抽出し，項目名-データ関係（項目名とデータとの対応関係）を抽出する方式がある。従来の項目名-データ関係抽出方式では，あらかじめユーザが読取対象の項目名を項目名辞書に登録しておくことにより，項目名-データ関係の抽出を行っている。
【０００３】
項目名-データ関係抽出方式の適用先として、帳票認識システムが挙げられる。例えば、金融機関等で帳票認識システムが使われる際には，帳票を処理するために必要な情報を，帳票認識を用いて自動で帳票内から抽出し、業務システムに受け渡す。これにより、ユーザが手作業で必要な情報を業務システムに入力する作業を、自動化することができる。このような適用例では，抽出すべき項目名-データ関係が「振込先口座番号」や「納入金額」と具体的な金額、又は「納入期限日付」と具体的な日付、などのように，事前にあらかじめわかっている場合が多い。また，対応する項目名単語の種類も限られており，事前にわかっている場合が多い。そのため，ユーザやシステム管理者が、抽出すべき項目名-データ関係に対応する項目名単語を、事前に項目名辞書として準備しておく。
【０００４】
特許文献１に開示された技術では，表内の文字列と項目名辞書に登録された項目名単語とを照合し，項目名単語と一致した文字列を項目名，項目名単語に一致しない文字列をデータ候補と判定する。更に、項目名とデータ候補の配置関係から，項目名とデータの対応関係を決定する。
【０００５】
また、特許文献２には、文書から罫線を抽出し，２本の罫線の交点と端点を抽出し，矩形枠の四隅に相当する右上角，左上角，右下角，左下角を検出することにより，文書内から枠を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２０４２２６号公報
【特許文献２】特開平１１−０５３４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
不特定多数の文書を扱う文書管理システムにおいて、項目名-データ関係抽出方式を用いて、類似または関連する文書の検索や複数の表の統合を行うことにより，大量の文書を扱う業務の効率化を図ることができる。しかし，不特定かつ大量の文書を対象とする場合，抽出すべき項目名-データ関係が事前にわかっていない，項目名-データ関係抽出のキーとなる項目名単語がわかっていない，又は一部わかっていても表記のゆれが存在するなどの理由により，項目名辞書を完備することが困難である。そのため，項目名辞書に登録されている単語をキーに項目名-データ関係を抽出する方式を，不特定多数の文書を扱うような文書管理システムに適用することは困難である。
【０００８】
上述したような従来技術における問題に鑑み，本発明の目的は，不特定かつ大量の文書から項目名-データ関係を抽出する技術において，項目名単語が事前にわかっておらず，項目名辞書が完備できない場合にも，安定的に項目名-データ関係の抽出を可能にすることにある。
【０００９】
また，本発明の他の目的は、項目名の表記のゆれが多数存在する文書群においても，表記のゆれをユーザが逐一メンテナンスすることなく，抽出すべき項目名-データ関係の抽出を可能にすることにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の一つの観点では、制御部と、制御部に接続される記憶部と、画像情報が入力される入力部と、を有する表構造解析装置であって、制御部は、入力部より入力された画像情報から、画像に含まれる表を構成する枠領域を検出し、検出された枠領域の特徴量を示す枠特徴量を算出し、隣接する２つの枠領域間における枠特徴量の差を算出し、算出された枠特徴量の差と、隣接する２つの枠領域間の線分とを対応付け、表を構成する罫線を構成する線分に対応付けられた枠特徴量の差に基づいて、表における項目名が存在する枠領域とデータが存在する枠領域との境界となる罫線を境界線として抽出し、境界線に基づいて、表において項目名が存在する枠領域、又は、項目名が存在する枠領域とデータが存在する枠領域との対応関係を判定する。
【００１１】
より好ましくは、記憶部には項目名が登録された項目名辞書が格納され、制御部は、項目名が存在する枠領域と判定された枠領域内の文字列を、項目名辞書に項目名として登録する。
【００１２】
更に好ましくは、項目名辞書には文字列と該文字列の項目名らしさを示す尤度情報とが対応付けられて登録され、制御部は、項目名辞書に登録されている尤度情報のうち、項目名が存在する枠領域と判定された枠領域内の文字列に対応する尤度情報を変更する。
【００１３】
また、表における項目名が存在する枠領域とデータが存在する枠領域との境界となる罫線を抽出するために、本発明の一つの観点では、制御部は、隣接する２つの枠領域間の枠特徴量の差を示す枠特徴差分値を算出し、該算出された枠特徴差分値と、隣接する２つの枠領域間の線分とを対応付け、罫線を構成する線分に対応付けられた枠特徴差分値に基づいて、罫線の境界線らしさを示す境界線尤度情報を算出し、罫線の前記境界線尤度情報が所定の値以上である場合に、罫線を境界線であると判定する。また、表を構成する複数の罫線のうち、尤度情報が大きい所定数の罫線を、境界線であると判定してもよい。
【発明の効果】
【００１４】
本発明によれば，不特定かつ大量の文書から項目名や項目名とデータとの対応関係を抽出することが可能になる。また、項目名単語が事前にわかっていないような場合や、項目名の表記のゆれが多数存在する場合においても，安定的に項目名や項目名とデータとの対応関係の抽出が可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例における，項目名-データ関係抽出方式の処理フロー図である。
【図２】本発明の実施例における，項目名-データ関係抽出方式の前提となる基本処理フロー図である。
【図３】本発明の実施例における，項目名-データ関係抽出方式のモジュール構成図である。
【図４】本発明の実施例における，枠特徴差分スコア計算処理のフローチャートである。
【図５】本発明の実施例における，項目名-データ境界線検出処理のフローチャートである。
【図６】本発明の実施例における，枠特徴の例である。
【図７】本発明の実施例における，枠特徴差分スコアの計算例である。
【図８】本発明の実施例における，項目名-データ境界線の検出例である。
【図９】本発明の実施例における，項目名-データ関係抽出方式の応用例の処理フロー図である。
【図１０】本発明の実施例における，項目名-データ関係抽出方式の応用例の処理フロー図である。
【図１１】本発明の実施例における，項目名辞書の例である。
【図１２】本発明の実施例における，項目名辞書の修正例である。
【図１３】本発明の実施例における，項目名辞書修正処理のフローチャートである。
【図１４】項目名-データ関係の抽出結果例である。
【図１５】項目名-データ関係の抽出結果例である。
【図１６】表における罫線と接線の対応を示す図である。
【図１７】罫線と罫線を構成する接線及び罫線の境界線らしさを示すスコアとの対応関係を示す項目名−データ境界線スコアテーブルの例である。
【図１８】接線と枠特徴差分スコアとの対応関係を示す枠特徴差分スコアテーブルの例である。
【発明を実施するための形態】
【００１６】
本発明は，表から項目名とデータとの対応関係（項目名-データ関係）を抽出する方式である。まず表内の全ての枠領域の特徴（枠の書式特徴や枠内の文字列特徴をいい、以下における、枠特徴又は枠の特徴も同様の意味を有する。）を抽出し，隣接する２つの枠を一つのペアとして、当該ペアを構成する２つの枠間の特徴の差を示す差分スコアをペア毎に求める。そして、差分スコアと枠のペアの接線（隣接する２つの枠の間の線分）とを対応付ける。次に，表内の全ての罫線に対して，当該罫線に属する枠接線に設定された差分スコアを投影し（和をとる，平均をとるなど），項目名-データ境界線スコアを計算する。項目名-データ境界線スコアとは，当該罫線が項目名枠とデータ枠の境界となる罫線かどうかを表す確度（尤度）を示す値である。差分スコアの大きい接線が項目名枠とデータ枠の境界と推定されるため、差分スコアの大きい接線を含む罫線が、項目名枠とデータ枠の境界となる罫線であると判定される。次に，項目名-データ境界線の位置から表内の項目名枠を決定し，その他の枠との隣接関係を元に，項目名-データ関係を決定する。
【００１７】
表は複数の罫線から構成され、項目名やデータを含む２つ以上の枠（枠領域）を有する。また、本発明では、枠領域を囲む線を線分と呼び、線分は罫線を構成する。通常、枠は矩形であり、この場合、枠は４方を囲む４つの線分から構成される。また、隣接する２つの枠領域間の線分（隣接する２つの枠の共通の線分）を隣接する２つの枠の接線（又は、省略して接線）と呼ぶ。
＜第一の実施形態＞
以下，本発明の一実施例になる項目名-データ関係抽出方式について，図面を用いて詳細に説明する。
【００１８】
図３は，本発明の一実施列に係る項目名-データ抽出方式が構築される表構造解析計算機３３１の構成を示すブロック図である。表構造解析計算機３３１は、メモリ３０９、外部記憶装置３１４、入出力インタフェース（Ｉ／Ｆ）３１１、３１２、及びＣＰＵ３１０を備え、入出力Ｉ／Ｆ３１１、３１２を介して、処理対象の文書を入力するための文書入力装置３０１、及び、項目名-データ関係などの処理結果を出力する出力装置３０３に接続される。また、表構造解析計算機３３１はネットワークＩ／Ｆ３１３を有し、ネットワークＩ／Ｆ３１３を介して、ネットワーク３１５に接続されてもよい。
【００１９】
メモリ３０９又は外部記憶装置３１４は、ＯＳ、入力文書から枠を検出する枠検出部（枠検出プログラム）３０７、入力文書から文字列を検出する文字列検出部（文字列検出プログラム）３０８、項目名-データ関係を抽出する項目名-データ関係抽出部（項目名-データ関係抽出プログラム）３０２、抽出すべき項目名単語を格納する項目名辞書３０４、文書から抽出した項目名-データ関係を示す項目名―データ関係情報３０５、及び入力された文書３０６が蓄えられている。ＣＰＵ３１０は、メモリ３０９にロードされた各種プログラムを実行する。
文書入力装置３０１，ＣＰＵ３１０，出力装置３０３，メモリ３０９、外部記憶装置３１４は，物理的な接続手段に依らず，ネットワークなどを介して接続されてもよく，それぞれ異なる計算機上に構成されてもよい。
【００２０】
以下，項目名-データ関係抽出の処理フローを図１を用いて示すが，まず本発明の前提として、項目名-データ関係抽出方式の基本処理フローを、図２を用いて説明する。図２に示す処理フローでは、項目名辞書を用いて，項目名の文字列および当該文字列が属する枠を抽出し，枠の配置関係から項目名-データ関係を抽出する。本発明は，図２の基本処理フローの項目名照合ステップＳ２３０の代わりに，図１の枠特徴差分スコア計算処理Ｓ１４０および項目名-データ境界線検出処理Ｓ１５０を備えることで構成される。
まず，ステップＳ２１０の枠検出処理において，入力された文書から枠を検出する。次に，ステップＳ２２０の文字列検出において，文書から文字列を検出する。ステップＳ２１０およびＳ２２０の具体例として，例えば，特許文献２に開示の技術のように，文書から罫線を抽出し，２本の罫線の交点と端点を抽出し，矩形枠の四隅に相当する右上角，左上角，右下角，左下角を検出することにより，文書内から枠を検出する方式を利用することができる。また，PDF（Portable Document Format）やMicrosoft Office（登録商標）などに代表される電子文書では，罫線や枠や文字列矩形の情報があらかじめ文書に付与されている場合もあり，この場合はステップＳ２１０もしくはステップＳ２２０，またはその両方の処理は省略することも可能である。
【００２１】
ステップＳ２３０の項目名辞書照合処理では，ステップＳ２２０において抽出された文字列ごとに，項目名辞書３０４と照合し，当該文字列が項目名辞書３０４に登録された単語や表記文法に一致するかどうかを判定する。項目名辞書３０４には抽出すべき項目名の文字列が定義されており，「Voltage[V]」や「Power」などの単語のリストや，「nnn-nnn」(nは数字)や「Type. nn」などの表記文法リストで表現される。辞書との照合時には，当該文字列がどの程度辞書内の単語や表記文法と一致するかを表す尤度が計算され，項目名辞書３０４と照合した結果のスコアが高ければ，当該文字列は項目名と判定され，スコアが低ければデータ候補と判定される。ステップＳ２３０で用いられる単語照合の具体的な例としては，例えば，非特許文献：”Lexical search approach for character string recognition”, Proceeding of 3rd Document Analysis System, pp.237-251, M. Koga, et.al. ，に開示の技術のように，個別文字をノードと見立てた文字ネットワークと状態遷移ネットワークで表現した辞書のマッチングにより，状態遷移ネットワークから最適な文字列パスを選択し，照合結果を得る方法がある。
【００２２】
ステップＳ２６０の項目名枠決定処理では，表を構成する全ての枠のうち項目名枠を決定する。図２のフローでは，ステップＳ２３０において項目名と判定された文字列が属する枠を項目名枠と判定する。また，項目名枠に属する文字列を項目名文字列、それ以外の枠に属する文字列をデータ候補文字列と判定する。他の項目名枠の判定方法については，発明方式の処理フローの説明にて後述する。
【００２３】
ステップＳ２７０の項目名-データ関係決定処理では，ステップＳ２６０の項目名枠決定処理において，項目名およびデータ候補と判定された文字列に対し，当該文字列同士の配置関係が項目名-データ関係として妥当かどうかを判定し，妥当であれば当該文字列同士を項目名-データ関係として抽出する。配置関係が項目名-データ関係として妥当かどうかの判定は，ステップＳ２１０において検出された枠の座標およびステップＳ２２０において検出された文字列領域の座標を基に行われ，２つの文字列が属する枠のサイズ、配置関係および隣接関係や，２つの文字列矩形のサイズおよび配置関係を基に行われる。例えば，項目名と判定された文字列が属する枠の下に隣接する枠内の文字列もしくは右に隣接する枠内のデータ候補文字列をデータと判定し，項目名-データ関係として抽出する方式がある。
【００２４】
なお，ステップＳ２６０の項目名枠決定処理およびＳ２７０の項目名-データ関係決定処理の動作は上記のものには限定されず，ステップＳ２６０が文書内の任意の枠が項目名枠もしくはデータ枠候補となるかを判定する機能を持ち，ステップＳ２７０が文書内の任意の２つの枠同士の配置関係が項目名-データ関係として妥当かどうかを判定し，項目名-データ関係を抽出する機能を持つものであれば，上記のものには依らない。
【００２５】
次に，本発明の一実施形態における処理フローを、図１を用いて説明する。図１および図２におけるステップＳ１１０とステップＳ２１０の枠検出処理，ステップＳ１２０とステップＳ２２０の文字列検出処理，ステップＳ１７０とステップＳ２７０の項目名-データ関係決定処理は，それぞれ同一の処理となる。本発明は図２に示した項目名-データ関係抽出方式の基本処理フローにおいて，ステップＳ２３０の項目名辞書照合手段および項目名辞書３０４の代わりに，ステップＳ１４０の枠特徴差分スコア計算処理，ステップＳ１５０の項目名-データ境界線検出処理を付加することで，抽出すべき項目名-データ関係に対して，項目名辞書が完備されていない場合にも，項目名-データ関係の抽出を可能にするものである。以下，ステップＳ１４０の枠特徴差分スコア計算処理，ステップＳ１５０の項目名-データ境界線検出処理について詳細に述べる。
【００２６】
ステップＳ１４０の枠特徴差分スコア計算処理では，ステップＳ１１０で抽出された枠およびステップＳ１２０で抽出された文字列に対し，隣接する２つの枠の特徴を参照して，２つの枠の特徴の差を表す枠特徴差分スコアを計算する。枠特徴差分スコアは２つの枠の書式や記載されている文字列がどれだけ違うかを表す実数値である。使用する特徴には枠の書式特徴（書式特徴）や枠内の文字列の書式特徴（文字列特徴）があり，例えば，入力された文書がスキャンされた画像もしくはそれらから作られた電子文書の場合，寄せの位置，文字列の高さ，文字列の数値表現などがあり，Microsoft Office文書などの電子文書の場合，前述の特徴に加えて，太字設定の有無，斜体設定の有無，フォントタイプ，フォントサイズ，背景色などがある。計算された枠特徴差分スコアは，２つの枠間の枠接線にその値が付与され，図１８の枠特徴差分スコアテーブル１６３０，１６４０に保存される。枠特徴差分スコアテーブル１６３０における枠接線ｈ１〜１３は、図１６に示す表における横の罫線Ｈ１〜Ｈ４を構成する接線である。枠特徴差分スコアテーブル１６４０における枠接線ｖ１〜ｖ１４は、図１６に示す表における縦の罫線Ｖ１〜Ｖ３を構成する接線である。また、各罫線と各枠接線との対応関係を抽出し、図１７に示す項目名-データ境界線スコアテーブル１６１０，１６２０に格納してもよい。これらのテーブル１６１０，１６２０，１６３０，１６４０は、メモリ３０９や外部記憶装置３１４に格納される。
【００２７】
次に図４のフロー図と図６の例と図７の例とを用いて，ステップＳ１４０の枠特徴差分スコア計算処理の例を説明する。図４の処理は，ステップＳ１１０で抽出された枠のうち，互いに隣接する枠のペアごとに実行される。図４のステップＳ４０１では枠特徴差分スコアを０に初期化する。本実施例では，枠特徴差分スコアはその値が大きいほど，当該枠ペアの書式特徴や文字列特徴の差が大きいことを表す値とする。ステップＳ４０２では残り枠特徴があるかを判定し，残り枠特徴がなければＳ４０６に処理を遷移する。枠特徴とは，例えば図６の６１０１〜６１１１，下記の(１)〜(１１)に示すような枠の装飾やサイズなどの書式情報、および、当該枠に属する文字列のフォントや強調の有無や文字列がマッチする正規表現などがある。
○枠の書式情報の例
（１）枠内の文字列の寄せ位置（左寄せ or 中央寄せ or 右寄せ）
（２）枠の背景色の差
（３）枠の幅の比
（４）枠の高さの比
○枠内の文字列の書式特徴の例
（５）フォントサイズの差
（６）フォントタイプ（Times, Arial, Century, … ）
（７）太字設定の有無
（８）斜体設定の有無
（９）下線設定の有無
○枠内の文字列の意味特徴の例
（１０）文字列の数値記号表現の編集距離
（１１）項目名スコアの差
例えば，図６の枠６１０の枠特徴は，中央寄せ（６１０１），背景色が(R,G,B)=(240, 240, 240)（６１０２），枠幅324[dot]（６１０３），枠高さ85[dot]（６１０４），フォントサイズ18（６１０５），フォントタイプがArial（６１０６），太字設定あり（６１０７），斜体設定なし（６１０８），下線なし（６１０９），数値記号表現が該当なし（６１１０）となる。数値記号表現とは，枠内の文字列に数値や記号（カンマ、ピリオド、ハイフンなど）のマスクをかけた際にどのように表現されるかを示した特徴であり，「Voltage[V]」ならば「----------」（６１１０），「1,350」ならば「n,nnn」(nは数字)（６３１０）となる。前述の「（１０）文字列の数値記号表現の編集距離」は，例えば「220」と「1,350」ならば２，「220」と「240」ならば０となる。（編集距離とは，文字列間の距離を表す指標であり，ある文字列をある文字列に変換する際の，置換，挿入，削除の回数で定義される。「nnn」→「n,nnn」ならば挿入２回のため編集距離２，「nnn-nn」→「nn-nnn」ならば，挿入１回削除１回のため編集距離２となる。）
ステップＳ４０３では，隣接する２つの枠について，上記特徴の差分スコアをそれぞれ計算する。差分スコアは，特徴の差が大きいほどその値が大きくなるように設定する。例えば，上記（１）〜（１１）の特徴のうち，実数値を持つものについてはその差の絶対値とし，実数値を持たないものについては，その差がある場合にある定数とし，その差がない場合には０とする方法などがある。また、上記（１）〜（１１）の特徴ごとに、それぞれの重要度に応じて重みづけをしてもよい。
ステップＳ４０４では，枠特徴差分スコアに現在参照している枠特徴の差分スコアを加算し，ステップＳ４０５で次の枠特徴を参照する。ステップＳ４０６では，Ｓ４０１〜Ｓ４０５の結果得られたスコアを枠特徴差分スコアテーブル１６３０と１６４０に書きこむ。
図７はＳ１４０の枠特徴差分スコア計算処理の計算例を示す図である。枠７１０と枠７２０の枠特徴差分スコアを枠特徴ごとに計算したものがテーブル７０００となる。例えば，背景色（７００２），枠幅（７００３），枠高さ（７００４）は，枠１と枠２のそれぞれの特徴値の比や差から差分スコアを計算する。また，寄せ位置（７００１），フォントサイズ（７００５），フォントタイプ（７００６），太字設定の有無（７００７），斜体設定の有無（７００８），下線の有無（７００９）などは，その特徴が異なる場合に差分スコアをある定数，その特徴が等しい場合に差分スコアを０と計算する。また，数値記号表現（７０１０）は，マスクされた文字列の（編集距離÷文字列長）を差分スコアとして定義する。このようにして求められた枠特徴ごとの差分スコアの和をとることで，枠７１０と枠７２０の枠特徴差分スコアが4.591と計算される。
【００２８】
次に，ステップＳ１５０の項目名-データ境界線検出処理では，ステップＳ１４０の枠特徴差分スコア計算処理において，隣接する全ての枠のペアごとに計算された枠特徴差分スコアを元に，項目名の枠とデータの枠の境界である項目名-データ境界線を検出する。項目名-データ境界線の検出は，項目名-データ境界線スコアを計算することで行う。項目名-データ境界線スコアは，表内の全ての罫線に対して計算され，当該罫線が項目名-データ境界線となる確度が大きいほど，スコアが大きくなるように計算される。
【００２９】
図１のステップＳ１５０の項目名-データ境界線検出処理の処理例を，図５のフロー図および図８の例を用いて説明する。図５の処理フローは表内の全ての罫線ごとに実行される。図８の例の場合，縦罫線Ｖ１，Ｖ２，Ｖ３および横罫線Ｈ１，Ｈ２，Ｈ３，Ｈ４ごとに，図５の処理フローが実行される。ここでは，例として罫線Ｈ２に対する項目名-データ境界線検出の処理例を説明する。ステップＳ５０１では罫線の項目名-データ境界線スコアを０に初期化する。ステップＳ５０２では，表内に残りの枠接線があるか判定する。残り枠接線がある場合はステップＳ５０３に遷移し，残り枠接線がない場合はステップＳ５０６に遷移する。ステップＳ５０３では，図１７の項目名-データ境界線スコアテーブル１６１０および１６２０を参照し，現在参照している枠接線が，当該罫線に属するかどうかを判定し，属していればステップＳ５０４に遷移し，属していなければステップＳ５０５に遷移する。図８の例の場合，罫線Ｈ２には，枠接線８０１，８０２，８０３，８０４が属している。ステップＳ５０４では，当該罫線の項目名-データ境界線スコアに，当該枠接線の枠特徴差分スコアを加算する。枠特徴差分スコアは枠特徴差分スコアテーブル１６３０，１６４０を参照して取得する。ステップＳ５０５で，次の枠接線を参照する。全ての枠接線の参照を終えると，ステップＳ５０６に遷移する。ステップＳ５０６では，ステップＳ５０２とステップＳ５０３とステップＳ５０４とステップＳ５０５にて計算された当該罫線の項目名-データ境界線スコアを枠接線数で正規化する。図８の場合，罫線Ｈ２に属する枠接線数は４となる。次に，ステップＳ５０７で項目名-データ境界線スコアが事前に決めた閾値αより大きいかどうかを判定する。大きければステップＳ５０８に遷移し，当該罫線を項目名-データ境界線と判定し，小さければ項目名-データ境界線検出処理を終了する。図８の場合，罫線Ｈ２およびＶ１が項目名-データ境界線であると検出される。また，Ｓ５０７およびＳ５０８の処理は，あらかじめ閾値を定めずに，全ての罫線の項目名-データ境界線スコアを比較し，最もスコアの高い罫線やスコアの高い所定数の罫線を境界線としてもよい。
【００３０】
ステップＳ１６０の項目名枠決定処理は，項目名辞書３０４がある場合、ステップＳ２３０の項目名辞書照合処理で項目名と判定された文字列が属する枠を項目名枠と決定することができる。図１の発明方式の処理フローのように項目名辞書３０４を利用しない場合では，これとは異なる実施方法で項目名枠を決定することができる。例えば，ステップＳ１５０の項目名-データ境界線検出処理において，項目名-データ境界線と判定された罫線の上に位置する枠および左に位置する枠を項目名枠と判定する方法がある。図８の場合，横罫線Ｈ２および縦罫線Ｖ１が項目名-データ境界線と判定されているため，横罫線Ｈ２より上に位置する枠，すなわち文字列「Electric system」「Input」「Voltage[V]」「Power[W]」「DC/AC」の属する枠が項目名枠と判定され，また，縦罫線Ｖ１より左に位置する枠，すなわち文字列「Minimum」「Normal」「Maximum」の属する枠が項目名枠と判定される。
【００３１】
以上の処理により、図１４及び図１５上部に示すような表構造から、図１４及び図１５下部のような出力結果を、出力装置３０３に表示させることができる。
【００３２】
以上，図１を用いて説明した本発明方式の処理フローにより，枠特徴差分スコア計算処理および項目名-データ境界線検出処理を備えることで，項目名辞書を用いずに，表内から項目名-データ関係の抽出が可能になる。これにより，抽出すべき項目名単語が未知の場合や，項目名に表記ゆれが存在する場合にも，項目名-データ関係の抽出が可能になる。すなわち，不特定かつ大量の表を解析するといった，従来は項目名-データ抽出方式を適用できなかった利用ケースにも，適用が可能となる。
＜第二の実施形態＞
以下，本発明方式の応用例について述べる。
【００３３】
前述の図１の処理フローでは，ステップＳ１４０の枠特徴差分スコア計算処理およびステップＳ１５０の項目名-データ境界線検出項目名辞書を備え，枠の書式情報や枠内の文字列情報の特徴の差に基づいて，項目名枠を決定する。これにより、抽出すべき項目名-データ関係に対して，項目名辞書が完備されていない場合にも，項目名-データ関係の抽出が可能となる。一方で，従来通りの項目名辞書を併用した構成方法もあり，この場合さらに安定的に項目名-データ関係の抽出を行うこともできる。図９の処理フロー図を用いて下記に説明する。
【００３４】
図９の処理フローは，図１の処理フローＳ１１０〜Ｓ１７０に，ステップＳ９３０の項目名照合処理および項目名辞書３０４を追加したものである。ステップＳ９１０とステップＳ１１０の枠検出処理，ステップＳ９２０とステップＳ１２０の文字列検出処理，ステップＳ９５０とステップＳ１５０の項目名-データ境界線検出処理，ステップＳ９６０とステップＳ１６０の項目名枠決定処理，ステップＳ９７０とステップＳ１７０の項目名-データ関係決定処理は，それぞれ同一の処理である。また，ステップＳ９３０と図２のステップＳ２３０の項目名照合処理は同一の処理である。
【００３５】
ステップＳ９４０の枠特徴差分スコア計算処理は，ステップＳ１４０とほぼ同一の処理であるが，枠特徴として図６の６１０１〜６１１０に，項目名辞書スコア６１１１が追加される。項目名辞書スコアは，項目名辞書内に定義された単語がどの程度項目名らしいかを示したスコアである。項目名辞書スコアは，ステップＳ９３０の項目名辞書照合処理において、ある文字列が項目名辞書内の項目名単語に一致した場合に付与される。図１１に項目名辞書の例を示す。項目名辞書には，項目名単語および項目名単語に対する項目名辞書スコアが格納される。項目名辞書スコアは，例えばある項目名の過去の出現回数を全体の項目名の出現回数の和で正規化した数値として定義する方法がある。図７の枠７１０において，枠７１０内の文字列「Voltage[V]」が図１１の項目名辞書の項目名単語「Voltage[V]」に一致する。この場合，項目名単語「Voltage[V]」に紐づいている項目名辞書スコア0.24が枠７１０の項目名辞書スコアとなる。一方で，枠７２０の文字列「220」は項目名辞書内の項目名単語に一致しない。よって，枠７２０の項目名辞書スコアは0.00となる。すなわち，枠７１０と枠７２０の項目名辞書スコアの差分スコアは0.24（７０１１）となる。この項目名辞書スコアの差分スコアも利用して，枠特徴差分スコアを計算することで，項目名とデータの枠特徴に差がみられない書式の表においても，部分的に項目名辞書に一致する単語および枠が見つかれば，項目名-データ境界線を検出することが可能となる。また，項目名辞書が完備されていなくとも，ステップＳ９５０の項目名-データ境界線検出処理の併用により，安定的に項目名-データ境界線を検出することが可能となる。
＜第三の実施形態＞
さらに次に本発明の別の応用例について述べる。
【００３６】
図９の処理フローでは，抽出すべき項目名-データ関係に対して項目名辞書が完備されていない場合や，項目名とデータの枠特徴に差が見られない書式の表の場合に対しても，安定的に項目名-データ関係を抽出することが可能になる。一方で，ある表を解析した際に，項目名と判定された単語が項目名辞書に存在しない場合には，新規に項目名と判定された単語を項目名辞書に追加することで，項目名辞書の自動学習・自動メンテナンスが可能となるため，その後別の表を解析する際に，メンテナンスされた項目名辞書を用いての表解析が可能となる。例えば，図８の項目名-データ関係決定の例，および図１１の項目名辞書の例において，枠８１０と枠８２０と枠８３０が項目名枠と判定された場合，枠８１０内の文字列「Maximum」と枠８３０内の文字列「Minimum」は項目名辞書１１０１に登録されているが，枠８２０内の文字列「Normal」は登録されていない。ここで，新規に項目名辞書１１０１に項目名単語「Normal」を追加することで，別のレイアウトで「Normal」という単語を含む表からの項目名-データ関係の抽出が可能になる。
【００３７】
図１０の処理フローは，図９の処理フローＳ９１０〜Ｓ９７０にステップＳ１０８０の項目名辞書修正処理を追加したものである。図１０の処理により，表の解析結果を元に自動で項目名辞書の修正が可能になり，ユーザは項目名辞書をメンテナンスしなくとも，解析対象の文書群にあわせて，項目名辞書が自動で修正されるというメリットをもたらす。図９と図１０の処理フローのうち，ステップＳ９１０とＳ１０１０の枠検出処理，ステップＳ９２０とＳ１０２０の文字列検出処理，ステップＳ９３０とＳ１０３０の項目名辞書照合処理，ステップＳ９４０とＳ１０４０の枠特徴差分スコア計算処理，ステップＳ９５０とＳ１０５０の項目名-データ境界線検出処理，ステップＳ９６０とＳ１０６０の項目名枠決定処理，ステップＳ９７０とＳ１０７０の項目名-データ関係決定処理は，それぞれ同一の処理である。
【００３８】
ステップＳ１０８０の項目名辞書修正処理では，ステップＳ１０７０の項目名-データ関係決定処理において抽出された項目名を元に，項目名辞書に新規に項目名単語を追加したり，各項目名単語に紐づいた項目名辞書スコアを修正したりする。
【００３９】
項目名辞書修正処理の処理フロー例を図１３に，項目名辞書の修正例を図１２に示す。説明のために，例えば，図８の例のように，項目名が「Voltage[V]」「Power」「Maximum」「Normal」「Minimum」と抽出されたとする。ステップＳ１３０１では項目名-データ関係の抽出結果を参照し，抽出された項目名を参照する。次に，ステップＳ１３０２で残り抽出結果があるか参照し，あればステップＳ１３０３に遷移し，なければステップＳ１３０７に遷移する。ステップＳ１３０３では，抽出された項目名が項目名辞書内にあるかどうか判定し，あればステップＳ１３０４に遷移し，なければステップＳ１３０５に遷移する。例えば図８の抽出例および図１２の修正前の項目名辞書１２０１の場合，抽出された項目名「Voltage[V]」「Maximum」「Minimum」は項目名辞書内にあるが，「Power[W]」「Normal」はないと判定される。ステップＳ１３０４では，抽出された項目名に一致する項目名辞書内の単語の出現回数を＋１する。例えば，図８の場合「Voltage[V]」の出現回数が＋１され145から146になっている。ステップＳ１３０５では，抽出された項目名を新規に項目名辞書に追加する。図１２の修正前項目名辞書１２０１と修正後項目名辞書１２０２の場合，「Power[W]」「Normal」が新規に追加されている。このとき出現回数は1としてよいし，ある定数（例の場合10）としてもよい。ステップＳ１３０６では次の抽出結果を参照する。ステップＳ１３０７では，項目名辞書内の項目名の出現回数を正規化する。例えば，全ての項目名の出現回数の総和で割って正規化してもよいし，出現回数が最大の項目名の出現回数で割って正規化してもよい。
以上に説明した，ステップ１０８０の項目名辞書修正処理により，項目名-データ抽出結果に基づいて，項目名辞書が随時修正される。これにより，表解析を積み重ねるにつれて，初期の項目名辞書になかった単語を自動で追加したり，出現回数の高い項目名の項目名辞書スコアを自動で大きく設定したりなど，ユーザがメンテナンスせずに，項目名辞書の自動学習・修正が可能となる。
【符号の説明】
【００４０】
３３１・・・表構造解析計算機
３０１・・・文書入力装置
３０３・・・出力装置
３０９・・・メモリ
３１０・・・ＣＰＵ
３１１、３１２・・・Ｉ／Ｆ
３１３・・・ネットワークＩ／Ｆ
３１４・・・外部記憶装置
３１５・・・ネットワーク
Ｈ１〜Ｈ４・・・表を構成する横の罫線
Ｖ１〜Ｖ３・・・表を構成する縦の罫線
ｈ１〜ｈ１３・・・横の罫線Ｈ１〜Ｈ４を構成する枠接線
ｖ１〜ｖ１４・・・縦の罫線Ｖ１〜Ｖ３を構成する枠接線
【図１】
0005775839.tif 000002
【図２】
0005775839.tif 000003
【図３】
0005775839.tif 000004
【図４】
0005775839.tif 000005
【図５】
0005775839.tif 000006
【図６】
0005775839.tif 000007
【図７】
0005775839.tif 000008
【図８】
0005775839.tif 000009
【図９】
0005775839.tif 000010
【図１０】
0005775839.tif 000011
【図１１】
0005775839.tif 000012
【図１２】
0005775839.tif 000013
【図１３】
0005775839.tif 000014
【図１４】
0005775839.tif 000015
【図１５】
0005775839.tif 000016
【図１６】
0005775839.tif 000017
【図１７】
0005775839.tif 000018
【図１８】
0005775839.tif 000019