(57)【要約】  本発明の文書解析装置は、英文帳票のように、枠構造が非明示な帳票や、文字間隔が離れており、従来手法では項目文字行の抽出に失敗する場合や、文字行が途中で改行して離れた位置に存在するため、項目文字行抽出に失敗し、ひいては項目文字行と値文字行の抽出に影響を及ぼす帳票においても、正しく項目文字行を抽出することを課題とする。  入力装置と、入力装置に接続されたプロセッサと、プロセッサに接続された記憶装置と、前記プロセッサに接続された出力装置と、を備える文書処理装置であって、プロセッサは、入力装置を介して入力された、帳票文書各々について、文字の配置に基づき文字間の連接候補関係を抽出し、抽出した文字間連接関係に基づき項目名である可能性が高い連接関係を抽出し、抽出した連接関係に基づき、項目名文字列領域候補を抽出する手段と、項目名文字列領域候補が、項目名文字列であるか否かを判定する手段を持つことを特徴とする。
2016046988.tif 000002
【特許請求の範囲】
【請求項１】
帳票文書の画像を入力する入力装置と、前記入力装置に接続されたプロセッサと、前記プロセッサに接続された記憶装置と、前記プロセッサに接続された出力装置と、を備える文書処理装置であって、
前記記憶装置は、
項目名の文字列を含む項目名辞書を記憶し、
前記プロセッサは、
前記帳票文書の画像から、文字の配置に基づき文字間の２次元の連接関係を示す文字連接グラフを抽出する第１手段と、
前記抽出した文字連接グラフから、前記項目名辞書に格納されている項目名の文字列を探索することにより、前記帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する第２手段と、
を備えることを特徴とする文書処理装置。
【請求項２】
前記プロセッサは、
前記項目名辞書を参照し、前記第１手段で抽出した文字連接グラフのエッジに対し、当該エッジの２次元の連接方向および当該エッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加する第３手段を有し、
前記第２手段は、
前記文字連接グラフに対して、前記接続タイプフラグに基づいて定められた優先度に従った連接方向に、前記項目名の文字列を探索することを特徴とする請求項１記載の文書処理装置。
【請求項３】
前記項目名辞書は、
前記項目名の文字列に対応した項目ＩＤを記憶し、
前記プロセッサは、
前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目ＩＤを付加し、
前記第２手段は、
前記文字連接グラフに対して深さ優先探索を実施し、エッジの終端に至った場合には、それまでに探索した文字をグループ化してグループＩＤを付加し、
前記一つのグループＩＤが付加されたグループの文字に、単一の前記項目ＩＤが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
前記一つのグループＩＤが付加されたグループの文字に、異なる前記項目ＩＤが付加されている文字が含まれる場合は、文字に含まれる項目ＩＤが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項１記載の文書処理装置。
【請求項４】
前記項目名辞書は、
前記項目名の文字列に対応した項目ＩＤを記憶し、
前記プロセッサは、
前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目ＩＤを付加し、
前記第２手段は、
前記文字連接グラフに対して深さ優先探索を実施し、既に探索済みのノードに至った場合（ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く）には、それまでに探索した文字をグループ化してグループＩＤを付加し、
前記一つのグループＩＤが付加されたグループの文字に、単一の前記項目ＩＤが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
前記一つのグループＩＤが付加されたグループの文字に、異なる前記項目ＩＤが付加されている文字が含まれる場合は、文字に含まれる項目ＩＤが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項１記載の文書処理装置。
【請求項５】
前記第２手段は、
前記項目名領域候補となる文字の連接関係を抽出した結果、前記帳票文書の同一領域について、前記項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い候補を選択することを特徴とする請求項１記載の文書処理装置。
【請求項６】
帳票文書の画像を入力する入力装置と、前記入力装置に接続されたプロセッサと、前記プロセッサに接続された記憶装置と、前記プロセッサに接続された出力装置と、を備える文書処理装置における項目抽出方法であって、
前記記憶装置は、
項目名の文字列を含む項目名辞書を記憶し、
前記プロセッサは、
前記帳票文書の画像から、文字の配置に基づき文字間の２次元の連接関係を示す文字連接グラフを抽出し、
前記抽出した文字連接グラフから、前記項目名辞書に格納されている項目名の文字列を探索することにより、前記帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する、
ことを特徴とする項目抽出方法。
【請求項７】
前記プロセッサは、
前記項目名辞書を参照し、前記抽出した文字連接グラフのエッジに対し、当該エッジの２次元の連接方向および当該エッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加し、
前記文字連接グラフに対して、前記接続タイプフラグに基づいて定められた優先度に従った連接方向に、前記項目名の文字列を探索することを特徴とする請求項６記載の項目抽出方法。
【請求項８】
前記項目名辞書は、
前記項目名の文字列に対応した項目ＩＤを記憶し、
前記プロセッサは、
前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目ＩＤを付加し、
前記文字連接グラフに対して深さ優先探索を実施し、エッジの終端に至った場合には、それまでに探索した文字をグループ化してグループＩＤを付加し、
前記一つのグループＩＤが付加されたグループの文字に、単一の前記項目ＩＤが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
前記一つのグループＩＤが付加されたグループの文字に、異なる前記項目ＩＤが付加されている文字が含まれる場合は、文字に含まれる項目ＩＤが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項６記載の項目抽出方法。
【請求項９】
前記項目名辞書は、
前記項目名の文字列に対応した項目ＩＤを記憶し、
前記プロセッサは、
前記項目名辞書に含まれる前記項目名の文字列に含まれる文字を検出した場合には、当該文字に対応する前記項目ＩＤを付加し、
前記文字連接グラフに対して深さ優先探索を実施し、既に探索済みのノードに至った場合（ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く）には、それまでに探索した文字をグループ化してグループＩＤを付加し、
前記一つのグループＩＤが付加されたグループの文字に、単一の前記項目ＩＤが付加されている文字のみ含まれる場合は、当該グループを前記項目名領域候補として抽出し、
前記一つのグループＩＤが付加されたグループの文字に、異なる前記項目ＩＤが付加されている文字が含まれる場合は、文字に含まれる項目ＩＤが単一になるように前記グループの文字を分離し、複数の前記項目名領域候補を抽出することを特徴とする請求項６記載の項目抽出方法。
【請求項１０】
前記プロセッサは、
前記項目名領域候補となる文字の連接関係を抽出した結果、前記帳票文書の同一領域について、前記項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い候補を選択することを特徴とする請求項６記載の項目抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書解析技術に関し、特に、枠なしあるいは枠不完全帳票からの項目領域抽出、項目-値関係抽出方式に関する。
【背景技術】
【０００２】
昨今企業間取引は電子化が進みつつあり、紙ベースの他PDF等の電子文書形式での請求書、納品明細書のやり取りが行われている。実際の受発注状況を管理するには、これら多様なフォーマットを持つ請求書、納品書の内容を読み取り、ＤＢにて管理することが求められる。【０００３】
紙文書から表形式データの内容を抽出するものとしては、OCR帳票認識が挙げられる。OCR(Optical Character Reader)における帳票認識方式では、あらかじめ読み取り位置が決められている定型帳票を対象とするものが多かった。【０００４】
しかし、請求書のように多くの取引先企業との取引で発生する帳票は、あらかじめ決められた書式を前提とすることが難しく、項目名や配置が様々な帳票から、見出し項目と対応するデータ明細を抽出することが求められる。【０００５】
また、英文帳票では、枠線が完全に表示されていないものも多く存在し、また、必ずしも項目名の座標とデータ行の座標が整列しているとは限らず、見出し行の項目間の境界も、機械処理するには不明瞭なことが多い。【０００６】
以上のことから、項目名の配置が多様な帳票から、項目情報および項目情報に対応する値情報（項目の内容）を抽出する方式（特許文献１、特許文献２）が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１―１２３８２５
【特許文献２】特開２００９―０９３３０５
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１には、項目行と値行が同一列に存在していない、データ行が改行している請求明細書において、項目文字行と値文字行の対応関係を抽出することが開示されている。本開示方式では、枠非明示の振込依頼書をターゲットとしている。最初に、見出し行（項目文字行のセット）から抽出される項目名文字行集合の数と、明細行から抽出される値文字行集合の数が一致する見出し行と明細行のペアを探索し、項目文字行と値文字行の対応関係を抽出する。次に、固定幅項目（科目や口座番号等）を特定し、固定幅項目の幅を特定した後、他の明細行の、固定幅項目及び残り項目の特定を行う。【０００９】
しかしながら、特許文献１で開示されている方式では、項目文字行のデータが項目ごとに正しく抽出できていることが前提であり、項目名の文字間が極端に離れている場合や、途中改行している場合が考慮されていない。また、市販のＯＣＲにて電子化を行ったＰＤＦ帳票では、２行に跨る項目文字行の位置がバラバラになるといったケースがあるが、それは考慮されていない。【００１０】
特許文献２では、枠あり帳票を対象とし、項目名辞書と照合した文字行を項目文字行とし、その他の文字行との対応関係を、枠構造の隣接パターンや、文字列の属性を用いた汎用ルールに基づき推定する方式について開示している。しかしながら、開示方式では、枠が存在せず、項目文字行と値文字行が、必ずしも同一列内にない場合や、項目文字行が複数行に渡っている場合の処理については未開示である。【００１１】
本発明の文書解析装置は、英文帳票のように、枠構造が非明示あるいは不完全な帳票（例えば下線のみが引いている帳票等）や、文字間隔が離れており、従来手法では項目文字行の抽出に失敗する帳票や、文字行が途中で改行して離れた位置に存在する帳票に対応することを課題とする。特に上記の状況のため、項目文字行抽出に失敗し、ひいては項目文字行と値文字行の抽出に影響を及ぼす帳票においても、正しく項目文字行を抽出することを課題とする。
【課題を解決するための手段】
【００１２】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、帳票文書の画像を入力する入力装置と、入力装置に接続されたプロセッサと、プロセッサに接続された記憶装置と、プロセッサに接続された出力装置と、を備える文書処理装置である。この装置において、記憶装置は項目名の文字列を含む項目名辞書を記憶する。また、プロセッサは、帳票文書の画像から、文字の配置に基づき文字間の２次元の連接関係を示す文字連接グラフを抽出する第１手段と、抽出した文字連接グラフから、項目名辞書に格納されている項目名の文字列を探索することにより、帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する第２手段と、を備える。【００１３】
本発明の他の側面は、帳票文書の画像を入力する入力装置と、入力装置に接続されたプロセッサと、プロセッサに接続された記憶装置と、プロセッサに接続された出力装置と、を備える文書処理装置における項目抽出方法である。この方法において、記憶装置は、項目名の文字列を含む項目名辞書を記憶し、プロセッサは、帳票文書の画像から、文字の配置に基づき文字間の２次元の連接関係を示す文字連接グラフを抽出し、抽出した文字連接グラフから、項目名辞書に格納されている項目名の文字列を探索することにより、帳票文書で用いられている項目名の候補となる文字の連接関係を抽出し、抽出した連接関係に基づいて項目名領域候補を抽出する。【００１４】
本発明では、基本的に帳票の枠の情報を使用する必要がないので、枠無または枠が不完全な帳票の処理に適している。【００１５】
好ましい態様では、プロセッサは、項目名辞書を参照し、抽出した文字連接グラフのエッジに対し、エッジの２次元の連接方向（例えば、縦、横、斜め）およびエッジに連接された文字が項目名辞書に記憶された項目名の文字列に存在するか否かを示す、接続タイプフラグを付加する。項目名の文字列に存在するか否かの判定は、項目名文字列と完全同一の配列が文字連接グラフに存在するか否かで判定してもよい。そして、プロセッサは、文字連接グラフに対して、接続タイプフラグに基づいて定められた優先度に従った連接方向に、項目名の文字列を探索することができる。このような構成により、尤度の高い方向に探索を効率的に進めることができる。【００１６】
さらに他の好ましい態様では、項目名辞書は、項目名の文字列に対応した項目ＩＤを記憶している。プロセッサは、項目名辞書に含まれる項目名の文字列に含まれる文字を検出した場合には、文字に対応する項目ＩＤを付加する。項目名の文字列に存在するか否かの判定は、項目名文字列と完全同一の文字配列が文字連接グラフに存在するか否かで判定してもよい。完全同一の文字配列を探索していくほうが、項目でないものを項目と判断する誤りは少なくできる。【００１７】
そして、プロセッサは文字連接グラフに対して深さ優先探索を実施し、検索した文字をグループ分けする。グループ分け手法としては、エッジの終端に至った場合に、それまでに探索した文字をグループ化してグループＩＤを付加する。あるいは、既に探索済みのノードに至った場合（ただし、直前のエッジに連接された文字が前記項目名辞書に記憶された項目名の文字列に存在する場合を除く）には、それまでに探索した文字をグループ化してグループＩＤを付加する。これらの手法の片方のみを使用、または組み合わせて使用してもよい。【００１８】
そして、一つのグループＩＤが付加されたグループの文字に、単一の項目ＩＤが付加されている文字のみ含まれる場合は、当該グループを項目名領域候補として抽出し、一つのグループＩＤが付加されたグループの文字に、異なる前記項目ＩＤが付加されている文字が含まれる場合は、文字に含まれる項目ＩＤが単一になるようにグループの文字を分離し、複数の項目名領域候補を抽出する。【００１９】
また、他の好ましい態様では、プロセッサは、項目名領域候補となる文字の連接関係を抽出した結果、帳票文書の同一領域について、項目名領域候補が複数抽出された場合には、連接関係のコストを考慮することにより、可能性の高い結果を選択する。
【発明の効果】
【００２０】
枠が無いもしくは不完全な帳票において、項目文字行の文字間が相対的に離れている場合や、改行を含んで複数行にわたっている場合でも、正しく文字行を抽出することができる。【００２１】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例の枠不完全帳票からの項目領域抽出装置の構成を示すブロック図である。
【図２】本発明の一実施例の、項目-値関係抽出処理の全体フローチャートである。
【図３】本発明の一実施例の、項目文字行抽出処理の詳細フローチャートである。
【図４】文字連接関係抽出処理Ｓ３０１の内部フローチャートである。
【図５】文字連接閾値辞書１６２の例を表した表図である。
【図６】文字連接関係抽出処理Ｓ３０１による、文字連接関係抽出結果の具体例を示す平面図である。
【図７Ａ】文字列関係抽出処理Ｓ３０１の結果作成された、文字連接関係情報の記録形式の一例を示す行列図である。
【図７Ｂ】文字列関係抽出処理Ｓ３０１の結果作成された、文字連接関係情報の記録形式の一例を示す概念図である。
【図８】項目名辞書１６１の例を示す表図である。
【図９】連接タイプのフラグ付がなされたグラフの一例を説明するグラフ図である。
【図１０】探索結果の記録例を示す表図である。
【図１１】文字列連接コスト定義辞書１６５として情報保持手段１６に格納されている文字列連接コストデーブルの例を表す表図である。
【図１２】コスト最小探索パス選択の具体例を表す平面図である。
【図１３】本発明の一実施例の項目文字行と値文字行の関係を抽出する処理（Ｓ２０２）の例を示すフローチャートである。
【図１４Ａ】値文字行を起点とする項目文字行探索ステップＳ１３０２のフローチャートである。
【図１４Ｂ】縦方向の項目文字行探索（Ｓ１４０３）の詳細フローチャートである。
【図１４Ｃ】横方向の項目文字行探索（Ｓ１４０４）の詳細ローチャートである。
【図１５】項目文字行-値文字行関係の初回抽出（Ｓ１３０２）抽出の具体的例を示す概念図である。
【図１６】縦方向の項目-値関係を持つグループについて、ステップＳ１３０４を適用した場合の事例を示す概念図である。
【図１７】複数行で構成される値文字行を、レコード単位に分割するフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を用いて本発明の実施の形態を説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００２４】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００２５】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２６】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【実施例１】
【００２７】
＜全体装置構成例＞
図１は、本発明の実施形態の枠不完全帳票からの項目領域抽出装置の構成を示すブロック図である。枠不完全帳票とは、表領域を示す枠線が完全には明示されておらず、例えば下線のみが引かれている帳票等のことを言う。【００２８】
本実施形態の枠不完全帳票からの項目領域抽出装置１０は、帳票からのデータ属性抽出業務を支援するために、情報抽出を行う計算機であり、例えば、入力装置１１、表示装置１２、ＣＰＵ（Central Processing Unit）１３、印刷装置１４、ワークエリア１５及び情報保持手段１６を備える。【００２９】
入力装置１１は、入力端末１１０や画像入力装置１１１を含む。入力端末１１０は、ユーザによる指示等の入力を受け付ける装置であり、例えばキーボード、マウス又はタッチパネル等であってもよい。【００３０】
表示装置１２は、ユーザに種々の文字及び画像等の情報を出力する装置であり、例えば液晶ディスプレイのような画像表示装置であってもよい。【００３１】
ＣＰＵ１３は、ワークエリア１５に格納されたプログラムを実行することによって種々の機能を実現する処理装置である。以下に説明される各プログラムの処理は、実際にはＣＰＵ１３が実行する。【００３２】
印刷装置１４は、ユーザに提供する種々の情報を必要に応じて印刷する。【００３３】
ワークエリア１５は、ＣＰＵ１３によって実行されるプログラム等が格納される記憶領域である。本実施形態のワークエリア１５には、ＯＳ（Operating System）１５１、通信プログラム１５２、情報抽出プログラム１５３が格納される。ワークエリア１５にはさらに他のプログラムが格納されてもよいし、それらのプログラムをＣＰＵ１３が実行するときに参照されるデータが格納されてもよいし、ＣＰＵ１３が実行した処理の結果が格納されてもよい。これらのプログラムに基づく処理については後述する。【００３４】
情報保持手段１６は、ＣＰＵ１３が各プログラムに基づいて種々の処理を実行するために参照する情報を格納する。本実施形態の情報保持手段１６には、項目名辞書１６１、文字連接閾値辞書１６２、辞書探索パターン定義辞書１６３、レコード境界定義辞書１６４、文字連接コスト定義辞書１６５、が格納される。【００３５】
項目名辞書１６１は、“Price”、“Due Date”、“Amount”といった項目名文字列を保持し、枠不完全帳票からの項目領域抽出装置１０が、項目名領域侯を探索する際に参照される。【００３６】
文字連接関係閾値辞書１６２は、一時文字行抽出の際に、文字と文字のペアについて、連接候補とするかどうかを判断する際に参照される。【００３７】
探索優先順序定義辞書１６３は、文字連接グラフ上で、任意方向の辞書引きを行う際に、探索履歴に従って、探索方向の優先順位を決定する際に参照される。【００３８】
レコード境界定義辞書１６４は、複数行に渡るレコード文字列が存在する場合に、レコードの境界を判定する際に参照される。【００３９】
文字列連接コスト定義辞書は、文字連接グラフ上での項目名辞書引きを行った際に、互いに重なりあう文字列候補が見つかった場合に最適候補選択を行う際に参照される。【００４０】
ここで、レコード境界定義辞書１６４、文字列連接コスト定義辞書は１６５は必須ではない構成でも動作可能である。【００４１】
情報保持手段１６にはさらに他の情報が格納されてもよいが、本実施形態では説明を省略する。【００４２】
ワークエリア１５及び情報保持手段１６は、枠不完全帳票からの項目領域抽出装置システム１０に実装された記憶装置に相当する。典型的には、ワークエリア１５がＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶装置であり、情報保持手段１６がＨＤＤ（Hard Disk Drive）又はフラッシュメモリのような大容量かつ不揮発性の記憶装置であるが、その他の種類の記憶装置であってもよい。各プログラムは、情報保持手段１６に格納され、ＣＰＵ１３によって実行されるときにワークエリア１５にコピーされてもよい。また、情報保持手段１６に格納された辞書の少なくとも一部が、必要に応じて一時的にワークエリア１５にコピーされてもよい。【００４３】
枠不完全帳票からの項目領域抽出装置１０は、さらに、通信ネットワーク１８を介して一つ以上のファイルサーバ（ＦＳ)１９と接続されてもよい。各ファイルサーバ１９は、通信ネットワーク１８に接続された計算機であり、そのハードウエア構成は枠不完全帳票からの項目領域抽出装置１０と同様であってもよい。【００４４】
図１には、枠不完全帳票からの項目領域抽出装置１０が一つの計算機によって実現される例を示したが、枠不完全帳票からの項目領域抽出装置１０と同様の機能が複数の計算機によって実現されてもよい。例えば、階層項目辞書１６１等の各種の辞書が情報保持手段１６に格納される代わりにいずれかのファイルサーバ１９に格納されてもよい。その場合、解析対象となる文書もしくは、文書解析結果は、通信プログラム１５２によって送受信される。
＜処理全体フロー＞
図２は、本発明の実施形態である、帳票からの項目領域抽出装置１０が実行する、項目-値関係抽出処理の全体フローチャートである。このフローは、画像入力装置１１１から入力される帳票画像を受信し、通常のOCR処理を施したデータを受け取った状態から開始する。処理フローは、探索文脈考慮型の２次元項目名辞書照合による項目抽出（Ｓ２０１）と、項目-値関係抽出（Ｓ２０２）の２つのフローから構成される。各フローの詳細は、追って説明する。
＜項目抽出＞
図３は、本実施例の情報抽出プログラム１５３による、探索文脈考慮型の２次元項目名辞書照合処理（Ｓ２０１）による、項目文字行抽出処理の詳細フローチャートである。【００４５】
本実施例では、枠構造が不明確である、項目文字行を構成する文字の間隔が広い、改行しているといった場合に、項目文字列辞書との照合を効率的に行う方法および、照合結果に基づき、項目文字行を推定する方法について説明する。本実施例の目的は、特にOCRの結果として、項目文字行がずれたもの、縦に分離したものも、項目行として正しく処理することである。【００４６】
OCR処理を施したデータから文字コード及び座標一覧情報が与えられると、情報抽出プログラム１５３は、最初に文字間の連接情報を抽出し、文字連接グラフを生成する（Ｓ３０１）。文字連接関係生成ステップＳ３０１の詳細については、図４を用いて後述する。【００４７】
図４は、図３の文字連接関係抽出処理Ｓ３０１の内部フローチャートである。【００４８】
最初に、文字の座標に基づき左優先、上優先で文字の並べ替えを行う。文字座標としては、例えば文字の中心座標を用いる（Ｓ４０１）。【００４９】
次に、文字間の水平方向の距離の閾値に基づき、仮の文字行（「一時文字行」という）抽出を行う。閾値の設定は、一例として図５の水平文字間距離閾値５０１を使用する。抽出した一時文字行の隣り合う文字間には、水平文字連接関係を設定する（Ｓ４０２）。【００５０】
次に、一時文字行間の水平方向の距離の閾値に基づき、近接して隣接する一時文字行間の末尾文字と先頭文字の間に、水平文字連接関係を設定する。閾値の設定は、一例として図５の水平文字行間距離閾値５０２を使用する。（Ｓ４０３）。【００５１】
次に、抽出した一時文字行の先頭文字に、開始境界文字フラグ、末尾文字に、終了境界候補文字フラグを設定する（Ｓ４０４）。【００５２】
次に、スペースや大文字・小文字変化を手掛かりとして、一時文字行内に境界候補文字を設定する。例えば、一時文字行中の大文字（大文字が連続する場合には先頭の大文字のみ）に開始境界候補文字フラグ、大文字の前の文字に終了境界候補文字フラグを設定する。あるいは、一時文字行中のスペースの前の文字に終了境界候補文字フラグを、後の文字に開始境界候補文字フラグを設定する（Ｓ４０５）。【００５３】
最後に、上下隣接関係にある一時文字行ペアごとに、終了境界候補文字と開始境界候補文字の間に、文字連接関係を設定する。このとき、近接判断については、一例として、境界候補文字間のＹ座標の距離が、図５の距離閾値５０３以下であることを条件とする（Ｓ４０６）。【００５４】
図５は、文字連接閾値辞書１６２の例を表したものである。閾値５０１は、水平方向の一時文字行の抽出を行う際の、水平方向の文字間距離の上限を表す。ステップＳ４０２において、文字間がこの閾値５０１以上の場合には、同一一時文字行には含めない。閾値５０２は、一時文字行間の水平方向の隣接関係を判断する際の文字行間の水平方向距離の上限を表す。ステップＳ４０３において、水平文字連接関係を設定する際に用いる。一時文字行間がこの閾値５０２以上の場合には、一時文字行間に連接関係を付加しない。【００５５】
閾値５０３と閾値５０４は上記と同様に、縦方向の閾値を定める。閾値５０３は、一時文字行抽出時における、垂直方向文字間距離の閾値を表す。縦書きの一時文字行を抽出する際に用いる。閾値５０４は、一時文字行間の縦方向の隣接関係を判定する際の文字行間の縦方向距離の上限を表す。ステップＳ４０６において、縦方向の文字連接関係を設定する際に用いる。閾値の定義方法としては、文字の中心座標間の距離をとることができる。あるいは、Ｘ軸方向あるいはＹ軸方向の距離としてもよい。なお、図４のフローでは、横書きの英文帳票を想定しているため、縦方向の一時文字行抽出処理は省略しているが、必要により横方向の一時文字行抽出処理と同様に行うことができる。【００５６】
図６は、文字連接関係抽出処理Ｓ３０１による、文字連接関係抽出結果の具体例である。【００５７】
一時文字行６０１〜６０６は、文字間の水平方向の距離の閾値に基づく文字行抽出ステップＳ４０２により抽出された一時文字行を表す。図５の閾値テーブルを適用した例では、文字行内の水平方向の文字間距離が２ポイント以下である文字が一時文字行６０１〜６０６として抽出されている。【００５８】
一時文字行６０３と６０４、６０５と６０５の間には、文字連接関係設定ステップＳ４０３により、水平方向に隣接する一時文字行として、文字連接関係が設定されている。図５の閾値テーブルを適用した例では、文字行間の距離が距離閾値１００ポイント以下である一時文字行同士に、文字連接関係が設定される。【００５９】
文字ノード６１１、６１５、６１６、６１９、６２０、６２１等は、境界候補文字フラグの設定ステップＳ４０４によって設定された、境界候補文字の例を表す。そのうち太枠の網掛けで示す文字ノード６１１、６１６、６２０は、開始境界候補文字に対応し、太枠で示す文字ノード６１５、６１９、６２１は、終了境界候補文字に対応する。ただし、煩雑さを避けるために、ここの説明では全ての該当ノードを羅列していない。【００６０】
また、文字ノード６１２、６１３、６１４、６１７、６１８等は、境界候補文字フラグ設定ステップＳ４０５によって設定された境界候補文字の例を表す。これらは、一時文字列中に出現する大文字と当該大文字の前のノードが対応する。このうち、太枠で示す文字ノード６１２、６１３、６１７等が終了境界候補文字に対応し、太枠の網掛けで示す文字ノード６１４、６１８等が、開始境界候補文字ノードに対応する。ただし、煩雑さを避けるために、ここの説明では全ての該当ノードを羅列していない。【００６１】
最後に、ステップＳ４０６により、上下方向に隣接する一時文字列相互について、開始境界候補文字ノード（６１１、６１６、６２０、６１４、６１８）と、終了境界候補文字ノード（６１５、６１９、６２１、６１３，６１７）の間に、文字連接関係を設定する。例えば、終了境界候補文字ノード６１２と開始境界候補文字ノード６１６の間が、図５の閾値テーブルを適用した例では、文字ノード間の縦方向の距離が距離閾値５０ポイント以下である場合に、文字連接関係が設定される。また、同様に斜め方向の文字連接関係を設定してもよい。【００６２】
以上の説明では、書式は横書きを前提として説明したが、縦書きが前提の場合は、横方向と縦方向を入れ替えればよい。【００６３】
以上のステップＳ３０１までの処理により、連接可能性のある文字ノードが抽出された。上記説明より明らかなように、本実施例では帳票の枠構造を使用せずに文字連接関係を抽出し、以降の探索を行うので、枠無または枠が不完全な帳票の項目や文字抽出に適している。【００６４】
図７は、文字列関係抽出処理Ｓ３０１の結果作成された、文字連接関係情報の記録形式の一例である。図７Ａは行列形式で記録した記述例を、図７Ｂはそれに対応した文字ノードおよびエッジ配列を示す。【００６５】
図７Ａの行列７００は、図７Ａおよび図７Ｂに示される円で囲まれた数字で示す文字ノード間の、接続関係を表しており、２次元配列等のデータ構造で表現できる。文字ノード７１１、７１２、７１３、７１４は、連接関係記録対象の文字ノードの例を表す。行列要素７０１、７０２、７０３等は、文字ノード間の連接タイプの記録例を表す。行列要素”Ｈ”７０１は、文字ノード７１１と７１２が、水平方向に連接していることを表す。行列要素”Ｖ”７０２は、文字ノード７１１と７１３が、垂直方向に連接していることを表す。行列要素”Ｓ”７１５は、文字ノード７１３と７１６が、斜方向に連接していることを表す。行列要素”０”７０３は、文字ノード７１１と７１４が、連接関係を持たないことを表す。以上の構成により、文字連接関係抽出処理Ｓ３０１の結果を記録、参照することができる。【００６６】
図４の文字連接関係抽出処理説明において、一時文字行抽出の一例を示したが、図６あるいは図７に示す文字ノードの連結関係を得られる方式であれば、本手段に限定されるものではない。ＯＣＲ帳票認識等で用いられているその他の公知手段によって、一時文字行を抽出してもよい。【００６７】
図３に戻り説明を続ける。次に、ステップＳ３０１により生成された文字連接グラフに基づき、辞書との照合を行う（Ｓ３０２〜Ｓ３０５）。【００６８】
処理はグラフ上の全ノードを起点として（Ｓ３０２）、深さ優先のグラフ探索をしながら、項目名辞書１６１を用いて辞書引きを行う（Ｓ３０４）。辞書引きステップＳ３０４では、テキストから効率的に辞書引きを行うアルゴリズムとして、Common Prefix Search（[単語と辞書] 松本裕治 ほか. 単語と辞書 岩波講座言語の科学 Vol.3 pp.79-81）を用いてもよい。開始文字ノードを起点として、文字連接情報に従って深さ優先探索する際に、探索パスごとに、Common Prefix Searchを実行することで、文字連接グラフ上の辞書引きを行う。【００６９】
図８に、項目名辞書１６１の例を示す。【００７０】
フィールド８０１は、項目名文字列を格納するフィールドを表す。フィールド８０２は、各項目文字列に割り当てられる項目ＩＤを格納するフィールドを表す。フィールド８０３は、各項目が値として取り得る文字列の種類（属性）を格納するフィールドを表す。レコード８０４、８０５、は個別の辞書エントリーを表す。例えば、レコード８０４は、項目文字列として、“納品日”を持ち、項目ＩＤとして“100”を持ち、値文字行として、日付表現を表す“DATE”タイプを持つことを表す。属性フィールド８０３で用いられる“DATE”、“MONEY”等の文字列属性は、正規表現や、文字列集合によって定義しておくことができる。【００７１】
図３のステップＳ３０４の探索を行う際、文字連接関係を持つ全てのエッジを探索してもよいし、探索履歴に基づき、探索可能な文字連接を制約して効率化を図ってもよい。
【００７２】
表１は制約の例として、連接関係の条件と探索方向の対応例を示す、探索優先順序定義辞書１６３の例である。３つのルールが定義され、各ルールの関係はＯＲ条件である。【００７３】
【表１】
2016046988.tif 000003
【００７４】
項目名の辞書引きが終わったら、各連接エッジについて、辞書引き結果の有無と探索方向（例えば、水平（H）、垂直（V）、斜め（S））に基づき、接続タイプフラグを設定する（Ｓ３０５）。【００７５】
表２に、接続タイプの例を示す。【００７６】
【表２】
2016046988.tif 000004
【００７７】
表２は、文字連接関係の連接タイプ名と、各タイプ名が付与される条件を示した表を表す。例えば、連接関係H-DICは、水平方向の文字連接関係であり、かつ、辞書引きステップＳ３０４において、ある項目文字列の構成要素となった場合に設定される。表２に例示のタイプはあくまで設定例であり、これに限られるものではない。また、辞書引きステップＳ３０４において、ある項目文字列の構成要素となったノードについては、項目ＩＤ８０２を付与する。このとき、項目名の文字列に存在するか否かの判定は、項目名文字列と同一の配列が文字連接グラフに存在するか否かで判定してもよい。（Ｓ３０５）。【００７８】
ステップＳ３０３にて、全ノードを起点とする辞書引き及び文字間接続関係のタイプ付けが完了すると、図９に示すエッジに連接タイプのフラグが付加されたグラフが得られる。【００７９】
図９を用いて、ステップＳ３０２〜Ｓ３０５の結果得られた、連接タイプのフラグ付がなされたグラフを説明する。例えば、図１の項目名辞書１６１として、形態素解析等で用いられる一般名詞辞書を使用するケースを考える。この場合、項目辞書１６１に、「診療」という単語が存在するため、文字連接９０１は、「縦方向の連接関係（並び）」かつ「辞書あり」のため、タイプV-DICが付与される。また、「診療」と「科」は項目名辞書１６１に存在するが、「診療科」という単語が項目名辞書１６１に存在しない場合、文字連接９０２は、「縦方向の連接関係（並び）」かつ「辞書なし」であるため、タイプVが付与される。同様に、文字連接９０３は、タイプH、文字連接９０４はタイプH-DICが付与される。以上のように、ステップＳ３０５の結果、全ての文字連接関係について、表２にて例示したいずれかの連接タイプが付与されているものとする。また、項目名辞書に存在する「診療」を構成するノードには、該当する項目の項目ＩＤが付加されるものとする。【００８０】
次に、探索文脈考慮型の文字連接グラフ探索Ｓ３０６について説明する。ここでは、図９に示す状態から、文字連接グラフ上の深さ優先探索によるグルーピングを行う（Ｓ３０６）。文字連接グラフ上の左上文字ノード（順序が決められない場合は、左上側を優先）を起点として、深さ優先探索を行う。文字ノードが複数の連接関係を持つ場合には、以下の表３に一例を示すルールによって探索優先度を決定する。なお表３中「X  ＞  Y」は、探索方向XがYに優先されることを示す。また、制約条件「絶対値(水平距離（H-DIC）−水平距離（H）)  ＜  α」において、αは設定した閾値を表す。【００８１】
【表３】
2016046988.tif 000005
【００８２】
上記ルールでは、一度V方向に探索した場合、V方向を優先的に探索する。また、一度H方向に探索した場合、HまたはS方向への探索を優先する。また、辞書引きあり連接の後に、辞書引きなし連接（同一方向）が続く場合は、両者の距離に著しい差がない場合のみ、探索を許可している。【００８３】
表３のような探索のルールを設定しておくことで、効率的に尤度の高い項目候補を抽出することができる。表３は一例であり、帳票の種類や言語により種々のバリエーションが考えられる。例えば日本語であれば、縦方向と横方向の両方の探索可能性を残したほうがよい場合があるが、英語の場合は、横方向の探索優先度が高くなると考えられる。【００８４】
図３のステップＳ３０６において、１回の探索は、原則として探索エッジ方向がなくなるか、既に探索済みの文字ノードに到達するまで継続される。ただし、既に探索済みの文字ノードに到達した場合であっても、前回探索方向が、H-DIC、S-DIC、V-DICのいずれかの場合は、探索を継続する。意味のある文字配列になっている可能性があるからである。１回の探索が終了すると、その回に探索されたノード全体に、同一グループＩＤを割り当てる。このＩＤで示されたグループが、一つの文字行の候補となる。次に、未探索のノードのうち、最も左上に位置する文字ノードを選択し、探索処理を繰り返す。繰り返し毎にグループＩＤはインクリメントしてユニークなＩＤを割り当てる。未探索のノードが一つもなくなった時点で探索終了する。【００８５】
最後に、同一グループＩＤが付与された文字ノード群ごとに、文字座標に基づき左上から右下への並べ替えを行うことで、文字行を生成する（Ｓ３０７）。【００８６】
構成された各文字行について、各文字に割り当てられた項目ＩＤを確認する。項目ＩＤは、先にＳ３０５の処理において各文字ノードに付加されているが、代わりにまたは重複して、Ｓ３０６の探索時に付加してもよい。項目ＩＤが単一であれば、当該項目ＩＤを持つ項目文字行とする。また、項目ＩＤを複数持つ場合には、複数の項目が一つの文字行として抽出されていると考えられる。そこで、例えば項目ＩＤの境界文字にて文字行を分割し、分割された其々の文字行を項目文字行とする。項目ＩＤが存在しない、もしくは、文字行全体に対して、当該項目ＩＤを持つ文字の割合が、一定閾値以下の場合は、値文字行とする（Ｓ３０８）。【００８７】
図９を例に、図３のステップＳ３０６の処理例を説明する。【００８８】
図９の例では、文字ノード９１１が最初の探索起点となる。文字ノード９１１は、文字連接関係として、９０１および９０３を持つ。文字ノード９１１は、探索の起点ノードであるため、表３のルール０を適用し、連接関係９０１を選択する。到達した文字ノード９１２は、文字連接関係９０２及び、９０５を持つ。文字ノード９１２は探索途中ノードであり、前回の探索でV-DICタイプの連接関係を探索したため、表３の探索優先ルール１に基づき、連接関係９０２を選択し、文字ノード９１３に到達する。文字ノード９１３は、文字連接関係を持たないため、探索を終了する。【００８９】
次に、座標が最も左上にある未探索文字ノードとして、文字ノード９１４が見つかるため、同様の探索処理を、文字ノード９１４を起点として実行する。例えば、「診療」「科」のように、項目ＩＤを持つ“診療”と、項目ＩＤを持たない“科”から構成される“診療科”という文字行を、項目文字行として抽出する。【００９０】
以上の処理により、項目文字列の文字間隔が広い場合や、文字間隔が変化している場合、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。また、帳票文書の項目として、項目辞書に完全同一の項目が存在しない項目があった場合でも、項目名の表記の揺らぎに対して対応することができる。【００９１】
各辞書引きでは、文字ノードまたは、文字連接が重複して探索されることがあり得る。辞書項目の探索結果は、文字ノードのリストとして記録しておく。【００９２】
図１０に、探索結果の記録例を示す。例えば、辞書項目の辞書ＩＤ１００１に対して、該当する文字行の開始点の位置情報が探索結果１００２として記録される。例えば、辞書ＩＤの”００１”と”１２４”で探索結果”３””４”が重複している。この場合には、各探索記録結果の終端文字ノードにおいて、それまでの探索パスの組み合わせの中で、コスト最小となる探索パスを選択することにより、重複がある探索結果のうち、適切なものを選択することができる。コスト最小となる探索パスの選択には、ビタビアルゴリズム（L.R.Rabiner, "A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition", Proc. of The IEEE, pp.257-286 (1989)）を用いることで、効率的な探索が可能となる。【００９３】
図１１と図１２により、候補となる項目文字列または値文字列が、重複する文字列をカバーする場合に、優先度を付けて選択する処理の例を説明する。【００９４】
図１１は、文字列連接コスト定義辞書１６５として情報保持手段１６に格納されている文字列連接コストデーブルの例を表す。項目１１０１は、接続元の項目もしくは種類を表す。項目１１０２は、接続先の項目もしくは種類を表す。文字列が項目または項目の一部の場合においては、接続する項目、あるいは想定される項目に対して特定の関係を充足しているか否かが判別される。文字列相互の関係性については、項目名辞書等で定義しておくことができる。例えば、「経費」項目と「消耗品」項目には、上位―下位概念の関連フラグを付加しておく。上位―下位概念の関連フラグを付加された項目同士は、連接タイプ「階層関係」となる。関連フラグが存在しない項目同士は、連接タイプ「無関係」となる。文字列が数値列の場合においては、接続する項目、あるいは接続が想定される項目に対する条件を充足しているか否かが判別される。要求される条件は、項目名辞書等で項目ごとに定義しておくことができる。条件の例としては、桁数、単位、文字種類の制限等がある。項目１１０３は、接続元文字列と接続先文字列の接続タイプを表す。項目１１０４は、前記接続元文字列と接続先文字列が、前記接続タイプを持つ時の接続コストを表す。接続コストは、前記ビタビアルゴリズム等を用いたコスト最小探索パスの選択に用いる。接続関係１１１１〜１１１５は、それぞれ接続タイプレコードの事例を表す。接続コストが小さい接続が、より尤度が高いことになる。【００９５】
図１２は、図１１の接続コストを用いたコスト最小探索パス選択の具体例を表す。文字列１２０１〜１２０８は、ステップＳ３０２、Ｓ３０３の辞書引きにより抽出された、項目文字行の候補例を表す。文字連接関係１２１３〜１２１６は、ステップＳ３０１によって構成された文字連接の一部を表す。構成１２３０は、最適探索パス選択の第一の例を表す。構成１２４０は、最適探索パス選択の第二の例を表す。文字ノード１２５１は、現在、処置対象の文字ノードを表す。【００９６】
構成１２３０においては、図１１のテーブルより、文字ノード１２５１には、文字列１２０１と文字列１２０３が、接続関係１２１３にて接続し、「項目−値関係」なのでコスト１となる。文字列１２０２と文字列１２０４が、接続関係１２１４にて接続し、「項目−値関係」なのでコスト１となる。文字列１２０３と１２０４が、接続関係１２１１で接続する。文字列１２０３と１２０４は双方「[数値列]項目充足」なので、連接タイプは「配列関係」となりコストは１０となるケースを表す。この場合の探索パスコストは、
1  ＋  1  ＋  10  ＝  12
となる。【００９７】
これに対し、構成１２４０においては、図１１のテーブルより、文字列１２０５「Sub」と文字列１２０６「Total Weight」は、辞書では相互に関連性が定義されていないため、接続関係１２１５により連接タイプ「無関係」のコスト５０で連接する。また、文字列１２０６と文字列１２０８が、接続関係１２１６にて接続し、「項目−値関係」なのでコスト１となる。また、文字列１２０７と、文字列１２０８が、接続関係１２１２にて接続するが、文字列１２０７は「[数値列]項目未充足」で、文字列１２０８は「[数値列]項目充足」なので、並列関係のコスト９００となる。この場合の探索パスコストは、
50  ＋  1  ＋  900  ＝  951
となる。【００９８】
この場合、文字ノード１２５１の処理段階では、最小コスト探索パスとして、構成１２３０が選択されることとなる。以上のような選択プロセスを、文字ノードにつき逐次繰り返していくことで、もっと右側に配置される文字の其々、もしくは最も右下に配置される文字について決定することができる。上記例では、接続コストのみを用いて説明を行ったが、文字列“Sub”や、“Weight”、“Total Weight”等の文字列や、金額属性を持つ、“１，７００”等の出現コストを、項目名辞書１６１に記載することにより、上記、最適パスコストの掲載の際に足し算してもよい。以上説明したように、図１２に示すように、帳票上の同一領域について、文字列の連接関係の候補が複数抽出された場合でも、連接関係のコストを考慮することにより、可能性の高い結果を得ることができる。このような処理は、あるいは、項目文字列および値文字列が混在している場合だけでなく、項目文字列のみ、あるいは、値文字列のみの場合でも適用可能である。【００９９】
以上の一連の処理により、項目文字列の文字間隔が広い場合や、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。
＜項目-値関係抽出＞
図１３は、本実施例の項目領域抽出装置１０が実行する文書解析処理において、探索文脈考慮型の２次元項目名辞書照合（Ｓ２０１）にて抽出した文字行情報に基づき、項目文字行と値文字行の関係を抽出する処理（Ｓ２０２）のフローチャートを表す。【０１００】
最初に、文字行内のテキストパターンに基づき、項目-値関係探索対象外とする文字行を除外する（Ｓ１３０１）。除外判定条件(AND条件)を以下表４に例示する。【０１０１】
【表４】
2016046988.tif 000006
【０１０２】
次に、値文字行起点で、左上から右下にかけて縦横スロット漸進探索を行う（Ｓ１３０２）。このステップでは、各値文字行から、上方向、左方向に存在する項目文字行のうち、もっとも近いものを選択する。実際には、真横や縦に存在せず、斜め左に、項目文字行が存在することもある。初回の探索ステップ（Ｓ１３０２）では、レイアウト上、真横あるいは真上に存在はするが、無関係な項目文字行を誤抽出しないように、距離に対する閾値を小さくしておく。この処理については、図１４にて詳細に説明する。図１４のフローの特徴としては、値文字行を出発点として処理を行う点がある。【０１０３】
図１４Ａは、値文字行を起点とする項目文字行探索ステップＳ１３０２のフローチャートである。処理を開始する値文字行は、上優先、左優先で文字行間の順序付けを行った際の、最初の値文字行を開始文字行とする。文書解析で通常用いられる、ＸＹ−Ｃｕｔ等のブロック抽出を行っていた場合は、同じ尺度でブロックを並べ替えたあと、ブロック内で、上優先、左優先で、先頭値文字行を決定する。処理開始文字行が決定したら、縦方向候補の（隣接）文字行リストを作成する。このとき、仮想グリッド差分制約以内で、距離でソートする。水平位置が重なる場合は、Ｙ軸距離で比較し、重ならない場合は、マンハッタン距離で比較する（Ｓ１４０１）。【０１０４】
また、横方向候補の（隣接）文字行リストを作成する。このとき、仮想グリッド差分制約以内で、距離でソートする。垂直位置が重なる場合は、Ｘ軸距離で比較し、重ならない場合は、マンハッタン距離で比較する（Ｓ１４０２）。【０１０５】
これらは、値文字行全体について予め実行しておいてもよい。ステップＳ１４０１で作成された縦方向の文字行リスト、ステップＳ１４０２で作成された横方向の文字行リストについて、仮想領域分割結果の順（左上から右下）で、まず、縦方向の項目文字行探索を行い（Ｓ１４０３）、次に、横方向の項目文字行探索を行う（Ｓ１４０４）。【０１０６】
図１４Ｂに縦方向の項目文字行探索（Ｓ１４０３）の詳細フローを示す。【０１０７】
ステップＳ１４０１で作成された縦方向の隣接リストの最初の文字行のタイプをチェックする（Ｓ１４０４）。【０１０８】
項目文字行であった場合、縦方向項目文字行をセットする（Ｓ１４０６）。【０１０９】
値文字行であった場合、その値文字行に、縦方向項目文字行が付与済かチェックする（Ｓ１４０５）。【０１１０】
縦方向項目文字行が付与済の場合は、値文字行が持つ縦方向項目をコピーし、縦方向の項目文字行を付与する（Ｓ１４０７）。【０１１１】
また、その値文字行に、横方向項目文字行が付与済かつ横方向項目文字行候補を自身が持たないかチェック（Ｓ１４０８）し、付与されていれば、その値文字行が持つ横方向の項目文字行を付与（Ｓ１４０９）する。このように隣接する値文字行の情報をコピーすることにより、初期の文字行隣接関係の判断において距離閾値を厳しくしていても、距離が離れた文字行同士の依存関係を正しく抽出することができる。【０１１２】
図１４Ｃに横方向の項目文字行探索（Ｓ１４０４）の詳細フローを示す。【０１１３】
ステップＳ１４０２で作成された横方向の隣接リストの最初の文字行をチェック（Ｓ１４１０）し、項目文字行であった場合、横方向項目文字行をセットする（Ｓ１４１１）。【０１１４】
値文字行であった場合、その値文字行に、横方向項目文字行が付与済かチェック（Ｓ１４１２）し、付与されていれば、その値文字行が持つ横方向の項目文字行をコピーする（Ｓ１４１３）。【０１１５】
図１５に、項目文字行-値文字行関係の初回抽出（Ｓ１３０２）抽出の具体的例を示す。ステップ１、ステップ２、ステップ３、ステップ４は、各値文字行に対する、ステップＳ１４０３の実行例を表す。【０１１６】
文字行１５１１〜１５１５は、項目文字行の例を表す。文字行１５１０、１５１６〜１５１８は、値文字行の例を表す。【０１１７】
（ステップ１）先に述べたように、本実施例では値文字行に注目し、左上から右下に向かって検索する。ステップ１は、値文字行１５１０を処理途中の状態を表す。ステップＳ１４０１の結果として、縦方向の優先連接関係１５３１を持つ。隣接リストの最初の文字行１５１５のタイプは項目文字行のため、Ｓ１４０６を適用して、縦方向の項目文字行関係を設定する。ステップＳ１４０２の結果として、横方向の優先連接関係１５２１を持つ。隣接リストの最初の文字行１５１２のタイプは項目文字行のため、ステップＳ１４１１を適用して横方向の項目文字行関係を設定する。以上のステップにより、値文字行Ｓ１５１０の初回項目文字行探索は終了する。【０１１８】
（ステップ２）次に、処理対象を値文字行１５１６に移動する。値文字行１５１６は、ステップＳ１４０１の結果として、縦方向の優先連接文字行１５３２を持つ。隣接リストの最初の文字行１５１０のタイプは値文字行のため、ステップＳ１４０５を適用し、値文字行１５１０に紐づけられた項目文字行をチェックする。ステップ１で値文字行１５１０には、項目文字行１５１５が紐づけられているので、ステップＳ１４０７を適用し、値文字行１５１６にも項目文字行１５１５を紐づけ、縦方向の項目文字行関係１５３７を設定する。【０１１９】
また条件Ｓ１４０８を確認すると、隣接リストの最初の文字行１５１０には項目文字列１５１２が紐づけられている。また、値文字行１５１６自身は横方向の優先連接リストの先頭要素がないため、項目文字行はないと判断し、Ｓ１４０９により、項目文字列１５１２に対して横方向の値文字行関係１５２３を設定する。以上のステップにより、値文字行１５１６の項目文字行の初回探索は終了する。【０１２０】
（ステップ３）では、同様の処理により、値文字行１５１７には項目文字行１５１５と縦方向の文字行関係１５３３が、項目文字行１５１３と横方向の文字行関係１５２４が関連付けられる。【０１２１】
（ステップ４）では、同様の処理により、値文字行１５１８には項目文字行１５１５と縦方向の文字行関係１５３３が、項目文字行１５１４と横方向の文字行関係１５２６が関連付けられる。以降、同様のステップを繰り返していく。【０１２２】
以上により、項目文字行-値文字行関係の初回抽出（Ｓ１３０２）が完了する。【０１２３】
次に、初回の探索によって抽出した、項目文字行-値文字行の仮の関係に基づき、部分領域のグループ化を行う（Ｓ１３０３）。このグループ化は、同一方向（縦または横）の、項目文字行-値文字行関係同士で、近傍にあるものをまとめるプロセスとなる。また、前述の、ステップＳ１３０２において取りこぼした項目文字行、値文字行が、縦もしくは横関係を持つ項目文字行に隣接しており、他のグループとの隣接関係にない場合は、同一グループ内に含めるようにする。以下に、縦および横グループのまとめ条件について例示する。【０１２４】
表５は横グループをまとめる条件の例を示す表である。【０１２５】
【表５】
2016046988.tif 000007
【０１２６】
表６は縦グループをまとめる条件の例を示す表である。【０１２７】
【表６】
2016046988.tif 000008
【０１２８】
次に、各グループ内の文字行について、項目文字行-値文字行の関係が設定されていない文字行が存在する場合、各グループ内にて、項目文字行と値文字行の関係の再探索を行う。この最、項目文字行と値文字行間の“距離”に従い、距離の合計値が最小となる、項目-値の組み合わせを選択する（Ｓ１３０４）。この時、グループ内の項目文字行-値文字行の方向によって、探索時の距離尺度を変更する。例えば、横方向の探索を行う場合は、Ｙ座標の差分を距離とし、縦方向の探索を行う場合は、Ｘ座標の差分を距離とする。【０１２９】
図１６は、縦方向の項目-値関係を持つグループについて、ステップＳ１３０４を適用した場合の事例を示したものである。ここでは、初期解析結果を用いて同一方向部分領域抽出し、項目文字行、値文字行が一旦きまったもの、未確定のものを再解析して組合せを決定する。【０１３０】
＜状態１＞は、項目-値関係の初回の探索ステップＳ１３０２の適用後の状態を表し、帳票上に記載された文字列を抽出し、部分的に連接関係を付加した状態を示す。この状態では、条件を満たすペア間の距離により、候補関係を抽出している。文字行１６１１〜１６１６は、項目文字行を表す。文字行１６１７〜１６２１は、値文字行を表す。この段階では、項目文字行１６１５と値文字行１６１９が項目-値関係として抽出されている他、値文字行１６１７および値文字行１６２１の関係が未抽出である。【０１３１】
＜状態２＞は、部分領域のグループ化（縦方向グループ）ステップＳ１３０３の適用後の状態を表す。本実施例では、例えば抽出された文字列の配置、個数、連接関係に基づいて、所定の範囲をグループとして切り出す。グループ１６２１は、抽出された縦方向グループを表す。項目-値関係が未確定の文字行１６１１、１６１４、１６１７、１６２１を、同一グループ内に含む。【０１３２】
＜状態３＞は、ステップＳ１４０４の項目-値関係再抽出の結果で、縦方向のグループ１６２１内で、項目文字行１６１１〜１６１６と値文字行１６１７〜１６２１間で、距離の合計が最小となる組合せを選択した結果を表す。このように、初回の項目-値関係を抽出した結果を用いて部分（グループ）を抽出し、グループ内で、距離尺度や閾値を変更した上で、項目-値関係の再探索を行うことにより、項目文字列と値文字列が、縦横に整列していない場合においても、項目-値関係の抽出を正しく行うことができる。このとき、領域の種類（縦、横）につき、距離尺度を変更して、項目-値関係の合計距離尺度最小の組み合わせを選択する。また、項目辞書知識を用いて、例えば“tax”と金額文字列、”Date”と日付文字列、の距離を変形することで精度を向上することができる。【０１３３】
最後に、値文字行について、1つのレコードが改行により複数に渡ることがあるため、区切りの単位の設定を行う。通常、金額、個数、割合等の数値を表す文字行は改行して複数行にわたることはなく、１行で記述される。そのため、レコード境界定義辞書１６４に、金額、個数、割合等の文字列パターンを登録しておき、値文字行のレコードの境界とする。
これらの手掛かり文字がない場合は、値文字行間の距離閾値が一定以上（例えば閾値５０３）の値文字行については、別のレコードとする。【０１３４】
以上の一連の処理により、項目文字列の文字間隔が広い場合や、改行している場合、縦方向横方向の文字行が混在している場合においても、項目文字行の抽出を正しく行うことができる。
【実施例２】
【０１３５】
本実施例では、値文字行が改行によって複数行にわたる場合に、レコード単位に区切る第２の実施例について説明する。【０１３６】
図１７は、本発明の実施形態の枠不完全帳票からの項目領域抽出装置１０が実行する文書解析処理において、複数行で構成される値文字行を、レコード単位に分割するフローチャートである。最初に、文字連接関係生成ステップＳ１７０１にて、文字連接関係グラフを生成する。これは、ステップＳ３０１のものと同じである。次に、文字連接グラフ上の文字行開始点を探索開始点として登録する（Ｓ１７０２）。そして、頻出文字列抽出アルゴリズム（[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.）を用いて、無循環有向グラフ上の頻出文字列系列（２回以上とする）を抽出する（Ｓ１７０３）。通常、開始文字位置が異なり、互いに重なりあう複数の文字列系列が抽出されるため、座標を参照した際、より上側に出現する文字列系列を優先的に取得する（Ｓ１７０４）。最後に、取得した文字列系列の外接矩形座標の上側座標を、レコード境界の座標として設定する。【０１３７】
以上の手続きにより、値文字行が改行によって複数行にわたる場合に、レコード単位を推定することができる。【０１３８】
以上の説明でフローチャートにより示された構成は、単体のコンピュータで実行されるソフトウエアで実現することができる。コンピュータは単体で構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。発明の思想としては等価であり、変わるところがない。また、ソフトウエアで構成できる機能と同等の機能は、FPGA（Field Programmable Gate Array）、ASIC（Application Specific Integrated Circuit）などのハードウエアでも実現できる。そのような態様も本願発明の範囲に含まれる。【０１３９】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【産業上の利用可能性】
【０１４０】
本発明は、文書解析技術、特に、枠なしあるいは枠不完全帳票からの項目領域抽出に利用することができる。
【符号の説明】
【０１４１】
１０：データ変更指示内容に基づくデータ変更対象推定システム
１１：入力装置
１２：表示装置
１３：ＣＰＵ（Central Processing Unit）
１４：印刷装置
１５：ワークエリア
１５１  ＯＳ
１５２  通信プログラム
１５３  文書構造解析プログラム
１６：情報保持手段
１６１  項目名辞書現単語辞書
１６２  文字連接閾値辞書
１６３  探索優先順序定義辞書 
１６４  レコード境界定義辞書
１６５  文字列連接コスト定義辞書
１９  通信ネットワーク
２１  ファイルサーバ
【図１】
2016046988.tif 000009
【図２】
2016046988.tif 000010
【図３】
2016046988.tif 000011
【図４】
2016046988.tif 000012
【図５】
2016046988.tif 000013
【図６】
2016046988.tif 000014
【図７Ａ】
2016046988.tif 000015
【図７Ｂ】
2016046988.tif 000016
【図８】
2016046988.tif 000017
【図９】
2016046988.tif 000018
【図１０】
2016046988.tif 000019
【図１１】
2016046988.tif 000020
【図１２】
2016046988.tif 000021
【図１３】
2016046988.tif 000022
【図１４Ａ】
2016046988.tif 000023
【図１４Ｂ】
2016046988.tif 000024
【図１４Ｃ】
2016046988.tif 000025
【図１５】
2016046988.tif 000026
【図１６】
2016046988.tif 000027
【図１７】
2016046988.tif 000028
【国際調査報告】
2016046988.tif 000029
2016046988.tif 000030
2016046988.tif 000031
2016046988.tif 000032