住所正規化問題は住所地獄の一丁目


前回のつづき。
どこまでが町名でどこが番地名だ、みたいな、住所正規化の問題。
そんなものはコンバーターの精度を競うまでもなく、住所問題を扱うときには実はさしたる問題ではない。

半角カタカナを全角ひらがなに変化できる程度のDX人材がいないと駄目だとか、なければ人員と努力忍耐根性が必要だとか、まあいろいろあるけれども、前回書いたような基礎自治体、町名ぐらいまでの問題のほとんどは郵便番号辞書で解決することができるからだ。

パソコンなどの日本語入力IMEの郵便番号辞書をONにしていれば、郵便番号の数字をいれるだけで住所に変換することができる。

新たに作ったシステム導入の説明ついでに、日本語入力IMEに郵便番号辞書をONにするやり方を教えてあげたら、それが一番喜ばれたなんていう悲しい体験があるほど郵便番号辞書の利用はDX化においてまずなされるべきことだと思う。


だから、そんなものは住所問題地獄の一丁目でしかない。
なにせ郵便番号辞書という「正解」があるのだからそれにぶつければよいだけの問題だからだ。

ふたとおりの正しい住所

というわけで、地獄の二丁目の門をくぐろう。

日本の住所には、本籍地などで使われる「法務局(登記所)が定めた住所」と、郵便物などでつかわれる「住居表示に関する法律」により定められたふたとおりの住所というものがある。土地登記地獄のフタもあるのでこれも盛大に不満をぶちまけたいが、ここでは触れない。

◯丁目◯番地◯号みたいなのは、住居表示実施適用済みの住所。
昭和37年より前は、地番が住所として使われていた。当時は家も人口少なかったから地域名に連番を振るだけで住所が管理できた。昭和中期のベビーブーム、人口爆発により、ひとつの土地に複数家族が住み始め、連番の途中に新たに家が立ち、アパートが立ち、ビルが立ち、そして、地名+連番+枝番による住所管理は破綻を迎えた。

いまの23区は東京市で、都は東京府で三鷹が村だったり町だったりした頃から現役の表札。地番表示。

昭和37年、住居表示に関する法律が制定された。
1962年の法律なら、もういい加減一律悉皆に適用されていそうだが、実はそうでもない。

田舎などは古い地番がそのままつかっていたり、北海道みたいな非人口密集地だと、無番地みたいなエリアも多い。まあそれくらいは、実務の用であるので使いやすいほうを選択しても問題はない気もする。

だが、実際は人口が多く入れ替わりが多い新宿区ですらまだ未実施地区はこんなにもあるのだ。

東側の青紫の色のところが未実施地区

新宿区住居表示実施図(PDF)
www.city.shinjuku.lg.jp/content/000280624.pdf

新宿だよ?
乗降車人数が世界最多の一日に350万人の新宿駅を擁する新宿区がだよ?
昭和37年の住所改正すらまだ途中なのよ。
しかも厄介なことに、住居表示実施適用済みでも古い地番の住所を使う人もいる。

新宿区からの注文で、住所が新宿区**町3番みたいな。
あー、書き漏れかな? 新宿みたいな人口多い地域でこれじゃ届かないだろと確認の問い合わせしたら、「うちはずっとこれで届いてきたから」と。
あえてそれを使う側にもこだわりもある。戦争で焼けなかった地域には残されたもののプライドも継いでいるわけさ。

郵便番号の地獄

古い番地が残る新宿の東側とは逆に、新宿区の西側、都庁がある超高層ビル群に変貌したエリアは、ひとつのビルに数百の会社、数千人がすし詰まっているので、ひとつのビルにいくつも郵便番号があったり、排他的論理和みたいな「次のビルを除く」表記になっていたりしてさらに混迷の様相をみせる。

丸の内とか、西新宿とかはこんなんばっかりだ。

〒163-0701 西新宿小田急第一生命ビル(1階)
〒163-0702 西新宿小田急第一生命ビル(2階)

フロアごとに郵便番号が異なる。
郵便番号データを信じすぎるとこういうデータとも戦わなければいけない。

郵便番号辞書を信頼しなければ始まらないが、信用してしまってはだめなのだ。

郵便番号が一つのエリアにユニークに紐づいていれば問題は少なかったのかもしれないが、現実はそれを許してはくれない。同じ町名なのに、郵便番号が分かれることもあれば、一つの郵便番号にも複数の異なる町名がぶら下がるなんてこともある。

厄介なことに、例えば「山田町」と「山田」みたいに似ているけれども非なるものが同じ郵便番号にぶら下がっていることも結構な出現頻度であるのだ。

拗音促音濁点半濁点地獄

オフコンや汎用機の時代に作られたシステムでは、小さい「ぁぃぅぇぉ」や「゛」「゜」が現在のシステムの扱いのそれとは異なることがある。顕著なのが自治体や郵便局、銀行など、80年代、90年代、システム化が早かった界隈だ。ATMなど制限された平面に物理の文字ボタンの入力に対応していたため、濁点などを含んだすべての読み仮名のボタンを配置することができなかったのだ。

うちは紅茶の茶葉さんなので会社名に「茶屋」という漢字が入る。
自分はこれを「ちゃや」のつもりでつけたのだけど、銀行口座をつくるときちょっとした手違いでふりがなが「ぢゃや」になってしまった。
日本郵便などは促音にも対応していない銀行の場合は、小さい「ャ」がなく、「ヂ」が「チ」+「゛」で表現される。つまり「ヂャヤ」は「チ゛ヤヤ」となるわけだ。

システム上(文字コード上も)、「ヂ」と「チ゛」はまったく別のものなのでこれを同じものと見做すためには、同じものですよと変換してやるか、それらを同じものとしてつないで定義してやらなければ検索することもできない。だから、システム化するときに「チ゛」は「ヂ」にしてデータベースに格納することにしよう。そんな風にして、全銀聯などはデータベース連携をすすめたのだろう。

なるほど、システムの更新や仕様策定のときにそう変換するルールを決めることは大切だ。
では、「ア゛」と入力された場合は?
そして運用をはじめて具体的な例外が次々に出てきて頭を抱えることになるのである。

「チ゛ヤヤ」と登録してしまったデータから「ヂャヤ」を復号することはできないのだ。
かくして「チ゛ヤヤ」のデータも正しいものとして生存し続けることになるわけだ。

タレントの中川翔子さんは、薔子(しょうこ)で命名しようとしたが「薔」が常用漢字でないために登録できず、しかも、促音の「ょ」が「よ」になってしまい本名「しようこ」で戸籍登録されてしまったそうである。あ、ご結婚おめでとうございます!

そんな感じに、名前は役所届け出のときに使えない漢字だの、つかえない読みだのと拒否されシステムにあわせて、担当者の胸先三寸で運用され、そして「正しい」データが増えていくのである。

法務局の屋号はチャヤになったのに銀行はヂヤヤだ。果たして我が社の正しい読み方とはなんぞや?

住所には宛名も含むので当然だが、同じような問題が住所にもおこる。

日本郵便の郵便番号辞書CSVのダウンロードページに行くと面白いものが今でも見れる。
読み仮名データの促音・拗音を小書きで表記しないものと、小書きで表記するものがある。
例:ホツカイドウ
例:ホッカイドウ

何故2023年にもなって「ホツカイドウ」のデータを残しておく必要があるのか?
名寄して変換できるじゃないか!というモノのみ石を投げよ。
マサカリが投げ返されることであろうぞ。

このペースで書いていくとあと2回ぶんぐらい続きそう。

他参考

IMIコンポーネントツール
info.gbiz.go.jp/tools/imi_tools/

(前回の投稿)明るい日本の住所表記に安心してくださいはできますか
kuippa.com/blog/?p=2228


明るい日本の住所表記に安心してくださいはできますか


久しぶりにマサカリが飛んでくるネタらしい。
ネットショップを20年近くやってると、うちみたいな弱小零細でも何万何十万と住所処理を処理することになり言わずには居られない鬱憤もたまる。
つくづく日本語のシステム、データベース化は難しい。

英語であればアルファベット24文字と大文字小文字ぐらいなのでUpper()なりlower()なりでどちらかに統一すれば検索できる。
日本語は漢字、ひらがな、カタカナぐらい?
漢字は一般的なコンピューターシステムでサポートされているJIS系の第1~4に補助漢字までいれてだいたい約16,000字ぐらいが一般的なフォントで対応されている。
ということは、24文字を1万6千文字に増やした分だけ頑張らなきゃいけないのか! それは大変だね!!

・・・なんていう枠には収まらない。

だからこそ、地獄のフタを一度でも開けた人たちはマサカリを投げつけるのである。完全に理解した曲線のバカ山の能天気さは絶望の谷底からみると眩しすぎるのだ。
地獄に落ちてしまった亡者が手をのばすほどには。

16000文字÷24文字=666.66666666666倍

そこは決して開けてはいけない地獄のフタなのである。

分かち書きカカシ先生は脳みそを求めて旅に出る地獄

ちょいと前に話題になった動画に「変なAI」というのがあった。

雨穴さんの【科学ホラーミステリー】変なAI
www.youtube.com/watch?v=NAv0aScEQm0

このホラーミステリー的な動画では作中にAI「kakashi」というのが出てくる。カカシと聞くと、インターネット老人会の人たちはすこしざわざわする。

古い話し。

kakashi、実は2000年の頃に実在していて、かつては全文検索エンジンをつくるのに、kakashiやらnamazuやらをつかって分かち書き、インデックス化をしている時代があった。

分かち書きというのは、英語の場合は単語と単語の間がスペースで区切られているため、単語で検索することができるが、「日本語 は 文中 に 区切り が ない」ので、こんな感じ分解してやる。

チャセンやらメカブやら形態素解析が一般化する前までは突っ込まれたテキストをどこで区切るのかは実に大問題で、無計画な全探索などをおこなってしまうと一生かけても応答しないぐずのろ検索エンジンになってしまうのだ。そんな風に予め持っている手持ちの辞書と突き合わせて文章を細切れにして索引をつけておく必要があった。

愛知海部飛島新田竹之郷ヨタレ南ノ割

これは日本一長い住所から、あえて郡とか字の区切り文字表記を抜いたものであるが、日本人の何人がこれを正確に分かち書くことができるだろうか?線でも引いて区切ってみてほしい。

正解はこれ。

愛知県 海部郡 飛島村 大字飛島新田 字竹之郷 ヨタレ南ノ割

人間に難しいことはAIにも難しい。
2023年現在、だいぶ進化したとは言え、ChatGPTに日本語の文字数を尋ねるとおかしな答えが帰ってくることがある。夏を季語に俳句を読んでもらった。

2023年なうてのAI、ChatGPTさんは俳句を読めても、それが何文字ですか?みたいな人間には簡単に見える質問には満足に答えることができないことがある。ここに日本語の難しさがある。

もしかしたらこれは、GPTの学習が「日本語」ではなく、文字コードのバイナリで線形学習していることによる弊害かもしれない。存在しない「視覴」なる単語を使いだしたという騒動を見ているとその確信を強くするが、マルチモーダルを目指す過程に今この瞬間だけ見ることができるマルチバイト言語に現れた時代の徒花と考えれば、音数え 趣深し 梅雨の藍。

これはおもしろい。UTF-8とChatGPTのトークン:
視覴 e8 a6 96 e8 a6 b4 |25038|244|25038|112|
視覚 e8 a6 96 e8 a6 9a |25038|244|25038|248|
視聴 e8 a6 96 e8 81 b4 |25038|244|36735|112|
「覚」の前半と「聴」の後半がくっついたみたい t.co/oSpUfNxsUN— Haruhiko Okumura (@h_okumura) June 8, 2023

ちょっとだけ解説すると、文字コードのUTF-8のバイナリはリバースにスタックされてるので日本語化するときは読み込み順を逆にしてからエンコードしてやらにゃならない。U+07FFみたいなんがバイナリ読み込みするとFF07みたいに拾われてくるので07FFに結合してUTF-8でデコードする感じ。これはUTF-8が1-4バイトの可変長であることに多分由来しているんだろうけど詳しくは知らんし自分には荷が重いので、ここではそんな地獄もあるよと軽く触れる程度で終える。しらんけど。

地名の読み方無限地獄

日本語を分かち書くことはただでさえ難しいのに、さらに厄介なことに、固有名詞、地名はさらに輪をかけてそれを困難にする。

地名をなんと読むか、読めない地名をどこで区切るかは母語を日本語にする人にもとても難しい問題だ。
そのため表現も揺らぎやすい。
やがて同じ読みでもいくつも書き方が存在するようになる。

山手、山の手、山ノ手。

ひとつの書き方にいくつも読み方、ひとつの読み方に複数の書き方が存在するようになる。
山手と書いて、やまのてと読んだり、やまてと読んだり、どちらでも正解だったり、読み方が決まっていたり、あるいはどちらとも間違いだったりする。会社によって自治体によって運送会社によって正解が変わる。東京にも山の手はあるし神奈川にも神戸にもある。

これに方言も混じれば読み方がさらに増え、さらに書き方が増える。
こんな風にして地名は発散する。

昨年ニホンゴムズイという、アプリを習作がてら作った。
歴史的な経緯(?)から千葉県にはとてもむずかしい難読地名が多いのだけど、それを4択クイズにしただけのそんなにおもしろくもないゲームだ。

※ 今はAppleデベロッパライセンス切れ(?)でダウンロードできないけど、一応リンクだけ残しておく
apps.apple.com/jp/app/%E3%83%8B%E3%83%9B%E3%83%B3%E3%82%B4%E3%83%A0%E3%82%BA%E3%82%A4/id1608182925

我孫子市、富津市、酒々井町、東庄町

匝瑳市、鋸南町、八街市

読めるだろうか?

正解は・・・

我孫子市(あびこし)、富津市(ふっつし)、酒々井町(しすいまち)、東庄町(とうのしょうまち)、匝瑳市(そうさし)、鋸南町(きょなんまち)、八街市(やちまたし)

千葉県の基礎自治体だけをあげつらっても、ごらんの難読さ加減。

ちなみ、今ちらっとゲームのデータを見てきたのだけど、千葉県では地名に使われる漢字は常用漢字うち737文字しか使われておらず、1538が不使用となっている。逆に139文字は常用漢字以外の漢字が使われていた。

同表記なのに別の場所という例もある。

181-0016 東京都三鷹市深大寺と182-0012 東京都調布市深大寺は数キロと絶妙に離れているが連続した一体エリアではない。


調布深大寺にある植物公園は神代寺植物公園だの神代高校だの、神代とする別の漢字表記もある。
深大寺がお寺の名前に由来しいて、神代は神代村に由来しているわけだが、こんな風にすこしの区別付けのために漢字表記をあえて変えた。そしてその変更にはそれなりのこだわりがあったので放棄するわけにはいかない。
三鷹の深大寺と調布の深大寺はまだ自治体が別だからよかった。だが、もし合併したら?

630-8016 奈良県奈良市南新町(みなみしんちょう)(52~212番地)
630-8356 奈良県奈良市南新町(みなみしんまち)(1~32番地)

950-3323 新潟県新潟市北区東栄町(とうえいちょう)
950-3104 新潟県新潟市北区東栄町(ひがしさかえまち)

673-0012 兵庫県明石市和坂(わさか)
673-0012 兵庫県明石市和坂(かにがさか)

住所については、例外の枚挙には暇がないのである。
そして永遠に地名は増殖する。

なんかまだまだまだまだいい足りないが、長くなったのであと2回ぐらいはつづく

参考

とにかく日本の住所のヤバさをもっと知るべきだと思います
note.com/inuro/n/n7ec7cf15cf9c

住居表示に関する法律
elaws.e-gov.go.jp/document?lawid=337AC0000000119

愛知県海部郡飛島村大字飛島新田字竹之郷ヨタレ南ノ割は本当に日本一長い地名か?
dailyportalz.jp/kiji/140708164564


正規分布と障害


あ、あ、あ。
文を読むということはとてもむつかしい。下手に漢字をひらいても読みにくいし、修飾子と非修飾語を離したり、句点を、こんなふうに、やられるのは、とても、よみにくい。難解な漢字もなく、たとえ音読をできたとしても、そこに何が書かれているかの文意をくみ取ることは、目が滑るばかりで、なにより、よほどむつかしい。3割の日本人は日本語が読めないなどとひとはいふが、読みにくく書かれたものはことさらにむつかしい。

3割と書いたが、そもそも割り算はむつかしいものだ。分数でふるい落とされる小3を9歳の壁といったりするそうだが、割り算の概念は足し算や引き算、掛け算と脳の使う場所が違うのだとかなんだとか。老人ホームなんかでも割り算が先にだめになるなんてのをどっかで読んだような聞いたような。ケーキを等分できない人たちがいるそうだけど、むべかるかな。割り算に必要な抽象化ができないと、計算はできるが割り算がわからない。割り算がわからないと並び替えができない。並び替えができなければ優先順位付けやリソースの分配はできない。

さて、さて。
ちゅう事で、掲題からもわかるとおり、ちょいと障害がらみのセンシティブなところに踏み込んだ内容になりそうだったので、無駄なまくら文章を書いてみた。4行以上の文は基本読まれないし、グラフや幾何的な情報から情報を浚うことはむつかしいので多分大丈夫。

そんなわけで、正規分布のお話し。

これは平成31年の小学校6年生男子の身長の分布図。
こういう真ん中にもっとも厚みがくる分布は正規分布、ベル型(ベル曲線)と言われたりするもっとも典型的な分布だ。いろんなものを、適当な評価軸と粒度で分解して並べて積んでいくと、正規分布的な図形になることが多い。
体重だったり、足の速さのような身体能力だったり、テストの点数など。
だけども「ものさし」、分解や粒度を間違えると正規分布と呼ぶにはいびつな分布になることがある。

これは平成31年の高校3年生の身長の分布図。
中央のもりあがりの部分が2つにわかれているように見えるのは、なんのことはない、これが男女をわけていない身長の分布だからだ。

これを男女別々に分布を取ればきれいな正規分布の曲線が2つとれる。お山が2つあるので二項分布と呼ばれたりする。身長は年齢や性別と相関があるので、これを無視して結果を混在させると、要素によってお山が割れたりする。逆に多項分布になったときは、その要因を見極めて分解してやれれば、正規分布を得ることができたりするものだ。(ここでは説明はしないけど算術平均、最頻値、中央値ぐらいは知っておくと、幸せになれるとおもうので、もし知らなければ統計本の一冊でいいから読んで損はない。)(男子の「169じゃない170だ!」というのが統計からも見えて涙ぐましい。)

だが、世の中そんなにすべてが綺麗に正規分布をとるわけではない。
先の男女ごちゃまぜにした身長の分布のように、要素の分解を間違えると、比較が意味のないデータ群になったりすることもある。赤ん坊や寝たきりの老人まで混ぜた50m走の結果には、計測不能データが多く混じることだろう。50m泳法バタフライなんかになれば、さらに計測不能だらけだ。

フルイにかけて粒を同じようなもので並べて、測る、計る、量る。
はかった結果、比較可能な数字にするのは割り算だ。粒度の設定が必要になる。
身長ならセンチというものさしをつかっての割り算で、人間の体重ならキログラムというスケールを用いる。だが金魚の体重ならグラムで、クジラの体重はトンで比較せねばなるまい。コホート、ものさしが一緒だから並べることに意味がでてくるし、並び替えたり、その分布をみて比較、並び替えができる。

