とにかく日本の住所のヤバさをもっと知るべきだと思います
「住所の揺らぎ程度のことにAIを使いたいだとかデジタル音痴」だの「住所の正規化なんてExcelで2時間あれば作れそう」だの、たいへんフットワークの軽やかな言説の数々に、位置情報界隈のみならず住所の正規化や名寄せに少しでも関わったことのあるエンジニアが総立ちでマサカリを投げていたのも記憶に新しい今日この頃ですが(2023年6月6日)、この手の騒動は周期的に起こってる印象です。
ということはつまり
いつまで経っても解消されない、解決が困難な課題である
その困難さが界隈以外に共有されていない
であるわけで、その都度Twitterにトリビアが投下されてはTLが賑わい華やかではありますが、そろそろ自分の整理としてもどれだけ日本の住所システムがカオスで、その計算機的な処理がいかに困難かをメモっておこうかと思いました。
なおこの件については既にQiitaにGeoloniaの宮内さんが鼻血の出そうな良エントリを書かれてるので、ぜひそちらもご覧になってください。
そもそも住所システムが二つ併存している
住所と聞くと「XX町1丁目3番2号」みたいなのをまず思い浮かべると思いますが、これは「住居表示」という比較的新しいシステムで、以下の国土地理院のページの説明にあるように街区で分けてそこの建物に番号を振ろうというものです。分かりやすいですね。
ところがこのシステムは全国で均質に導入されているわけではなく、実施については各市町村に任されており、市町村単位はもちろん、同じ自治体の中でも実施済みの地域と未実施の地域が混在していたりします。じゃあ未実施の地域はどうしているかというと、「XX町1234番地」といった具合に、土地についた番号=地番を元に住所が付与されています。
さらにややこしいことに、地番システムを使ったまま番号だけ分かりやすく住居表示のような形に再整理するという地番整理というものもあります。以下は町田市の例ですが、ピンクの所が住居表示実施済み、黄色が次回実施予定、青は地番整理済み、白は従来通りの地番制です。森野6丁目に注目。1〜5丁目は住居表示なのに6丁目だけ未実施なんですね。
さて、この二つのシステムの併存の何が厄介かというと、いやいろいろ厄介なんですが、例えばハイフンを使った省略記法で書かれたとき住所を特定するのが困難になる場合があります。
印象的な例として、東京ディズニーランドのある浦安市舞浜を挙げましょう。ここで、舞浜小学校の住所は「浦安市舞浜2-1-1」ですが、これは住居表示実施地域であり、舞浜2丁目1番1号を表します。
一方で、ディズニーアンバサダーホテルの住所は「浦安市舞浜2-11」ですが、これは舞浜2丁目ではありません。住居表示が実施されていない「舞浜」の、2番地11を指しています。首都高湾岸線を挟んで北と南、場所ももちろん違います。
このように、同じ舞浜2-***と書かれていても、地域が違うのです。統一しろや!と思いませんでしたか?思いましたね。僕も思っています。
丁目は必ず町大字の下にあるとは限らない
1丁目とか2丁目は、何となく「○○市XX町1丁目」みたいなパターンだと思ってませんか?実際それが大多数なんですが、中には市区町村の下にそのまま丁目が着くところもあります。
例えば下田郵便局の住所は「静岡県下田市2丁目4-26」です。下田市の直下にいきなり2丁目が来ています。「市区町村と*丁目の間には必ず何か文字がある」みたいなパーサーの実装を書いてハマる部分です。
下田市には1丁目から6丁目までありますが、埼玉県春日部市にも八丁目があります。しかし八丁目しかありません。こういう場合、八は序数ではなく固有名詞の一部として受け止められている場合もあります。現に八丁目の店舗や施設で、住所を「春日部市8-353」などと書いているところは目にしないように思います。こういう場合、住所を表示する際に「**丁目はアラビア数字+丁目に統一して」なんて処理を書くと「春日部市8丁目353」などと表示されてこれまたハマるわけです。幸松小学校の住所では「大字八丁目」と明記されてますね。
丁目どころか町大字すらあるとは限らない
番地とか号は「○○市XX町1丁目2番地3号」みたいなパターンだと思っていませんか?実際それが(中略)ですが、例えば以下は奈良県の御所市役所のウェブサイトです。住所が「奈良県御所市1番地の3」ですね。市の下にいきなり番地がついています。檜原村など人口の少ない山村では見られる例ですが、市レベルの自治体では珍しいです。
ともあれ、市区町村以下の住所の構成は、丁目はおろか町大字も「存在しないかもしれない」前提で考える必要があるということです。東京都青ヶ島村無番地なんてのも有名ですね。番地すらあるとは限らない。
街区符号や番地は数字とは限らない
1-2だの1024だのばかり想定していると真っ先にハマる部分であり、ジオコーダー/住所正規化あるあるLV1といった感があります。が、その内容は多岐に渡り、正直ルールベースで全部を網羅できるとはちょっと思えません。
例えば先の宮内さんのエントリにもあった大阪市中央区などは、「ABC」が正式に街区符号として採用されています。例えば水資源機構の関西吉野川支社の住所は大阪市中央区上町A-12です。
また、同じ大阪だと中央区久太郎町四丁目には「渡辺」という街区符号があることもその筋では有名ですね。
また、千葉県では番地の前に「いろは」で字が振られている所があります。
歴史的経緯としても興味深いんですが、住所を処理する側としては厄介です。「数字ではない」のもそうなんですが、特に「ろ」「は」「に」は、カタカナで表記された場合けっこうな確率で「口(くち)」「八(8)」「二(2)」が混ざり込んできます。八街北小学校の住所は「千葉県八街市八街は18番地2」ですが、これが「千葉県八街市八街八18-2」と入力されたときの絶望を想像してみてほしいです。
他にも石川県にはイロハだけでなく「甲乙丙」「子丑寅卯」「仁義礼智信」という地名があったりします。以下のサイトがよくまとまってます。
都道府県名や市区町村名が住所中に出てくるのは一回だけとは限らない
住所を処理しようとして「市」「村」といった接尾語で分割しようというのは王道の失敗ルートなわけですが、そこを抜けたあと「そうだ!都道府県名は確か日本全国でユニークだからまずそれを抽出・除去すれば効率的やろ」とか次に考えます。が、これもストレートには上手くいきません。
例えば、長野県庁のある長野市南長野で、県庁のすぐ北東斜向かいは「県町」という町域です。これを素直に書くと「長野県長野市南長野県町」となり、「長野県」が二回も登場します。そもそも長野がインフレしていて目が滑ります。
暮らしてる方々も不便を感じているのか、実際には大字の南長野を省略して「長野県長野市県町」と書かれることが多いようです。ですが、中には以下のようにそのまま書かれている例もあり、もし安易に都道府県名を取り除く処理を書くとこれが「長野県長野市南長野県町477-1」→「長野市南町477-1」になってしまったりするわけです。恐ろしいですね。
住居表示の住所がユニークとは限らない
こういう数々のカオスを、(相対的に)新しい住所システムである住居表示が解決するのだと期待されているんですが、住居表示は住居表示で実施は各自治体任せであり、そこには運用のバラつきが悲しいことに生じています。
例えば、スパゲッティーのパンチョ渋谷店の住所は「渋谷区道玄坂2-6-2」ですが、
そのすぐ近くにある渋谷げんかつの住所も「渋谷区道玄坂2-6-2」です。
これらは、街区符号も住居番号も同じですが、それぞれ藤山恒産道玄坂ビル、美奈津ビル、と別々のビルに入居しています。つまり全く同じ住所が複数のビルに付与されているわけです。
こういう場合、例えば枝番を付けて「2-6-2-1」「2-6-2-2」と区別することを期待しますし、実際にそう運用している自治体もあります。しかし、あくまでそれぞれの自治体任せであるため、渋谷区では重複上等・ビル名で区別できるでしょという運用になっています(渋谷区役所に行って担当の方に直接確認してきました)。ビル名まで含めないと住所がユニークにならないわけで、もし店舗データベースを構築しているとして、番地号レベルの住所に丸めて寄せてしまうと、違うビルの店舗が一箇所にまとまってしまうことになります。恐ろしいですね。
正しい文字が使われるとは限らない
さて、これだけ様々な例外を全部潰してブリリアントなシステムを構築したとしても、最大の障壁は「人間は正しく住所を入力してくれるとは限らない」という点にあります。前出の千葉県八街市が良い例で、「は」を「ハ」とカタカナで書いたのを「8」と読み間違えて、「八」が入力されることは決して低い確率ではありません。
また、同じ千葉県で、香取市役所の住所は「千葉県香取市佐原ロ2127」ですが、僕も初見はこれ「さわらぐち」と読んでいました。正解は「さわら ろ」です。必然的に「佐原口」という入力が極めて頻繁に降ってきます。自分で書いててもどっちがどっちか分からなくなります。
この手の文字の混在でダントツでカオスなのはハイフンで、ありとあらゆるパターンの「ハイフンみたいな文字」が使われます。ハイフンとマイナスは違うのかー、ダッシュも別の概念なんだな、などと勉強になること甚だしいですが、それにしたって罫線はないだろがよ、もはや言語ですらねえぞとキレても許されると思います。
さて、ここで前半で紹介した下田郵便局の検索結果のスクリーンショットをもう一度見てみましょう。
いやほんとそういうとこやぞ。
この記事が気に入ったらサポートをしてみませんか?