JP4476318B2 - 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法 - Google Patents

論理構造認識プログラム、論理構造認識装置、および論理構造認識方法 Download PDF

Info

Publication number
JP4476318B2
JP4476318B2 JP2007283916A JP2007283916A JP4476318B2 JP 4476318 B2 JP4476318 B2 JP 4476318B2 JP 2007283916 A JP2007283916 A JP 2007283916A JP 2007283916 A JP2007283916 A JP 2007283916A JP 4476318 B2 JP4476318 B2 JP 4476318B2
Authority
JP
Japan
Prior art keywords
heading
candidate
data
word
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007283916A
Other languages
English (en)
Other versions
JP2009110416A (ja
Inventor
明洋 皆川
悦伸 堀田
勇作 藤井
克仁 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007283916A priority Critical patent/JP4476318B2/ja
Priority to US12/180,202 priority patent/US8010564B2/en
Priority to CN2008101458844A priority patent/CN101425131B/zh
Publication of JP2009110416A publication Critical patent/JP2009110416A/ja
Application granted granted Critical
Publication of JP4476318B2 publication Critical patent/JP4476318B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)

Description

この発明は、紙帳票や電子化された帳票上での文字列間の関係(論理構造)を認識する論理構造認識プログラム、論理構造認識装置、および論理構造認識方法に関する。
従来、紙帳票の中から必要なデータを抽出するには、予め既知のレイアウトを持つ帳票(定型帳票)が利用されてきた。定型帳票からのデータ抽出では、ある意味を持つ文字や文字列が特定の領域に存在することを定めたレイアウト定義体を作成し、該当する領域に書かれた文字や文字列を認識することによってデータの抽出が行われてきた。しかし、数枚しか処理しない帳票に対してレイアウト定義体を作成すると、レイアウト定義体の作成コストが膨大になることから、そのような帳票に対しては人手によってデータを入力しており、膨大なデータ入力コストが必要になっていた。
近年、表の中の見出しの順序が変わってもデータの位置を特定することが可能になり、表が作成される場合の同列の見出しが逆転する場合のデータ抽出方法について開示されている(下記特許文献1を参照。)。
特開2005−275830号公報
しかしながら、従来の未知のレイアウトに対する帳票からの論理構造認識処理は、見出しの間の関係が大見出しと小見出しのように階層的であったり、階層を構成した中での小見出し間の横並びの関係に基づいてデータを抽出する方式、または、特定の罫線やセルを持ち、各見出しグループの中での順序が一意で無い帳票に対して適用可能な論理構造認識方式のいずれかである。
したがって、(1)複数の見出しより与えられるデータで、表を構成するかどうかわからない帳票、(2)同じ見出しが複数使用され、それらが一つ一つのデータに対応している帳票、(3)(見出し1)−(見出し2)−(見出し1に対応するデータ)−(見出し2に対応するデータ)のように他の見出しやデータを跨いで構成されている帳票に対しては適用できない、という問題があった。
たとえば、上述した特許文献1では表が使用されることを前提として、セルの関係を用いているため、上記(1)や(3)が依然として解消されない。また、(2)が解消されないと、同じ見出し文字列が各データに対応して使用されたときに曖昧さが残り、論理構造認識の精度が劣るという問題があった。
この発明は、上述した従来技術による問題点を解消するため、どのような形式の帳票であってもその論理構造認識を高精度に実現することができる論理構造認識プログラム、論理構造認識装置、および論理構造認識方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この論理構造認識プログラム、論理構造認識装置、および論理構造認識方法は、帳票に記述されている文字列の中から単語候補を抽出し、抽出された単語候補を前記帳票の見出しを構成する見出し単語候補群と前記帳票のデータを構成するデータ単語候補群に分け、前記単語候補の前記帳票上の位置に基づいて、前記見出し単語候補群の中から選ばれた一の見出し単語候補と当該一の見出し単語候補により特定される可能性がある前記データ単語候補群の中の一のデータ単語候補とからなる一見出し・一データ組候補を生成し、生成された一見出し・一データ組候補を、種類が異なる見出し単語候補どうしで組み合わせることにより、複数種類の見出し単語候補および一のデータ単語候補とからなる多見出し・一データ組候補を生成し、生成された多見出し・一データ組候補を構成する見出し単語候補とデータ単語候補の前記帳票上の位置に基づいて、前記多見出し・一データ組候補の中から、前記データごとに、前記データと当該データを特定する見出しからなる確定組を抽出し、抽出された確定組を出力することを要件とする。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記確定組の中に、複数種類の見出しと当該複数種類の見出しにより特定されるデータとからなる第1の確定組候補と、前記複数種類の見出しのうち一の見出しの位置のみが前記第1の確定組とは異なる第2の確定組候補とが存在する場合、前記一の見出しの位置と前記データの位置とに基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記データに対する前記一の見出しの前記帳票上の相対的な位置に基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記データと前記一の見出しとを包含する領域の面積に基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記確定組の中に、第1の見出しにより特定されるデータが複数あり、当該複数のデータにより特定される第2の見出しが前記データと同数存在する不定組が存在する場合、前記複数のデータおよび複数の前記第2の見出しの組み合わせからなる複数通りの確定組候補における前記データおよび前記第2の見出しの相対的な位置に基づいて前記確定組候補を比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記データと前記第2の見出しとの距離を前記確定組候補どうしで比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
また、上記論理構造認識プログラム、論理構造認識装置、および論理構造認識方法において、前記データと前記第2の見出しとを包含する面積を前記確定組候補どうしで比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択し、選択された妥当な確定組を出力することとしてもよい。
これらの論理構造認識プログラム、論理構造認識装置、および論理構造認識方法によれば、さまざまなレイアウトの帳票を読み込んで、複数の見出しと当該複数の見出しにより特定されるデータを一意に特定することができ、帳票の論理構造を自動認識することができる。
また、曖昧な見出し群により構成される確定組候補が存在する場合には、データと曖昧な見出し群との相対的な帳票上の位置により、妥当な見出しを特定することで、複数の見出しと当該複数の見出しにより特定されるデータを一意に特定することができ、帳票の論理構造を自動認識することができる。
同様に、曖昧な見出し群と曖昧なデータ群とにより構成される確定組候補が存在する場合には、複数通りの確定組候補の曖昧なデータと曖昧な見出しとの相対的な位置により、妥当なデータと見出しの組み合わせを特定することで、複数の見出しと当該複数の見出しにより特定されるデータを一意に特定することができ、帳票の論理構造を自動認識することができる。
この論理構造認識プログラム、論理構造認識装置、および論理構造認識方法によれば、どのような形式の帳票であってもその論理構造認識を高精度に実現することができるという効果を奏する。
以下に添付図面を参照して、この論理構造認識プログラム、論理構造認識装置、および論理構造認識方法の好適な実施の形態を詳細に説明する。本実施の形態における論理構造認識では、論理構造認識対象の一つである紙媒体やイメージデータの帳票を読み取って、帳票に記述されている文字情報とレイアウト情報(表などのレイアウトがある場合)を解析して、文字情報の論理構造を認識する技術である。ここでいう論理構造とは、帳票に記述されている見出しとその見出しにより特定されるデータとの対応関係を示す論理的な構造である。また、本明細書において、単に、「データ」と記述した場合には、任意の数値(金額、数量など)、すなわち、ワイルドカードのことをいう。
(論理構造認識対象の一例)
図1は、論理構造認識対象の一例(帳票)を示す説明図である。(A)において、帳票100はマトリクス状の論理構造を持ち、各セルの中には文字列が記述されている。文字列には、見出し項目として、旅費、設備費、消耗品費などの品目と、17年度〜19年度などの年度がある。これらを総称して文字情報と称す。そして、ある品目とある年度が交差する領域に記述されている値が、その品目についてのその年度の値であると特定される。たとえば、17年度の旅費のデータは、100,000(円)である。
(B)は、(A)に示した帳票100のレイアウト情報である。レイアウト情報は、文字情報を除いた枠や線などの情報である。各セルには、それぞれC1〜C16という識別子(セル番号)を割り振っておく。したがって、本実施の形態により論理構造が認識された場合、このレイアウト情報を基にして、スプレッドシートを生成して、そのスプレッドシートの各セルに該当する文字情報を書き込むことで、帳票100を、論理構造が認識された文字情報が記述されたスプレッドシートに変換することができる。
(文字情報の読み取り結果)
図2は、帳票100の文字情報を示す説明図である。文字情報は、帳票100の読み取り結果をあらわしており、文字番号、文字コード、座標、およびセル番号を有する。文字番号とは、“1”から昇順に割り振られる固有の番号である。
文字コードは、帳票100から読み取られた文字である。同一文字コードであっても別々の文字番号が割り振られる。座標は、帳票100上の文字コードの位置を特定する情報である。原点を帳票上の任意の位置とし、文字コードを囲む矩形の左上座標と右下座標により、文字コードの位置を特定している。セル番号は、その文字コードが記述されているセルの識別子である。
(共通論理構造DBの記憶内容)
つぎに、共通論理構造DBの記憶内容について説明する。図3−1〜図3−4は、共通論理構造DBの記憶内容を示す説明図である。図3−1および図3−2は、見出し項目に関する論理要素(以下、「見出し論理要素」という)を示すテーブルであり、図3−3および図3−4は、データに関する論理要素(以下、「データ論理要素」という)を示すテーブルである。
図3−1は、論理要素グループG1:品目の論理要素テーブルである。見出し論理要素テーブル301は、要素番号、代表単語、単語を有する。要素番号とは、代表単語名固有の番号である。以降、要素番号Eijの論理要素を論理要素Eijと表記する。代表単語とは、品目をあらわす代表的な単語である。また、単語とは、代表単語と同義語または類義語をあらわす文字列である。
要素番号E11を例に挙げると、代表単語は“旅費”であり、その単語は、“旅費”、“出張費”、“出張旅費”である。このように、同義語や類義語を用意しておくことにより、多種多様な帳票に対して、同種の見出しであることを特定することができる。
図3−2は、論理要素グループG2:年度の論理要素テーブルである。この見出し論理要素テーブル302も論理要素テーブル301と同様、要素番号、代表単語、単語を有する。要素番号E21を例に挙げると、代表単語は“17年度”であり、その単語は、“17年度”、“17年”、“2005年度”、“2005年”である。
図3−3は、論理要素グループG3:データの論理要素テーブルである。このデータ論理要素テーブル303については、図3−1および図3−2に示した要素番号、代表単語、単語のほかに、他のグループG1,G2との関係も保持している。また、データは、量見出し(品目と年度)により特定される値であるため、代表単語は、論理要素グループG1:品目の代表単語と論理要素グループG2:年度の代表単語とをつなげた文字列となる。要素番号E31を例に挙げると、その代表単語は、“旅費”と“17年度”とつなげた“旅費17年度”となる。
また、単語については、帳票100には任意の数値が記述されるので、*(ワイルドカード)とする。ただ、ワイルドカードとしても、数値のみ、数値およびカンマ、数値および通貨マーク(¥、円、$、ドルなど)、数値,カンマおよび通貨マークなどのように、ワイルドカードに関する同義語や類義語を保持しておく。
また、他のグループG1,G2との関係については、対応見出し論理要素数と対応見出し論理要素(の要素番号)とを保持する。対応見出し論理要素とは、そのデータを特定する見出し項目に関する論理要素であり、対応見出し論理要素数とは、その数である。要素番号E31を例に挙げると、代表単語“旅費17年度”に関するデータは、2つの対応見出し論理要素E11(代表単語“旅費”),E21(代表単語“17年度”)により特定されることがわかる。なお、品目に関する論理要素数は3通り(E11〜E13)あり、年度に関する論理要素数も3通り(E21〜E23)あるため、データに関する論理要素数は、3×3で9通り(E31〜E39)存在する。
図3−4は、図3−3に示したデータに関する論理要素テーブル303の他の例を示している。図3−4に示したデータに関する論理要素テーブル304では、論理要素(要素番号、代表単語、単語)については、論理要素テーブル303と同一である。一方、他のグループとの関係については、図3−3では、対応見出し論理要素単位で表現したのに対し、図3−4では対応論理要素グループ単位で表現している。
図3−4で表現した場合には、図3−1および図3−2の論理要素テーブルを参照して、図3−3に示した論理要素テーブル303を生成することとなる。要素番号E31を例に挙げると、対応論理要素グループはG1,G2であり、代表単語は“旅費”と“17年度”とつなげた“旅費17年度”であるため、対応論理要素グループG1の論理要素テーブル301から“旅費”を代表単語とする要素番号E11を特定でき、対応論理要素グループG2の論理要素テーブル302から“17年度”を代表単語とする要素番号E21を特定できる。
(単語候補抽出結果)
図4−1〜図4−3は、図1に示した帳票100からの単語候補抽出結果を示す説明図である。図4−1は、論理要素グループG1:品目に関する単語候補抽出結果401である。図4−2は、論理要素グループG2:年度に関する単語候補抽出結果402である。図4−3は、論理要素グループG3:データに関する単語候補抽出結果403である。
図4−1〜図4−3において、単語候補抽出結果401〜403では、要素番号およびその代表単語ごとに、単語候補、文字数、文字番号が保持される。単語候補とは、論理要素テーブル301〜304の単語の中から図2に示した文字コードとマッチした単語である。また、文字数とは単語候補の文字数であり、文字番号とは、単語候補の各文字コードの文字番号である。なお、図4−1〜図4−3中、論理要素Eijの単語候補をWeij−kと表記する。kは単語候補の番号である。
単語候補は、その要素番号により特定される単語の中からマッチする単語が選ばれる。図4−1に示した論理要素グループG1:品目に関する単語抽出結果を例に挙げると、図1に示した品目のうち“旅費”については、要素番号E11の中の単語群のうち“旅費”がマッチする。また、レイアウト情報により、図1に示した品目のうち“旅費”は、セルC5内に記述されているため、セルC5を手がかりとして、図2に示した文字情報から文字数(=2)と文字番号(15,16)を得る。なお、見出し論理要素の単語候補を見出し単語候補と呼び、データ論理要素の単語候補をデータ単語候補と呼ぶ。
(論理構造認識装置の機能的構成)
つぎに、論理構造認識装置の機能的構成について説明する。図5は、論理構造認識装置500の機能的構成を示すブロック図である。図5において、論理構造認識装置500は、単語候補抽出部501と、見出し論理要素グループ数検出部502と、一見出し・一データ組候補生成部503と、多見出し・一データ組候補生成部504と、確定組除去部505と、見出し単語候補評価部506と、データ単語候補評価部507と、出力部508と、を備えている。
これら各機能501〜508は、論理構造認識装置500の記憶部(HDやメモリ)に記憶された当該機能501〜508に関するプログラムをCPUに実行させることにより、または、入出力I/Fにより、当該機能を実現することができる。
また、各機能501〜508からの出力データは上記記憶部に保持される。また、図5中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをCPUに実行させるものとする。また、共通論理構造DBは、論理構造認識装置500または論理構造認識装置500と通信可能な外部のサーバに備えられ、図3−1〜図3−3(または図3−4)に示した論理要素テーブル301〜303(または304)を記憶する。
まず、単語候補抽出部501は、帳票100に記述されている文字情報の中から該当する単語を単語候補として抽出する機能を有する。具体的には、図2に示した読み取り結果や共通論理構造DB510(図3−1〜図3−4に示した論理要素テーブル301〜304)を参照して、図4−1〜図4−3に示した単語候補抽出結果を出力する。
また、見出し論理要素グループ数検出部502は、帳票100を構成する見出し項目の種類数となる見出し論理要素グループ数を検出する機能を有する。具体的には、たとえば、図1に示した帳票100では、見出し論理要素として、論理要素グループG1:品目と論理要素グループG2:年度が単語候補抽出に用いられたため、見出し論理要素グループ数Nmax=2と検出される。
また、一見出し・一データ組候補生成部503は、帳票100の中から選ばれた一つの見出し項目と当該見出し項目により特定される一つのデータとの組み合わせ(一見出し・一データ組。以下、単に「二つ組」と称す。)となる候補を生成する機能を有する。また、多見出し・一データ組候補生成部504は、帳票100の中から選ばれた複数(N個。Nは2≦N≦Nmax。)の見出し項目と当該見出し項目により特定される一つのデータとの組み合わせ(多見出し・一データ組。以下、単に「(N+1)つ組」と称す。)となる候補を生成する機能を有する。
また、確定組除去部505は、(N+1)つ組候補から、同一の見出し単語候補の組み合わせに対応するデータがただ一つに確定する場合に、それらをデータと対応する見出しとして確定して出力する機能を有する。また、一つのデータ論理要素のデータ単語候補を持つ(N+1)つ組候補がただ一つしか存在しない場合にそれらをデータと対応する見出しとして確定して出力する機能を有する。さらに、それらを(N+1)つ組候補から除去して確定可能な(N+1)つ組候補が存在するかどうかを確認する再帰処理を実行する機能を有する。
また、見出し単語候補評価部506は、確定組除去部505によってデータ論理要素のデータ単語候補が複数存在することにより唯一つの(N+1)つ組に限定できない場合に、データ単語候補が同一のものだけであるデータ論理要素を持つ(N+1)つ組候補から、異なる位置の見出し単語候補を与える見出し論理要素を選択し、該当する見出し単語候補とデータ単語候補との位置関係に基づいて、(N+1)つ組の組み合わせとして評価する機能を有する。
また、データ単語候補評価部507は、確定組除去部505によって複数のデータ論理要素の単語候補が存在する場合において唯一つの(N+1)つ組に限定できない場合に、同一の見出し単語候補から構成されデータ単語候補のみが異なる組み合わせを持つ(N+1)つ組候補と、同一のデータ単語候補をすべて持つ異なる論理要素の見出し単語候補の組み合わせに対して、それらの位置関係に基づいて、(N+1)つ組の組み合わせとして評価する機能を有する。
また、出力部508は、論理構造認識結果を出力する機能を有する。出力形式としては、ディスプレイへの表示、プリンタによる印刷出力、外部のコンピュータへの送信、内部の記憶部への格納などがある。また、サーバ&クライアント型である場合、論理構造認識装置500はサーバとなるため、クライアントに論理構造認識結果を送信し、受信したクライアントのディスプレイに表示されることとなる。
(論理構造認識処理手順)
つぎに、論理構造認識処理手順について説明する。図6は、論理構造認識処理手順を示すフローチャートである。図6において、帳票100を読み込んで(ステップS601)、文字情報(図2を参照)とレイアウト情報101に分解し、単語候補抽出部501により図4−1〜図4−3に示したような単語候補抽出結果を得る(ステップS602)。つぎに、見出し論理要素数検出部502により、帳票100の見出し論理要素数Nmaxを検出する(ステップS603)。
そして、一見出し・一データ組候補生成部503による一見出し・一データ組候補生成処理(ステップS604)、多見出し・一データ組候補生成部504による多見出し・一データ組候補生成処理(ステップS605)、確定組除去部505による確定組除去処理(ステップS606)、見出し単語候補評価部506による見出し単語候補評価処理(ステップS607)、データ単語候補評価部507によるデータ単語候補評価処理(ステップS608)を実行する。見出し単語候補評価処理(ステップS607)およびデータ単語候補評価処理(ステップS608)は必要に応じて実行する。
最後に、ステップS606〜S608の処理結果を出力部508により出力する(ステップS609)。以下、上述した一見出し・一データ組候補生成部503、多見出し・一データ組候補生成部504、確定組除去部505、見出し単語候補評価部506、およびデータ単語候補評価部507の詳細について説明する。
[一見出し・一データ組候補生成部503の詳細説明]
まず、一見出し・一データ組候補生成部503について説明する。図7は、二つ組候補の生成内容を示す説明図である。二つ組候補とは、ある見出し項目と、その見出し項目により特定される可能性があるデータとの組み合わせである。帳票100の見出し項目は、その下方向、右方向、右下方向に位置するデータと対応関係がある。ここでは、見出し項目に対してその下方向、右方向または右下方向の位置を指定領域と称す。したがって、見出し項目ごとに指定領域が異なる。この見出し項目とその指定領域に位置するデータが二つ組候補を構成する。
図7において、太線楕円は、選択見出し項目であり、細線楕円は、選択見出し項目により特定される可能性があるデータである。太線楕円と細線楕円を結ぶ線分が組み合わせであることを示している。この太線楕円と細線楕円との組み合わせが二つ組候補となる。
(A)は、論理要素グループG1:品目の要素番号E11の見出し単語候補“旅費”を選択した場合の二つ組候補を示している。“旅費”と論理要素グループG3のデータ単語候補との位置関係から、9個の二つ組候補が得られる。なお、単語候補“17年度”〜“19年度”は異なるグループG2であるが、見出し項目であるため二つ組候補の対象外である。
(B)は、論理要素グループG1:品目の要素番号E13の見出し単語候補“消耗品費”を選択した場合の二つ組候補を示している。“消耗品費”と論理要素グループG3のデータ単語候補との位置関係から、3個の二つ組候補が得られる。他のデータは、“雑費”から見て右上に位置するため、二つ組候補の対象外である。
(C)は、論理要素グループG2:年度の要素番号E21の見出し単語候補“17年度”を選択した場合の二つ組候補を示している。“17年度”と論理要素グループG3のデータ単語候補との位置関係から、9個の二つ組候補が得られる。
(D)は、論理要素グループG2:年度の要素番号E23の見出し単語候補“19年度”を選択した場合の二つ組候補を示している。“19年度”と論理要素グループG3のデータ単語候補との位置関係から、3個の二つ組候補が得られる。
図8は、一見出し・一データ組候補生成処理(ステップS604)の詳細な処理手順を示すフローチャートである。まず、二つ組候補数nをn=1とし(ステップS801)、論理要素グループGiの番号iをi=1とし(ステップS802)、論理要素Eijの番号jをj=1とする(ステップS803)。
このあと、論理要素Eijがデータの論理要素であるか否かを判断する(ステップS804)。データの論理要素でない場合(ステップS804:No)、jをインクリメントして(ステップS805)、ステップS804に戻る。一方、データの論理要素である場合(ステップS805:Yes)、見出し論理要素グループGi(Giと区別するため、G(ii)とする)の番号iiをii=1とし(ステップS806)、見出し論理要素グループG(ii)を読み込む(ステップS807)。たとえば、ii=1である場合、図4−1〜図4−3に示した単語候補抽出結果の中から見出し論理要素グループG1(図4−1に示した論理要素グループG1)を読み込む。
そして、見出し論理要素Eij(Eijと区別するため、E(ii,j)と表記。)を読み込む(ステップS808)。たとえば、図4−1に示した論理要素グループG1が見出し論理要素グループG(ii)として読み込まれた場合、ii=1、j=1であるため、E(ii,j)として、論理要素グループG1の中から見出し論理要素E11が読み込まれる。
このあと、ステップS804で特定されたデータ論理要素Eijの単語候補番号kをk=1とし(ステップS809)、ステップS808で読み込まれた見出し論理要素E(ii,j)の単語候補番号k(ステップS809のkと区別するため、kkとする)をkk=1とする(ステップS810)。
そして、見出し単語候補We(ii,j−kk)から見たときにデータ単語候補Weij−kが指定領域内に存在するか否かを判断する(ステップS811)。指定領域に存在するか否かは、図2に示したセル番号や座標により特定することができる。
指定領域内に存在する場合(ステップS811:Yes)、その見出し単語候補We(ii,j−kk)とデータ単語候補Weij−kとの組み合わせを、n番目の二つ組として格納する(ステップS812)。そして、nをインクリメントして(ステップS811)、ステップS814に移行する。一方、指定領域内に存在しない場合(ステップS811:No)、ステップS814に移行する。
ステップS814では、見出し論理要素E(ii,j)の単語候補番号kkをインクリメントする。そして、kk≦KKであるか否かを判断する(ステップS815)。ここで、KKは、見出し論理要素E(ii,j)の単語候補の総数である。kk≦KKである場合(ステップS815:Yes)、ステップS811に移行して、インクリメント後の見出し単語候補We(ii,j−kk)からみたときにデータ単語候補Weij−kが指定領域内に存在するか否かを判断する。
一方、kk≦KKでない場合(ステップS815:No)、データ論理要素Eijの単語候補番号kをインクリメントし(ステップS816)、k≦Kであるか否かを判断する(ステップS817)。ここで、Kは、データ論理要素Eijの単語候補の総数である。k≦Kである場合(ステップS817:Yes)、ステップS810に移行して、見出し単語候補We(ii,j−kk)からみたときにインクリメント後のデータ単語候補Weij−kが指定領域内に存在するか否かを判断する(ステップS810、S811)。
一方、k≦Kでない場合(ステップS817:No)、見出し論理要素グループgp(iiの番号iiをインクリメントし(ステップS818)、ii≦IIであるか否かを判断する(ステップS819)。ここで、IIは、見出し論理要素グループG(ii)の総数である。ii≦IIである場合(ステップS819:Yes)、ステップS807に移行して、インクリメント後の見出し論理要素グループG(ii)を読み込む。
一方、ii≦IIでない場合(ステップS819:No)、他の見出し論理要素の要素番号jをインクリメントし(ステップS820)、j≦Jであるか否かを判断する(ステップS821)。ここで、Jは、他の論理要素の総数である。j≦Jである場合(ステップS821:Yes)、ステップS804に移行して、インクリメント後の論理要素Eijがデータ論理要素であるか否かを判断する。
一方、j≦Jでない場合(ステップS821:No)、論理要素グループ番号iをインクリメントして(ステップS822)、i≦Iであるか否かを判断する(ステップS823)。ここで、Iは、論理要素グループGiの総数である。i≦Iである場合(ステップS823:Yes)、ステップS803に移行して、インクリメント後の論理要素グループGiに属する論理要素Eijがデータ論理要素であるか否かを判断することになる(ステップS804)。
一方、i≦Iでない場合(ステップS823:No)、一見出し・一データ組候補生成部503による一連の処理を終了して、ステップS605に移行する。これにより、図7に示したような二つ組候補が自動生成されることとなる。
[多見出し・一データ組候補生成部504の詳細説明]
つぎに、多見出し・一データ組候補生成部504について説明する。図9は、(N+1)つ組候補の生成内容を示す説明図である。(N+1)つ組候補とは、複数種の見出し項目と、それらの見出し項目により特定される可能性があるデータとの組み合わせである。帳票100の見出し項目は、その下方向、右方向、右下方向に位置するデータと対応関係がある。ここでは、複数種の見出し項目の下方向、右方向または右下方向の重複する位置を指定領域と称す。
したがって、複数種の見出し項目ごとに指定領域が異なる。この複数種の見出し項目とその指定領域に位置するデータが(N+1)つ組候補を構成する。図9では、N=2、すなわち、見出し項目として2つの項目(品目と年度)を用いて得られる三つ組候補を説明する。
図9において、太線楕円は、選択見出し項目であり、細線楕円は、両選択見出し項目により特定される可能性があるデータである。太線楕円と細線楕円を結ぶ線分が組み合わせであることを示している。この2つの太線楕円と細線楕円との組み合わせが二つ組候補となる。
(A)は、論理要素グループG1:品目の要素番号E13の見出し単語候補“消耗品費”を選択した場合の二つ組候補を示している。“消耗品費”と論理要素グループG3のデータ単語候補との位置関係から、3個の二つ組候補が得られる。他のデータは、“消耗品費”から見て右上に位置するため、二つ組候補の対象外である。
(B)は、論理要素グループG2:年度の要素番号E23の見出し単語候補 “19年度”を選択した場合の二つ組候補を示している。“19年度”と論理要素グループG3のデータ単語候補との位置関係から、3個の二つ組候補が得られる。
(C)は、論理要素グループG1:品目の要素番号E13の見出し単語候補 “消耗品費”と、論理要素グループG2:年度の要素番号E23の見出し単語候補 “19年度”とを選択した場合の三つ組候補を示している。すなわち、(A)と(B)に共通するデータ(8,000)のみが三つ組候補を構成する。
(D)は、論理要素グループG1:品目の要素番号E11の見出し単語候補 “旅費”と、論理要素グループG2:年度の要素番号E21の見出し単語候補 “17年度”とを選択した場合の三つ組候補を示している。すなわち、図7(A)と図7(B)に共通する9個のデータが三つ組候補を構成する。
図10は、多見出し・一データ組候補生成処理(ステップS605)の詳細な処理手順を示すフローチャートである。図10において、まず、見出し論理要素グループ数NをN=2に設定し(ステップS1001)、(N+1)つ組候補生成処理を実行する(ステップS1002)。このあと、Nをインクリメントし(ステップS1003)、N<Nmaxであるか否かを判断する(ステップS1004)。N<Nmaxでない場合(ステップS1004:No)、ステップS1002に戻る。一方、N<Nmaxである場合(ステップS1004:Yes)、多見出し・一データ組候補生成部504による一連の処理を終了する。これにより、図9の(C)、(D)に示したような(N+1)つ組候補が自動生成されることとなる。
つぎに、図10に示した(N+1)つ組候補生成処理の詳細な処理手順について説明する。図11および図12は、(N+1)つ組候補生成処理の詳細な処理手順を示すフローチャートである。(N+1)つ組候補はNつ組候補を基に作成され、任意の数の見出し項目に指示されても可能である。図11において、(N+1)つ組候補数dをd=1とし(ステップS1101)、Nつ組候補の番号nをn=1とする(ステップS1102)。
そして、n番目のNつ組候補に関する情報を読み込む(ステップS1103)。読み込まれる情報を以下に示す。
・H(n,*):n番目のNつ組候補の*番目の見出し単語候補
・D(n):n番目のNつ組候補のデータ単語候補
・GH(n,*):H(n,*)の*番目の論理要素グループ番号
・EH(n,*):H(n,*)の*番目の論理要素番号
・GD(n):D(n)の論理要素グループ番号
・ED(n):D(n)の論理要素番号
つぎに、二つ組候補の番号mをm=1とし(ステップS1104)、m番目の二つ組候補に関する情報を読み込む(ステップS1105)。読み込まれる情報を以下に示す。
・H(m):m番目の二つ組候補の見出し論理要素の単語候補
・D(m):m番目の二つ組候補のデータ論理要素の単語候補
・GH(m):H(m)の論理要素グループ番号
・EH(m):H(m)の論理要素番号
・GD(m):D(m)の論理要素グループ番号
・ED(m):D(m)の論理要素番号
そして、D(n)とD(m)は同一の文字番号列から構成されているか否かを判断する(ステップS1106)。同一の文字番号列で構成されていない場合(ステップS1106:No)、図12のステップS1204に移行する。一方、同一の文字番号列から構成されている場合(ステップS1106:Yes)、GD(n)とGD(m)が同一であるか否かを判断する(ステップS1107)。
同一でない場合(ステップS1107:No)、図12のステップS1204に移行する。一方、同一である場合(ステップS1107:Yes)、GD(n)とGD(m)が同一であるか否かを判断する(ステップS1108)。同一でない場合(ステップS1108:No)、図12のステップS1204に移行する。一方、同一である場合(ステップS1108:Yes)、フラグfをf=0に設定する(ステップS1109)。
そして、Nつ組候補の親番号iをi=1とし(ステップS1110)、GH(n,*)とGH(m)とが異なるか否かを判断する(ステップS1111)。同一である場合(ステップS1111:No)、フラグfをf=1に設定し(ステップS1112)、ステップS1113に移行する。一方、異なる場合(ステップS1111:Yes)、親番号iをインクリメントする(ステップS1113)。
このあと、i<Nであるか否かを判断し(ステップS1114)、i<Nである場合(ステップS1114:Yes)、ステップS1111に戻る。一方、i<Nでない場合(ステップS1114:No)、すなわち、i=Nとなった場合、図12のステップS1201に移行する。
そして、図12において、フラグf=0であるか否かを判断する(ステップS1201)。f=0でない場合(ステップS1201:No)、ステップS1204に移行する。一方、f=0である場合(ステップS1201:Yes)、(N+1)つ組候補として保存して(ステップS1202)、(N+1)つ組候補数dをインクリメントする(ステップS1203)。
そして、ステップS1204において、二つ組候補の番号mをインクリメントして(ステップS1204)、m≦mmaxであるか否かを判断する(ステップS1205)。ここで、mmaxは二つ組候補の総数である。m≦mmaxである場合(ステップS1205:Yes)、図11に示したステップS1105に移行する。
一方、m≦mmaxでない場合(ステップS1205:No)、Nつ組候補の番号nをインクリメントして(ステップS1206)、n≦nmaxであるか否かを判断する(ステップS1207)。ここで、nmaxはNつ組候補の総数である。n≦nmaxである場合(ステップS1207:Yes)、図11に示したステップS1103に移行する。一方、n≦nmaxでない場合(ステップS1207:No)、図10に示したステップS1003に移行して、(N+1)つ組候補生成処理を終了する。
[確定組除去部505の詳細説明]
つぎに、確定組除去部505について説明する。図13および図14は、(N+1)つ組候補の確定組除去内容を示す説明図である。(N+1)つ組候補生成部によって生成された(N+1)つ組候補群には、候補が確定できているものとできていないものが存在する。これを、候補が確定できるものから決定し、決定された(N+1)つ組候補を(N+1)つ組候補群から除去することで、再帰的に複数の見出しに対応するデータを決定する。
図13および図14では、N=2、すなわち、見出し項目として2つの項目(品目と年度)を用いて得られる三つ組候補を説明する。太線楕円は、選択見出し項目であり、細線楕円は、選択見出し項目により特定される可能性があるデータである。太線楕円と細線楕円を結ぶ線分が組み合わせであることを示している。この太線楕円と細線楕円との組み合わせが三つ組候補となる。まず、図13について説明する。
図13は、前向き処理を示している。(A)は、論理要素グループG1の見出し単語候補“旅費”と、論理要素グループG2の見出し単語候補“17年度”とを選択した場合の三つ組候補を示している。すなわち、図7(A)と図7(B)に共通する9個のデータが三つ組候補を構成する。この段階では、見出し単語候補“旅費”および“17年度”を含み三つ組候補は、9組存在する。
(B)は、(A)に示した状態から、見出し単語候補“旅費”および“17年度”と三つ組候補を構成する9個のデータ単語候補“100,000”〜“8,000”の中から、データ単語候補“100,000”が確定・除去する状態を示している。未確定のデータ単語候補については、多重化された細線楕円で示している。データ単語候補は9個存在するが、データ単語候補“100,000”は、見出し単語候補“旅費”および“17年度”でしか特定されず、他の見出し単語候補の組み合わせでは候補にあげられないため、自動的に(N+1)つ組として確定し、(N+1)つ組候補群から除去される。すなわち、17年度の旅費は100,000であると確定する。
(C)は、(B)で未確定な残余の8個のデータ単語候補の中から、見出し単語候補“旅費”および“18年度”と三つ組候補を構成するデータ単語候補“110,000”と、見出し単語候補“設備費”および“17年度”と三つ組候補を構成するデータ単語候補“400,000”を確定・除去する状態を示している。いずれの三つ組み候補も、“年度”および“17年度”を除く他の見出し単語候補の組み合わせでは候補にあげられないため、自動的に(N+1)つ組として確定し、(N+1)つ組候補群から除去される。すなわち、17年度の設備費は400,000であると確定し、18年度の旅費は110,000であると確定する。
(D)は、前向き処理の処理順序を示している。(D)のように、最も右下のデータから左上に向かって、処理することを前向き処理といい、データ単語候補が1つずつ削減される。したがって、各データ単語候補を特定する論理要素グループG1,G2の見出し単語候補を一意に特定することができる。2巡目〜4巡目については複数のデータ単語候補が存在するが、同一巡目内であればどのデータ単語候補を先に確定させてもよい。
図14は、後ろ向き処理を示している。(A)は、論理要素グループG1の見出し単語候補“消耗品費”と論理要素グループG2の見出し単語候補“19年度”と、この2つの見出し単語候補により特定されるデータ単語候補“8,000”とから構成される(N+1)つ組候補である。データ単語候補が1つしかないため、自動的に(N+1)つ組として確定し、(N+1)つ組候補群から除去される。すなわち、19年度の消耗品費は8,000であると確定する。
(B)は、論理要素グループG1の見出し単語候補“消耗品費”と論理要素グループG2の見出し単語候補“18年度”と、この2つの見出し単語候補により特定される2つのデータ単語候補“5,000”、“8,000”とから構成される(N+1)つ組候補である。データ単語候補が2つあるが、データ単語候補“8,000”については、(A)で確定済みなので、他方のデータ単語候補“5,000”に絞り込まれる。したがって、自動的に(N+1)つ組として確定し、(N+1)つ組候補群から除去される。すなわち、18年度の消耗品費は5,000であると確定する。
(C)は、後ろ向き処理の処理順序を示している。(C)のように、最も右下のデータから左上に向かって、処理することを後ろ向き処理といい、データ単語候補が1つずつ削減される。したがって、各データ単語候補を特定する論理要素グループG1,G2の見出し単語候補を一意に特定することができる。2巡目〜4巡目については複数のデータ単語候補が存在するが、同一巡目内であればどのデータ単語候補を先に確定させてもよい。
図15は、確定組除去処理(ステップS606)の詳細な処理手順を示すフローチャートである。図15において、まず、図13に示した前向き処理を実行し(ステップS1501)、(N+1)つ組候補除去処理を実行する(ステップS1502)。このあと、図14に示した後ろ向き処理を実行し(ステップS1503)、(N+1)つ組候補除去処理を実行する(ステップS1504)。これにより確定組が保持され、ステップS607に移行する。
なお、確定組除去処理(ステップS606)では、前向き処理(ステップS1501)とその(N+1)つ組候補除去処理(ステップS1502)のみ実行してもよく、後ろ向き処理(ステップS1503)とその(N+1)つ組候補除去処理(ステップS1504)のみ実行することとしてもよい。後ろ向き処理(ステップS1503)に先立って、前向き処理(ステップS1501)とその(N+1)つ組候補除去処理(ステップS1502)を実行しておくことにより、後ろ向き処理(ステップS1503)に送る(N+1)つ組候補の出力数を削減することができ、後ろ向き処理(ステップS1503)において、効率的に確定組を除去することができる。
図16は、図13に示した前向き処理の詳細な処理手順を示すフローチャートである。図16において、まず、除去候補数iをi=0とし(ステップS1601)、入力(N+1)つ組候補番号nをn=1とする(ステップS1602)。検出フラグfをf=0とし(ステップS1603)、出力(N+1)つ組候補番号mをm=1とする(ステップS1604)。そして、m≠nであるか否かを判断する(ステップS1605)。
m≠nでない場合(ステップS1605:No)、ステップS1608に移行する。一方、m≠nである場合(ステップS1605:Yes)、n番目のデータ単語候補の文字番号に、m番目のデータ単語候補の文字番号が含まれているか否かを判断する(ステップS1606)。含まれている場合(ステップS1606:Yes)、検出フラグfをf=1にして(ステップS1607)、ステップS1608に移行する。一方、含まれていない場合(ステップS1606:No)、検出フラグfはf=0のままでステップS1608に移行する。
ステップS1608では、出力(N+1)つ組候補番号mをインクリメントして(ステップS1608)、m≦mmaxであるか否かを判断する(ステップS1609)。ここで、mmaxとは、(N+1)つ組候補数である。m≦mmaxである場合(ステップS1609:Yes)、ステップS1605に移行する。一方、m≦mmaxでない場合(ステップS1609:No)、検出フラグf=0であるか否かを判断する(ステップS1610)。
f=0でない場合(ステップS1610:No)、ステップS1613に移行する。一方、f=0である場合(ステップS1610:Yes)、n番目の(N+1)つ組候補を除去候補として保存する(ステップS1611)。このあと、除去候補数iをインクリメントして(ステップS1612)、入力(N+1)つ組候補番号nをインクリメントして(ステップS1613)、n≦mmaxであるか否かを判断する(ステップS1614)。
n≦mmaxである場合(ステップS1614:Yes)、ステップS1603に戻る。一方、n≦mmaxでない場合(ステップS1614:No)、前向き処理を終了して、ステップS1502に移行する。
図17は、(N+1)つ組候補除去処理(ステップS1502またはS1504)の詳細な処理手順を示すフローチャートである。図17において、まず、入力(N+1)つ組候補番号nをn=1とし(ステップS1701)、出力(N+1)つ組候補番号mをm=1とし(ステップS1702)、除去配列番号pをp=1とする(ステップS1703)。
ここで、入力(N+1)つ組候補とは、前段の処理の出力結果である。すなわち、(N+1)つ組候補除去処理がステップS1502である場合には、入力(N+1)つ組候補とは、図16に示した前向き処理(ステップS1501)から出力された(N+1)つ組候補であり、この(N+1)つ組候補除去処理(ステップS1502)により、(N+1)つ組候補を確定させる。
一方、(N+1)つ組候補除去処理がステップS1504である場合には、入力(N+1)つ組候補とは、図18に示す後ろ向き処理(ステップS1503)から出力された(N+1)つ組候補であり、この(N+1)つ組候補除去処理(ステップS1504)により、(N+1)つ組候補を確定させる。
図17に戻って、ステップS1703のあと、e(p)=nであるか否かを判断する(ステップS1704)。ここで、e(p)とは、除去配列番号pの入力(N+1)つ組候補(図16のステップS1611で保存された除去候補)である。
e(p)=nである場合(ステップS1704:Yes)、ステップS1707に移行する。一方、e(p)=nでない場合(ステップS1704:No)、n番目の入力(N+1)つ組候補を、出力(N+1)つ組候補群にコピーする(ステップS1705)。このあと、出力(N+1)つ組候補番号mをインクリメントして(ステップS1706)、除去配列番号pをインクリメントする(ステップS1707)。そして、p≦pmaxであるか否かを判断する(ステップS1708)。ここで、pmaxとは除去候補となった(N+1)つ組候補数である。
p≦pmaxである場合(ステップS1708:Yes)、ステップS1704に戻る。一方、p≦pmaxでない場合(ステップS1708:No)、入力(N+1)つ組候補番号nをインクリメントして(ステップS1709)、n≦nmaxであるか否かを判断する(ステップS1710)。ここで、nmaxとは、入力(N+1)つ組候補数である。
n≦nmaxである場合(ステップS1710:Yes)、ステップS1702に戻る。一方、n≦nmaxでない場合(ステップS1710:No)、ステップS1705で得られた出力(N+1)つ組候補群を出力する(ステップS1711)。このあと、(N+1)つ組候補除去処理がステップS1502であればステップS1503に移行し、ステップS1504であればステップS607に移行する。
図18は、図14に示した後ろ向き処理の詳細な処理手順を示すフローチャートである。図18において、まず、除去候補数iをi=0とし(ステップS1801)、入力(N+1)つ組候補番号nをn=1とする(ステップS1802)。検出フラグfをf=0とし(ステップS1803)、出力(N+1)つ組候補番号mをm=1とする(ステップS1804)。そして、m≠nであるか否かを判断する(ステップS1805)。
m≠nでない場合(ステップS1805:No)、ステップS1807に移行する。一方、m≠nである場合(ステップS1805:Yes)、見出し論理要素比較処理を実行する(ステップS1806)。見出し論理要素比較処理(ステップS1806)については後述する。
見出し論理要素比較処理(ステップS1806)のあと、(N+1)つ組候補番号mをインクリメントし(ステップS1807)、m≦nmaxであるか否かを判断する(ステップS1808)。ここで、nmaxとは、(N+1)つ組候補数である。m≦nmaxである場合(ステップS1808:Yes)、ステップS1805に戻る。一方、m≦nmaxでない場合(ステップS1808:No)、検出フラグfがf=0であるか否かを判断する(ステップS1809)。
f=0でない場合(ステップS1809:No)、ステップS1812に移行する。一方、f=0である場合(ステップS1809:Yes)、n番目の(N+1)つ組候補を除去候補として保存する(ステップS1810)。このあと、除去候補数iをインクリメントして(ステップS1811)、(N+1)つ組候補番号nをインクリメントして(ステップS1812)、n≦mmaxであるか否かを判断する(ステップS1813)。
n≦mmaxである場合(ステップS1813:Yes)、ステップS1803に戻る。一方、n≦mmaxでない場合(ステップS1813:No)、後ろ向き処理を終了して、ステップS1504に移行する。
図19は、図18に示した見出し論理要素比較処理(ステップS1806)の詳細な処理手順を示すフローチャートである。図19において、(N+1)つ組候補番号nの見出し番号jをj=1とし(ステップS1901)、(N+1)つ組候補番号mの見出し番号kをk=1とし(ステップS1902)、見出し同値フラグffをff=0とする(ステップS1903)。
そして、見出し番号jの見出し単語候補の論理要素が見出し番号kの見出し単語候補の論理要素に等しいか否かを判断する(ステップS1904)。等しくない場合(ステップS1904:No)、見出し同値フラグffをインクリメントして(ステップS1906)、ステップS1909に移行する。一方、等しい場合(ステップS1904:Yes)、見出し番号jの見出し単語候補の文字番号列と見出し番号kの見出し単語候補の文字番号列とが等しいか否かを判断する(ステップS1905)。
等しい場合(ステップS1905:Yes)、見出し同値フラグffをインクリメントして(ステップS1906)、ステップS1909に移行する。一方、等しくない場合(ステップS1905:No)、見出し番号kをインクリメントして(ステップS1907)、k≦kmaxであるか否かを判断する(ステップS1908)。ここで、kmaxは、見出し数である。k≦kmaxである場合(ステップS1908:Yes)、ステップS1903に戻り、見出し同値フラグがff=0にリセットされる。
一方、k≦kmaxでない場合(ステップS1908:No)、見出し番号jをインクリメントして(ステップS1909)、j=jmaxであるか否かを判断する(ステップS1910)。j=jmaxでない場合(ステップS1910:No)、見出し同値フラグffがff=kmaxであるか否かを判断する(ステップS1911)。ここで、kmaxは、見出し数である。ff=kmaxでない場合(ステップS1911:No)、見出し論理要素比較処理(ステップS1806)を終了して、ステップS1807に移行する。一方、ff=kmaxである場合(ステップS1911:Yes)、検出フラグfをf=1に設定して(ステップS1912)、見出し論理要素比較処理(ステップS1806)を終了して、ステップS1807に移行する。
このように、上述した実施の形態では、図1に示したような帳票100の論理構造を認識することができる。また、上述した実施の形態では、表や見出しの順序それにレイアウトに依存しない帳票100についても適用することができる。
図20は、帳票の他の例を示す説明図である。(A)に示す帳票2001は、17年度の旅費、設備費、消耗品費を1行で記載した帳票である。(B)に示す帳票2002は、17年度の旅費、設備費、消耗品費と、18年度の旅費、設備費、消耗品費と、を2行で記載した帳票である。
図21は、図20(A)に示した帳票2001から得られる二つ組候補を示す説明図である。図21中、太線楕円は、見出し単語候補をあらわし、細線楕円はデータ単語候補をあらわす。帳票2001が1行であらわされている場合、見出し単語候補と二つ組を構成する可能性のあるデータ単語候補は、その見出し単語候補の右方向に位置することとなる。この性質を利用して二つ組候補を生成する。
図21では、二つ組候補群2101はデータ単語候補が3つ存在するため、3つの二つ組候補({17年度、100,000}、{17年度、400,000}、{17年度、3,000})が生成される。二つ組候補群2102もデータ単語候補が3つ存在するため、3つの二つ組候補({旅費、100,000}、{旅費、400,000}、{旅費、3000})が生成される。
二つ組候補群2103はデータ単語候補が2つ存在するため、2つの二つ組候補({設備費、400,000}、{設備費、3,000})が生成される。二つ組候補群2104は、データ単語候補が1つ存在するため、そのまま二つ組{消耗品費、3,000})として決まる。
図22は、図20(A)に示した帳票2001から得られる(N+1)つ組候補を示す説明図である。ここでは、2種類の見出し論理要素(品目と年度)を用いているため、N=2である。(A)では、三つ組候補群2201はデータ単語候補が3つ存在するため、3個の三つ組候補({17年度、旅費、100,000}、{17年度、旅費、400,000}、{17年度、旅費、3,000})が生成される。
この3個の三つ組候補のうち、{17年度、旅費、100,000}のデータ単語候補“100,000”は、他の三つ組候補群2202,2203には用いられていないため、三つ組候補のうち、{17年度、旅費、100,000}は前向き処理(ステップS1501)で確定・除去される。
(B)では、三つ組候補群2202はデータ単語候補が2つ存在するため、2個の三つ組候補({17年度、設備費、400,000}、{17年度、設備費、3,000})が生成される。(C)では、三つ組候補群2203はデータ単語候補が1つ存在するため、そのまま三つ組{17年度、消耗品費、3,000})が生成される。この三つ組候補(群)2203は、データ単語候補が“3,000”のみであるため、後ろ向き処理(ステップS1503)で確定・除去される。
図23は、図20(B)に示した帳票2002から得られる二つ組候補を示す説明図である。図23中、太線楕円は、見出し単語候補をあらわし、細線楕円はデータ単語候補をあらわす。帳票2002が複数行(ここでは2行)であらわされている場合、見出し単語候補と二つ組を構成する可能性のあるデータ単語候補は、その見出し単語候補の右方向、下方向、または右下方向に位置することとなる。この性質を利用して二つ組候補を生成する。
〔見出し単語候補評価部506の詳細説明〕
図23では、同一のデータ単語候補“5,000”に対して見出し単語候補として“18年度”および“消耗品費”を選択した場合の三つ組候補を示している。(A)は、17年度の行の"消耗品費"を選択した場合の三つ組候補2301を示しており、(B)は、18年度の行の“消耗品費”を選択した場合の三つ組候補2302を示している。
このように、同一の見出し単語候補“消耗品費”が複数存在する場合は、三つ組候補を一意に特定することができなくなる。そのため、同一のデータ単語候補“5,000”の位置を基準とした場合の各見出し単語候補“消耗品費”の位置により、どの見出し単語候補が正しいかを判断する。このような処理は、図5に示した見出し単語候補評価部506がおこなう。
図24は、同一の見出し単語候補“消耗品費”が複数存在する場合の見出し単語候補の評価手法を示す説明図である。帳票では、見出し単語候補により特定される可能性のあるデータ単語候補は、その見出し単語候補の右方向、下方向、または右下方向に位置すれば特定される可能性があるが、図24のように、右方向と右下方向で競合する場合、右方向を優先して採用する。同様に、下方向と右下方向で競合する場合も下方向を優先して採用する。すなわち、データ単語候補からみて水平または垂直方向(またはそれに近い方向)に位置する見出し単語候補を優先する。
より具体的には、見出し単語候補の外接矩形2402,2403の各重心g2,g3とデータ単語候補の外接矩形2401の重心g1とを結ぶ線分L12,L13を求め、データ単語候補の重心g1を通る水平線Lに対し線分L12,L13が垂直または水平にどの程度近いか、すなわち、角度θ12,θ13を評価することによって妥当な見出し単語候補を選択することができる。
角度θ12は、水平線Lと線分L12とのなす角度であり、角度θ13は、水平線Lと線分L13とのなす角度である。そして、各角度のsin2θを求める。θには、角度θ12,θ13を代入する。その結果、sin2θの値が0となった場合、水平または垂直(またはそれに近い)と判断して、その見出し単語候補を、妥当な見出し単語候補として選択する。
図24に示した例では、θ13が180度であるため、sin2θの値が0となり、外接矩形2403の見出し単語候補が選ばれる。すなわち、図23では、(B)に示した三つ組候補が正解となる。
図25は、見出し単語候補評価処理(ステップS607)の詳細な手順を示すフローチャートである。図25において、まず、評価対象候補数iをi=0とし(ステップS2501)、(N+1)つ組候補番号nをn=1とし(ステップS2502)、検出フラグfをf=0とし(ステップS2503)、もう一方の(N+1)つ組候補番号mをm=1とする(ステップS2504)。
そして、番号nの(N+1)つ組候補と番号mの(N+1)つ組候補とは、同じ論理要素グループの同じ論理要素であるか否かを判断する(ステップS2505)。同じ論理要素グループの同じ論理要素でない場合(ステップS2505:No)、ステップS2513に移行する。一方、同じ論理要素グループの同じ論理要素である場合(ステップS2505:Yes)、m≠nであるか否かを判断する(ステップS2506)。
m≠nでない場合(ステップS2506:No)、ステップS2513に移行する。m≠nである場合(ステップS2506:Yes)、番号nの(N+1)つ組候補のデータ単語候補の文字番号に、番号mの(N+1)つ組候補のデータ単語候補の文字番号が含まれているか否かを判断する(ステップS2507)。
含まれていない場合(ステップS2507:No)、ステップS2513に移行する。一方、含まれている場合(ステップS2507:Yes)、番号nの(N+1)つ組候補と番号mの(N+1)つ組候補との間で、論理要素グループ、論理要素、文字番号が一致しない見出し単語候補数を計数する(ステップS2508)。
そして、見出し単語候補数の差が1つ以下であるか否かを判断する(ステップS2509)。差が1つ以下でない場合(ステップS2509:No)、ステップS2513に移行する。一方、差が1つ以下である場合(ステップS2509:Yes)、その見出し単語候補とデータ単語候補との角度を算出する(ステップS2510)。そして、番号nの(N+1)つ組候補の見出し単語候補の位置が、データ単語候補の位置に対して水平または垂直(または近い)か否かを判断する(ステップS2511)。
水平または垂直(または近い)でない場合(ステップS2511:No)、ステップS2513に移行する。一方、水平または垂直(または近い)である場合(ステップS2511:Yes)、検出フラグfをf=1とし(ステップS2512)、mをインクリメントする(ステップS2513)。
そして、m≦mmaxであるか否かを判断する(ステップS2514)。ここで、mmaxとは、(N+1)つ組候補数である。m≦mmaxである場合(ステップS2514:Yes)、ステップS2505に戻る。一方、m≦mmaxでない場合(ステップS2514:No)、検出フラグfがf=1であるか否かを判断する(ステップS2515)。
f=1でない場合(ステップS2515:No)、除去候補対象外であるため、ステップS2517に移行する。一方、f=1である場合(ステップS2515:Yes)、そのn番目の(N+1)つ組候補を除去候補e(p)として保存して(ステップS2516)、番号nをインクリメントする(ステップS2517)。
このあと、n≦mmaxであるか否かを判断する(ステップS2518)。n≦mmaxである場合(ステップS2518:Yes)、ステップS2504に戻る。一方、n≦mmaxでない場合(ステップS2518:No)、見出し単語候補評価処理を終了する。このステップS2516で保存された除去候補e(p)が確定した(N+1)つ組として出力されることとなる。
図26は、同一の見出し単語候補“消耗品費”が複数存在する場合の見出し単語候補の他の評価手法を示す説明図である。図26では、一組の見出し単語候補の外接矩形およびデータ単語候補の外接矩形を包含するあらたな外接矩形の大きさ(面積)により、妥当な見出し単語候補を採用する例である。外接矩形が小さい方の見出し単語候補が採用される。
外接矩形2601は、データ単語候補の外接矩形2401と見出し単語候補の外接矩形2402に外接する矩形であり、外接矩形2602は、データ単語候補の外接矩形2401と見出し単語候補の外接矩形2403に外接する矩形である。両外接矩形2601,2602を比較すると、外接矩形2602のほうが小さいので、その外接矩形2602に含まれる外接矩形2403の見出し単語候補が妥当な見出し単語候補として選ばれる。
図27は、見出し単語候補評価処理(ステップS607)の詳細な他の手順を示すフローチャートである。図27のフローチャートは、図25のフローチャートのステップS2510,S2511がステップS2710,S2711に置き換わっただけで、残余のステップは図25と同一である。
ステップS2710では、各番号n,mの見出し単語候補を検出し、共通のデータ単語候補を組み合わせて、番号nの見出し単語候補の外接矩形およびデータ単語候補の外接矩形を包含する番号nの外接矩形と、番号mの見出し単語候補の外接矩形およびデータ単語候補の外接矩形を包含する番号mの外接矩形と生成し、両外接矩形の面積を算出する。そして、ステップS2711に移行する。
ステップS2711では、番号nの外接矩形の面積が番号mの外接矩形の面積より小さいか否かを判断する。小さくなければ(ステップS2711:No)、ステップS2513に移行する。一方、小さければ(ステップS2711:Yes)、ステップS2512に移行する。後の処理は図25と同様である。
このように、見出し単語候補評価部506によれば、同一の見出し単語候補が複数存在しても、妥当な見出し単語候補を特定することができ、帳票の論理構造認識の高精度化を測ることができる。
〔データ単語候補評価部507の詳細説明〕
つぎに、図5に示したデータ単語候補評価部507の詳細説明をする。図28は、帳票の別の例を示す説明図である。(A)に示すように、帳票2800の見出し項目(“旅費”、“設備費”)やデータ(“100,000”、“400,000”)には、2段併記されている箇所が含まれている。人間が見ると、旅費が100,000(円)であり、設備費が400,000(円)であることが直感的に分かるが、この論理構造を上述したように認識する場合、一意に特定することができない。
図28の例では、見出し項目2801の見出し単語候補は“17年度”のみであるが、見出し項目2802の見出し単語候補は2つ("旅費"、"設備費")存在する。同様に、データ項目2803のデータ単語候補も2つ("100,000"、"400,000")存在する。したがって、三つ組候補としては、(B)〜(E)の4通り存在する。図28中、太線楕円は、見出し単語候補をあらわし、細線楕円はデータ単語候補をあらわす。
(B)は、見出し単語候補“17年度”と見出し単語候補“旅費”とデータ単語候補“100,000”からなる三つ組候補28Bを示している。(C)は、見出し単語候補“17年度”と見出し単語候補“設備費”とデータ単語候補“400,000”からなる三つ組候補28Cを示している。
(D)は、見出し単語候補“17年度”と見出し単語候補“旅費”とデータ単語候補“400,000”からなる三つ組候補28Dを示している。(E)は、見出し単語候補“17年度”と見出し単語候補“設備費”とデータ単語候補“100,000”からなる三つ組候補28Eを示している。
三つ組候補群28B〜28Eを特定したら、見出し項目2802から選ばれた見出し単語候補とデータ項目から選ばれたデータ単語候補との間の距離を算出し、三つ組候補群28B〜28Eの中から、算出距離が同一となる三つ組候補の組み合わせを特定する。
図29は、三つ組候補の組み合わせの評価例を示す説明図である。(A)は、三つ組候補群28B,28Cの組み合わせの評価例であり、(B)は、三つ組候補群28D,28Eの組み合わせの評価例である。各三つ組候補群28B〜28Eで算出された距離をそれぞれdb,dc,dd,deとする。(A)では、距離db,dcが等しく、(B)では、距離dd,deの長さは異なる。したがって、三つ組候補群28B,28Cが妥当な三つ組候補として選ばれることとなる。なお、実際に妥当な三つ組候補を選択する場合、見出し単語候補とデータ単語候補との重心間の距離を求め、分散が小さい三つ組候補が選ばれることとなる。
図30は、データ単語候補評価処理(ステップS608)の詳細な手順を示すフローチャートである。図30において、まず、(N+1)つ組候補番号nをn=1とし(ステップS3001)、候補番号nと同時に成立する(N+1)つ組候補(同時成立候補)の数tbl_maxを、tbl_max(n)=0に設定する(ステップS3002)。そして、候補番号テーブルtbl(i,j)(ただし、i=1〜n−1,j=1〜tbl_max(i))に候補番号nがあるか否かを判断する(ステップS3003)。
候補番号nがある場合(ステップS3003:Yes)、ステップS3014に移行する。一方、候補番号nがない場合(ステップS3003:No)、候補番号テーブルtbl(i,j)を、tbl(n,1)=1に設定し(ステップS3004)、tbl_max(n)=1に設定する(ステップS3005)。
このあと、候補番号nの(N+1)つ組候補の同時成立候補の候補番号mをm=1に設定に設定する(ステップS3006)。そして、同時成立可能性確認処理を実行する(ステップS3007)。この同時成立可能性確認処理(ステップS3007)については後述する。
このあと、同時成立可能性フラグをfとし、同時成立可能性フラグfがf=1であるか否かを判断する(ステップS3008)。f=1でない場合(ステップS3008:No)、ステップS3011に移行する。一方、f=1である場合(ステップS3008:Yes)、同時成立候補数tbl_max(n)を、tbl_max(n)=tbl_max(n)+1とし(ステップS3009)、候補番号テーブルtbl(i,j)を、tbl(n,tbl_max(n))=mに設定する(ステップS3010)。
このあと、同時成立候補番号mをインクリメントする(ステップS3011)。そして、m≦nmaxであるか否かを判断する(ステップS3012)。ここで、nmaxは、(N+1)つ組候補数である。m≦nmaxである場合(ステップS3012:Yes)、ステップS3007に移行する。一方、m≦nmaxでない場合(ステップS3012:No)、重心距離分散算出処理を実行する(ステップS3013)。この重心距離分散算出処理(ステップS3013)については後述する。
このあと、候補番号nをインクリメントし(ステップS3014)、n≦nmaxであるか否かを判断する(ステップS3015)。n≦nmaxである場合(ステップS3015:Yes)、ステップS3002に移行する。一方、n≦nmaxでない場合(ステップS3015:No)、最小分散選択処理を実行する(ステップS3016)。この最小分散選択処理(ステップS3016)については後述する。
このあと、最小分散選択処理(ステップS3016)で選択された(N+1)つ組候補番号tbl(min_n,*)のtbl_max(min_n)個の候補を除去候補としてコピーする(ステップS3017)。そして、ステップS609へ移行する。
図31は、同時成立可能性確認処理(ステップS3007)の詳細な処理手順を示すフローチャートである。図31において、まず、同時成立可能性フラグfをf=0とし(ステップS3101)、候補番号nの(N+1)つ組候補のデータ単語候補の論理要素グループと候補番号mの(N+1)つ組候補のデータ単語候補の論理要素グループが等しいか否かを判断する(ステップS3102)。等しくない場合(ステップS3102:No)、同時成立可能性フラグfをf=0にして(ステップS3114)、ステップS3008に移行する。
一方、等しい場合(ステップS3102:Yes)、候補番号nの(N+1)つ組候補のデータ単語候補の論理要素と候補番号mの(N+1)つ組候補のデータ単語候補の論理要素が等しいか否かを判断する(ステップS3103)。等しい場合(ステップS3103:Yes)、同時成立可能性フラグfをf=0にして(ステップS3114)、ステップS3008に移行する。
一方、等しくない場合(ステップS3103:No)、候補番号nの(N+1)つ組候補のデータ単語候補の文字番号列と候補番号mの(N+1)つ組候補のデータ単語候補の文字番号列に同一の文字番号が存在するか否かを判断する(ステップS3104)。存在する場合(ステップS3104:Yes)、同時成立可能性フラグfをf=0にして(ステップS3114)、ステップS3008に移行する。
一方、存在しない場合(ステップS3104:No)、候補番号nの見出し番号pをp=0とし(ステップS3105)、候補番号mの見出し番号qをq=0とする(ステップS3106)。そして、見出し番号pの論理要素グループと見出し番号qの論理要素グループとが等しいか否かを判断する(ステップS3107)。等しくない場合(ステップS3107:No)、同時成立可能性フラグfをf=0にして(ステップS3114)、ステップS3008に移行する。
一方、等しい場合(ステップS3107:Yes)、見出し番号pの論理要素と見出し番号qの論理要素とが等しいか否かを判断する(ステップS3108)。等しい場合(ステップS3108:Yes)、ステップS3111に移行する。
一方、等しくない場合(ステップS3108:No)、同時成立可能性フラグfをf=1にして(ステップS3109)、見出し番号qをインクリメントする(ステップS3110)。このあと、q≦pmaxであるか否かを判断する(ステップS3111)。ここで、pmaxは、見出し単語候補数である。
q≦pmaxである場合(ステップS3111:Yes)、ステップS3107に戻る。q≦pmaxでない場合(ステップS3111:No)、見出し番号pをインクリメントして、p≦pmaxであるか否かを判断する(ステップS3112)。p≦pmaxである場合(ステップS3113:Yes)、ステップS3106に戻る。一方、p≦pmaxでない場合(ステップS3113:No)、ステップS3008に移行する。
図32−1は、重心距離分散算出処理(ステップS3013)の詳細な処理手順を示すフローチャートである。図32−1において、まず、平均をあらわす変数aをa=0とし(ステップS3201)、分散をあらわす変数bをb=0とし(ステップS3202)、対象要素抽出処理を実行する(ステップS3203)。対象要素抽出処理(ステップS3203)については後述する。
このあと、j=0とし(ステップS3204)、同時成立候補の候補番号kをk=tbl(n,j)とする(ステップS3205)。そして、他の同時成立候補とは異なる単語候補を検索する(ステップS3206)。このあと、x=DGX(k)−DHX(k,l)を算出する(ステップS3207)。DGX(k)とは、候補番号kの同時成立候補のデータ単語候補の重心のX座標値であり、DHX(k,l)は、候補番号kの同時成立候補のl番目の見出し単語候補の重心のX座標値である。
そして、同様に、y=DGY(k)−DHY(k,l)を算出する(ステップS3208)。DGY(k)とは、候補番号kの同時成立候補のデータ単語候補の重心のY座標値であり、DHY(k,l)は、候補番号kの同時成立候補のl番目の見出し単語候補の重心のY座標値である。このあと、算出されたxおよびyを用いて、候補番号kの同時成立候補のl番目の見出し単語候補とデータ単語候補との間の距離dを算出する(ステップS3209)。
そして、算出された距離dを、平均をあらわす変数aに加算して変数aを更新し(ステップS3210)、分散をあらわす変数bに距離dの二乗を加算して変数bを更新し(ステップS3211)、jをインクリメントする(ステップS3212)。そして、j≦tbl_max(n)であるか否かを判断する(ステップS3213)。
j≦tbl_max(n)である場合(ステップS3213:Yes)、ステップS3205に戻る。一方、j≦tbl_max(n)でない場合(ステップS3213:No)、変数aを平均mean(n)として保存し(ステップS3214)、変数bを分散var(n)として保存する(ステップS3215)。これにより、重心距離分散算出処理を終了して、ステップS3014に移行する。
図32−2は、対象要素抽出処理(ステップS3203)の詳細な処理手順を示すフローチャートである。図32−2において、まず、対象要素番号l(*,*)を、l(*,*)=0とし(ステップS3221)、候補番号テーブルtbl(n,l)の見出し番号pをp=1とし(ステップS3222)、同時成立候補番号zをz=2とし(ステップS3223)、候補番号テーブルtbl(n,z)の見出し番号qをq=1とする(ステップS3224)。
見出し番号pの論理要素グループと見出し番号qの論理要素グループとが等しいか否かを判断し(ステップS3225)、等しくない場合(ステップS3225:No)、ステップS3230に移行する。一方、等しい場合(ステップS3225:Yes)、見出し番号pの論理要素と見出し番号qの論理要素とが等しいか否かを判断し(ステップS3226)、等しくない場合(ステップS3226:No)、l(p,z)=qとし(ステップS3227)、l(p,l)=pとし(ステップS3228)、ll=pとして(ステップS3229)、ステップS3232に移行する。
一方、ステップS3226において、見出し番号pの論理要素と見出し番号qの論理要素とが等しい場合(ステップS3226:Yes)、見出し番号qをインクリメントし(ステップS3230)、q≦pmaxであるか否かを判断する(ステップS3231)。pmaxは見出し数である。
q≦pmaxである場合(ステップS3231:Yes)、ステップS3225に戻る。一方、q≦pmaxでない場合(ステップS3231:No)、見出し番号pをインクリメントして(ステップS3232)、p≦pmaxであるか否かを判断する(ステップS3233)。p≦pmaxである場合(ステップS3233:Yes)、ステップS3224に戻る。一方、p≦pmaxでない場合(ステップS3233:No)、対象要素抽出処理を終了する。
図33は、最小分散選択処理(ステップS3016)の詳細な処理手順を示すフローチャートである。図33において、まず、最小分散値minをmin=0とし(ステップS3301)、最小分散候補番号min_n=0とし(ステップS3302)、(N+1)つ組候補の候補番号nをn=1とする(ステップS3303)。
そして、同時成立候補数tbl_max(n)が、tbl_max(n)>0であるか否かを判断する(ステップS3304)。tbl_max(n)>0でない場合(ステップS3304:No)、ステップS3308に移行する。一方、tbl_max(n)>0である場合(ステップS3304:Yes)、最小分散値minがmin>var(n)であるか否かを判断する(ステップS3305)。
min>var(n)でない場合(ステップS3305:No)、ステップS3308に移行する。一方、min>var(n)である場合(ステップS3305:Yes)、最小分散値minをmin=var(n)とし(ステップS3306)、最小分散候補番号min_nをmin_n=nとする(ステップS3307)。そして、nをインクリメントし(ステップS3308)、n≦nmaxであるか否かを判断する(ステップS3309)。nmaxは(N+1)つ組候補数である。n≦nmaxである場合(ステップS3309:Yes)、ステップS3304に戻る。一方、n≦nmaxでない場合(ステップS3309:No)、ステップS3017に移行する。
図34は、三つ組候補の組み合わせの他の評価例を示す説明図である。図29では、見出し単語候補とデータ単語候補との重心間距離をもとめて、分散が小さい(N+1)つ組候補を妥当な(N+1)つ組候補として選択したが、図34では、重心間距離ではなく、見出し単語候補の外接矩形とデータ単語候補の外接矩形とを包含する外接矩形の形状どうしを比較することで評価する例である。
(A)は、三つ組候補群28B,28Cの組み合わせの評価例であり、(B)は、三つ組候補群28D,28Eの組み合わせの評価例である。各三つ組候補群28B〜28Eで得られた外接矩形をそれぞれrb,rc,rd,reとする。(A)では、外接矩形rb,rcの面積が等しく(外接矩形間の分散が小さく)、(B)では、外接矩形dd,deの面積は異なる(外接矩形間の分散が大きい)。したがって、三つ組候補群28B,28Cが妥当な三つ組候補として選ばれることとなる。なお、実際に妥当な三つ組候補を選択する場合、外接矩形間の分散が小さい三つ組候補が選ばれることとなる。
図35は、データ単語候補評価処理(ステップS608)の詳細な他の手順を示すフローチャートである。図35のフローチャートは、図30のフローチャートのステップS3013がステップS3513に置き換わっただけで、残余のステップは図30と同一である。ステップS3513では、外接矩形分散算出処理を実行する。
図36は、図35に示した外接矩形分散算出処理(ステップS3515)の詳細な処理手順を示すフローチャートである。図36において、まず、平均をあらわす変数aをa=0とし(ステップS3601)、分散をあらわす変数bをb=0とし(ステップS3602)、同時成立候補の番号kをk=1とする(ステップS3603)。そして、他の同時成立候補とは異なる単語候補を検索する(ステップS3604)。
このあと、k番目の同時成立候補の見出し単語候補とデータ単語候補とを包含する外接矩形を算出する。具体的には、外接矩形の左上x座標sx=MIN(hsx,dsx)を算出する(ステップS3605)。hsxとは見出し単語候補の左上x座標値であり、dsxとはデータ単語候補の左上x座標値である。
同様に、外接矩形の左上y座標sy=MIN(hsy,dsy)を算出する(ステップS3606)。hsyとは見出し単語候補の左上y座標値であり、dsyとはデータ単語候補の左上y座標値である。また、外接矩形の右下x座標ex=MIN(hex,dex)を算出する(ステップS3607)。hexとは見出し単語候補の右下x座標値であり、dexとはデータ単語候補の右下x座標値である。同様に、外接矩形の右下y座標ey=MIN(hey,dey)を算出する(ステップS3608)。heyとは見出し単語候補の右下y座標値であり、deyとはデータ単語候補の右下y座標値である。
そして、外接矩形の面積S(S=(ex−sx)×(ey−sy))を算出する(ステップS3609)。算出された面積Sを平均をあらわす変数aに加算して変数aを更新し(ステップS3610)、分散をあらわす変数bに面積Sの二乗を加算して変数bを更新し(ステップS3611)、同時成立候補の番号kをインクリメントする(ステップS3612)。そして、k≦jであるか否かを判断する(ステップS3613)。
k≦jである場合(ステップS3613:Yes)、ステップS3605に戻る。一方、k≦jでない場合(ステップS3613:No)、変数aを平均として保存し(ステップS3614)、変数bを分散として保存する(ステップS3615)。これにより、外接矩形分散算出処理を終了して、ステップS3014に移行する。
このように、データ単語候補評価部507によれば、見出し単語候補とデータ単語候補との組み合わせが複数存在しても、妥当な組み合わせを特定することができ、帳票の論理構造認識の高精度化を測ることができる。
(論理構造認識装置のハードウェア構成)
図37は、本実施の形態にかかる論理構造認識装置のハードウェア構成を示す説明図である。図37において、論理構造認識装置500は、コンピュータ本体3710と、入力装置3720と、出力装置3730と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク3740に接続可能である。
コンピュータ本体3710は、CPU,メモリ,インターフェースを有する。CPUは、論理構造認識装置500の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク3711,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク3711はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク3711およびフラッシュメモリはコンピュータ本体3710に対し着脱自在である。インターフェースは、入力装置3720からの入力、出力装置3730への出力、ネットワーク3740に対する送受信の制御をおこなう。
また、入力装置3720としては、キーボード3721、マウス3722、スキャナ3723などがある。キーボード3721は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス3722は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ3723は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体3710内のメモリに格納される。なお、スキャナ3723にOCR機能を持たせてもよい。
また、出力装置3730としては、ディスプレイ3731、スピーカ3732、プリンタ3733などがある。ディスプレイ3731は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。スピーカ3732は、効果音や読み上げ音などの音声を出力する。また、プリンタ3733は、画像データや文書データを印刷する。
なお、本実施の形態で説明した論理構造認識方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
帳票に記述されている文字列の中から単語候補を抽出する単語候補抽出手段、
前記単語候補抽出手段によって抽出された単語候補を前記帳票の見出しを構成する見出し単語候補群と前記帳票のデータを構成するデータ単語候補群に分け、前記単語候補の前記帳票上の位置に基づいて、前記見出し単語候補群の中から選ばれた一の見出し単語候補と当該一の見出し単語候補により特定される可能性がある前記データ単語候補群の中の一のデータ単語候補とからなる一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段、
前記一見出し・一データ組候補生成手段によって生成された一見出し・一データ組候補を、種類が異なる見出し単語候補どうしで組み合わせることにより、複数種類の見出し単語候補および一のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段、
前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する見出し単語候補とデータ単語候補の前記帳票上の位置に基づいて、前記多見出し・一データ組候補の中から、前記データごとに、前記データと当該データを特定する見出しからなる確定組を抽出する確定手段、
前記確定手段によって抽出された確定組を出力する出力手段、
として機能させることを特徴とする論理構造認識プログラム。
(付記2)前記コンピュータを、
前記確定組の中に、複数種類の見出しと当該複数種類の見出しにより特定されるデータとからなる第1の確定組候補と、前記複数種類の見出しのうち一の見出しの位置のみが前記第1の確定組とは異なる第2の確定組候補とが存在する場合、前記一の見出しの位置と前記データの位置とに基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択する見出し単語候補評価手段として機能させ、
前記出力手段は、
前記見出し単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記1に記載の論理構造認識プログラム。
(付記3)前記見出し単語候補評価手段は、
前記データに対する前記一の見出しの前記帳票上の相対的な位置に基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択し、
前記出力手段は、
前記見出し単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記2に記載の論理構造認識プログラム。
(付記4)前記見出し単語候補評価手段は、
前記データと前記一の見出しとを包含する領域の面積に基づいて、前記第1および第2の確定組候補の中から妥当な確定組を選択し、
前記出力手段は、
前記見出し単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記2に記載の論理構造認識プログラム。
(付記5)前記コンピュータを、
前記確定組の中に、第1の見出しにより特定されるデータが複数あり、当該複数のデータにより特定される第2の見出しが前記データと同数存在する不定組が存在する場合、前記複数のデータおよび複数の前記第2の見出しの組み合わせからなる複数通りの確定組候補における前記データおよび前記第2の見出しの相対的な位置に基づいて前記確定組候補を比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択するデータ単語候補評価手段として機能させ、
前記出力手段は、
前記データ単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記1に記載の論理構造認識プログラム。
(付記6)前記データ単語候補評価手段は、
前記データと前記第2の見出しとの距離を前記確定組候補どうしで比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択し、
前記出力手段は、
前記データ単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記5に記載の論理構造認識プログラム。
(付記7)前記データ単語候補評価手段は、
前記データと前記第2の見出しとを包含する面積を前記確定組候補どうしで比較することにより、前記複数通りの確定組候補の中から、妥当な確定組を選択し、
前記出力手段は、
前記データ単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする付記5に記載の論理構造認識プログラム。
(付記8)帳票に記述されている文字列の中から単語候補を抽出する単語候補抽出手段と、
前記単語候補抽出手段によって抽出された単語候補を前記帳票の見出しを構成する見出し単語候補群と前記帳票のデータを構成するデータ単語候補群に分け、前記単語候補の前記帳票上の位置に基づいて、前記見出し単語候補群の中から選ばれた一の見出し単語候補と当該一の見出し単語候補により特定される可能性がある前記データ単語候補群の中の一のデータ単語候補とからなる一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段と、
前記一見出し・一データ組候補生成手段によって生成された一見出し・一データ組候補を、種類が異なる見出し単語候補どうしで組み合わせることにより、複数種類の見出し単語候補および一のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段と、
前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する見出し単語候補とデータ単語候補の前記帳票上の位置に基づいて、前記多見出し・一データ組候補の中から、前記データごとに、前記データと当該データを特定する見出しからなる確定組を抽出する確定手段と、
前記確定手段によって確定された確定組を出力する出力手段と、
を備えることを特徴とする論理構造認識装置。
(付記9)帳票に記述されている文字列の中から単語候補を抽出する単語候補抽出工程と、
前記単語候補抽出工程によって抽出された単語候補を前記帳票の見出しを構成する見出し単語候補群と前記帳票のデータを構成するデータ単語候補群に分け、前記単語候補の前記帳票上の位置に基づいて、前記見出し単語候補群の中から選ばれた一の見出し単語候補と当該一の見出し単語候補により特定される可能性がある前記データ単語候補群の中の一のデータ単語候補とからなる一見出し・一データ組候補を生成する一見出し・一データ組候補生成工程と、
前記一見出し・一データ組候補生成工程によって生成された一見出し・一データ組候補を、種類が異なる見出し単語候補どうしで組み合わせることにより、複数種類の見出し単語候補および一のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成工程と、
前記多見出し・一データ組候補生成工程によって生成された多見出し・一データ組候補を構成する見出し単語候補とデータ単語候補の前記帳票上の位置に基づいて、前記多見出し・一データ組候補の中から、前記データごとに、前記データと当該データを特定する見出しからなる確定組を抽出する確定工程と、
前記確定工程によって確定された確定組を出力する出力工程と、
を含んだことを特徴とする論理構造認識方法。
論理構造認識対象の一例(帳票)を示す説明図である。 帳票の文字情報を示す説明図である。 共通論理構造DBの記憶内容(その1)を示す説明図である。 共通論理構造DBの記憶内容(その2)を示す説明図である。 共通論理構造DBの記憶内容(その3)を示す説明図である。 共通論理構造DBの記憶内容(その4)を示す説明図である。 図1に示した帳票からの単語候補抽出結果(その1)を示す説明図である。 図1に示した帳票からの単語候補抽出結果(その2)を示す説明図である。 図1に示した帳票からの単語候補抽出結果(その3)を示す説明図である。 論理構造認識装置の機能的構成を示すブロック図である。 論理構造認識処理手順を示すフローチャートである。 二つ組候補の生成内容を示す説明図である。 一見出し・一データ組候補生成処理(ステップS604)の詳細な処理手順を示すフローチャートである。 (N+1)つ組候補の生成内容を示す説明図である。 多見出し・一データ組候補生成処理(ステップS605)の詳細な処理手順を示すフローチャートである。 (N+1)つ組候補生成処理の詳細な処理手順を示すフローチャート(その1)である。 (N+1)つ組候補生成処理の詳細な処理手順を示すフローチャート(その2)である。 (N+1)つ組候補の確定組除去内容を示す説明図(その1)である。 (N+1)つ組候補の確定組除去内容を示す説明図(その2)である。 確定組除去処理(ステップS606)の詳細な処理手順を示すフローチャートである。 図13に示した前向き処理の詳細な処理手順を示すフローチャートである。 (N+1)つ組候補除去処理(ステップS1502またはS1504)の詳細な処理手順を示すフローチャートである。 図14に示した後ろ向き処理の詳細な処理手順を示すフローチャートである。 図18に示した見出し論理要素比較処理(ステップS1806)の詳細な処理手順を示すフローチャートである。 帳票の他の例を示す説明図である。 図20(A)に示した帳票2001から得られる二つ組候補を示す説明図である。 図20(A)に示した帳票2001から得られる(N+1)つ組候補を示す説明図である。 図20(B)に示した帳票2002から得られる二つ組候補を示す説明図である。 同一の見出し単語候補“消耗品費”が複数存在する場合の見出し単語候補の評価手法を示す説明図である。 見出し単語候補評価処理(ステップS607)の詳細な手順を示すフローチャートである。 同一の見出し単語候補“消耗品費”が複数存在する場合の見出し単語候補の他の評価手法を示す説明図である。 見出し単語候補評価処理(ステップS607)の詳細な他の手順を示すフローチャートである。 帳票の別の例を示す説明図である。 三つ組候補の組み合わせの評価例を示す説明図である。 データ単語候補評価処理(ステップS608)の詳細な手順を示すフローチャートである。 同時成立可能性確認処理(ステップS3007)の詳細な処理手順を示すフローチャートである。 重心距離分散算出処理(ステップS3013)の詳細な処理手順を示すフローチャートである。 対象要素抽出処理(ステップS3203)の詳細な処理手順を示すフローチャートである。 最小分散選択処理(ステップS3016)の詳細な処理手順を示すフローチャートである。 三つ組候補の組み合わせの他の評価例を示す説明図である。 データ単語候補評価処理(ステップS608)の詳細な他の手順を示すフローチャートである。 図35に示した外接矩形分散算出処理(ステップS3515)の詳細な処理手順を示すフローチャートである。 本実施の形態にかかる論理構造認識装置のハードウェア構成を示す説明図である。
符号の説明
100 帳票
101 レイアウト情報
301〜304 論理要素テーブル
401〜403 単語候補抽出結果
500 論理構造認識装置
501 単語候補抽出部
502 論理要素グループ数検出部
503 一見出し・一データ組候補生成部
504 多見出し・一データ組候補生成部
505 確定組除去部
506 見出し単語候補評価部
507 データ単語候補評価部
508 出力部

