いろいろやってみるにっき

てきとーに生きている奴の日記

古いエントリのサムネイル画像がリンク切れになってたりするけど、チマチマ修正中


あま~い! 住所の表記揺れがExcelで簡単に片付くなら今さら問題になるわけないだろ

次から次へとまあ。

デジタル音痴はおまえだ。

 

話題の表記揺れ問題。河野大臣は特に変なことは言っていない。

news.yahoo.co.jp

河野大臣:
AIを活用するまでもなく、ふりがなが振られれば、名前の照合はできる。名前、生年月日、マイナンバー、これらがきちんと照合されれば誤登録はなくなる。ただ、問題は住所が「港区赤坂一丁目2の3」と書く人もいれば、「港区赤坂1-2-3」と書く人もいる。「1-2-3」を半角で入れる人もいれば、全角で入れる人もいるし、ハイフンを「の」と入れる人もいる。将来的にはAIの技術を使って表記揺れを判断することがあり得るかもしれない。

 

松山キャスター:
住民基本台帳マイナンバーとで住所表記を一元化できないのか。

 

河野大臣:
いまデジタル庁でベース・レジストリ(公的基礎情報データベース)というのを作っている。住所表記はこれに合わせるルールを作ると同時に、多少表記揺れがあっても紐付けできることを目指している。また、新規の入力をするときには、こういうルールでなるべくやってほしいと。自分で年賀状の住所録を作るときに「あれ、この人の住所、入っていたはずなのに」みたいなことがある。このベース・レジストリできちんとやっていければ、住所の表記揺れも突合できるようになる。

 

このツイートで知った。

 

サムネイル用。

 

オレもやったことあるからわかるけど、住所のデータクレンジングなんて住所用の汎用的なデータクレンジングツールだけでは100%OKにならない。絶対に一定割合で人間判断が入る。そのデータの出元にもよるけど100%どころか70%も怪しい。その残りで死ぬ。

 

簡単にできるぞ素人もHenry氏がツイートしてる。

 

画像じゃなんなので探してみた。

 

ところでこいつアカウントも見つからない。Twitterの検索が死んでる説もあるけど。画像

少なくともツイートは消してる。

 

このExcelデカンタンニデキルノニーさん、さてどうなったでしょう。

これからの入力だけじゃなく、今あるデータをどうするかって話がメインであることさえ分かっていなかった。

 

 

 

住所のデータはすでに存在しているものが膨大にある。なので、入力フィールド分けるとかバリデーションで弾くとかという話を始めた瞬間に見る価値が無い。

atmarkit.itmedia.co.jp

 

この程度の簡単なやつなら市販のツールやサービスでもやれる。Excelでちょちょいと作れるわけじゃないけど。

 

オレもちょいツイートしたけど、こういうイレギュラーデータや地名・建物名変更との闘いである。平仮名・片仮名・新字・旧字・異体字歴史的仮名遣・漢数字・英数字などなど数え切れないパターンで、しかも入力している本人が一つの住所でも統一して入れてくれない可能性があるっていうのに。

 

「ヒ"ル」はどういうデータかというとカナのヒに半角ダブルコーテーションである。これをCSVに含むと、……わかりますね。そこでCSVを扱うプログラム例えばExcelなんかはそのカラムが終わったと判断する。ダブルコーテーションを使う時は2つセットで囲むという決まりなので、途中にデータとしてダブルコーテーションが来るならエスケープする必要がある。

 

元々のデータの出元が何かでも特徴が分かれる。メインフレーム時代からの古いデータだと、こんな感じ。

  • 上記ダブルコーテーションなど住所に無い記号を使っている
  • 1-2-3、1-2-3と同じように1―2―3、1ー2ー3 が混在している
  • 外字が使われている
  • 光が丘、光ヶ丘、光ケ丘

2番目わかんないでしょ、コード的には別だけど。

qiita.com

 

メインフレーム時代からのデータは、もともと本人入力よりは紙で提出された申請書等を事務員が入力していたりする。なので、かな入力する職員が濁点の代わりにダブルコーテーション使ったりという変なクセを持つ人が入力した1番目や2番目のデータがある。さらにOCR入力もある。チェック漏れあれば変な住所が入っている。

また、本人入力じゃないので4番目のように事務員が思った表記で入力している。また、メインフレーム文字コード体系はEBCDIK/JIS系なのでコード一覧に無い漢字は外字として入力してきた経緯がある。Unicode化された時に外字から変換していなければなんか変な記号が入った住所となっている可能性がある。

 

じゃあUnicodeなら問題無いかと言えば、CJK互換漢字問題がある。

ja.wikipedia.org

CJK互換漢字はその名前にもかかわらずCJK統合漢字と互換等価ではなく正準等価であり、互いに区別されることを期待してはならない。このため4種類の正規化のいずれを採用してもCJK統合漢字に分解(変換)されてしまい、日本の人名処理などにおいて要求されることのある一部の人名用漢字などの区別が、Unicodeのプレーンテキスト上で保証されるとは限らない。

一部にCJK互換漢字の等価性を正準等価から互換等価に変えるべきであるという主張があるが、UnicodeではJIS X 0213用の互換漢字の一部は新たに収録せず、既存のKS X 1001互換文字用の領域などに収録されていた文字を流用している。このため日本語だけの都合で等価性を変えることはできない。またUnicodeには正規化の安定性の原則があり、その意味でも等価性の変更は現実的ではない。

 

住所に使われることは少ないはずだが、例えば懲 と 懲 は見分けがつかない。日本語IMEを使っている人が入力すれば 懲 かもしれないが、ピンインで入力すると 懲 かもしれない。

 

というわけで、現在の住所用データクレンジングツールやサービスの自動変換から漏れて、人間が確認しないといけない表記揺れについてはAIを使うというのは合理的である。コードで比べると別物でも同じに見えたらどちらかに寄せるという処理を作れる。そういう意味ではChatGPTなどで話題のLLM大規模言語モデルだけでなく画像判別系を合わせ技で使うということもあるかもしれない。

 

まあ、河野太郎大臣の出した例が陳腐だからExcelデカンタンニデキルノニーが湧いたのかもしれないけど、住所の表記揺れは相当面倒である。某損保会社でやった時に使ったツールは数百万の奴(名称失念)だったけど、それまでの住所データの表記揺れについて集合知が詰まってた。それでも数%は処理できないデータがあった。Excelでできるならもうできてるって。

 

件のExcelデカンタンニデキルノニーさんのExcelだと、八戸が8戸になりそうで怖いw

これはお優しい。オレなら瑕疵担保責任と損害賠償請求に関する条項を盛り込んで変換作業発注する。半月1,000万円から2,000万円くらいの飛びついてきそうな金額で。

 

これもそう。専門家が頑張ってできていないんだから、できていない理由があるに決まってるじゃないか。

お時間あったら、他のエントリもクリックして頂ければ幸いです。