IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

<>
  • 特開-情報処理装置及びプログラム 図1
  • 特開-情報処理装置及びプログラム 図2
  • 特開-情報処理装置及びプログラム 図3
  • 特開-情報処理装置及びプログラム 図4
  • 特開-情報処理装置及びプログラム 図5
  • 特開-情報処理装置及びプログラム 図6
  • 特開-情報処理装置及びプログラム 図7
  • 特開-情報処理装置及びプログラム 図8
  • 特開-情報処理装置及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024030216
(43)【公開日】2024-03-07
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
   G06V 30/412 20220101AFI20240229BHJP
【FI】
G06V30/412
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022132899
(22)【出願日】2022-08-24
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】鈴木 裕介
【テーマコード(参考)】
5B029
【Fターム(参考)】
5B029CC21
5B029CC26
(57)【要約】
【課題】電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した領域にある文字列中に、別の属性キーに対応する文字列が含まれていても、属性キーに対応する文字列を抽出可能とする。
【解決手段】情報処理装置はプロセッサを備える。プロセッサは、電子ファイルから、属性キー10を取得するとともに属性キー10に対応する領域16を特定し、特定した領域16から文字列を抽出する。プロセッサは、抽出した文字列中に属性キー10の属性パターンに該当しない文字列が含まれる場合、抽出した文字列を構成する文字列の中から属性パターンに該当する文字列のみを属性キー10に対応する文字列12として特定する。
【選択図】図2
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、
特定した前記領域から文字列を抽出し、
抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、
情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列の中から、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を除外して、残った文字列を前記属性キーに対応する文字列として特定する、
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記プロセッサは、
前記電子ファイルにおいて対応する文字列がすでに見つかっている属性キーの属性パターンに該当する文字列を、前記抽出した前記文字列の中から除外する文字列としない、
情報処理装置。
【請求項4】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を、前記他の属性キーに対応する文字列として特定する、
情報処理装置。
【請求項5】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから取得された他の属性キーであってそれに対応する文字列が取得されなかった他の属性キーの属性パターンに該当する文字列を、当該他の属性キーに対応する文字列として特定する、
情報処理装置。
【請求項6】
請求項1に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる各文字列の位置関係に基づいて前記属性キーと他の属性キーに対応する文字列を特定する、
情報処理装置。
【請求項7】
請求項1~6のいずれか1つに記載の情報処理装置であって、
前記属性キーとそれに対応する文字列は表の形式で記載されており、
前記領域は、表を構成する1つのセルである、
情報処理装置。
【請求項8】
電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、
特定した前記領域から文字列を抽出し、
抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
帳票等の文書を表す電子ファイルに対して文字認識処理を実行し、文書中の項目名を表す属性キーと、その属性キーに対応する文字列とを抽出する技術が知られている。
【0003】
特許文献1には、項目名の単語を事前に辞書登録しておき、この辞書の項目名単語と帳票内の文字列とを照合し、照合に成功したものを項目名文字列とみなし、照合に失敗したものをデータ文字列とみなす装置が開示されている。この装置では、さらに、項目名文字列とデータ文字列との配置関係を解析することで、データ文字列と項目名文字列との対応関係を認識している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008-204226号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
文書を表す電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した領域にある文字列中に、別の属性キーに対応する文字列が含まれている場合がある。このような場合であっても、属性キーに対応する文字列を抽出できるようにすることが望まれている。
【0006】
本発明は、電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した領域にある文字列中に、別の属性キーに対応する文字列が含まれていても、属性キーに対応する文字列を抽出できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、プロセッサを備え、前記プロセッサは、電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、特定した前記領域から文字列を抽出し、抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、情報処理装置である。
【0008】
請求項2に係る発明は、請求項1に記載の情報処理装置であって、前記プロセッサは、抽出した前記文字列の中から、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を除外して、残った文字列を前記属性キーに対応する文字列として特定する、情報処理装置である。
【0009】
請求項3に係る発明は、請求項2に記載の情報処理装置であって、前記プロセッサは、前記電子ファイルにおいて対応する文字列がすでに見つかっている属性キーの属性パターンに該当する文字列を、前記抽出した前記文字列の中から除外する文字列としない、情報処理装置である。
【0010】
請求項4に係る発明は、請求項1に記載の情報処理装置であって、前記プロセッサは、抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を、前記他の属性キーに対応する文字列として特定する、情報処理装置である。
【0011】
請求項5に係る発明は、請求項1に記載の情報処理装置であって、前記プロセッサは、抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから取得された他の属性キーであってそれに対応する文字列が取得されなかった他の属性キーの属性パターンに該当する文字列を、当該他の属性キーに対応する文字列として特定する、情報処理装置である。
【0012】
請求項6に係る発明は、請求項1に記載の情報処理装置であって、前記プロセッサは、抽出した前記文字列に含まれる各文字列の位置関係に基づいて前記属性キーと他の属性キーに対応する文字列を特定する、情報処理装置である。
【0013】
請求項7に係る発明は、請求項1~6のいずれか1つに記載の情報処理装置であって、前記属性キーとそれに対応する文字列は表の形式で記載されており、前記領域は、表を構成する1つのセルである、情報処理装置である。
【0014】
請求項8に係る発明は、電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、特定した前記領域から文字列を抽出し、抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0015】
請求項1又は8に係る発明によれば、電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した領域にある文字列中に、別の属性キーに対応する文字列が含まれていても、属性キーに対応する文字列が抽出される。
【0016】
請求項2に係る発明によれば、電子ファイルから抽出されるべき他の属性キーの属性パターンにより、属性キーに対応する文字列が抽出される。
【0017】
請求項3に係る発明によれば、属性キーに対応する文字列として特定されるべき文字列の一部又は全部が除外される事態が抑制される。
【0018】
請求項4に係る発明によれば、電子ファイルから抽出されるべき他の属性キーに対応する文字列が特定される。
【0019】
請求項5に係る発明によれば、電子ファイルから取得された他の属性キーに対応する文字列が特定される。
【0020】
請求項6に係る発明によれば、抽出した文字列に含まれる各文字列の位置関係により、属性キーと他の属性キーに対応する文字列が特定される。
【0021】
請求項7に係る発明によれば、電子ファイル内の表部分から、属性キーが取得されるとともに属性キーに対応する文字列が特定される。
【図面の簡単な説明】
【0022】
図1】属性キーとその対応文字列が対となった形態(データ(A))と、1つの属性キーと複数の属性キーの対応文字列が対となった形態(データ(B))を例示する図である。
図2】属性キーの対応文字列を特定する方法を説明するための図である。
図3】情報処理装置の機能ブロック図である。
図4】情報処理装置が行う処理を示すフローチャートである。
図5】属性キーの対応文字列を特定する方法を説明するための図である。
図6】データを例示する図である。
図7】属性キーの対応文字列を特定する方法を説明するための図である。
図8】属性キーの対応文字列を特定する方法を説明するための図である。
図9】コンピュータのハードウエア構成を例示する図である。
【発明を実施するための形態】
【0023】
以下、本発明に係る実施形態について添付図面を確認しながら詳細に説明する。以下で述べる構成は、説明のための例示であって、情報処理装置の仕様等に合わせて適宜変更が可能である。また、以下において複数の実施形態や変形例などが含まれる場合、それらの特徴部分を適宜に組み合わせて用いることは当初から想定されている。全ての図面において同一の要素には同一の符号を付し、重複する説明を省略する。
【0024】
以下では、電子ファイルから、属性キーを取得するとともに属性キーに対応する領域を特定し、特定した領域から文字列を抽出して、属性キーに対応する文字列を特定する情報処理装置についての実施形態を説明する。
【0025】
図1は、属性キー10とその対応文字列12が対となった形態(データ(A))と、1つの属性キー10と複数の属性キーの対応文字列12が対となった形態(データ(B))を例示する図である。情報処理装置は、文書を表す電子ファイルに対して文字認識処理を実行し、文書中の属性キー10と、その属性キーに対応する文字列12(対応文字列12と言う)を抽出する。属性キーは、文字列の属性を表す項目名である。
【0026】
電子ファイルは、情報処理装置で扱われる電子データである。電子ファイルは、特に限定されないが、例えば紙文書を画像読取装置で読み取って得られた画像ファイルやPDF(Portable Document Format)ファイル等であってよい。画像読取装置で読み取られる紙文書は、例えば手書きされた文書、印刷装置で印刷された文書、スタンプ(ゴム印等)が押された文書等であってよい。
【0027】
属性キー10と対応文字列12は、例えば図1に示すように表の形式で記載されている。なお、属性キー10と対応文字列12は、それらの対応関係が認識できるように記載されていればよく、表の形式で記載されていなくてもよい。属性キー10と対応文字列12は、罫線を伴わずに記載されていてもよい。なお、以下、文書における属性キー10と対応文字列12が記載された部分を「データ」と記す。
【0028】
図1のデータ(A)に示すように、データには、上下に属性キー10を並べて、各属性キー10の右側に対応文字列12を記載したものがある。また、図示されていないが、データには、左右に属性キー10を並べて、各属性キー10の下側に対応文字列12を記載したものもある。このようなデータの中には、図1のデータ(B)に示すように、属性キー10に対応する文字列(対応文字列12)が存在する領域に、別の属性キーに対応する文字列が含まれていることがある。
【0029】
データ(B)では、属性キー10「氏名」に対応する文字列が存在する領域に、その属性キーの対応文字列12である「富士 玄太郎」に加えて、別の属性キー「生年月日」の対応文字列「平成30年2月9日」と、さらに別の属性キー「年齢」の対応文字列「(3歳)」が含まれている。以下説明するように、情報処理装置は、このようなデータであっても、属性キー10の対応文字列12を特定することが可能となっている。
【0030】
図2は、属性キー10の対応文字列12を特定する方法を概略的に説明するための図である。情報処理装置は、データ(1)に示すように、文書から属性キー10を取得するとともに属性キー10に対応する領域16(対応領域16と言う)を特定する。そして、情報処理装置は、対応領域16に含まれる文字列を一体として抽出する。以下、対応領域16に含まれる1つ又は複数の文字列の一体物を、対応文字列候補14と言う。
【0031】
そして、情報処理装置は、対応文字列候補14の中に属性キー10の属性パターンに該当しない文字列が含まれている場合には、属性辞書20(詳細は後述)を用いて、対応文字列候補14を構成する文字列の中から属性キー10の属性パターンに該当する文字列のみを属性キー10の対応文字列12として特定する。一例として、情報処理装置は、対応文字列候補14の中から、文書から抽出されるべき他の属性キーの属性パターンに該当する文字列を除外して、残った文字列を属性キー10の対応文字列12として特定する。なお、図2のデータ(1)では、除外された文字例に取消線が付されている。
【0032】
なお、以下で説明する各図のデータは、図2のデータ(1)のように属性キー10の右側に対応文字列12を記載した形態であるが、データは、図2のデータ(2)のように属性キー10の下側に対応文字列12を記載した形態であってもよい。情報処理装置が扱うデータの形態は、限定されない。
【0033】
図3は、情報処理装置の機能ブロック図である。情報処理装置は、ファイル入力部102、OCR(Optical Character Reader)部104、属性抽出部106、属性辞書20、および属性情報出力部108を備える。各部は、プロセッサ1002(図9参照)を用いて実現することができ、属性辞書20は、例えば補助記憶装置1006(図9参照)に記憶される。
【0034】
ファイル入力部102は、文書を表す電子ファイルを受け付けて、OCR部104に転送する。OCR部104は、電子ファイルのデータに対して文字認識処理を実行し、文字情報を抽出する。なお、情報処理装置は、電子ファイルのデータが表の形式で記載されている場合には、ファイル入力部102と属性抽出部106の間に表解析部をさらに備えてもよい。表解析部は、ファイル入力部102から電子ファイルを受け取り、電子ファイルのデータの表構造を解析して、セルの位置を特定する。
【0035】
属性抽出部106は、OCR部104からの文字情報と、属性辞書20とを用いて、属性キー10を取得する。また、属性抽出部106は、文書内において取得された属性キー10の位置情報を用いて、属性キー10に対応する領域(対応領域16)を特定する。例えば、属性抽出部106は、データが表の形式で記載されていない場合には、文書内において属性キー10から予め定められた方向に、予め定められた距離だけ離れた位置にある、予め定められた大きさ及び形状の領域を、対応領域16としてもよい。また、例えば、属性抽出部106は、データが表の形式で記載されている場合には、表解析部からのセルの位置情報を用いて、属性キー10から予め定められた方向にあるセルの領域を、対応領域16としてもよい。
【0036】
そして、属性抽出部106は、対応領域16から対応文字列候補14を抽出する。次に、属性抽出部106は、属性辞書20を用いて対応文字列候補14から、属性キー10に対応する対応文字列12を特定する。
【0037】
属性情報出力部108は、属性抽出部106で特定された、属性キー10と対応文字列12の組み合わせを、属性情報として出力する。なお、情報処理装置は、属性情報を、例えば表示装置(ディスプレイ)、印刷装置、他の情報処理装置等に出力してもよい。
【0038】
図4は、情報処理装置が行う処理を示すフローチャートである。図5は、図4のフローチャートの説明で例示する属性辞書20Aとデータ(a)である。
【0039】
ここでは、まず、属性辞書について詳しく説明する。図5に示すように、属性辞書20Aは、属性キー毎に、「属性キー」、「属性キー文字列」、「属性パターン」、および「出現回数」を紐付けた情報である。属性辞書20Aは、予め作成されて、例えば補助記憶装置1006(図9参照)に記憶される。
【0040】
「属性キー文字列」は、同じ属性キーとして認識されるべき複数の文字列を規定したものである。「属性キー文字列」の各文字列を、データの文字列と照合することで、データ内の属性キー10が検出される。例えば、データ(a)において、「氏名」に代えて、「名前」や「お名前」等と記載された場合であっても、それが属性辞書20Aの「属性キー文字列」と照合されることで、「氏名」の属性キーとして検出されることになる。
【0041】
「属性パターン」は、属性キーに対応する文字列(対応文字列)がとり得る形態について規定した情報である。「属性パターン」は、例えば、属性キーの対応文字列を構成する文字の種類(漢字、ひらがな、カタカナ等)、文字を区切る記号等の情報を含んでよい。また、「属性パターン」は、例えば、属性キーの対応文字列が日付、時刻等であることを示す情報を含んでもよい。また、「属性パターン」は、例えば、属性キーの対応文字列において予め定められた文字又は文字列が予め定められた順番で出現することを示す情報を含んでもよい。例えば、属性キー「住所」の「属性パターン」は、「都道府県」のうちの1字が出現した後、「市区町村」のうちの1字が出現することを示す情報を含んでもよい。
【0042】
「出現回数」は、属性キー10の対応領域16で、その属性キー10の対応文字列12が出現する回数を規定した情報である。例えば、データにおける属性キー10「氏名」の対応領域16で、対応文字列12が2つ現れるべき(人の名前が2回現れるべき)場合には、属性辞書20Aにおいて属性キー「氏名」に紐付けられた出現回数は「2回」となる。なお、例えば、データにおいて各属性キーの対応文字列の出現回数が常に「1回」となる場合には、属性辞書20Aの「出現回数」は省略されてもよい。
【0043】
なお、属性辞書は、以下の2つの形態をとり得る。
形態(1):文書から抽出されるべき属性キーのみが規定された属性辞書。
形態(2):文書から抽出されるべき属性キーに加えて、他の属性キーも規定された属性辞書。
【0044】
図5には、形態(2)の属性辞書20Aが示されている。具体的には、データ(a)から抽出されるべき属性キーは「氏名」、「住所」、「電話番号」、「生年月日」「年齢」である。なお、文書から抽出されるべき属性キーは、例えば補助記憶装置1006(図9参照)に予め記憶しておくとよい。そして、属性辞書20Aには、データ(a)から抽出されるべき属性キー(「氏名」、「住所」、「電話番号」、「生年月日」「年齢」)に加えて、「郵便番号」の属性キーが規定されている。よって、属性辞書20Aは、形態(2)である。
【0045】
次に、図4のフローチャートを用いて、情報処理装置が行う具体的な処理について説明する。
【0046】
図4のS100で、情報処理装置は、文書を表す電子ファイルに対して文字認識処理を実行する。
【0047】
S102で、情報処理装置は、図5の(i)に示すように、属性辞書20Aの属性キー文字列と、データ(a)内で認識された文字例を照合することで、データ(a)における属性キー10を検出(取得)する。これにより、図5のデータ(a)では、「氏名」、「住所」、「電話番号」の属性キー10が検出されることになる。
【0048】
S104で、情報処理装置は、データ(a)で検出された各属性キー10の位置から、各属性キー10の対応領域16を特定する。そして、情報処理装置は、各対応領域16から対応文字列候補14を抽出する。これにより、図5のデータ(a)では、各属性キー10「氏名」、「住所」、「電話番号」の対応文字列候補14が取得されることになる。
【0049】
S106で、情報処理装置は、データから抽出されるべき属性キーが、S102で全て検出されたか否かを確認する。図5の例では、データ(a)から抽出されるべき属性キーは、上記したように「氏名」、「住所」、「電話番号」、「生年月日」「年齢」である。それに対し、S102で検出された属性キー10は、「氏名」、「住所」、「電話番号」のみである。そのため、図5の例では、データ(a)から抽出されるべき属性キーが全て検出されていないので、S106がNoとなる。
【0050】
なお、S106で、データから抽出されるべき属性キーが全て検出されている場合(S106:Yes)には、情報処理装置は、各属性キー10の対応文字列候補14を、各属性キー10の対応文字列12として、処理を終了する。
【0051】
S106がNoの場合には、S108に進む。S108以降は、データの各属性キー10の対応文字列候補14に対する処理であり、対応文字列候補14のそれぞれに対して順番に処理を行う。図5の例では、まず、データ(a)の属性キー10「氏名」の対応文字列候補14に対して処理を行う。
【0052】
S108で、情報処理装置は、対応文字列候補14が、属性辞書20Aの属性パターン(対応文字列候補14の属性キーに紐付けられた属性パターン)に一致するか否かを確認する。これは、対応文字列候補14の中に、属性辞書20Aの属性パターン(対応文字列候補14の属性キーに紐付けられた属性パターン)に該当しない文字列が含まれるか否かを確認するものである。
【0053】
図5の例では、情報処理装置は、データ(a)の属性キー10「氏名」の対応文字列候補14「富士 玄太郎 平成30年2月9日 (3歳)」が、属性辞書20Aの属性キー「氏名」に紐付けられた属性パターン「空白区切り、漢字・ひらがな・カタカナ」に一致するか否かを確認する。この場合、対応文字列候補14が数字(アラビア数字)を含むので、属性パターン「空白区切り、漢字・ひらがな・カタカナ」に一致しない。そのため、S108がNoとなる。
【0054】
S108がNoの場合には、S112に進む。S112で、情報処理装置は、対応文字列候補14を複数の文字列に分割する。図5の例では、情報処理装置は、データ(a)の属性キー10「氏名」の対応文字列候補14「富士 玄太郎 平成30年2月9日 (3歳)」を、複数の文字列「富士 玄太郎」、「平成30年2月9日」「(3歳)」に分割する。
【0055】
なお、分割方法としては、例えば対応文字列候補14の中の改行、空白、カッコ等の位置で、対応文字列候補14を複数の文字列に分けるやり方がある。また、機械学習等によりトレーニングされたOCRエンジンにより、所定の意味を持つ単語を認識して、その単語ごとに分割するようにしてもよい。
【0056】
次に、S114で、情報処理装置は、データから未検出の属性キーの属性パターンを、属性辞書から取得する。図5の例では、データ(a)から抽出されるべき属性キーは、上記したように「氏名」、「住所」、「電話番号」、「生年月日」「年齢」であるのに対し、S102で検出された属性キー10は、「氏名」、「住所」、「電話番号」である。よって、データ(a)から未検出の属性キーは、「生年月日」と「年齢」である。そのため、情報処理装置は、属性キー「生年月日」の属性パターンと、属性キー「年齢」の属性パターンを、属性辞書20Aから取得する。なお、図4のフローでは、S114で、情報処理装置が、1つの属性キーの属性パターンを取得して次のS116に進み、次のS114を実行するタイミングで、別の1つの属性キーの属性パターンを取得するようにして、属性パターンを順番に取得するようにしている。
【0057】
S116で、情報処理装置は、対応文字列候補14の分割(S112)により得られた文字列が、未検出の属性キーの属性パターンと一致するか否かを確認する。図5の例では、データ(a)の文字例「平成30年2月9日」が、未検出の属性キー「生年月日」の属性パターン「日付」と一致するため、S116がYesとなる。
【0058】
S116がYesの場合には、S118に進む。S118で、情報処理装置は、対応文字列候補14から、S116で属性パターンと一致した文字列を除外する。図5の例では、対応文字列候補14「富士 玄太郎 平成30年2月9日 (3歳)」から、S116で属性パターンと一致した文字列「平成30年2月9日」を除外する。これにより、対応文字列候補14は、「富士 玄太郎 (3歳)」に更新される。
【0059】
次に、S108に戻り、情報処理装置は、現在の対応文字列候補14が、属性辞書20Aの属性パターン(対応文字列候補14の属性キーに紐付けられた属性パターン)に一致するか否かを再び確認する。図5の例では、情報処理装置は、現在の対応文字列候補14「富士 玄太郎 (3歳)」が、属性辞書20Aの属性キー「氏名」に紐付けられた属性パターン「空白区切り、漢字・ひらがな・カタカナ」に一致するか否かを確認する。この場合、現在の対応文字列候補14が数字(アラビア数字)を含むので、属性パターン「空白区切り、漢字・ひらがな・カタカナ」に一致しない。そのため、S108がNoとなる。
【0060】
S108がNoの場合には、情報処理装置は、S112~S118を再び実行する。図5の例では、情報処理装置は、現在の対応文字列候補14「富士 玄太郎 (3歳)」を、複数の文字列「富士 玄太郎」、「(3歳)」に分割する(S112)。そして、情報処理装置は、未検出の属性キー「年齢」の属性パターンを取得する(S114)。なお、未検出であった属性キー「生年月日」は前回のS116で検出済みである。
【0061】
次に、情報処理装置は、対応文字列候補14の分割(S112)により得られた文字列「富士 玄太郎」、「(3歳)」が、未検出の属性キー「年齢」の属性パターンと一致するか否かを確認する(S116)。この場合、文字例「(3歳)」が、未検出の属性キー「年齢」の属性パターン「数字+(歳/才)」と一致するため、S116がYesとなる。次に、S118で、情報処理装置は、現在の対応文字列候補14「富士 玄太郎 (3歳)」から、S116で属性パターンと一致した文字列「(3歳)」を除外する。これにより、対応文字列候補14は、「富士 玄太郎」に更新される。
【0062】
次に、S108に戻り、情報処理装置は、現在の対応文字列候補14「富士 玄太郎」が、属性辞書20Aの属性パターン(対応文字列候補14の属性キーに紐付けられた属性パターン)に一致するか否かを確認する。図5の例では、現在の対応文字列候補14「富士 玄太郎」が、属性キー「氏名」に紐付けられた属性パターン「空白区切り、漢字・ひらがな・カタカナ」に一致するか否かを確認する。これらは一致するため、S108がYesとなる。
【0063】
S108がYesの場合、情報処理装置は、属性キー10「氏名」の現在の対応文字列候補14「富士 玄太郎」を、属性キー10「氏名」の対応文字列12として特定する。
【0064】
S108がYesの場合には、S110に進む。S110で、情報処理装置は、全ての対応文字列候補14について処理を行ったかを確認する。図5の例では、データ(a)の属性キー10「住所」の対応文字列候補14と、属性キー10「電話」の対応文字列候補14については処理を行っていないので、S110がNoとなる。
【0065】
S110がNoの場合には、S108に進む。S108で、情報処理装置は、残りの対応文字列候補14について処理を行う。図5の例では、S108で、情報処理装置は、データ(a)の属性キー10「住所」の対応文字列候補14「神奈川県横浜市△△区〇〇〇〇〇」(一部、文字を△又は〇に置き換えている)が、属性辞書20Aの属性キー「住所」に紐付けられた属性パターン「漢字・ひらがな・数字 都道府県+市区町村+番地」に一致するか否かを確認する。この場合、属性パターンに一致するため、S108がYesとなる。よって、情報処理装置は、属性キー10「住所」の対応文字列候補14「神奈川県横浜市△△区〇〇〇〇〇」を、属性キー10「住所」の対応文字列12として特定する。
【0066】
また、図5の例では、S108で、情報処理装置は、データ(a)の属性キー10「電話」の対応文字列候補14「045(△△△)□□□□」(一部、文字を△又は□に置き換えている)が、属性辞書20Aの属性キー「電話番号」に紐付けられた属性パターン「数字+区切り文字(-または())」に一致するか否かを確認する。この場合、属性パターンに一致するため、S108がYesとなる。よって、情報処理装置は、属性キー10「電話」の対応文字列候補14「045(△△△)□□□□」を、属性キー10「電話」の対応文字列12として特定する。
【0067】
以上説明した実施形態によれば、文書を表す電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した対応領域16にある文字列(対応文字列候補14)の中に、別の属性キーに対応する文字列が含まれている場合であっても(図5の例における属性キー10「氏名」の対応文字列候補14のような場合であっても)、属性キー10の対応文字列12を抽出することができる。
【0068】
なお、以上説明した実施形態では、属性キー10の対応文字列候補14(図5の例では属性キー10「氏名」の対応文字列候補14)の中から、文書から抽出されるべき他の属性キー(図5の例では属性キー「生年月日」、「年齢」)の属性パターンに該当する文字列を除外して、残った文字列を属性キー10の対応文字列12(図5の例では属性キー10「氏名」の対応文字列12)とした。ここで、文書から抽出されるべき他の属性キーとしては、以下の2つの形態が考えられる。
形態(A):文書において属性キーの文字例自体が検出されなかった属性キー。
形態(B):文書において属性キーの文字例自体は検出されたが、その属性キーの対応領域に文字列が存在しなかった属性キー。
【0069】
形態(A)は、図5のデータ(a)における未検出の属性キー「生年月日」、「年齢」のような属性キーである。形態(A)は例えば、文書の属性上、属性キーの文字列が検出されるはずなのにそれが検出されない属性キーである。
【0070】
形態(B)は、図6のデータ(b)における属性キー10「年齢」のように、属性キー10の文字例自体は検出されるが、属性キー10の対応領域16に文字列が存在しない属性キーである。形態(B)は例えば、他の領域に対応文字列を記載しているため、対応領域16に対応文字列が記載されなかった属性キーである。
【0071】
なお、情報処理装置は、文書から抽出されるべき他の属性キーの対応文字列を、複数の属性キーの対応文字列を含む対応文字列候補14から特定してもよい。すなわち、情報処理装置は、データの属性キー10の対応領域16から抽出した対応文字列候補14に含まれる文字列のうち、データから抽出されるべき他の属性キーの属性パターンに該当する文字列を、他の属性キーの対応文字列として特定してもよい。
【0072】
図5の例では、情報処理装置は、データ(a)の属性キー10「氏名」の対応文字列候補14に含まれる文字列のうち、抽出されるべき属性キー「生年月日」の属性パターン「日付」に該当する文字列「平成30年2月9日」を、属性キー「生年月日」の対応文字列として特定してもよい。また、情報処理装置は、データ(a)の属性キー10「氏名」の対応文字列候補14に含まれる文字列のうち、抽出されるべき属性キー「年齢」の属性パターン「数字+(歳/才)」に該当する文字列「(3歳)」を、属性キー「年齢」の対応文字列として特定してもよい。なお、これは、例えば、図4のフローのS116で、対応文字列候補14を分割して得られた文字列が、未検出の属性キーの属性パターンと一致した際(S116:Yes)に行うとよい。
【0073】
また、形態(B)に関し、情報処理装置は、データの属性キー10の対応領域16から抽出した対応文字列候補14に含まれる文字列のうち、データから検出(取得)された他の属性キーであってそれに対応する文字列(対応文字列)が検出(取得)されなかった他の属性キーの属性パターンに該当する文字列を、当該他の属性キーの対応文字列として特定してもよい。図6の例では、情報処理装置は、データ(b)の属性キー10「氏名」の対応文字列候補14に含まれる文字列のうち、属性キーの文字例自体は検出されたが対応文字列が検出されなかった属性キー「年齢」の属性パターン「数字+(歳/才)」に該当する文字列「(3歳)」を、属性キー「年齢」の対応文字列として特定してもよい。
【0074】
次に、別の実施形態について説明する。図7には、属性辞書20Bとデータ(c)が示されている。データ(c)において、属性キー10「作業者」の対応領域16にある対応文字列候補14は、属性キー「作業者」の対応文字列12「富士 ポール 玄太郎」と、別の属性キー「部門」の対応文字列「横浜事業所 みなとみらい支部」を含む。対応文字列候補14において、属性キー10「作業者」の対応文字列12は下側にあり、属性キー「部門」の対応文字列は上側にある。属性辞書20Bは、各属性キー「担当者」、「部門」に紐付けられた位置関係(下、上)を含む。位置関係は、対応文字列候補14の中における属性キーの対応文字列の相対的位置を規定している。
【0075】
情報処理装置は、図7のデータ(c)のように、対応文字列候補14が二段に分かれて記載されている場合には、対応文字列候補14が2つの文字列からなるものと判断し、上側の文字列と、下側の文字列に分割してもよい。そして、情報処理装置は、属性辞書20Bに規定された位置関係を用いて、属性キー10の対応文字列12と、他の属性キーの対応文字列を特定してもよい。図7の例では、情報処理装置は、属性辞書20Bの各属性キーに紐付けられた位置関係を用いて、属性キー10「作業者」の対応文字列12として、対応文字列候補14の中の下側の文字列「富士 ポール 玄太郎」を特定し、他の属性キー「部門」の対応文字列として、対応文字列候補14の中の上側の文字列「横浜事業所 みなとみらい支部」を特定してもよい。
【0076】
このような位置関係に基づいて対応文字列12を特定する方法は、例えば、図7の属性辞書20Bに示すように各属性キー「担当者」、「部門」の属性パターンが似ており、図4のフローにおいて、対応文字列候補から除外する文字列(S118)を特定できない場合等に有効である。
【0077】
なお、対応文字列候補14は、三段以上の文字列を含んでもよく、属性辞書にはそれに合わせた位置関係が規定されてもよい。また、対応文字列候補14は、左右に並んだ2つ以上の文字列を含んでもよく、属性辞書にはそれに合わせた位置関係が規定されてもよい。
【0078】
次に、さらに別の実施形態について説明する。図8には、属性辞書20Cとデータ(d)が示されている。データ(d)において、属性キー10「担当者」の対応領域16にある対応文字列候補14は、属性キー「担当者」の対応文字列12「二四 ELIZABETH」と、別の属性キー「作業日」の対応文字列「平成30年2月9日」を含む。また、データ(c)において、属性キー10「商品番号」の対応領域16には、その属性キー10の対応文字列12「令和あ 1568号」が記載されている。
【0079】
ここで、図4のフローを用いて、データ(d)の属性キー10「担当者」の対応文字列12を特定することを考える。図4のフローでは、対応文字列候補14から、他の属性キーの属性パターンに該当する文字列を除外することで、残った文字列を属性キー10の対応文字列12として特定する。この場合、情報処理装置は、データにおいて対応文字列がすでに見つかっている属性キーの属性パターンに該当する文字列を、対応文字列候補14の中から除外する文字列としない、とするとよい。
【0080】
図8の属性辞書20Cに示すように、複数の属性キー「担当者」、「商品番号」の属性パターンがよく似ていることがある。そのため、データ(d)の属性キー10「担当者」の対応文字列12を特定する際に、対応文字列候補14の中から、他の属性キー「商品番号」の属性パターンに該当する文字列を除外すると、属性キー10「担当者」の対応文字列12が意図せず除外されてしまう可能性がある。よって、情報処理装置は、データ(d)において対応文字列がすでに見つかっている属性キー「商品番号」の属性パターンに該当する文字列を、対応文字列候補14の中から除外する文字列としないことで、属性キー10「担当者」の対応文字列12として特定されるべき文字列が除外されてしまう事態を抑制することができる。
【0081】
上記実施形態の情報処理装置は、例えば、汎用のコンピュータを用いて構成される。図9に例示するように、情報処理装置のベースとなるコンピュータは、プロセッサ1002、ランダムアクセスメモリ(RAM)等のメモリ(主記憶装置)1004、フラッシュメモリやSSD(ソリッドステートドライブ)、HDD(ハードディスクドライブ)等の不揮発性記憶装置である補助記憶装置1006を制御するコントローラ、各種の入出力装置1008とのインタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース1010等が、例えばバス1012等のデータ伝送路を介して接続された回路構成を有する。上記実施形態の処理の内容が記述されたプログラムが、ネットワーク等を経由してそのコンピュータにインストールされ、補助記憶装置1006に記憶される。補助記憶装置1006に記憶されたプログラムが、プロセッサ1002によりメモリ1004を用いて実行されることにより、本実施形態の情報処理装置が構成される。
【0082】
なお、上記プログラムは、インターネット等のネットワークを介して提供することはもちろん、光ディスクやUSBメモリ等のコンピュータ読み取り可能な記録媒体に格納して提供することが可能である。
【0083】
上記実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0084】
また上記実施形態におけるプロセッサの動作は、1つのプロセッサによってなすのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働してなすものであってもよい。また、プロセッサの各動作は、以上の実施形態において説明した順序のみに限定されるものではなく、適宜に変更してもよい。
【0085】
(付記)
(((1)))
プロセッサを備え、
前記プロセッサは、
電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、
特定した前記領域から文字列を抽出し、
抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、
情報処理装置。
(((2)))
(((1)))に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列の中から、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を除外して、残った文字列を前記属性キーに対応する文字列として特定する、
情報処理装置。
(((3)))
(((2)))に記載の情報処理装置であって、
前記プロセッサは、
前記電子ファイルにおいて対応する文字列がすでに見つかっている属性キーの属性パターンに該当する文字列を、前記抽出した前記文字列の中から除外する文字列としない、
情報処理装置。
(((4)))
(((1)))に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから抽出されるべき他の属性キーの属性パターンに該当する文字列を、前記他の属性キーに対応する文字列として特定する、
情報処理装置。
(((5)))
(((1)))に記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる文字列のうち、前記電子ファイルから取得された他の属性キーであってそれに対応する文字列が取得されなかった他の属性キーの属性パターンに該当する文字列を、当該他の属性キーに対応する文字列として特定する、
情報処理装置。
(((6)))
(((1)))~(((5)))のいずれか1つに記載の情報処理装置であって、
前記プロセッサは、
抽出した前記文字列に含まれる各文字列の位置関係に基づいて前記属性キーと他の属性キーに対応する文字列を特定する、
情報処理装置。
(((7)))
(((1)))~(((6)))のいずれか1つに記載の情報処理装置であって、
前記属性キーとそれに対応する文字列は表の形式で記載されており、
前記領域は、表を構成する1つのセルである、
情報処理装置。
(((8)))
電子ファイルから、属性キーを取得するとともに前記属性キーに対応する領域を特定し、
特定した前記領域から文字列を抽出し、
抽出した前記文字列中に前記属性キーの属性パターンに該当しない文字列が含まれる場合、抽出した前記文字列を構成する文字列の中から前記属性パターンに該当する文字列のみを前記属性キーに対応する文字列として特定する、
処理をコンピュータに実行させるプログラム。
【0086】
(((1)))又は(((8)))に係る発明によれば、電子ファイルにおいて、属性キーに対応する文字列が存在する領域として特定した領域にある文字列中に、別の属性キーに対応する文字列が含まれていても、属性キーに対応する文字列が抽出される。
(((2)))に係る発明によれば、電子ファイルから抽出されるべき他の属性キーの属性パターンにより、属性キーに対応する文字列が抽出される。
(((3)))に係る発明によれば、属性キーに対応する文字列として特定されるべき文字列の一部又は全部が除外される事態が抑制される。
(((4)))に係る発明によれば、電子ファイルから抽出されるべき他の属性キーに対応する文字列が特定される。
(((5)))に係る発明によれば、電子ファイルから取得された他の属性キーに対応する文字列が特定される。
(((6)))に係る発明によれば、抽出した文字列に含まれる各文字列の位置関係により、属性キーと他の属性キーに対応する文字列が特定される。
(((7)))に係る発明によれば、電子ファイル内の表部分から、属性キーが取得されるとともに属性キーに対応する文字列が特定される。
【符号の説明】
【0087】
10 属性キー、12 対応文字列(文字列)、14 対応文字列候補、16 対応領域(領域,属性キーに対応する領域)、20,20A,20B,20C 属性辞書、102 ファイル入力部、104 OCR部、106 属性抽出部、108 属性情報出力部、1002 プロセッサ、1004 メモリ、1006 補助記憶装置、1008 入出力装置、1010 ネットワークインタフェース、1012 バス。
図1
図2
図3
図4
図5
図6
図7
図8
図9