Claims (9)

  1. コンピュータを、
    上端の行方向の見出し項目と左端の列方向の見出し項目と前記行方向の見出し項目および前記列方向の見出し項目が交差するデータ項目となるマトリクス状の論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出手段、
    前記単語候補抽出手段によって抽出された単語候補を前記見出し項目内に位置する見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記行方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の列方向を含む右側の各データ項目内に位置するデータ単語候補の各々と組み合わせて行方向の一見出し・一データ組候補を生成するとともに、前記列方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の行方向を含む下側の各データ項目内に位置するデータ単語候補の各々と組み合わせて列方向の一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段、
    前記一見出し・一データ組候補生成手段によって生成された前記行方向の一見出し・一データ組候補と前記列方向の一見出し・一データ組候補を組み合わせることにより、前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向の一見出し・一データ組候補および前記列方向の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段、
    前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差するデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の見出し項目内の見出し単語候補と前記交差するデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記行方向の残余の見出し項目内の見出し単語候補と前記列方向の残余の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差する残余のデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の残余の見出し項目内の見出し単語候補と前記交差する残余のデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除する確定手段、
    前記確定手段によって抽出された確定組を出力する出力手段、
    として機能させることを特徴とする論理構造認識プログラム。
  2. 前記コンピュータを、
    前記確定組の中に、前記行方向または列方向のいずれか一方の方向の見出し項目内に見出し単語候補が複数あり、前記データ項目内に前記いずれか一方の方向の見出し項目内の複数の見出し単語候補と同数となる複数のデータ単語候補がある不定組が存在する場合、前記いずれか一方の方向の見出し項目内の複数の見出し単語候補から選ばれた見出し単語候補と前記同数となる複数のデータ単語候補から選ばれたデータ単語候補の組み合わせごとに、前記選ばれた見出し単語候補と前記選ばれたデータ単語候補との距離を求め、当該距離に基づいて、前記不定組の中から妥当な確定組を選択するデータ単語候補評価手段として機能させ、
    前記出力手段は、
    前記データ単語候補評価手段によって選択された妥当な確定組を出力することを特徴とする請求項1に記載の論理構造認識プログラム。
  3. コンピュータを、
    第1の見出し項目と当該第1の見出し項目に並んで前記第1の見出し項目から所定方向に第2の見出し項目とデータ項目とが交互に1または複数存在する論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出手段、
    前記単語候補抽出手段によって抽出された単語候補を前記第1の見出し項目内に位置する第1の見出し単語候補群と前記第2の見出し項目内に位置する第2の見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記第1の見出し項目内の前記第1の見出し単語候補の場合、当該第1の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第1の一見出し・一データ組候補を生成するとともに、前記第2の見出し項目内の前記第2の見出し単語候補の場合、当該第2の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第2の一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段、
    前記一見出し・一データ組候補生成手段によって生成された前記第1の一見出し・一データ組候補と前記第2の一見出し・一データ組候補を組み合わせることにより、前記第1の見出し項目内の前記第1の見出し単語候補と前記第2の見出し項目内の前記第2の見出し単語候補と前記第1の一見出し・一データ組候補および前記第2の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段、
    前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する前記第1の見出し単語候補と当該第1の見出し単語候補に隣接する前記第2の見出し単語候補と当該第2の見出し単語候補に隣接するデータ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記第1の見出し単語候補と残余の前記第2の見出し単語候補と当該残余の前記第2の見出し単語候補に隣接する残余の前記データ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除する確定手段、
    前記確定手段によって抽出された確定組を出力する出力手段、
    として機能させることを特徴とする論理構造認識プログラム。
  4. 前記コンピュータを、
    前記確定組を構成する前記第1の見出し単語候補と前記第2の見出し単語候補と前記データ単語候補の組み合わせが前記所定方向に並んでいるか否かを判断することにより、前記所定方向に並んでいる確定組を妥当な確定組として選択する見出し単語候補評価手段として機能させ、
    前記出力手段は、
    前記見出し単語候補評価手段によって選択された妥当な確定組を出力することを特徴ととする請求項3に記載の論理構造認識プログラム。
  5. 前記見出し単語候補評価手段は、
    前記第1および第2の見出し単語候補が同一単語となる複数の確定組が存在する場合、一方の確定組における前記第2の見出し単語候補および前記データ単語候補の外接矩形の面積と他方の確定組における前記第2の見出し単語候補および前記データ単語候補の外接矩形の面積を比較することにより、当該面積の小さい方の確定組を前記妥当な確定組として選択することを特徴とする請求項4に記載の論理構造認識プログラム。
  6. 上端の行方向の見出し項目と左端の列方向の見出し項目と前記行方向の見出し項目および前記列方向の見出し項目が交差するデータ項目となるマトリクス状の論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出手段と、
    前記単語候補抽出手段によって抽出された単語候補を前記見出し項目内に位置する見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記行方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の列方向を含む右側の各データ項目内に位置するデータ単語候補の各々と組み合わせて行方向の一見出し・一データ組候補を生成するとともに、前記列方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の行方向を含む下側の各データ項目内に位置するデータ単語候補の各々と組み合わせて列方向の一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段と、
    前記一見出し・一データ組候補生成手段によって生成された前記行方向の一見出し・一データ組候補と前記列方向の一見出し・一データ組候補を組み合わせることにより、前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向の一見出し・一データ組候補および前記列方向の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段と、
    前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差するデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の見出し項目内の見出し単語候補と前記交差するデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記行方向の残余の見出し項目内の見出し単語候補と前記列方向の残余の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差する残余のデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の残余の見出し項目内の見出し単語候補と前記交差する残余のデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除する確定手段と、
    前記確定手段によって抽出された確定組を出力する出力手段と、
    を備えることを特徴とする論理構造認識装置。
  7. 第1の見出し項目と当該第1の見出し項目に並んで前記第1の見出し項目から所定方向に第2の見出し項目とデータ項目とが交互に1または複数存在する論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出手段と、
    前記単語候補抽出手段によって抽出された単語候補を前記第1の見出し項目内に位置する第1の見出し単語候補群と前記第2の見出し項目内に位置する第2の見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記第1の見出し項目内の前記第1の見出し単語候補の場合、当該第1の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第1の一見出し・一データ組候補を生成するとともに、前記第2の見出し項目内の前記第2の見出し単語候補の場合、当該第2の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第2の一見出し・一データ組候補を生成する一見出し・一データ組候補生成手段と、
    前記一見出し・一データ組候補生成手段によって生成された前記第1の一見出し・一データ組候補と前記第2の一見出し・一データ組候補を組み合わせることにより、前記第1の見出し項目内の前記第1の見出し単語候補と前記第2の見出し項目内の前記第2の見出し単語候補と前記第1の一見出し・一データ組候補および前記第2の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成手段と、
    前記多見出し・一データ組候補生成手段によって生成された多見出し・一データ組候補を構成する前記第1の見出し単語候補と当該第1の見出し単語候補に隣接する前記第2の見出し単語候補と当該第2の見出し単語候補に隣接するデータ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記第1の見出し単語候補と残余の前記第2の見出し単語候補と当該残余の前記第2の見出し単語候補に隣接する残余の前記データ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除する確定手段と、
    前記確定手段によって抽出された確定組を出力する出力手段と、
    を備えることを特徴とする論理構造認識装置。
  8. 上端の行方向の見出し項目と左端の列方向の見出し項目と前記行方向の見出し項目および前記列方向の見出し項目が交差するデータ項目となるマトリクス状の論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出工程と、
    前記単語候補抽出工程によって抽出された単語候補を前記見出し項目内に位置する見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記行方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の列方向を含む右側の各データ項目内に位置するデータ単語候補の各々と組み合わせて行方向の一見出し・一データ組候補を生成するとともに、前記列方向の見出し項目内の見出し単語候補の場合、当該見出し単語候補の行方向を含む下側の各データ項目内に位置するデータ単語候補の各々と組み合わせて列方向の一見出し・一データ組候補を生成する一見出し・一データ組候補生成工程と、
    前記一見出し・一データ組候補生成工程によって生成された前記行方向の一見出し・一データ組候補と前記列方向の一見出し・一データ組候補を組み合わせることにより、前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向の一見出し・一データ組候補および前記列方向の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成工程と、
    前記多見出し・一データ組候補生成工程によって生成された多見出し・一データ組候補を構成する前記行方向の見出し項目内の見出し単語候補と前記列方向の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差するデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の見出し項目内の見出し単語候補と前記交差するデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記行方向の残余の見出し項目内の見出し単語候補と前記列方向の残余の見出し項目内の見出し単語候補と前記行方向および前記列方向の見出し項目が交差する残余のデータ項目内のデータ単語候補が唯一である場合に、前記行方向および前記列方向の残余の見出し項目内の見出し単語候補と前記交差する残余のデータ項目内のデータ単語候補の組み合わせを確定組とし、当該データ単語候補を前記多見出し・一データ組候補から削除する確定工程と、
    前記確定工程によって抽出された確定組を出力する出力工程と、
    を含んだことを特徴とする論理構造認識方法。
  9. 第1の見出し項目と当該第1の見出し項目に並んで前記第1の見出し項目から所定方向に第2の見出し項目とデータ項目とが交互に1または複数存在する論理構造を有し前記各見出し項目およびデータ項目に文字列が記述されている帳票を読み込むことにより、前記帳票に記述されている文字列の中から、項目ごとに、項目位置に応じて単語候補を抽出する単語候補抽出工程と、
    前記単語候補抽出工程によって抽出された単語候補を前記第1の見出し項目内に位置する第1の見出し単語候補群と前記第2の見出し項目内に位置する第2の見出し単語候補群と前記データ項目内に位置するデータ単語候補群に分け、前記第1の見出し項目内の前記第1の見出し単語候補の場合、当該第1の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第1の一見出し・一データ組候補を生成するとともに、前記第2の見出し項目内の前記第2の見出し単語候補の場合、当該第2の見出し単語候補から前記所定方向の各データ項目内に位置するデータ単語候補の各々と組み合わせて第2の一見出し・一データ組候補を生成する一見出し・一データ組候補生成工程と、
    前記一見出し・一データ組候補生成工程によって生成された前記第1の一見出し・一データ組候補と前記第2の一見出し・一データ組候補を組み合わせることにより、前記第1の見出し項目内の前記第1の見出し単語候補と前記第2の見出し項目内の前記第2の見出し単語候補と前記第1の一見出し・一データ組候補および前記第2の一見出し・一データ組候補で重複したデータ項目内のデータ単語候補とからなる多見出し・一データ組候補を生成する多見出し・一データ組候補生成工程と、
    前記多見出し・一データ組候補生成工程によって生成された多見出し・一データ組候補を構成する前記第1の見出し単語候補と当該第1の見出し単語候補に隣接する前記第2の見出し単語候補と当該第2の見出し単語候補に隣接するデータ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除するとともに、前記多見出し・一データ組候補内の前記第1の見出し単語候補と残余の前記第2の見出し単語候補と当該残余の前記第2の見出し単語候補に隣接する残余の前記データ単語候補の組み合わせを確定組とし、当該確定組となった前記第2の見出し単語候補および前記データ単語候補を前記多見出し・一データ組候補から削除する確定工程と、
    前記確定工程によって抽出された確定組を出力する出力工程と、
    を含んだことを特徴とする論理構造認識方法。
