郵便番号APIサービス、ケンオールをリリースしました。

f:id:moriyoshi:20210206002717j:plain Photo by Yu Kato on Unsplash

prtimes.jp

Webエンジニアの中には、郵便番号を住所に変換する機能を実装したことがある方は少なくないのではないでしょうか。

そして、実装のたびに、以下のようなことを感じた方も多くいるのではないかと思います。

  • KEN_ALL.CSVの中身を覗いて (ウッ) となった経験

    郵便番号データとしてよく利用されるのが、日本郵便の「郵便番号データダウンロード」ページよりダウンロードできる KEN_ALL.CSV ですが、このファイルがかなりの曲者で、一見CSVという形式ではあるものの、同じ郵便番号のデータが複数行に渡って収録されているなど、単純に読み込んで利用することが難しいものとなっています。また、地域によっては住所の重要な構成要素となっている部分 (例えば京都市の住所に見られる「通り名」) が、データとして独立した形で収録されておらず、「町域」の中にカッコ書きで列挙されているなど、機械的に一貫して取り扱うのが難しいデータとなっている特徴があります。

  • どの郵便番号変換ライブラリを使えばいいのか毎回調べてしまう

    GitHubなどを覗いてみても、KEN_ALL.CSVをプログラムから使いやすいように変換してオープンソースのライブラリ化したものがいくつもありますが、適切にメンテナンスされていなかったり、使っている技術が古くて自分のプロジェクトにフィットしないものもあったりするため、都度調べる必要に迫られたりします。

  • ライブラリを使い始めたがデータの更新をサボっていて、いつの間にか数年前のデータで運用されており、たまに住所が見つからないと苦情を受ける

    ライブラリの中に郵便番号データが含まれている場合、郵便番号データの更新のためにはライブラリそのものを更新する必要がありますが、そのための動作チェックなど、やることが少なくないので、ついサボってしまいがちになります。一方で、郵便番号は毎月更新されています。

上記のようなこともあり、開発者自身も (誰かがデファクトとなるサービスをリリースしてくれないかな...) などと思ってきました。しかし、自分が使いやすいと思えるサービスが現時点では見つからなかったため、きっと他の方々も同じに違いないと思い企画したのがこのケンオールというサービスです。

そうして軽い気持ちで開発作業を始めてみましたが、KEN_ALL.CSVの中身についてや住所について調べれば調べるほど、なかなかすごいところに首を突っ込んでしまったな、と思うことが多くありました。

KEN_ALL.CSVのデータをただそのまま返すだけのサービスを作るのであれば難しいことはないのですが、できるだけ幅広いニーズに応えようと周りのサービス運営者たちに色々ヒアリングしてみると、上で述べたような困ったデータ構造や不完全なデータにより、様々な問題が発生していることがわかりました。その中には、顧客に郵送物がうまく届かないことが多くある、など、ビジネス上のKPIに直結する課題もありました。

これらをなんとか解決できないものかと、弊社のデータ解析班はKEN_ALL.CSVのアマゾンの奥地まで切り開き、まだまだ改良する余地はありますが、下記のようにパースしてAPIとしてデータを返却しています。

KEN_ALL.CSV ケンオール
東京都 江戸川区 西瑞江(3丁目、4丁目3~9番) 東京都 江戸川区 西瑞江
東京都 江戸川区 西瑞江 3丁目
東京都 江戸川区 西瑞江 4丁目
京都府 京都市上京区 栄町(大宮通一条上る西入、大宮通中立売下る、智恵光院通一条上る東入) 京都府 京都市上京区 栄町
京都府 京都市上京区 大宮通一条上る西入 栄町
京都府 京都市上京区 大宮通中立売下る 栄町
京都府 京都市上京区 智恵光院通一条上る東入 栄町

現時点でもかなり満足のいく変換結果をご提供できている自負はあるものの、同時にまだカバーできていない住所があることも把握しております。今後は、以下のような機能の拡充を予定しています。

  • カッコ書きで表現される小字や丁目情報の抽出精度の向上
  • 精度の高い住所変換を提供する地域の拡大
  • 住所から郵便番号を引く逆引き機能のご提供

今後も、ケンオールのアップデートにご期待ください!

kenall.jp

f:id:moriyoshi:20170430235850j:plain

Photo by Vista Wei on Unsplash