JP7095541B2 - 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置 - Google Patents

階層構造認識プログラム、階層構造認識方法及び階層構造認識装置 Download PDF

Info

Publication number
JP7095541B2
JP7095541B2 JP2018190967A JP2018190967A JP7095541B2 JP 7095541 B2 JP7095541 B2 JP 7095541B2 JP 2018190967 A JP2018190967 A JP 2018190967A JP 2018190967 A JP2018190967 A JP 2018190967A JP 7095541 B2 JP7095541 B2 JP 7095541B2
Authority
JP
Japan
Prior art keywords
display target
hierarchical structure
area
character
tabular data
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.)
Active
Application number
JP2018190967A
Other languages
English (en)
Other versions
JP2020060905A (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 JP2018190967A priority Critical patent/JP7095541B2/ja
Publication of JP2020060905A publication Critical patent/JP2020060905A/ja
Application granted granted Critical
Publication of JP7095541B2 publication Critical patent/JP7095541B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Description

本発明は、階層構造認識プログラム、階層構造認識方法及び階層構造認識装置に関する。
従来、OCR(光学的文字認識)装置、複写機、ファクシミリ等の電子装置において、入力画像に対して抽出された文字領域に読み順を付ける文字の順序付け技術が知られている(例えば、特許文献1等参照)。
また、紙文書、又は文書の画像データから電子文書データを出力仕様に制限のあるフォーマットで生成する際に、レイアウト及び論理構造の再現率を両立させる技術が知られている(例えば、特許文献2等参照)。
特開平08-147410号公報 特開2013-254321号公報
例えば、表形式のシート上に文書を記載した場合において、文書構造を解析したいという要望がある。しかしながら、表形式のシート上には様々な形式や配置で文書を記載できるため、上記特許文献1、2等の技術を用いたとしても、表形式のシート上に記載した文書の構造を解析することはできない。
1つの側面では、本発明は、表形式データの階層構造を認識することが可能な階層構造認識プログラム、階層構造認識方法及び階層構造認識装置を提供することを目的とする。
一つの態様では、階層構造認識プログラムは、表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定し、所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する、処理をコンピュータに実行させるためのプログラムである。
表形式データの階層構造を認識することができる。
一実施形態に係るコンテクスト情報提供装置のハードウェア構成を概略的に示す図である。 コンテクスト情報提供装置の機能ブロック図である。 一実施形態に係る表形式データを示す図である。 コンテクスト情報提供装置の処理を示すフローチャートである。 表形式データの領域の定義について説明するための図である。 図4のステップS10の処理を示すフローチャートである。 シートテーブルの一例を示す図である。 図8(a)は、領域管理テーブルを初期化した状態を示す図であり、図8(b)は、シートテーブルの初期化においてC2列を追加した状態を示す図である。 図6のステップS24の詳細処理を示すフローチャートである。 図10(a)~図10(d)は、図9の処理を説明するための図である。 図11は、図9の処理の結果、分割された領域を示す図である。 図6のステップS26の詳細処理を示すフローチャートである。 図13(a)~図13(d)は、図12の処理を説明するための図(その1)である。 図14(a)~図14(c)は、図12の処理を説明するための図(その2)である。 図12の処理を説明するための図(その3)である。 図16(a)は、図15に対応して一時領域管理テーブルに格納される情報を示す図であり、図16(b)は、図16(a)の一時領域管理テーブルに格納された領域を示す図である。 図12の処理の結果が格納された領域管理テーブルを示す図である。 図3の表形式データにおいて分割された領域を示す図である。 図4のステップS12の詳細処理を示すフローチャートである。 入力された対象セルと、特定される見出しを示す図である。 図19の処理で利用される領域管理テーブルを示す図である。 出力例を示す図である。
以下、一実施形態について、図1~図22に基づいて詳細に説明する。図1には、階層構造認識装置としてのコンテクスト情報提供装置10のハードウェア構成が示されている。本実施形態のコンテクスト情報提供装置10は、表形式データ(表計算ソフトなどにおいて表形式のシート上に文書を記載したデータ)において文書に含まれる表示対象要素(文字列)それぞれの階層構造を認識する。そして、コンテクスト情報提供装置10は、表形式データ中の文字列のいずれかがユーザによって選択された場合に、選択された文字列の階層構造に関する情報(コンテクスト情報)を出力する。
ここで、表形式データは、例えば、図3に示すようなデータであるものとする。具体的には、表形式データは、図3に示すように表形式のシートにおいて文字列が記載されたものである。また、文字列は、行方向に延びる横書きであり、縦方向(列方向)に配列されているものとする。また、図3の2行目に記載されている「共通機能要件補足」は、先頭文字が位置するセル(行,列)=(2,1)が選択された状態で入力された文字列である。同様に、6行目に記載されている「DBに蓄積されたデータを用い、各種分析を行う」は、セル(行,列)=(6,2)が選択された状態で入力された文字列である。
さらに、表形式データには、以下の制約があるものとする。
(1)最上位の見出し(図3の「1.」、「2.」…から始まる文字列)は必ず縦(列方向)に並ぶように配置され、横(行方向)に並ぶことはない。
(2)見出しレベルが同じ文字列(表形式データの階層構造において同一階層に位置する文字列)は、同一列に位置するセル又は同一行に位置するセルが選択された状態で入力される。
例えば、13行目の「(1)」、「(2)」から始まる文字列は、同一行のセル(13,2)、(13,23)が選択された状態で入力されたものである。また、3列目の丸数字から始まる文字列は、同一列のセル(14,3)、(18,3)が選択された状態で入力されたものである。
(3)段組がある場合は、段につき必ず1行の見出しを含む。また、見出しの先頭には、予め定められている見出し文字や見出し文字群(同形式の連番「1.」、「2.」、…や「(1)」、「(2)」、…、同一マーク「■」、「■」、…など)が存在するものとする。なお、以下においては、説明の便宜上「1.」や「(1)」など複数の文字を含む見出し文字群についても「見出し文字」と表記するものとする。
なお、表形式データにおいては、セル結合はなく、各セルの設定は左揃えであり、セル内に改行記号を含まないものとする。また、フォント幅はほぼ一定であるものとする。
コンテクスト情報提供装置10は、図1に示すように、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、表示部93、入力部95、及び可搬型記憶媒体用ドライブ99等を備えている。表示部93は液晶ディスプレイ等を含み、入力部95はキーボードやマウス、タッチパネル等を含む。これらコンテクスト情報提供装置10の構成各部は、バス98に接続されている。コンテクスト情報提供装置10では、ROM92あるいはHDD96に格納されているプログラム(階層構造認識プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(階層構造認識プログラムを含む)をCPU90が実行することにより、図2に示す各部の機能が実現されている。なお、図2の各部の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
図2は、コンテクスト情報提供装置10の機能ブロック図である。図2に示すように、コンテクスト情報提供装置10では、CPU90がプログラムを実行することにより、階層構造抽出部20、及びコンテクスト情報抽出部22、としての機能が実現されている。
階層構造抽出部20は、表形式データから、表形式データに含まれる各文字列の階層構造を抽出する。なお、階層構造抽出部20は、階層構造を抽出する際に、シートテーブル30及び一時領域管理テーブル32を利用し、抽出した階層構造の情報を領域管理テーブル34に格納する。なお、各テーブルの詳細については、後述する。
コンテクスト情報抽出部22は、ユーザによって表形式データに含まれる文字列のいずれかが選択された場合に、選択された文字列の階層構造に関する情報(コンテクスト情報)を、領域管理テーブル34を参照して抽出する。また、コンテクスト情報抽出部22は、抽出したコンテクスト情報を出力する(例えば表示部93に表示する)。
次に、コンテクスト情報提供装置10の処理について、図4~図22に基づいて詳細に説明する。
本実施形態では、図4に示すように、階層構造抽出部20によって階層構造の抽出処理(ステップS10)が実行されるとともに、コンテクスト情報抽出部22によってコンテクスト情報の抽出処理(ステップS12)が実行される。以下、各処理について、詳細に説明する。なお、処理の前提として、表形式データにおいては、図5に示すように、領域をRC座標で定義する。すなわち、領域は、左上座標と右下座標の組で示し、図5の矩形領域は、((R1,C1)、(R2,C2))で表される。また、各セルの座標は、セルの左上の座標で表すものとする。例えば、図3において最も左側かつ最も上側に位置するセルの座標は(1,1)であり、その右隣のセルの座標は、(1,2)となる。なお、図3においては、各セルの形状は正方形であり、各セルの列方向(縦方向)及び行方向(横方向)の寸法は「1」であるものとする。
(階層構造の抽出処理(S10))
ステップS10の階層構造の抽出処理は、表形式データがコンテクスト情報提供装置10に入力された場合において実行される処理であり、図6のフローチャートに沿って実行される。なお、コンテクスト情報提供装置10に表形式データが入力されると、表形式データの情報として、図7に示すようなシートテーブル30が入力されることになる。シートテーブル30には、表形式データに含まれる各文字列(content)の情報と、各文字列が入力されたセルの座標(R1,C1)と、各文字列のフォントサイズ(fontsize)の情報が格納されている。なお、シートテーブル30に格納されている情報は、各文字列の属性であると言える。
図6のステップS20では、階層構造抽出部20が、テーブルの初期化を実行する。ここで、初期化するテーブルは、一時領域管理テーブル32、領域管理テーブル34、シートテーブル30である。
階層構造抽出部20は、一時領域管理テーブル32(図16(a)参照)については、データを全て消去することで初期化を行う。一方、階層構造抽出部20は、領域管理テーブル34(図10(d)や図17参照)については、一旦データを全て消去した後、図8に示すように、表形式データの全体領域((1,1)、(65535,65535))を示すデータを格納する。なお、全体領域の領域IDは、「0」であるものとする。
また、階層構造抽出部20の初期化においては、シートテーブル30(図7)に対し、図8(b)に示すようにC2列を追加する。すなわち、階層構造抽出部20は、各文字列の最後尾の文字が行方向のどの位置(セル)にあるかを特定し、特定した位置を示す情報(C2)をシートテーブル30に追加する。ここで、各文字列(content)のC2は、次式(1)から求めることができる。なお、次式(1)のCEILNG関数は、切り上げを意味し、セルパディングは、セル内の左右の余白を意味する。
C2=C1+CEILING((文字列のバイト数×2×(フォントサイズ+字送り)+2×セルパディング)/(セルピクセル数+罫線太さ)) …(1)
なお、日本語は1文字が2バイトであるので、上式(1)において文字数のバイト数を2倍している。
上述したようにしてシートテーブル30に対してC2列を追加することで、文字列の見た目上の占有領域を特定することができる。
次いで、ステップS22では、階層構造抽出部20が、継続フラグを「false」に設定する。
次いで、ステップS24では、階層構造抽出部20が、領域分割(縦)を実行する。なお、ステップS24(領域分割(縦))の処理は、表形式データの所定の範囲(注目領域と呼ぶ)を、列方向に並ぶ複数の領域に分割する処理である。階層構造抽出部20は、ステップS24の処理として、図9のフローチャートに沿った処理を実行する。
(領域分割(縦))
図9の処理において、階層構造抽出部20は、まずステップS30の注目領域の初期化処理を実行する。ここでは、図10(a)に示すように注目領域を表形式データの全体領域((1,1)、(65535,65535))とする。
次いで、ステップS32では、階層構造抽出部20が、余白の除去を実行する。本実施形態では、図3に示すように、行方向の23番目よりも下側及び列方向の46番目よりも右側には文字列が存在していないため、文字列が存在していない範囲を除外した図10(b)に示す領域((1,1)、(23,46))を注目領域とする。
次いで、ステップS34では、階層構造抽出部20が、注目領域1列目のうち、見出し文字を含む文字列をパターンマッチングにより抽出する。階層構造抽出部20は、図3の1列目セル(C1=1の文字列)についてのパターンマッチングを行い、予め定めている見出し文字(同形式の連番「1.」、「2.」、…や「(1)」、「(2)」、…、同一マーク「■」、「■」、…など)を含む文字列を抽出する。図3の例では、1列目セルに「1.」、「2.」、「3.」、「4.」を含む文字列があるため、階層構造抽出部20は、これらの見出し文字を含む文字列を抽出する。階層構造抽出部20が抽出した結果が、図10(c)に示されている。
次いで、ステップS36では、階層構造抽出部20が、共通の見出し文字を含む文字列が2つ以上あったか否かを判断する。ここで、共通の見出し文字とは、同形式の連番、同一マークを意味する。図3の例では、同形式の連番が4箇所に存在していたので、ステップS36の判断は肯定され、ステップS38に移行する。
ステップS38に移行すると、階層構造抽出部20は、領域管理テーブル34を更新する。ここでは、階層構造抽出部20は、図10(d)に示すように、親領域IDを「0」として、抽出した文字列を境界として分割される各領域の情報を領域管理テーブル34に格納する。具体的には、注目領域(全体の領域)が、図11に示すように、抽出した文字列(見出し)を境界として領域00~04に分割されるため、階層構造抽出部20は、各領域00~04の範囲を示す座標(R1,C1)、(R2,C2)を領域管理テーブル34に格納する。なお、各領域には、見出しは含まれないものとする。
次いで、ステップS40では、階層構造抽出部20が、継続フラグを「true」に設定する。その後は、ステップS42に移行する。なお、図9のステップS36の判断が否定された場合には、ステップS38、S40を経ずにステップS42に移行する。ステップS42に移行すると、階層構造抽出部20は、次の注目領域があるか否かを判断する。本例では、分割前の領域が存在しないため、ステップS42の判断は否定され、図9の全処理(ステップS24の処理)を終了し、図6のステップS26に移行する。ここでは、一例として、図11に示すように領域00~04に分割された状態で、ステップS26に移行したとする。なお、ステップS42の判断が肯定された場合には、階層構造抽出部20は、ステップS44において次の注目領域を設定した後、ステップS32に戻る。ステップS32に戻った後は、ステップS32以降の処理を上述と同様にして実行する。なお、本実施形態では、図9のステップS24の処理が1回行われる間に新たに分割された(生成された)領域は、表形式データの階層構造における同一階層の領域となる。
図6のステップS26に移行すると、階層構造抽出部20は、ステップS24で分割された領域に対する領域分割(横)の処理を実行する。なお、ステップS26(領域分割(横))の処理は、ステップS24で分割された領域を注目領域として、注目領域内を行方向に並ぶ複数の領域に分割する処理である。階層構造抽出部20は、ステップS26の処理として、図12のフローチャートに沿った処理を実行する。
(領域分割(横))
図12の処理において、階層構造抽出部20は、まずステップS50の注目領域の初期化処理を実行する。ここでは、一例として、図13(a)に示すように、上記ステップS24で新たに分割された領域00((1,1)、(4,46))が注目領域として設定されたものとする。
次いで、ステップS52では、階層構造抽出部20が、余白の除去を行う。これにより、注目領域の上下の余白と左右の余白が除去され、図13(b)に示すように注目領域が、((2,1)、(2,6))となったとする。
次いで、ステップS54では、階層構造抽出部20が、長さが注目領域の幅に等しい配列Aを“空”で初期化する。この場合の配列Aは、図13(c)に示すような配列である。
次いで、ステップS56では、階層構造抽出部20が、注目領域に含まれるセルのうち文字が存在しているセルに対応する配列Aの値を“1”に更新する。本例では、図13(d)に示すように、配列Aの全ての値が1になる。
次いで、ステップS58では、階層構造抽出部20が、配列Aにおいて値“空”が連続する箇所があるか否かを判断する。このステップS58では、注目領域において、文字列と文字列の間に挟まれる空白列が存在しているか否かを判断していると言える。図13(d)の場合、“空”が連続する箇所が存在しないため、判断は否定され、ステップS70に移行する。
ステップS70に移行すると、階層構造抽出部20は、次の注目領域があるか否かを判断する。ここでは、ステップS24で分割された領域のうち、領域ID=01~04の領域がまだ残っているので、判断は肯定されて、ステップS72に移行する。
ステップS72に移行すると、階層構造抽出部20は、次の注目領域を設定し、ステップS52に戻る。なお、領域01や領域02については、上述した領域00と同様、空白部分が連続する箇所が無く、ステップS58の判断が否定されるため、説明は省略するものとする。ここでは、次の注目領域として、図14(a)に示すように、領域03((13,1)、(20,46))が設定された場合について、詳細に説明する。
ステップS72において、階層構造抽出部20が注目領域として領域03を設定した後、ステップS52に移行すると、階層構造抽出部20は、余白の除去を行う。これにより、注目領域の左側と下側の余白が除去され、図14(b)に示すように注目領域が((13,2)、(19,46))(図15に示す領域)となったとする。
次いで、ステップS54では、階層構造抽出部20が、長さが注目領域の幅に等しい配列Aを“空”で初期化する。この場合の配列Aは、図14(c)に示すような配列である。
次いで、ステップS56では、階層構造抽出部20が、注目領域に含まれるセルのうち文字が存在しているセルに対応する配列Aを“1”に更新する。本例では、図15に示すように、配列Aのうち、20~22列目の値が連続して“空”となり、その他が“1”となる。
次いで、ステップS58では、階層構造抽出部20が、配列Aにおいて値“空”が連続する箇所(空白列)があるか否かを判断する。図15の場合、“空”が連続する箇所が存在するため、判断は肯定され、ステップS60に移行する。
ステップS60では、階層構造抽出部20が、“空”が連続する箇所を境界として新しい領域を一時領域管理テーブル32に追加する。ここで、一時領域管理テーブル32は、図16(a)に示すような領域管理テーブル34と同様の構造を有する。ステップS60では、図16(b)に示す“空”が連続する箇所の左側の領域と、右側の領域とを一時領域管理テーブル32に格納する(図16(a)参照)。ここで、一時領域管理テーブル32に格納される2つの領域の親領域は03であるため、各領域の領域IDを「030」、「031」としている。なお、領域030の範囲と領域031の範囲には、先頭行の文字列(見出し)は含まれないようにしている。なお、本実施形態の領域030(見出しも含む)は、“空”が連続する箇所の行方向の一側に存在する第1の表示対象要素群であるといえる。また、領域031(見出しも含む)は、“空”が連続する箇所の行方向の他側に存在する第2の表示対象要素群であるといえる。
次いで、ステップS62では、階層構造抽出部20が、新しい領域に対応する見出しの左端部分をパターンマッチングし、見出し文字を抽出する。ここでは、「(1)」と「(2)」が抽出される。
次いで、ステップS64では、階層構造抽出部20が、共通の見出し文字を含む見出しが複数あったか否かを判断する。このステップS64の判断が否定された場合には、ステップS70に移行するが、判断が肯定されると、ステップS66に移行し、階層構造抽出部20は、一時領域管理テーブル32のデータを領域管理テーブル34に追加する。本例では、2つの見出し文字「(1)」、「(2)」が抽出されたため、ステップS64の判断は肯定され、ステップS66に移行する。ステップS66に移行すると、階層構造抽出部20は、領域管理テーブル34に図17において矢印を付して示すデータを追加する。
次いで、ステップS68では、階層構造抽出部20が、継続フラグを「true」に設定する。その後は、ステップS70に移行し、階層構造抽出部20は、次の注目領域があるか否かを判断する。このステップS70の判断が肯定された場合には、階層構造抽出部20は、ステップS72において次の注目領域を設定した後、ステップS52に戻り、ステップS52以降の処理を実行する。一方、ステップS70の判断が否定された場合には、図12の全処理(S26の処理)を終了し、図6のステップS28に移行する。なお、本実施形態では、図12のステップS26の処理が1回行われる間に新たに分割された(生成された)領域は、表形式データの階層構造における同一階層の領域となる。
図6のステップS28に移行すると、階層構造抽出部20は、継続フラグが「true」であるか否かを判断する。このステップS28の判断が肯定された場合には、ステップS22に戻り、継続フラグが「TRUE」である限り、上述した処理を再帰的に繰り返す。すなわち、図9の処理で新たに領域が分割されるか、図12の処理で新たに領域が分割された場合には、分割された領域に対して、ステップS24,S26を繰り返し実行する。
一方、ステップS28の判断が否定された場合には、図6の全処理(ステップS10の処理)を終了する。以上の処理により、入力された表形式データの階層構造を記述した領域管理テーブル34が完成する。領域管理テーブル34には、各領域の座標と、各領域の階層構造(親子関係)が登録される。
なお、図3の表形式データは、最終的には、図18に示すように領域分割され、各領域の階層構造(親子関係)が領域管理テーブル34に登録されるようになっている。図18において、領域IDの数字の数(桁数)が同一の領域は同一階層の領域を意味し、ある領域とその領域内に含まれる領域の関係は親子関係となる。
(コンテクスト情報の抽出処理(S12))
次に、図4のステップS12において実行されるコンテクスト情報の抽出処理について説明する。コンテクスト情報抽出部22は、ステップS12の処理として、図19のフローチャートに沿った処理を実行する。
図19の処理では、まず、ステップS80において、コンテクスト情報抽出部22が、対象セルの入力があるまで待機する。ここで、ユーザは、対象セルをクリックするなどして、文字列の選択を行う。対象セルがユーザによって入力されると、ステップS82に移行する。なお、本実施形態では、図20において符号Aで示すセル(文字列「Excel上で分析軸の変更、…」)がユーザによって選択されたものとする。なお、本明細書及び図面に記載の「Excel」は、登録商標である。
ステップS82に移行すると、コンテクスト情報抽出部22が、領域管理テーブル34から対象セルを含む領域を特定し、各領域の見出しを連結して出力する。この場合、コンテクスト情報抽出部22は、入力された対象セルの座標(19,27)を含む領域を領域管理テーブル34から特定する。具体的には、図21の領域管理テーブル34に格納されている領域の中から対象セルの座標(19,27)を含む領域を特定し、図21の最も右側の列のうち、特定した領域に対応する欄に「TRUE」を入力する。なお、「TRUE」が入力された領域の見出しは、図20において破線枠で示す文字である。そして、コンテクスト情報抽出部22は、各領域の見出しを連結して、図22に示すようなコンテクスト情報「3.運用イメージ (2)Analysis Servicesの場合※バッチによる更新処理が必要 『2』分析軸の設定 Excel上で分析軸の変更、ソート順の変更、グラフ作成等が可能。」を生成し、表示部93上に出力する。なお、上記コンテクスト情報の『2』は、図22における丸数字の2を意味している。
なお、領域管理テーブル34においては、各領域に対して親領域IDが対応付けられている。したがって、コンテクスト情報抽出部22は、ステップS82において、親領域IDを順に追跡することで、コンテクスト情報を生成するようにしてもよい。
これまでの説明からわかるように、本実施形態では、階層構造抽出部20により、文字列の占有領域を特定する特定部、及び領域を分割して表形式データの階層構造を認識する認識部、としての機能が実現されている。
以上詳細に説明したように、本実施形態によると、階層構造抽出部20は、表形式データの文字列をレイアウトしたときに、文字列が行方向に沿って伸び、かつ文字列が列方向に並んで配列される場合に、文字列それぞれの属性に基づき、表形式データをレイアウトしたときの文字列それぞれの占有領域を特定する(S20)。そして、階層構造抽出部20は、注目領域において文字列が存在しない空白が列方向に沿って延びており、かつ、空白の行方向の一側の領域の見出しと、他側の領域の見出しとが予め定めた見出し文字であった場合に、各領域を同一階層として表形式データの階層構造を認識する(S26)。これにより、本実施形態では、表形式データにおいて、行方向に伸びる文字列が行方向に配列される階層構造を有していても、表形式データの階層構造を認識することができる。
また、本実施形態では、階層構造抽出部20は、ステップS24の領域分割(縦)において、注目領域の行方向の先頭に位置する文字又は文字群が予め定めた見出し文字である文字列を特定して、特定した文字列に基づいて列方向(縦方向)に複数領域に分割する。そして、階層構造抽出部20は、分割後の領域に対して、ステップS26の領域分割(横)の処理を実行する。これにより、行方向に伸びる文字列が列方向及び行方向に配列される階層構造を有していても、表形式データの階層構造を認識することができる。
また、本実施形態では、ステップS24の領域分割(縦)と、ステップS26の領域分割(横)を大きい領域から順に再帰的に実行するため、表形式データの階層構造(親子関係)を適切に認識することができる。
また、本実施形態では、コンテクスト情報抽出部22は、文字列のいずれかの選択を受け付けると、領域管理テーブル34(表形式データの階層構造)に基づいて、選択された文字列のコンテクスト情報(階層構造に関する情報)を出力する。これにより、ユーザは選択した文字列のコンテクスト情報を確認することが可能となる。
なお、上記実施形態では、1つの装置(コンテクスト情報提供装置10)が、階層構造抽出部20と、コンテクスト情報抽出部22を有する場合について説明したがこれに限られるものではない。例えば、階層構造抽出部20を外部装置(例えばクラウドサーバなど)が有し、コンテクスト情報抽出部22を外部装置に接続された端末(クライアント端末など)が有していてもよい。
なお、上記実施形態では、図15において、空白列が1つある場合に、横方向に注目領域を2つの領域に分割する例について説明したが、これに限られるものではない。例えば、空白列が複数(n個)ある場合であれば、注目領域を横方向に(n+1)個の領域に分割するようにすればよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定し、
所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する、
処理をコンピュータに実行させるための階層構造認識プログラム。
(付記2) 前記表形式データの所定領域において、前記行方向の先頭に位置する文字又は文字群が予め定めたものである前記表示対象要素を特定して、特定した前記表示対象要素に基づいて前記表形式データを複数領域に分割し、該複数領域それぞれを前記注目領域とする処理を前記コンピュータに更に実行させる、付記1に記載の階層構造認識プログラム。
(付記3) 前記複数領域それぞれを前記階層構造における同一階層とする処理を前記コンピュータに更に実行させる、付記2に記載の階層構造認識プログラム。
(付記4) 前記認識する処理の後、前記注目領域又は前記第1、第2の表示対象要素群を前記所定領域として、前記注目領域とする処理と前記認識する処理とを実行する、ことを特徴とする付記2又は3に記載の階層構造認識プログラム。
(付記5) 前記表示対象要素のいずれかの選択を受け付け、
前記表形式データの階層構造に基づいて、選択された前記表示対象要素の前記階層構造に関する情報を出力する、ことを特徴とする付記1~4のいずれかに記載の階層構造認識プログラム。
(付記6) 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定し、
所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する、
処理をコンピュータが実行することを特徴とする階層構造認識方法。
(付記7) 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定する特定部と、
所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する認識部と、
を備える階層構造認識装置。
(付記8) 前記表形式データの所定領域において、前記行方向の先頭に位置する文字又は文字群が予め定めたものである前記表示対象要素を特定して、特定した前記表示対象要素に基づいて前記表形式データを複数領域に分割し、該複数領域それぞれを前記注目領域とする処理部を更に備える付記7に記載の階層構造認識装置。
(付記9) 前記処理部は、前記複数領域それぞれを前記階層構造における同一階層とすることを特徴とする付記8に記載の階層構造認識装置。
(付記10) 前記認識部の処理の後、前記注目領域又は前記第1、第2の表示対象要素群を前記所定領域として、前記処理部及び前記認識部が処理を実行する、ことを特徴とする付記8又は9に記載の階層構造認識装置。
(付記11) 前記表示対象要素のいずれかの選択を受け付け、前記表形式データの階層構造に基づいて、選択された前記表示対象要素の前記階層構造に関する情報を出力する出力部を更に備える付記7~10のいずれかに記載の階層構造認識装置。
10 コンテクスト情報提供装置(階層構造認識装置)
20 階層構造抽出部(特定部、認識部、処理部)
22 コンテクスト情報抽出部(出力部)

Claims (7)

  1. 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定し、
    所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する、
    処理をコンピュータに実行させるための階層構造認識プログラム。
  2. 前記表形式データの所定領域において、前記行方向の先頭に位置する文字又は文字群が予め定めたものである前記表示対象要素を特定して、特定した前記表示対象要素に基づいて前記表形式データを複数領域に分割し、該複数領域それぞれを前記注目領域とする処理を前記コンピュータに更に実行させる、請求項1に記載の階層構造認識プログラム。
  3. 前記複数領域それぞれを前記階層構造における同一階層とする処理を前記コンピュータに更に実行させる、請求項2に記載の階層構造認識プログラム。
  4. 前記認識する処理の後、前記注目領域又は前記第1、第2の表示対象要素群を前記所定領域として、前記注目領域とする処理と前記認識する処理とを実行する、ことを特徴とする請求項2又は3に記載の階層構造認識プログラム。
  5. 前記表示対象要素のいずれかの選択を受け付け、
    前記表形式データの階層構造に基づいて、選択された前記表示対象要素の前記階層構造に関する情報を出力する、ことを特徴とする請求項1~4のいずれか一項に記載の階層構造認識プログラム。
  6. 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定し、
    所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する、
    処理をコンピュータが実行することを特徴とする階層構造認識方法。
  7. 表形式データの表示対象要素それぞれをレイアウトしたときに、前記表示対象要素が行方向に沿って伸び、かつ前記表示対象要素が列方向に並んで配列される場合に、前記表示対象要素それぞれの属性に基づき、前記表形式データをレイアウトしたときの前記表示対象要素それぞれの占有領域を特定する特定部と、
    所定行数の注目領域において、前記占有領域が存在しない空白部分が前記列方向に沿って延びており、かつ、前記空白部分の前記行方向の一側に存在する第1の表示対象要素群の前記行方向の先頭に位置する文字又は文字群と、前記空白部分の前記行方向の他側に存在する第2の表示対象要素群の前記行方向の先頭に位置する文字又は文字群とが予め定めたものであった場合に、前記第1、第2の表示対象要素群を同一階層として前記表形式データの階層構造を認識する認識部と、
    を備える階層構造認識装置。
JP2018190967A 2018-10-09 2018-10-09 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置 Active JP7095541B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018190967A JP7095541B2 (ja) 2018-10-09 2018-10-09 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018190967A JP7095541B2 (ja) 2018-10-09 2018-10-09 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置

Publications (2)

Publication Number Publication Date
JP2020060905A JP2020060905A (ja) 2020-04-16
JP7095541B2 true JP7095541B2 (ja) 2022-07-05

Family

ID=70220820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018190967A Active JP7095541B2 (ja) 2018-10-09 2018-10-09 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置

Country Status (1)

Country Link
JP (1) JP7095541B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323291A (ja) 2006-05-31 2007-12-13 Nec Corp 文書処理システム、文書処理方法及び文書処理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821057B2 (ja) * 1987-07-10 1996-03-04 日本電気株式会社 文書画像解析方式
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
JP3254896B2 (ja) * 1994-04-18 2002-02-12 富士ゼロックス株式会社 文書画像処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323291A (ja) 2006-05-31 2007-12-13 Nec Corp 文書処理システム、文書処理方法及び文書処理プログラム

Also Published As

Publication number Publication date
JP2020060905A (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
US7853869B2 (en) Creation of semantic objects for providing logical structure to markup language representations of documents
JP3425408B2 (ja) 文書読取装置
JP6282116B2 (ja) キャプチャーされた画像データのスプレッドシートとの関連付け
US8107727B2 (en) Document processing apparatus, document processing method, and computer program product
US9269323B2 (en) Image layout for a display
US9542363B2 (en) Processing of page-image based document to generate a re-targeted document for different display devices which support different types of user input methods
JP2014522048A (ja) 漢字構成方法および装置、文字構成方法および装置、ならびにフォントライブラリ構築方法
CN111428457B (zh) 数据表的自动格式化
CN110705503B (zh) 生成目录结构化信息的方法和装置
KR102248823B1 (ko) 데이터 시각화 서비스 시스템, 방법 및 어플리케이션
US20170132484A1 (en) Two Step Mathematical Expression Search
US8326812B2 (en) Data search device, data search method, and recording medium
JP5551986B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2013254321A (ja) 画像処理装置、画像処理方法及びプログラム
JP7095541B2 (ja) 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置
JP2008108114A (ja) 文書処理装置および文書処理方法
JP6441142B2 (ja) 検索装置、方法及びプログラム
JPH08320914A (ja) 表認識方法および装置
CN103488619A (zh) 一种用于进行文档文件处理的方法及装置
JP3898645B2 (ja) 帳票書式編集装置および帳票書式編集プログラム
JP2016103150A (ja) 文書処理装置および文書処理プログラム
CN112633279A (zh) 文本识别方法、装置和系统
JP5219543B2 (ja) 情報処理装置及び情報処理方法及びプログラム
KR102313056B1 (ko) 사용자 맞춤형 폰트의 생성에 이용되는 시트, 사용자 맞춤형 폰트를 생성하는 디바이스 및 방법
JP2019192959A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220518

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220606

R150 Certificate of patent or registration of utility model

Ref document number: 7095541

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150