JP2007283916A 2007-10-31 2007-10-31 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法 Expired - Fee Related JP4476318B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007283916A JP4476318B2 (ja) 2007-10-31 2007-10-31 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法
US12/180,202 US8010564B2 (en) 2007-10-31 2008-07-25 Logical structure analyzing apparatus, method, and computer product
CN2008101458844A CN101425131B (zh) 2007-10-31 2008-08-18 逻辑结构分析装置、方法和计算机产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007283916A JP4476318B2 (ja) 2007-10-31 2007-10-31 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法

Publications (2)

Publication Number Publication Date
JP2009110416A JP2009110416A (ja) 2009-05-21
JP4476318B2 true JP4476318B2 (ja) 2010-06-09

Family

ID=40584147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007283916A Expired - Fee Related JP4476318B2 (ja) 2007-10-31 2007-10-31 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法

Country Status (3)

Country Link
US (1) US8010564B2 (ja)
JP (1) JP4476318B2 (ja)
CN (1) CN101425131B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012049861A1 (ja) * 2010-10-15 2012-04-19 日本精工株式会社 電源状態診断方法及び装置
US8914419B2 (en) 2012-10-30 2014-12-16 International Business Machines Corporation Extracting semantic relationships from table structures in electronic documents
US9286290B2 (en) 2014-04-25 2016-03-15 International Business Machines Corporation Producing insight information from tables using natural language processing
US10025847B2 (en) 2014-11-25 2018-07-17 Oath Inc. Method and system for providing a user agent string database
WO2016082092A1 (en) * 2014-11-25 2016-06-02 Yahoo! Inc. Method and system for analyzing user agent string
JP7007609B2 (ja) * 2020-05-22 2022-01-24 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、プログラム
JP2022035594A (ja) * 2020-08-21 2022-03-04 株式会社日立製作所 表構造認識装置及び表構造認識方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566068A (en) * 1993-09-15 1996-10-15 Microsoft Corporation Method and system for locating field breaks within input data
JP3425834B2 (ja) * 1995-09-06 2003-07-14 富士通株式会社 文書画像からのタイトル抽出装置および方法
US6507662B1 (en) * 1998-09-11 2003-01-14 Quid Technologies Llc Method and system for biometric recognition based on electric and/or magnetic properties
KR100319756B1 (ko) * 2000-01-21 2002-01-09 오길록 논문 문서영상 구조 분석 방법
US6757870B1 (en) * 2000-03-22 2004-06-29 Hewlett-Packard Development Company, L.P. Automatic table detection method and system
US7171615B2 (en) * 2002-03-26 2007-01-30 Aatrix Software, Inc. Method and apparatus for creating and filing forms
US7305612B2 (en) * 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
JP2005275830A (ja) 2004-03-25 2005-10-06 Hitachi Computer Peripherals Co Ltd 帳票認識方法
US7917842B2 (en) * 2004-05-27 2011-03-29 Collegenet, Inc. System for describing the overlaying of electronic data onto an electronic image
CN1687926A (zh) * 2005-04-18 2005-10-26 福州大学 一种基于xml的pdf文档信息抽取系统的方法
US7941744B2 (en) * 2005-04-25 2011-05-10 Adp, Inc. System and method for electronic document generation and delivery
JP2007249754A (ja) * 2006-03-17 2007-09-27 Internatl Business Mach Corp <Ibm> 情報処理装置、情報処理方法およびプログラム
JP4848221B2 (ja) 2006-07-31 2011-12-28 富士通株式会社 帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法
US7886219B2 (en) * 2007-02-26 2011-02-08 Emc Corporation Automatic form generation

