(57)【要約】【課題】定型文書等をイメージセンサで読み込んだ画像データから、記入内容を高確率で認識する。【解決手段】文書の画像データを解析して得られた複数の文字列データから成る文字列データ群（例えば「男」「○２」）に基づいて、被抽出文字列を抽出する文字列抽出装置であって、被抽出文字列の候補となる複数の候補文字列（例えば「男」「女」）を記憶する候補文字列記憶手段（５）と、各候補文字列の中から文字列データ群の中に存在しないもの（例えば「女」）を被抽出文字列として抽出する文字列抽出手段とを設けた。【選択図】図４
2016103219.tif 000002
【特許請求の範囲】
【請求項１】
文書の画像データを解析して得られた複数の文字列データから成る文字列データ群に基づいて、被抽出文字列を抽出する文字列抽出装置であって、
前記被抽出文字列の候補となる複数の候補文字列を記憶する候補文字列記憶手段と、
前記各候補文字列の中から前記文字列データ群の中に存在しないものを前記被抽出文字列として抽出する文字列抽出手段と
を有することを特徴とする文字列抽出装置。
【請求項２】
前記候補文字列記憶手段は、前記複数の候補文字列と、前記文書において何れかの前記候補文字列に隣接して現れる隣接文字列とを対応付けて記憶するものであり、
前記文字列抽出手段は、前記文字列データ群の中から前記隣接文字列に対応する箇所を検索することにより、前記文字列データ群のうち前記各候補文字列と比較する範囲を特定するものである
ことを特徴とする請求項１記載の文字列抽出装置。
【請求項３】
前記候補文字列記憶手段は、前記隣接文字列として、前記文書において前記複数の候補文字列の前に現れる前文字列と、前記複数の候補文字列の後に現れる後文字列とを記憶するものであり、
前記文字列抽出手段は、前記文字列データ群の中から前記前文字列に対応する箇所と、前記後文字列に対応する箇所との間に挟まれた部分を、前記文字列データ群のうち前記各候補文字列と比較する範囲として特定するものである
ことを特徴とする請求項２記載の文字列抽出装置。
【請求項４】
前記候補文字列記憶手段は、前記複数の候補文字列と、前記被抽出文字列の抽出個数を指定する抽出個数指定データとを対応付けて記憶するものであり、
前記文字列抽出手段は、前記各候補文字列の各々と前記各文字列データの各々とから成る組に対して所定の規則に基づいて一致率を求め、各前記候補文字列に係る複数の一致率の中から当該候補文字列に対する一致率を選択し、前記複数の候補文字列の中から、対応する一致率が低い順に、前記抽出個数指定データに基づいた数の被抽出文字列を抽出するものである
ことを特徴とする請求項３記載の文字列抽出装置。
【請求項５】
文書の画像データを解析して得られた複数の文字列データから成る文字列データ群に基づいて、被抽出文字列を抽出する文字列抽出装置としてのコンピュータを、
前記被抽出文字列の候補となる複数の候補文字列を記憶する候補文字列記憶手段、
前記各候補文字列の中から前記文字列データ群の中に存在しないものを前記被抽出文字列として抽出する文字列抽出手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列抽出装置およびプログラムに関する。
【背景技術】
【０００２】
文書をイメージセンサ等で読み込んで画像データを取得し、この画像データに含まれる文字列画像を解析し、当該文字列画像に係る元々の文字列すなわち文字列データを抽出する技術には種々のものが知られている。特に漢字は、外形の近似するものが多いため、誤認識が生じやすくなる。しかし、定型文書の画像データを認識対象とする場合には、その定型文書の特徴に着目して、認識率を高めてゆくことが可能になる。その一例として、特許文献１には、ある定型文書にて抽出されるべき文字列データを予め列挙し、辞書テーブルを作成しておく技術が開示されている。この技術は、文字列画像から抽出した文字列データと、辞書テーブル内の文字列データとを比較し、両者が所定割合（例えば５０％）以上合致することを条件として、誤認識を訂正するものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、定型文書の中には、複数の選択肢の中から記入者が一または複数の選択肢を選択する形式のものがある。例えば、記入者の銀行口座を定型文書に記載させる場合、その預金種別について「普通」または「当座」の何れかを記入者に選択させることが考えられる。この定型文書の内容を後でスキャナで読み取り自動認識することが予め解っている場合は、紙面上における記入箇所の座標に基づいて、記入内容を同定することができる。例えば記入欄に「□普通  □当座」のように印刷しておき、記入者には何れかの「□」印の箇所にチェックを入れさせるようにするとよい。紙面上において各々の「□」印の座標を予め定めておくと、チェックが入れられた「□」印の座標に基づいて、預金種別が「普通」であるのか「当座」であるのかを判別することができる。
【０００５】
しかし、その定型文書の内容を自動認識することが最初は予定されていなかったにもかかわらず、後になって自動認識すべしとの要望が生じる場合もある。このような場合、定型文書内で預金種別については、例えば「・普通  ・当座」のようになっており、記入者に「・普通」または「・当座」の何れかの文字列を丸印で囲むような形式が採られていることが考えられる。この例においては、丸印の付け方は、記入者によって異なるため、記入内容を自動認識することは困難であった。
この発明は上述した事情に鑑みてなされたものであり、定型文書等に対する記入内容を高確率で認識できる文字列抽出装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明にあっては、文書の画像データを解析して得られた複数の文字列データから成る文字列データ群に基づいて、被抽出文字列を抽出する文字列抽出装置であって、前記被抽出文字列の候補となる複数の候補文字列を記憶する候補文字列記憶手段と、前記各候補文字列の中から前記文字列データ群の中に存在しないものを前記被抽出文字列として抽出する文字列抽出手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、定型文書等に対する記入内容を高確率で認識できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態の文書認識システムの概略構成図である。
【図２】(a)対象となる文書の様式、(b)対象となる文書、(c)認識された文字列データ群の内容を示す図である。
【図３】誤認識の態様を示す図である。
【図４】候補辞書テーブルの内容を示す図である。
【図５】前文字列辞書テーブルの内容を示す図である。
【図６】本実施形態のメインルーチンのフローチャートである。
【図７】比較処理ルーチンのフローチャートである。
【図８】文字数カウント処理の説明図である。
【図９】抽出個数指定データ特定処理のフローチャートである。
【発明を実施するための形態】
【０００９】
［実施形態の概要］
次に、本発明の一実施形態による文書認識システムの構成を図１を参照し説明する。図１において、文書１はイメージセンサ２で読取られる。イメージセンサ２が出力する文書１の文字画像（ラスタ画像）は文字変換手段３に供給される。文字変換手段３においては、文字画像のパターンが解析され、文字画像は複数の文字列データの集合（以下、文字列データ群という）に変換される。
【００１０】
文字列抽出手段４は文字変換手段３から出力された文字列データ群を解析し、文書１の記入者が記入したと推測される内容を、被抽出文字列として抽出する。候補辞書テーブル５には、被抽出文字列の候補となる候補文字列群およびその前後の文字列が格納されている。文字列抽出手段４によって抽出された被抽出文字列は書込み制御手段６を介してデータベース７に格納される。なお、上記構成要素３〜８は、１台のコンピュータの機能ブロックを示すものである。
【００１１】
ここで、認識対象となる文書１の様式（文書様式）の一例を図２(a)に示す。
図２(a)において第１行には、「性別    男  女」と印刷されており、第２行には「住居    同居  別居」と印刷されており、第３行には「理由    結婚  出生  離職  異動  同居」と印刷されている。例えば、この文書様式に対して記入者が手書きで記入を行った結果が上述の「文書１」になる。文書１の一例を図２(b)に示す。図２(b)においては、第１行中の「女」、第２行中の「同居」の「同」、および第３行中の「離職」には記入者によって丸印が付されている。
【００１２】
この文書１をイメージセンサ２で読み取り、文字変換手段３を介して文字列データ群１０に変換した例を図２(c)に示す。図２(b)，(c)を比較すると、「女」、「同居」および「離職」の部分が、丸印が付されたために、それぞれ「○２」（注．「○」印の中に「２」がある文字を、本明細書の文中では「○２」と表記する）、「熱居」、「麺醸」と誤認識されている。誤認識の他の態様を図３(a)，(b)に示す。丸印を付した「離職」がそもそも文字として認識されなかった場合は、図３(a)に示すように、当該部分が空白であると認識される。また、元々２文字であった「離職」に丸印が付された結果、図３(b)に示すように４文字の文字列「舗熊黙シ」として誤認識される場合もある。また、特に図示しないが、「舗熊黙シ」が一の文字列ではなく、「舗熊」および「黙シ」という二の文字列であると認識される場合もある。このように、誤認識の態様は、文字認識のアルゴリズムの内容に応じて様々異なるものである。
【００１３】
このように、正しく認識されなかった文字列は、記入者によって当該部分に丸印等が付されている可能性が高い。すると、元々の文書様式に相当する文字列データ群と、文書１から読み取られた文字列データ群とを比較すると、「記入者によって選択された（丸印等が付された）可能性の高い文字列」を自動的に抽出することができる。本実施形態は、このような原理により、文書１の内容を自動的に認識しようとするものである。
【００１４】
［実施形態のデータ構成］
（候補辞書テーブル５）
次に、図４を参照し、候補辞書テーブル５のデータ構成を説明する。
候補辞書テーブル５の候補文字列群欄５ｄには、文字列抽出手段４によって抽出される被抽出文字列の候補となる、一または複数の候補文字列（候補文字列群）が必要に応じて記憶される。図示の候補辞書テーブル５の第１行では、候補文字列群として「男」および「女」の二つの文字列が記憶されている。なお、図４における各「行」は、データベースの「レコード」に該当する。
【００１５】
前文字列欄５ａは、これら候補文字列群の前に（文書１における左側または上側に）存在すべき文字列（前文字列）を示し、後文字列欄５ｂは、これら候補文字列の後に（文書１における右側または下側）に存在すべき文字列（後文字列）を示す。図２(a)を参照すると、候補文字列群（「男」および「女」）の前には文字列「性別」が存在し、候補文字列群の後には文字列「住居」が存在する。そこで、前文字列欄５ａおよび後文字列欄５ｂには、各々文字列「性別」および「住居」が記憶される。なお、前文字列および後文字列には、“空白”を指定することもできる。前文字列が“空白”であった場合は、候補文字列群の左側には何も文字列が存在しないことを示し、後文字列が“空白”であった場合は、候補文字列群の右側には何も文字列が存在しないことを示す。
【００１６】
次に、抽出個数指定データ欄５ｃは、抽出個数ｎ（抽出すべき文字列の個数）の範囲を指定する「抽出個数指定データ」が記憶される。抽出個数指定データは、数値と、抽出個数ｎに対する等号／不等号（＝，＞，＞＝，＜，＜＝）とから構成される。第１行の抽出個数指定データ欄５ｃには、「１＝」と記憶されているが、これは「１＝ｎ」すなわち「抽出個数ｎは１のみ」という意味であり、「男」または「女」のうち一方のみが抽出されることになる。なお、仮に抽出個数指定データが「１＜＝」であれば、抽出個数ｎは「１以上」であり、「１＜」ならばｎは「２以上」、「３＞＝」ならばｎは「３以下」ということになる。
【００１７】
候補辞書テーブル５の第２行において、候補文字列群欄５ｄには「同居」および「別居」が記憶される。図２(a)においてこれら候補文字列群（「同居」および「別居」）の前には文字列「住居」が存在し、候補文字列群の後には文字列「理由」が存在する。このため、第２行における前文字列欄５ａおよび後文字列欄５ｂには、各々文字列「住居」および「理由」が記憶されている。
【００１８】
候補辞書テーブル５の第３行において、候補文字列群欄５ｄには、５個の文字列「結婚」「出生」「離職」「異動」「同居」が記憶されている。これらのうち、複数の文字列が抽出され得るため、抽出個数指定データ欄５ｃには「１＜＝」が記憶されている。また、候補辞書テーブル５の第４行、第５行において、抽出個数指定データ欄５ｃおよび候補文字列群欄５ｄは空白になっている。これらは、図２(b)における銀行名欄１ａおよび支店名欄１ｂに対応するものである。候補文字列群欄５ｄが空白である場合は、文字変換手段３によって認識された文字列データ群の内容が、そのまま被抽出文字列になる。
【００１９】
（前文字列辞書テーブル８）
上述した候補辞書テーブル５は、主として文書１から文字列データを得ようとするユーザが作成するものである。ここで、ユーザの手間を省くために、抽出個数指定データ欄５ｃは省略することが可能になっている。図４においては、候補辞書テーブル５の第６行において、候補文字列群欄５ｄには「総合普通」および「当座」が記憶されているが、抽出個数指定データ欄５ｃは空白になっている。
【００２０】
従って、候補辞書テーブル５において第６行が、抽出個数指定データ欄５ｃを省略した例になる。この例のように、抽出個数指定データ欄５ｃが空白であり、候補文字列群欄５ｄが存在している（空白ではない）場合、文字列抽出手段４においては、抽出個数指定データが推測に基づいて決定される。この推測の根拠になるものが、図５に示す前文字列辞書テーブル８である。なお、図５における各「行」も、データベースの「レコード」に該当する。
【００２１】
図５に示すように、前文字列辞書テーブル８の指定前文字列欄８ａには、何点かの前文字列が指定されている。以下、前文字列辞書テーブル８にて指定されている前文字列を「指定前文字列」という。上述の候補辞書テーブル５において抽出個数指定データ欄５ｃが空白である場合は、対応する（同一行の）前文字列欄５ａに記憶されている前文字列と、指定前文字列欄８ａに記憶されている各指定前文字列とが比較され、その結果に応じて、抽出個数指定データ欄８ｃに記憶されている何れかのデータが抽出個数指定データとして適用される。８ｂは重要文字列欄であり、各指定前文字列のうち、特に重要な部分（重要文字列）を記憶している。
【００２２】
前文字列辞書テーブル８の第１行において、指定前文字列欄８ａには、指定前文字列「下記より？つ選択してください」が記憶されている。ここで「？」は任意の１文字以上の数字を表すワイルドカードである。従って、例えば「下記より３つ選択してください」という前文字列は、文字「３」がワイルドカード「？」に合致するため、指定前文字列「下記より？つ選択してください」に完全に合致することになる。
【００２３】
第１行における重要文字列欄８ｂには、重要文字列としてワイルドカード「？」が記憶されている。従って、任意の１文字以上の数字がこの場合の重要文字列になる。また、第１行における抽出個数指定データ欄８ｃには、抽出個数指定データとして、文字列「？＝」が記憶されている。この文字列のうち、ワイルドカード「？」は、候補辞書テーブル５内の前文字列のうち、実際に指定前文字列内のワイルドカード「？」に合致した部分の文字列に置き換えられる。従って、上述の前文字列の例「下記より３つ選択してください」においては、抽出個数指定データは「３＝」に設定される。
【００２４】
次に、前文字列辞書テーブル８の第２行において、指定前文字列欄８ａには、指定前文字列「下記より選択してください（？つ以下）」が記憶されている。上述のように「？」はワイルドカードであるから、例えば前文字列が「下記より選択してください（３つ以下）」であれば、該指定前文字列に完全に合致する。第２行においても重要文字列欄８ｂには、ワイルドカード「？」が記憶されている。また、抽出個数指定データ欄８ｃの内容は「？＞」であるから、上述の前文字列の例「下記より選択してください（３つ以下）」にあっては、抽出個数指定データは「３＞」に設定される。
【００２５】
次に、前文字列辞書テーブル８の第３行において、指定前文字列欄８ａには「性別」が記憶され、重要文字列欄８ｂには、指定前文字列と同一の「性別」が記憶されている。また、抽出個数指定データ欄８ｃの内容は「１＝」であるから、その内容通りに抽出個数指定データが設定される。これは、性別というものは、通常は「男」か「女」のうち一方の文字列になると考えられるためである。上述したように、候補辞書テーブル５（図４）の第１行の前文字列欄５ａおよび抽出個数指定データ欄５ｃには、それぞれ前文字列「性別」および抽出個数指定データ「１＝」が記載されている。仮に、この第１行の抽出個数指定データ欄５ｃが空白であったとすると、前文字列「性別」に基づいて、前文字列辞書テーブル８の第３行の指定前文字列欄８ａの内容（同じく「性別」）が検索され、同行の抽出個数指定データ欄８ｃの内容である「１＝」が抽出個数指定データとして選択される。結局、候補辞書テーブル５（図４）の第１行における抽出個数指定データ欄５ｃが仮に空白であったとしても、全く同一の抽出個数指定データ「１＝」が指定されることになる。
【００２６】
次に、前文字列辞書テーブル８の第４行において、指定前文字列欄８ａには「続柄」が記憶され、重要文字列欄８ｂには、指定前文字列と同一の「続柄」が記憶されている。また、抽出個数指定データ欄８ｃの内容は「１＝」であるから、その内容通りに抽出個数指定データが設定される。これは、「続柄」というものは、例えば「本人」「父」「母」等、一の文字列になると考えられるためである。
【００２７】
次に、前文字列辞書テーブル８の第５行において、指定前文字列欄８ａには「該当項目に○を付けてください」が記憶され、重要文字列欄８ｂには「○」が記憶されている。この指定前文字列については、「該当項目」が全く無い場合も考えられるから、抽出個数指定データ欄８ｃの内容は「０＜＝」に設定されている。
【００２８】
次に、前文字列辞書テーブル８の第６行において、指定前文字列欄８ａには「複数選択可」が記憶され、重要文字列欄８ｂには「複数」が記憶されている。この指定前文字列についても、選択肢が全く無い場合も考えられるから、抽出個数指定データ欄８ｃの内容は「０＜＝」に設定されている。
【００２９】
次に、前文字列辞書テーブル８の第７行において、指定前文字列欄８ａおよび重要文字列欄８ｂには「支店」が記憶されている。文字列データ群の中に「支店」という文字列が現れたのであれば、その後に、支店名を表す一の文字列が現れることが多いものと考えられる。従って、同レコードにおける抽出個数指定データ欄８ｃの内容は「１＝」に設定されている。これは、上述した候補辞書テーブル５の第６行に対して適用されるレコードである。候補辞書テーブル５の第６行には、抽出個数指定データ欄５ｃが省略されていた（空白になっていた）。しかし、前文字列辞書テーブル８の第７行に基づく推測を行うことにより、対応する抽出個数指定データを「１＝」に設定することができる。これにより、ユーザは当該抽出個数指定データの入力を省略することができ、効率的なデータ入力を行うことが可能になる。
【００３０】
次に、前文字列辞書テーブル８の第８行において、指定前文字列欄８ａおよび重要文字列欄８ｂは空白になっている。この第８行は、デフォルトを指定する行（デフォルト行）である。すなわち、抽出個数指定データを決定するために、デフォルト行以外の何れの行も適用されなかった場合は、このデフォルト行の抽出個数指定データ欄８ｃに指定されている「０＜＝」が適用される。
【００３１】
［実施形態の動作］
（全体処理）
次に、本実施形態において、文字列抽出手段４によって実行される全体的な処理の内容を図６を参照し説明する。
図６において処理がステップＳ２に進むと、文字列抽出手段４は、候補辞書テーブル５の内容、すなわち前文字列、後文字列、候補文字列群および抽出個数指定データを読み出す。
【００３２】
次に、処理がステップＳ４に進むと、文字列抽出手段４は、文字変換手段３が認識した文字列データ群の中から、候補辞書テーブル５におけるそれぞれの前文字列に近似する文字列データを検索する。ここで、「近似する」とは、「一致率が所定値（例えば７０％）以上である」という意味である。なお、「一致率」の定義については後述する。また、文字列抽出手段４は、それぞれの前文字列に近似する文字列データよりも後の部分から、当該前文字列に対応する後文字列に近似する文字列データを検索する。
【００３３】
次に、処理がステップＳ６に進むと、文字列抽出手段４は、前文字列および後文字列に各々近似する文字列データに挟まれた部分の文字列データ群を抽出する。ここで図２(c)における文字列データ群１０に対して、図４に示す候補辞書テーブル５が適用された場合を例として具体例を説明する。候補辞書テーブル５の第１行には前文字列「性別」と後文字列「住居」が指定されているから、図２(c)の第１行の文字列データ「性別」が前文字列「性別」に近似する文字列データとして検索され、第２行の文字列データ「住居」が後文字列「住居」に近似する文字列データとして検索される。そして、両文字列データに挟まれている文字列データ「男」および「○２」が、ステップＳ６にて抽出される文字列データ群を構成する。候補辞書テーブル５の第２行以降についても、文字列抽出手段４は同様の処理を実行し、各レコード（行）に対応する文字列データ群を抽出する。
【００３４】
次に、処理がステップＳ８に進むと、文字列抽出手段４は、抽出した文字列データ群と、候補文字列群欄５ｄに記憶されている候補文字列群とを比較し、各候補文字列に対する一致率を求める。その詳細については、図７，図８を参照して後述するが、例えば、候補文字列群が「結婚」「出生」「離職」「異動」「同居」であった場合に、「結婚：５０％」「出生：１００％」「離職：１００％」「異動：５０％」「同居：５０％」のように一致率が計算される。
【００３５】
次に、処理がステップＳ１０に進むと、文字列抽出手段４によって抽出個数指定データが特定される。その詳細については、図９を参照して後述するが、候補辞書テーブル５の抽出個数指定データ欄５ｃに空白以外のデータが記憶されている場合は、そのデータがそのまま抽出個数指定データとして特定される。一方、抽出個数指定データ欄５ｃが空白である場合は、前文字列辞書テーブル８に基づいて、抽出個数指定データが特定される。
【００３６】
次に、処理がステップＳ１２に進むと、文字列抽出手段４は、抽出個数指定データに基づいて、一または複数の候補文字列をレベル分けされつつ選択する。レベル分けされつつ選択された候補文字列は、文書１の記入者が記入したと推測される内容であり、上述した「被抽出文字列」になる。また、各被抽出文字列に付与されるレベルを「抽出レベル」と呼ぶ。次に、処理がステップＳ１４に進むと、文字列抽出手段４は、各被抽出文字列と、その抽出レベルとをデータベース７に書き込む。
【００３７】
上述のステップＳ１２における処理の詳細は、次の手順（１）〜（７）に基づく。
（１）閾値の設定
文字列抽出手段４は、ステップＳ１２においてレベル分けを行うため、最初に閾値を決定する。上述したように、抽出個数指定データには、等号および／または不等号が含まれているが、文字列抽出手段４は、等号／不等号の種類に応じて、一致率に対する閾値を設定する。例えば、等号／不等号が「＜」または「＜＝」であった場合、閾値は「９０％」に設定される。すなわち閾値が「９０％以下」の候補文字列の中から被抽出文字列が優先的に選択されることになる。
【００３８】
また、等号／不等号が「＞」または「＞＝」であった場合、文字列抽出手段４は、閾値を「８０％」に設定する。また、等号／不等号が「＝」（等号のみ）であった場合には、文字列抽出手段４は、閾値を「６０％」に設定する。すなわち、一致率が「８０％以下」または「６０％以下」の候補文字列の中から被抽出文字列が優先的に選択されることになる。
【００３９】
（２）抽出レベルＡの被抽出文字列の選択
抽出個数指定データには、被抽出文字列の最大個数が特定されている場合がある。例えば、抽出個数指定データが「３＞＝」または「３＝」であれば、最大個数は「３」である。また、例えば「１＜＝」のように抽出個数指定データに最大個数が明示されていない場合は、候補文字列の数が最大個数になる。文字列抽出手段４は、ステップＳ１２において、候補文字列の中で一致率が閾値以下である候補文字列の中から、この最大個数を限度とし、一致率の低い順に候補文字列が被抽出文字列として選択する。このようにして選択された被抽出文字列の抽出レベルを「Ａ」とする。
【００４０】
（３）抽出レベルＢの被抽出文字列の選択
文字列抽出手段４は、等号／不等号が「＝」（等号のみ）であった場合には、ステップＳ１２において、抽出レベルＢの被抽出文字列を選択する。すなわち、文字列抽出手段４は、抽出レベルＡの被抽出文字列の中で一致率が最高である（最後に選択した）被抽出文字列に対して、一致率が同等である（例えば、一致率が＋１０％以内である）他の候補文字列を、抽出レベルＢの被抽出文字列として選択する。
【００４１】
（４）抽出レベルＣの被抽出文字列の選択
等号／不等号が「＝」（等号のみ）であった場合、文字列抽出手段４は、ステップＳ１２において、抽出レベルＡ，Ｂの何れにも該当しない候補文字列であって、一致率が「１００％未満」の候補文字列を、抽出レベルＣの被抽出文字列として選択する。
（５）抽出レベルＤの被抽出文字列の選択
等号／不等号が「＞」または「＞＝」であった場合、文字列抽出手段４は、ステップＳ１２において、抽出レベルＡに該当しない候補文字列であって、一致率が「１００％未満」の候補文字列を、抽出レベルＤの被抽出文字列として選択する。
【００４２】
（６）抽出レベルＥの被抽出文字列の選択
等号／不等号が「＜」または「＜＝」であった場合、文字列抽出手段４は、ステップＳ１２において、抽出レベルＡに該当しない候補文字列であって、一致率が「１００％未満」の候補文字列を、抽出レベルＥの被抽出文字列として選択する。
（７）エラー情報の記憶
候補文字列の中で、上述した何れの抽出レベルにおいても、被抽出文字列として選択できるものが無かった場合（すなわち、全ての候補文字列の一致率が「１００％」であった場合）、文字列抽出手段４は、ステップＳ１２において、所定のエラー情報をデータベース７に記憶させる旨を決定する。このエラー情報は、ステップＳ１４において、文字列抽出手段４によってデータベース７に記憶される。
【００４３】
（比較処理（Ｓ８）：図７）
次に、本実施形態において、上述したステップＳ８にて実行される比較処理の詳細を図７を参照し説明する。図７において処理がステップＳ２０に進むと、変数Ｍ，Ｎが「１」に初期化される。次に、処理がステップＳ２２に進むと、文字列抽出手段４は、候補文字列群の中からＭ番目の候補文字列ＳＴ１を切り出す。次に、処理がステップＳ２４に進むと、文字列抽出手段４は、文字列データ群の中からＮ番目の文字列ＳＴ２を切り出す。
【００４４】
ここで、図２(a)，(c)の各３行目の内容を例として考えると、候補文字列は、「結婚」「出生」「離職」「異動」「同居」の５個になる。また、文字変換手段３が出力した文字列データ群は、「結婚」「出生」「麺醸」「異動」「同居」の５個の文字列になる。最初の段階では変数Ｍ，Ｎが共に「１」であるから、文字列ＳＴ１，ＳＴ２は共に「結婚」である。
【００４５】
次に、処理がステップＳ２６に進むと、文字列抽出手段４は、文字列ＳＴ１，ＳＴ２の中で一致する文字数をカウントし、一致率を算出する。その詳細を以下説明する。候補文字列ＳＴ１を構成する文字数をｊとし、文字列ＳＴ２を構成する文字数をｋとすると、候補文字列ＳＴ１を構成する各文字と文字列ＳＴ２を構成する各文字との組み合わせの数は「ｊ×ｋ」個になる。「一致する文字数」とは、この「ｊ×ｋ」個の組み合わせの中から、一致するものの数を指す。また、一致率とは、この「一致する文字数」を「ｍａｘ（ｊ，ｋ）」（ｊまたはｋのうち大きい方の数）で除算した値である。
【００４６】
ステップＳ２６の処理の具体例を図８を参照し説明する。図８において、文字列ＳＴ１，ＳＴ２がそれぞれ「同居」および「熱居」であったと仮定する。この場合、候補文字列ＳＴ１を構成する各文字と文字列ＳＴ２を構成する各文字との組み合わせの数（ｊ×ｋ）は、「２×２＝４」である。そして、これらの組み合わせのうち一致するものは、文字列ＳＴ１，ＳＴ２の２文字目の「居」のみであるから、一致する文字数は「１」である。そして、ｍａｘ（ｊ，ｋ）は「２」であるから、一致率は「５０％」ということになる。
【００４７】
図２(a)，(c)の各３行目の内容に戻ると、最初の段階で文字列ＳＴ１，ＳＴ２は共に「結婚」であるから、一致する文字数は「２」であり、一致率は「１００％」になる。次に、処理がステップＳ２８に進むと、変数Ｎは候補文字列数（ここでは「５」）に達したか否かが判定される。「Ｎｏ」と判定されるとステップＳ３４にて変数Ｎが「１」だけインクリメントされ（「２」になり）、ステップＳ２４，Ｓ２６の処理が繰り返される。
【００４８】
これにより、候補文字列ＳＴ１は、２番目の候補文字列「出生」になり、候補文字列ＳＴ１「出生」と文字列ＳＴ２「結婚」について、文字列抽出手段４はステップＳ２６の処理を実行する。この場合、一致する文字数は「０」であり、一致率は「０％」ということになる。以後同様に文字列ＳＴ２「結婚」に対して、候補文字列ＳＴ１として「離職」「異動」「同居」が順次選択され、文字列抽出手段４によってステップＳ２６の処理が実行されるが、何れも一致率は「０％」である。
【００４９】
次に、処理がステップＳ３０に進むと、変数Ｍは、抽出した文字列データ数に達したか否かが判定される。ここで「Ｎｏ」と判定されると、処理はステップＳ３２に進み、変数Ｍが「１」だけインクリメントされ（「２」になり）、変数Ｎは「１」に初期化され、ステップＳ２２以降の処理が繰り返される。そして、変数Ｍが抽出した文字列データ数に達すると、ステップＳ３０において「Ｎｏ」と判定され本ルーチンの処理が終了する。
【００５０】
以上の比較処理例のように、候補文字列群の中の各候補文字列と、文字列データ群の中の各文字列との一致率が求められると、処理はステップＳ３２に進む。ここでは、文字列抽出手段４は、候補文字列の出現順序に従って、各候補文字列の一致率を特定する。ここで「出現順序に従って」とは、ある候補文字列（以下、ＳＴＡという）がある文字列データ（以下、ＳＴＢという）と１００％一致した場合は、「候補文字列ＳＴＡ以降に出現する候補文字列に対する、文字列データＳＴＢおよびそれ以前に出現した文字列データの一致率」、および「候補文字列ＳＴＡ以前に出現した候補文字列に対する、文字列データＳＴＢおよびそれ以降に出現する文字列データの一致率」は何れも参酌されない、ということである。
【００５１】
図２(a)，(c)の各３行目の例においては、候補文字列ＳＴ１が「結婚」「出生」「異動」または「同居」であるとき、文字列データ群中に同一の文字列が存在するから、一致率は全て「１００％」になる。一方、候補文字列ＳＴ１が「離職」であるとき、文字列データ群中には同一の文字列が存在せず、また一文字も一致するものが無いため、その一致率は「０％」になる。
【００５２】
ここで、図２(a)，(c)に示したもの以外の他の比較処理例についても述べておく。
候補文字列群が上述の例と同じく「結婚」「出生」「離職」「異動」「同居」であり、文字列データ群が「出生」「舗熊」「黙シ」「異動」「同居」であったと仮定する。この場合、「出生」「異動」「同居」の一致率は「１００％」になり、「結婚」「離職」の一致率は「０％」になる。
【００５３】
また、候補文字列群が同じく「結婚」「出生」「離職」「異動」「同居」であり、文字列データ群が「結動」「出生」「離職」「異婚」「同」であったと仮定する。この場合、候補文字列「出生」「離職」は、文字列データ「出生」「離職」に対して各々一致率が「１００％」になる。候補文字列「結婚」は「結動」および「異婚」とそれぞれ「５０％」一致するが、候補文字列「結婚」は候補文字列「出生」の前に出現しているため、文字列データ「出生」の後に現れる文字列データ「異婚」に対する一致率は参酌されず、候補文字列「結婚」の一致率は、文字列データ「結動」に基づいて「５０％」であると定められる。
【００５４】
この比較処理例においては、候補文字列「異動」についても文字列データ「結動」および「異婚」とそれぞれ「５０％」一致するが、文字列データ「結動」は文字列データ「出生」および「離職」以前に出現しているため参酌されない。すなわち、候補文字列「異動」の一致率は、文字列データ「異婚」に基づいて、「５０％」であると定められる。また、候補文字列「同居」も文字列データ「同」に基づいて、一致率は「５０％」であると定められる。
【００５５】
（抽出個数指定データ特定処理（Ｓ１０）：図９）
次に、本実施形態において、上述したステップＳ１０にて実行される抽出個数指定データ特定処理の詳細を図９を参照し説明する。なお、文字列抽出手段４は、候補辞書テーブル５（図４）の各レコード（行）毎に実行図９に示すルーチンを実行する。図９において処理がステップＳ４０に進むと、当該レコードにおいて抽出個数指定データ欄５ｃになんらかのデータが指定されているか否かが判定される。ここで「Ｙｅｓ」と判定されると処理はステップＳ４２に進み、文字列抽出手段４は、当該抽出個数指定データ欄５ｃに記憶されているデータを、そのまま抽出個数指定データ（図６におけるステップＳ１０の結果）としてセットし、本ルーチンの処理は終了する。
【００５６】
一方、ステップＳ４０において「Ｎｏ」と判定されると処理はステップＳ４４に進み、文字列抽出手段４は、前文字列辞書テーブル８の各レコードの内容、すなわち指定前文字列、重要文字列および抽出個数指定データを前文字列辞書テーブル８から読み出す。次に、処理がステップＳ４６に進むと、文字列抽出手段４は、前文字列辞書テーブル８内の指定前文字列（指定前文字列欄８ａの内容）のうち、候補辞書テーブル５の前文字列欄５ａに記憶されている前文字列に近似するものが存在するか否かを判定する。なお、ここで「近似する」とは、例えば「一致率が７０％以上」ということである。
【００５７】
一または複数の指定前文字列が前文字列に近似する場合は「Ｙｅｓ」と判定され、処理はステップＳ４８に進む。ここでは、文字列抽出手段４は、前文字列に近似する指定前文字列のうち、重要文字列が完全に一致するものは存在するか（すなわち、当該前文字列の中に当該重要文字列が含まれているものは存在するか）否かを判定する。少なくとも一の指定前文字列について重要文字列が一致する場合は、ここで「Ｙｅｓ」と判定され処理はステップＳ５０に進む。ここでは、文字列抽出手段４は、重要文字列が一致する指定前文字列のうち、一致率が最高であるものを選択する。そして、前文字列辞書テーブル８（図５）において、当該指定前文字列に対応する（同一レコード中にある）抽出個数指定データ欄８ｃの内容が、文字列抽出手段４によって、抽出個数指定データとしてセットされ、本ルーチンの処理は終了する。
【００５８】
一方、上記ステップＳ４６またはＳ４８にて「Ｎｏ」と判定されると、処理はステップＳ５２に進み、文字列抽出手段４は、デフォルトの抽出個数指定データ（図５の最下行の抽出個数指定データ欄８ｃの内容である「０＜＝」）を抽出個数指定データとしてセットし、本ルーチンの処理が終了する。
【００５９】
［実施形態の効果］
以上のように、本実施形態によれば、被抽出文字列の候補となる複数の候補文字列（例えば「男」「女」）を記憶する候補文字列記憶手段（５）と、各候補文字列の中から文字列データ群（例えば「男」「○２」）の中に存在しないもの（例えば「女」）を被抽出文字列として抽出する文字列抽出手段（４）とを有するから、定型文書等に対する記入内容を高確率で認識できる。
【００６０】
また、本実施形態においては、候補文字列記憶手段（５）は、複数の候補文字列と、文書において何れかの候補文字列に隣接して現れる隣接文字列とを対応付けて記憶するものであり、文字列抽出手段（４）は、文字列データ群の中から隣接文字列に対応する箇所を検索するから、文字列データ群のうち各候補文字列と比較する範囲を明確に特定することができる。
【００６１】
また、本実施形態においては、候補文字列記憶手段（５）は、隣接文字列として、文書において複数の候補文字列の前に現れる前文字列と、複数の候補文字列の後に現れる後文字列とを記憶するものであり、文字列抽出手段（４）は、文字列データ群の中から前文字列に対応する箇所と、後文字列に対応する箇所との間に挟まれた部分を、文字列データ群のうち各候補文字列と比較する範囲として特定するから、文字列データ群のうち各候補文字列と比較する範囲を一層明確に特定することができる。
【００６２】
また、本実施形態においては、候補文字列記憶手段（５）は、複数の候補文字列と、被抽出文字列の抽出個数を指定する抽出個数指定データとを対応付けて記憶するものであり、文字列抽出手段（４）は、各候補文字列の各々と各文字列データの各々とから成る組に対して所定の規則に基づいて一致率を求め（ステップＳ２６）、各候補文字列に係る複数の一致率の中から当該候補文字列に対する一致率を選択し（ステップＳ３２）、複数の候補文字列の中から、対応する一致率が低い順に、抽出個数指定データに基づいた数の被抽出文字列を抽出するから、抽出個数指定データに基づいた数の被抽出文字列を抽出することができる。
【００６３】
［変形例］
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
（１）上記実施形態においては、二つの文字列ＳＴ１，ＳＴ２を構成する各文字の組み合わせの中から、文字が一致する組み合わせの数を長い方の文字列の文字数で除算した結果を「一致率」としていた。しかし、一致率は、これに限定されるものではなく、例えば、レーベンシュタイン距離（編集距離）を用いてもよい。この場合、レーベンシュタイン距離を長い方の文字列の文字数で除算し、「１」からこの除算結果を減算した値を「一致率」とすることができる。
【００６４】
（２）上記実施形態において、候補辞書テーブル５には前文字列欄５ａおよび後文字列欄５ｂの双方を設けたが、一方のみを設けてもよい。これは、前文字列または後文字列のうち少なくとも一方（隣接文字列）を特定することにより、対象となる文字列データ群の位置を特定することが可能だからである。
【００６５】
（３）図６，図７，図９等のプログラムをＣＤ−ＲＯＭ等の記録媒体に格納し、あるいは伝送路を通じて頒布してもよい。
【符号の説明】
【００６６】
１  文書
２  イメージセンサ
３  文字変換手段
４  文字列抽出手段
５  候補辞書テーブル（候補文字列記憶手段）
５ａ  前文字列欄
５ｂ  後文字列欄
５ｃ  抽出個数指定データ欄
５ｄ  候補文字列群欄
６  書込み制御手段
７  データベース
８  前文字列辞書テーブル
８ａ  指定前文字列欄
８ｂ  重要文字列欄
８ｃ  抽出個数指定データ欄
１０  文字列データ群
【図１】
2016103219.tif 000003
【図２】
2016103219.tif 000004
【図３】
2016103219.tif 000005
【図４】
2016103219.tif 000006
【図５】
2016103219.tif 000007
【図６】
2016103219.tif 000008
【図７】
2016103219.tif 000009
【図８】
2016103219.tif 000010
【図９】
2016103219.tif 000011