
欠損値がもたらす検索機能の機能不全と、内部データ活用による補完アプローチ

企業データを見ていると、欠けている欄がたくさんあります。
これは、当たり前のことです。
集めるときに、全部が揃うことはありません。
名刺には郵便番号が書いていないことがある。
ホームページには住所が載っていても、番地までとは限らない。
空欄が多いと、何が困るのか。
まず、絞り込みが効きません。地域で絞ったとき、郵便番号の入っていない会社は、候補から外れます。その会社が対象外なのではありません。判断する材料が無いだけです。けれど、画面の上では、同じに見えます。
情報が無い会社は、条件に合わない会社として扱われてしまう。
しかも、絞り込んだ結果の一覧は、正しく見えます。外れた会社は、外れた理由ごと、見えなくなっているからです。何社が、材料不足のせいで外れたのか。それは、画面のどこにも出てきません。
欠けている分を、どう埋めるか。
いちばん素直な方法は、調べることです。外の情報を見にいって、足す。
ただ、その前にできることがありました。
外を調べにいく方法には、費用と時間がかかります。
1件ずつ、どこかへ問い合わせる。数十万件あれば、それだけで大仕事です。しかも、調べた結果が正しいとは限りません。
それでも、欠けている欄を前にすると、目は、外へ向かいます。
無いものは、外から持ってくるしかない。そう思い込んでいたからです。
手元にある情報だけで埋まるなら、そのほうが、速くて、確かです。
住所と郵便番号は、対応しています。住所が分かれば、郵便番号は決まります。郵便番号が分かれば、住所の途中までは決まります。
つまり、どちらか一方があれば、もう一方は、外を調べなくても埋まる。同じ会社の中で、欄から欄へ移すだけです。
「表記ゆれ」の正規化という泥臭い作業。一意に決まらない例外は空欄のままにする

対応表そのものは、公的に公開されています。
全国の郵便番号と、それに対応する住所の一覧です。定期的に更新されます。これを取り込んで、手元に持ちました。
そのうえで、2つの補完をします。
- 住所があって郵便番号が空なら、住所から郵便番号を引く。
- 郵便番号があって住所が空なら、郵便番号から住所を引く。
言葉にすると、ごく簡単な話です。
実際にやってみると、簡単ではありませんでした。
日本の住所は、書き方が揃っていません。
漢数字で書かれた番地。
算用数字で書かれた番地。
ハイフンでつないだもの。
丁目・番地・号を、そのまま書いたもの。
全角と半角が混ざっているもの。
都道府県から書いてあるものと、市から始まっているもの。
ビル名が入っているものと、入っていないもの。
この状態のまま対応表と突き合わせても、ほとんど一致しません。一致の少なさは、仕組みの間違いを疑うほどでした。対応表が悪いのではありません。こちらの住所が、ばらばらなだけでした。だから、まず整えます。
数字の書き方を揃える。
記号を統一する。
都道府県が省略されていたら、補う。
ビル名や部屋番号は、切り離して別に持つ。
整えてから、突き合わせる。
この「整える」ところが、作業のほとんどでした。
厄介だったのは、例外の多さです。
同じ郵便番号に、複数の住所が対応することがあります。
1つの町名に、複数の郵便番号があることもあります。
大きな建物には、階ごとに番号が振られていることがあります。
つまり、対応表は、きれいな一対一の関係ではありません。一意に決まらない場合は、補完しません。候補が複数あるなら、選ばずに空のままにします。埋めることが目的になると、間違った値で埋めてしまいます。空欄は、間違った値より、ずっと扱いやすい。
トレースアビリティ(追跡可能性)の確保。1つのデータクレンジングが名寄せ精度を底上げする

