河野太郎大臣の発言を「おいおい、AIでなんでもできると思ってんじゃないだろうなぁ?」と、否定的にみていたら、案外大臣の認識の方が現実的だったという話。~もう住所表記はAIに任せてもいいかもしれない~

河野太郎大臣が「住所のゆらぎを改善するためにAIを使う」と発言したことに対して、「そんなんエクセルでいいだろ!」みたいな反発があり、それに耐して、現場のエンジニアから「いや、住所表記って面倒くさいんだってば!!!」という反応が帰ってきたわけですが(2023/6/6)

実際、住所は超面倒くさい。というか、もともとゆらぎがあるものだし、そもそも正規化できるものとして扱うほうが間違っているわけですよね。だから「こんなに難しい」という話を聞いてもすんなり「だろうなぁ……」と納得できたわけですが、同時に「じゃあ、そんなに難しいものをAIでどうにかできるっていう河野大臣の認識は大丈夫なの?」って思ったんですよね。

なんかこう……あるじゃないですか「AIでなんとかできるでしょ?」みたいな雑な認識で物事を進める人って。河野大臣がいくら政治家としてキャリアがあっても、専門の技術者ではないわけですよね。だから、政治家特有の断言で「いけるんじゃね?」って認識を持っているんだったら、ちょっとそれはまずいんじゃないか?なんて思ったんですよ。

上司に「おい、住所の正規化をやってくれ」と言われた時に、「できます!」って簡単に言う人と、「難しいです」って言う人と、どちらがエンジニアとして真摯な態度なのか。というと、私は後者の方を信頼したい。実際にやってひどい目に合った経験があるか、住所が鬼門だという話を知っているわけですからね。大臣、YOUはどっちかな!?

……んで、やってみたわけです。

結論から言いましょう。河野大臣の認識のほうがより正確と言っていい状態でした。疑ってごめん。今のAIは予想以上にすごかった。

そもそも、私達はなぜ住所を認識できるのか?

今回の実験をやってみようと思った理由はそんな疑問が湧いてきたことでした。住所には表記の揺らぎがあって、それをルールベースで解消しようとすると、とんでもない手間がかかる。

しかし、わたしたちはそのゆらぎを含めて認識できるわけです。たまたまTwitterで目にした例を参考に書きますけど

  • 東京都千代田区千代田1番1号

  • 東京都 千代田区 千代田 1-1

  • 東京 千代田 1の1

  • 東京都千代田区千代田一番一号

  • 東京都千代田区千代田1-1

  • 東京都千代田区千代田1ー1

  • とうきょうと ちよだく ちよだ いちのいち

  • トウキョウ都 チヨダ区 チヨダ イチバン イチゴウ

  • トウキョウト チヨダク チヨダ イチバン イチゴウ

  • 1-1,chiyoda,tokyo

  • 皇居

ざっとこれぐらいの揺らぎはあるわけです。まず、嫌らしいのが漢数字と数字の違い。単純に漢数字を数字に治すと、1000代田なんていう素敵な住所が誕生してしまう。上で紹介した記事にもありますけど、「‐(ハイフン)」と「ー(伸ばし棒)」なんてのが混じっているパターンもある。

半角カタカナの住所なんてありえないだろ!って思う方もいらっしゃるかもですが、甘い!古い古いシステムなんかは半角カナで住所を保管していたりします。ウワーッ!

最後の英語の住所は適当に打ちました。実際の英語の書式に合っているかどうかは知りません。でもこういう適当な入力がマジであるのが、怖いところなので、そのまま使っています。AIめ、私の苦しみを少しでも味わえ!

これを真面目にやろうとすると、とてつもない労力がかかるわけですが、我々人間はこれを処理できるのが不思議な所。それもそこらへんを歩いている一般人でも大体正解できる。

そこでふと思ったんですよ。人間にできるなら、機械に出来ないと考えるほうが不合理なんじゃないだろうか?