分布が集計により統計的にわかっているから、例えば身長ひとつとっても、異常値や外れ値がわかるのであり、それを判断材料として、なにかしらの対応が必要なものを判別することができるわけだ。逆に統計がみえないと、個別のエピソードで悲劇を語ったり、自身が体感した観測範囲でしかものを言えなくなる。リスクとベネフィットの比較はできず、ワクチン反対運動とかコロナなんてただの風邪とかエビデンスなにそれになる。

オリンピックのような競技大会は、大会に参加するのに参加標準記録のようなフィルターを設けたり、格闘技であれば、体重階級別に分けたり、風速などを揃えたりすることで、結果の分布が正規分布に近づくルール設定がなされる。昨今はLGBTQがらみで元男性アスリートが女子大会に出て記録上位を攫って物議を醸したりしていたが、女子の大会結果だけが多項分布になるようなことが続くのであれば競技としては別のルールが制定されるだろう。結果の点数分布が正規分布とは程遠い形になるになるような競技やテストには、環境や作題に問題がある場合がある。


標準正規分布がもつ確率密度関数のグラフ

±2σ 以下だと 95.45%がその中におさまり、±3σでは99.73%はその範囲に収まる。
±3σに収まらないのは稀な存在ではあるが、例えばそれが学校の成績のようなものであれば、主席とビリッけつのようなもので、ありはするものだ。

はて、さて、この±3σにも収まらない例外を人間社会はどう扱うのだろうか。
特に日本は標準を尊ぶので、上にも下にも外れるとなかなか厳しい社会ではある。
能力、年収、容姿。上に抜けても下に抜けてもずいぶんと大変そうだ。
政治信条(政治的スペクトル)が右左3σから外れるような主張はもはや見なかったことにされるだろう。
逆にyoutubeやInstagramなんかのSNSは、±3σからはみ出る極端さがないと、注目を集めない。

運動能力や知的指数であればどうか。±3σから外れれば身体障害者や知的障害者として99%の人たちから保護される対象になるかもしれない。逆に、±2σに収まる95%の人がそうであるようなものを病気として、社会全体が支える社会保障対象にするのは成立しないだろう。(なので、身長無視して腹囲85cm以上は一律メタボとか言うのやめよー?)

知能指数も正規分布に近い曲線を描くことになるが、知的障害の場合、知能指数は50~69程度が軽度知的障害者となり障害者となるが、知能指数は70~85程度はボーダー(境界域)は障害者ではないとなる。能力は平滑線をとるが、社会的支援は階級的となる。ここには少し悲劇がある。もっと将来はどうだろうか。経済的に付加価値を生み出せる産業が高度な知的産業ばかりになり、そのボーダーがやがて100まで引き上げられたら?120、140・・・と。

加齢により運動機能は低下する。ある程度までいくと介護が必要になる。若者が減り、より老老介護に頼らざるをえない状況になったら?

99%の人が1%の人を支える、95%の人が4.5%の人々を扶養する、68%の人が32%の人々をフォローする。それとも、0.5%の人が99.5%の人をひさぐ職をつくることができるのか。はてさて。障害という粒も、やがては、有効数字の彼方に消えゆくものなのかもしれない。

・・・が、過渡期は地獄よな。

参考

学校保健統計調査 / 令和元年度 全国表
www.e-stat.go.jp/stat-search/files?page=1&query=%E8%BA%AB%E9%95%B7%20%E5%88%86%E5%B8%83&layout=dataset&stat_infid=000031925051&metadata=1&data=1

日本人の3分の1は日本語が読めない!?
business.nikkei.com/atcl/NBD/19/special/00261/

正規分布
ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83

知的障害
ja.wikipedia.org/wiki/%E7%9F%A5%E7%9A%84%E9%9A%9C%E5%AE%B3