📑

デジタル庁のアドレス・ベース・レジストリを用いた住所正規化を試す

に公開

はじめに

この記事では、デジタル庁のアドレス・ベース・レジストリを用いた住所正規化を試す。

入力した住所文字列とデジタル庁が整備するアドレス・ベース・レジストリを突合し、正規化された住所文字列・町字 ID ・緯度経度等を出力するジオコーダーです。

日本国内の住所表記を分析し、揺れを吸収して、階層に合わせて正規化した結果を出力してくれます。
https://github.com/digital-go-jp/abr-geocoder/blob/main/README.ja.md

以下にて、レジストリカタログとしてデータセットが公開されています。
https://catalog.registries.digital.go.jp/rc/dataset/

住所正規化を試す

インストール

早速、試してみましょう。
npmコマンドでインストールします。

npm install @digital-go-jp/abr-geocoder
npm link
abrg

まず、npmのパスが通っておらず、abrgコマンドが実行できなかったので、シェルに追加しました。

% echo 'export PATH="$PATH:$(npm config get prefix)/bin"' >> ~/.zshrc
% source ~/.zshrc
% which abrg
/usr/local/Cellar/node/23.7.0/bin/abrg

アドレス・ベース・レジストリからジオコーディングに必要なデータセットをダウンロード

abrg downloadコマンドを使って、アドレス・ベース・レジストリからジオコーディングに必要なデータセットをダウンロードします。
SQLiteでデータベースが構築されます。

% abrg download

ダウンロードに時間がかかるので、早く試したい場合は、地域を指定してダウンロードすると早くと良さそうです。

# 東京都のデータをダウンロードする
% abrg download -c 130001

ジオコーダをREST APIサーバとして起動する

ジオコーダをREST APIサーバとして起動して、curlしてみましょう。

% abrg serve start
api server: at 0.0.0.0:3000
command server: at localhost:8143

別ターミナルからcurlします。

% curl http://localhost:3000/geocode?address=東京都千代田区紀尾井町1-3
zsh: no matches found: http://localhost:3000/geocode?address=東京都千代田区紀尾井町1-3

# zshだとうまくいかなかったので、以下で実施
% curl 'http://localhost:3000/geocode?address=東京都千代田区紀尾井町1-3' 

応答結果を確認します。

[{"query":{"input":"東京都千代田区紀尾井町1-3"},"result":{"output":"東京都千代田区紀尾井町1-3","others":[],"score":1,"match_level":"residential_detail","coordinate_level":"residential_detail","lat":35.679107172,"lon":139.736394597,"lg_code":"131016","machiaza_id":"0056000","rsdt_addr_flg":1,"blk_id":"001","rsdt_id":"003","rsdt2_id":null,"prc_id":null,"pref":"東京都","county":null,"city":"千代田区","ward":null,"oaza_cho":"紀尾井町","chome":null,"koaza":null,"blk_num":"1","rsdt_num":"3","rsdt_num2":null,"prc_num1":null,"prc_num2":null,"prc_num3":null}}]

「東京都」を除くとどうでしょうか。

% curl 'http://localhost:3000/geocode?address=千代田区紀尾井町1-3' 

outputに東京都が補完されています。

[{"query":{"input":"千代田区紀尾井町1-3"},"result":{"output":"東京都千代田区紀尾井町1-3","others":[],"score":0.79,"match_level":"residential_detail","coordinate_level":"residential_detail","lat":35.679107172,"lon":139.736394597,"lg_code":"131016","machiaza_id":"0056000","rsdt_addr_flg":1,"blk_id":"001","rsdt_id":"003","rsdt2_id":null,"prc_id":null,"pref":"東京都","county":null,"city":"千代田区","ward":null,"oaza_cho":"紀尾井町","chome":null,"koaza":null,"blk_num":"1","rsdt_num":"3","rsdt_num2":null,"prc_num1":null,"prc_num2":null,"prc_num3":null}}]

デジタル庁 アドレス・ベース・レジストリ ジオコーダー(Webアプリ版)も用意されておりWebブラウザからも試すことができます。
https://github.com/digital-go-jp/abr-geocoder-web

おわりに

この記事では、デジタル庁のアドレス・ベース・レジストリを用いた住所正規化を試しました。
簡単にインストールでき、住所正規化を色々試すことができます。

最後までお読み頂きありがとうございました。本記事が参考になれば、幸いです。

GitHubで編集を提案

Discussion