整える処理は、一度作って終わりにはなりません。
新しいデータを取り込むたびに、これまで見たことのない書き方が出てきます。
丁目を漢数字で書いたうえに、番地を算用数字で書く。
建物名の前に読点が入っている。
住所の末尾に、部署名が続いている。
そのたびに、規則を1つ足します。このやり方には、終わりがありません。終わりがないので、どこかで区切りを決めました。
出てきた頻度の高いものから、順に対応する。
1件しか出てこない書き方は、追いません。
補完には、慎重にしたところがあります。
上書きは、しません。
すでに入っている値には、触れません。埋めるのは、空欄だけです。
理由は単純で、すでに入っている値のほうが正しい可能性があるからです。
会社が独自の郵便番号を持っていることもあります。移転して、まだ対応表に反映されていないこともあります。
こちらの持っている対応表は、正しい。
けれど、目の前の1社について、こちらより詳しいとは限らない。
もうひとつ、補完したことを記録に残しました。
その値が、もともと入っていたものなのか、こちらが埋めたものなのか。区別できないと、あとから検証できません。
この記録は、あとで役に立ちました。
補完の規則を1つ変えたとき、影響を受けるのは、こちらが埋めた値だけです。もともと入っていた値には、触れません。区別が付いていなければ、規則を変えるたびに、全部を作り直すことになります。第8話の話と同じで、作り直すのが怖い作りは、改善が止まります。
補完できた件数は、想像より多いものでした。
住所が入っていて郵便番号が空、という組み合わせは思っていたよりずっと一般的です。
名刺から入力すれば、そうなります。
ホームページから拾っても、そうなります。
郵便番号は、たいてい、後回しにされる項目でした。
この機能を入れて、いちばん効いたのは、実は郵便物ではありませんでした。名寄せです。
住所が整った形で入っていると、同じ会社かどうかの判定が、はっきりします。ビル名の有無で別会社に見えていたものが、同じ会社として結びつくようになりました。
郵便番号が揃っていると、地域での絞り込みも正確になります。
1つの欄を整えると、その欄を使っている全部の機能が、少しずつ良くなる。逆に言えば、1つの欄が汚れていると、全部が少しずつ悪くなります。そして、悪くなり方が薄く広がるので、原因として名指しされません。どの症状も、単体では小さいからです。小さい症状は、そういうものだと思われて、残り続けます。
「検索がいまいち当たらない」
「同じ会社が二重に出る」
「地域で絞ると件数が合わない」
どれも、住所の書き方が揃っていないせいでした。
症状は3つ、原因は1つ。こういう形のとき、症状のほうを1つずつ直そうとすると、時間だけがかかります。
誰も喜ばないデータメンテナンスの真価。すべての不具合は「いちばん下の欄」から始まる

対応表は、定期的に更新されます。
町名が変わる。新しい番号ができる。統合される。
だから、取り込む仕組みも定期的に動かします。
更新したときに、すでに補完した値をどうするかも決めました。
こちらが埋めた値については、見直します。
もともと入っていた値には、触れません。
区別を付けておいたことが、ここで効きました。
一度きりの作業として作ると、たいてい、次の更新で困ります。
データを整える仕事は、成果が見えにくいものです。新しい画面ができるわけでもなく、新しい機能が増えるわけでもない。「郵便番号が埋まりました」と言っても、それだけでは、誰も喜びません。
埋めた欄は、埋まってしまえば、最初から埋まっていたように見えます。
けれど、埋まっていない状態のまま、その上に機能を積んでいくと、どこかで必ず、変な結果が出ます。そして、変な結果の原因は、たいてい、いちばん下の欄にあります。
欠けている情報は、たいてい、別の欄に形を変えて残っています。
外を探しにいく前に、手元をよく見る。
住所の中に、郵便番号は、すでに書いてありました。
━━━━━━━━━━━━━━━━━━━━━━━━
次回予告
第23話「名刺が消える」
名刺を撮ると、会社と担当者が登録されます。
撮った画像は、保存していません。
保存したほうが、便利なのですが。
━━━━━━━━━━━━━━━━━━━━━━━━
リストルは、今日もどこかを直しています。
→ 営業リスト探しに、もう時間をかけない。
業種別に企業情報をまとめて収集できるリストルを、まずは3,000件まで無料でお試しください。👇


