激ヤバだった日本の住所正規化に終止符が打たれたかもしれない:Geoloniaの最新オープンソース住所正規化エンジンが最強になった

データ

何らかのデータ、特に法人情報や位置情報を扱う上で外せない住所データについて、ついに終止符が打たれたかもしれないので、これは超ビッグニュースだということで記事として取り上げます。

概要

住所正規化とは

住所正規化とは、簡単にいえば住所データの標準化のことです。

特にデータベースに落とし込むときなどに必要になり、技術者・非技術者問わず苦しんだという方も多いのではないでしょうか。

住所正規化の例

標準化と言われてもピンとこない方もいらっしゃると思いますので、一応雰囲気だけ示しておきます。
本格的な話が知りたい方は以下のリンクからどうぞ。

https://zenn.dev/sikkim/articles/bc86fbcac3a9fd

例えば、以下の住所(国会議事堂の住所)をデータベースに取り込むとします。

  • 東京都千代田区永田町1-7-1

DB側では、都道府県別・市区町村別での検索等を想定して、住所単一ではなく以下のようにフィールドを持っているとしましょう。

  • 都道府県
  • 市区町村
  • 町名
  • 丁目
  • 番地以下

実務的にはデータの持ち方はケースバイケースですが、よくある持ち方だと思います。

ここに先ほどのデータを入れるとこんな感じになりそうです。

都道府県市区町村町名丁目番地以下
東京都千代田区永田町7-1

めでたしめでたし、と言いたいところですが、話はこんな単純ではありません。

もしも住所が「東京都千代田区永田町一丁目7番1号」と表記されていたらどうでしょうか。

都道府県市区町村町名丁目番地以下
東京都千代田区永田町一丁目7番1号

先ほどとデータが変わってしまいました。
「なあんだ、ただ表記が変わっただけじゃないか」と思われる方も多いかもしれませんが、これ、このDBを使って開発する人からすればたまったものではありません。

もっと深く見ていきましょう。

誰かが「列名ノ通リニ入力シマシタ!」と、以下のようにデータを入力したらどうでしょう。

都道府県市区町村町名丁目番地以下
東京千代田永田町7番 1号

もはや都道府県名や市区町村名が先ほどと一致していません。

まあ、これくらいならなんとかできるという方も多いと思いますが、以下の住所ならいかがでしょうか。

  • 京都府京都市中京区寺町通御池上る上本能寺前町488番地
  • 京都府京都市東山区大和大路通り正面下る大和大路1丁目533-3

1つ目は京都市役所の住所ですが、丁目がないほか町名がかなり長いです。
また、2つ目は京都特有の通り名(「まるたけえびす」といえばピンとくる方も多いでしょうか)が含まれています。「大和大路通り正面下る」の部分ですね。京都に住んだことがない人なら誰もが一度は「通りって何??」「下るって何??」と思ったことでしょう。

この他にも問題となる住所は山程あるのですが、キリがないので割愛します。
なんとなく、「なんかヤバそう」という雰囲気だけ伝わっていればOKです。

Geolonia最新バージョン

Geoloniaは住所正規化界隈ではかなり有名な企業で、これまでも「おぉっ!」と唸る素晴らしい仕組みをオープンソースで提供してくださっていましたが、今回それがさらにパワーアップしました。

以下が出力形式の比較になります。

バージョン 3 のレスポンス

{
  "pref": "北海道", // 都道府県名
  "city": "札幌市西区", // 市区町村名
  "town": "二十四軒二条二丁目", // 大字・丁目名
  "addr": "3-3", // 街区符号・住居符号または地番
  "level": 8, // 正規化レベル
  "point": {
    "lat": 43.074206115, // 緯度
    "lng": 141.315540696, // 経度
    "level": 8 // 位置情報データレベル
  },
  "other": "" // 正規化できなかった文字列
}

以前のバージョンのレスポンス

{
  "pref": "北海道", // 都道府県名
  "city": "札幌市西区", // 市区町村名
  "town": "二十四軒二条二丁目", // 大字・丁目名
  "addr": "3-3", // 正規化できなかった文字列
  "level": 3, // 正規化レベル
  "lat": 43.074273, // 緯度
  "lng": 141.315099 // 経度
}

パワーアップした点は以下の2点です。

  • 番地号まで正規化されるようになった
  • 位置情報の構造が変更された

元もだいぶ凄いのですが、最新版はこれ以上求めるものがないくらいのクオリティに仕上がっています。

使い方やより具体的な内容は公式から説明がありますので、ぜひ見てみてください。

以上です。

【Reference】

https://blog.geolonia.com/2024/10/10/geolonia-address-normalization-engine-update

https://github.com/geolonia/normalize-japanese-addresses

スポンサーリンク

データ

Posted by このめ