(57)【要約】【課題】画像から検出された文字列を短時間且つ高精度に補正することを可能とする情報処理装置、制御方法及び制御プログラムを提供する。【解決手段】情報処理装置２００は、住所要素を複数の階層に分けて記憶する記憶部２１０と、入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出する第１文字抽出部２２２と、第１文字列群に含まれる全ての第１文字列と、第１階層及び第２階層に含まれる全ての住所要素とを比較して第１住所要素候補を抽出する第１候補抽出部２２３と、第２文字列群を抽出する第２文字抽出部２２４と、第２住所要素候補を抽出する第２候補抽出部２２５と、第１住所要素候補及び第２住所要素候補に基づいて、入力文字列を補正する補正部２２６と、補正された入力文字列を出力する出力部２０３と、を有する。【選択図】図５
2020187622.tif 000002
【特許請求の範囲】
【請求項１】
住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて記憶する記憶部と、
画像から検出された入力文字列を取得する取得部と、
前記入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出する第１文字抽出部であって、ｎは１から２以上の所定の数までの整数である第１文字抽出部と、
前記第１文字列群に含まれる全ての第１文字列と、前記第１階層及び前記第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、前記第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出する第１候補抽出部と、
前記第１住所要素候補を抽出する基礎となった第１文字列を前記入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出する第２文字抽出部であって、ｍは１から２以上の所定の数までの整数である第２文字抽出部と、
前記第２文字列群に含まれる全ての第２文字列と、前記第１住所要素候補を含む階層の次の階層に含まれ且つ前記第１住所要素候補と関連した全ての住所要素とを比較して、前記第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出する第２候補抽出部と、
前記第１住所要素候補及び前記第２住所要素候補に基づいて、前記入力文字列を補正する補正部と、
前記補正された入力文字列を出力する出力部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記画像には、手書き文字が含まれる、請求項１に記載の情報処理装置。
【請求項３】
前記第２文字抽出部は、前記第１候補抽出部により前記第１住所要素候補が複数抽出された場合、前記複数の第１住所要素候補のそれぞれに対して前記第２文字列群を抽出し、
前記第２候補抽出部は、前記第２文字抽出部により抽出された第２文字列群のそれぞれに対して前記第２住所要素候補を抽出する、請求項１または２に記載の情報処理装置。
【請求項４】
第２住所要素候補の抽出位置が前記入力文字列の最後尾に達するまで、又は、第２住所要素候補を含む階層の次の階層が存在しなくなるまで、
前記第２文字抽出部は、前記第２候補抽出部により直前に抽出された第２住所要素候補を抽出する基礎となった第２文字列をさらに除いた部分文字列から次の第２文字列群を抽出し、
前記第２候補抽出部は、前記次の第２文字列群に含まれる全ての第２文字列と、前記直前に抽出された第２住所要素候補を含む階層の次の階層に含まれ且つ当該第２住所要素候補と関連した全ての住所要素とを比較して、前記次の第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を新たに抽出し、
前記補正部は、前記抽出された各第２住所要素候補に基づいて、前記入力文字列を補正する、請求項１または２に記載の情報処理装置。
【請求項５】
前記第２候補抽出部は、前記第２文字列を前記第２階層より下位の階層に含まれる住所要素と比較する場合、さらに、前記第２文字列を各住所要素に大字、字又は小字を加えた文字列と比較する、請求項１〜４の何れか一項に記載の情報処理装置。
【請求項６】
前記第１候補抽出部は、前記第１文字列と前記住所要素とのレーベンシュタイン距離を用いて、前記第１文字列を前記住所要素と比較する、請求項１〜５の何れか一項に記載の情報処理装置。
【請求項７】
記憶部及び出力部を有する情報処理装置の制御方法であって、
住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて前記記憶部に記憶し、
画像から検出された入力文字列を取得し、
前記入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出し、ｎは１から２以上の所定の数までの整数であり、
前記第１文字列群に含まれる全ての第１文字列と、前記第１階層及び前記第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、前記第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出し、
前記第１住所要素候補を抽出する基礎となった第１文字列を前記入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出し、ｍは１から２以上の所定の数までの整数であり、
前記第２文字列群に含まれる全ての第２文字列と、前記第１住所要素候補を含む階層の次の階層に含まれ且つ前記第１住所要素候補と関連した全ての住所要素とを比較して、前記第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出し、
前記第１住所要素候補及び前記第２住所要素候補に基づいて、前記入力文字列を補正し、
前記補正された入力文字列を前記出力部から出力する、
ことを特徴とする制御方法。
【請求項８】
記憶部及び出力部を有する情報処理装置の制御プログラムであって、
住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて前記記憶部に記憶し、
画像から検出された入力文字列を取得し、
前記入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出し、ｎは１から２以上の所定の数までの整数であり、
前記第１文字列群に含まれる全ての第１文字列と、前記第１階層及び前記第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、前記第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出し、
前記第１住所要素候補を抽出する基礎となった第１文字列を前記入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出し、ｍは１から２以上の所定の数までの整数であり、
前記第２文字列群に含まれる全ての第２文字列と、前記第１住所要素候補を含む階層の次の階層に含まれ且つ前記第１住所要素候補と関連した全ての住所要素とを比較して、前記第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出し、
前記第１住所要素候補及び前記第２住所要素候補に基づいて、前記入力文字列を補正し、
前記補正された入力文字列を前記出力部から出力する、
ことを前記情報処理装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法及び制御プログラムに関し、特に、画像から検出された入力文字列を補正する情報処理装置、制御方法及び制御プログラムに関する。
【背景技術】
【０００２】
近年、働き方改革が推進されている一方で、運輸業界では人手不足が問題となっている。オペレータが送り状の手書き住所をコンピュータに入力する業務では、ＯＣＲ（Optical Character Recognition）技術を利用してコンピュータに手書き住所を自動認識（検出）させることにより効率化を図ることができる。しかしながら、記入者の筆跡等によっては、手書き住所に正しく検出されない文字が含まれる可能性がある。一方、住所に用いられる文字列は有限であるため、コンピュータに、事前に登録しておいた住所辞書を用いて、検出した文字列を補正させることにより、手書き住所の検出精度を向上させることができる。
【０００３】
記載住所を読み取ったＯＣＲから認識した文字列を受け取って、住所辞書を参照しながら解析する文字認識処理装置が開示されている（特許文献１を参照）。文字認識処理装置は、入力した文字列の先頭の候補文字を、住所辞書の最上位階層の都道府県の地名と対比し、都道府県名候補の尤度を計算する。文字認識処理装置は、最大尤度が基準以下である場合、住所辞書の第２階層の区市郡レベルの全地名に対して対比を行い、地名ごとに尤度を付与する。文字認識処理装置は、最大尤度が基準を越える場合、尤度の大きい順に複数の候補を選択し、入力した文字列から解析処理した階層に相当する文字を除いて、選択した候補の次階層の地名に対し尤度を計算する。
【０００４】
また、帳票などに記入された住所の画像を読み取り、読み取った画像に含まれる住所を示す文字列を住所の階層構造を利用して認識する住所認識装置が開示されている（特許文献２を参照）。住所認識装置は、入力画像から住所を形成する文字列の一部をなす文字候補セグメントを切り出し、文字候補セグメントごとに複数の文字認識結果を出力し、住所辞書を辿りつつ住所を形成する各階層に該当し得る候補文字列を抽出する。住所認識装置は、抽出した各階層の候補文字列を結合して複数の住所候補を生成し、各住所候補の中から類似度が最も高い住所候補を検出結果として出力する。住所辞書は、各住所を都道府県名、市名、町名に階層化した辞書であり、住所認識装置は、住所辞書に載っている全ての住所を階層ごとに全部検索し、その中で可能性のある階層を検索する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１１０９６号公報
【特許文献２】特開２００１−２８３１５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像から文字列を検出するシステムでは、画像から検出された文字列をより短時間且つ高精度に補正することが望まれている。
【０００７】
情報処理装置、制御方法及び制御プログラムの目的は、画像から検出された文字列を短時間且つ高精度に補正することを可能とすることにある。
【課題を解決するための手段】
【０００８】
実施形態の一側面に係る情報処理装置は、住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて記憶する記憶部と、画像から検出された入力文字列を取得する取得部と、入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出する第１文字抽出部であって、ｎは１から２以上の所定の数までの整数である第１文字抽出部と、第１文字列群に含まれる全ての第１文字列と、第１階層及び第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出する第１候補抽出部と、第１住所要素候補を抽出する基礎となった第１文字列を入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出する第２文字抽出部であって、ｍは１から２以上の所定の数までの整数である第２文字抽出部と、第２文字列群に含まれる全ての第２文字列と、第１住所要素候補を含む階層の次の階層に含まれ且つ第１住所要素候補と関連した全ての住所要素とを比較して、第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出する第２候補抽出部と、第１住所要素候補及び第２住所要素候補に基づいて、入力文字列を補正する補正部と、補正された入力文字列を出力する出力部と、を有する。
【０００９】
また、実施形態の一側面に係る制御方法は、記憶部及び出力部を有する情報処理装置の制御方法であって、住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて記憶部に記憶し、画像から検出された入力文字列を取得し、入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出し、ｎは１から２以上の所定の数までの整数であり、第１文字列群に含まれる全ての第１文字列と、第１階層及び第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出し、第１住所要素候補を抽出する基礎となった第１文字列を入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出し、ｍは１から２以上の所定の数までの整数であり、第２文字列群に含まれる全ての第２文字列と、第１住所要素候補を含む階層の次の階層に含まれ且つ第１住所要素候補と関連した全ての住所要素とを比較して、第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出し、第１住所要素候補及び第２住所要素候補に基づいて、入力文字列を補正し、補正された入力文字列を出力部から出力する。
【００１０】
また、実施形態の一側面に係る制御プログラムは、記憶部及び出力部を有する情報処理装置の制御プログラムであって、住所を表示するための住所要素を、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて記憶部に記憶し、画像から検出された入力文字列を取得し、入力文字列の先頭からｎ番目までの文字をそれぞれ含む複数の第１文字列を含む第１文字列群を抽出し、ｎは１から２以上の所定の数までの整数であり、第１文字列群に含まれる全ての第１文字列と、第１階層及び第１階層の次の階層である第２階層に含まれる全ての住所要素とを比較して、第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出し、第１住所要素候補を抽出する基礎となった第１文字列を入力文字列から除いた部分文字列の先頭からｍ番目までの文字をそれぞれ含む複数の第２文字列を含む第２文字列群を抽出し、ｍは１から２以上の所定の数までの整数であり、第２文字列群に含まれる全ての第２文字列と、第１住所要素候補を含む階層の次の階層に含まれ且つ第１住所要素候補と関連した全ての住所要素とを比較して、第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出し、第１住所要素候補及び第２住所要素候補に基づいて、入力文字列を補正し、補正された入力文字列を出力部から出力することを情報処理装置に実行させる。
【発明の効果】
【００１１】
本実施形態によれば、情報処理装置、制御方法及び制御プログラムは、画像から検出された文字列を短時間且つ高精度に補正することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に従った画像処理システム１の概略構成を示す図である。
【図２】第２記憶装置２１０及び第２ＣＰＵ２２０の概略構成を示す図である。
【図３】住所辞書テーブルのデータ構造の一例を示す模式図である。
【図４】補正処理の動作を示すフローチャートである。
【図５】補正処理の動作を示すフローチャートである。
【図６】入力画像６００の一例を示す模式図である。
【図７】処理回路３３０の概略構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本開示の一側面に係る情報処理装置、制御方法及び制御プログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１４】
図１は、実施形態に従った画像処理システムの概略構成を示す図である。図１に示すように、画像処理システム１は、画像読取装置１００と、情報処理装置２００とを有する。
【００１５】
画像読取装置１００は、例えばスキャナ装置、デジタルカメラ、多機能携帯端末又は携帯電話等である。画像読取装置１００は、情報処理装置２００に接続されている。情報処理装置２００は、例えばパーソナルコンピュータ等である。
【００１６】
画像読取装置１００は、第１インタフェース装置１０１と、撮像装置１０２と、第１記憶装置１１０と、第１ＣＰＵ（Central Processing Unit）１２０とを有する。
【００１７】
第１インタフェース装置１０１は、ＵＳＢ（Universal Serial Bus）等のシリアルバスに準じるインタフェース回路を有し、情報処理装置２００と電気的に接続して画像データ及び各種の情報を送受信する。また、第１インタフェース装置１０１の代わりに、無線信号を送受信するアンテナと、所定の通信プロトコルに従って、無線通信回線を通じて信号の送受信を行うための無線通信インタフェース回路とを有する通信装置が用いられてもよい。所定の通信プロトコルは、例えば無線ＬＡＮ（Local Area Network）である。
【００１８】
撮像装置１０２は、主走査方向に直線状に配列されたＣＣＤ（Charge Coupled Device）による撮像素子を備える縮小光学系タイプの撮像センサを有する。さらに、撮像装置１０２は、光を照射する光源と、撮像素子上に像を結ぶレンズと、撮像素子から出力された電気信号を増幅してアナログ／デジタル（Ａ／Ｄ）変換するＡ／Ｄ変換器とを有する。撮像装置１０２において、撮像センサは、原稿の表面を撮像してアナログの画像信号を生成して出力し、Ａ／Ｄ変換器は、このアナログの画像信号をＡ／Ｄ変換してデジタルの入力画像を生成して出力する。入力画像は、各画素データが、例えばＲＧＢ毎に８ｂｉｔで表される計２４ｂｉｔのＲ（赤色）値、Ｇ（緑色）値、Ｂ（青色）値からなるカラー多値画像である。なお、ＣＣＤの代わりにＣＭＯＳ（Complementary Metal Oxide Semiconductor）による撮像素子を備える等倍光学系タイプのＣＩＳ（Contact Image Sensor）が用いられてもよい。撮像装置１０２は、原稿として、例えば手書き文字が含まれる帳票等を撮像する。
【００１９】
第１記憶装置１１０は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第１記憶装置１１０には、画像読取装置１００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて第１記憶装置１１０にインストールされてもよい。可搬型記録媒体は、例えばＣＤ−ＲＯＭ（compact disc read only memory）、ＤＶＤ−ＲＯＭ（digital versatile disc read only memory）等である。また、第１記憶装置１１０は、撮像装置１０２により生成された入力画像等を記憶する。
【００２０】
第１ＣＰＵ１２０は、予め第１記憶装置１１０に記憶されているプログラムに基づいて動作する。なお、第１ＣＰＵ１２０に代えて、ＤＳＰ（digital signal processor）、ＬＳＩ（large scale integration）等が用いられてよい。また、第１ＣＰＵ１２０に代えて、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）等が用いられてもよい。
【００２１】
第１ＣＰＵ１２０は、第１インタフェース装置１０１、撮像装置１０２及び第１記憶装置１１０等と接続され、これらの各部を制御する。第１ＣＰＵ１２０は、撮像装置１０２の原稿読取制御、第１インタフェース装置１０１を介した情報処理装置２００とのデータ送受信制御等を行う。
【００２２】
情報処理装置２００は、第２インタフェース装置２０１と、入力装置２０２と、表示装置２０３と、第２記憶装置２１０と、第２ＣＰＵ２２０と、処理回路２３０とを有する。以下、情報処理装置２００の各部について詳細に説明する。
【００２３】
第２インタフェース装置２０１は、画像読取装置１００の第１インタフェース装置１０１と同様のインタフェース回路を有し、情報処理装置２００と画像読取装置１００とを接続する。また、第２インタフェース装置２０１の代わりに、無線信号を送受信するアンテナと、無線ＬＡＮ等の所定の通信プロトコルに従って、無線通信回線を通じて信号の送受信を行うための無線通信インタフェース回路とを有する通信装置が用いられてもよい。
【００２４】
入力装置２０２は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインタフェース回路を有し、利用者の操作に応じた信号を第２ＣＰＵ２２０に出力する。
【００２５】
表示装置２０３は、出力部の一例である。表示装置２０３は、液晶、有機ＥＬ（Electro-Luminescence）等から構成されるディスプレイ及びディスプレイに画像データを出力するインタフェース回路を有する。表示装置２０３は、第２ＣＰＵ２２０からの指示に従って、画像データをディスプレイに表示する。
【００２６】
第２記憶装置２１０は、画像読取装置１００の第１記憶装置１１０と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第２記憶装置２１０には、情報処理装置２００の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第２記憶装置２１０にインストールされてもよい。また、第２記憶装置２１０は、住所辞書テーブル等を記憶する。住所辞書テーブルの詳細については後述する。
【００２７】
第２ＣＰＵ２２０は、予め第２記憶装置２１０に記憶されているプログラムに基づいて動作する。なお、第２ＣＰＵ２２０に代えて、ＤＳＰ、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡ等が用いられてもよい。
【００２８】
第２ＣＰＵ２２０は、第２インタフェース装置２０１、入力装置２０２、表示装置２０３、第２記憶装置２１０及び処理回路２３０等と接続され、これらの各部を制御する。第２ＣＰＵ２２０は、第２インタフェース装置２０１を介した画像読取装置１００とのデータ送受信制御、入力装置２０２の入力制御、表示装置２０３の表示制御、処理回路２３０による画像処理の制御等を行う。また、第２ＣＰＵ２２０は、入力画像から入力文字列を取得し、住所辞書テーブルに基づいて補正する。
【００２９】
処理回路２３０は、入力画像に対して所定の画像処理を実行する。処理回路２３０は、ＣＰＵ、ＤＳＰ、ＬＳＩ、ＡＳＩＣ又はＦＰＧＡ等で構成される。
【００３０】
図２は、第２記憶装置２１０及び第２ＣＰＵ２２０の概略構成を示す図である。
【００３１】
図２に示すように第２記憶装置２１０には、取得プログラム２１１、第１文字抽出プログラム２１２、第１候補抽出プログラム２１３、第２文字抽出プログラム２１４、第２候補抽出プログラム２１５、補正プログラム２１６及び出力制御プログラム２１７等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。第２ＣＰＵ２２０は、第２記憶装置２１０に記憶された各プログラムを読み取り、読み取った各プログラムに従って動作する。これにより、第２ＣＰＵ２２０は、取得部２２１、第１文字抽出部２２２、第１候補抽出部２２３、第２文字抽出部２２４、第２候補抽出部２２５、補正部２２６及び出力制御部２２７として機能する。
【００３２】
図３は、住所辞書テーブルのデータ構造の一例を示す模式図である。
【００３３】
図３に示すように、住所辞書テーブルには、住所を表示するための各住所要素が、最も広域側の第１階層から下位の階層に向けて、複数の階層に分けて記憶される。即ち、住所辞書テーブルは、木構造を有している。各住所要素は、国毎に定められた住所の表記方法に従って区分される住所の要素であり、日本では、住居表示に関する法律で規定される都道府県名、郡名、市名、区名、町名、村名、字（あざ）名及び他の地名等である。住所辞書テーブルには、二つ以上の階層が含まれる。第１階層は、最上位階層であり、都道府県名を規定する階層である。第２階層は、第１階層の次の（下位の）階層であり、第１階層で規定された名称（都道府県名）に関連付けて、各名称に続く郡名、市名、区名、町名、村名又は字名等を規定する階層である。第３階層は、第２階層の次の階層であり、第２階層で規定された名称（郡名、市名、区名、町名、村名又は字名等）に関連付けて、各名称に続く区名、町名、村名、字名又は他の地名等を規定する階層である。第４階層以下の各階層は、それぞれ、直前の（上位の）階層で規定された名称に関連付けて、各名称に続く字名又は他の地名等を規定する階層である。
【００３４】
図４及び図５は、情報処理装置２００による補正処理の動作を示すフローチャートである。以下、図４及び図５に示したフローチャートを参照しつつ、補正処理の動作を説明する。なお、以下に説明する動作のフローは、予め第２記憶装置２１０に記憶されているプログラムに基づき主に処理回路２３０により情報処理装置２００の各要素と協同して実行される。なお、補正処理が実行される前に、画像読取装置１００の撮像装置１０２は、手書き住所等の手書き文字が含まれる帳票、特に文字を記入するための文字枠が含まれない帳票を撮像した入力画像を生成している。第１ＣＰＵ１２０は、生成された入力画像を、第１インタフェース装置１０１を介して情報処理装置２００に送信している。
【００３５】
最初に、取得部２２１は、入力画像から検出された入力文字列を取得する（ステップＳ１０１）。取得部２２１は、第２インタフェース装置２０１を介して画像読取装置１００から手書き文字が含まれる入力画像を取得し、公知のＯＣＲ技術を利用して、取得した入力画像から文字を検出し、検出した各文字を含む入力文字列を取得する。なお、取得部２２１の代わりに画像読取装置１００の第１ＣＰＵ１２０が入力画像から入力文字列を検出し、取得部２２１は、第２インタフェース装置２０１を介して画像読取装置１００から入力文字列を取得してもよい。
【００３６】
図６は、入力画像６００の一例を示す模式図である。
【００３７】
図６に示す例では、入力画像６００に「かほく市宇野気ヌ９８−２」という手書き住所が写っている。即ち、この手書き住所には「かほく市」という市名６０１と、「宇野気」という大字（おおあざ）名６０２とが含まれており、「石川県」という県名は含まれていない。また、この手書き住所では「か」の一部６０３と「ほ」の一部６０４とが重なっている。さらに、この手書き住所では「気」の左側に消し跡によるノイズ６０５が写っている。そのため、この例では、「ほ」が誤って「ま」と検出され、「気」が誤って「汽」と検出され、入力文字列として「かまく市宇野汽ヌ９８−２」が取得されるものとする。
【００３８】
次に、第１文字抽出部２２２は、取得部２２１により取得された入力文字列から第１文字列群を抽出する（ステップＳ１０２）。第１文字列群には、複数の第１文字列が含まれる。各第１文字列には、入力文字列の先頭からｎ番目までの文字がそれぞれ含まれる。即ち、第１文字列群には、それぞれ入力文字列の先頭から連続し且つ文字数が相互に異なる複数の第１文字列が含まれる。ｎは１から２以上の所定の数までの整数である。所定の数は、第１階層に含まれる各住所要素の最大文字数にマージンを加えた数に設定され、例えば６に設定される。上記したように、入力画像には手書き文字が含まれており、帳票に記入した人物の筆跡によっては一文字が複数の文字に分割して検出される可能性がある（例えば「野」が「里」及び「予」として検出される）。所定の数が住所要素の最大文字数にマージンを加えた数に設定されることにより、一文字が複数の文字に分割して検出された場合でも、第１文字列群には各住所要素に対応する文字列が良好に含まれる。なお、入力文字列に含まれる文字数が所定の数未満である場合、第１文字抽出部２２２は、入力文字列に含まれる文字数以下の第１文字列のみを抽出する。
【００３９】
例えば、所定の数が６である場合、第１文字列群には「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」の６つの第１文字列が含まれる。
【００４０】
次に、第１候補抽出部２２３は、抽出された第１文字列群に含まれる全ての第１文字列と、第１階層及び第２階層に含まれる全ての住所要素とを比較する（ステップＳ１０３）。例えば、第１候補抽出部２２３は、各第１文字列と各住所要素とのレーベンシュタイン距離を用いて、各第１文字列を各住所要素と比較する。レーベンシュタイン距離は、二つの文字列がどの程度異なっているかを示す距離の一種であり、１文字の挿入、削除又は置換によって、一方の文字列を他方の文字列に変形するために必要な手順の最小回数である。情報処理装置２００は、レーベンシュタイン距離を用いることにより、補正処理の処理負荷を低減させつつ、各文字列と各住所要素の一致度合いを高精度に特定することができる。
【００４１】
第１文字列「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」のそれぞれと住所要素「かほく市」とのレーベンシュタイン距離はそれぞれ３、３、２、１、２、３である。また、第１文字列「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」のそれぞれと、住所要素「石川県」のように、第１文字列内の文字と全く一致しない３文字の住所要素とのレーベンシュタイン距離はそれぞれ３、３、３、４、５、６である。
【００４２】
次に、第１候補抽出部２２３は、第１階層及び第２階層に含まれる全ての住所要素の中から、第１文字列群に含まれる第１文字列の何れかに最も近似した第１住所要素候補を抽出する（ステップＳ１０４）。例えば、第１候補抽出部２２３は、第１文字列群に含まれる第１文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第１住所要素候補として抽出する。なお、第１候補抽出部２２３は、レーベンシュタイン距離が最小となる第１文字列と住所要素の組合せが複数存在する場合、即ちレーベンシュタイン距離が同点で最小となる組合せが存在する場合、各組合せに係る各住所要素を第１住所要素候補として抽出する。
【００４３】
上記の例では、第１文字列「かまく市」とのレーベンシュタイン距離が１である第２階層の住所要素「かほく市」が第１住所要素候補として抽出される。
【００４４】
以下のステップＳ１０５〜Ｓ１０８の処理は、第１候補抽出部２２３により抽出された第１住所要素候補とその第１住所要素候補を抽出する基礎となった第１文字列との組合せ毎に実行される。
【００４５】
まず、第２文字抽出部２２４は、入力文字列から部分文字列を抽出する（ステップＳ１０５）。第２文字抽出部２２４は、第１住所要素候補を抽出する基礎となった第１文字列を入力文字列から除くことにより、部分文字列を抽出する。
【００４６】
上記の例では、入力文字列「かまく市宇野汽ヌ９８−２」から、第１住所要素候補「かほく市」を抽出する基礎となった第１文字列「かまく市」を除いた「宇野汽ヌ９８−２」が部分文字列として抽出される。
【００４７】
次に、第２文字抽出部２２４は、抽出した部分文字列から第２文字列群を抽出する（ステップＳ１０６）。第２文字列群には、複数の第２文字列が含まれる。各第２文字列には、部分文字列の先頭からｍ番目までの文字がそれぞれ含まれる。即ち、第２文字列群には、それぞれ部分文字列の先頭から連続し且つ文字数が相互に異なる複数の第２文字列が含まれる。ｍは１から２以上の所定の数までの整数である。所定の数は、第１住所要素候補を含む階層の次の階層に含まれ且つその第１住所要素候補と関連した各住所要素の最大文字数にマージンを加えた数に設定され、例えば６に設定される。ｍの最大数は、ｎの最大数と同一の値に設定されてもよいし、ｎの最大数と異なる値に設定されてもよい。なお、部分文字列に含まれる文字数が所定の数未満である場合、第２文字抽出部２２４は、部分文字列に含まれる文字数以下の第２文字列のみを抽出する。
【００４８】
例えば、所定の数が６である場合、第２文字列群には「宇」「宇野」「宇野汽」「宇野汽ヌ」「宇野汽ヌ９」「宇野汽ヌ９８」の６つの第２文字列が含まれる。
【００４９】
次に、第２候補抽出部２２５は、抽出された第２文字列群に含まれる全ての第２文字列と、抽出された第１住所要素候補を含む階層の次の階層に含まれ且つその第１住所要素候補と関連した全ての住所要素とを比較する（ステップＳ１０７）。即ち、第２候補抽出部２２５は、抽出された第１住所要素候補が第１階層の住所要素である場合、各第２文字列と、その第１住所要素候補に関連付けられた第２階層の全ての住所要素とを比較する。一方、第２候補抽出部２２５は、抽出された第１住所要素候補が第２階層の住所要素である場合、各第２文字列と、その第１住所要素候補に関連付けられた第３階層の全ての住所要素とを比較する。例えば、第２候補抽出部２２５は、第１候補抽出部２２３と同様に、各第２文字列と各住所要素とのレーベンシュタイン距離を用いて、各第２文字列を各住所要素と比較する。
【００５０】
上記の例では、第２文字列「宇」「宇野」「宇野汽」「宇野汽ヌ」「宇野汽ヌ９」「宇野汽ヌ９８」のそれぞれと、第２階層の住所要素「かほく市」と関連付けられた第３階層の全ての住所要素とのレーベンシュタイン距離が算出される。
【００５１】
次に、第２候補抽出部２２５は、比較対象の全ての住所要素の中から、第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を抽出する（ステップＳ１０８）。例えば、第２候補抽出部２２５は、第１候補抽出部２２３と同様に、第２文字列群に含まれる第２文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第２住所要素候補として抽出する。なお、第２候補抽出部２２５は、算出したレーベンシュタイン距離の最小値が、その階層の住所要素候補の文字数の最小値以上である場合、第２住所要素候補を抽出しない。また、第２候補抽出部２２５は、レーベンシュタイン距離が最小となる住所要素と住所要素の組合せが複数存在する場合、各組合せに係る各住所要素を第２住所要素候補として抽出する。
【００５２】
上記の例では、第２文字列「宇野汽」とのレーベンシュタイン距離が１である第３階層の住所要素「宇野気」が第２住所要素候補として抽出される。
【００５３】
このように、第２文字抽出部２２４は、第１候補抽出部２２３により第１住所要素候補が複数抽出された場合、複数の第１住所要素候補のそれぞれに対して第２文字列群を抽出する。また、第２候補抽出部２２５は、第２文字抽出部２２４により抽出された第２文字列群のそれぞれに対して第２住所要素候補を抽出する。これにより、情報処理装置２００は、先頭側の文字列において混同が生じる可能性が高い場合に、後方側の文字列を用いて正しい住所を特定することができる。
【００５４】
また、第２文字抽出部２２４は、レーベンシュタイン距離が最小となる第１文字列と住所要素の組合せが複数存在する場合、各組合せに係る第１文字列を除いた各部分文字列から第２文字列群を抽出する。これにより、情報処理装置２００は、入力文字列の先頭側において住所要素に対応する文字列のサイズの特定が困難な場合に、それぞれ異なる複数のサイズに対応するように下位階層を探索するため、住所を誤って特定することを防止できる。
【００５５】
次に、第２文字抽出部２２４は、第２候補抽出部２２５により第２住所要素候補が抽出されたか否かを判定する（ステップＳ１０９）。
【００５６】
第２住所要素候補が抽出された場合、第２文字抽出部２２４は、第２住所要素候補の抽出位置が入力文字列の最後尾に達したか否かを判定する（ステップＳ１１０）。第２文字抽出部２２４は、第２候補抽出部２２５により直前に抽出された第２住所要素候補を抽出する基礎となった第２文字列の最後尾の文字が入力文字列の最後尾の文字である場合、第２住所要素候補の抽出位置が入力文字列の最後尾に達したと判定する。
【００５７】
上記の例では、第２住所要素候補「宇野気」を抽出する基礎となった第２文字列「宇野汽」の最後尾の文字「汽」は入力文字列「かまく市宇野汽ヌ９８−２」の最後尾の文字「２」でないため、第２住所要素候補の抽出位置は入力文字列の最後尾に達していない。なお、入力文字列が「かまく市宇野汽」であった場合は、第２住所要素候補として「宇野気」が抽出されたときに、第２住所要素候補の抽出位置が入力文字列の最後尾に達したと判定される。
【００５８】
第２住所要素候補の抽出位置が入力文字列の最後尾に達していない場合、第２文字抽出部２２４は、第２住所要素候補を含む階層の次の階層が存在するか否かを判定する（ステップＳ１１１）。第２文字抽出部２２４は、住所辞書テーブルにおいて、直前に抽出された第２住所要素候補が含まれる階層の次の階層に、その第２住所要素候補に関連付けられた住所要素が記憶されていない場合、第２住所要素候補を含む階層の次の階層が存在しないと判定する。
【００５９】
上記の例では、第２住所要素候補「宇野気」が含まれる第３階層の次の第４階層には「宇野気」に関連付けられた住所要素が記憶されていないため、第２住所要素候補を含む階層の次の階層が存在しないと判定される。なお、第４階層において「宇野気」に関連付けられた住所要素として「チ」「リ」「ヌ」等が記憶されている場合は、第２住所要素候補を含む階層の次の階層が存在すると判定される。
【００６０】
第２住所要素候補を含む階層の次の階層が存在する場合、第２文字抽出部２２４は、処理をステップＳ１１２へ移行する。以下のステップＳ１１２〜Ｓ１１５の処理は、第２候補抽出部２２５により直前に抽出された第２住所要素候補とその第２住所要素候補を抽出する基礎となった第２文字列との組合せ毎に実行される。
【００６１】
まず、第２文字抽出部２２４は、現在の部分文字列から新たな部分文字列を抽出する（ステップＳ１１２）。第２文字抽出部２２４は、現在の部分文字列から、第２候補抽出部２２５により直前に抽出された第２住所要素候補を抽出する基礎となった第２文字列をさらに除くことにより、新たな部分文字列を抽出する。
【００６２】
次に、第２文字抽出部２２４は、ステップＳ１０６の処理と同様にして、新たに抽出した部分文字列から次の第２文字列群を抽出する（ステップＳ１１３）。この第２文字列群に含まれる各第２文字列には、新たに抽出した部分文字列の先頭からｍ番目までの文字がそれぞれ含まれる。このｍの最大数は、直前に抽出された第２住所要素候補を含む階層の次の階層に含まれ且つその第２住所要素候補と関連した各住所要素の最大文字数にマージンを加えた数に設定される。
【００６３】
次に、第２候補抽出部２２５は、抽出された次の第２文字列群に含まれる全ての第２文字列と、直前に抽出された第２住所要素候補を含む階層の次の階層に含まれ且つその第２住所要素候補と関連した全ての住所要素とを比較する（ステップＳ１１４）。例えば、第２候補抽出部２２５は、ステップＳ１０７の処理と同様に、各第２文字列と各住所要素とのレーベンシュタイン距離を用いて、各第２文字列を各住所要素と比較する。
【００６４】
なお、第２候補抽出部２２５は、第２文字列を第２階層より下位の階層に含まれる住所要素と比較する場合、さらに、第２文字列を、各住所要素に、特に各住所要素の前後に、大字（おおあざ）、字（あざ）又は小字（こあざ）を加えた文字列と比較してもよい。日本で規定される住所には、町、村、字名の前後に「大字」、「字」又は「小字」という文字が追加されている場合がある。情報処理装置２００は、各住所要素に「大字」、「字」又は「小字」を加えてから第２文字列と比較することにより、各住所要素に「大字」、「字」又は「小字」を加えた文字列を、各住所要素とは別個に登録しておく必要がなくなる。そのため、情報処理装置２００は、第２記憶装置２１０の記憶容量を増大させることなく、入力文字列に対応する住所を高精度に特定することができる。
【００６５】
次に、第２候補抽出部２２５は、比較対象の全ての住所要素の中から、抽出された次の第２文字列群に含まれる第２文字列の何れかに最も近似した第２住所要素候補を新たに抽出する（ステップＳ１１５）。例えば、第２候補抽出部２２５は、ステップＳ１０８の処理と同様に、第２文字列群に含まれる第２文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第２住所要素候補として抽出する。
【００６６】
このように、第２文字抽出部２２４は、第２住所要素候補の抽出位置が入力文字列の最後尾に達するまで、又は、第２住所要素候補を含む階層の次の階層が存在しなくなるまで、繰り返し第２文字列群を抽出する。また、第２候補抽出部２２５は、繰り返し抽出された各第２文字列群に対して、さらに第２住所要素候補を抽出する。これにより、情報処理装置２００は、入力文字列と住所辞書テーブルに登録された各住所要素とを、可能な限り広範囲にわたって比較することが可能となり、入力文字列に対応する住所を高精度に特定することができる。
【００６７】
また、第２文字抽出部２２４は、第２住所要素候補が複数抽出された場合、複数の第２住所要素候補のそれぞれに対して第２文字列群を抽出し、第２候補抽出部２２５は、抽出された第２文字列群のそれぞれに対して第２住所要素候補を抽出する。これにより、情報処理装置２００は、探索中の文字列において混同が生じる可能性が高い場合に、後方側の文字列を用いて正しい住所を特定することができる。
【００６８】
また、第２文字抽出部２２４は、レーベンシュタイン距離が最小となる住所要素と住所要素の組合せが複数存在する場合、各組合せに係る第２文字列を除いた各部分文字列から第２文字列群を抽出する。これにより、情報処理装置２００は、入力文字列の探索中の位置において住所要素に対応する文字列のサイズの特定が困難な場合に、それぞれ異なる複数のサイズに対応するように下位階層を探索するため、住所を誤って特定することを防止できる。
【００６９】
一方、第２住所要素候補が抽出されなかった場合、第２住所要素候補の抽出位置が入力文字列の最後尾に達した場合、又は、第２住所要素候補を含む階層の次の階層が存在しない場合、補正部２２６は、入力文字列を補正する（ステップＳ１１６）。補正部２２６は、抽出された第１住所要素候補及び各第２住所要素候補に基づいて、入力文字列を補正する。
【００７０】
補正部２２６は、まず、第２候補抽出部２２５により最後に抽出された第２住所要素候補を特定する。なお、最後に抽出された第２住所要素候補が複数存在する場合、補正部２２６は、何れか一つの第２住所要素候補のみを選択する。その場合、補正部２２６は、どのように第２住所要素候補を選択してもよく、例えば住所辞書テーブルにおいて最も先頭側に記憶された第２住所要素候補を選択する。次に、補正部２２６は、住所辞書テーブルを参照し、特定又は選択した第２住所要素候補が含まれる階層より上位の各階層において、その第２住所要素候補に関連付けられた、第１住所要素候補及び第２住所要素候補を含む全ての住所要素を特定する。補正部２２６は、その第２住所要素候補の階層から上位階層側に向かって住所辞書テーブルを走査し、その第２住所要素候補の階層から最上位階層までの各階層において、その第２住所要素候補に関連付けられた各住所要素を特定する。
【００７１】
補正部２２６は、入力文字列において、第１住所要素候補及び各第２住所要素候補を抽出する基礎となった第１文字列及び各第２文字列をそれぞれ第１住所要素候補及び各第２住所要素候補に置換する。また、補正部２２６は、特定した住所要素の内、第１住所要素候補及び第２住所要素候補として抽出されていない住所要素を入力文字列の対応する位置に追加する。
【００７２】
上記の例では、最後に抽出された第３階層の第２住所要素候補「宇野気」に関連付けられた住所要素として、第２階層の住所要素「かほく市」及び第１階層の住所要素「石川県」が特定される。入力文字列「かまく市宇野汽ヌ９８−２」において、第１文字列「かまく市」が第１住所要素候補「かほく市」に置換され、第２文字列「宇野汽」が第２住所要素候補「宇野気」に置換され、「ヌ９８−２」は補正されない。また、第１住所要素候補及び第２住所要素候補として抽出されていない住所要素「石川県」が、入力文字列において第１住所要素候補の「かほく市」の前に追加される。その結果、入力文字列は「石川県かほく市宇野気ヌ９８−２」に補正される。
【００７３】
補正部２２６は、入力文字列の途中で第２住所要素候補が抽出されなかった場合、即ち入力文字列に対応する全ての住所要素を特定できなかった場合、住所要素を特定できた文字列より先頭側の文字列のみを補正する。これにより、補正部２２６は、入力文字列に対応する住所を一意に特定できなかった場合でも可能な範囲で入力文字列を補正しつつ、入力文字列を誤って補正（過補正）してしまうことを抑制できる。
【００７４】
次に、出力制御部２２７は、補正された入力文字列を表示装置２０３に表示し（ステップＳ１１７）、一連のステップを終了する。なお、出力制御部２２７は、補正された入力文字列を不図示の通信装置を介して不図示のサーバ等に送信してもよい。このように、出力制御部２２７は、補正された入力文字列を出力する。
【００７５】
以下、情報処理装置２００による補正処理の技術的意義について説明する。
【００７６】
例えば、住所辞書として、それぞれ都道府県名から町名、字名までを階層化せずに一貫して含む住所が使用される場合、住所辞書に含まれる各住所において都道府県名及び郡市名等が重複し、住所辞書のデータサイズが膨大になる。その場合、住所辞書に含まれる各住所のデータサイズが大きくなるため、入力文字列と住所辞書に含まれる各住所との比較に要する時間も増大する。情報処理装置２００は、住所要素を複数の階層に分けて記憶し、入力文字列に対する住所要素の比較を階層毎に行うため、記憶容量の増大を抑制しつつ、入力文字列に対応する住所を短時間に特定することができる。
【００７７】
また、手書き住所が記載された帳票では、都道府県名が省略される可能性が高く、そのような帳票に含まれる住所を正しく特定するためには、住所辞書として、都道府県名が含まれる住所と都道府県名が含まれない住所の二種類の住所を使用する必要がある。その場合、住所辞書のデータサイズがさらに膨大になるとともに、比較に要する時間もさらに増大する。情報処理装置２００は、住所要素を複数の階層に分けて記憶し、入力文字列に対する住所要素の比較を階層毎に行うため、都道府県名が含まれない入力文字列内の各文字列を、都道府県名の階層より下位の階層の各住所要素と適切に比較することができる。したがって、情報処理装置２００は、記憶容量の増大を抑制しつつ、入力文字列に対応する住所を短時間に特定することができる。
【００７８】
また、入力文字列に対応する住所を特定する際に、上位階層の住所要素が誤って特定されると、その後、下位階層の住所要素の探索が誤った方向に向かって進行するため、正しい住所が特定されるまでに長時間を要してしまう。そのため、入力文字列に対応する住所を正しく特定するための時間を低減させるためには、上位階層の住所要素を正しく特定することが重要である。特に、手書き住所が記載された帳票では、上位階層に対応する都道府県名が省略されている可能性がある。さらに、日本の住所では「富山県富山市」のように、市名として都道府県名と同一の名称が使用されている場合がある。情報処理装置２００は、上位階層の住所要素として、都道府県名に対応する第１階層の全ての住所要素に加えて、市名に対応する第２階層の全ての住所要素に対して探索を実施するため、都道府県名が省略された場合でも、上位階層の住所要素を正しく特定できる。結果として、情報処理装置２００は、入力文字列に対応する住所を特定するための時間を低減させることができる。
【００７９】
また、手書き住所が含まれる帳票、特に文字枠が含まれない帳票では、記入者の筆跡によっては一文字が複数の文字に分割して検出される可能性がある。情報処理装置２００は、文字数が相互に異なる複数の第１文字列に対して探索を行うため、一文字が複数の文字に分割して検出された場合でも、上位階層の住所要素を正しく特定できる。結果として、情報処理装置２００は、入力文字列に対応する住所を特定するための時間を低減させることができる。
【００８０】
また、手書き住所が含まれる帳票では、記入者のミス等により、下位階層に対応する郡名、市名、町名、村名又は字名等が記載されていない可能性もある。上位階層において類似性が高いと判定された住所要素に対応する下位階層の住所要素の中に類似性が高い住所要素が存在しない場合に、さらに下位階層を探索するようにアルゴリズムを構成した場合、ミスがない帳票に対しても膨大な量の探索が行われることになる。情報処理装置２００は、入力文字列の途中で第２住所要素候補が抽出されなかった場合、その時点で探索を終了し、住所要素を特定できた文字列のみを補正するため、処理時間が増大することを抑制できる。
【００８１】
また、情報処理装置２００は、入力文字列内の先頭の文字列を上位階層の全ての住所要素と比較して第１住所要素候補を抽出した上で、第１住所要素候補に対応する下位階層の住所要素との比較を行っていく。即ち、情報処理装置２００は、上位階層から下位階層に向かって階層毎に各住所要素を探索していく幅優先探索により、木構造を有する住所辞書テーブルを探索する。但し、情報処理装置２００は、幅優先探索において、入力文字列内の各文字列を、住所辞書テーブルに記憶された全ての住所要素と比較するのでなく、上位階層から下位階層に向けて各階層の住所要素を順次絞っていく。そのため、情報処理装置２００は、入力文字列に対して粗密探索を行って、効率良く且つ短時間に住所を特定できる。
【００８２】
一般に、木構造を有するテーブルの探索方式として、幅優先探索以外に、深さ優先探索が利用されている。深さ優先探索では、最上位階層の住所要素から末端の住所要素（次の階層の住所要素が存在しない住所要素）に達するまで、対応する住所要素が順次探索され、その後、バックトラックして最も近くの探索されていない住所要素まで戻る。以後、同様にして、探索が繰り返される。但し、手書き住所が含まれる帳票では、記入者の筆跡等によっては、文字が正しく検出されない可能性がある。また、手書き住所が含まれる帳票では、上位階層に対応する都道府県名が省略される可能性、及び、記入者のミス等により下位階層に対応する郡名、市名、町名、村名又は字名が記載されない可能性もある。
【００８３】
そのため、深さ優先探索では、探索途中で類似度が高い住所要素のセットが検出された場合でも、より類似度が高い住所要素のセットが他に存在する可能性があり、少なくとも最上位階層の全ての住所要素に対しては探索が行われるべきである。即ち、深さ優先探索では、せっかく末端の住所要素に達するまで探索を行っても、最終的にその住所要素のセットは入力文字列に対応しないと判定される可能性が高く、結果として正しい住所が特定されるまでに長時間を要する可能性が高い。一方、幅優先探索では、最初に上位階層の全ての住所要素との比較が行われるため、下位階層の住所要素との比較が行われる前に、上位階層の住所要素の中で最も適切な住所要素（文字列に最も近似した住所要素）が特定される。そのため、幅優先探索では、下位階層の住所要素との比較が無駄になる可能性が低く、情報処理装置２００は、効率良く且つ短時間に住所を特定することができる。
【００８４】
また、深さ優先探索では、最終的に候補として抽出された住所要素のセットの中で、類似度が最も高い住所要素のセットを抽出する必要がある。特に、各セットに含まれる全ての住所要素の類似度に基づいて住所要素のセットを抽出する場合、その抽出に長時間がかかる。一方、幅優先探索では、上位階層から下位階層に向けて徐々に住所要素を絞っていくため、住所要素が最後に抽出された階層における各住所要素の類似度のみに注目して適切に住所を特定することができ、補正処理全体の処理時間を低減させることができる。
【００８５】
以下、特定の入力文字列に対して本実施形態の補正処理を適用した場合の例について説明する。
【００８６】
第１例として「石川県羽咋郡志賀町矢蔵谷ラ１−１０３」という住所に対して、入力文字列が「石川鼎羽咋紙志贄町＃＊△ラ１−１０３」であった場合について説明する。この場合、ステップＳ１０４において、第１文字列「石川鼎」に対して、第１階層の住所要素「石川県」と第２階層の住所要素「石川郡」（福島県石川郡）とが第１住所要素候補として抽出された。ステップＳ１０７において、各第２文字列と、住所要素「石川県」と関連する第２階層の住所要素「金沢市」「かほく市」「羽咋市」「羽咋郡」等及び住所要素「石川郡」と関連する第３階層の住所要素「石川町」「玉川町」「平田村」「浅川町」等とが比較された。その結果、ステップＳ１０８において、第２文字列「羽咋紙」に対して、第２階層の住所要素「羽咋市」と「羽咋郡」とが第２住所要素候補として抽出された。
【００８７】
また、ステップＳ１１４において、次の第２文字列と、住所要素「羽咋市」と関連する第３階層の各住所要素、及び、住所要素「羽咋郡」と関連する第３階層の各住所要素とが比較された。その結果、ステップＳ１１５において、第３文字列「志贄町」に対して、第３階層の住所要素「志賀町」が第２住所要素候補として新たに抽出された。さらにステップＳ１１４に戻り、次の第２文字列と、住所要素「志賀町」と関連する第４階層の各住所要素とが比較されたが、ステップＳ１１５では、第２文字列「＃＊△」等に対して第２住所要素候補は抽出されなかった。そして、ステップＳ１１６において、入力文字列「石川鼎羽咋紙志贄町＃＊△ラ１−１０３」が「石川県羽咋郡志賀町＃＊△ラ１−１０３」に補正された。
【００８８】
第２例として「宮崎市恒久５８２」という住所に対して、入力文字列が「宮山奇市恒ク５８２」であった場合について説明する。この場合、ステップＳ１０２において、「宮」「宮山」「宮山奇」「宮山奇市」「宮山奇市恒」「宮山奇市恒ク」の６つの第１文字列が抽出された。ステップＳ１０４において、第１文字列「宮山奇市」に対して、「亀山市」「宮津市」「篠山市」「山武市」「流山市」「館山市」「狭山市」「宮崎市」「富山市」「山口市」「上山市」「山形市」「村山市」「山梨市」「山県市」「高山市」「岡山市」「津山市」「宮古市」「福山市」「松山市」「犬山市」「小山市」「守山市」「山鹿市」「白山市」「勝山市」「宮若市」「郡山市」「飯山市」の３０個の住所要素が第１住所要素候補として抽出された。また、ステップＳ１０８において、第２文字列「恒ク」に対して住所要素「宮崎市」と関連する第３階層の住所要素「恒久」が第２住所要素候補として抽出された。そして、ステップＳ１１６において、住所要素「恒久」から第１階層の住所要素「宮崎県」が特定され、入力文字列「宮山奇市恒ク５８２」が「宮崎県宮崎市恒久５８２」に補正された。
【００８９】
第２例では、「崎」が「山」と「奇」の２文字に分割されて検出され、正しい住所要素「宮崎市」に対して、第１文字列は「宮山奇市」となっている。そのため、第１文字列では分割されて検出された「山」と「奇」以降の各文字の位置が、正しい住所要素に対してずれてしまう。即ち、第１文字列において、文字「市」は、正しく検出されているにも関わらず、３文字目でなく４文字目に配置される。したがって、同一位置毎に第１文字列内の各文字と住所要素内の各文字とを比較すると、第１文字列内の「市」と住所要素内の「市」も一致しないとみなされる。一方、情報処理装置２００は、レーベンシュタイン距離を用いて、入力文字列内の各文字列と各住所要素とを比較する。レーベンシュタイン距離は、１文字の挿入、削除又は置換によって一方の文字列を他方の文字列に変形するために必要な手順の最小回数である。そのため、第１文字列と住所要素において相互に対応する文字の順序が一致していれば、位置が一致していなくてもレーベンシュタイン距離は短くなる。したがって、情報処理装置２００は、一部の文字が分割されて検出された場合でも、第１文字列と各住所要素の一致度合いを高精度に特定することができる。
【００９０】
また、第２例では、第１住所要素候補として３０個の住所要素が抽出されている。そのため、深さ優先探索では、３０個の住所要素のそれぞれに対して、末端の住所要素に達するまで探索が繰り返され、トータルとして１０００個近くの住所要素との比較が行われる。一方、情報処理装置２００は、幅優先探索で探索を行う。幅優先探索では、各第１住所要素候補の次の階層（第３階層）において２００〜３００個程度の住所要素との比較が行われ、第２住所要素候補は住所要素「恒久」のみに絞られる。したがって、情報処理装置２００は、深さ優先探索で探索を行う場合と比較して、補正処理の処理負荷及び処理時間を低減させることができる。
【００９１】
以上詳述したように、情報処理装置２００は、入力文字列の先頭からｎ番目までの文字を含む各第１文字列を第１階層及び第２階層の全ての住所要素と比較して第１住所要素候補を抽出する。そして、情報処理装置２００は、対応する第１文字列以降の第２文字列を次の階層の住所要素と比較して第２住所要素候補を抽出する。これにより、情報処理装置２００は、入力文字列内の先頭の文字列に対応する住所要素を精度良く特定することが可能となった。そのため、情報処理装置２００は、誤って特定した住所要素に関連付けられた住所要素を探索していくことを抑制し、結果として入力文字列に対応する住所を短時間に特定することが可能となった。即ち、情報処理装置２００は、入力画像から検出された入力文字列を短時間且つ高精度に補正することが可能となった。
【００９２】
図７は、他の実施形態に係る情報処理装置における処理回路３３０の概略構成を示すブロック図である。
【００９３】
処理回路３３０は、処理回路２３０の代わりに使用され、ＣＰＵ２２０の代わりに、補正処理を実行する。処理回路３３０は、取得回路３３１、第１文字抽出回路３３２、第１候補抽出回路３３３、第２文字抽出回路３３４、第２候補抽出回路３３５、補正回路３３６及び出力制御回路３３７等を有する。
【００９４】
取得回路３３１は、取得部の一例であり、取得部２２１と同様の機能を有する。取得回路３３１は、第２インタフェース装置２０１を介して画像読取装置１００から入力画像を取得し、入力画像から入力文字列を取得し、第２記憶装置２１０に保存する。
【００９５】
第１文字抽出回路３３２は、第１文字抽出部の一例であり、第１文字抽出部２２２と同様の機能を有する。第１文字抽出回路３３２は、第２記憶装置２１０から入力文字列を読み出し、入力文字列から第１文字列群を抽出し、第２記憶装置２１０に保存する。
【００９６】
第１候補抽出回路３３３は、第１候補抽出部の一例であり、第１候補抽出部２２３と同様の機能を有する。第１候補抽出回路３３３は、第２記憶装置２１０から第１文字列群及び住所辞書テーブルを読み出し、読み出した各情報に基づいて第１住所要素候補を抽出し、第２記憶装置２１０に保存する。
【００９７】
第２文字抽出回路３３４は、第２文字抽出部の一例であり、第２文字抽出部２２４と同様の機能を有する。第２文字抽出回路３３４は、第２記憶装置２１０から入力文字列及び第１住所要素候補を読み出し、入力文字列から第２文字列群を抽出し、第２記憶装置２１０に保存する。
【００９８】
第２候補抽出回路３３５は、第２候補抽出部の一例であり、第２候補抽出部２２５と同様の機能を有する。第２候補抽出回路３３５は、第２記憶装置２１０から第２文字列群及び住所辞書テーブルを読み出し、読み出した各情報に基づいて第２住所要素候補を抽出し、第２記憶装置２１０に保存する。
【００９９】
補正回路３３６は、補正部の一例であり、補正部２２６と同様の機能を有する。補正回路３３６は、第２記憶装置２１０から入力文字列、第１住所要素候補、第２住所要素候補及び住所辞書テーブルを読み出し、読み出した各情報に基づいて入力文字列を補正し、補正した入力文字列を第２記憶装置２１０に保存する。
【０１００】
出力制御回路３３７は、出力制御部の一例であり、出力制御部２２７と同様の機能を有する。出力制御回路３３７は、第２記憶装置２１０から補正した入力文字列を読み出し、表示装置２０３に出力する。
【０１０１】
以上詳述したように、情報処理装置は、処理回路３３０を用いる場合も、入力画像から検出された入力文字列を短時間且つ高精度に補正することが可能となった。
【０１０２】
以上、好適な実施形態について説明してきたが、実施形態はこれらに限定されない。例えば、画像読取装置１００と情報処理装置２００の機能分担は、図１に示す画像処理システム１の例に限られず、画像読取装置１００及び情報処理装置２００の各部を画像読取装置１００と情報処理装置２００の何れに配置するかは適宜変更可能である。または、画像読取装置１００と情報処理装置２００を一つの装置で構成してもよい。
【０１０３】
例えば、画像読取装置１００の第１記憶装置１１０が、情報処理装置２００の第２記憶装置２１０に記憶された各プログラムを記憶し、画像読取装置１００の第１ＣＰＵ１２０が、情報処理装置２００の第２ＣＰＵ１２０により実現される各部として動作してもよい。また、画像読取装置１００が、情報処理装置２００の処理回路２３０と同様の処理回路を有し、情報処理装置として動作してもよい。
【０１０４】
その場合、画像読取装置１００は表示装置２０３と同様の表示装置を有し、補正処理は、画像読取装置１００の第１ＣＰＵ１２０又は処理回路によって実行される。これらの処理の動作は、情報処理装置２００の第２ＣＰＵ２２０又は処理回路３３０によって実行される場合と同様である。
【０１０５】
また、画像処理システム１において、第１インタフェース装置１０１と第２インタフェース装置２０１は、インターネット、電話回線網（携帯端末回線網、一般電話回線網を含む）、イントラネット等のネットワークを介して接続してもよい。その場合、第１インタフェース装置１０１及び第２インタフェース装置２０１に、接続するネットワークの通信インタフェース回路を備える。また、その場合、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置を分散して配置し、各情報処理装置が協働して、補正処理等を分担するようにしてもよい。これにより、画像処理システム１は、複数の画像読取装置が読み取った入力画像について、効率よく補正処理を実行できる。
【符号の説明】
【０１０６】
１    画像処理システム
２００    情報処理装置
２０３    表示装置
２１０    第２記憶装置
２２１    取得部
２２２    第１文字抽出部
２２３    第１候補抽出部
２２４    第２文字抽出部
２２５    第２候補抽出部
２２６    補正部
２２７    出力制御部
【図１】
2020187622.tif 000003
【図２】
2020187622.tif 000004
【図３】
2020187622.tif 000005
【図４】
2020187622.tif 000006
【図５】
2020187622.tif 000007
【図６】
2020187622.tif 000008
【図７】
2020187622.tif 000009