(57)【要約】【課題】  ユーザが入力する住所データの特性や違いに対応した住所辞書データとの合致判定を可能にし、マッチング率、マッチングの処理効率を高める。【解決手段】  都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイル４と、各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイル５と、住所データを複数のレベルに分割する前処理を行う前処理部２と、前処理部により複数のレベルに分割された住所データをレベル毎に住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合にパターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部６とを備え、住所データを住所辞書データと比較し合致判定した情報を出力する。【選択図】      図１
2005050226.tif 000002
【特許請求の範囲】
【請求項１】
住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理システムであって、
都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイルと、
前記各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイルと、
住所データを前記複数のレベルに分割する前処理を行う前処理部と、
前記前処理部により複数のレベルに分割された住所データを前記レベル毎に前記住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合に前記パターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部と
を備えたことを特徴とする住所データマッチング処理システム。
【請求項２】
前記前処理部は、住所データを所定の順にソートして前記複数のレベルに分割することを特徴とする請求項１記載の住所データマッチング処理システム。
【請求項３】
前記前処理部は、市区町村と都道府県との対応を示す市区町村リストを有し、前記住所データに都道府県が存在しない場合に、前記住所データの市区町村を前記市区町村リストと比較して都道府県を検索し、前記住所データに都道府県を挿入することを特徴とする請求項１又は１記載のいずれかに記載の住所データマッチング処理システム。
【請求項４】
前記マッチング処理部は、前記住所データの文字列の特定の文字を抽出して変換し整形を行った後、前記合致するか否かの判定を行うことを特徴とする請求項１乃至３のいずれかに記載の住所データマッチング処理システム。
【請求項５】
前記マッチング処理部は、前記階層化されたレベルの上位層から指定されたレベルまで順に前記住所辞書データと繰り返し比較して合致するか否かの判定を行うことを特徴とする請求項１乃至４のいずれかに記載の住所データマッチング処理システム。
【請求項６】
前記マッチング処理部は、合致するか否かの判定を行った結果、合致した住所データに関する最終合致レベルの住所コードと位置情報を取得してマッチング出力ファイルに格納し、合致しない住所データに関するアンマッチ情報を取得してアンマッチ出力ファイルに格納することを特徴とする請求項１乃至５のいずれかに記載の住所データマッチング処理システム。
【請求項７】
前記マッチング処理部は、アンマッチ出力ファイルに格納した住所データとアンマッチ情報を表示し、修正した住所データについて合致するか否かの判定を行うことを特徴とする請求項１乃至６のいずれかに記載の住所データマッチング処理システム。
【請求項８】
前記マッチング処理部は、合致するか否かの判定を行い合致しない住所データについて前記レベルに対応した特定の文字の有無を考慮して再度合致するか否かの判定を行うことを特徴とする請求項１乃至７のいずれかに記載の住所データマッチング処理システム。
【請求項９】
前記マッチング処理部は、住所データの数値のみのレベルの場合に前記住所辞書データと比較して近い値で警告情報を設定して合致判定を行うことを特徴とする請求項１乃至８のいずれかに記載の住所データマッチング処理システム。
【請求項１０】
住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理方法であって、
都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイルと、
前記各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイルと、
住所データを所定の順序にソートして前記複数のレベルに分割する前処理を行う前処理部と、
住所データを前記住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合に前記パターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部と
を備え、住所データを前記前処理部により前記複数のレベルに分割した後、前記マッチング処理部により前記階層化されたレベルの上位層から順次指定された層まで合致するか否かの判定を行い、合致しない住所データのアンマッチ情報を表示して、前記合致しない住所データの修正又は前記パターンデータの更新を行い、合致するか否かの判定を繰り返し行うことを特徴とする住所データマッチング処理方法。
【請求項１１】
前記前処理部は、市区町村と都道府県との対応を示す市区町村リストを有し、前記住所データに都道府県が存在しない場合に、前記住所データの市区町村を前記市区町村リストと比較して都道府県を検索し、前記住所データに都道府県を挿入するものであることを特徴とする請求項１０記載の住所データマッチング処理方法。
【請求項１２】
前記マッチング処理部は、前記住所データの文字列の特定の文字を抽出して変換し整形を行った後、前記合致するか否かの判定を行うものであることを特徴とする請求項１０又は１１のいずれかに記載の住所データマッチング処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理システム及びマッチング処理方法に関する。
【背景技術】
【０００２】
地図及び空間データ表示システムにおいては、顧客データや店舗データ等のポイントデータをシステムに取り込み、それらポイントデータを画面上に表示することが求められる。例えば住所コード・街区を地図データマッチング用キーとして地図データと固有データを相互に結び付け、地図データからお客様固有データの候補検索、逆にお客様固有データから地図データの候補検索をできるようにする相互検索方式が提案されている（例えば、特許文献１参照）。
【０００３】
このような地図データマッチング用キーを特に持っていない場合には、一般に、住所を伴う膨大なポイントデータと地図情報に含まれる住所データとの文字列による突き合わせ（マッチング）を行い、住所の代表点位置座標（緯度、経度）を求めることにより、システム上にデータを取り込んでいくことが行われる。
【特許文献１】特開平３−２３３６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の文字列による突き合わせを行う手法においては、各種ポイントデータに記載された住所が曖昧であったり、誤記を伴ったものである場合が多く、文字列マッチングで突き合わせに失敗したデータは、再度正しい住所に書き直すか、あるいはシステム上で正しい位置を与える操作が不可避となり、ユーザに多大なる労力を強いる場面が多かった。また、アプリケーションによっては数万から数十万ものデータをシステムに取り込むことがあり、単純な総当たりの突き合わせでは処理時間がかかりすぎる。かかる状況から効率的なマッチング処理（ジオコーディング処理）の実現も求められてきた。
【課題を解決するための手段】
【０００５】
本発明は、上記課題を解決するものであって、ユーザが入力する住所データの特性や違いに対応した住所辞書データとの合致判定を可能にし、マッチング率、マッチングの処理効率を高めるものである。
【０００６】
そのために本発明は、住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理システムであって、都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイルと、前記各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイルと、住所データを前記複数のレベルに分割する前処理を行う前処理部と、前記前処理部により複数のレベルに分割された住所データを前記レベル毎に前記住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合に前記パターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部とを備えたことを特徴とする。
【０００７】
前記前処理部は、住所データを所定の順にソートして前記複数のレベルに分割し、また、市区町村と都道府県との対応を示す市区町村リストを有し、前記住所データに都道府県が存在しない場合に、前記住所データの市区町村を前記市区町村リストと比較して都道府県を検索し、前記住所データに都道府県を挿入することを特徴とする。
【０００８】
前記マッチング処理部は、前記住所データの文字列の特定の文字を抽出して変換し整形を行った後、前記合致するか否かの判定を行い、前記階層化されたレベルの上位層から指定されたレベルまで順に前記住所辞書データと繰り返し比較して合致するか否かの判定を行い、合致するか否かの判定を行った結果、合致した住所データに関する最終合致レベルの住所コードと位置情報を取得してマッチング出力ファイルに格納し、合致しない住所データに関するアンマッチ情報を取得してアンマッチ出力ファイルに格納することを特徴とする。
【０００９】
また、前記マッチング処理部は、アンマッチ出力ファイルに格納した住所データとアンマッチ情報を表示し、修正した住所データについて合致するか否かの判定を行い、合致するか否かの判定を行い合致しない住所データについて前記レベルに対応した特定の文字の有無を考慮して再度合致するか否かの判定を行い、住所データの数値のみのレベルの場合に前記住所辞書データと比較して近い値で警告情報を設定して合致判定を行うことを特徴とする。
【００１０】
住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理方法であって、都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイルと、前記各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイルと、住所データを所定の順序にソートして前記複数のレベルに分割する前処理を行う前処理部と、住所データを前記住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合に前記パターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部とを備え、住所データを前記前処理部により前記複数のレベルに分割した後、前記マッチング処理部により前記階層化されたレベルの上位層から順次指定された層まで合致するか否かの判定を行い、合致しない住所データのアンマッチ情報を表示して、前記合致しない住所データの修正又は前記パターンデータの更新を行い、合致するか否かの判定を繰り返し行うことを特徴とする。
【発明の効果】
【００１１】
以上の説明から明らかなように、本発明によれば、住所データを住所辞書データと比較し合致するか否かの判定を行う住所データマッチング処理システムであって、都道府県、市区町村及びそれ以下の複数のレベルに分割して階層化された住所辞書データを格納する住所辞書データファイルと、前記各レベルに対応した住所データの読み替えデータ、付加データを含み修正を行うパターンデータを格納するパターンデータファイルと、住所データを前記複数のレベルに分割する前処理を行う前処理部と、前記前処理部により複数のレベルに分割された住所データを前記レベル毎に前記住所辞書データと比較して合致するか否かの判定を行い、さらに合致しない場合に前記パターンデータにより修正を行って合致するか否かの判定を行いマッチング情報を出力するマッチング処理部とを備えたので、各レベル毎に、パターンデータを組み合わせてユーザが入力する住所データの特性や違いに対応した住所データの自動修正、住所辞書データとの合致判定を可能にし、マッチング率、マッチングの処理効率を高めることができる。
【００１２】
前記前処理部は、住所データを所定の順にソートして前記複数のレベルに分割し、また、市区町村と都道府県との対応を示す市区町村リストを有し、前記住所データに都道府県が存在しない場合に、前記住所データの市区町村を前記市区町村リストと比較して都道府県を検索し、前記住所データに都道府県を挿入するので、階層構造を有効に利用してマッチング処理部での処理効率を高めることができる。
【００１３】
前記マッチング処理部は、前記住所データの文字列の特定の文字を抽出して変換し整形を行った後、前記合致するか否かの判定を行うので、住所辞書データとの単純な形式的な文字の違いによるアンマッチを回避することができ、前記階層化されたレベルの上位層から指定されたレベルまで順に前記住所辞書データと繰り返し比較して合致するか否かの判定を行うので、ユーザの指定レベルに応じて効率よくマッチング処理を行うことができ、合致するか否かの判定を行った結果、合致した住所データに関する最終合致レベルの住所コードと位置情報を取得してマッチング出力ファイルに格納し、合致しない住所データに関するアンマッチ情報を取得してアンマッチ出力ファイルに格納するので、アンマッチ出力ファイルに格納された合致しない住所データだけを対象として、さらに修正と学習を行って再度マッチングを行うことができる。
【００１４】
また、前記マッチング処理部は、アンマッチ出力ファイルに格納した住所データとアンマッチ情報を表示し、修正した住所データについて合致するか否かの判定を行い、合致するか否かの判定を行い合致しない住所データについて前記レベルに対応した特定の文字の有無を考慮して再度合致するか否かの判定を行うので、住所データの修正を簡便に行うことができ、住所データの数値のみのレベルの場合に前記住所辞書データと比較して近い値で警告情報を設定して合致判定を行うので、警告情報を基に合致判定の確認を行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照しつつ説明する。図１は本発明に係る住所データマッチング処理システムの実施の形態を示す図、図２は市区町村リストの構成例を示す図、図３は住所辞書データ構造の例を示す図、図４はパターンデータ構造の例を示す図、図５は整形処理の例を説明するための図である。図中、１はユーザデータファイル、２は前処理部、３はユーザマッチングデータファイル、４は住所辞書データファイル、５はパターンデータファイル、６はマッチング処理部、７はマッチング出力ファイル、８はアンマッチ出力ファイル、９はアンマッチファイルの修正と学習処理部を示す。
【００１６】
図１において、ユーザデータファイル１は、ユーザの入力した住所文字列からなる住所データ（入力データ）を格納したものであり、前処理部２は、住所データの住所文字列を文字コード順にソートして行の並べ替えを行い、行単位でその住所文字列を都道府県、市区町村、それ以外の３つに、あるいはそれ以上の数の下位層までのレベルに分割する。この分割のときに都道府県名が存在しなかった場合には、例えば図２に示す市区町村リストを参照し都道府県を挿入する。市区町村リストは、図２に示すように市区町村と都道府県との対応を示すものであって、町村の場合には通常郡名が付与されており、同一町村名の識別を可能にしたものである。また、東京特別区と政令指定都市については、区までを市区町村の区切りとしている。ユーザマッチングデータファイル３は、マッチング処理を行うため、前処理部２で住所文字列が文字コード順にソートされ、都道府県、市区町村、それ以外の３つのレベルに分割された住所データを格納するものである。
【００１７】
住所辞書データファイル４は、例えば都道府県、市区町村、大字、丁目、番地、号の各レベルに分割し階層構造にした住所辞書データを格納するものであり、レベル４までの住所辞書データの構造の例を示したのが図３である。構造的にはレベル５以下の番、号なども同一の構造で表現される。図３において、住所コードで表された住所辞書データは、例えばレベル１（都道府県）で北海道が０１、青森県が０２と続き、沖縄県が４７となっていて、これらを住所名称（都道府県名称）で文字コード順にソーティングされた構造の例を示したのが図３（Ａ）である。同様に、各都道府県毎に、例えば東京都（コード１３）で、千代田区１０１を付加した１３１０１等の住所コードを定義し、レベル２の市区町村名称で文字コード順にソーティングされた構造の例を示したのが図３（Ｂ）、さらにその下位層のレベル３の大字名称で文字コード順にソーティングされた構造の例を示したのが図３（Ｃ）、レベル４の丁目名称で文字コード順にソーティングされた構造の例を示したのが図３（Ｄ）であり、それぞれ代表点緯度、経度、検索キーを有している。検索キーは、実際の住所データとの文字列比較を行うデータであり、全角半角の違いや平仮名、カタカナの違い等を統一するために変換、整形したものである。
【００１８】
このように各レベルで階層化され、それぞれ住所名称でソーティングされた住所辞書データを用いることにより、マッチング処理中のひとつひとつの住所データとの突き合わせにおいて、従来の総当たりの文字列比較と比べて、明らかに処理時間が短縮されることになる。これは、一度合致されたレベルはその場で決定され、他の同一レベル候補との比較が無用になるからである。
【００１９】
また、階層化され、かつそれぞれの住所名称でソーティングされた構造となった住所辞書データに対し、住所データも予め住所文字列順にソーティングを行うことにより、マッチング処理においては、前回データの合致個所から住所辞書データとの突き合わせを継続することが可能となるため、大量のデータを扱う時には大幅に処理時間を短縮することができる。これは、階層化された住所辞書データを木構造となみし、マッチング処理が木構造を水平方向に探索する操作とみなすことができるので、ソーティングにより、前回データでマッチングした経路以前の解はあり得なくなるからである。
【００２０】
パターンデータファイル５は、住所データを適切なレベルに分割したり、マッチング処理における曖昧さを適切に解決するため修正データとしてのパターンデータを格納するものであり、例えば図４に示す読み替えデータ、名称追加データ、市区町村郡を含む郡名データ、郡を含む市区町村名データ、市を含む市区町村名データ、市区町村を含む町名データなど、読み替え、追加、削除、識別（郡、市区町村のレベル識別）を行うための参照データを有する。
【００２１】
これらのうち、読み替えデータは、レベルに応じて入力文字列の置き換え操作を行うものである。例えば１行目の例では、レベル１の突き合わせで予め東京都とのマッチングに成功した入力文字列に対して、レベル２の文字列中に田無市が存在した場合には、その部分を西東京市に置き換えるものであり、置き換えは、住所データが住所辞書データと比較し合致するか否かの判定（マッチング）に失敗した際に、再度合致の可能性を探るために行われる。
【００２２】
レベルが＊となっているデータは、レベルに依存することなく、例えば入力文字列中に「澤」という文字があれば「沢」に置き換えることを意味する。また、省略の可能性のある住所名称も定義されている。これらにより、対応するレベルに文字列を挿入して比較し合致するか否かの判定を行っていく。
【００２３】
その他に、レベルに分割する際に市区町村名を抽出する場合、市区町村や郡という文字そのものが固有名称に含まれる地域を正しく認識するための参照データも、本パターンデータで定義される。
【００２４】
マッチング処理部６は、レベル分割されユーザマッチングデータファイル３に格納されている各行毎の住所データに対して対応する住所辞書データとの突き合わせ（マッチング）を行っていくものである。住所データに対しては、入力法の違いを統一するために予め変換、整形処理が施される。整形処理は、具体的に図５に示すように平仮名からカタカナへの変換、半角文字から全角文字への変換、スペースの削除、「ァ」から「ア）、「ィ」から「イ」、……「ッ」から「ツ」等カナ小文字の大文字化、「ヰ」から「イ」、「ヱ」から「エ」等旧カナ使いから新カナ使いへの置き換え、「ケ」から「ガ」、「ケ」から「ガ」への置き換え等、「- 」、「─」、「〜」、「 」から「−」への統一化等を行う。
【００２５】
マッチング処理の最初は、変換、整形後の住所データと住所辞書データとの突き合わせとなる。突き合わせに成功した場合には当該レベルでの処理を終えて次に進む。合致しなかった場合には、パターンデータを使って読み替え文字での突き合わせを試みる。
【００２６】
この場合、レベル２での郡、レベル３での大字、レベル４での字部分の有無を考慮した突き合わせを行い、成功した場合は当該レベルでの処理を終える。またこの他、レベル３での「町」という文字の有無、あるいはレベル４での「丁目」という文字列の有無も考慮する。
【００２７】
更にレベル４以降では、「番地」「番」「号」「ノ」等の有無や変形に対しても突き合わせを行う。これらの有無や変形は、ユーザが持つ住所データでは混在が想定され、データとしてはどれも正当と判断できるからである。
【００２８】
レベル３以降については、入力文字列は当該レベルから最終文字列までを含んだデータとなっており、合致する毎に入力文字列から合致部分を取り除いたデータを対象としていく。
【００２９】
更に合致しなった住所データに対しては、次の条件を考慮に入れた比較、合致するか否かの判定を行う。ひとつ目は、当該レベルのデータ（通常はレベル３の大字名称）が数値のみのデータの場合には、既に合致済みの市区町村名がパターンデータに定義されているかどうかをチェックし、定義されている場合には該当する文字列を住所データに挿入して比較し合致するか否かを試みる。これは、市区町村名の次に大字名称が存在せずに番地（数値）が続く地域が存在することによる。
【００３０】
ふたつ目は、レベル４〜レベル６に関しては数値データが基本となっているが、数値が必ずしも合致しなくとも、住所辞書データが実在する数値を検索して住所データに近い数値を当てはめるものである。これはオプション機能となっており、ユーザの指定により有効となる。本処理の背景には、番地、号レベルのマッチングは一般にピンポイトマッチングと呼ばれている住宅地図を使ったマッチングとなるため、全国地域で住所が必ずしも完備されているとは限らないことによる。この場合は、最大限適切なマッチング結果を与え、ユーザに対しては警告を与えて注意を促すものとする。
【００３１】
これら一連の処理により、ユーザが持つ複数の住所データ（ポイントデータ）に対して、各々のデータを上記のマッチング処理手順に従い住所コードと共に、位置情報として対応するレベルの緯度と経度を付与することができる。この時、対応するレベルにより与える緯度と経度（例えば図３に示す各代表点緯度と代表点経度）は異なる。マッチングレベルはユーザの指定が優先され、指定レベルより大きい（深い）突き合わせは行われない。また、ユーザの指定より住所データのレベルが小さい（浅い）場合には、住所データレベルの精度で住所コードと緯度、経度が与えられる。これら最終合致レベルの住所コード、位置情報、合致情報、警告情報などを取得し格納するのがマッチング出力ファイル７である。
【００３２】
マッチングに成功しなかったアンマッチデータに対しては、手順の中で合致した最大レベルやアンマッチとなった理由をデータに追記して、このアンマッチ情報と共にアンマッチデータを格納するのがアンマッチ出力ファイル８である。これらの追記データにより、再度のマッチング時の住所データ修正や新たな学習を効率よく行うことができる。
【００３３】
アンマッチファイルの修正と学習処理部９は、行データ毎に、マッチング処理における合致状況とアンマッチ理由を付した住所データをユーザに示し、ユーザにより適切な住所を住所辞書データから選択するかキー入力により修正を加えていくものである。修正の段階で、明らかに他のデータとの関連性がない誤記については以降のマッチングの手助けにはならないので学習せずに処理を続ける。しかし、以降のマッチング処理に役立ちそうなデータであれば、修正住所と住所データの差分を抽出し関連性を調べ、関連する種類に応じて、レベルに依存した読み替え（置き換え）データ、任意レベルの読み替え（置き換え）データ、市区町村の明確化に必要なデータ、等々によりパターンデータをパターンデータファイル５に追加する。
【００３４】
これにより、次回以降のマッチング性能の向上が漸次的に可能となる。学習の仕組みは、上記のようにユーザの判断による手動学習となっているが、パターンデータの活用は、マッチング処理における重要な役割を担い、自動学習による性能劣化を抑える点からもきわめて有用である。
【００３５】
さらに、具体的な処理フローの例を示して本実施形態を説明する。図６は前処理の例を説明するための図、図７はマッチング処理の例を説明するための図、図８はマッチング率向上のための付加処理の例を説明するための図、図９はアンマッチファイルの修正と学習処理の例を説明するための図である。
【００３６】
前処理は、ユーザデータファイル１に格納された複数の住所文字列からなる住所データ、あるいは後述するアンマッチファイルの修正と学習処理の行われたアンマッチ出力ファイルのアンマッチデータに対して行われ、それがマッチング処理を行う住所データとしてユーザマッチングデータファイル３に格納される。この前処理では、例えは図６に示すようにユーザデータファイル１に格納された複数の住所データを文字コード順にソートして並べ替えを行い（ステップＳ１１）、各住所データを行単位として行毎に処理し保持する（ステップＳ１２）。
【００３７】
そして、各行について最終行か否かを判定し（ステップＳ１３）、最終行でなければ、各行における住所文字列を都道府県、市区町村、それ以外の３つのレベルに分割する（ステップＳ１４）。ここで、都道府県が存在するか否かを判定して（ステップＳ１５）、都道府県が存在すれば、ステップＳ１３に戻って次の行について同様の処理を繰り返し実行し、都道府県が存在しない場合には、分割した市区町村レベルのデータにより市区町村リストを参照し（ステップＳ１６）、対応する市区町村が存在するか否かを判定する（ステップＳ１７）。対応する市区町村が存在する場合には、その市区町村リストの都道府県を住所データに挿入する（ステップＳ１８）。
【００３８】
マッチング処理では、例えば図７に示すように住所文字列からなる住所データを行毎に順次保持し（ステップＳ２１）、保持した各行のデータについて最終行か否かを判定し（ステップＳ２２）、最終行でなければ、行単位の住所文字列からなる住所データについて旧文字や平仮名、カタカナなどの特殊文字を一定の基準の文字に変換する文字列の変換、整形を行い（ステップＳ２３）、レベルｉを１（レベル１）とする（ステップＳ２４）。そして、レベルｉより行データの処理が終了したか否かの判定を行う（ステップＳ２５）。例えばレベルｉがユーザにより指定されたレベルか否か、レベルｉが住所データとしての最下位のレベルより下位か否かの判定を行い、行データの処理が終了していない場合には、レベルｉの文字列を保持し（ステップＳ２６）、そのレベルｉの住所データの文字列と同レベルの住所辞書データとを比較して（ステップＳ２７）、合致するか否かを判定する（ステップＳ２８）。
【００３９】
レベルｉの住所データが同レベルの住所辞書データと合致した場合には、合致情報を設定すると共に、レベルｉを１だけインクリメント（＋１）して（ステップＳ２９）、ステップＳ２５に戻り同様の処理を繰り返し実行する。レベルｉの住所文字列からなる住所データが同レベルの住所辞書データと合致しない場合には、パターンデータを参照して住所データの特定の文字の読み替えを行い、あるいは特定の文字の有無を考慮して住所辞書データと再比較を行い（ステップＳ３０）、合致するか否かを判定する（ステップＳ３１）。その結果合致した場合には、そのレベルのマッチング処理は終了となるので、合致情報を設定すると共に、レベルｉを１だけインクリメント（＋１）する（ステップＳ２９）。しかる後、ステップＳ２１に戻り次のレベルｉについて同様の処理を繰り返し実行する。しかし、それでも合致しない場合には、アンマッチ情報を取得してその情報と共に住所データをアンマッチ出力ファイルへ格納し（ステップＳ３２）、その行データの処理は終了にしてステップＳ２１に戻り、次の行データについて同様の処理を繰り返し実行する。
【００４０】
ステップＳ２５において、行データ処理終了の判定がなされた場合には、最終合致レベルの住所コードと位置情報、ステップＳ２９で設定された合致情報、さらには警告情報を取得して、マッチング出力ファイルへ格納する（ステップＳ３３）。しかる後、その行データの処理は終了となるので、ステップＳ２１に戻り同様の処理を繰り返し実行する。
【００４１】
ステップＳ２７〜Ｓ２８の処理は、前処理を行った後のユーザマッチングデータが住所辞書データと比較して合致を判定したものであるのに対し、ステップＳ３０〜Ｓ３１の処理は、前処理を行った後のユーザマッチングデータが住所辞書データに合致しなかったデータに所定の修正処理（読み替え、追加、削除、識別等）を施して住所辞書データと比較し合致するか否かの判定をしなおすものである。この修正処理により、例えばその地域により慣習、慣用的に用いられている住所であったり、一部省略があったり、旧表記の住所のままであったり、正しい住所文字列が入力されていない場合にも、マッチング率、マッチング処理の効率を高めるようにしている。
【００４２】
したがって、その修正処理には種々の形態があり、例えば先に述べたようにパターンデータとして予め登録し、そのデータに基づき住所データを読み替えるのもその１つである。また、市区町村のレベル２では、住所辞書データが町村の頭の郡を省いているのに対し、住所データが○○郡××町となっているように場合もあり、そのような場合のアンマッチを補うためには、住所データから○○郡を省いて再度住所辞書データとの比較、合致するか否かの判定を試みることにより、マッチング率を高めることができる。
【００４３】
同様にレベル３以下の大字、字、町、丁目、番地、番、号、ノでは、住所辞書データからこれらを省き、あるいは住所辞書データを「−」で登録しているとすると、住所データからこれらを省いたり、「−」に変換して再度住所辞書データとの比較、合致するか否かの判定を試みることにより、マッチング率を高めることができる。さらに、慣習的に住所データから一部地名を省いて用いているような地区の場合には、そのような地区に対応して追加データをパターンデータとして予め登録し、そのデータを住所データに挿入して再度住所辞書データとの比較、合致するか否かの判定を試みることにより、マッチング率を高めることができる。
【００４４】
その他、丁目をレベル４、番地をレベル５、号をレベル６として、これらを数値のみで使っている場合に、特別にオプションとして、住所データが数値のみであることを条件として、数値での比較を行って合致か否かを判定し、さらに合致しない場合でも、最も近い値を住所辞書データから検索して、それを合致の範囲として設定してもよい。勿論この場合には、必ずしも合致と判定することには、不確かな要素も残るので、例えば住所データと、合致と判定した住所辞書データとを併記するなどの内容が警告情報として設定される。
【００４５】
上記マッチング率向上のための付加処理の具体的な例を示したのが図８である。この処理では、図７に示すマッチング処理のステップＳ２８の合致するか否かの判定において、合致しなかった場合（ＮＯの場合）に、パターンデータにより、例えば図４に示すように住所データが「東京都」の「田無市」であるときには「西東京市」に住所データを読み替えて住所辞書データとの比較を行って（ステップＳ４１）、合致するか否かの判定を行い（ステップＳ４２）、それでも合致しない場合には、住所データから郡、大字、字、町、丁目、番地、番、号、ノなどそのレベルに応じた特定文字の有無を考慮して例えば省き住所辞書データとの比較を行って（ステップＳ４３）、合致するか否かの判定を行う（ステップＳ４４）。さらに、レベルが３でしかも住所データが数値のみか否かを判定することにより（ステップＳ４５）、レベルが３でしかも住所データが数値のみの場合には、パターンデータより、例えば図４に示すように住所データが「山梨県」の「小淵沢町」である場合には、その後ろに「小淵沢」を追加データとして挿入して（ステップＳ４６）、合致するか否かの判定を行い（ステップＳ４７）。
【００４６】
さらに、合致しない場合であっても、ユーザの指定により有効となるオプションが設定されているか否か、レベル４〜レベル６で住所データが数値のみか否かを判定し（ステップＳ４８、Ｓ４９）、オプションが設定されていて数値のみの場合には、数値のみで合致するか否かを判定する（ステップＳ５０）。そして、この場合には、数値が合致しない場合でも、住所辞書データを検索して最も近い値、さらにその内容を警告情報として設定する（ステップＳ５１、Ｓ５２）。つまり、いずれであっても図７のステップＳ２９に移行して合致情報が設定される。
【００４７】
このようなオプション機能を利用する背景には、番地、号レベルのマッチングが一般にピンポイトマッチングと呼ばれている住宅地図を使ったマッチングとなるため、全国地域で住所が必ずしも完備されているとは限らないことによる。そのため、最大限適切なマッチング結果を与え、ユーザに対しては警告を与えて注意を促すものとしている。
【００４８】
上記の各処理を行っても合致しなかった住所データは、図７に示すステップＳ３２でアンマッチ出力ファイルに格納され蓄積され、アンマッチファイルの修正と学習処理が実行される。その処理の例を示したのが図９であり、住所データの修正とパターンデータの更新が行われ、修正された住所データに対して前処理部、マッチング処理部で同様の処理を繰り返して実行することにより、マッチング率をさらに向上させ、マッチング処理効率を向上させることができる。
【００４９】
アンマッチファイルの修正と学習処理では、図９に示すように入力文字列を行毎に処理して保持する（ステップＳ６１）。そして、各行の文字列について最終行か否かを判定し（ステップＳ６２）、最終行でなければ、その行毎の住所データを取得して（ステップＳ６３）、取得したデータとアンマッチ理由を表示すると共に、その合致状況により住所辞書データを表示する（ステップＳ６４）。アンマッチ理由としては、例えば図７、図８に示す処理の合致するか否かの判定（ステップＳ２８、Ｓ３１、Ｓ４２、Ｓ４４、Ｓ４７〜Ｓ５０）でどのような読み替え、特定の文字の考慮を行った結果としてアンマッチとなったか、その履歴情報やどのレベルまで合致したかなどの情報を含む。したがって、例えばレベル２まで合致し、レベル３でアンマッチとなった場合には、レベル３以下の住所辞書データ候補が表示され、その中からの選択や直接文字列によるキー入力（追加、削除、変更）に基づいて（ステップＳ６５）、住所データの修正処理を行う（ステップＳ６６）。
【００５０】
そして、学習するか否かの判定を行い（ステップＳ６７）、学習する場合には、住所データと選択、入力された修正データの差分を抽出して（ステップＳ６８）、その差分データをパターンデータの種類、読み替え、名称追加など、レベルに応じた項目に追加する（ステップＳ６９）。これらの処理によりその行の処理が終わると、次の行の住所データに進み（ステップＳ７０）、ステップＳ６２に戻り同様の処理を最終行まで繰り返し実行する。
【００５１】
このように本発明においては、従来方法のように単に住所データと住所辞書データとを完全一致による総当たりマッチングを行うのではなく、レベルに応じたフレキシブルな突き合わせを行うことにより、マッチング性能を向上させることが可能となった。さらに、一般には、上記のようなフレシキブルなマッチングを行ってもなお、ユーザが持つ大量のポイントデータにはアンマッチとして残る住所データが存在する。これらの原因としては、明らかな誤記によるものと、旧仮名遣いや記法によるもの、行政界の変更で古くなった住所、等々が考えられる。それらの残存データに対して修正と学習を行い、さらには住所データの読み替え、追加、削除、識別などを行うパターンデータに反映させて、マッチングを繰り返すようにすることにより、マッチング性能を著しく向上させることが可能となった。
【００５２】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば上記実施の形態では、都道府県、市区町村、……のレベルに分けて階層化したが、市区町村以下のレベルでは、政令指定都市、それ以外の市、町村に応じたレベルに分割するようにしてもよい。また、アンマッチファイルの修正と学習処理を行った後、再度前処理を行うようにしたが、それ以前のマッチング処理に際して前処理を行っていることから、アンマッチファイルの修正と学習処理を行った後の住所データについては、そのままマッチング処理を行うようにしてもよいことはいうまでもない。
【図面の簡単な説明】
【００５３】
【図１】本発明に係る住所データマッチング処理システムの実施の形態を示す図である。
【図２】市区町村リストの構成例を示す図である。
【図３】住所辞書データ構造の例を示す図である。
【図４】パターンデータ構造の例を示す図である。
【図５】整形処理の例を説明するための図である。
【図６】前処理の例を説明するための図である。
【図７】マッチング処理の例を説明するための図である。
【図８】マッチング率向上のための付加処理の例を説明するための図である。
【図９】アンマッチファイルの修正と学習処理の例を説明するための図である。
【符号の説明】
【００５４】
１…ユーザデータファイル、２…前処理部、３…ユーザマッチングデータファイル、４…住所辞書データファイル、５…パターンデータファイル、６…マッチング処理部、７…マッチング出力ファイル、８…アンマッチ出力ファイル、９…アンマッチファイルの修正と学習処理部
【図１】
2005050226.tif 000003
【図２】
2005050226.tif 000004
【図３】
2005050226.tif 000005
【図４】
2005050226.tif 000006
【図５】
2005050226.tif 000007
【図６】
2005050226.tif 000008
【図７】
2005050226.tif 000009
【図８】
2005050226.tif 000010
【図９】
2005050226.tif 000011