直感的に「おいおい、大臣そんなに世の中うまくいくもんじゃないぜ。簡単に思えてもかなり大変になるに決まってるさ」と思った私でも、そう考えると、「確かに、一度試してみてから結論を出しても遅くないな……」なんて気がしてきたわけです。

ということで実験

さっそくやってみました。利用したのはChatGPT 4.0。
プロンプトは以下の通り。

これから入力する2つの住所が同一であるかどうか判定をお願いします。

超シンプル。タスクとしては、名簿が2つあり、そこに入力された住所が同一のものであるか。というものを想定しています。名寄せ的な処理になるのかな?それでは行ってみましょう!

プロンプトの様子。こんな感じで入力してます。内容は以下と同一です。
これから入力する2つの住所が同一であるかどうか判定をお願いします。
もちろんです。2つの住所を教えていただければ、それらが同一であるかどうかを判定します。
東京都千代田区千代田1番1号 

東京都 千代田区 千代田 1-1
「東京都千代田区千代田1番1号」と「東京都 千代田区 千代田 1-1」は同一の場所を指しています。
日本の住所では、「1番1号」は「1-1」に等しく、両方とも同じ場所を指し示しています。
したがって、これらの住所は同一であると判断できます。

まあ、これぐらいはね。できますよね。うんうん。

東京都千代田区千代田1番1号

東京 千代田 1の1
「東京都千代田区千代田1番1号」と「東京 千代田 1の1」も基本的に同一の場所を指しています。
しかし、「東京 千代田 1の1」の住所は「区」の部分が欠けています。
ただし、「1番1号」と「1の1」は同じ場所を指しており、その区別は地域や建物によるものであり、
基本的には同一の場所を指すものと言えます。
したがって、これらは物理的な場所としては同一ですが、完全な住所表記としては異なると言えます。

これもクリア。補足が正確すぎて怖いぐらいです。

東京都千代田区千代田1番1号 
東京都千代田区千代田一番一号
「東京都千代田区千代田1番1号」と「東京都千代田区千代田一番一号」は同一の場所を指しています。
「1番1号」と「一番一号」は数字の表記法が異なるだけで、両者は同じ場所を指し示しています。
したがって、これらの住所は同一であると判断できます。
東京都千代田区千代田1番1号
東京都千代田区千代田1-1
「東京都千代田区千代田1番1号」と「東京都千代田区千代田1-1」は同一の場所を指しています。
「1番1号」と「1-1」は同じ場所を指し示しており、特に日本の住所表記では互換性があります。
したがって、これらの住所は同一であると判断できます。
東京都千代田区千代田1番1号
東京都千代田区千代田1ー1
「東京都千代田区千代田1番1号」と「東京都千代田区千代田1ー1」は同一の場所を指しています。
「1番1号」と「1ー1」は、どちらも同じ場所を指し示しており、表記の違いだけです。
したがって、これらの住所は同一であると判断できます。

ルールベースでやると死にそうになる数字もクリア。伸ばし棒とハイフンの違いもクリアです。いちいちコメントが的確なので、だんだん怖くなってきました。

……いや、まだね。こういうゆらぎは、まあできて当たり前みたいな所はありますからね。まだ慌てるような時間じゃない。じゃあ、次ならどうだ!?

