(57)【要約】【課題】住所情報セルと非住所情報セルとを含むＥｘｃｅｌ形式などのデータから住所情報のみを自動判定し、当該データの有効活用を図ることを目的とする。【解決手段】文字判定手段３は、表データ１の行ごとに、行政区画単位を示す文字（区，市，町，村など）を含むカラムを求める。２行目の場合、「井市」と「墨田区」が該当する。住所判定手段４は、この該当カラムと住所データベース５とのアドレスマッチングを行う。その結果「井市」は失敗し、「墨田区」は成功する。続いて、「墨田区」に次カラムを結合した「墨田区押上」について同じくアドレスマッチングを行う。これも成功するので、さらに次カラムを結合した「墨田区押上３−４３−７」のアドレスマッチングを行う。これも成功する。住所判定手段は丁番号を含むカラムのアドレスマッチングに成功したことにより、「墨田区」の３カラム目からこの５カラムまでを住所情報カラムと判定する。【選択図】    図１
2004355158.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ処理により、複数の項目からなる対象データに含まれる住所情報を自動判定するシステムにおいて、
前記対象データについて、前記項目ごとに、行政区画単位を示す特定文字が入っているか否かを調べる文字判定手段と、
前記文字判定手段によって前記特定文字が入っていると判定された特定項目を少なくとも含む項目部分と、記憶部に保持された住所データベースとのマッチング処理を実行して、行政区画単位から番地までの内容で当該マッチング処理に成功した場合の当該項目部分を住所情報と判定する住所判定手段とを有する、
ことを特徴とする住所情報自動判定システム。
【請求項２】
前記住所判定手段は、
前記項目部分として、前記特定項目にこれ以外の前記項目を結合した態様の新たな特定項目を再帰的に設定する、
ことを特徴とする請求項１記載の住所情報自動判定システム。
【請求項３】
コンピュータ処理により、複数の項目からなる対象データに含まれる住所情報を自動判定する方法において、
コンピュータが、
前記対象データについて、前記項目ごとに、行政区画単位を示す特定文字が含まれているか否かを調べる文字判定ステップと、
前記特定文字が入っていると判定された特定項目を少なくとも含む項目部分と、記憶部に保持された住所データベースとのマッチング処理を実行するアドレスマッチングステップと、
行政区画単位から番地までの内容で前記マッチング処理に成功した場合の前記項目部分を住所情報と判定する住所情報判定ステップとを実行する、
ことを特徴とする住所情報自動判定方法。
【請求項４】
前記アドレスマッチングステップは、
前記項目部分として、前記特定項目にこれ以外の前記項目を結合した態様の新たな特定項目を再帰的に設定するステップである、
ことを特徴とする請求項３記載の住所情報自動判定方法。
【請求項５】
コンピュータ処理により、複数の項目からなる対象データに含まれる住所情報を自動判定するためのプログラムにおいて、
前記対象データについて、前記項目ごとに、行政区画単位を示す特定文字が含まれているか否かを調べる文字判定ステップと、
前記特定文字が入っていると判定された特定項目を少なくとも含む項目部分と、記憶部に保持された住所データベースとのマッチング処理を実行するアドレスマッチングステップと、
行政区画単位から番地までの内容で前記マッチング処理に成功した場合の前記項目部分を住所情報と判定する住所情報判定ステップと、をコンピュータに実行させる、
ことを特徴とする住所情報自動判定用プログラム。
【請求項６】
前記アドレスマッチングステップは、
前記項目部分として、前記特定項目にこれ以外の前記項目を結合した態様の新たな特定項目を再帰的に設定するステップである、
ことを特徴とする請求項５記載の住所情報自動判定用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の項目からなる例えばＥｘｃｅｌファイルなどのデータに含まれる住所情報（住所情報を示すセル）を、コンピュータ処理により自動判定するためのシステム，方法およびプログラムに関する。
【０００２】
特に、例えば区，郡，市，町，村などのように行政区画単位を示す特定文字が入っている特定項目を少なくとも含む項目部分（例えば特定項目のみ、またはこれにその他の項目を結合させた複数項目）と、住所データベースとのアドレスマッチングの成否に基づいて、対象データ中の住所情報（項目）を判定することに関する。
【０００３】
なお，本明細書における「文字」の用語は英数字や各種記号（ハイフンなど）を含む内容のものである。
【０００４】
住所情報項目と非住所情報項目とが混在する形式のデータは多数作成されており、これらのデータのいっそうの有効活用のためにも当該データ中の住所情報のみを自動判定して抽出できることが望ましく、本発明はこのような要請に応えるものである。
【０００５】
【従来の技術】
従来、設定済みの住所情報を自動認識する手法としては、文字列に対して住所単語辞書を照合することにより先ず当該文字列から住所単語部分（例えば川崎市高津区）を抽出し、その後、当該住所単語に続く数値や記号の部分を丁目や番地などの街区情報として特定するものがある（例えば特許文献１参照）。
【０００６】
【特許文献１】
特開２００１−４３３１８号公報
【０００７】
【発明が解決しようとする課題】
従来のこのような住所情報自動認識の場合、対象文字列が住所単語部分の他に非住所単語部分（例えば名前，電話番号など）を含んでいると、当該対象文字列中の任意の各部分を試行錯誤的に住所単語辞書と照合しなればならない。
【０００８】
そのため、対象文字列と住所単語辞書との照合処理に時間を要することが多く、結果として当該対象文字列中の住所情報自動認識における効率的な処理をそれほど期待できないという問題点があった。
【０００９】
本発明は、複数の項目からなる例えばＥｘｃｅｌファイルなどのデータに住所情報が含まれている場合、当該住所情報はこの項目（セルなど）のいずれかの部分に入っていることに着目したものである。
【００１０】
すなわち、各項目の中で「区，市，町，村」などのように行政区画単位（墨田区，横浜市，箱根町，檜原村など）を示す特定文字を含む項目を先ず選択して、この特定項目をいわば「押さえ」にした項目単位（特定項目のみ、またはこれに他の項目を付加した結合項目）でそれが住所情報であるかどうかの判定を行い、対象文字列から住所情報のみを効率的に選択することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は、この課題を、次の事項からなる住所情報自動判定システムおよび住所情報自動判定方法などにより解決する。
【００１２】
住所情報自動判定システムは次の内容のものである。
（１）コンピュータ処理により、複数の項目（例えば後述のカラム）からなる対象データ（例えば後述の表データ１，図２〜図７のリスト）に含まれる住所情報を自動判定するシステムにおいて、前記対象データについて、前記項目ごとに、行政区画単位を示す特定文字が入っているか否かを調べる文字判定手段（例えば後述の文字判定手段３，ＣＰＵ２２）と、前記文字判定手段によって前記特定文字が入っていると判定された特定項目を少なくとも含む項目部分と、記憶部（例えば後述のメモリ２３，外部記憶装置２４）に保持された住所データベース（例えば後述の住所データベース５，行政区テーブル１１，町名テーブル１２，丁番号テーブル１３）とのマッチング処理を実行して、行政区画単位から番地までの内容で当該マッチング処理に成功した場合の当該項目部分を住所情報と判定する住所判定手段（例えば後述の住所判定手段４，ＣＰＵ２２）とを有する。
（２）前記住所判定手段は、前記項目部分として、前記特定項目にこれ以外の前記項目を結合した態様の新たな特定項目を再帰的に設定する。
【００１３】
住所情報自動判定方法は次の内容のものである。
（３）コンピュータ処理により、複数の項目からなる対象データに含まれる住所情報を自動判定する方法において、コンピュータが、前記対象データについて、前記項目ごとに、行政区画単位を示す特定文字が含まれているか否かを調べる文字判定ステップと、前記特定文字が入っていると判定された特定項目を少なくとも含む項目部分と、記憶部に保持された住所データベースとのマッチング処理を実行するアドレスマッチングステップと、行政区画単位から番地までの内容で前記マッチング処理に成功した場合の前記項目部分を住所情報と判定する住所情報判定ステップとを実行する。
（４）前記アドレスマッチングステップにおいて、前記項目部分として、前記特定項目にこれ以外の前記項目を結合した態様の新たな特定項目を再帰的に設定する。
【００１４】
本発明は、このように、複数の項目（例えばＥｘｃｅｌファイルのセル）からなる対象データの、墨田区，横浜市などの行政区画単位を示す特定文字（区，市，町，村など）が入っている特定項目を先ず求めて、これを中心とする項目部分（当該特定項目のみ、またはこの項目と他項目との結合項目）のデータと、既設の住所データベースとのアドレスマッチングを実行し、これにより対象データの住所情報を自動判定する際のデータ処理の効率化を図っている。
【００１５】
なお、上記項目部分のデータが住所データベースのデータと少なくとも所定の範囲（例えば区名，町名，丁目番地などの個々の範囲）で一致すれば、その限りでのアドレスマッチングに成功したことになる。住所情報と判定するのは、行政区画単位から番地までの内容（例えば「墨田区押上３−４３−７」）でアドレスマッチングに成功した場合である。
【００１６】
また、住所データベースとのアドレスマッチングの対象となる項目部分として、特定文字を含む特定項目（＝原特定項目）と他項目との結合項目（＝新特定項目）を再帰的に設定し、これにより対象データ中の住所情報の自動判定漏れを確実に防止している。
【００１７】
なお、「再帰的に設定し」とは、原特定項目にその他の項目との任意の各組み合わせからなる新特定項目を順次設定していくことの意である。
【００１８】
例えば、Ｃ０〜Ｃ９の計１０個の項目からなる対象データの原特定項目がＣ４のとき、
・先ずＣ４を設定し、
・Ｃ４における、番地までのアドレスマッチングに失敗すると（Ｃ４＋Ｃ５）または（Ｃ４＋Ｃ３）などを設定し、
・例えば（Ｃ４＋Ｃ５）における当該アドレスマッチングに失敗すると（Ｃ４＋Ｃ６）または（Ｃ４＋Ｃ５＋Ｃ６）などを設定する、
といったことを当該アドレスマッチングに成功するまで繰り返す。そして、Ｃ４を含む形のすべての組み合わせの結合項目で当該アドレスマッチングに失敗した場合は「住所情報なし」と判定する。
【００１９】
本発明は、このような特徴を持つ住所情報自動判定システムおよび住所情報自動判定方法を対象とし、さらには上述の文字判定処理，アドレスマッチング処理や住所情報判定処理を実行するためのプログラムも対象にしている。
【００２０】
【発明の実施の形態】
図１乃至図１１を用いて、本発明の実施の形態を説明する。
【００２１】
図１は、住所情報自動判定システムの概要を示す説明図である。
【００２２】
図１において、
１はその行レコードが名前，会員番号，区名，町名および丁目番地の各項目データ（＝カラムデータ）からなっているコード形式の表データ，
２は「区，郡，市，町，村」などのように行政区画単位を示す特定文字，
３は表データ２の行単位でその各項目（＝各カラム）に特定文字が含まれているか否かを調べる文字判定手段，
４は特定文字が含まれていると文字判定手段３で判定された項目（特定項目）の文字列と後述の住所データベース５とのアドレスマッチングを行い、それに成功した場合はこの文字列と次の項目との結合文字列の当該アドレスマッチングを再帰的に実行して、最終的に丁番号項目までを対象とする当該アドレスマッチングに成功したときの結合文字列を住所情報と判定する住所判定手段，４ａはアドレスマッチング部，４ｂは住所情報判定部，
５は行政区テーブル，町名テーブルおよび丁番号テーブルなどからなる住所データベース（図８参照），
をそれぞれ示している。
【００２３】
ここで、表データ１および住所データベース５は記憶媒体，メモリ，レジスタなどの各種記憶手段に保持されている。特定文字２はプログラム中に記述されるか、または各種記憶手段に保持される。
【００２４】
文字判定手段３は、表データ１の例えば２行目について１カラム目の「井市」および３カラム目の「墨田区」の各項目をアドレスマッチングの対象として選択する。「井市」は「市」の特定文字を含み、また「墨田区」は「区」の特定文字を含んでいるからである。
【００２５】
特定文字を含んでいるかどうかの具体的判断は例えば各カラムの文字のコードが当該特定文字のそれに一致するかどうかによって行う。
【００２６】
そして、住所判定手段４は、この「井市」および「墨田区」の文字列をいわば基準としてアドレスマッチングを実行する。
【００２７】
「井市」の場合は、この名前の行政区が存在せずデータベース５に保持されていないのでアドレスマッチングに失敗する。
【００２８】
一方、真の行政区名である「墨田区」の場合、住所判定手段４は、
（１）  この名前とデータベース５（行政区テーブル１１）とのアドレスマッチングに成功し、
（２）  この成功が丁番号までを対象としたものではないことを確認し、
（３）  次カラム「押上」との結合文字列「墨田区押上」と、データベース５（町名テーブル１２まで）とのアドレスマッチングを行い、
（４）  このアドレスマッチングに成功し、かつ当該成功が丁番号までを対象としたものではないことを確認し、
（５）  次カラム「３−４３−７」との結合文字列「墨田区押上３−４３−７」と、データベース５（丁番号テーブル１３まで）とのアドレスマッチングを行い、
（６）  このアドレスマッチングに成功し、かつ当該成功が丁番号までを対象としたものであることを確認し、
（７）  この確認により、最終的な結合文字列の「墨田区押上３−４３−７」が２行目レコードの住所情報であると判定する。
【００２９】
なお、数字列の「３−４３−７」のアドレスマッチング処理は、後述のように当該数字列中の数字のみからなる「３」・「４３」・「７」のいわばリンクデータに対して実行する。「３丁目４３番７号」，「三丁目４３番７号」，「３の４３の７」や「３ノ４３ノ７」などの各数字列の場合も同様である。
【００３０】
上記（５）  の処理に際しては、すでに行政区名「墨田区」および町名「押上」それぞれのアドレスマッチングに成功しているので、あらたに結合した「３−４３−７」の文字列（数字列）とデータベース５（の丁番号テーブル１３）とのアドレスマッチングのみでも十分である。
【００３１】
アドレスマッチングの成功が丁番号までを対象としたものであるかどうかの判断は、例えば、
・アドレスマッチング対象となった結合文字列の最後の結合カラムが数字列であるか
・（丁番号テーブルの）最終フラグ値「１」を持つレコードとのアドレスマッチングに成功したか（図８参照）
・アドレスマッチングにより得られる文字列に「−」が入っているか（図１０参照）
などの手法により実行する。
【００３２】
単一カラムに「墨田区押上」の文字列が入っている場合は、これを先頭文字から特定文字「区」までの「墨田区」とその後の「押上」とに分割して、それぞれの単位で「墨田区」から順にアドレスマッチングを実行する。
【００３３】
また、単一カラムに「墨田区押上３−４３−７」の文字列が入っている場合は図１０の手順によりアドレスマッチングを実行する。
【００３４】
なお、アドレスマッチングに際し、特定文字を含むカラム（例えば墨田区）にどのカラムを結合させていくかは任意である。結合相手は次カラムである必要はなく、もっと後方のカラムや、逆に前方のカラムでもよい。３カラム目の「墨田区」に１カラム目や２カラム目を結合させてアドレスマッチングを実行してもよい。
【００３５】
すなわち、例えば丁目番地，町名，区名の順に各カラムを設けた表データに対しても、すべての残カラムとの結合項目のアドレスマッチングを行うことにより、その中の住所情報を正しく判定・抽出することができる。
【００３６】
図２は、住所情報を含むリスト例（その１）を示す説明図である。
【００３７】
この表形式のリスト例の各行はそれぞれ７カラム（７項目）の各データからなっており、３カラム目の「行政区名」，４カラム目の「町名」および５カラム目の「丁目番地号」の各文字列部分が住所情報である。
【００３８】
ここで、例えば２行目における住所情報の判定処理は、概略、
（１１）文字判定手段３が、３カラム目の「墨田区」を特定文字「区」が入っている特定項目と判定し、
（１２）住所判定手段４が、この「墨田区」と住所データベース５の行政区テーブル１１（図８参照）とのアドレスマッチングを行ってこれに成功し、
（１３）住所判定手段４が、この「墨田区」に次カラム「押上」を結合した第１の新特定項目「墨田区押上」を設定し、
（１４）住所判定手段４が、この「墨田区押上」と住所データベース５の町名テーブル１２（図８参照）までのアドレスマッチングを行ってこれに成功し、
（１５）住所判定手段４が、この「墨田区押上」に次カラム「３−４３−７−２０」を結合した第２の新特定項目「墨田区押上３−４３−７−２０」を設定し、
（１６）住所判定手段４が、この「墨田区押上３−４３−７−２０」と住所データベース５の丁番号テーブル１３（図８参照）までのアドレスマッチングを行ってこれに成功し、かつ、この成功が丁番号までを対象としたものである、例えばこのアドレスマッチングで返ってきた文字列に「−」が入っていることを確認した上で、第２の新特定項目のデータ（または返ってきた文字列自体）を住所情報と判定する、
といった内容になる。
【００３９】
なお、上記（１４）のアドレスマッチングは町名テーブル１２のみを対象とし、同じく上記（１６）のアドレスマッチングは丁番号テーブル１３のみを対象としてもよい。
【００４０】
また、「３−４３−７−２０」のように「−」が３個以上含まれているカラムが結合される場合、３個目の「−」以降のデータを削除した形の特定項目、すなわち「墨田区押上３−４３−７」をマッチング処理の対象としてもよい。
【００４１】
図３は、住所情報を含むリスト例（その２）を示す説明図である。
【００４２】
このリスト例は、町名および丁目番地を単一の住所カラムとしている点でのみ、図２のリスト例と相違する。
【００４３】
この住所カラムの文字列（例えば押上３−４５−３）は、当該文字列の数字が出てくるまでの「押上」とそれ以降の「３−４５−３」とに分割され、図２のリスト例と同じように個々の分割項目に対してアドレスマッチングを行う。この分割により、図３のリスト例も丁番号まで含むアドレスマッチングに成功する。
【００４４】
図４は、住所情報を含むリスト例（その３）を示す説明図である。
【００４５】
このリスト例は、丁目番地カラムの文字列において、「−」ではなく、「丁目，番，号」の各文字を使っている点でのみ、図２のリスト例と相違する。
【００４６】
当該リスト例のアドレスマッチングに際しては、この「丁目，番，号」の各文字を「−」と同じように省略する。この省略により、図４のリスト例も丁番号まで含むアドレスマッチングに成功する。
【００４７】
図５は、住所情報を含むリスト例（その４）を示す説明図である。
【００４８】
このリスト例は、丁目カラム，番カラムおよび号カラムを個々に設けた点でのみ、図２のリスト例と相違する。すなわちこれらの各カラムには数字以外のデータは入っていない。
【００４９】
なお、図５のリスト例における、アドレスマッチングの成功が丁番号までを対象としたものであるかどうかの判断基準は、「（丁番号テーブルの）最終フラグ値「１」を持つレコードとのアドレスマッチングに成功したか（図８参照）」を用いる。
【００５０】
当該リスト例のアドレスマッチングに際しては、例えば２行目（Ａ氏）の場合、第１の新特定項目「墨田区押上」のアドレスマッチングの成功に続き、
（２１）次の新特定項目「墨田区押上３」を設定してこれと住所データベース５（丁番号テーブル１３）とのアドレスマッチングに成功し、かつ、この成功が最終フラグ値「０」（図８参照）のレコードに基づくものである、すなわち最終的な成功でないことを確認し、
（２２）次の新特定項目「墨田区押上３−４３」を設定してこれと住所データベース５（丁番号テーブル１３）とのアドレスマッチングに成功し、かつ、この成功が最終フラグ値「０」（図８参照）のレコードに基づくものである、すなわち最終的な成功でないことを確認し、
（２３）次の新特定項目「墨田区押上３−４３−７」を設定してこれと住所データベース５（丁番号テーブル１３）とのアドレスマッチングに成功し、かつ、この成功が最終フラグ値「１」（図８参照）のレコードに基づくものである、すなわち最終的に成功したことを確認する。
【００５１】
これにより、図５のリスト例もまた丁番号までを含むアドレスマッチングに成功し、リスト中の住所情報カラムを正しく判定することができる。
【００５２】
ここで、「墨田区押上３」および「墨田区押上３−４３」が住所データベース５（丁番号テーブル１３）とのアドレスマッチングに成功するのは、当該丁番号テーブル（図８参照）に「３・０・０」および「３・４３・０」のレコードが保持されているからである。勿論、それぞれの最終フラグには、当該レコードが完全な丁目番地を保持したものではないことを示す値「０」がたっている。
【００５３】
図６は、住所情報を含むリスト例（その５）を示す説明図である。
【００５４】
このリスト例は、丁目データを丁目番地カラムではなく町名カラムに入れた点でのみ、図２のリスト例と相違する。
【００５５】
当該リスト例のアドレスマッチングに際しては、第２の新特定項目「墨田区押上三丁目」（＝アドレスマッチング失敗）に対し、
ａ．丁目データである「三丁目」を分離した後の「墨田区押上」を第２の新特定項目として再設定する。この再設定により、図４のリスト例も丁番号まで含むアドレスマッチングに成功する。
【００５６】
また、
ｂ．「三丁目」は「３−」または「３丁目」に変換した上で保持する。そして、この保持データは、次の第３の新特定項目を設定するときに次カラムの先頭部分に付加される。
【００５７】
図７は、住所情報を含むリスト例（その６）を示す説明図である。
【００５８】
この表形式のリスト例の行はそれぞれ６カラム（６項目）の各データからなっており、当該行における２カラム目の「行政区名」，３カラム目の「町名」および５カラム目の「丁目番地」の各文字列部分が住所情報である。
【００５９】
ここでの各行に対する住所情報の判定・抽出処理は図２のリスト例の場合と同様である。
【００６０】
ただ、「行政区名」と「町名」との結合文字列に次カラムの「電話番号」を結合させた特定項目、例えば３行目の「墨田区押上」にその次の「０３−２２２２−２２２２」を結合させた第２の新特定項目「墨田区押上０３−２２２２−２２２２」は住所データベース５とのアドレスマッチングに失敗する。
【００６１】
仮に「０３−２２２２−２２２２」という番地が住所データベース５に存在する場合には、アドレスマッチングに成功し、この「墨田区押上０３−２２２２−２２２２」が住所と判定されてしまう。
【００６２】
しかしながら現実にはこのような電話番号の番地は存在しないので、「墨田区押上０３−２２２２−２２２２」によるアドレスマッチングは成功しない。
【００６３】
このときの住所判定部４は、第２の新特定項目の最後の結合カラム「０３−２２２２−２２２２」を削除してから、次列カラムの「３−４５−３」を結合させる。
【００６４】
すなわち、第２の新特定項目として「墨田区押上３−４５−３」を再設定し、この新特定項目と住所データベース５とのアドレスマッチングを行ってこれに成功し、当該新特定項目を住所情報と判定する。
【００６５】
図８は、住所データベースの概要を示す説明図であり、（ａ）  は行政区テーブル１１，（ｂ）  は町名テーブル１２，（ｃ）  は丁番号テーブル１３をそれぞれ示している。各テーブルの行政区カラム，町名カラム，丁番号テーブルのデータは例えばコード形式で設定されている。
【００６６】
行政区テーブル１１は、区，市，町，村などの個々の行政区単位に一意のコードを付与したものである。
【００６７】
なお、行政区テーブル１１において行政区をどのような表示内容で保持するかは任意である。
【００６８】
例えば、
・東京都下の八王子を「八王子市」，「東京都八王子市」の何れとするか、
・横浜市の港北区を「港北区」，「横浜市港北区」，「神奈川県横浜市港北区」の何れとするか、
・佐賀県杵島郡の北方町を「北方町」，「杵島郡北方町」，「佐賀県杵島郡北方町」の何れとするか、
などは任意である。
【００６９】
もっとも、図示のように何れの表示内容に対しても同一コードを設定することにより、リスト中の行政区名カラムデータの形式的な違いでアドレスマッチングの結果が違ってしまうことを防止できる。
【００７０】
一方、行政区テーブル１１における行政区単位の設定範囲も任意であり、例えば東京都八王子市を「東京都」と「八王子市」とに分けた形で個々に保持するようにしてもよい。
【００７１】
この場合、行政区テーブル１１は「東京都」などの都道府県を示す上位テーブルと「八王子市」のように都道府県内の区，郡，市などを示す下位テーブルとで構成される。
【００７２】
町名テーブル１２は、行政区テーブル１１で設定された単一行政区内の各町名とそのコードとを一意に対応付けて保持したものである。
【００７３】
図示のものは、「目黒区：行政区コード１３１１０」に属する各町名およびそれぞれの町名コードを保持している。例えば「中目黒」の町名コードは「２１３１１０」である。
【００７４】
丁番号テーブル１３は、町名テーブルで設定された単一町名における丁目・番地・号などを最終フラグとともに保持したものである。
【００７５】
この最終フラグは該当レコード中の丁目，番，号などが完結している（実在する）かどうかを示すフラグであり、「０」は未完決を示し、また「１」は完結を示している。
【００７６】
図示のものは、「目黒区中目黒：町名コード２１３１１０」の丁目・番・号などを保持している。
【００７７】
リスト中のカラムに基づく文字列が住所情報と判定されるのは、当該文字列が、行政区テーブル１１および町名テーブル１２に続くこの丁番号テーブル１３の文字列（＝数字列）までのアドレスマッチングに成功した場合である。
【００７８】
図９は、リスト中の住所情報の抽出処理手順を示す説明図であり、その内容は次のようになっている。
（ｓ１１）  表形式リストの行を示す変数ｍおよびカラムを示す変数ｎのそれぞれに初期値「１」を設定して、次のステップに進む。また、表形式リストからその全体の行数ｍｍおよびカラム数ｎｎを認識してワーク領域（図示省略）に保持する。この行数およびカラム数は利用者などが入力してもよい。
（ｓ１２）  最終行までの処理を終了したかどうか（「ｍ＞ｍｍ」であるかどうか）を判断して、「Ｙｅｓ」の場合は一連の住所情報抽出処理を終了し、「Ｎｏ」の場合は次のステップに進む。
（ｓ１３）  表形式リストのｍ行目のデータを取り出してワーク領域に保持し、次のステップに進む。
（ｓ１４）  カラムｎ（文字列）のデータ中に特定文字が含まれているかどうかを判断して、「Ｙｅｓ」の場合は次のステップに進み、「Ｎｏ」の場合はステップ（ｓ１７）  に進む。特定文字とは、行政区画単位を示す「区」，「郡」，「市」，「町」，「村」などの文字である。
（ｓ１５）  この文字列と住所データベースとのアドレスマッチングを実行して、次のステップに進む。ステップ（ｓ１４）  のカラムｎに丁目番地（丁番号）まで入っている場合はここでのアドレスマッチングによって、すなわちステップ（ｓ２４）  に進むことなしに住所情報が判定される。
（ｓ１６）  アドレスマッチングに成功したかどうかを判断して、「Ｙｅｓ」の場合はステップ（ｓ１９）  進み、「Ｎｏ」の場合は次のステップに進む。
（ｓ１７）  ｎはリストの最終カラムであるかどうか（「ｎ≧ｎｎ」であるかどうか）を判断して、「Ｙｅｓ」の場合はステップ（ｓ２８）  に進み、「Ｎｏ」の場合は次のステップに進む。
（ｓ１８）  「ｎ＋１→ｎ」の処理を実行して、ステップ（ｓ１４）  に戻る。
（ｓ１９）  レジスタ（図示省略）にｎの値をリンク形式で順に保持して、次のステップに進む。
（ｓ２０）  丁番号までを対象とするアドレスマッチングに成功したかどうかを判断して、「Ｙｅｓ」の場合はステップ（ｓ２６）  に進み、「Ｎｏ」の場合は次のステップに進む。
（ｓ２１）  ｎはリストの最終カラムであるかどうか（「ｎ≧ｎｎ」であるかどうか）を判断して、「Ｙｅｓ」の場合はステップ（ｓ２７）  に進み、「Ｎｏ」の場合は次のステップに進む。
（ｓ２２）  「ｎ＋１→ｎ」の処理を実行して、次のステップに進む。
（ｓ２３）  ステップ（ｓ１９）  で保持した各列（ｎ１，ｎ２，・・・）と新たなｎ列との結合文字列を設定して、次のステップに進む。
（ｓ２４）  この結合文字列と住所データベースとのアドレスマッチングを実行して、次のステップに進む。
（ｓ２５）  アドレスマッチングに成功したかどうかを判断して、「Ｙｅｓ」の場合はステップ（ｓ１９）  に戻り、「Ｎｏ」の場合はステップ（ｓ２１）  に戻る。
（ｓ２６）  ステップ（ｓ１９）  で保持した各カラム（ｎ１，ｎ２，・・・）からなる結合文字列を住所情報と判定して、次のステップに進む。
（ｓ２７）  ステップ（ｓ１９）  で保持したデータをすべて削除して、次のステップに進む。ここで当該データをすべて削除するのは次の行データへの住所情報抽出処理に移行するためである。
（ｓ２８）  「ｍ＋１→ｍ，１→ｎ」の処理を実行して、ステップ（ｓ１２）  に戻る。
【００７９】
ステップ（ｓ２０）  の判断は、上述したように、
・アドレスマッチング対象となった結合文字列の最後の結合カラムが数字列であるか
・最終フラグ値「１」を持つ（丁番号テーブル１３の）レコードとのアドレスマッチングに成功したか
・アドレスマッチングで得られる文字列にハイフン「−」が入っているか（図１０参照）
などに基づいて行う。
【００８０】
ステップ（ｓ２４）  のアドレスマッチングでは、図２乃至図７の各リスト例に対応した上述の各処理も併せて実行する。
【００８１】
図１０は、丁番号までの住所情報が単一カラムに入っている場合のアドレスマッチングの処理手順を示す説明図である。
【００８２】
なお、ここでは単一カラムに入っている「目黒区中目黒１丁目１番１号」が文字判定処理により特定済みであり、この特定文字列が住所判定処理の対象になっているものとする。
【００８３】
アドレスマッチングの処理手順の内容は次のようになっている。
（ｓ３１）  この特定文字列の先頭文字から特定文字（市，区，町，村など）までの部分を抽出する。すなわち「目黒区」を抽出する。
（ｓ３２）  この第１の抽出部分と行政区テーブル１１とのアドレスマッチング処理を行ってこれに成功した場合、当該抽出部分に対応の目黒区コード「１３１１０」を求める。
（ｓ３３）  複数の町名テーブルから目黒区コードに対応の町名テーブル（目黒区テーブル）１２を選択する。
（ｓ３４）  前記特定文字列の先頭文字から最初の数字が出てくる直前の文字までの部分を抽出する。すなわち「目黒区中目黒」を抽出する。
（ｓ３５）  この第２の抽出部分と町名テーブル１２とのアドレスマッチング処理を行ってこれに成功した場合、当該抽出部分に対応の町名コードを求める、すなわち目黒区中目黒コード「２１３１１０」を求める。
（ｓ３６）  複数の丁番号テーブルから目黒区中目黒コードに対応の丁番号テーブル１３を選択する。
（ｓ３７）  前記第２の抽出部分に続く残りの文字列部分を抽出する。すなわち「１丁目１番１号」を抽出する。
（ｓ３８）  この第３の抽出部分から英数字だけをその出現順に、かつ英数字群ごとにいわばリンクさせた形式で求める。すなわち英数字列の「１」・「１」・「１」を求める。ここでは、漢数字の「一」などを算用数字「１」のコードに変換してから処理する。
（ｓ３９）  この数字列と丁番号テーブル１３とのアドレスマッチング処理を行って成功した場合、丁目，番地，号の文字列として「１−１−１」を設定する。
【００８４】
このように、住所判定手段４は、丁番号までのアドレスマッチングに成功した対象カラムを住所情報と判定する。
【００８５】
なお、住所情報として、
・対象カラム自体の「目黒区中目黒１丁目１番１号」
・ステップ（ｓ３９）  の設定内容からなる「目黒区中目黒１−１−１」
のいずれを抽出するかは任意である。
【００８６】
ここで、「目黒区中目黒１−１−１」のように丁番号の数字がハイフンでつながった特定文字列の場合も同一のアドレスマッチング結果となる。すなわち、この場合もハイフン「−」は英数字ではないため、ステップ（ｓ３８）  において求まる数字列は「１」・「１」・「１」となる。
【００８７】
ステップ（ｓ３９）  のアドレスマッチングの場合、数字列「１」・「１」・「１」の各数字が、個々に、丁番号テーブル１３の各カラムの数字（コード）と同じ順番ですべて一致するかどうかをチェックしている。
【００８８】
ステップ（ｓ３８）  の数字列に「階層カラム」対応部分が存在しないとき、すなわち当該数字列の各要素と丁番号テーブル１３の第３カラム（号カラム）までとの各比較処理により当該数字列のチェックが終了するとき、当該テーブルの第４カラム（階層カラム）はステップ（ｓ３９）  のアドレスマッチングに用いられない。
【００８９】
また、「目黒区中目黒１−１−１−１１１１」といった特定文字列のようにステップ（ｓ３８）  の数字列が四つの数字（「１」，「１」，「１」，「１１１１」）からなる場合は、その最後の数字「１１１１」を当該数字列から削除した上でステップ（ｓ３９）  の処理に移行してもよい。当該数字はマンションの室番号などに相当する。
【００９０】
ステップ（ｓ３１）  で「・・市」を抽出した場合、（特定文字列の）その先の文字部分まで同じ処理を再実行して「区」が含まれているときにはこの区までを抽出するようにしてもよい。
【００９１】
これは、例えば「横浜市港北区」を、区までの表示単位によってアドレスマッチング処理を行うためである。
【００９２】
その一方、行政区のアドレスマッチング処理を、都道府県の単位から開始してその下位の郡，区，市，町，村の単位で順に実行してもよい。
【００９３】
例えば、「神奈川県横浜市港北区」を「神奈川県」，「横浜市」，「港北区」のそれぞれの単位で順次それぞれと対応するデータベースとのアドレスマッチングを実行してもよい。
【００９４】
ステップ（ｓ３２）  のアドレスマッチングに失敗した場合、上記第１の抽出部分の先の文字部分を再度調べてそこに特定文字（市，区，町，村など）が存在するときには特定文字列の先頭文字から当該特定文字までを抽出し、この抽出部分に対してあらためて当該アドレスマッチングを実行するようにしてもよい。
【００９５】
これにより、東京都の町田市，東村山市や三重県の四日市市などのように行政区名自体に元々「市」，「町」や「村」の特定文字が入っている文字列も、行政区テーブルとのアドレスマッチングに成功する。
【００９６】
すなわち、これの文字列の場合、ステップ（ｓ３１）  の抽出部分はそれぞれ「町」，「東村」および「四日市」となってしまい、このままではステップ（ｓ３２）  のアドレスマッチングに失敗する。上述の、その先の特定文字までの抽出によって、当該アドレスマッチングに成功することができる。
【００９７】
図１１は、使用するハードウェアの構成例を示す説明図である。
【００９８】
図１１において、２１はマウスやキーボードなどからなる入力装置，２２はプログラムの走行により文字判定処理，アドレスマッチング処理や住所住所判定処理などを実行するＣＰＵ，２３は各種データを保持するメモリ（内部記憶装置），２４は文字判定処理，アドレスマッチング処理や住所情報判定処理などを実行するプログラムや住所データベース、および表データなどを格納する外部記憶装置，２５は各種表示手段やプリンタなどの出力装置，２６はＣＰＵ３２に対する入出力インタフェースをそれぞれ示している。
【００９９】
【発明の効果】
本発明は、このように、複数の項目（例えばＥｘｃｅｌファイルのセル）からなる対象データの、墨田区，横浜市などの行政区画単位を示す特定文字（区，市，町，村など）が入っている特定項目を先ず求めて、これを中心とする項目部分（当該特定項目のみ、またはこの項目と他項目との結合項目）のデータと、既設の住所データベースとのアドレスマッチングを実行するので、対象データの住所情報を自動判定する際のデータ処理の効率化を図ることができる。
【０１００】
また、住所データベースとのアドレスマッチングの対象となる項目部分として、特定文字を含む特定項目（＝原特定項目）と他項目との結合項目（＝新特定項目）を再帰的に設定するので、対象データ中の住所情報の自動判定漏れを確実に防止することができる。
【図面の簡単な説明】
【図１】本発明の、住所情報自動判定システムの概要を示す説明図である。
【図２】本発明の、住所情報を含むリスト例（その１）を示す説明図である。
【図３】本発明の、住所情報を含むリスト例（その２）を示す説明図である。
【図４】本発明の、住所情報を含むリスト例（その３）を示す説明図である。
【図５】本発明の、住所情報を含むリスト例（その４）を示す説明図である。
【図６】本発明の、住所情報を含むリスト例（その５）を示す説明図である。
【図７】本発明の、住所情報を含むリスト例（その６）を示す説明図である。
【図８】本発明の、住所データベースの概要を示す説明図であり、（ａ）  は行政区テーブル，（ｂ）  は町名テーブル，（ｃ）  は丁番号テーブル１３を示している。
【図９】本発明の、リスト中の住所情報の抽出処理手順を示す説明図である。
【図１０】本発明の、丁番号までの住所情報が単一カラムに入っている場合のアドレスマッチングの処理手順を示す説明図である。
【図１１】本発明の、使用するハードウェアの構成例を示す説明図である。
【符号の説明】
１：コード形式の表データ
２：行政区画単位を示す特定文字（区，市など）
３：文字判定手段
４：住所判定手段
４ａ：アドレスマッチング部
４ｂ：住所情報判定部
５：住所データベース
１１：行政区テーブル
１２：町名テーブル
１３：丁番号テーブル
２１：入力装置
２２：ＣＰＵ
２３：メモリ（内部記憶装置）
２４：外部記憶装置
２５：出力装置
２６：入出力インタフェース
【図１】
2004355158.tif 000003
【図２】
2004355158.tif 000004
【図３】
2004355158.tif 000005
【図４】
2004355158.tif 000006
【図５】
2004355158.tif 000007
【図６】
2004355158.tif 000008
【図７】
2004355158.tif 000009
【図８】
2004355158.tif 000010
【図９】
2004355158.tif 000011
【図１０】
2004355158.tif 000012
【図１１】
2004355158.tif 000013