(57)【要約】【課題】電子的なテキストデータの中から、より効率的に住所文字列を抽出する。【解決手段】ネットワーク１１に接続されたユーザＰＣ１０の記録媒体に、住所辞書データと住所文字列取得プログラムが格納されている。ユーザＰＣ１０は、ネットワーク１１を介して、様々なＷＥＢサーバ１２、１３などに接続可能である。ＷＥＢサーバ１２、１３は、様々なデジタルコンテンツを掲載しており、ユーザは、ネットワーク１１を介してユーザＰＣ上でこれらのコンテンツを見ることができる。ＷＥＢサーバ１２のデジタルコンテンツがテキストデータを含み、そのテキストデータが住所文字列情報を含むとき、住所文字列プログラムは住所辞書データを参照して、テキストデータ内の住所文字列情報を抽出することが可能である。【選択図】図１
2007179329.tif 000002
【特許請求の範囲】
【請求項１】
住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、前記各住所辞書に登録された住所名称の先頭文字が前記住所辞書毎にインデックス文字として登録された階層化住所辞書データを保持する階層化住所辞書データ保持手段と、
テキストデータの各文字を順次１文字ずつ前記各住所辞書のインデックス文字と照合するインデックス文字検索手段と、
前記インデックス文字に一致する文字に続く文字列を、前記住所辞書毎にインデックス文字に対応する前記住所名称と照合し、前記テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出する住所文字列検索手段とを備える
ことを特徴とする住所文字列取得システム。
【請求項２】
前記各住所辞書に前記各インデックス文字を共有する住所名称の中における最大文字列数が記録されており、前記文字列の長さが、始め前記最大文字列数に設定され、一致する住所名称がない場合には、漸次一文字ずつ最後尾の１文字を削除して前記文字列と前記住所名称との照合が行なわれることを特徴とする請求項１に記載の住所文字列取得システム。
【請求項３】
前記各住所辞書に前記各インデックス文字を共有する住所名称の中における最小文字列数が記録されており、前記文字列の最後尾の一文字の削除が前記文字列の長さが、前記最小文字列数に達するまで行われることを特徴とする請求項２に記載の住所文字列取得システム。
【請求項４】
前記階層が、少なくとも「市区町村」および「町大字」の階層を含み、少なくとも「市区町村」の階層の住所名称と「町大字」の階層の住所名称が並んでいるときに、前記住所文字列検索手段において前記文字列の組み合わせが住所文字列であると判定することを特徴とする請求項１に記載の住所文字列取得システム。
【請求項５】
前記住所文字列取得システムが更に、前記住所文字列から除外すべき例外的な住所名称の組み合わせパターンを判別する例外パターン判別手段を備え、前記住所文字列検索手段において抽出される前記住所文字列から、前記パターンに対応する組み合わせの住所文字列が削除されることを特徴とする請求項１に記載の住所文字列取得システム。
【請求項６】
住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、前記各住所辞書に登録された住所名称の先頭文字が前記住所辞書毎にインデックス文字として登録され、
テキストデータの各文字を順次１文字ずつ前記各住所辞書のインデックス文字と照合し、
前記インデックス文字に一致する文字に続く文字列を、前記住所辞書毎にインデックス文字に対応する前記住所名称と照合し、前記テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出する
ことを特徴とする住所文字列取得方法。
【請求項７】
前記テキストデータの１文字について前記各住所辞書のインデックス文字と照合し、かつ前記文字列と前記住所名称との照合を行なった後、次に照合を開始する文字へと対象文字を進めることを特徴とする請求項６に記載の住所文字列取得方法。
【請求項８】
前記テキストデータ全ての文字に対して前記インデックス文字との照合を行ない、その結果をインデックスフラグデータとして記録し、前記インデックスフラグデータに基づいて、前記文字列と前記住所名称との照合を行なうことを特徴とする請求項６に記載の住所文字列取得方法。
【請求項９】
住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、前記各住所辞書に登録された住所名称の先頭文字が前記住所辞書毎にインデックス文字として登録された階層化住所辞書データを参照して実行されるプログラムであって、
テキストデータの各文字を順次１文字ずつ前記各住所辞書のインデックス文字と照合する手順と、
前記インデックス文字に一致する文字に続く文字列を、前記住所辞書毎にインデックス文字に対応する前記住所名称と照合し、前記テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出する手順と
をコンピュータに実行させる住所文字列取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストデータの中から住所に関わる文字情報を抽出する住所文字列取得方法および住所文字列取得システムに関する。
【背景技術】
【０００２】
例えばウェブ上のデジタルコンテンツの中から住所情報を抽出するシステムが提案されている。従来このようなシステムとして、形態素解析を用いたものが知られている（特許文献１参照）。このシステムでは、対象となる文章を形態素に分解し、各形態素と地域名称の比較を行なうことにより各形態素を含む表現が正式な住所表現であるかを判定している。各形態素を含む表現が正式な住所表現であると判定された場合には、形態素と日本全国の住所表現との比較を順次行なって住所表現を抽出している。
【特許文献１】特開２０００−２５０９３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、形態素の分解処理および日本全国の住所表現との比較処理には著しい時間が掛かる。
【０００４】
本発明は、電子的なテキストデータの中から、より効率的に住所文字列を抽出することを目的としている。
【課題を解決するための手段】
【０００５】
本発明に係る住所文字列取得システムは、住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、各住所辞書に登録された住所名称の先頭文字が住所辞書毎にインデックス文字として登録された階層化住所辞書データを保持する階層化住所辞書データ保持手段と、テキストデータの各文字を順次１文字ずつ各住所辞書のインデックス文字と照合するインデックス文字検索手段と、インデックス文字に一致する文字に続く文字列を、住所辞書毎にインデックス文字に対応する住所名称と照合し、テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出する住所文字列検索手段とを備えたことを特徴としている。
【０００６】
各住所辞書に各インデックス文字を共有する住所名称の中における最大文字列数が記録されており、文字列の長さが、始め最大文字列数に設定され、一致する住所名称がない場合には、漸次一文字ずつ最後尾の１文字を削除して文字列と住所名称との照合が行なわれることが好ましい。
【０００７】
各住所辞書に各インデックス文字を共有する住所名称の中における最小文字列数が記録されており、文字列の最後尾の一文字の削除が文字列の長さが、最小文字列数に達するまで行われる。
【０００８】
階層が、少なくとも「市区町村」および「町大字」の階層を含み、少なくとも「市区町村」の階層の住所名称と「町大字」の階層の住所名称が並んでいるときに、住所文字列検索手段において文字列の組み合わせが住所文字列であると判定することが好ましい。
【０００９】
また、住所文字列取得システムは更に、住所文字列から除外すべき例外的な住所名称の組み合わせパターンを判別する例外パターン判別手段を備えることが好ましく、住所文字列検索手段において抽出される住所文字列から、このパターンに対応する組み合わせの住所文字列が削除されることが好ましい。
【００１０】
本発明の住所文字列取得方法は、住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、各住所辞書に登録された住所名称の先頭文字が住所辞書毎にインデックス文字として登録され、テキストデータの各文字を順次１文字ずつ各住所辞書のインデックス文字と照合し、インデックス文字に一致する文字に続く文字列を、住所辞書毎にインデックス文字に対応する住所名称と照合し、テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出することを特徴としている。
【００１１】
テキストデータの１文字について各住所辞書のインデックス文字と照合し、かつ文字列と住所名称との照合を行なった後、次に照合を開始する文字へと対象文字を進めることが好ましい。
【００１２】
また、例えばテキストデータ全ての文字に対してインデックス文字との照合を行ない、その結果をインデックスフラグデータとして記録し、インデックスフラグデータに基づいて、文字列と住所名称との照合を行なう。
【００１３】
本発明の住所文字列取得プログラムは、住所表記の階層構造に基づいて階層的に分類された住所名称が、階層毎に住所辞書として登録されるとともに、各住所辞書に登録された住所名称の先頭文字が住所辞書毎にインデックス文字として登録された階層化住所辞書データを参照して実行されるプログラムであって、テキストデータの各文字を順次１文字ずつ各住所辞書のインデックス文字と照合する手順と、インデックス文字に一致する文字に続く文字列を、住所辞書毎にインデックス文字に対応する住所名称と照合し、テキストデータの中から複数の階層の住所名称が並んで構成される住所文字列を抽出する手順とをコンピュータに実行させることを特徴としている。
【発明の効果】
【００１４】
以上のように、本発明によれば、電子的なテキストデータの中から、より効率的に住所文字列を抽出することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明の一実施形態である住所文字列取得システムが適用されたシステムの模式図である。
【００１６】
本実施形態の住所文字列取得システムは、コンピュータを用いたシステムにおいて用いられる。図１に示されるように、住所文字列取得システムは、一般的にはコンピュータ（ユーザＰＣ）１０がネットワーク１１を介して様々なウェブサーバ（ＷＥＢサーバ）１２、１３等に接続されている状態で用いられるが、例えば、コンピュータ１０をスタンドアローンで用いる場合にも適用できることは言うまでもない。
【００１７】
コンピュータ１０の記録媒体（例えば、ハードディスク、ＣＤ、ＭＯ、メモリカード等）１０Ｍには、本実施形態の住所文字列取得処理を実行するためのプログラムと、これに用いられる住所辞書データが保存されている。一方、ウェブサーバ１２、１３等には、テキストデータを含む様々なデジタルコンテンツが掲載されている。
【００１８】
なお、本実施形態の住所文字列取得システムは、各サイトのデジタルコンテンツ内のテキストデータや、コンピュータ１０の記録媒体１０Ｍ等に保存されたテキストデータ（文書ファイル、データベースなど）の中から、住所情報と考えられる文字列を検索・取得するものである。
【００１９】
図２〜図１０を参照して、第１実施形態の住所文字列取得処理について説明する。第１実施形態の住所文字列取得処理は、図２のフローチャートに示されるインデックス文字検索処理と図３、図４のフローチャートに示される住所文字列検索処理とから構成される。また、図５は、テキストデータとして、ニュースサイトの記事を例示したものであり、以下本実施形態の住所文字列検索処理における具体例を説明する場合には、このテキストデータ例に説明を行なう。
【００２０】
第１実施形態の住所文字列取得処理では、対象とするテキストデータに対して、まず図２に示されるインデックス文字検索処理が実行される。インデックス文字検索処理を含む住所文字列取得処理では、予め住所の文字列表現を住所階層毎に格納した住所辞書を参照して行なわれる。
【００２１】
図６は、住所辞書の階層構造の一例を示したものである。住所辞書では、住所文字列表現が都道府県、指定市郡、市区町村、町大字、丁目字（通り名、通称名）といった住所表記における階層構造に基づいて分類階層化される。すなわち、各階層に含まれる住所文字列表現は、各々都道府県辞書、指定市郡辞書、市区町村辞書、町大字辞書、丁目字辞書に登録されている。また各辞書には、各住所文字列の先頭文字がインデックス文字として記録されており、各インデックス文字に対しては、そのインデックス文字を共有する住所文字列群の中における最大の文字列数（文字列長最大値）と最小の文字列数（文字列長最小値）が記録されている。
【００２２】
例えば、図６における町大字辞書には、インデックス文字として、「搭」、「東」、「桃」、「湯」、「灯」などが登録されており、インデックス文字「東」の下には、先頭文字に「東」含む町大字名のリスト「東」、「東山」、「東川」、「東千種」、「東○○○」等が登録されている。また、文字列長最小値としては１文字からなる「東」に対応する１が設定され、文字列長最大値としては４文字からなる「東○○○」に対応する４が設定される。
【００２３】
インデックス文字検索処理では、対象となるテキストデータを１文字単位に分解し、１文字ずつ各階層の住所辞書のインデックス文字との照合が行なわれる。したがって、インデックス文字検索処理が実行されると、ステップＳ１００において、テキストデータの先頭から１文字が取得される。ステップＳ１０２では、各階層における住所辞書のインデックス文字と取得された１文字が一致するか否かが判定される。
【００２４】
ステップＳ１０２において、取得された１文字が何れかの階層の辞書のインデックス文字と一致したと判定されると、ステップＳ１０４において、その文字に対して一致した階層のインデックスフラグが立てられ、ステップＳ１０６が実行される。一方、ステップＳ１０２において、取得された１文字が何れの階層のインデックス文字とも一致しないと判定されると、処理はステップＳ１０４を実行することなくステップＳ１０６へと進む。
【００２５】
ステップＳ１０６では、対象としているテキストデータに対するインデックス文字の検索が終了したか否か、すなわち、現在判定を行なっている文字が文章の最後の文字であるか否かが判定される。ステップＳ１０６において、現在の文字がテキストデータの最後の文字でないと判定されると、処理はステップＳ１００に戻り、テキストデータから次ぎの文字が取得され、以下同様の処理が繰り返される。
【００２６】
以上のように、ステップＳ１００〜Ｓ１０６までの処理が、対象とするテキストデータの最後の文字まで行なわれると、本実施形態のインデックス文字検索処理は終了し、テキストデータの各文字に対して各階層に対応するフラグのＯＮ／ＯＦＦ（○／×）がインデックスフラグデータとして記録される。
【００２７】
図７に、図５のテキストデータにインデックス文字検索処理を実行したときの各階層のフラグの状態を示す。図７の例では、テキストデータの本文に対応する最初の行の一部のみが示されるが、文章中の他の箇所についても同様である。
【００２８】
図７に示されるように、抜粋された文字列には、都道府県の先頭文字に対応する文字は含まれないので、抜粋された文字列の何れの文字に対しても、都道府県の階層に対応するフラグは立てられない（図では×として示される）。一方、指定市郡の階層では、「名古屋」の「名」が指定市郡辞書のインデックス文字として存在するので、この文字に対応する指定市郡の階層のフラグが立てられる（図では○として示される）。
【００２９】
また、「名」の文字は、市区町村辞書、町大字辞書、丁目字辞書の各々においてもインデックス文字として登録されているため、それぞれの階層におけるフラグも立てられる。以下同様に、各文字に対して図７のようにその文字が各階層に登録されたインデックス文字と一致する場合には、重複してその階層のフラグが立てられる。
【００３０】
次ぎに、図２のインデックス文字検索処理に続いて実行される本実施形態の住所文字列検索処理について、図３、図４のフローチャートを参照して説明する。
【００３１】
住所文字列検索処理が実行されるとステップＳ２００で、インデックスフラグデータにおいてフラグが立てられた最初の文字のフラグデータが取得される。次ぎにステップＳ２０２において、都道府県辞書に対応するフラグが立てられているか否かが判定される。都道府県辞書に対応するフラグが立てられていると判定された場合には、ステップＳ２０４において、都道府県辞書において一致したインデックス文字に対応する名称リストが参照され、図１０を参照して後述される方法により、現在対象としている文字を起点とする文章（文字列）とこのインデックス文字に対応する名称リストとの照合が行なわれる。
【００３２】
なお、この照合において、現在対象としている文字を起点とする文章（文字列）に照合する名称が存在する場合には、照合を開始する文字が、フラグが立てられた最初の文字から、照合した名称の最後尾の文字の次ぎの文字へと変更される。また、照合する名称が存在しない場合には、照合開始位置はそのままとされる（フラグが立てられた最初の文字）。
【００３３】
一方、ステップＳ２０２において、都道府県辞書に対応するフラグが立てられていないと判定された場合には、ステップＳ２０６が直ちに実行される。
【００３４】
例えば、図７に示される例では、最初にフラグが立てられている文字は「名」であるが、この文字の「都道府県」の階層のフラグは立てられていないので、照合位置をそのままに、ステップＳ２０６が実行される。
【００３５】
ステップＳ２０６では、対象となっている文字のフラグデータにおいて、指定市郡辞書に対応するフラグが立てられているか否かが判定される。指定市郡辞書に対応するフラグが立てられていると判定された場合には、ステップＳ２０８において、指定市郡辞書において一致したインデックス文字に対応する名称リストが参照され、ステップＳ２０４のときと同様に、現在対象としている文字を起点とする文章（文字列）とこのインデックス文字に対応する名称リストとの照合が行なわれる。
【００３６】
なお、この照合において、現在対象としている文字を起点とする文章（文字列）に照合する名称が存在する場合には、照合を開始する文字（位置）が、この照合が開始された文字から、照合した名称の最後尾の文字の次ぎの文字へと変更される。また、照合する名称が存在しない場合には、照合開始位置はそのままとされる。
【００３７】
一方、ステップＳ２０６において、指定市郡辞書に対応するフラグが立てられていないと判定された場合には、ステップＳ２１０が直ちに実行される。
【００３８】
例えば、図７に示される例では、「指定市郡」の階層のフラグが立てられているので、インデックス文字「名」に対応する指定市郡辞書の名称リストが参照される。この名称リストには「名古屋市」の名称が登録されており、その文字数が４であることから、照合位置が文字「名」から４文字進められ、文字「港」の位置にまで移動する。
【００３９】
ステップＳ２１０では、対象となっている文字のフラグデータにおいて、市区町村辞書に対応するフラグが立てられているか否かが判定される。市区町村辞書に対応するフラグが立てられていると判定された場合には、ステップＳ２１２において、市区町村辞書において一致したインデックス文字に対応する名称リストが参照され、ステップＳ２０４のときと同様に、現在対象としている文字を起点とする文章（文字列）とこのインデックス文字に対応する名称リストとの照合が行なわれる。
【００４０】
なお、この照合において、現在対象としている文字を起点とする文章（文字列）に照合する名称が存在する場合には、照合を開始する文字（位置）が、この照合が開始された文字から、照合した名称の最後尾の文字の次ぎの文字へと変更される。また、照合する名称が存在しない場合には、照合開始位置はそのままとされる。
【００４１】
一方、ステップＳ２１０において、市区町村辞書に対応するフラグが立てられていないと判定された場合には、ステップＳ２１４が直ちに実行される。
【００４２】
例えば図７において、照合位置「港」では「市区町村」の階層のフラグが立てられているので、インデックス文字「港」に対応する市区町村辞書の名称リストが参照される。この名称リストには「港区」の名称が登録されており、その文字数が２であることから、照合位置が文字「名」から２文字進められ、文字「野」の位置にまで移動する。
【００４３】
ステップＳ２１４では、対象となっている文字のフラグデータにおいて、町大字辞書に対応するフラグが立てられているか否かが判定される。町大字辞書に対応するフラグが立てられていると判定された場合には、ステップＳ２１６において、町大字辞書において一致したインデックス文字に対応する名称リストが参照され、ステップＳ２０４のときと同様に、現在対象としている文字を起点とする文章（文字列）とこのインデックス文字に対応する名称リストとの照合が行なわれる。
【００４４】
なお、この照合において、現在対象としている文字を起点とする文章（文字列）に照合する名称が存在する場合には、照合を開始する文字（位置）が、この照合が開始された文字から、照合した名称の最後尾の文字の次ぎの文字へと変更される。また、照合する名称が存在しない場合には、照合開始位置はそのままとされる。
【００４５】
一方、ステップＳ２１４において、町大字辞書に対応するフラグが立てられていないと判定された場合には、ステップＳ２１８が直ちに実行される。
【００４６】
例えば図７において、照合位置「野」では「町大字」の階層のフラグが立てられているので、インデックス文字「野」に対応する町大字辞書の名称リストが参照される。この名称リストには「野跡」の名称が登録されており、その文字数が２であることから、照合位置が文字「名」から２文字進められ、文字「１」の位置にまで移動する。
【００４７】
ステップＳ２１８では、対象となっている文字のフラグデータにおいて、丁目辞書に対応するフラグが立てられているか否かが判定される。丁目辞書に対応するフラグが立てられていると判定された場合には、ステップＳ２２０において、丁目辞書において一致したインデックス文字に対応する名称リストが参照され、ステップＳ２０４のときと同様に、現在対象としている文字を起点とする文章（文字列）とこのインデックス文字に対応する名称リストとの照合が行なわれる。
【００４８】
なお、この照合において、現在対象としている文字を起点とする文章（文字列）に照合する名称が存在する場合には、照合を開始する文字（位置）が、この照合が開始された文字から、照合した名称の最後尾の文字の次ぎの文字へと変更される。また、照合する名称が存在しない場合には、照合開始位置はそのままとされる。
【００４９】
一方、ステップＳ２１８において、丁目辞書に対応するフラグが立てられていないと判定された場合には、ステップＳ２２２が直ちに実行される。
【００５０】
例えば図７において、照合位置「１」では「丁目字」の階層のフラグが立てられているので、インデックス文字「１」に対応する丁目字辞書の名称リストが参照される。この名称リストには「１」の名称が登録されておらず（「１丁目」は登録されている）、照合位置が文字「１」のままステップＳ２２２の処理に移る。なお、この例のように数字の後に「丁目」と続かない場合や「２丁目３４番地」等の表記が「２−３４」などと記載されている場合には、次に説明する番地号抽出処理において処理される。フラグ
【００５１】
ステップＳ２２２では、番地号抽出処理が実行され、住所辞書に登録された文字列に続く番地や号（場合によっては丁目数字）が取得される。すなわち、番地号抽出処理では、丁目字の階層まで照合して取得した文字列に続く文字を照合開始位置（図７の「１」）としそこから次ぎのインデックス文字の位置までの文字列を取得し、文字列の先頭からスペース、タグなどを削除して最初の文字が数字であった場合に、その後に続く数字および記号、あるいは予め登録した「番地」、「号」などの定型単語で記述された文字列部分を抽出し、番地号の文字列とする。図９に、図７の例に対応させた番地号の取得例を示す。
【００５２】
次ぎにステップＳ２２４において、抽出住所記録処理が行なわれる。抽出住所記録処理では、ステップＳ２００〜ステップＳ２２２で得られた文字列のうち、最低で「市区町村＋町大字」、最大で「都道府県＋市区町村＋町大字＋町丁目（通り名、通称名）＋番地号」の並びでの階層の組み合わせの文字列が得られた場合にのみ、得られた文字列全体を住所文字列としてそのテキストデータ中における位置および住所文字列の長さが記録される。図８は町丁目階層まで照合した結果抽出された住所文字列の階層の組み合わせを示し、図９は番地号抽出処理まで行なった階層の組み合わせを示している。図９は明確に町丁目と番地号が区別できない場合の例で、「丁目数字・番地号」と一括りにしている。
【００５３】
ステップＳ２２６では、照合開始位置がテキストデータ（文章）の最後であるか否かが判定される。テキストデータの最後でない場合には、照合位置がインデックスフラグデータにおいて次ぎにフラグが立てられた文字（位置）にまで移動され、その文字のフラグデータが取得され、ステップＳ２０２以下の処理が繰り返される。一方、現照合位置がテキストデータの最後の文字であると判定された場合、あるいは次ぎにフラグが立てられた文字がない場合には、この住所文字列検索処理は終了し、本実施形態の住所文字列取得処理は終了する。
【００５４】
以上のように、本実施形態の住所文字列取得処理によれば、テキストデータから文字列情報と考えられる文字列が抽出され、その位置が記録（例えばメモリにスタック）される。なお、予め住所文字列から除外すべき例外的な住所要素（名称）の組み合わせパターンを抽出しておき、そのパターンの正規表現（例えば「市」＋「長」、「区」＋「長」、「町」＋「長」、「村」＋「長」で終わる表現）を作成し、これに基づくパターンマッチングを実施し、これらに一致した住所文字列をスタックから削除し、住所文字列の抽出精度を向上することも可能である。
【００５５】
次ぎに、図１０のフローチャートを参照して、図３、４の住所文字列検索処理のステップＳ２０４、２０８、２１２、２１６、２２０において実行される各階層の住所辞書との照合処理の詳細について説明する。
【００５６】
ステップＳ３００では、該当する階層の住所辞書のインデックス文字に対応する名称リストにおける最小文字数（文字列長最小値）および最大文字数（文字列長最大値）が取得される。ステップＳ３０２では、照合開始位置から最長文字数分の文字列が取得される。
【００５７】
ステップＳ３０４では、取得された文字列が、対象となっている名称リストの何れかの名称と一致するか否かが判定される。取得された文字列と一致する名称が存在しない場合は、ステップＳ３０６において、取得された文字列の最後尾の一文字が削除される。一方、取得された文字列に一致する名称が存在した場合には、ステップＳ３１２において、取得文字列の登録が行なわれ、処理はステップＳ３１０に進む。
【００５８】
なお、このときの辞書の階層情報、例えば「都道府県」や「市区町村」等も同時に記録され、図４のステップＳ２２４の抽出住所記録処理における階層の組み合わせの判定に用いられる。
【００５９】
ステップＳ３０８では、文字列の長さが最小文字数よりも小さいか否かが判定される。文字列の長さが最小文字数以上の場合には、処理はステップＳ３０４に戻り以下同様の処理が繰り返される。一方、文字列の長さが最小文字数よりも小さいときには、ステップＳ３１０へ進む。
【００６０】
ステップＳ３１０では、次ぎの照合開始文字位置の設定が行なわれる。すなわち、文字列登録が行なわれた場合には、照合位置は、登録された文字列の次ぎの文字へと変更され、文字登録が行なわれなかった場合には、照合位置は変更されない。以上により、各階層の住所辞書との照合処理は終了する。
【００６１】
以上のように、第１実施形態によれば、マークアップ言語などを用いて予め住所文字列にタグを付与する必要がなく、任意の形式のテキストデータ、例えばＨＴＭＬ、ＸＭＬ書式や様々なワープロ文書、データベースのテキストから、形式を問わず住所文字列を抽出することができる。
【００６２】
また、形態素解析やパターンマッチングを用いることがないので、高速かつ高い精度で住所文字列抽出を行なうことができ、ＷＥＢサービスを利用している場合などにもリアルタイムで対応することが可能である。
【００６３】
また、文字列との照合は階層毎に行なわれ、住所文字列情報であるか否かの判定は、各階層の要素（名称）の組み合わせで判定されるため、誤記表記等が存在する場合にも、これらの誤記を吸収して抽出することができる。すなわち、各階層の要素が一般的な住所文字列で構成されていれば誤記を吸収することができる。例えば実際には存在しない「三重県いなべ市安町南金井」のように住所が誤表記されていても、「京都府亀山市安町」という住所が実在するため、このような誤表記の住所も住所文字列として抽出することが可能である。
【００６４】
また、本実施形態では、文字列との照合が、名称リストの最大文字数に対応する文字列をまず取得・照合し、その後漸次文字数を最小文字数まで減らして照合を行なっているので、長い文字列中に名称リストに登録されている短い文字列が含まれる場合にも、誤った抽出を行なうことを防止することができる。ただし、本発明は文字列の照合方向を限定するものではなく、例えば、名称リストに登録された文字列が、より長い登録文字列に含まれる場合の例外処理を適宜設けることにより、漸次文字数を増加させる方向で照合を行なうことも可能である。
【００６５】
次ぎに、図１１、図１２のフローチャートを参照して、本発明が適用された第２実施形態の住所文字列取得処理について説明する。第１実施形態では、対象テキストデータ全体に対してインデックス文字検索処理を施した後に、住所文字列検索処理を行なったが、第２実施形態では、インデックス文字検索処理の中で住所文字列検索処理が行なわれる。
【００６６】
ステップＳ４００では、図２（インデックス文字検索処理）のステップＳ１００と同様に、対象とするテキストデータ（文章）から照合すべき文字が１文字取得される。ステップＳ４０２では、対象文字（取得文字）と都道府県辞書のインデックス文字の照合が行われ、ステップＳ４０４において、この照合において一致したインデックス文字が存在したか否かが判定される。
【００６７】
ステップＳ４０４において対象文字に一致するインデックス文字が存在しないと判定された場合には、ステップＳ４０６において、対象文字と指定市郡辞書のインデックス文字の照合が行なわれる。一方、ステップＳ４０４において対象文字に一致するインデックス文字が存在すると判定されると、ステップＳ４２８において都道府県辞書の一致した文字の名称リストと対象文字を基点とするテキストデータ（文章）との照合が行なわれ、その後にステップＳ４０６が実行される。なお、ステップＳ４２８は、図３（住所文字列検索処理）のステップＳ２０４と同様の処理であり、その処理には図１０の各住所辞書との照合処理が用いられる。
【００６８】
ステップＳ４０６における対象文字と指定市郡辞書のインデックス文字との照合が行われると、ステップＳ４０８において、この照合において一致したインデックス文字が存在したか否かが判定される。
【００６９】
ステップＳ４０８おいて対象文字に一致するインデックス文字が存在しないと判定された場合には、ステップＳ４１０において、対象文字と市区町村辞書のインデックス文字の照合が行なわれる。一方、ステップＳ４０８において対象文字に一致するインデックス文字が存在すると判定されると、ステップＳ４３０において指定市郡辞書の一致した文字の名称リストと対象文字を基点とするテキストデータ（文章）との照合が行なわれ（第１実施形態のステップＳ２０４、図１０に対応）、その後にステップＳ４１０が実行される。
【００７０】
ステップＳ４１０における対象文字と市区町村辞書のインデックス文字との照合が行われると、ステップＳ４１２において、この照合において一致したインデックス文字が存在したか否かが判定される。
【００７１】
ステップＳ４１２において対象文字に一致するインデックス文字が存在しないと判定された場合には、ステップＳ４１４において、対象文字と町大字辞書のインデックス文字の照合が行なわれる。一方、ステップＳ４１２において対象文字に一致するインデックス文字が存在すると判定されると、ステップＳ４３２において市区町村辞書の一致した文字の名称リストと対象文字を基点とするテキストデータ（文章）との照合が行なわれ（第１実施形態のステップＳ２０４、図１０に対応）、その後にステップＳ４１４が実行される。
【００７２】
ステップＳ４１４における対象文字と町大字辞書のインデックス文字との照合が行われると、ステップＳ４１６において、この照合において一致したインデックス文字が存在したか否かが判定される。
【００７３】
ステップＳ４１６において対象文字に一致するインデックス文字が存在しないと判定された場合には、ステップＳ４１８において、対象文字と丁目字辞書のインデックス文字の照合が行なわれる。一方、ステップＳ４１６において対象文字に一致するインデックス文字が存在すると判定されると、ステップＳ４３４において町大字辞書の一致した文字の名称リストと対象文字を基点とするテキストデータ（文章）との照合が行なわれ（第１実施形態のステップＳ２０４、図１０に対応）、その後にステップＳ４１８が実行される。
【００７４】
ステップＳ４１８における対象文字と丁目字辞書のインデックス文字との照合が行われると、ステップＳ４２０において、この照合において一致したインデックス文字が存在したか否かが判定される。ステップＳ４２０において対象文字に一致するインデックス文字が存在しないと判定された場合には、ステップＳ４２２において、対象文字が一文字進められ、ステップＳ４２４で、第１実施形態の図４のステップＳ２２４と同様に、抽出住所記録処理が行われる。
【００７５】
一方、ステップＳ４２０において対象文字に一致するインデックス文字が存在すると判定されると、ステップＳ４３６において丁目字辞書の一致した文字の名称リストと対象文字を基点とするテキストデータ（文章）との照合が行なわれ（第１実施形態のステップＳ２０４、図１０に対応）、ステップＳ４３８において、図４のステップＳ２２２と同様な番地号抽出処理が実行された後、ステップＳ４２４の抽出住所記録処理が実行される。
【００７６】
ステップＳ４２６では、対象文字がテキストデータ（文章）の最後の文字であるか否かが判定される。テキストデータの最後の文字でない場合には、処理はステップＳ４０２に戻り以下同様の処理が繰り返される。一方、対象文字がテキストデータの最後の文字であると判定された場合には、住所文字列検索処理は終了し、第２実施形態の住所文字列取得処理は終了する。
【００７７】
以上のように、第２実施形態においても第１実施形態と同様の効果を得ることができる。また、第２実施形態では、インデックス文字検索処理の中で住所文字列検索処理が行なわれ、文章の先頭から順次各々の処理が行われるため、インデックス文字との照合処理の重複を避けることができ、より処理効率を高めることができる。
【００７８】
なお、上記各実施形態では、住所文字列取得処理を実行するためのプログラムと、これに用いられる住所辞書データが、ユーザコンピュータ側に置かれていたが、これらをウェブサーバ側に置きＣＧＩなど介して利用することも可能である。
【００７９】
また、上記各実施形態は、例えばジオコーダーと組み合わせて、例えば住居クローラーや文章中の住所情報に対する位置座標によるインデクシング、住所階層によるカテゴライズ、ＷＥＢコンテンツ（ニュース、ブログ、店舗紹介ページなど）のＰＯＩ化、閲覧しているＷＥＢサイト内の住所文字列にマウスオーバーすると該当地図がポップアップする簡易地図ビューアーや、住所文字列を含むＷＥＢサイトのＵＲＬを引数で渡すと、該当住所の地図へのリンクＵＲＬを生成して返すＷＥＢサービス等に用いることができる。
【００８０】
また、上記各実施形態は、例えば住所文字とそれ以外の文字列が混在しているドキュメントに対して、住所文字情報を抽出して書式を正規化する住所フォーマッティングツールとに応用することも可能である。
【００８１】
また、任意のドキュメントに住所文字列が含まれていると個人情報の可能性が高いため、上記各実施形態は、メール、ワープロ文章、データベースなどに含まれるテキストから、文字情報を検出し、これを個人情報と推定する個人情報チェックツールとして用いることもできる。
【図面の簡単な説明】
【００８２】
【図１】本発明の一実施形態である住所文字列取得システムが適用されたシステムの模式図である。
【図２】第１実施形態のインデックス文字検索処理のフローチャートである。
【図３】第１実施形態の住所文字列検索処理の前半部のフローチャートである。
【図４】図３の住所文字列検索処理の後半部のフローチャートである。
【図５】テキストデータ（文章）の一例である。
【図６】住所辞書の階層構造の一例を示した模式図である。
【図７】図５のテキストデータにインデックス文字検索処理を実行したときの各階層のフラグの状態を示す。
【図８】図５のテキストデータに対する各階層のフラグの状態と、このときに図４の抽出住所記録処理で得られる階層の組み合わせの状態を示す。
【図９】図７に示される文字列に対応させた番地号の取得例を示す。
【図１０】インデックス文字に一致した対象文字を基点とする文字列と、各階層に対応する住所辞書との照合処理のフローチャートである。
【図１１】第２実施形態の住所文字列取得処理のフローチャートの前半部である。
【図１２】図１１の住所文字列取得処理のフローチャートの後半部である。
【符号の説明】
【００８３】
１０  コンピュータ
１０Ｍ  記録媒体
１１  ネットワーク
１２、１３  ウェブサーバ
【図１】
2007179329.tif 000003
【図２】
2007179329.tif 000004
【図３】
2007179329.tif 000005
【図４】
2007179329.tif 000006
【図５】
2007179329.tif 000007
【図６】
2007179329.tif 000008
【図７】
2007179329.tif 000009
【図８】
2007179329.tif 000010
【図９】
2007179329.tif 000011
【図１０】
2007179329.tif 000012
【図１１】
2007179329.tif 000013
【図１２】
2007179329.tif 000014
【手続補正書】
【提出日】平成18年1月5日(2006.1.5)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１２
【補正方法】変更
【補正の内容】
【図１２】
2007179329.tif 000015