JP6322291B2 - 文書処理装置および項目抽出方法 - Google Patents

文書処理装置および項目抽出方法 Download PDF

Info

Publication number
JP6322291B2
JP6322291B2 JP2016549887A JP2016549887A JP6322291B2 JP 6322291 B2 JP6322291 B2 JP 6322291B2 JP 2016549887 A JP2016549887 A JP 2016549887A JP 2016549887 A JP2016549887 A JP 2016549887A JP 6322291 B2 JP6322291 B2 JP 6322291B2
Authority
JP
Japan
Prior art keywords
character
item
item name
characters
group
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
JP2016549887A
Other languages
English (en)
Other versions
JPWO2016046988A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016046988A1 publication Critical patent/JPWO2016046988A1/ja
Application granted granted Critical
Publication of JP6322291B2 publication Critical patent/JP6322291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/768Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Character Input (AREA)

Description

本発明は、文書解析技術に関し、特に、枠なしあるいは枠不完全帳票からの項目領域抽出、項目-値関係抽出方式に関する。
昨今企業間取引は電子化が進みつつあり、紙ベースの他PDF等の電子文書形式での請求書、納品明細書のやり取りが行われている。実際の受発注状況を管理するには、これら多様なフォーマットを持つ請求書、納品書の内容を読み取り、DBにて管理することが求められる。
紙文書から表形式データの内容を抽出するものとしては、OCR帳票認識が挙げられる。OCR(Optical Character Reader)における帳票認識方式では、あらかじめ読み取り位置が決められている定型帳票を対象とするものが多かった。
しかし、請求書のように多くの取引先企業との取引で発生する帳票は、あらかじめ決められた書式を前提とすることが難しく、項目名や配置が様々な帳票から、見出し項目と対応するデータ明細を抽出することが求められる。
また、英文帳票では、枠線が完全に表示されていないものも多く存在し、また、必ずしも項目名の座標とデータ行の座標が整列しているとは限らず、見出し行の項目間の境界も、機械処理するには不明瞭なことが多い。
以上のことから、項目名の配置が多様な帳票から、項目情報および項目情報に対応する値情報(項目の内容)を抽出する方式(特許文献1、特許文献2)が開示されている。
特開2011―123825 特開2009―093305
特許文献1には、項目行と値行が同一列に存在していない、データ行が改行している請求明細書において、項目文字行と値文字行の対応関係を抽出することが開示されている。本開示方式では、枠非明示の振込依頼書をターゲットとしている。最初に、見出し行(項目文字行のセット)から抽出される項目名文字行集合の数と、明細行から抽出される値文字行集合の数が一致する見出し行と明細行のペアを探索し、項目文字行と値文字行の対応関係を抽出する。次に、固定幅項目(科目や口座番号等)を特定し、固定幅項目の幅を特定した後、他の明細行の、固定幅項目及び残り項目の特定を行う。
しかしながら、特許文献1で開示されている方式では、項目文字行のデータが項目ごとに正しく抽出できていることが前提であり、項目名の文字間が極端に離れている場合や、途中改行している場合が考慮されていない。また、市販のOCRにて電子化を行ったPDF帳票では、2行に跨る項目文字行の位置がバラバラになるといったケースがあるが、それは考慮されていない。
特許文献2では、枠あり帳票を対象とし、項目名辞書と照合した文字行を項目文字行とし、その他の文字行との対応関係を、枠構造の隣接パターンや、文字列の属性を用いた汎用ルールに基づき推定する方式について開示している。しかしながら、開示方式では、枠が存在せず、項目文字行と値文字行が、必ずしも同一列内にない場合や、項目文字行が複数行に渡っている場合の処理については未開示である。
本発明の文書解析装置は、英文帳票のように、枠構造が非明示あるいは不完全な帳票(例えば下線のみが引いている帳票等)や、文字間隔が離れており、従来手法では項目文字行の抽出に失敗する帳票や、文字行が途中で改行して離れた位置に存在する帳票に対応することを課題とする。特に上記の状況のため、項目文字行抽出に失敗し、ひいては項目文字行と値文字行の抽出に影響を及ぼす帳票においても、正しく項目文字行を抽出することを課題とする。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、帳票文書の画像を入力する入力装置と、入力装置に接続されたプロセッサと、プロセッサに接続された記憶装置と、プロセッサに接続された出力装置と、を備える文書処理装置である。この装置において、記憶装置は項目名の文字列を含む項目名辞書を記憶する。また、プロセッサは、帳票文書の画像から、文字の配置に基づき文字間の2次元の連接関係を示す文字連接グラフを抽出する第1手段と、抽出した文字連接グラフから、項目名辞書に格納されている項目名の文字列を探索することにより、帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する第2手段と、を備える。
本発明の他の側面は、帳票文書の画像を入力する入力装置と、入力装置に接続されたプロセッサと、プロセッサに接続された記憶装置と、プロセッサに接続された出力装置と、を備える文書処理装置における項目抽出方法である。この方法において、記憶装置は、項目名の文字列を含む項目名辞書を記憶し、プロセッサは、帳票文書の画像から、文字の配置に基づき文字間の2次元の連接関係を示す文字連接グラフを抽出し、抽出した文字連接グラフから、項目名辞書に格納されている項目名の文字列を探索することにより、帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する。
本発明では、基本的に帳票の枠の情報を使用する必要がないので、枠無または枠が不完全な帳票の処理に適している。
好ましい態様では、プロセッサは、項目名辞書を参照し、抽出した文字連接グラフのエッジに対し、エッジの2次元の連接方向(例えば、縦、横、斜め)およびエッジに連接された文字が項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加する。項目名の文字列に存在するか否かの判定は、項目名文字列と完全同一の配列が文字連接グラフに存在するか否かで判定してもよい。そして、プロセッサは、文字連接グラフに対して、接続タイプフラグに基づいて定められた優先度に従った連接方向に、項目名の文字列を探索することができる。このような構成により、尤度の高い方向に探索を効率的に進めることができる。
さらに他の好ましい態様では、項目名辞書は、項目名の文字列に対応した項目IDを記憶している。プロセッサは、項目名辞書に含まれる項目名の文字列に含まれる文字を検出した場合には、文字に対応する項目IDを付加する。項目名の文字列に存在するか否かの判定は、項目名文字列と完全同一の文字配列が文字連接グラフに存在するか否かで判定してもよい。完全同一の文字配列を探索していくほうが、項目でないものを項目と判断する誤りは少なくできる。
そして、プロセッサは文字連接グラフに対して深さ優先探索を実施し、検索した文字をグループ分けする。グループ分け手法としては、エッジの終端に至った場合に、それまでに探索した文字をグループ化してグループIDを付加する。あるいは、既に探索済みのノードに至った場合(ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く)には、それまでに探索した文字をグループ化してグループIDを付加する。これらの手法の片方のみを使用、または組み合わせて使用してもよい。
そして、一つのグループIDが付加されたグループの文字に、単一の項目IDが付加されている文字のみ含まれる場合は、当該グループを項目名領域候補として抽出し、一つのグループIDが付加されたグループの文字に、異なる前記項目IDが付加されている文字が含まれる場合は、文字に含まれる項目IDが単一になるようにグループの文字を分離し、複数の項目名領域候補を抽出する。
また、他の好ましい態様では、プロセッサは、項目名領域候補となる文字の連接関係を抽出した結果、帳票文書の同一領域について、項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い結果を選択する。
枠が無いもしくは不完全な帳票において、項目文字行の文字間が相対的に離れている場合や、改行を含んで複数行にわたっている場合でも、正しく文字行を抽出することができる。
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
本発明の一実施例の枠不完全帳票からの項目領域抽出装置の構成を示すブロック図である。 本発明の一実施例の、項目-値関係抽出処理の全体フローチャートである。 本発明の一実施例の、項目文字行抽出処理の詳細フローチャートである。 文字連接関係抽出処理S301の内部フローチャートである。 文字連接閾値辞書162の例を表した表図である。 文字連接関係抽出処理S301による、文字連接関係抽出結果の具体例を示す平面図である。 文字列関係抽出処理S301の結果作成された、文字連接関係情報の記録形式の一例を示す行列図である。 文字列関係抽出処理S301の結果作成された、文字連接関係情報の記録形式の一例を示す概念図である。 項目名辞書161の例を示す表図である。 連接タイプのフラグ付がなされたグラフの一例を説明するグラフ図である。 探索結果の記録例を示す表図である。 文字列連接コスト定義辞書165として情報保持手段16に格納されている文字列連接コストデーブルの例を表す表図である。 コスト最小探索パス選択の具体例を表す平面図である。 本発明の一実施例の項目文字行と値文字行の関係を抽出する処理(S202)の例を示すフローチャートである。 値文字行を起点とする項目文字行探索ステップS1302のフローチャートである。 縦方向の項目文字行探索(S1403)の詳細フローチャートである。 横方向の項目文字行探索(S1404)の詳細ローチャートである。 項目文字行-値文字行関係の初回抽出(S1302)抽出の具体的例を示す概念図である。 縦方向の項目-値関係を持つグループについて、ステップS1304を適用した場合の事例を示す概念図である。 複数行で構成される値文字行を、レコード単位に分割するフローチャートである。
以下、図面を用いて本発明の実施の形態を説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
<全体装置構成例>
図1は、本発明の実施形態の枠不完全帳票からの項目領域抽出装置の構成を示すブロック図である。枠不完全帳票とは、表領域を示す枠線が完全には明示されておらず、例えば下線のみが引かれている帳票等のことを言う。
本実施形態の枠不完全帳票からの項目領域抽出装置10は、帳票からのデータ属性抽出業務を支援するために、情報抽出を行う計算機であり、例えば、入力装置11、表示装置12、CPU(Central Processing Unit)13、印刷装置14、ワークエリア15及び情報保持手段16を備える。
入力装置11は、入力端末110や画像入力装置111を含む。入力端末110は、ユーザによる指示等の入力を受け付ける装置であり、例えばキーボード、マウス又はタッチパネル等であってもよい。
表示装置12は、ユーザに種々の文字及び画像等の情報を出力する装置であり、例えば液晶ディスプレイのような画像表示装置であってもよい。
CPU13は、ワークエリア15に格納されたプログラムを実行することによって種々の機能を実現する処理装置である。以下に説明される各プログラムの処理は、実際にはCPU13が実行する。
印刷装置14は、ユーザに提供する種々の情報を必要に応じて印刷する。
ワークエリア15は、CPU13によって実行されるプログラム等が格納される記憶領域である。本実施形態のワークエリア15には、OS(Operating System)151、通信プログラム152、情報抽出プログラム153が格納される。ワークエリア15にはさらに他のプログラムが格納されてもよいし、それらのプログラムをCPU13が実行するときに参照されるデータが格納されてもよいし、CPU13が実行した処理の結果が格納されてもよい。これらのプログラムに基づく処理については後述する。
情報保持手段16は、CPU13が各プログラムに基づいて種々の処理を実行するために参照する情報を格納する。本実施形態の情報保持手段16には、項目名辞書161、文字連接閾値辞書162、辞書探索パターン定義辞書163、レコード境界定義辞書164、文字連接コスト定義辞書165、が格納される。
項目名辞書161は、“Price”、“Due Date”、“Amount”といった項目名文字列を保持し、枠不完全帳票からの項目領域抽出装置10が、項目名領域侯を探索する際に参照される。
文字連接関係閾値辞書162は、一時文字行抽出の際に、文字と文字のペアについて、連接候補とするかどうかを判断する際に参照される。
探索優先順序定義辞書163は、文字連接グラフ上で、任意方向の辞書引きを行う際に、探索履歴に従って、探索方向の優先順位を決定する際に参照される。
レコード境界定義辞書164は、複数行に渡るレコード文字列が存在する場合に、レコードの境界を判定する際に参照される。
文字列連接コスト定義辞書は、文字連接グラフ上での項目名辞書引きを行った際に、互いに重なりあう文字列候補が見つかった場合に最適候補選択を行う際に参照される。
ここで、レコード境界定義辞書164、文字列連接コスト定義辞書は165は必須ではない構成でも動作可能である。
情報保持手段16にはさらに他の情報が格納されてもよいが、本実施形態では説明を省略する。
ワークエリア15及び情報保持手段16は、枠不完全帳票からの項目領域抽出装置システム10に実装された記憶装置に相当する。典型的には、ワークエリア15がDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶装置であり、情報保持手段16がHDD(Hard Disk Drive)又はフラッシュメモリのような大容量かつ不揮発性の記憶装置であるが、その他の種類の記憶装置であってもよい。各プログラムは、情報保持手段16に格納され、CPU13によって実行されるときにワークエリア15にコピーされてもよい。また、情報保持手段16に格納された辞書の少なくとも一部が、必要に応じて一時的にワークエリア15にコピーされてもよい。
枠不完全帳票からの項目領域抽出装置10は、さらに、通信ネットワーク18を介して一つ以上のファイルサーバ(FS)19と接続されてもよい。各ファイルサーバ19は、通信ネットワーク18に接続された計算機であり、そのハードウエア構成は枠不完全帳票からの項目領域抽出装置10と同様であってもよい。
図1には、枠不完全帳票からの項目領域抽出装置10が一つの計算機によって実現される例を示したが、枠不完全帳票からの項目領域抽出装置10と同様の機能が複数の計算機によって実現されてもよい。例えば、階層項目辞書161等の各種の辞書が情報保持手段16に格納される代わりにいずれかのファイルサーバ19に格納されてもよい。その場合、解析対象となる文書もしくは、文書解析結果は、通信プログラム152によって送受信される。
<処理全体フロー>
図2は、本発明の実施形態である、帳票からの項目領域抽出装置10が実行する、項目-値関係抽出処理の全体フローチャートである。このフローは、画像入力装置111から入力される帳票画像を受信し、通常のOCR処理を施したデータを受け取った状態から開始する。処理フローは、探索文脈考慮型の2次元項目名辞書照合による項目抽出(S201)と、項目-値関係抽出(S202)の2つのフローから構成される。各フローの詳細は、追って説明する。
<項目抽出>
図3は、本実施例の情報抽出プログラム153による、探索文脈考慮型の2次元項目名辞書照合処理(S201)による、項目文字行抽出処理の詳細フローチャートである。
本実施例では、枠構造が不明確である、項目文字行を構成する文字の間隔が広い、改行しているといった場合に、項目文字列辞書との照合を効率的に行う方法および、照合結果に基づき、項目文字行を推定する方法について説明する。本実施例の目的は、特にOCRの結果として、項目文字行がずれたもの、縦に分離したものも、項目行として正しく処理することである。
OCR処理を施したデータから文字コード及び座標一覧情報が与えられると、情報抽出プログラム153は、最初に文字間の連接情報を抽出し、文字連接グラフを生成する(S301)。文字連接関係生成ステップS301の詳細については、図4を用いて後述する。
図4は、図3の文字連接関係抽出処理S301の内部フローチャートである。
最初に、文字の座標に基づき左優先、上優先で文字の並べ替えを行う。文字座標としては、例えば文字の中心座標を用いる(S401)。
次に、文字間の水平方向の距離の閾値に基づき、仮の文字行(「一時文字行」という)抽出を行う。閾値の設定は、一例として図5の水平文字間距離閾値501を使用する。抽出した一時文字行の隣り合う文字間には、水平文字連接関係を設定する(S402)。
次に、一時文字行間の水平方向の距離の閾値に基づき、近接して隣接する一時文字行間の末尾文字と先頭文字の間に、水平文字連接関係を設定する。閾値の設定は、一例として図5の水平文字行間距離閾値502を使用する。(S403)。
次に、抽出した一時文字行の先頭文字に、開始境界文字フラグ、末尾文字に、終了境界候補文字フラグを設定する(S404)。
次に、スペースや大文字・小文字変化を手掛かりとして、一時文字行内に境界候補文字を設定する。例えば、一時文字行中の大文字(大文字が連続する場合には先頭の大文字のみ)に開始境界候補文字フラグ、大文字の前の文字に終了境界候補文字フラグを設定する。あるいは、一時文字行中のスペースの前の文字に終了境界候補文字フラグを、後の文字に開始境界候補文字フラグを設定する(S405)。
最後に、上下隣接関係にある一時文字行ペアごとに、終了境界候補文字と開始境界候補文字の間に、文字連接関係を設定する。このとき、近接判断については、一例として、境界候補文字間のY座標の距離が、図5の距離閾値503以下であることを条件とする(S406)。
図5は、文字連接閾値辞書162の例を表したものである。閾値501は、水平方向の一時文字行の抽出を行う際の、水平方向の文字間距離の上限を表す。ステップS402において、文字間がこの閾値501以上の場合には、同一一時文字行には含めない。閾値502は、一時文字行間の水平方向の隣接関係を判断する際の文字行間の水平方向距離の上限を表す。ステップS403において、水平文字連接関係を設定する際に用いる。一時文字行間がこの閾値502以上の場合には、一時文字行間に連接関係を付加しない。
閾値503と閾値504は上記と同様に、縦方向の閾値を定める。閾値503は、一時文字行抽出時における、垂直方向文字間距離の閾値を表す。縦書きの一時文字行を抽出する際に用いる。閾値504は、一時文字行間の縦方向の隣接関係を判定する際の文字行間の縦方向距離の上限を表す。ステップS406において、縦方向の文字連接関係を設定する際に用いる。閾値の定義方法としては、文字の中心座標間の距離をとることができる。あるいは、X軸方向あるいはY軸方向の距離としてもよい。なお、図4のフローでは、横書きの英文帳票を想定しているため、縦方向の一時文字行抽出処理は省略しているが、必要により横方向の一時文字行抽出処理と同様に行うことができる。
図6は、文字連接関係抽出処理S301による、文字連接関係抽出結果の具体例である。
一時文字行601〜606は、文字間の水平方向の距離の閾値に基づく文字行抽出ステップS402により抽出された一時文字行を表す。図5の閾値テーブルを適用した例では、文字行内の水平方向の文字間距離が2ポイント以下である文字が一時文字行601〜606として抽出されている。
一時文字行603と604、605と605の間には、文字連接関係設定ステップS403により、水平方向に隣接する一時文字行として、文字連接関係が設定されている。図5の閾値テーブルを適用した例では、文字行間の距離が距離閾値100ポイント以下である一時文字行同士に、文字連接関係が設定される。
文字ノード611、615、616、619、620、621等は、境界候補文字フラグの設定ステップS404によって設定された、境界候補文字の例を表す。そのうち太枠の網掛けで示す文字ノード611、616、620は、開始境界候補文字に対応し、太枠で示す文字ノード615、619、621は、終了境界候補文字に対応する。ただし、煩雑さを避けるために、ここの説明では全ての該当ノードを羅列していない。
また、文字ノード612、613、614、617、618等は、境界候補文字フラグ設定ステップS405によって設定された境界候補文字の例を表す。これらは、一時文字列中に出現する大文字と当該大文字の前のノードが対応する。このうち、太枠で示す文字ノード612、613、617等が終了境界候補文字に対応し、太枠の網掛けで示す文字ノード614、618等が、開始境界候補文字ノードに対応する。ただし、煩雑さを避けるために、ここの説明では全ての該当ノードを羅列していない。
最後に、ステップS406により、上下方向に隣接する一時文字列相互について、開始境界候補文字ノード(611、616、620、614、618)と、終了境界候補文字ノード(615、619、621、613,617)の間に、文字連接関係を設定する。例えば、終了境界候補文字ノード612と開始境界候補文字ノード616の間が、図5の閾値テーブルを適用した例では、文字ノード間の縦方向の距離が距離閾値50ポイント以下である場合に、文字連接関係が設定される。また、同様に斜め方向の文字連接関係を設定してもよい。
以上の説明では、書式は横書きを前提として説明したが、縦書きが前提の場合は、横方向と縦方向を入れ替えればよい。
以上のステップS301までの処理により、連接可能性のある文字ノードが抽出された。上記説明より明らかなように、本実施例では帳票の枠構造を使用せずに文字連接関係を抽出し、以降の探索を行うので、枠無または枠が不完全な帳票の項目や文字抽出に適している。
図7は、文字列関係抽出処理S301の結果作成された、文字連接関係情報の記録形式の一例である。図7Aは行列形式で記録した記述例を、図7Bはそれに対応した文字ノードおよびエッジ配列を示す。
図7Aの行列700は、図7Aおよび図7Bに示される円で囲まれた数字で示す文字ノード間の、接続関係を表しており、2次元配列等のデータ構造で表現できる。文字ノード711、712、713、714は、連接関係記録対象の文字ノードの例を表す。行列要素701、702、703等は、文字ノード間の連接タイプの記録例を表す。行列要素”H”701は、文字ノード711と712が、水平方向に連接していることを表す。行列要素”V”702は、文字ノード711と713が、垂直方向に連接していることを表す。行列要素”S”715は、文字ノード713と716が、斜方向に連接していることを表す。行列要素”0”703は、文字ノード711と714が、連接関係を持たないことを表す。以上の構成により、文字連接関係抽出処理S301の結果を記録、参照することができる。
図4の文字連接関係抽出処理説明において、一時文字行抽出の一例を示したが、図6あるいは図7に示す文字ノードの連結関係を得られる方式であれば、本手段に限定されるものではない。OCR帳票認識等で用いられているその他の公知手段によって、一時文字行を抽出してもよい。
図3に戻り説明を続ける。次に、ステップS301により生成された文字連接グラフに基づき、辞書との照合を行う(S302〜S305)。
処理はグラフ上の全ノードを起点として(S302)、深さ優先のグラフ探索をしながら、項目名辞書161を用いて辞書引きを行う(S304)。辞書引きステップS304では、テキストから効率的に辞書引きを行うアルゴリズムとして、Common Prefix Search([単語と辞書] 松本裕治 ほか. 単語と辞書 岩波講座言語の科学 Vol.3 pp.79-81)を用いてもよい。開始文字ノードを起点として、文字連接情報に従って深さ優先探索する際に、探索パスごとに、Common Prefix Searchを実行することで、文字連接グラフ上の辞書引きを行う。
図8に、項目名辞書161の例を示す。
フィールド801は、項目名文字列を格納するフィールドを表す。フィールド802は、各項目文字列に割り当てられる項目IDを格納するフィールドを表す。フィールド803は、各項目が値として取り得る文字列の種類(属性)を格納するフィールドを表す。レコード804、805、は個別の辞書エントリーを表す。例えば、レコード804は、項目文字列として、“納品日”を持ち、項目IDとして“100”を持ち、値文字行として、日付表現を表す“DATE”タイプを持つことを表す。属性フィールド803で用いられる“DATE”、“MONEY”等の文字列属性は、正規表現や、文字列集合によって定義しておくことができる。
図3のステップS304の探索を行う際、文字連接関係を持つ全てのエッジを探索してもよいし、探索履歴に基づき、探索可能な文字連接を制約して効率化を図ってもよい。
表1は制約の例として、連接関係の条件と探索方向の対応例を示す、探索優先順序定義辞書163の例である。3つのルールが定義され、各ルールの関係はOR条件である。
Figure 0006322291
項目名の辞書引きが終わったら、各連接エッジについて、辞書引き結果の有無と探索方向(例えば、水平(H)、垂直(V)、斜め(S))に基づき、接続タイプフラグを設定する(S305)。
表2に、接続タイプの例を示す。
Figure 0006322291
表2は、文字連接関係の連接タイプ名と、各タイプ名が付与される条件を示した表を表す。例えば、連接関係H-DICは、水平方向の文字連接関係であり、かつ、辞書引きステップS304において、ある項目文字列の構成要素となった場合に設定される。表2に例示のタイプはあくまで設定例であり、これに限られるものではない。また、辞書引きステップS304において、ある項目文字列の構成要素となったノードについては、項目ID802を付与する。このとき、項目名の文字列に存在するか否かの判定は、項目名文字列と同一の配列が文字連接グラフに存在するか否かで判定してもよい。(S305)。
ステップS303にて、全ノードを起点とする辞書引き及び文字間接続関係のタイプ付けが完了すると、図9に示すエッジに連接タイプのフラグが付加されたグラフが得られる。
図9を用いて、ステップS302〜S305の結果得られた、連接タイプのフラグ付がなされたグラフを説明する。例えば、図1の項目名辞書161として、形態素解析等で用いられる一般名詞辞書を使用するケースを考える。この場合、項目辞書161に、「診療」という単語が存在するため、文字連接901は、「縦方向の連接関係(並び)」かつ「辞書あり」のため、タイプV-DICが付与される。また、「診療」と「科」は項目名辞書161に存在するが、「診療科」という単語が項目名辞書161に存在しない場合、文字連接902は、「縦方向の連接関係(並び)」かつ「辞書なし」であるため、タイプVが付与される。同様に、文字連接903は、タイプH、文字連接904はタイプH-DICが付与される。以上のように、ステップS305の結果、全ての文字連接関係について、表2にて例示したいずれかの連接タイプが付与されているものとする。また、項目名辞書に存在する「診療」を構成するノードには、該当する項目の項目IDが付加されるものとする。
次に、探索文脈考慮型の文字連接グラフ探索S306について説明する。ここでは、図9に示す状態から、文字連接グラフ上の深さ優先探索によるグルーピングを行う(S306)。文字連接グラフ上の左上文字ノード(順序が決められない場合は、左上側を優先)を起点として、深さ優先探索を行う。文字ノードが複数の連接関係を持つ場合には、以下の表3に一例を示すルールによって探索優先度を決定する。なお表3中「X > Y」は、探索方向XがYに優先されることを示す。また、制約条件「絶対値(水平距離(H-DIC)−水平距離(H)) < α」において、αは設定した閾値を表す。
Figure 0006322291
上記ルールでは、一度V方向に探索した場合、V方向を優先的に探索する。また、一度H方向に探索した場合、HまたはS方向への探索を優先する。また、辞書引きあり連接の後に、辞書引きなし連接(同一方向)が続く場合は、両者の距離に著しい差がない場合のみ、探索を許可している。
表3のような探索のルールを設定しておくことで、効率的に尤度の高い項目候補を抽出することができる。表3は一例であり、帳票の種類や言語により種々のバリエーションが考えられる。例えば日本語であれば、縦方向と横方向の両方の探索可能性を残したほうがよい場合があるが、英語の場合は、横方向の探索優先度が高くなると考えられる。
図3のステップS306において、1回の探索は、原則として探索エッジ方向がなくなるか、既に探索済みの文字ノードに到達するまで継続される。ただし、既に探索済みの文字ノードに到達した場合であっても、前回探索方向が、H-DIC、S-DIC、V-DICのいずれかの場合は、探索を継続する。意味のある文字配列になっている可能性があるからである。1回の探索が終了すると、その回に探索されたノード全体に、同一グループIDを割り当てる。このIDで示されたグループが、一つの文字行の候補となる。次に、未探索のノードのうち、最も左上に位置する文字ノードを選択し、探索処理を繰り返す。繰り返し毎にグループIDはインクリメントしてユニークなIDを割り当てる。未探索のノードが一つもなくなった時点で探索終了する。
最後に、同一グループIDが付与された文字ノード群ごとに、文字座標に基づき左上から右下への並べ替えを行うことで、文字行を生成する(S307)。
構成された各文字行について、各文字に割り当てられた項目IDを確認する。項目IDは、先にS305の処理において各文字ノードに付加されているが、代わりにまたは重複して、S306の探索時に付加してもよい。項目IDが単一であれば、当該項目IDを持つ項目文字行とする。また、項目IDを複数持つ場合には、複数の項目が一つの文字行として抽出されていると考えられる。そこで、例えば項目IDの境界文字にて文字行を分割し、分割された其々の文字行を項目文字行とする。項目IDが存在しない、もしくは、文字行全体に対して、当該項目IDを持つ文字の割合が、一定閾値以下の場合は、値文字行とする(S308)。
図9を例に、図3のステップS306の処理例を説明する。
図9の例では、文字ノード911が最初の探索起点となる。文字ノード911は、文字連接関係として、901および903を持つ。文字ノード911は、探索の起点ノードであるため、表3のルール0を適用し、連接関係901を選択する。到達した文字ノード912は、文字連接関係902及び、905を持つ。文字ノード912は探索途中ノードであり、前回の探索でV-DICタイプの連接関係を探索したため、表3の探索優先ルール1に基づき、連接関係902を選択し、文字ノード913に到達する。文字ノード913は、文字連接関係を持たないため、探索を終了する。
次に、座標が最も左上にある未探索文字ノードとして、文字ノード914が見つかるため、同様の探索処理を、文字ノード914を起点として実行する。例えば、「診療」「科」のように、項目IDを持つ“診療”と、項目IDを持たない“科”から構成される“診療科”という文字行を、項目文字行として抽出する。
以上の処理により、項目文字列の文字間隔が広い場合や、文字間隔が変化している場合、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。また、帳票文書の項目として、項目辞書に完全同一の項目が存在しない項目があった場合でも、項目名の表記の揺らぎに対して対応することができる。
各辞書引きでは、文字ノードまたは、文字連接が重複して探索されることがあり得る。辞書項目の探索結果は、文字ノードのリストとして記録しておく。
図10に、探索結果の記録例を示す。例えば、辞書項目の辞書ID1001に対して、該当する文字行の開始点の位置情報が探索結果1002として記録される。例えば、辞書IDの”001”と”124”で探索結果”3””4”が重複している。この場合には、各探索記録結果の終端文字ノードにおいて、それまでの探索パスの組み合わせの中で、コスト最小となる探索パスを選択することにより、重複がある探索結果のうち、適切なものを選択することができる。コスト最小となる探索パスの選択には、ビタビアルゴリズム(L.R.Rabiner, "A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition", Proc. of The IEEE, pp.257-286 (1989))を用いることで、効率的な探索が可能となる。
図11と図12により、候補となる項目文字列または値文字列が、重複する文字列をカバーする場合に、優先度を付けて選択する処理の例を説明する。
図11は、文字列連接コスト定義辞書165として情報保持手段16に格納されている文字列連接コストデーブルの例を表す。項目1101は、接続元の項目もしくは種類を表す。項目1102は、接続先の項目もしくは種類を表す。文字列が項目または項目の一部の場合においては、接続する項目、あるいは想定される項目に対して特定の関係を充足しているか否かが判別される。文字列相互の関係性については、項目名辞書等で定義しておくことができる。例えば、「経費」項目と「消耗品」項目には、上位―下位概念の関連フラグを付加しておく。上位―下位概念の関連フラグを付加された項目同士は、連接タイプ「階層関係」となる。関連フラグが存在しない項目同士は、連接タイプ「無関係」となる。文字列が数値列の場合においては、接続する項目、あるいは接続が想定される項目に対する条件を充足しているか否かが判別される。要求される条件は、項目名辞書等で項目ごとに定義しておくことができる。条件の例としては、桁数、単位、文字種類の制限等がある。項目1103は、接続元文字列と接続先文字列の接続タイプを表す。項目1104は、前記接続元文字列と接続先文字列が、前記接続タイプを持つ時の接続コストを表す。接続コストは、前記ビタビアルゴリズム等を用いたコスト最小探索パスの選択に用いる。接続関係1111〜1115は、それぞれ接続タイプレコードの事例を表す。接続コストが小さい接続が、より尤度が高いことになる。
図12は、図11の接続コストを用いたコスト最小探索パス選択の具体例を表す。文字列1201〜1208は、ステップS302、S303の辞書引きにより抽出された、項目文字行の候補例を表す。文字連接関係1213〜1216は、ステップS301によって構成された文字連接の一部を表す。構成1230は、最適探索パス選択の第一の例を表す。構成1240は、最適探索パス選択の第二の例を表す。文字ノード1251は、現在、処置対象の文字ノードを表す。
構成1230においては、図11のテーブルより、文字ノード1251には、文字列1201と文字列1203が、接続関係1213にて接続し、「項目−値関係」なのでコスト1となる。文字列1202と文字列1204が、接続関係1214にて接続し、「項目−値関係」なのでコスト1となる。文字列1203と1204が、接続関係1211で接続する。文字列1203と1204は双方「[数値列]項目充足」なので、連接タイプは「配列関係」となりコストは10となるケースを表す。この場合の探索パスコストは、
1 + 1 + 10 = 12
となる。
これに対し、構成1240においては、図11のテーブルより、文字列1205「Sub」と文字列1206「Total Weight」は、辞書では相互に関連性が定義されていないため、接続関係1215により連接タイプ「無関係」のコスト50で連接する。また、文字列1206と文字列1208が、接続関係1216にて接続し、「項目−値関係」なのでコスト1となる。また、文字列1207と、文字列1208が、接続関係1212にて接続するが、文字列1207は「[数値列]項目未充足」で、文字列1208は「[数値列]項目充足」なので、並列関係のコスト900となる。この場合の探索パスコストは、
50 + 1 + 900 = 951
となる。
この場合、文字ノード1251の処理段階では、最小コスト探索パスとして、構成1230が選択されることとなる。以上のような選択プロセスを、文字ノードにつき逐次繰り返していくことで、もっと右側に配置される文字の其々、もしくは最も右下に配置される文字について決定することができる。上記例では、接続コストのみを用いて説明を行ったが、文字列“Sub”や、“Weight”、“Total Weight”等の文字列や、金額属性を持つ、“1,700”等の出現コストを、項目名辞書161に記載することにより、上記、最適パスコストの掲載の際に足し算してもよい。以上説明したように、図12に示すように、帳票上の同一領域について、文字列の連接関係の候補が複数抽出された場合でも、連接関係のコストを考慮することにより、可能性の高い結果を得ることができる。このような処理は、あるいは、項目文字列および値文字列が混在している場合だけでなく、項目文字列のみ、あるいは、値文字列のみの場合でも適用可能である。
以上の一連の処理により、項目文字列の文字間隔が広い場合や、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。
<項目-値関係抽出>
図13は、本実施例の項目領域抽出装置10が実行する文書解析処理において、探索文脈考慮型の2次元項目名辞書照合(S201)にて抽出した文字行情報に基づき、項目文字行と値文字行の関係を抽出する処理(S202)のフローチャートを表す。
最初に、文字行内のテキストパターンに基づき、項目-値関係探索対象外とする文字行を除外する(S1301)。除外判定条件(AND条件)を以下表4に例示する。
Figure 0006322291
次に、値文字行起点で、左上から右下にかけて縦横スロット漸進探索を行う(S1302)。このステップでは、各値文字行から、上方向、左方向に存在する項目文字行のうち、もっとも近いものを選択する。実際には、真横や縦に存在せず、斜め左に、項目文字行が存在することもある。初回の探索ステップ(S1302)では、レイアウト上、真横あるいは真上に存在はするが、無関係な項目文字行を誤抽出しないように、距離に対する閾値を小さくしておく。この処理については、図14にて詳細に説明する。図14のフローの特徴としては、値文字行を出発点として処理を行う点がある。
図14Aは、値文字行を起点とする項目文字行探索ステップS1302のフローチャートである。処理を開始する値文字行は、上優先、左優先で文字行間の順序付けを行った際の、最初の値文字行を開始文字行とする。文書解析で通常用いられる、XY−Cut等のブロック抽出を行っていた場合は、同じ尺度でブロックを並べ替えたあと、ブロック内で、上優先、左優先で、先頭値文字行を決定する。処理開始文字行が決定したら、縦方向候補の(隣接)文字行リストを作成する。このとき、仮想グリッド差分制約以内で、距離でソートする。水平位置が重なる場合は、Y軸距離で比較し、重ならない場合は、マンハッタン距離で比較する(S1401)。
また、横方向候補の(隣接)文字行リストを作成する。このとき、仮想グリッド差分制約以内で、距離でソートする。垂直位置が重なる場合は、X軸距離で比較し、重ならない場合は、マンハッタン距離で比較する(S1402)。
これらは、値文字行全体について予め実行しておいてもよい。ステップS1401で作成された縦方向の文字行リスト、ステップS1402で作成された横方向の文字行リストについて、仮想領域分割結果の順(左上から右下)で、まず、縦方向の項目文字行探索を行い(S1403)、次に、横方向の項目文字行探索を行う(S1404)。
図14Bに縦方向の項目文字行探索(S1403)の詳細フローを示す。
ステップS1401で作成された縦方向の隣接リストの最初の文字行のタイプをチェックする(S1404)。
項目文字行であった場合、縦方向項目文字行をセットする(S1406)。
値文字行であった場合、その値文字行に、縦方向項目文字行が付与済かチェックする(S1405)。
縦方向項目文字行が付与済の場合は、値文字行が持つ縦方向項目をコピーし、縦方向の項目文字行を付与する(S1407)。
また、その値文字行に、横方向項目文字行が付与済かつ横方向項目文字行候補を自身が持たないかチェック(S1408)し、付与されていれば、その値文字行が持つ横方向の項目文字行を付与(S1409)する。このように隣接する値文字行の情報をコピーすることにより、初期の文字行隣接関係の判断において距離閾値を厳しくしていても、距離が離れた文字行同士の依存関係を正しく抽出することができる。
図14Cに横方向の項目文字行探索(S1404)の詳細フローを示す。
ステップS1402で作成された横方向の隣接リストの最初の文字行をチェック(S1410)し、項目文字行であった場合、横方向項目文字行をセットする(S1411)。
値文字行であった場合、その値文字行に、横方向項目文字行が付与済かチェック(S1412)し、付与されていれば、その値文字行が持つ横方向の項目文字行をコピーする(S1413)。
図15に、項目文字行-値文字行関係の初回抽出(S1302)抽出の具体的例を示す。ステップ1、ステップ2、ステップ3、ステップ4は、各値文字行に対する、ステップS1403の実行例を表す。
文字行1511〜1515は、項目文字行の例を表す。文字行1510、1516〜1518は、値文字行の例を表す。
(ステップ1)先に述べたように、本実施例では値文字行に注目し、左上から右下に向かって検索する。ステップ1は、値文字行1510を処理途中の状態を表す。ステップS1401の結果として、縦方向の優先連接関係1531を持つ。隣接リストの最初の文字行1515のタイプは項目文字行のため、S1406を適用して、縦方向の項目文字行関係を設定する。ステップS1402の結果として、横方向の優先連接関係1521を持つ。隣接リストの最初の文字行1512のタイプは項目文字行のため、ステップS1411を適用して横方向の項目文字行関係を設定する。以上のステップにより、値文字行S1510の初回項目文字行探索は終了する。
(ステップ2)次に、処理対象を値文字行1516に移動する。値文字行1516は、ステップS1401の結果として、縦方向の優先連接文字行1532を持つ。隣接リストの最初の文字行1510のタイプは値文字行のため、ステップS1405を適用し、値文字行1510に紐づけられた項目文字行をチェックする。ステップ1で値文字行1510には、項目文字行1515が紐づけられているので、ステップS1407を適用し、値文字行1516にも項目文字行1515を紐づけ、縦方向の項目文字行関係1537を設定する。
また条件S1408を確認すると、隣接リストの最初の文字行1510には項目文字列1512が紐づけられている。また、値文字行1516自身は横方向の優先連接リストの先頭要素がないため、項目文字行はないと判断し、S1409により、項目文字列1512に対して横方向の値文字行関係1523を設定する。以上のステップにより、値文字行1516の項目文字行の初回探索は終了する。
(ステップ3)では、同様の処理により、値文字行1517には項目文字行1515と縦方向の文字行関係1533が、項目文字行1513と横方向の文字行関係1524が関連付けられる。
(ステップ4)では、同様の処理により、値文字行1518には項目文字行1515と縦方向の文字行関係1533が、項目文字行1514と横方向の文字行関係1526が関連付けられる。以降、同様のステップを繰り返していく。
以上により、項目文字行-値文字行関係の初回抽出(S1302)が完了する。
次に、初回の探索によって抽出した、項目文字行-値文字行の仮の関係に基づき、部分領域のグループ化を行う(S1303)。このグループ化は、同一方向(縦または横)の、項目文字行-値文字行関係同士で、近傍にあるものをまとめるプロセスとなる。また、前述の、ステップS1302において取りこぼした項目文字行、値文字行が、縦もしくは横関係を持つ項目文字行に隣接しており、他のグループとの隣接関係にない場合は、同一グループ内に含めるようにする。以下に、縦および横グループのまとめ条件について例示する。
表5は横グループをまとめる条件の例を示す表である。
Figure 0006322291
表6は縦グループをまとめる条件の例を示す表である。
Figure 0006322291
次に、各グループ内の文字行について、項目文字行-値文字行の関係が設定されていない文字行が存在する場合、各グループ内にて、項目文字行と値文字行の関係の再探索を行う。この最、項目文字行と値文字行間の“距離”に従い、距離の合計値が最小となる、項目-値の組み合わせを選択する(S1304)。この時、グループ内の項目文字行-値文字行の方向によって、探索時の距離尺度を変更する。例えば、横方向の探索を行う場合は、Y座標の差分を距離とし、縦方向の探索を行う場合は、X座標の差分を距離とする。
図16は、縦方向の項目-値関係を持つグループについて、ステップS1304を適用した場合の事例を示したものである。ここでは、初期解析結果を用いて同一方向部分領域抽出し、項目文字行、値文字行が一旦きまったもの、未確定のものを再解析して組合せを決定する。
<状態1>は、項目-値関係の初回の探索ステップS1302の適用後の状態を表し、帳票上に記載された文字列を抽出し、部分的に連接関係を付加した状態を示す。この状態では、条件を満たすペア間の距離により、候補関係を抽出している。文字行1611〜1616は、項目文字行を表す。文字行1617〜1621は、値文字行を表す。この段階では、項目文字行1615と値文字行1619が項目-値関係として抽出されている他、値文字行1617および値文字行1621の関係が未抽出である。
<状態2>は、部分領域のグループ化(縦方向グループ)ステップS1303の適用後の状態を表す。本実施例では、例えば抽出された文字列の配置、個数、連接関係に基づいて、所定の範囲をグループとして切り出す。グループ1621は、抽出された縦方向グループを表す。項目-値関係が未確定の文字行1611、1614、1617、1621を、同一グループ内に含む。
<状態3>は、ステップS1404の項目-値関係再抽出の結果で、縦方向のグループ1621内で、項目文字行1611〜1616と値文字行1617〜1621間で、距離の合計が最小となる組合せを選択した結果を表す。このように、初回の項目-値関係を抽出した結果を用いて部分(グループ)を抽出し、グループ内で、距離尺度や閾値を変更した上で、項目-値関係の再探索を行うことにより、項目文字列と値文字列が、縦横に整列していない場合においても、項目-値関係の抽出を正しく行うことができる。このとき、領域の種類(縦、横)につき、距離尺度を変更して、項目-値関係の合計距離尺度最小の組み合わせを選択する。また、項目辞書知識を用いて、例えば“tax”と金額文字列、”Date”と日付文字列、の距離を変形することで精度を向上することができる。
最後に、値文字行について、1つのレコードが改行により複数に渡ることがあるため、区切りの単位の設定を行う。通常、金額、個数、割合等の数値を表す文字行は改行して複数行にわたることはなく、1行で記述される。そのため、レコード境界定義辞書164に、金額、個数、割合等の文字列パターンを登録しておき、値文字行のレコードの境界とする。
これらの手掛かり文字がない場合は、値文字行間の距離閾値が一定以上(例えば閾値503)の値文字行については、別のレコードとする。
以上の一連の処理により、項目文字列の文字間隔が広い場合や、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。
本実施例では、値文字行が改行によって複数行にわたる場合に、レコード単位に区切る第2の実施例について説明する。
図17は、本発明の実施形態の枠不完全帳票からの項目領域抽出装置10が実行する文書解析処理において、複数行で構成される値文字行を、レコード単位に分割するフローチャートである。最初に、文字連接関係生成ステップS1701にて、文字連接関係グラフを生成する。これは、ステップS301のものと同じである。次に、文字連接グラフ上の文字行開始点を探索開始点として登録する(S1702)。そして、頻出文字列抽出アルゴリズム([1] J. Pei, J. Han, B. Mortazavi-Asl, H. Pinto, Q. Chen, U. Dayal and M-C. Hsu. "PrefixSpan: Mining Sequential Patterns Efficiently by PrefixProjected Pattern Growth". In. Proc. 2001 Int. Conf. Data Engineering (ICDE'01), pages 215-224, Heidelberg, Germany, April 2001.)を用いて、無循環有向グラフ上の頻出文字列系列(2回以上とする)を抽出する(S1703)。通常、開始文字位置が異なり、互いに重なりあう複数の文字列系列が抽出されるため、座標を参照した際、より上側に出現する文字列系列を優先的に取得する(S1704)。最後に、取得した文字列系列の外接矩形座標の上側座標を、レコード境界の座標として設定する。
以上の手続きにより、値文字行が改行によって複数行にわたる場合に、レコード単位を推定することができる。
以上の説明でフローチャートにより示された構成は、単体のコンピュータで実行されるソフトウエアで実現することができる。コンピュータは単体で構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。発明の思想としては等価であり、変わるところがない。また、ソフトウエアで構成できる機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウエアでも実現できる。そのような態様も本願発明の範囲に含まれる。
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
本発明は、文書解析技術、特に、枠なしあるいは枠不完全帳票からの項目領域抽出に利用することができる。
10:データ変更指示内容に基づくデータ変更対象推定システム
11:入力装置
12:表示装置
13:CPU(Central Processing Unit)
14:印刷装置
15:ワークエリア
151 OS
152 通信プログラム
153 文書構造解析プログラム
16:情報保持手段
161 項目名辞書現単語辞書
162 文字連接閾値辞書
163 探索優先順序定義辞書
164 レコード境界定義辞書
165 文字列連接コスト定義辞書
19 通信ネットワーク
21 ファイルサーバ

Claims (10)

  1. 帳票文書の画像を入力する入力装置と、前記入力装置に接続されたプロセッサと、前記プロセッサに接続された記憶装置と、前記プロセッサに接続された出力装置と、を備える文書処理装置であって、
    前記記憶装置は、
    項目名の文字列を含む項目名辞書を記憶し、
    前記プロセッサは、
    前記帳票文書の画像から、文字の配置に基づき文字間の2次元の連接関係を示す文字連接グラフを抽出する第1手段と、
    前記抽出した文字連接グラフから、前記項目名辞書に格納されている項目名の文字列を探索することにより、前記帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する第2手段と、
    を備えることを特徴とする文書処理装置。
  2. 前記プロセッサは、
    前記項目名辞書を参照し、前記第1手段で抽出した文字連接グラフのエッジに対し、当該エッジの2次元の連接方向および当該エッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加する第3手段を有し、
    前記第2手段は、
    前記文字連接グラフに対して、前記接続タイプフラグに基づいて定められた優先度に従った連接方向に、前記項目名の文字列を探索することを特徴とする請求項1記載の文書処理装置。
  3. 前記項目名辞書は、
    前記項目名の文字列に対応した項目IDを記憶し、
    前記プロセッサは、
    前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目IDを付加し、
    前記第2手段は、
    前記文字連接グラフに対して深さ優先探索を実施し、エッジの終端に至った場合には、それまでに探索した文字をグループ化してグループIDを付加し、
    前記一つのグループIDが付加されたグループの文字に、単一の前記項目IDが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
    前記一つのグループIDが付加されたグループの文字に、異なる前記項目IDが付加されている文字が含まれる場合は、文字に含まれる項目IDが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項1記載の文書処理装置。
  4. 前記項目名辞書は、
    前記項目名の文字列に対応した項目IDを記憶し、
    前記プロセッサは、
    前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目IDを付加し、
    前記第2手段は、
    前記文字連接グラフに対して深さ優先探索を実施し、既に探索済みのノードに至った場合(ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く)には、それまでに探索した文字をグループ化してグループIDを付加し、
    前記一つのグループIDが付加されたグループの文字に、単一の前記項目IDが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
    前記一つのグループIDが付加されたグループの文字に、異なる前記項目IDが付加されている文字が含まれる場合は、文字に含まれる項目IDが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項1記載の文書処理装置。
  5. 前記第2手段は、
    前記項目名領域候補となる文字の連接関係を抽出した結果、前記帳票文書の同一領域について、前記項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い候補を選択することを特徴とする請求項1記載の文書処理装置。
  6. 帳票文書の画像を入力する入力装置と、前記入力装置に接続されたプロセッサと、前記プロセッサに接続された記憶装置と、前記プロセッサに接続された出力装置と、を備える文書処理装置における項目抽出方法であって、
    前記記憶装置は、
    項目名の文字列を含む項目名辞書を記憶し、
    前記プロセッサは、
    前記帳票文書の画像から、文字の配置に基づき文字間の2次元の連接関係を示す文字連接グラフを抽出し、
    前記抽出した文字連接グラフから、前記項目名辞書に格納されている項目名の文字列を探索することにより、前記帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する、
    ことを特徴とする項目抽出方法。
  7. 前記プロセッサは、
    前記項目名辞書を参照し、前記抽出した文字連接グラフのエッジに対し、当該エッジの2次元の連接方向および当該エッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加し、
    前記文字連接グラフに対して、前記接続タイプフラグに基づいて定められた優先度に従った連接方向に、前記項目名の文字列を探索することを特徴とする請求項6記載の項目抽出方法。
  8. 前記項目名辞書は、
    前記項目名の文字列に対応した項目IDを記憶し、
    前記プロセッサは、
    前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目IDを付加し、
    前記文字連接グラフに対して深さ優先探索を実施し、エッジの終端に至った場合には、それまでに探索した文字をグループ化してグループIDを付加し、
    前記一つのグループIDが付加されたグループの文字に、単一の前記項目IDが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
    前記一つのグループIDが付加されたグループの文字に、異なる前記項目IDが付加されている文字が含まれる場合は、文字に含まれる項目IDが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項6記載の項目抽出方法。
  9. 前記項目名辞書は、
    前記項目名の文字列に対応した項目IDを記憶し、
    前記プロセッサは、
    前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目IDを付加し、
    前記文字連接グラフに対して深さ優先探索を実施し、既に探索済みのノードに至った場合(ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く)には、それまでに探索した文字をグループ化してグループIDを付加し、
    前記一つのグループIDが付加されたグループの文字に、単一の前記項目IDが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
    前記一つのグループIDが付加されたグループの文字に、異なる前記項目IDが付加されている文字が含まれる場合は、文字に含まれる項目IDが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項6記載の項目抽出方法。
  10. 前記プロセッサは、
    前記項目名領域候補となる文字の連接関係を抽出した結果、前記帳票文書の同一領域について、前記項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い候補を選択することを特徴とする請求項6記載の項目抽出方法。
JP2016549887A 2014-09-26 2014-09-26 文書処理装置および項目抽出方法 Active JP6322291B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/075744 WO2016046988A1 (ja) 2014-09-26 2014-09-26 文書処理装置および項目抽出方法

Publications (2)

Publication Number Publication Date
JPWO2016046988A1 JPWO2016046988A1 (ja) 2017-06-01
JP6322291B2 true JP6322291B2 (ja) 2018-05-09

Family

ID=55580546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016549887A Active JP6322291B2 (ja) 2014-09-26 2014-09-26 文書処理装置および項目抽出方法

Country Status (2)

Country Link
JP (1) JP6322291B2 (ja)
WO (1) WO2016046988A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7383882B2 (ja) * 2019-01-22 2023-11-21 富士フイルムビジネスイノベーション株式会社 情報処理装置、及び情報処理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3215176B2 (ja) * 1992-09-07 2001-10-02 株式会社東芝 文書画像処理装置及び文書画像処理方法
JP5380040B2 (ja) * 2008-10-30 2014-01-08 株式会社日立ソリューションズ 文書処理装置

Also Published As

Publication number Publication date
JPWO2016046988A1 (ja) 2017-06-01
WO2016046988A1 (ja) 2016-03-31

Similar Documents

Publication Publication Date Title
US6721451B1 (en) Apparatus and method for reading a document image
US20220222292A1 (en) Method and system for ideogram character analysis
JP5380040B2 (ja) 文書処理装置
JP2021043478A (ja) 情報処理装置、その制御方法及びプログラム
JP6623754B2 (ja) 表形式データ処理プログラム、方法及び装置
CN114118070A (zh) 文档目录生成方法及装置、电子设备和介质
JP6476886B2 (ja) キーワード抽出システム、キーワード抽出方法、及び、コンピュータ・プログラム
JP6067952B1 (ja) 翻字処理装置、翻字処理方法、翻字処理プログラム、及び情報処理装置
JPWO2009048149A1 (ja) 電子文書の同等判定システムおよび同等判定方法
JP6322291B2 (ja) 文書処理装置および項目抽出方法
JP5790820B2 (ja) 不整合検出装置、プログラム及び方法、修正支援装置、プログラム及び方法
JP7331551B2 (ja) 情報処理装置及び情報処理プログラム
JPWO2014170965A1 (ja) 文書処理方法、文書処理装置および文書処理プログラム
JP2011070529A (ja) 文書処理装置
JP4466241B2 (ja) 文書処理手法及び文書処理装置
JP6807201B2 (ja) 情報処理装置
JPWO2020240820A1 (ja) ファイル管理装置、ファイル管理方法、及びプログラム
JP2008210229A (ja) 知的財産情報検索装置、知的財産情報検索方法及び知的財産情報検索プログラム
JP4213558B2 (ja) 文書レイアウト解析プログラム、文書レイアウト解析プログラムを記憶したコンピュータ読み取り可能な記憶媒体、文書レイアウト解析方法および文書レイアウト解析装置
JP7377565B2 (ja) 図面検索装置、図面データベース構築装置、図面検索システム、図面検索方法、及びプログラム
US20230267274A1 (en) Mapping entities in unstructured text documents via entity correction and entity resolution
JP4922030B2 (ja) 文字列検索装置、方法及びプログラム
JP6475288B2 (ja) プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
JP5971571B2 (ja) 構造文書管理システム、構造文書管理方法及びプログラム
JP2021009591A (ja) データ取得装置、データ取得方法、およびデータ取得プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170123

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: 20180320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180406

R150 Certificate of patent or registration of utility model

Ref document number: 6322291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250