重要なお知らせ吸収分割公告 — ケンオール事業の権利義務承継についてお知らせ一覧 →

ケンオール通信第8号: ビル名の処理

今回は、郵便番号データ内のビル名の処理について紹介します。 データは、記載がない限り2021-05-31のデータを用いています。 ケンオールでどのように郵便番号を処理しているかは、こちらのデモから確認してみてください。

前回はこちらです。

PyData Osaka Meetupの発表スライドと動画はこちらです。

ビル郵便番号この見出しへのリンク

郵便番号データの大半は、ある郵便区画に対して番号を割り当てたレコードとなっていますが、実は一部の高層ビルには階層ごとに郵便番号が割り振られています。 ここでは、このような郵便番号をビル郵便番号と呼びます。

1066101: 東京都港区六本木六本木ヒルズ森タワー(1階)

なお、このビル郵便番号は、個別事業所番号とは別のものであることに注意してください。

このようなビルは、郵便番号データ内には84棟存在し、このようなビルが存在する町域は34地域存在します。 上記の住所のうち、ビル名に相当する部分はどこからどこまでになるでしょうか?

正解は、六本木ヒルズ森タワーです。 最初の六本木は町名となります。六本木ヒルズ森タワーの住所は東京都港区六本木6-10-1です。

町名とビル名を分割するこの見出しへのリンク

このように、ビル郵便番号の町域は、町名 + ビル名 + 階層という構造を取っているため、構造化されたデータに変換するにはこの文字列をパースして分割しなければいけません。 しかし、この文字列だけでは、先程の例のように、町名とビル名を分割することはできません。どちらかの名称を外部から与える必要があります。

このデータを遡っていくと、以下のようなレコードを発見できます。

1060032: 東京都 港区 六本木(次のビルを除く)

この郵便番号は、東京都港区六本木に属する住所のうち、これより下のビル郵便番号に記載されているもの以外の全ての住所に対して用いる郵便番号です。 この郵便番号レコードを使えば、町名六本木を取得することができます。

ただし、以下の2地域は例外的に、(次のビルを除く)が存在しません。

東京都 港区 海岸
愛知県 名古屋市中村区 名駅

この地域に関しては明示的に町名を付与する必要があります。(パターン1)

次に、ビル郵便番号の文字列パターンを見てみます。

1066190: 東京都 港区 六本木 六本木ヒルズ森タワー(地階・階層不明)
1066101: 東京都 港区 六本木 六本木ヒルズ森タワー(1階)

ビル郵便番号の町域は、以下の2パターンになっています。(パターン2)

よって、ビル郵便番号の存在する地域及びビル郵便番号のパースは、以下の方針で実施することができます。

階層と郵便番号この見出しへのリンク

先程登場した階層情報ですが、実は文字列をパースしなくても情報を取得することができます。 郵便番号の下2桁は以下のルールによって付与されています。

もう一度、先程の例を見てみましょう。このルールに基づいて郵便番号と階層情報が対応していることが分かります。

1066190: 東京都 港区 六本木 六本木ヒルズ森タワー(地階・階層不明)
1066101: 東京都 港区 六本木 六本木ヒルズ森タワー(1階)

現在、日本一階数の多いオフィスビルは横浜ランドマークタワー(高さ日本一はあべのハルカス)で、地上70階まで存在します。もちろん、郵便番号データにも記載されています。

2208170: 神奈川県 横浜市西区 みなとみらい ランドマークタワー(70階)

しかし、世界では90階を超えるビルはいくつも存在します。 日本で90階を超えるオフィスビルが誕生したとき、郵便番号は一体どのように割り振られるのか、楽しみですね。