見出し画像

【AI活用の失敗例】ChatGPTでの地理的情報の取得(ジオコーディング)はむずかしい!

目黒区 データ活用チームの武山です!

生成AI:ChatGPTを活用して試行錯誤していると、当然ですがうまく行かないこともあります。

データ活用チームのメンバーも全員がAIに関する知見を持っているわけではないので、どちらかというと成功事例よりも失敗した事例のほうが積み上がっていきます。

今日は、そんな失敗事例(途中までは成功)を紹介します。

解決方法をお持ちの方がいたらぜひシェアしてくださいね!


1.住所(所在地)データの整理

今回は、目黒区にある公園の所在地データを整備していきます。

メール本文にベタ打ちで、「ここが今月の重点清掃場所だよ」と、公園のリストが送られてきたと思ってください。

【目黒区の公園リスト】

目黒区駒場一丁目20番9号(松見坂公園)
目黒区駒場二丁目19番70号(駒場野公園)
目黒区駒場三丁目2番20号(駒場三丁目もちの木公園)
目黒区駒場四丁目3番55号(駒場公園)
目黒区青葉台二丁目10番28号(西郷山公園)
目黒区青葉台二丁目11番25号(菅刈公園)

https://www.city.meguro.tokyo.jp/shisetsu/shisetsu/koen/index.html

まず、所在地と公園名称がくっついてしまっているので、それを分けましょう。

次のリストについて、住所と、()の中の文字を分けてください。
表形式でください。

###リスト
目黒区駒場一丁目20番9号(松見坂公園)
目黒区駒場二丁目19番70号(駒場野公園)
目黒区駒場三丁目2番20号(駒場三丁目もちの木公園)
目黒区駒場四丁目3番55号(駒場公園)
目黒区青葉台二丁目10番28号(西郷山公園)
目黒区青葉台二丁目11番25号(菅刈公園)

無事、データが分割されたうえ、表形式で出力されました。

| 住所 | 公園名 | 
| 目黒区駒場一丁目20番9号 | 松見坂公園 |
| 目黒区駒場二丁目19番70号 | 駒場野公園 |
| 目黒区駒場三丁目2番20号 | 駒場三丁目もちの木公園 |
| 目黒区駒場四丁目3番55号 | 駒場公園 |
| 目黒区青葉台二丁目10番28号 | 西郷山公園 |
| 目黒区青葉台二丁目11番25号 | 菅刈公園 |

ChatGPT

さらに、●丁目以降を「1-1-1」のような簡易表記に修正してみましょう。

●丁目以降を「1-1-1」の形式に修正して

シンプルにお願いすると、すぐに結果が出力されました。

| 住所 | 公園名 | 
| 目黒区駒場1-20-9 | 松見坂公園 |
| 目黒区駒場2-19-70 | 駒場野公園 |
| 目黒区駒場3-2-20 | 駒場三丁目もちの木公園 |
| 目黒区駒場4-3-55 | 駒場公園 |
| 目黒区青葉台2-10-28 | 西郷山公園 |
| 目黒区青葉台2-11-25 | 菅刈公園 |

ChatGPT

わかりやすくExcelにコピペしてみました。

ここまでは良いですね!

2.所在地データからの緯度経度データ取得


そしてここから、リストの公園がある場所を、TableauのようなBIツールを使って、地図データ上にプロットしたいと考えたとします。

そのためには、緯度経度データが必要となります。住所や施設名称から地理的データを付加する、「ジオコーディング」という作業です。

当然、GoogleMapから1箇所ずつ緯度経度データをコピペするよりも、「AIに緯度経度データを付加してもらえれば楽なのでは?」と考えますので、トライしてみましょう。

項目に「緯度」「経度」を追加してください。

データ自体はすぐさま出力されたのですが、念のため緯度経度をGoogleMapで確認してみると…

まったく違う場所の緯度経度データが生成されていました。

【所在地とまったく一致しない緯度経度データ】
===============
| 住所 | 公園名 | 緯度 | 経度 |
| 目黒区駒場1-20-9 | 松見坂公園 |35.616395 | 139.676721
| 目黒区駒場2-19-70 | 駒場野公園 |35.617773 | 139.676453
| 目黒区駒場3-2-20 | 駒場三丁目もちの木公園 |35.626363 | 139.633741
| 目黒区駒場4-3-55 | 駒場公園 |35.619975 | 139.665247
| 目黒区青葉台2-10-28 | 西郷山公園 |35.628905 | 139.685256
| 目黒区青葉台2-11-25 | 菅刈公園 |35.637488 | 139.690597
===============
※実際に出力された内容そのままではなく、駅やバス停などの緯度経度データに差し替えています。

ChatGPT

公園の近しい場所を示しているデータもあるのですが、ほとんどが全く関係のない場所の緯度経度データが生成されています。

調べてみたところ、ChatGPTを始めとする自然言語を学習したタイプの生成AIは、「住所や施設名称に関連する地理的情報をなんとなく覚えている」状態であることがわかりました。

この、「なんとなく」の範囲にものすごい差があるようです。
実際、目黒区内で間違えるだけではなく、世田谷区や品川区の緯度経度が出力されたりしました。

ちなみに、公園の名前だけでも試してみました。

次の場所の緯度、経度を出力して

松見坂公園
駒場野公園
駒場三丁目もちの木公園
駒場公園
西郷山公園
菅刈公園

すると、こんな返答が。

すみませんが、一度に多くの場所の緯度と経度を求めることは難しいですし、地図を見ることもできません。
いずれの場所も日本にありますか? それとも別の国にありますか?
それぞれの場所について個別に質問していただけますか?
それにより、正確な情報を提供することが可能になります。

ChatGPT

なんかもう、やりたくないオーラ満々です。

きっと無理でしょうが、不足している情報を追加してもうひと押ししてみましょう。

すべて日本の東京都目黒区にあります。

回答はすぐ出力されました。

了解いたしました、ただし私の機能では実際の緯度と経度を検索することは難しいです。
各公園の緯度と経度については、Googleマップや地図アプリを利用していただくと正確な情報が得られると思われます。
失礼いたしましたが、ご理解いただきますようお願い申し上げます。

ChatGPT

正面突破ではやってくれないようです。

さて、ジオコーディングを効率化するにはどうしましょう。

GoogleMapなどが提供しているWebAPIを活用できればいいのですが、区役所ではセキュリティの関係上、インターネット環境でExcelやスプレッドシートを利用することができない(=WEB関連の関数やマクロが使えない)ですし、GISはアカウント配布されている担当課が限られています。

同じ境遇の自治体の方、どのように解決されているか、お教えいただけるとありがたいです!


※今回は公的な場所の住所(所在地)データを使いましたが、個人宅の住所
などのセンシティブなデータをAI学習させないよう、注意して活用しましょう!

過去の記事はこちらから


この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?