Also Published As

Publication number Publication date
US20090112797A1 (en) 2009-04-30
CN101425131A (zh) 2009-05-06
JP2009110416A (ja) 2009-05-21
US8010564B2 (en) 2011-08-30
CN101425131B (zh) 2013-05-01

Similar Documents

Publication Publication Date Title
JP4476318B2 (ja) 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法
JP4848221B2 (ja) 帳票処理プログラム、該プログラムを記録した記録媒体、帳票処理装置、および帳票処理方法
CN106445926B (zh) 翻译辅助系统确认控制方法
CN102369724B (zh) 自动捕获信息,例如使用文档感知设备捕获信息
Garain et al. Recognition of online handwritten mathematical expressions
US9613264B2 (en) Shape recognition using partial shapes
US11768838B2 (en) Error identification, indexing and linking construction documents
CA2438187A1 (en) Holistic-analytical recognition of handwritten text
Sardiu et al. Topological scoring of protein interaction networks
JP2015069256A (ja) 文字識別システム
US20160055254A1 (en) Method and System for Click-Thru Capability in Electronic Media
CN107797979B (zh) 分析装置和分析方法
JP2022017751A (ja) 情報処理装置、情報処理方法、情報処理プログラム、情報処理システム
JP5136477B2 (ja) 表示プログラム、表示装置、および表示方法
US9600480B2 (en) Systems and methods for indexing and linking electronic documents
JP2021196840A (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
JP2021131579A (ja) 鉄筋長表示システム及び鉄筋長表示プログラム
JP2023111566A (ja) 情報処理装置、情報処理方法、プログラム、情報処理システム
JP7456131B2 (ja) 情報処理システム、情報処理方法及びプログラム
JP6322291B2 (ja) 文書処理装置および項目抽出方法
Kempf et al. KIETA: Key-insight extraction from scientific tables
US20230351791A1 (en) Method, device, and system for outputting description of patent reference sign
EP4099189A1 (en) Information processing apparatus, information processing system, and computer-implemented method for information processing
Kuznetsova et al. Problems of parasitic safety evaluation of water in sources used by population.
Rubin Ancient Egyptian and Afroasiatic: Rethinking the Origins, by M. Victoria Almansa-Villatoro and Silvia Štubňová Nigrelli (eds.)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100309

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees