住所の揺らぎを修正して住所データを効率的に正規化する方法
こんにちは!
今回は「緯度経度の情報から郵便番号や住所情報を返す」というちょっとマニアックな内容について、私のやり方を紹介したいと思います。
普通に生活していればですよ、緯度経度から住所情報が知りたい!なんてニーズ出てこないですよね。
しかしデータ分析系の仕事に携わっていると、こういうことはたまにあります。
その中でも個人的に出くわすことが多いのが、、、
「住所の表記揺らぎ」を無くしたいケースです。
例えば国会の住所を書く方法として、
「東京都千代田区永田町一丁目7番1号」と書く人もいれば、
「東京都千代田区永田町1-7-1」と半角で書く人がいれば、
東京都千代田区永田町1-7-1」と全角で書く人もいるし、
「東京都永田町1-7-1」と市区町村省略する人もいますし、
「1-7-1, Nagata-cho, Tokyo」と、海外の方はもしかしたら英語表記の場合もありますかね?
また「東京都千代田区永田町1丁目」と完全な住所が出てこないケースもあります。
※個人情報なので、データとしてピンポイントで場所が特定できる情報は提供したくない!というケースもありますからね。
このように住所情報に統一感がないと、分析担当者は涙目な状況に。
特にエリアマーケティングなんかに携わっていると、住所の区分毎で分析したりするので、ちょっと微妙な感じになります。
後は輸送業関係ですよね。輸送先のエリア毎で利益率を計算したりするので。
そこで!そうしたバラバラな住所・郵便番号データを使って、一度緯度経度を算出し、
その上で緯度経度から住所情報、郵便番号を算出することで、表記揺れを修正することがあります。
今回はその方法を紹介します。
※あくまで個人のやり方なので絶対ではございません。参考程度に見てください。
解決策:住所をGoogle Mapに充てる
住所の表記揺れを簡単に修正する方法ですが、私はいつもGoogle Mapを活用しています。
表記揺れの存在するデータをGoogle Mapに読み込んで、返ってきた結果を使うことで統一しています。
Google Mapで住所を検索すると、表記揺れがあっても、比較的統一された場所を返してきます。
Google Mapのその修正を使ってある程度は対応可能です。
実際にやってみます。
下図は表記揺れが存在する住所情報です。
品川プリンスホテルとディズニーランドの住所情報について、
半角・全角の混在、英語名表記等様々な表記をしてます。
さて、これでGoogle Map APIへの検索を組み込んだマクロを実行してみます。
C列には参考情報として郵便番号が表示されています。
D列に住所情報が表示されていますが、大まかには統一されています。
Google Mapの検索結果の関係で、品川プリンスホテルに関してはタワー名があるものとないものが存在します。
ここら辺はExcelでのデータ加工は必要になりそうですね。
それでも、ちまちま1つずつ修正するよりははるかに作業効率はGood!
こうした面倒な作業はミスにもつながりやすいので、個人的には満足です。
以上、ちょっとした共有でしたぁ。
●参考
コメントを残す