1 of 16

OpenAI API を使って�会話形式の入力文から、

ジオコーディングしてみた

大橋直記

2023/09/18 @ FOSS4G 2023 Japan@FUKUI LT

2 of 16

大橋 直記(おおはし なおき)

株式会社 Geolonia エンジニア

地図と位置情報の会社でエンジニアをしています。フロンエンド、住所正規化サービス「クイック住所変換」立ち上げ担当

GitHub: https://github.com/naogify�Twitter: https://twitter.com/naogify

3 of 16

ChatGeoPT

OpenAI API を使い、会話形式の入力文からジオコーディングをする PoC。( Author: Ben Strong)

日本に絞って、精度の改善に取り組んでみました

4 of 16

ジオコーディングとは

住所や地名などテキスト情報を、地理的座標(緯度経度)に変換する�こと

東京都港区芝公園4丁目2−8 → 35.65872, 139.74539

5 of 16

処理の流れ

会話形式の文章�↓�OpenAI API Overpass API のクエリを生成�↓�OpenStreetMap から位置情報を取得 �↓� 位置情報データを地図上に表示

6 of 16

OpenStreetMapとOverpass API

・OpenStreetMap � 世界中の地理情報を共有・編集できるオープンソースの地図プロ� ジェクトです。無料で利用・改変・配布できる地図データベース。��・Overpass API� OpenStreetMap (OSM) の地理空間データに対してクエリを実行する� ためのAPI。

7 of 16

ただ、ChatGPTは位置情報が苦手

京都府京田辺市のレストランを教えてと頼むと、東京都文京区付近の範囲を返す

8 of 16

外部データと組み合わせれば精度を上げる事ができるのでは?

国土数値情報の行政区域データ

国土数値情報行政区域データ

9 of 16

デモ

10 of 16

範囲に関しては精度が上がった!

11 of 16

コードの解説

12 of 16

13 of 16

プロンプト

バウンディングボックスを渡す部分以外は、元のコードを使用

14 of 16

課題

・不正確なクエリを生成する場合がある

・OpenStreetMap の性質上、複数のタグが混在している

・そもそも OpenStreetMap にデータがない場合がある

・現時点では、市区町名の入力が必須��・堺市堺区など、区の入力が必須

15 of 16

PRを作成

16 of 16

Thank you!

©️GSI Japan | ©️Geolonia | ©️OpenStreetMap