本実施例では、表構造自動認識装置により、見出しが定義された表構造の自動認識を行う。表構造の自動認識とは、表の見出しと項目との対応付けを行うことを含む。表構造の自動認識は、例えば文書データそれぞれに要件を定義した表が含まれる場合に、各表における要件の定義の整合性を確認する整合検査等に用いられる。文書データとは、例えばソフトウェア設計等を行う際に作成される設計書データ等である。
以下に図1を参照して表構造自動認識装置による表構造の自動認識の概要を説明する。図1は、表構造の自動認識の概要を説明する図である。
本実施例では、予め設計書に含まれる文書が種別毎に分類されており、種別毎に文書に含まれる表の見出し項目が定義されている。表構造自動認識装置は、文書種別毎に文書から複数のセル(区画)からなる表を矩形領域として抽出する(ステップS11)。続いて表構造自動認識装置は、抽出した表の見出し項目のデータを照合し、見出し項目のデータ同士が類似する表を抽出する(ステップS12)。続いて表構造自動認識装置は、抽出した表のデータ項目の長さと見出し項目の長さを補正する(ステップS13)。尚本実施例の見出し項目の長さとは、見出し項目に対応した区画の長さである。具体的には見出し項目に対応した区画内の文字数である。またデータ項目の長さとは、データ項目に対応した区画の長さである。具体的にはデータ項目に対応する区画内の文字数である。続いて表構造自動認識装置は、見出し項目に対応するデータ項目の候補を特定する(ステップS14)。
本実施例では、このように表の見出し項目と表が含まれる文書の種別による表構造の定義から、文書中に含まれる表構造の自動認識を行う。
上述した表構造の自動認識を実現する表構造自動認識装置は、コンピュータ装置であって、図2に示すようなハードウェア構成を有する。
図2は、表構造自動認識装置のハードウェア構成例を示す図である。表構造自動認識装置100では、入力装置11、表示装置12、主記憶装置13、CPU14、インターフェース装置15、補助記憶装置16及びドライバ装置17がバスBで相互に接続されている。
バスBで相互に接続されている入力装置11、表示装置12、主記憶装置13、CPU14、インターフェース装置15、補助記憶装置16及びドライバ装置17は、CPU14による管理下で相互にデータの送受を行うことができる。CPU14は、表構造自動認識装置100全体の動作制御を司る中央処理装置である。
インターフェース装置15は他の情報処理装置からのデータを受信し、そのデータのデータをCPU14に渡す。さらに、インターフェース装置15はCPU14からの指示に応じて他の情報処理装置にデータを送信する。
補助記憶装置16には、表構造自動認識装置100の機能を発揮させるプログラムの一部として、少なくとも表構造自動認識装置100に表構造の自動認識処理を実行させる表構造自動認識プログラムが記憶されている。
そして表構造自動認識装置100は、CPU14が表構造自動認識プログラムを補助記憶装置16から読み出して実行することで、表構造の自動認識機能を有する装置となる。表構造自動認識プログラムはCPU14とアクセス可能な主記憶装置13に格納されていても良い。入力装置11はCPU14の管理下でデータの入力を受付ける。表構造自動認識プログラムは表構造自動認識装置100が読み取り可能な記録媒体18に記録しておくことができる。
表構造自動認識装置100で読み取り可能な記録媒体18には、磁気記録媒体、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録媒体には、HDD(Hard Disk Drive)、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。また、光磁気記録媒体には、MO(Magneto − Optical disk)などがある。表構造自動認識プログラムを流通させる場合には、例えば表構造自動認識プログラムが記録されたDVD、CD−ROM等の可搬型の記録媒体18を販売することが考えられる。
そして表構造自動認識プログラムを実行する表構造自動認識装置100は、例えばドライバ装置17が表構造自動認識プログラムを記録した記録媒体18から、表構造自動認識プログラムを読み出す。CPU14は、読み出された表構造自動認識プログラムを主記憶装置13若しくは補助記憶装置16に格納する。
そして表構造自動認識装置100は、自己の記憶装置である主記憶装置13若しくは補助記憶装置16から表構造自動認識プログラムを読み取り、表構造自動認識プログラムに従った処理を実行する。
図3は、表構造自動認識装置の機能構成の一例を説明する図である。本実施例の表構造自動認識装置100は、認識処理部200と記憶部300とを有する。
認識処理部200は、矩形領域抽出部210と、見出し項目照合部220と、長さ補正部230と、見出し対応項目特定部240と、を有する。
矩形領域抽出部210は、設計書データベース310に格納された設計書データから表を抽出する。本実施例の設計書データは、例えば複数の表やテキストデータ等を含む文書データである。尚文書データは、表のみであっても良い。本実施例の設計書データベース310は、所謂文書データベースであって、文書データである設計書データが格納されている。
見出し項目照合部220は、抽出した表の見出し項目のデータと、設計書データベース310に格納された他の表の見出し項目のデータとを照合し、類似する表(以下、類似表)を抽出する。長さ補正部230は、類似表と抽出された表の見出し項目の長さとデータ項目の長さとに基づき、抽出された表の見出し項目の長さとデータ項目の長さとを補正する。見出し対応項目特定部240は、抽出された表において見出し項目に対応するデータ項目を特定する。尚各部の処理の詳細は後述する。
記憶部300は、設計書データベース310と、表抽出条件データベース320と、項目整合データベース330とを有する。記憶部300は、主記憶装置13及び/又は補助記憶装置16内に形成されるものであり、上記各データベースは主記憶装置13及び/又は補助記憶装置16内に設けられる。
以下に図4乃至図6を参照して記憶部300に格納された各データベースについて説明する。図4は、記憶部に格納された各データベースを説明する図である。
図4に示す部分41は、設計書データベース310を説明するものである。実施例の設計書データは、部分41に示すように、文書種別毎に分けられており、文書種別毎に設計書データベース310に格納される。本実施例では、設計書データは文書種別A、B、Cに分けられて設計書データベース310に格納されている。文書種別は、例えば設計書データに含まれる表の形式毎に分類される。
図4に示す部分42は表抽出条件データベース320を説明するものである。本実施例の表抽出条件データベース320には、文書種別毎に、設計書データに含まれる表の見出し項目を識別する識別子と、表の見出し項目のデータとが対応付けられて格納されている。例えば表抽出条件データベース320には、文書種別Aの表形式における見出し項目1、2を識別する識別子と、見出し項目1、2のデータとが文書書別Aの表抽出条件として格納されている。また表抽出条件データベース320には、文書種別Bの表形式における見出し項目1の識別子と見出し項目1のデータとが格納されている。
図4に示す部分43は、項目整合データベース330を説明するものである。本実施例の項目整合データベース330では、異なる文書種別の設計書データに含まれる表において、整合性が期待されるデータ項目同士が対応付けられて格納されている。例えば項目整合データベース330には、整合性が期待されるデータ項目として、文書種別Aのデータ項目41と文書種別Bのデータ項目43とが対応付けられて格納されている。また文書種別Bのデータ項目43と整合が期待されるデータ項目として、文書種別Cに含まれるデータ項目44が対応付けられて格納されている。
図5は、表抽出条件データベースの一例を示す図である。本実施例の表抽出条件データベース320では、文書種別と、見出し項目の識別子と、見出し項目のデータとが対応付けられて格納されている。
図5の例では、文書種別毎の見出し項目の一覧が格納されている。例えば見出し項目一覧321は、文書種別Aの見出し項目の一覧であり、見出し項目一覧322は文書種別Bの見出し項目の一覧である。見出し項目一覧321の見出し項目A−1のデータは、「組織名/役割名/担当名」である。また見出し項目一覧322の見出し項目B−1のデータは「組織および役割」である。本実施例では、表抽出条件データベース320に格納された文書種別毎の見出し項目一覧が、設計書データから表を抽出する際の条件となる。
図6は、項目整合データベースの一例を示す図である。本実施例の項目整合データベース330では、整合性が期待されるデータ項目の見出し項目同士が対応付けられて格納されている。例えば図6の例では、文書種別Aの見出し項目一覧321と文書種別Bの見出し項目一覧322において、見出し項目A−1と見出し項目B−1とが対応付けられている。これは、見出し項目A−1に対応したデータ項目と、見出し項目B−1で対応したデータ項目とが整合する可能性が高いことを示している。
次に図7を参照して本実施例の表構造自動認識装置100の動作を説明する。図7は、表構造自動認識装置の全体の動作を説明するフローチャートである。図7に示す各ステップの処理の詳細は後述する。
本実施例の表構造自動認識装置100は、表構造の自動認識処理が開始されると、矩形領域抽出部210により、処理対象の設計書データから矩形領域を抽出する(ステップS701)。ここで抽出される矩形領域は、設計書データに含まれる表である。
続いて表構造自動認識装置100は、表抽出条件データベース320にリストされた文書種別毎の見出し項目一覧を表の抽出条件とし、見出し項目照合部220により抽出条件に合致した類似表を抽出する(ステップS702)。具体的には例えば、文書種別Aの設計書データに含まれる表の見出し項目一覧を類似表の抽出条件とし、文書種別Aにおいて見出し項目一覧がある程度一致している表を抽出して類似表とする。
続いて表構造自動認識装置100は、長さ補正部230の有するデータデータ項目長さ補正部231により、抽出された類似表のデータ項目の長さを補正する(ステップS703)。次に表構造自動認識装置100は、長さ補正部230の有する見出しデータ項目長さ補正部232により、抽出された類似表の見出し項目の長さを補正する(ステップS704)。
続いて表構造自動認識装置100は、見出し対応データ特定部240により、補正後の見出し項目に対応するデータ項目を特定する(ステップS705)。続いて表構造自動認識装置100は、見出し項目とデータ項目とを対応付けたリストを出力する(ステップS706)。
以下に図8を参照してステップS701で実行される矩形領域の抽出の詳細を説明する。図8は、矩形領域の抽出を説明する図である。
図8に示す設計書データ80は、例えば文書種別Aの設計書データである。設計書データ80は、文書81、82、・・・、8nを含む。本実施例の矩形領域抽出部210は、文書種別Aの設計書データ80が処理対象として選択されると、設計書データ80に含まれる文書毎に、矩形領域を検出して抽出する。形領域抽出部210は、例えば文書81から矩形領域1、矩形領域2を抽出する。また形領域抽出部210は、文書82から矩形領域3、矩形領域4を抽出する。
図9は、矩形領域抽出部の処理を説明するフローチャートである。
本実施例の矩形領域抽出部210は、設計書データベース310から処理対象となる設計書データを選択する(ステップS901)。続いて矩形領域抽出部210は、ポインタを設計書データに含まれる文書の左上に設定する(ステップS902)。続いて矩形領域抽出部210は、ポインタを文書の右端まで走査し、矩形領域の左上角が存在するか否かを判断する(ステップS903)。
矩形領域抽出部210は、角を検出した場合(ステップS904)、後述するステップS909へ進む。ステップS904において角を検出しない場合、矩形領域抽出部210は、ポインタの位置が文書の右下にあるか否かを判断する(ステップS905)。ステップS905において、ポインタの位置が文書の右下にある場合、矩形領域抽出部210は、設計書データに含まれる他の文書があるか否かを判断する(ステップS906)。
ステップS906において他の文書が存在しない場合、矩形領域抽出部210は処理を終了する。ステップS906において他の文書が存在する場合、矩形領域抽出部210は、次の文書を選び(ステップS907)、ステップS902へ戻る。ステップS905おいて、ポインタの位置が文書の右下にない場合、矩形領域抽出部210は、ポインタを現在の次の位置に下げて左端に移動させ(ステップS908)、ステップS903に戻る。具体的に矩形領域抽出部210は、例えば現在のポインタの位置がkなら、ポインタの位置をk+1とする。
ステップS904において角が検出された場合、矩形領域抽出部210は、左上角より、右、下に伸びている線をスキャンし、左下角、右上角を検出する(ステップS909)。続いて矩形領域抽出部210は、右上角より下に伸びている線をスキャンし、右下角を検出する(ステップS910)。続いて矩形領域抽出部210は、文書中の矩形領域の位置情報を保存する(ステップS911)。位置情報とは、文書における左上角、右上角、左下角、右下角の座標値である。続いて矩形領域抽出部210は、ポインタを右上角の隣にセットし(ステップS912)、ステップS903へ戻る。具体的には例えば、矩形領域抽出部210は、ポインタの現在位置がmならば、m+1にポインタをセットする。尚本実施例の矩形領域である表は、m列×n行のセルを有するものであり、セルの固まりとした。
次にステップS702で行われる表抽出条件に合致した類似表の抽出の詳細を説明する。図10は、表抽出条件に合致した類似表の抽出を説明する図である。
本実施例の見出し項目照合部220は、表抽出条件データベース320に格納された見出し項目一覧に基づき、表抽出条件に合致した矩形領域抽出部210により抽出された表の類似表を抽出する。
図10の例では、処理対象の設計書データ80は文書種別Aであるため、表抽出条件データベース320に格納された文書種別Aの見出し項目一覧321を表抽出条件としている。本実施例の見出し項目照合部230は、見出し項目一覧321と矩形領域抽出部210により抽出された表の見出し項目とを比較して類似度を算出し、類似度が所定閾値以上の表を抽出する。図10の例では、矩形領域1〜4が抽出されている。本実施例では、見出し項目照合部220により抽出されたこの矩形領域の表を類似表と呼ぶ。
以下に本実施例の見出し項目照合部220の処理の詳細を説明する。図11は、見出し項目照合部の処理を説明するフローチャートである。
本実施例の見出し項目照合部220は、表抽出条件データベース320から、処理対象の設計書データ80の文書種別Aに対応する表抽出条件を取得する(ステップS1101)。表抽出条件は、具体的には文書種別Aの見出し項目一覧321である。続いて見出し項目照合部220は、表抽出条件に含まれる見出し項目をm1,m2,・・・,mnとする(ステップS1102)。
続いて見出し項目照合部220は、表抽出条件の類似度の閾値を取得する(ステップS1103)。この閾値は、予め表構造自動認識装置100の記憶部300に予め格納されているものとした。
次に見出し項目照合部220は、矩形領域抽出部210により抽出された矩形領域で文書種別Aの表形式に対応する矩形領域をh1,h2,・・・,hnとする(ステップS1104)。続いて見出し項目照合部220は、矩形領域を一つ取り出し(ステップS1105)、区画に分割して各区画をk1,k2,・・・,knとする(ステップS1106)。尚区画とは、矩形領域の中で線に囲まれた領域である。
次に見出し項目照合部220は、見出し項目一覧321に含まれる一つの見出し項目を取り出し(ステップS1107)、取り出した見出し項目と区画k1,k2,・・・,kn内の各文字列との類似度を算出する(ステップS1108)。本実施例の類似度とは、取り出した見出し項目と区画内の文字列とで一致する文字数に基づく値である。類似度の算出の詳細は後述する。
続いて見出し項目照合部220は、算出結果を保存する(ステップS1109)。算出結果は、見出し項目、区画(k1,k2,・・・,knの何れか)、類似度の3つの値が対応付けられた組として記憶部300等に保存される。続いて見出し項目照合部220は、残りの見出し項目が存在するか否かを判断する(ステップS1110)。ステップS1110において残りの見出し項目が存在する場合、見出し項目照合部220は次の見出し項目を取り出し(ステップS1111)、ステップS1108以降の処理を繰り返す。
ステップ1110において残りの見出し項目が存在しない場合、見出し項目照合部220は、矩形領域において、見出し項目一覧に対して最も類似度の高い区間を対応が1対1となるように割り振る(テップ1112)。ステップS1112では、上記各組を類似度の高い順に並びかえ、見出し項目と区画が1対1となるようにすれば良い。ステップS1112の処理の詳細は後述する。
続いて見出し項目照合部220は、見出し項目と区画を1対1に対応させた類似度の平均を求め、平均が閾値以上である場合は、矩形領域、見出し項目、区画の中の文字列を類似表として出力する(ステップ1113)。見出し項目照合部220は、残りの矩形領域が存在するか否かを判断する(ステップ1114)。ステップS1114において、残りの矩形領域がある場合、次の矩形領域を取り出し(ステップ1115)、ステップS1106へ戻る。ステップS1114において残りの矩形領域がない場合、見出し項目照合部220は処理を終了する。
以下に図12を参照して、ステップS1108、ステップS1109における見出し項目照合部220による類似度の算出と見出し項目と区画の対応付けについて説明する。図12は、類似度の算出と見出し項目と区画の対応付けを説明する図である。
図12では、例えば文書種別Aの表抽出条件である見出し項目一覧321と矩形領域1〜Nを照合する場合を示している。文書種別Aから出力された矩形領域は、領域121に示されるような区画に分割される。
見出し項目照合部220は、矩形領域1の区画1〜区画8の文字列に対して、見出し項目一覧321の見出し項目A−1と一致する文字数を調べる。そして、式(1)に示す類似度算出式により、見出し項目A−1と区画1の類似度を算出し、類似度として記憶部300等に保持する。
同様に見出し項目照合部220は、区画1〜区画8の文字列に対して見出し項目A−2と一致する文字数を調べる。そして、式(1)に示す類似度算出式により、見出し項目A−1と区画1の類似度を算出する。見出し項目照合部220は、矩形領域1〜Nの各区画に対して、見出し項目一覧321に含まれる全ての見出し項目について上述の処理を行う。
図13は、見出し項目毎の類似度を算出した例を示す第一の図である。図13では、矩形領域1の区画1〜8に対する見出し項目A−1〜A−4との類似度の算出結果131を示している。本実施例では、図13に示す見出し項目と、区画と、類似度とが一つの組として保存される。
図14は、見出し項目毎の類似度を算出した例を示す第二の図である。図14では、矩形領域Nの区画1〜8に対する見出し項目A−1〜A−4との類似度を算出結果141を示している。
次に図15を参照して、ステップS1112における見出し項目照合部220による割り振りの詳細を説明する。図15は、ステップS1112の処理の詳細を説明するフローチャートである。
見出し項目照合部220は、ステップS1109で保存された組において、類似度の値が大きい順にソートする(ステップS1501)。続いて見出し項目照合部220は、ポインタを最初の組にセットする(ステップS1502)。続いて見出し項目照合部220は、現在ポインタが指す組の見出し項目と、区画と、類似度とを出力する(ステップS1503)。すなわち見出し項目と区画の類似度が最も大きい組が出力される。本実施例では、この出力が1対1の割り振りの結果となる。
続いて見出し項目照合部220は、出力した組を類似度の算出結果から削除する(ステップS1504)。尚ここでは削除するものとしたが、出力されないように該当する組に出力禁止フラグを付けても良い。続いて見出し項目照合部220は、ポインタを一つ進める(ステップS1505)。ステップS1505においてポインタが指す組が存在する場合(ステップS1506)、見出し項目照合部220はステップS1503へ戻る。ステップS1505においてポインタが指す組が存在しない場合、見出し項目照合部220はステップS1112の処理を終了する。
図16は、見出し項目一覧に対して最も類似度の高い区間を対応が1対1となるように割り振った例を示す図である。図16では、算出結果131に対して図15で説明した処理を行った結果を割振結果161として示している。
割振結果161では、矩形領域1において見出し項目A−1と最も類似する区間は区画2であり、見出し項目A−2と最も類似する区間は区画3であり、見出し項目A−3と最も類似する区間は区画4であり、見出し項目A−4と最も類似する区間は区画1となる。本実施例では割振結果161以外の組は、記憶部300から削除されても良い。
本実施例の見出し項目照合部220は、文書種別Aの設計書データ80から抽出された全ての矩形領域について、上述の割振結果を求める。そして見出し項目照合部220は、割振結果161に含まれる類似度の平均値が閾値以上である矩形領域を抽出し、類似表として記憶部300に保持する。例えば図16に示す割振結果161の場合、4つの類似度1,1,0.8,0.5の平均値が閾値以上であった場合、矩形領域1は類似表1として保持される。
次にステップS703で行われる類似表のデータ項目の長さの補正の詳細を説明する。本実施例の表構造自動認識装置100において、データ項目長さ補正部231は、抽出された類似表のデータ項目の長さを補正する。図17は、データ項目長さ補正部による処理を説明するフローチャートである。
データ項目長さ補正部231は、ステップS702の処理結果の文書種別に対応する類似表を準備する(ステップS1701)。続いてデータ項目長さ補正部231は、類似表を一つ取り出す(ステップS1702)。続いてデータ項目長さ補正部231は、類似表を区画毎に分割する(ステップS1703)。続いてデータデータ項目長さ補正部231は、区画毎のデータ項目のデータを取得してデータ項目の長さを記憶部300等に記憶する(ステップS1704)。尚データ項目の長さとは、データ項目に対応する区画の長さであり、具体的には区画内の文字数を示す。
続いてデータデータ項目長さ補正部231は、残りの類似表が存在するか否かを判断する(ステップS1705)。ステップS1705において類似表が残っている場合、データ項目長さ補正部231は次の類似表を取り出し(ステップS1706)、ステップS1703に戻る。ステップS1706において残りの類似表が存在しない場合、取得したデータ項目の長さを用いて、類似表のデータ項目の長さを正規化する(ステップS1707)。具体的にはデータ項目長さ補正部231は、各類似表のデータ項目毎のデータの長さの平均値を求め、各データ項目の長さをこの平均値とするように補正しても良い。
図18は、データ項目の長さの補正の具体例を説明する第一図である。図18では、類似表として、文書種別Aの矩形領域1〜4が抽出された場合を示している。図18(A)は、見出し項目とデータ項目との対応を示す図であり、図18(B)はデータ項目の長さの補正を説明する図である。
本実施例のデータ項目長さ補正部231は、見出し項目照合部220により見出し項目A−1〜A−4が割り振られた区画以外の区画をデータ項目の区画とする。例えば文書種別Aの類似表では、図18(A)に示すように、区画1〜4には見出し項目A−1〜A−4が割り振られている。よって区画5〜8が見出し項目A−1〜A−4に対応するデータ項目1〜データ項目4の区画となる。
データ項目長さ補正部231は、図18(B)に示すように、矩形領域1〜4の区画5〜8の文字数を各区画のデータ項目の長さとして取得する。矩形領域1では、区画5の文字列は9文字であるため、区画5のデータ項目の長さは9となる。尚本実施例では、スペースや符号等も1文字とカウントするものとした。また矩形領域1の区画6の文字数は4文字であるため、区画6のデータ項目の長さは4となる。
データ項目長さ補正部231は、抽出された矩形領域(類似表)毎に、区画5〜8のデータ項目の長さを取得した記憶部300に保持する。
図19は、データ項目の長さの補正の具体例を説明する第二図である。図19では、図18でデータ項目長さ補正部231による補正後のデータ項目の長さから、矩形領域毎のデータ項目の長さを補正する例を示している。図19(A)は区画5〜8のデータ項目の長さの平均値の例を示しており、図19(B)は矩形領域1のデータ項目の長さを補正した例を示している。
本実施例では、各区画のデータ項目の長さの平均が補正後のデータ項目の長さとなる。図19(A)に示すように、矩形領域1〜4における区画5のデータ項目の長さの合計は36である。よってデータ項目長さ補正部231はこの平均値9を区画5の補正後のデータ項目の長さとする。データ項目長さ補正部231は、区画6〜8に対しても同様に補正後のデータ項目の長さを算出する。尚平均値の算出において、小数点第2位の値は切り上げるものとした。算出された補正後のデータ項目の長さは、各区画と対応付けられて記憶部300等に保持される。
そしてデータ項目長さ補正部231は、補正後のデータ項目の長さに基づき区画5〜8の文字列の長さを補正する。この補正により、例えば図19(B)に示すように、矩形領域1の区画5のデータ項目の文字列の長さは9となり、区画6のデータ項目の文字列の長さは4となり、区画7のデータ項目の文字列の長さは4.5となり、区画8のデータ項目の文字列の長さは3.5となる。
次にステップS704で行われる類似表の見出し項目の長さの補正の詳細を説明する。本実施例の表構造自動認識装置100において、見出し項目長さ補正部232は、抽出された類似表の見出し項目の長さを補正する。図20は、見出し項目長さ補正部による処理を説明するフローチャートである。
本実施例の見出し項目長さ補正部232は、見出し項目の長さ補正の対象とする文書種別に対する表抽出条件を取得する(ステップS2001)。ここで補正対象の文書種別を文書種別Aとし、文書種別Aの表抽出条件を対象表抽出条件とする。すなわち対象表抽出条件とは、文書種別Aの見出し項目一覧321である。
続いて見出し項目長さ補正部232は、項目整合データベース330を参照し、文書種別Aと整合性が期待される文書種別の見出し項目一覧(表抽出条件)を取得する(ステップS2002)。ここでは文書種別Aと整合性が期待される文書種別を文書種別Bとし、文書種別Bの表抽出条件を対応表抽出条件とする。すなわち対応表抽出条件とは文書種別Bの見出し項目一覧322である。
続いて見出し項目長さ補正部232は、対応表抽出条件に基づき文書種別Bの設計書データから抽出された類似表を準備する(ステップS2003)。次に見出し項目長さ補正部232は、対象表抽出条件から一つ見出し項目を取り出す(ステップS2004)。具体的には例えば、見出し項目一覧321から一つの見出し項目を取り出す。
続いて見出し項目長さ補正部232は、整合性が期待される文書種別に対応する見出し項目が対応表抽出条件中に存在するか否かを判断する(ステップS2005)。具体的には例えば、文書種別Bの見出し項目一覧322中に、ステップS2004で取り出した見出し項目と整合性が期待できる見出し項目が存在するか否かを判断する。
ステップS2005において該当する見出し項目が存在する場合、見出し項目長さ補正部232は、対応表抽出条件に対する類似表中で、対応する見出し項目と合致する見出し項目の長さの平均値を算出する(ステップS2006)。具体的には例えば、見出し項目一覧322を表抽出条件として文書種別Bの設計書データから抽出した類似表において、ステップS2004で取り出した見出し項目と整合性が期待できる見出し項目を抽出し、抽出した見出し項目の文字数の平均値を算出する。ステップS2005において該当する見出し項目が存在しない場合、後述するステップS2008へ進む。
続いて見出し項目長さ補正部232は、ステップS2004で取り出した見出し項目の長さを、ステップS2006で算出した見出し項目の平均値を用いて補正する(ステップS2007)。続いて見出し項目長さ補正部232は、残りの見出し項目が存在するか否かを判断する(ステップS2008)。ステップS2008で残りの見出し項目が存在する場合、見出し項目長さ補正部232は次の見出し項目を取り出し(ステップS2009)、ステップS2005に戻る。ステップS2008で残りの見出し項目が存在しない場合、見出し項目長さ補正部232は処理を終了する。
以下に図21乃至図24を参照して見出し項目の長さの補正について具体的に説明する。図21は、見出し項目の長さの補正の具体例を示す第一の図である。
図21では、文書種別Aの類似表の見出し項目の長さを補正する場合を示している。見出し項目長さ補正部232は、項目整合データベース330に基づき、文書種別Aの見出し項目A−1と文書種別Bの見出し項目B−1とが整合性が期待されると判断する。また見出し項目長さ補正部232は、見出し項目A−3と文書種別Cの見出し項目C−1とが整合性が期待されると判断する。
そして見出し項目長さ補正部232は、表抽出条件データベース320から文書種別Bの見出し項目一覧322を表抽出条件として取得する。そして図7のステップS701、ステップS702の処理を文書種別Bの設計書データに対して行い、文書種別Bの類似表を抽出する。また見出し項目長さ補正部232は文書種別Cについても見出し項目一覧323を表抽出条件として取得し、文書種別Cの類似表を抽出する。
図22は、見出し項目の長さの補正の具体例を示す第二の図である。見出し項目長さ補正部232は、文書種別Bの類似表と文書種別Cの類似表を抽出すると、文書種別Aの見出し項目一覧321から一つ見出し項目を取り出し、文書種別B,Cに取り出した見出し項目と整合性が期待できる見出し項目があるか否か判断する。
図22において、例えば見出し項目一覧321の見出し項目A−1を取り出すと、見出し項目A−1は見出し項目B−1と整合性が期待でき、見出し項目A−3は見出し項目C−1と整合性が期待できることがわかる。また見出し項目A−2、A−4との整合性が期待できる見出し項目は、文書種別B,Cには存在しないことがわかる。
図23は、見出し項目の長さの補正の具体例を示す第三の図である。文書種別B,Cにおいて文書種別Aの見出し項目と整合性が期待できる見出し項目がわかると、見出し項目長さ補正部232は、各文書種別の類似表における該当見出し項目の長さの平均値を算出する。
図23(A)は、文書種別Bの類似表における見出し項目B−1の長さの平均値の算出を説明する図であり、図23(B)は、文書種別Cの類似表における見出し項目C−1の長さの平均値の算出を説明する図である。
図23(A)に示すように、文書種別Bは、見出し項目B−1が見出し項目A−1と整合性が期待される見出し項目である。よって見出し項目長さ補正部232は、文書種別Bの各類似表から見出し項目B−1の文字数を抽出し、この平均値を求める。図23(A)の例では、文書種別Bから3つの類似表が抽出された例である。よって見出し項目長さ補正部232は、3つの類似表の見出し項目B−1の長さ(文字列の数)の平均値を算出する。
また図23(B)に示すように、文書種別Cは、見出し項目C−1が見出し項目A−3と整合性が期待される見出し項目である。よって見出し項目長さ補正部232は、文書種別Cの各類似表から見出し項目C−1の文字数を抽出し、この平均値を求める。この平均値は、記憶部300等に記憶される。
図23(B)の例では、文書種別Cから3つの類似表が抽出された例である。よって見出し項目長さ補正部232は、3つの類似表の見出し項目C−1の長さ(文字列の数)の平均値を算出する。尚平均値の算出において、小数点以下の数値は切り捨てるものとした。
図24は、見出し項目の長さの補正の具体例を示す第四の図である。図24(A)は補正方法について説明する図であり、図24(B)は矩形領域1の見出し項目を補正した例を示す図である。
本実施例の見出し項目長さ補正部232は、文書種別Aの見出し項目の長さと、他の文書種別で整合性が期待される見出し項目の長さの平均値とを用いて文書種別Aの見出し項目の長さを補正する。具体的には図24(A)に示すように、文書種別Aの見出し項目の長さと他の文書種別で整合性が期待される見出し項目の長さの平均値との和の1/2の値が補正後の見出し項目の長さとなる。
図24では、文書種別Bの見出し項目B−1と整合性が期待される見出し項目がある見出し項目A−1と、文書種別Cの見出し項目C−1と整合性が期待される見出し項目がある見出し項目A−3とが補正される。見出し項目A−1の長さは15であり、見出し項目B−1の長さの平均値は11である。よって見出し項目A−1の補正後の長さは13となる。
また見出し項目A−3の長さは6であり、見出し項目C−1の長さの平均値は4である。よって見出し項目A−3の補正後の長さは5となる。
このように補正した結果、矩形領域1の見出し項目は、図24(B)に示すように、見出し項目A−1は長さ13、見出し項目A−2は長さ3、見出し項目A−3は長さ5、見出し項目A−4は長さ2となる。
尚本実施例では、例えば文書種別Aの見出し項目A−1と整合性が期待される見出し項目が他の文書種別の見出し項目一覧に存在しない場合、文書種別Aと表形式が類似した文書種別において類似した見出し項目の文字数の平均値を用いて見出し項目の補正を行う。例えば項目整合データベース330において、文書種別Aの見出し項目A−4は、整合性が期待される見出し項目が存在しない。よって見出し項目長さ補正部232は、見出し項目A−1と整合性が期待される見出し項目が含まれる文書種別Bの見出し項目一覧322のうち、見出し項目A−4と類似する見出し項目B−5の文字数と、見出し項目A−4の文字数との平均値を見出し項目A−4の補正に用いても良い。
尚本実施例では、見出し項目の長さの補正とデータ項目の長さの補正とを両方行うものとして説明したが、これに限定されない。例えば見出し項目又はデータ項目の何れか一方の長さを補正しても良い。何れか一方の補正を行う場合はデータ項目の長さを補正することが好ましい。
次にステップS705で行われる補正後の見出し項目に対応するデータ項目の特定の詳細を説明する。本実施例の表構造自動認識装置100において、見出し対応データ特定部240は、補正後の見出し項目に対応するデータ項目を特定する。図25は、見出し対応データ特定部による処理を説明するフローチャートである。
見出し対応データ特定部240は、データ項目と見出し項目が補正された補正後の類似表を取得する(ステップS2501)。続いて見出し対応データ特定部240は、取得した類似表から見出し項目を一つ取り出す(ステップS2502)。続いて見出し対応データ特定部240は、取り出した見出し項目と、類似表中の各データ項目との組み合わせにより、作り出される領域の面積を計算する(ステップS2503)。
具体的には見出し対応データ特定部240は、見出し項目とデータ項目により作り出される領域を見出し項目の長さとデータ項目の長さをそれぞれ上辺と下辺とする台形とみなし、領域の面積を(見出し項目の長さ+データ項目の長さ)×高さ÷2として計算する。このとき高さは、例えば1つの区画の高さを1として計算しても良い。
見出し対応データ特定部240は、この領域の計算を、1つの見出し項目に対して全てのデータ項目について行い、見出し項目、データ項目、面積の3つを対応付けた組として記憶部300等に保存する(ステップS2504)。
見出し対応データ特定部240は、残りの見出し項目が存在するか否かを判断する(ステップS2505)。ステップS2505において残りの見出し項目がある場合、見出し対応データ特定部240は次の見出し項目を取り出し(ステップS2506)、ステップS2503へ戻る。
ステップS2505において残りの見出し項目が存在しない場合、見出し対応データ特定部240は、所定の条件に該当する計算結果を除く(ステップS2507)。本実施例では、1つのデータ項目が複数の見出し項目に対応しているものの計算結果と、見出し項目とデータ項目を結ぶ線分との交差数が一定閾値を越える計算結果とを除く。尚交差数の一定閾値は、例えば類似表中の見出し項目の数に対する一定の割合として与えられても良い。また交差数の一定閾値は、見出し項目の数に応じて変更されても良い。交差数の一定閾値は、記憶部300等に予め格納されている。
続いて見出し対応データ特定部240は、計算結果から見出し項目毎に領域の面積が最も小さい組を選び出す(ステップS2508)。見出し項目対応データ項目特定部240は、選ばれた組の見出し項目とデータ項目を最終結果として出力する(ステップS2509)。この見出し項目対応データ項目特定部240の処理により、類似表中の見出し項目に対応するデータ項目が特定される。
図26は、見出し項目に対応するデータ項目の特定を説明する図である。図26では、交差数の一定閾値を例えば1とした場合に、図26(A)は、見出し項目とデータ項目を結ぶ線分の交差数が一定閾値を越える場合を示しており、図26(B)は見出し項目とデータ項目を結ぶ線分の交差数が一定閾値を越えない場合を示している。
図26(A)では、見出し項目に対応する区画261に対して面積が最小の領域を作り出すデータ項目に対応する区間は区画262である。しかし、区画261の見出し項目と区画262のデータ項目とを結ぶ線分H1は、他の見出し項目とデータ項目とを結ぶ線分と3個所で交差する。したがってこの交差数は3となり、一定閾値を越えるため、区画262のデータ項目は区画261の見出し項目と対応するデータ項目には選択されない。
図26(B)では、交差数が一定閾値を越えるデータ項目を除いた場合に、区画261の見出し項目と最小の面積の領域を作り出す区画は区画263である。区画261の見出し項目と区画263のデータ項目とを結ぶ線分H2は、他の見出し項目とデータ項目とを結ぶ線分と交差しない。よって交差数は0となり、一定閾値を越えないため、区画263のデータ項目は区画261の見出し項目に対応するデータ項目として特定される。
このように本実施例では、見出し項目とデータ項目とが作り出す領域の面積が最小であることに加え、見出し項目とデータ項目とを結ぶ線分の交差数に制約を設ける。これは、表の解釈において、交差数が多いほど認知的負担が大きくなるという観察を反映したものである。
本実施例では、このように交差数に制約を設けることで表構造の自動認識の精度を高めることができる。
次に、本実施例の表構造自動認識装置100において表構造の自動認識を行う際の表構造の入力形式と出力形式について説明する。
図27は、表の入力形式を説明する図である。図27(A)は、表の一例を示しており、図27(B)は図27(A)で示す表構造の入力形式の一例を示している。
本実施例では、見出し項目を「H:座標:文字列長さ」で表し、データ項目を「座標:文字列長さ」で表し、領域の高さを「座標Y:高さ」で表す。また本実施例では、座標は例えばMSExcel(登録商標)形式で表す。
図27(A)に示すtable2は、座標F2,G2,G3,H3で示される区画が見出し項目であり、各区画には見出し項目の文字列が入力されている。またtable2では、残りの区画がデータ項目であり、各区画にはデータ項目の文字列が入力されている。よってtable2は、図27(B)に示すように、「H:F2:2 H:G2:3 H:G3:2」で見出し項目を示す。また先頭にH:がないものがデータ項目であり「F5:4 G4:16 G5:13 H5:5」でデータ項目を示す。また「2:1 3:1 4:2 5:2」で各区画の高さを示す。例えば、Y座標が2のものは高さが1であると解釈する。
図28は、見出し項目とデータ項目の対応付けをとる入力例を示す図である。本実施例の表構造自動認識装置100に複数の表の表構造を入力する場合、図28に示すように複数の表の表構造を一つのデータとして入力しても良い。図28では、table1〜table6までの表構造が含まれるデータを示している。
次に図29を参照して本実施例の表構造自動認識装置100から出力される見出し項目とデータ項目との対応付けの形式について説明する。図29は、対応付けの結果の例を示す図である。
本実施例では、見出し項目とデータ項目の対応付けを行った結果が、「交差数#領域サイズ#個々の領域1#個々の領域2#・・・#個々の領域n」という形式で出力される。尚個々の領域は、「個々の領域サイズ_領域の高さ_見出し項目_データ項目」で表され、見出し項目は「H:座標:文字列長さ」で表され、データ項目は「座標:文字列長さ」で表される。尚領域サイズは、表を形成する矩形領域の面積であり、個々の領域サイズは表に含まれる区画毎の面積である。
例えば図29のtable2では、交差数が1、領域サイズが106.5、領域1の領域サイズが18、領域の高さが6、見出し項目の座標がF2で見出し項目の長さが2、見出し項目に対応するデータ項目の座標がF5でデータ項目の長さが4となる。また領域2の領域サイズが24、領域の高さが6、見出し項目の座標がG2で見出し項目の長さが3、見出し項目に対応するデータ項目の座標がH5でデータ項目の長さが5となる。
以上のように本実施例では、見出し項目及びデータ項目の座標と文字列長さを入力するだけで、見出し項目に対応したデータ項目を特定することができる。よって簡単な表の構造定義で高精度に表の自動認識を行うことができる。
本発明は、以下に記載する付記のような構成が含まれる。
(付記1)
複数の区画が含まれる複数の表を含む文書データが格納された文書データベースから、前記複数の表を抽出し、
抽出対象の表の第1の見出しが格納された表抽出条件データベースを参照して、前記第1の見出しと前記複数の表の各々に含まれる見出し項目の区画のデータとを照合し、
前記照合の結果が所定条件を満たす表を抽出し、
前記所定条件を満たす表に含まれる各区画の長さに基づき、該表における見出し項目の区画とデータ項目の区画との対応付けに用いる見出し項目の区画の長さ又は該見出し項目と対応するデータ項目の区画の長さの少なくとも何れか一方を補正する
処理をコンピュータに実行させる表構造自動認識プログラム。
(付記2)
前記補正する処理において、
前記所定条件を満たす表に含まれる、前記データ項目の区画毎に、当該データ項目の区画の長さを取得して当該データ項目の区画の長さを正規化し、
前記対応付けに用いるデータ項目の区画の長さを前記正規化された値に補正する
処理をコンピュータに実行させる付記1記載の表構造自動認識プログラム。
(付記3)
前記補正する処理において、
前記データ項目の区画のデータが整合する見出し同士が対応付けて格納された項目整合データベースを参照して、前記第1の見出しと対応付けられた第2の見出しを取得し、
前記第1の見出し及び第2の見出しと前記複数の表の各々に含まれる見出し項目の区画のデータとを照合し、
前記照合の結果が所定条件を満たす第2の表を抽出し、
前記第2の表に含まれる見出し項目の区画の長さの平均値を用いて、前記対応付けに用いる見出し項目の区画の長さを補正する
処理をコンピュータに実行させる付記1又は2記載の表構造自動認識プログラム。
(付記4)
前記所定条件を満たす表の見出し項目の区画の各々と、データ項目の区画の各々とを結ぶ線分を求め、
前記線分同士が交差する回数が所定回数以下となる前記表の前記見出し項目と前記データ項目との組み合わせを特定し、
前記特定された見出し項目とデータ項目とを対応付けて出力する
処理をコンピュータに実行させる付記1乃至3の何れか一項に記載の表構造自動認識プログラム。
(付記5)
前記所定回数は、前記所定条件を満たす表の見出し項目の数に対して所定の割合となるように設定される付記4記載の表構造自動認識プログラム。
(付記6)
前記照合において、
前記表抽出条件データベースに格納された見出し項目のデータと前記文書データベースから抽出された前記複数の表の見出し項目のデータとが一致する割合に基づき前記複数の表のそれぞれの類似度を算出する処理と、
前記類似度が所定の閾値以上である表を前記複数の表から抽出する処理と、をコンピュータに実行させる付記1ないし5の何れか一項に記載の表構造自動認識プログラム。
(付記7)
コンピュータが表構造の自動認識を行う表構造自動認識方法であって、
複数の区画が含まれる複数の表を含む文書データが格納された文書データベースから、前記複数の表を抽出し、
抽出対象の表の第1の見出しが格納された表抽出条件データベースを参照して、前記第1の見出しと前記複数の表の各々に含まれる見出し項目の区画のデータとを照合し、
前記照合の結果が所定条件を満たす表を抽出し、
前記所定条件を満たす表に含まれる各区画の長さに基づき、該表における見出し項目の区画とデータ項目の区画との対応付けに用いる見出し項目の区画の長さ又は該見出し項目と対応するデータ項目の区画の長さの少なくとも何れか一方を補正する表構造自動認識方法。
(付記8)
表構造の自動認識を行う表構造自動認識装置であって、
複数の区画が含まれる複数の表を含む文書データが格納された文書データベースから、前記複数の表を抽出する矩形領域抽出部と、
抽出対象の表の第1の見出しが格納された表抽出条件データベースを参照して、前記第1の見出しと前記複数の表の各々に含まれる見出し項目の区画のデータとを照合し、前記照合の結果が所定条件を満たす表を抽出する見出し項目照合部と、
前記所定条件を満たす表に含まれる各区画の長さに基づき、該表における見出し項目の区画とデータ項目の区画との対応付けに用いる見出し項目の区画の長さ又は該見出し項目と対応するデータ項目の区画の長さの少なくとも何れか一方を補正する長さ補正部と、を有する表構造自動認識装置。