(57)【特許請求の範囲】
【請求項１】
住所文字列が入力され、住所コードあるいは規格化された住所文字列を出力する、単語分割手段と住所候補抽出手段と絞り込み手段とを有する住所解析装置で行なわれる住所解析方法であって、
前記単語分割手段が、入力された文字列を単語辞書を用いて単語に分割し、前記分割された各単語に対応する少なくとも県レベルで最も包含のとれる県コードを求め、前記分割された各単語と該各単語が住所として存在する県を表す県フラグを出力する単語分割ステップと、
前記住所候補抽出手段が、都道府県市区郡町村、町大字、字丁目の各住所階層毎に、前記単語分割手段が出力した１単語または前記単語分割手段が出力した複数単語を結合した複合語を前記県フラグに基づいて選択し、前記選択された単語または複合語で地名、接尾詞、住所レベル、住所コードが記憶された住所テーブルを検索して各住所階層毎の規格化された住所文字列と住所コードを住所候補として求め、住所候補記憶部に登録された住所候補がない場合には、前記住所階層毎の住所候補を前記住所候補記憶部に登録し、前記住所候補記憶部にすでに登録された住所候補がある場合には、前記住所階層毎の住所候補の中で、すでに登録されている住所候補と包含関係のある住所候補を前記住所候補記憶部に登録する住所候補抽出ステップと、
前記絞込み手段が、出力された住所候補を接尾詞の一致度、濁音の一致度、住所候補の住所レベル、正式読みか別読みの区別を組み合わせて住所候補を絞り込む絞り込みステップと、
を有する住所解析方法。
【請求項２】
住所文字列を入力し、住所コードあるいは規格化された住所文字列を出力する住所解析装置であって、
入力された文字列を単語辞書を用いて単語に分割し、前記分割された各単語に対応する少なくとも県レベルで最も包含のとれる県コードを求め、前記分割された各単語と前記各単語が住所として存在する県を表す県フラグを出力する単語分割手段と、
都道府県市区郡町村、町大字、字丁目の各住所階層毎に、前記単語分割手段が出力した１単語または前記単語分割手段が出力した複数単語を結合した複合語を前記県フラグに基づいて選択し、前記選択された単語または複合語で地名、接尾詞、住所レベル、住所コードが記憶された住所テーブルを検索して各住所階層毎の規格化された住所文字列と住所コードを住所候補として求め、住所候補記憶部に登録された住所候補がない場合には、前記住所階層毎の住所候補を住所候補記憶部に登録し、前記住所候補記憶部にすでに登録された住所候補がある場合には、前記住所階層毎の住所候補の中で、すでに登録されている住所候補と包含関係のある住所候補を前記住所候補記憶部に登録する住所候補抽出手段と、
出力された住所候補を接尾詞の一致度、濁音の一致度、住所候補の住所レベル、正式読みか別読みの区別を組み合わせて住所候補を絞り込む絞り込み手段と
を有する住所解析装置。
【請求項３】
前記住所候補抽出手段が、都道府県市区郡町村の住所階層の解析を行う市区レベル住所解析手段と、町大字の住所階層の解析を行う町レベル住所解析手段と、字丁目の住所階層の解析を行う字レベル住所解析手段とから構成され、
入力された単語の順序にかかわらず、上位階層の住所から解析を行う、請求項２記載の住所解析装置。
【請求項４】
前記住所候補登録手段における住所テーブルの検索は、前記選択された単語または複合語に加え、接尾詞「町」「村」を読み替える、「大字」「字」「小字」の付属語を付加するの派生処理を行った単語・複合語でも、前記住所テーブルを検索する、請求項３記載の住所解析装置。
【請求項５】
前記住所候補抽出手段が、単語分割の出力する複数の解・複数の県の中から解析しようとする解・県を選択する解選択・県選択手段を備え、不要な解・県は解析を行わない、請求項２記載の住所解析装置。
【請求項６】
前記住所候補抽出手段における住所テーブルの検索は、接尾詞を無視して行う、請求項２記載の住所解析装置。
【請求項７】
前記住所候補抽出手段は、接尾詞を除いた部分が同一の町名で丁目の有無によって住所コードが異なる場合、後続する数字が丁目か否か判断し、住所コードを決定する丁目設定手段を有する、請求項２記載の住所解析装置。
【請求項８】
住所文字列が入力され、住所コードあるいは規格化された住所文字列を出力する住所解析プログラムを記録した記録媒体であって、
単語分割手段が、入力された文字列を単語辞書を用いて単語に分割し、前記分割された各単語に対応する少なくとも県レベルで最も包含のとれる県コードを求め、前記分割された各単語と該各単語が住所として存在する県を表す県フラグを出力する単語分割処理と、
住所候補抽出手段が、都道府県市区郡町村、町大字、字丁目の各住所階層毎に、前記単語分割処理が出力した１単語または前記単語分割処理が出力した複数単語を結合した複合語を前記県フラグに基づいて選択し、前記選択された単語または複合語で地名、接尾詞、住所レベル、住所コードが記憶された住所テーブルを検索して各住所階層毎の規格化された住所文字列と住所コードを住所候補として求め、住所候補記憶部に登録された住所候補がない場合には、前記住所階層毎の住所候補を住所候補記憶部に登録し、前記住所候補記憶部にすでに登録された住所候補がある場合には、前記住所階層毎の住所候補の中で、すでに登録されている住所候補と包含関係のある住所候補を前記住所候補記憶部に登録する住所候補抽出処理と、
絞り込み手段が、出力された住所候補を接尾詞の一致度、濁音の一致度、住所候補の住所レベル、正式読みか別読みの区別を組み合わせて住所候補を絞り込む絞り込み処理と、
をコンピュータに実行させるための住所解析プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は住所解析方法、装置、および住所解析プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来、客が申し出た住所でデータベースを検索したり、客の住所を顧客データベースに登録する場合、都道府県、市区町村、町大字、字の住所階層ごとに住所を問い合わせるような方法や、一括で入力する場合でも住所階層（都道府県、市区郡町、町大字、字丁目）ごとに区切って入力する方法が行われている。
【０００３】
【発明が解決しようとする課題】
しかし、窓口業務を効率化するためには、いちいち住所階層ごとに問い返していては効率が悪い。客が申し出る住所をそのまま入力する方が効率がよい。また、住所階層に区切って入力する方法では住所階層の区切りが分かりにくいという問題点がある。例えば、下の例のように単純に「市」「区」「町」等の接尾詞で区切った入力は誤りである。
【０００４】
0003621614.tif 000002
また、通りと住所階層が異なる場合や、通りの名前が逆転する場合がある。
【０００５】
0003621614.tif 000003
さらに、町名の中間に接尾詞「町」を含む場合、「マチ」と読むか「チョウ」と読むか曖昧である。また、地名の先頭の「大字」「字」はよく省略される。町名の先頭にある場合は、単純に「大字」を削除した派生キーを作成すればよいが、中間に「大字」がある場合、単純に削除できないので、入力した町名と正式な町名とのずれが生じる。また、部分的な町名で問い合わせる場合もある。例えば、「クマモトシ  シミズチョウオオアザシンイケ」に対しては、次のような問い合わせが考えられる。
【０００６】
町の読み誤り  「クマモトシ  シミズマチオオアザシンイケ」
大字省略      「クマモトシ  シミズチョウシンイケ」
町名の一部    「クマモトシ  シンイケ」
また、電話で応対する場合、後から客に問い合わせて市区名を追加して入力する場合がよくある。この場合、最初に申し出た町名は市区名より先に入力するので、住所階層が逆転した入力が発生する。従来の手法では、再度町名を問い合わせることになるので、住所入力の効率が悪くなる。
【０００７】
「緑町武蔵野市」
また、市と郡や市と町によく同じ地名がある。そのとき、市と郡や町を間違えることがある。例えば、
0003621614.tif 000004
本発明の目的は、住所階層の区切りや「町」「村」の読み方、「大字」の有無、住所階層の入力順序、接尾詞の誤り等を気にすることなく住所を入力し、解析できる住所解析方法、装置、および住所解析プログラムを記録した記録媒体を提供することにある。
【０００８】
【課題を解決するための手段】
本発明の住所解析方法は、
住所文字列が入力され、住所コードあるいは規格化された住所文字列を出力する、単語分割手段と住所候補抽出手段と絞り込み手段とを有する住所解析装置で行なわれる住所解析方法であって、
単語分割手段が、入力された文字列を単語辞書を用いて単語に分割し、前記分割された各単語に対応する少なくとも県レベルで最も包含のとれる県コードを求め、前記分割された各単語と該各単語が住所として存在する県を表す県フラグを出力する単語分割ステップと、
住所候補抽出手段が、都道府県市区郡町村、町大字、字丁目の各住所階層毎に、前記単語分割手段が出力した１単語または前記単語分割手段が出力した複数単語を結合した複合語を前記県フラグに基づいて選択し、前記選択された単語または複合語で地名、接尾詞、住所レベル、住所コードが記憶された住所テーブルを検索して各住所階層毎の規格化された住所文字列と住所コードを住所候補として求め、住所候補記憶部に登録された住所候補がない場合には、前記住所階層毎の住所候補を住所候補記憶部に登録し、住所候補記憶部にすでに登録された住所候補がある場合には、前記住所階層毎の住所候補の中で、すでに登録されている住所候補と包含関係のある住所候補を住所候補記憶部に登録する住所候補抽出ステップと、
絞込み手段が、出力された住所候補を接尾詞の一致度、濁音の一致度、住所候補の住所レベル、正式読みか別読みの区別を組み合わせて住所候補を絞り込む絞り込みステップと、
を有する。
【０００９】
住所階層の区切りは入力しなくても解析できるように、まず、単語分割を行う。
【００１０】
単語分割の方法は例えば、特願平７−３８７１６に示すような方式を用いて、入力文字列を分割した単語と、包含する県コードを求めておく。ここで、Ａ町がＢ市に含まれることを「包含」と呼ぶ。
【００１１】
この時、地名としてまとまりをもつ町が複数の一般町に分かれているとき、もとのまとまりを持つ町名を大町と定義する。例えば、北青山と南青山を合わせて大町「青山」を定義する。あるいは、神田＊＊町をすべて合わせて神田という大町を定義する。単語辞書には一般町名を大町や方向（東西南北）などをもちいて分割した単語を登録しておく。
【００１２】
単語分割ステップで解析した結果は町名そのものではなく複数の単語で町名を表す場合も出現する。そのため、分解した単語を再度組み立てて住所テーブルを検索し、正しい町名を求める。
【００１３】
この方法により、たとえ区切りを間違って入力されても、その区切りは無視して単語を組み立てるので、正しい住所を得ることができる。また、単語を組み立てるときに接尾詞「町」を読み替えたり、「大字」を付加して町名を組み立てることにより、複合語の途中に「町」があっても、「大字」があっても問題なく解析できる。
【００１４】
また、京都通り名のように通りの名を逆転して入力されても単語に分割して通り名のテーブルを検索するので、正しい住所が得られる。
【００１５】
住所候補抽出ステップでは、入力された単語の順序にかかわらず、市区レベル、町レベル、字レベルの順に解析することにより、入力された住所の階層が逆転していても問題なく解析できるようにする。
【００１６】
また、接尾詞を誤って入力された場合でも、住所候補抽出ステップでは接尾詞を無視して住所テーブルを検索し、後段で接尾詞情報を用いて絞り込む方式を採用することにより、解析可能になる。
【００１７】
また、入力された住所が曖昧で、市とも町名ともとれる場合には、絞り込みステップで「１単語入力の場合は町名よりも市を入力する」等の住所の入力特性に応じたルールにより解の絞り込みを行う。
【００１８】
したがって、本発明によれば、住所階層の区切りを意識することなく住所を入力できる。たとえ複合語の町名であっても「町」の読み方や「大字」の有無を意識することなく住所を入力できるので、客の言うとおりに住所を入力できる。接尾詞が誤っていても、下位の住所が正しければ解析できるので接尾詞の間違いを気にする必要がない。このような曖昧さ対策によって、住所入力の効率が良くなる。
【００１９】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００２０】
図１を参照すると、本発明の一実施形態の住所解析装置は、入力された文字列を単語に分割し、少なくとも県レベルで最も包含のとれる県コードを出力する単語分割部１１と、単語辞書１２と、分割された単語を組み合わせて住所階層毎の規格化された住所文字列と住所コードを求め、入力全体で包含のある解を解析する住所候補抽出部１３と、地名、接尾詞、住所レベル、住所コードを記憶した住所テーブル１４と、住所テーブル１４を検索して得られた住所候補、接尾詞一致数、住所レベル、住所コードが登録される住所候補記憶部１５と、出力された解候補を接尾詞の一致度、濁音の一致度、解の住所レベル、正式読みか別読みの区別等を組み合わせて解を絞り込む絞り込み部１６で構成されている。
【００２１】
次に、本住所解析装置の処理を図２により説明する。
【００２２】
入力された文字列は単語辞書１２を用いて単語分割処理２１で単語に分割する。分割方法は、少なくとも単語毎に住所として可能性を持つある県を住所階層毎に表す市区レベル県フラグ、町レベル県フラグ、字レベル県フラグ、全体を包含する県フラグを出力する方法、例えば特願平７−３８７１６号に示された方法を用いる。
【００２３】
単語辞書１２には表１に示す単語を登録し、地名の意味を持つ名詞には、市区レベル県フラグ、町レベル県フラグ、字レベル県フラグを単語に付与しておく。地名の登録例を図３に示す。
【００２４】
【表１】
0003621614.tif 000005
ここで、「チヨダクカンダアイオイチョウ」と入力された場合を例にして、全体を包含する県フラグの解析方法を説明する。入力を単語に分割すると「チヨダ｜ク／カンダ／アイオイ｜チョウ」（／：単語句切り、｜：接尾詞句切り）となる。「チヨダ｜ク」には市区レベルの接続詞「ク」が付いているので、単語「チヨダ」の県フラグの中の市区レベルのみを残し、残りはクリアする。接尾詞「チョウ」は市区レベルとは限らないので何もしない。次に、各単語毎に市区・町・字の各階層のフラグのｏｒをとり、単語毎に可能性のある県フラグを求める。次に、単語全体の県フラグのａｎｄをとり、入力全体で包含のある分割解を求める（特願平７−３８７１６の図１３参照）。出力例を図４に示す。
【００２５】
次に、住所候補抽出処理２２を行う。図５に処理の詳細を示す。まず、解選択・県選択処理３１で単語分割処理２１が出力した解の中から、どの解のどの県から解析するかを決定する。ここでは、市区郡町村の接尾詞を持つ単語を含む解で接尾詞を持つ単語が示す県、優先住所を含む解の優先住所が表す県、市区レベルの単語を含む解で市区レベルの単語が表す県という順番に選択する。例えば、「横浜市」は市区郡町村の接尾詞を持つので最優先で「横浜市」を含む県である神奈川県を調べる。「横浜」の場合は、市区郡町村レベルの単語ではあるが、接尾詞が無いので優先住所が無ければ神奈川県を調べる。
【００２６】
次に、市区レベル住所解析３２を行う。詳細なフローを図６に示す。まず、単語選択処理４１で市区レベルの県フラグを持つ単語を取り出し、住所テーブル検索処理４２で住所テーブル１４を検索して、得られた住所候補を住所候補記憶部１５に登録する。すでに登録されている住所候補があるときは包含チェック処理４３を行い、住所コードが詳細な方のみを登録する。
【００２７】
住所テーブル１４の構成例を表２に示す。内部住所コードは国土地理協会で規定しているコードに大町コードなどの独自のコードを追加し、コード上で包含関係が分かるようにしたもので、左から県コード、政令市・郡コード、一般市・区・町村コード、大町コード、町コードである。なお、住所コードとして、国土地理協会のコードを用い、政令市と配下の区、郡と配下の町村、大町と配下の一般町の関係は別テーブルとして準備する方法でもよい。また、町名が大町とその配下の町名に分かれるとき、配下の町名を派生町と呼ぶ（例：「鳴海町森下」の「森下」）。
【００２８】
【表２】
0003621614.tif 000006
住所候補記憶部１５の構成例を表３に示す。
【００２９】
【表３】
0003621614.tif 000007
住所テーブル検索処理４２で住所テーブル１４を検索して、検索した内容を住所候補記憶部１５に登録する。すでに登録してある候補がある場合は、包含チェック処理４３を行いながら登録する。
【００３０】
例えば、「名古屋市緑区」と入力した場合、まず、「名古屋市」で住所テーブル１４を検索し、住所候補１「名古屋市」を登録する。この時、入力の接尾詞「市」と住所テーブル１４に登録してある接続する接尾詞「市」が一致するので、接尾詞一致数を１にする。次に、「緑区」を検索すると、愛知県内では「緑区（名古屋市）」が検索される。このとき、候補１「名古屋市」と包含チェックを行い、住所コードがより詳細な住所候補２「名古屋市／緑区」を登録する。この時、接尾詞一致数は「名古屋市」と「緑区」の一致数がたされて２になる。
【００３１】
次に、町レベル住所解析３３を行う。処理の詳細はほぼ市区レベルと同じなので図６を用いる。単語検索４１において、町レベルでは複合語の可能性があるため、検索キーには表４に示す種類の派生を行う。
【００３２】
【表４】
0003621614.tif 000008
例えば、「神田／相生町」では「神田」と「相生」の他に「神田相生」でも検索する。「鳴海町森下」では「鳴海町」「森下」「鳴海町森下」「鳴海町大字森下」と派生して検索する（カナの場合「町」は「マチ」と「チョウ」の２通り派生する）（４２）。住所テーブル１４を検索した結果、「鳴海町」から「鳴海町（名古屋市緑区）」、「鳴海町森下」から「鳴海町森下（名古屋市緑区）」、「森下」から「森下（名古屋市緑区鳴海町）」と「森下（津具村）」が得られる。「鳴海町大字森下」は解無しになる。ここで、「森下」が「鳴海町」の配下にあることは住所コードを見れば明らかなので（住所の包含チェックと呼ぶ）候補３「鳴海町森下」のみが残り、候補５は消去される。
【００３３】
次に、字レベル住所解析３５を行う。字レベルも町レベルと同様に派生して検索し（処理４１，４２）、町レベルと包含を取る（処理４３）。ただし、字レベルでは「大字」ではなく「字」「小字」を派生する。
【００３４】
次に、丁目設定処理３５では、丁目の有無によって町コードが変わる場合があるので、次に続く数字が丁目か番地かを判断して、丁目を設定し、かつ、町コードも決定する。例えば、「函館市昭和」は以下に丁目が続くが、「函館市昭和町」は以下に番地が続く。しかも住所コードはそれぞれ“０１２０２０４５”と“０１２０２０４６”で異なる。一方、ユーザは「昭和町１丁目」とも問い合わせるので、「町」の有無で判断することはできない。この場合は、後ろに「〇丁目」あるいは丁目と思われる数字（例えば、丁目の最大値以下の数字であるかで判断する）が続く場合は「昭和」、それ以外の数字は「昭和町」と判断する。
【００３５】
最後に、包含の無い単語がもっとも少ない解を住所候補解析の結果とする。
【００３６】
以上の解析方法から分かるように、接尾詞間違いの例「秩父市小鹿野町」に関しては住所候補抽出では接尾詞を無視するので、正解である「秩父郡小鹿野町」が出力される。
【００３７】
次に、絞り込み処理２３を行う。処理の詳細を図７に示す。まず接尾詞が一致している解に絞り込む（処理５１）。接尾詞を無視すると「横浜市」には「横浜町」も候補になるが、ここで「横浜市」に絞られる。次に濁音が一致している解に絞り込む（処理５２）。例えば、「ナガノ」に対して濁音を無視すると「長野」と「中野」が一致するが、ここで「長野」に絞られる。
【００３８】
次に、優先住所があればたとえ市区レベルの無い解であってもそれを優先する（処理５３）。例えば、市区町村レベルの「相生町」よりも優先住所の県の「相生町」を優先する。
【００３９】
次に、住所階層により絞り込む（処理５４）。「天白」に対して、字の「天白」よりも区の「天白区」を優先する。
【００４０】
次に、別読みよりも正式読みを優先する。例えば、「岐阜県神戸町（ごうどちょう）」に「こうべ」と別読み登録されていたとき、「こうべ」という入力で「岐阜県神戸町」ではなく「神戸市」を優先する（処理５５）。なお、絞り込みの方法はこの例に限らず他の方法でも良く、絞り込みの順序もこの限りではない。
【００４１】
図８は本発明の他の実施形態の住所解析装置の構成図である。入力装置６１は住所文字列を入力するためのキーボード等である。記憶装置６２は図１中の単語辞書１２、住所テーブル１４、住所候補記憶部１５に相当する。記憶装置６３はハードディスクである。出力装置６４は住所解析結果を表示するためのものである。記録媒体６５は図１中の単語分割部１１、住所候補抽出部１３、絞り込み部１６の処理からなる住所解析プログラムが記録されている、フロッピィ・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク等の記録媒体である。データ処理装置６６は記録媒体６５から住所解析プログラムを読み込んで、実行するＣＰＵである。
【００４２】
【発明の効果】
以上説明したように、本発明によれば、住所階層の区切りや「町」「村」の読み方、「大字」の有無、住所階層の入力順序、接尾詞の誤り等を気にすることなく入力できるので、電話応対業務において、お客様の申し出通りに入力でき、業務の効率化ができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の住所解析装置の構成図である。
【図２】図１の住所解析装置の処理の流れを示すフローチャートである。
【図３】地名の登録例を示す図である。
【図４】地名の出力例を示す図である。
【図５】住所候補抽出処理２２の詳細を示すフローチャートである。
【図６】市区レベル住所解析処理３２の詳細を示すフローチャートである。
【図７】絞り込み処理２３の詳細を示すフローチャートである。
【図８】本発明の他の実施形態の住所解析装置の構成図である。
【符号の説明】
１１    単語分割部
１２    単語辞書
１３    住所候補抽出部
１４    住所テーブル
１５    住所候補記憶部
１６    絞り込み部
２１    単語分割処理
２２    住所候補抽出処理
２３    絞り込み処理
３１    解選択・県選択
３２    市区レベル住所解析
３３    町レベル住所解析
３４    字レベル住所解析
３５    丁目設定
３６    未使用単語最小解選択
４１    単語選択
４２    住所テーブル検索
４３    包含チェック
４４    住所候補登録
５１    接尾詞一致優先
５２    濁音一致優先
５３    優先住所優先
５４    住所階層による絞り込み
５５    正式読み優先
６１    入力装置
６２    記憶装置
６３    記憶装置
６４    出力装置
６５    記録媒体
６６    データ処理装置
【図１】
0003621614.tif 000009
【図２】
0003621614.tif 000010
【図３】
0003621614.tif 000011
【図４】
0003621614.tif 000012
【図５】
0003621614.tif 000013
【図６】
0003621614.tif 000014
【図７】
0003621614.tif 000015
【図８】
0003621614.tif 000016