東京都千代田区千代田1番1号 
とうきょうと ちよだく ちよだ いちのいち
「東京都千代田区千代田1番1号」と「とうきょうと ちよだく ちよだ いちのいち」は
同一の場所を指しています。
「とうきょうと ちよだく ちよだ いちのいち」は、ひらがなで表記されていますが、
内容は「東京都千代田区千代田1番1号」と同じです。
したがって、これらの住所は同一であると判断できます。
東京都千代田区千代田1番1号 
トウキョウ都 チヨダ区 チヨダ イチバン イチゴウ
「東京都千代田区千代田1番1号」と「トウキョウ都 チヨダ区 チヨダ イチバン イチゴウ」は
同一の場所を指しています。
「トウキョウ都 チヨダ区 チヨダ イチバン イチゴウ」は、カタカナで表記されていますが、
内容は「東京都千代田区千代田1番1号」と同じです。
したがって、これらの住所は同一であると判断できます。
東京都千代田区千代田1番1号 
トウキョウト チヨダク チヨダ イチバン イチゴウ
「東京都千代田区千代田1番1号」と「トウキョウト チヨダク チヨダ イチバン イチゴウ」は同一の場所を指しています。
「トウキョウト チヨダク チヨダ イチバン イチゴウ」は、半角カタカナで表記されていますが、
内容は「東京都千代田区千代田1番1号」と同じです。
したがって、これらの住所は同一であると判断できます。

いや、いけんのかーい!!!

ひらがな表記は、流石に無理だろ……と思って実行したら行けたので思わずびっくりしてしてしまいました。さらにこれがいけるなら当然カタカナも半角カナもいけるわけで、ちょっと自分の常識が揺らぎそうです。こ、こんな簡単に、住所の処理が行えていいの……?(混乱)

東京都千代田区千代田1番1号 
1-1,chiyoda,tokyo
「東京都千代田区千代田1番1号」と「1-1,chiyoda,tokyo」は基本的に同一の場所を指しています。
「1-1,chiyoda,tokyo」は英語表記であり、それぞれ「1-1」、「千代田」、「東京」を表しています。
ただし、日本の住所表記の順序とは異なり、また「区」の部分が省略されているため、
完全な住所としては「東京都千代田区千代田1-1」が適切です。
したがって、これらは物理的な場所としては同一ですが、正確な住所表記としては異なると言えます。

私が適当に作ったインチキ英語住所もクリアしました。しかも「お前の住所表記おかしくね?」というコメント付きで、くそ……AIに指摘されるなんて!

じ、じゃあ最後のこれならどうだ!!

東京都千代田区千代田1番1号 
皇居
「東京都千代田区千代田1番1号」と「皇居」は、物理的な場所としては同一です。
「東京都千代田区千代田1番1号」は、住所の形式で表記されていますが、
この住所は実際には日本の皇居が存在する場所を指しています。
したがって、「皇居」も同じ場所を指しています。

AI、完全勝利。

なんと、私が用意したサンプル、全部に対して、AIは正解を導き出しました。ひらがなやカタカナ、さらに絶対無理だろうと思っていた皇居表記までクリアしてくるのは正直たまげました。

もう、住所表記はChatGPTちゃんに読んで貰えばいいんじゃね?

ちょっとまって!穴はないのか?

予想外の凄さに、思わず我を忘れてしばし呆然としていたんですけれども、しかし、これで「AIすげぇ!」で終わってしまえば、ただの驚き屋で終わるというもの。こちらとら疑り深いんだ!検証させてもらうからな!

よくよく考えると、今回入力した「東京都千代田区千代田1番1号」って住所は官公庁のサンプル書類とかでよく出てくる住所だったりします。(冷静に考えると、天皇の住所をサンプル書類に使うの不敬って怒られそうな気もしますけど)だったら、ChatGPTちゃんが強いのも当たり前じゃない?なんて思って札幌の住所を入れてみたりと色々と探していますけれども、今のところこれぞ!と言ったミスは見つけられていません。

ただ、一点

北海道札幌市中央区北3条西6丁目 
北海道庁赤レンガ庁舎
「北海道札幌市中央区北3条西6丁目」と「北海道庁赤レンガ庁舎」は、物理的な場所としては異なります。
「北海道庁赤レンガ庁舎」は、その名の通り北海道庁の本庁舎で、
その住所は「北海道札幌市中央区北6条西3丁目」になります。
したがって、「北海道札幌市中央区北3条西6丁目」とは異なる場所を指します。

では間違えたことを発見しました。私が入力した住所は赤れんが庁舎のものであり、「北6条西3丁目」は札幌駅の住所です。

やーい、間違えてやんの!!!と喜ぶのも束の間「だったら人類は上の問題に答えられるのかよ!!」ってAIにキレられると凄い困る。大体常識的に考えて、住所が「赤レンガ庁舎」って普通ありえないので。

く、くやしい!なんかしらないけど、無性に悔しい!もっとこう、特殊なケースじゃなくて、普通なケースで、AIだって間違えるんだぜえええええ!!って所を見たいのに!読者の皆様につきましては、AIがミスる住所を発見した場合は、どうかご連絡ください。(ちなみに、検証はGPT 4.0でお願いします。3.5とかのハンデを付けてAIに勝っても嬉しくないし……)

検証が終わって

検証を終えた後、ちょっと呆然としていました。住所の表記ブレなんてほぼ解決するのは不可能だろう。と長年思っていたことをAIが軽々クリアしていくのは、とてつもない衝撃です。

一文字一文字画面に表示されるごとに、常識が書き換わっていく感じ。

正直にいいますが、最初は「AIでも間違えることはあるし、大臣の発言は夢見過ぎなんじゃないのぉ?」みたいにくさすつもりもあったんですよ。でも、やってみたら、AIのやつが予想以上にすごかった。むしろ大臣の認識のほうが正しかったのでは?という思いが湧いてきて打ちのめされています。く、くそ……こうなったら、たまたま大臣が適当に言ったことが当たっただけと勝手に決めつけて納得するしか無いぜ!

しかし、現実がこうであるならば、受け入れるしか無いでしょう。もちろんAIだって、ものすごい試行回数を繰り返せば間違えるはずです。完璧はありえない。だから、間違えた時にダメージが大きい分野に使うのは慎重になったほうが良いと思います。人間とのダブルチェックは欲しいところ。もちろん、人間だって間違えるわけで、そもそもミスは発生するものだと思ってシステムを組んだほうが良いと思いますが。

ただ、間違っても対してダメージの少ない分野。例えば、セールスに使う顧客情報を記録した名簿が2つあって、その名簿の住所が同一か判定して……みたいなケースの場合を考えると、失敗してもダイレクトメールが2通届くぐらいですむわけで、これは全部AIでガーッとやってしまっても良いのではないでしょうか。

むしろ今回の発見は、名寄せ業務に悩むエンジニアの問題を綺麗さっぱり解決してくれる、福音なのかもしれません。

私達はどう答えるべきか?

さて、そうなるとですよ。「おい、住所の正規化をやってくれ」と上司に言われた時、私達はこれからどう答えればよいのでしょうか?

「簡単です」というエンジニアより、「難しいです」というエンジニアを私は信頼したいと思いますし、その気持は今でも変わっていません。でも、その「難しい」という知識は、今日この瞬間から古い認識になってしまったのかもなと思うと、なかなかもやもやしてしまいます。

となると、明日からは私達はこう答えるべきかもしれません。
「住所の表記? ChatGPTである程度できますけど……まずどういうことをしたいんです?

要件によっては、もはや問題は問題でなくなっているのかもしれません。

(おまけ)上記の記事を参考に千葉県香取市の住所(カタカナのロが正しい。くち、は誤記)と、誤記を入れてみました。

千葉県香取市佐原ロ2127 
千葉県香取市佐原口2127
「千葉県香取市佐原ロ2127」と「千葉県香取市佐原口2127」は、
おそらく同一の場所を指していると思われますが、
日本の住所表記では通常「ロ」や「口」という表記は使用されません。
したがって、具体的な場所を確定するためにはより詳しい情報が必要です。
それぞれの住所が正確にどの場所を指しているのか、
地方自治体や郵便局に問い合わせることをおすすめします。

凄いね、AI

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