Nature株式会社様でケンオールが採用されました

Nature 株式会社様が、2021年3月に、Natureスマート電気住所登録ページの郵便番号住所検索としてケンオールを採用されました。 Natureスマート電気は、同社のスマートリモコンNature Remoとの連携など、スマートな電気の利用を提案する電力小売サービスです。

お客様の言葉: お客様への連絡用住所の登録ページにてケンオールを利用しています。利用しやすいライセンスであったこと、自分で郵便番号データをパースをする必要がないことが採用の決め手になりました。

ケンオールについて

「かゆいところにケンオール」

ケンオールは、郵便番号住所検索APIをはじめとした、システム開発を加速する高品質で安全なAPIサービスです。

サービスを試してみたい方はこちらから: kenall.jp

この記事はShodoで執筆されました

ケンオール通信第6号

ケンオール開発チームです。

今回は、郵便番号データの更新と、株式会社エス・エム・エス様の導入事例を紹介します。

前号はこちらです。

郵便番号データの更新

2021/04/30(金)に、日本郵政様の郵便番号データの更新に伴い、ケンオールのデータも更新しました。

事例紹介: エス・エム・エス

株式会社エス・エム・エス様が、2021年4月に管理栄養士・栄養士のコミュニティ エイチエ にケンオールを導入されました。 エイチエは先日サイトのリニューアルを実施しまして、リニューアルの舞台裏を技術ブログに掲載しています。 こちらも是非お読みください。

https://tech.bm-sms.co.jp/entry/2021/04/20/120000

お客様のコメント:

会員登録時の住所入力システムでケンオールを採用しています。高精度なために正確な住所を補完できてユーザーのストレスを減らせることと、法人運営による安心感があることが採用の決め手になりました。

ケンオールについて

「かゆいところにケンオール」

ケンオールは、郵便番号住所検索APIをはじめとした、システム開発を加速する高品質で安全なAPIサービスです。

サービスを試してみたい方はこちらから: kenall.jp

この記事はShodoで執筆されました

ケンオール通信第5号

ケンオール開発チームです。

今回は、トップページの刷新と、クラウド型業務・経営管理システム boardへの導入事例を紹介します。

前号はこちらです。

トップページ刷新

ケンオールのトップページが新しくなりました。

イラストレーターのshigureniさん描き下ろしの、サメの絵がチャームポイントです!

新しいページはこちらからご確認ください。

事例紹介:クラウド型業務・経営管理システム board

クラウド型業務・経営管理システムのboardに、ケンオールが導入されました。

請求書などの書類作成時における、顧客登録時の住所入力機能にケンオールを導入していただきました。 「常に最新のデータを使えるだけでなく、町名とビル名などの異なる要素が分離して提供されているので、住所入力の精度を向上させることができました」というコメントをいただいています。 boardのニュースでも、ケンオールの導入を紹介していただいていますので、是非そちらもお読みください。

ケンオールについて

ケンオールは、多くの開発者にとって悩みだった郵便番号住所検索機能をメンテナンス不要で簡単に使えるようにするためのAPIサービスです。

サービスを試してみたい方はこちらから: kenall.jp

この記事はShodoで執筆されました

ケンオール通信第4号

ケンオール開発チームです。

今回は、郵便番号データの更新、新機能の市区町村API、郵便番号10桁化対応、郵便番号データの複数レコード結合処理を紹介します。

前号はこちらです。

郵便番号データの更新

2021/03/31(水)に、日本郵政様の郵便番号データの更新に伴い、ケンオールのデータも更新しました。

新機能: 市区町村API

都道府県以下の市区町村を取得するAPIの提供を開始しました。

このAPIの利用には、総務省の提供する全国地方公共団体コードが必要になります。 全国地方公共団体コードは、都道府県コード2桁、市区町村コード3桁で構成されている、日本の地方公共団体に付与されたコードです。総務省の提供するデータでは、最後にチェックディジットが加わっているため、6桁のコードとなっています。 都道府県コードは、JIS X 0401で定義されている他、 国土交通省等の各種公的機関でもデータが公開されているため、すぐに取得可能です。

ケンオールのドキュメントでも、都道府県コードをJSON形式で公開しています。

以下のAPI例では、東京都(都道府県コード13)の市区町村の一覧を取得できます。

https://api.kenall.jp/v1/cities/13

このAPIリクエストからは、以下のようなレスポンスが返ってきます。

{
  "version": "2021-03-31",
  "data": [
    {
      "jisx0402": "13101",
      "prefecture_code": "13",
      "city_code": "101",
      "prefecture_kana": "トウキョウト",
      "city_kana": "チヨダク",
      "prefecture": "東京都",
      "city": "千代田区"
    },
    ...
}

市区町村APIは、こちらのデモページですぐに試すことができます。

詳細は、ドキュメントをご参照ください。

郵便番号データ処理の秘密(1)複数行のレコードの結合処理

日本郵便様が公開している郵便番号データを利用しやすい形にするためには、複雑な加工処理が必要になります。 今回は、そのうちの1つ、複数レコードの結合処理を紹介します。

郵便番号データの説明のページには、以下のように記載されています。

全角となっている町域名の文字数が38文字を超える場合、また、半角カタカナとなっている町域名のフリガナが76文字を越える場合には、複数レコードに分割しています。

郵便番号データを一般的なテーブル形式で扱うためには、まずこの複数レコードを結合する必要があります。

例として、郵便番号 9218046 (石川県金沢市大桑町、および三小牛町の一部)の町名部分を取り出してみましょう。この郵便番号は、以下の6行で構成されています。

大桑町(ア、イ、ヰ、ウ、上野、ヲ、オ乙、鐘搗山、上川原、上猫下、
ク、ケ、御所谷、小寺山、シ、下上野、下西欠、平、チ、ツ乙、ツ丙、テ、ト、
中上野、中尾山、中平、中ノ大平、西ノ山、猫シタイ、ノ、ハ、開、
法師山、坊山、マ、鱒川淵、ム、元末、元涌波庚、ヤ、リ、ル、レ乙、
レ甲、ロ乙、ロ甲、和)
三小牛町(ヘ)

このデータを結合するためには、レコードの前後を見て、同じ郵便番号のレコードであることを確認する必要があります。 しかし、それだけではうまく結合できません。 この郵便番号は、単に1つのレコードが複数レコードになっているだけでなく、2つのレコード(大桑町と三小牛町)に同じ郵便番号を付与しているという特徴があります。よって、そのまま全て結合してしまうと、2つの町が1つのレコードで表されてしまいます。

この問題に対する解決方法はいくつかありますが、ケンオールでは現在のところ以下の仮説を採用しています。

  • 全データを確認したところ、町域名が38文字を超える場合は、括弧が開いていて、括弧が閉じていないケースのみ
  • よって、括弧が閉じるまでのレコードを結合すれば、町名を正しく分割可能

この仮説は、括弧なしで38文字を超える町域名が生まれた場合は成り立ちません。その場合は別の方式を採用する必要があるでしょう。

ケンオールでこの郵便番号をどう処理したかを見たい場合は、こちらのデモ で郵便番号 9218046 を入力して試してみてください。

レコードの結合が完了したら、いよいよ本格的なデータ処理が始まります。 その話はまた別の機会に紹介します。

新機能?? 郵便番号10桁化対応

※4/2 0:15追記: 本機能は4/1のエイプリルフールにあたりご提示していたものであり、お客様の実運用を前提としてご提供していたものではありません。実サービスの提供に影響がないよう入念に注意を払って準備したものであり、実績値としても影響はございませんでしたが、不備があった場合には細かい点でも結構ですのでお問い合わせフォームよりお知らせください。謹んでご意見を賜ります。

日本の郵便番号は、郵便物数の増加に伴う業務量増加への対応として、1998年に5桁から7桁に拡張されました。しかし、インターネットの普及に伴い、郵便物の通数は2001年の262億通を境に減少に転じ、2017年には172億通と、大きく数を減らしています *1

しかし、郵便番号が用いられているのは郵便物だけではありません。宅配便の取扱個数は、同様にECの普及により取扱個数を大きく伸ばしており、1998年の18億万個から2019年には43億万個と、およそ2.3倍増加しています *2

こうした状況を背景に、郵便番号はサービス品質の向上を目的として、再び桁数を拡張することが予想されます。ケンオールは、独自の調査により、将来的に郵便番号は10桁になるとの情報を入手しました。

他のいかなる郵便番号検索サービスよりも先にお客様に価値をお届けしたいとの想いから、水面下で開発を続けてきましたが、新年度の始まる本日4月1日に郵便番号10桁化対応機能をリリースいたします。

なお、以前の7桁の郵便番号と10桁の郵便番号は互換性があり、7桁郵便番号の左を0で埋めて10桁にすることで10桁化することができます。 (例: 1000001→0001000001)

本サービスのエンドポイントは以下となります。

https://api.kenall.jp/v999/postalcode/10桁郵便番号

このAPIリクエストからは、以下のようなレスポンスが返ってきます。

{
  "version": "2021-03-31",
  "data": [
    {
      "jisx0402": "13102",
      "old_code": "1046001",
      "postal_code": "0001046001",
      "prefecture_kana": "トウキョウト",
      "city_kana": "チュウオウク",
      "town_kana": "ハルミオフィスタワーX",
      "town_kana_raw": "ハルミオフィスタワーX(1カイ)",
      "prefecture": "東京都",
      "city": "中央区",
      "town": "晴海",
      "koaza": "",
      "kyoto_street": "",
      "building": "オフィスタワーX",
      "floor": "1階",
      "town_partial": false,
      "town_addressed_koaza": false,
      "town_chome": false,
      "town_multi": false,
      "town_raw": "晴海オフィスタワーX(1階)",
      "corporation": null
    }
  ]
}

APIがみなさまの将来のシステム更改に備えるための礎石となることを願ってやみません。

※本機能は4/1バージョンのため、ドキュメントはご用意しておりません。また、突然存在を消すことがあります。

ケンオールについて

ケンオールは、多くの開発者にとって悩みだった郵便番号住所検索機能をメンテナンス不要で簡単に使えるようにするためのAPIサービスです。

以下のリンクからサービスを利用することができます。

kenall.jp

この記事はShodoで執筆されました

ケンオール通信第3号

ケンオール開発チームです。

今回は、ケンオールグッズの紹介と、Swiftクライアントの紹介、そしてケンオールが取り扱う「郵便番号」とは何か、を紹介します。

前号はこちらです。

ケンオールグッズ

すでにTwitterなどでご存じの方もいらっしゃるとは思いますが、ケンオールグッズが完成しました!以下のサイトで購入できます。

https://suzuri.jp/kenall

このグッズはケンオールファンの皆様のために作ったものなので、実費のみをいただいて提供しております。弊社の利益は一切発生しません。(将来的に変更する可能性はあります)

エコシステムツール紹介

今回は、 @woxtuさんが開発した、Swiftクライアントを紹介します。 https://github.com/woxtu/swift-kenall

インストール方法と使い方がREADMEに簡潔に書かれていて、簡単に使えるようになっています。公式ドキュメントへのリンクも貼っています。

郵便番号データの処理が難しい理由

郵便番号データは、気軽にダウンロードして利用できるオープンデータで、プログラミング学習の練習などにもよく使われます。しかし、業務で活用しようと思うと、かなり複雑なデータであることに気づきます。なぜ、これほどまでに処理が難しいデータになっているのでしょうか。郵便番号の正体から紐解いてみましょう。

日本郵便様のサイトには、郵便番号導入の目的を以下のように記載しています。

郵便番号の導入は郵便物処理の機械化の範囲を拡大し、人力に依存する割合の極めて高い郵便事業の効率化を推進することによって、将来にわたってなるべく安い料金で良質な郵便サービスを安定的に御利用いただくことを目的とします。

この記述から、郵便番号はあくまで郵便事業、つまり、物品の配達を目的として導入された仕組みであることがわかります。 これだけを読むと当たり前のように聞こえるかもしれませんが、このことは、「郵便番号は住所を正確に記述することを目的とした仕組みではない」ことを意味しています。

そして、郵便番号のルールのページを見ると、以下のように記載されています。

郵便番号は、町域(特別区又は市町村区域内の町又は字の区域をいいます。ただし、原則として、町の名称に「丁目」を使用している場合は、○丁目を除く部分が同一の区域とし、大字と小字に分かれている場合は、大字の区域とします。)および超高層ビルに設定します。

小字又は通称には原則として、郵便番号は設定しません。ただし、当該小字又は通称が実質的に大字又は公称町名として扱われ、郵便物への記載が多い等必要な場合は、郵便番号を設定することがあります。

この記述から、以下のことがわかります。

1つ目のポイントは、郵便番号は、区域ごとに割り当てられた番号であるということです。これは、特にジオコーディング(住所を緯度経度に変換する処理)に郵便番号を活用するときは注意する必要があります。目的に合ったジオコーディングを行うには、郵便番号が示すエリアのうち、どこを代表点として取るかを慎重に検討する必要があります。

2つ目のポイントは、郵便番号と区域の対応は、住所記述の郵便物への記載量などによって決定されるということです。先述の郵便番号の目的に記載の通り、郵便番号はあくまで郵便業務の効率化のために導入された仕組みです。

ケンオールのように、郵便番号データをシステムとして用いる場合、ユーザが期待するのは「郵便番号を入力したら正しい住所が記載されてほしい」というものですが、以上のことから、本来の郵便番号は「郵便物を効率的に送り届ける」ことを目的としているものである、ということが分かります。

郵便局様に電話して住所の確認を行う作業を始めた頃、以下のような問答をよくしてしまいました。

「○○ですが、これは正しい住所でしょうか?」 「この住所でも届きますよ」

これは、郵便局様からすれば正しい回答で、我々の方が質問の仕方を間違っていたことに後から気づきました。

郵便番号データは、処理が難しいオープンデータとして有名なものの一つですが、それにはきちんとした理由があるのです。

ケンオールについて

ケンオールは、多くの開発者にとって悩みだった郵便番号住所検索機能をメンテナンス不要で簡単に使えるようにするためのAPIサービスです。

以下のリンクからサービスを利用することができます。

kenall.jp

この記事はShodo (https://shodo.ink) で執筆されました。

ケンオール通信第2号

ケンオール開発チームです。

今回は、郵便番号データ・パーサの更新、ケンオール公式JavaScriptクライアントライブラリ、新しいエコシステムツールのご紹介、APIプレビュー機能Pythonパッケージングについての講演、障害情報の紹介をします。

前号はこちらです。

郵便番号データ・パーサの更新

2020/02/26(金)に、日本郵便様の郵便番号データの更新に伴い、ケンオールのデータも更新しました。 また、パーサの処理内容も更新しました。 パーサの更新について、詳しくは 前回のケンオール通信、及び今回のケンオール通信をご参照ください。

ケンオール公式JavaScriptクライアントライブラリ

ケンオールの公式JavaScriptクライアントライブラリをリリースしました。 https://github.com/KEN-ALL/kenall-js

$ npm i @ken-all/kenall

で、簡単にインストールすることができます。

エコシステムツール紹介

Slackアプリ kenall-for-slack

1つ目は、Slackで動かすアプリの紹介です。 @seratch_ja さんが作成した、Slackのサンプルアプリです。 https://github.com/seratch/kenall-for-slack

READMEに書いてある通りに実行すれば、Slack上で簡単に郵便番号検索APIを実行できます。

Rust製CLIツール kenall-rs

2つ目は、 chansuke さんによる、 Rust製のCLIツールの紹介です。 https://github.com/chansuke/kenall-rs インストールして、 kenall-rs <郵便番号> と入力すると、住所をテーブルとして出力してくれます。

PHPクライアントライブラリ kenall.php

3つ目は、 @tadsan さんによる、PHPクライアントライブラリの紹介です。 https://github.com/zonuexe/kenall.php

APIドキュメントだけでなく、初心者・中級者・上級者向けに使い方のヒントを書き分けているなど、丁寧なREADMEを書かれています。

APIプレビュー機能

ダッシュボードでAPIの実行結果をプレビューできるようになりました。ログインしてお試しください。

住所対応のアップデート

前回のケンオール通信で予定していた対応は完了しました。 今回は、さらに追加で調査した結果について紹介していきます。

0993211 北海道網走郡大空町東藻琴(北1区)(更新)

前回のケンオール通信にてパースミスに対応するという報告を行いましたが、最新の調査結果に基づいて対応方針を決定しました。

まず、北海道において、(1区)あるいは(北1区)といった住所表記の郵便番号を持つ地名は以下の6ヶ所です。

これらの地域の集配を管轄する各郵便局様に問い合わせさせていただいたところ、以下のような回答をいただきました。

  • 1区、2区というのは通称であり、正式な住所ではない
  • これらの郵便番号は通常使っていない
  • 現在は町名 + 番地が正式な住所である

よって、ケンオールでは、(1区)などの表記は出力しないように対応しました。

なお、カッコ書きで記載されていない1区などの表記は、今まで通り出力しています。 少なくとも、 0910029 北海道 北見市 留辺蘂町旭1区 については、 留辺蘂町旭1区 という町名が正式に存在するとの回答を留辺蘂郵便局よりいただいております。

この区表記を見て、歴史に詳しい方は、明治30年に制定された「北海道区制」を思い浮かべるかもしれません。しかし、おそらく今回のような住所表記の経緯は、北海道区制ではなく、明治初期に制定されたものの、不評のため数年で廃止された「大区小区制」の名残であると思われます。 北海道庁の北海道市町村自治制の沿革概要には、以下のような記述があります。

(前略) 越えて明治9年9月従来開拓使の本支庁において随意定めた大小区画を廃し、新たに全道を30の大区に分ち、大区の下に166の小区を設け、明治11年6月には選挙によって町村は各2名、小区に2名ないし4名(町村総代人中より互選)の総代人を置き、次いで翌12年7月郡区町村編制法により大小区画を廃し…(以下略)

北海道においては開拓使時代より、各支庁が別個に大小の区画を作成していました。しかし、おそらく大区小区制の施行のために、明治9年に区画の再整備を行ったものと思われます。

このあたりの経緯については現在も調査中のため、また詳しいことが分かったら紹介します。

9398052 富山県 富山市 大泉1区南部

富山南郵便局様より、行政区としては残っていないものの、大泉1区南部までが正式な町名であるという回答をいただきました。 よって、この住所においては町名と小字の分割を行わず、大泉1区南部として出力します(現行から変更なし)

9480012 新潟県十日町市新座(第1、2)(更新)

前回のケンオール通信にてパースミスに対応するという報告を行いましたが、最新の調査結果に基づいて対応方針を決定しました。

十日町郵便局様より、行政区としては第1、第2という表記は残っているものの、正式に住所表記をする場合は新座 + 番地などの形で記載をする(第1、第2と記述しない)という回答をいただきました。

よって、この住所については 第1、第2 という出力は行わないよう対応しました。

Python Charity Talks in Japan 2021.02

Python Charity Talks in Japan 2021.02にて、弊社@aodagが、Pythonのパッケージングの最新情報について講演しました。

ケンオールでも、Pythonコードの部分はpoetryを使ってパッケージ管理を行っています。

障害報告

2/20(土)の深夜1:04から2:13の間、APIの接続ができない状態となっておりました。ご迷惑をおかけして申し訳ありません。詳細については、障害報告をご参照ください。

先週のケンオール通信でお伝えした通り、現在のスタンダードプランではSLAは設けておりませんが、迅速な障害対応および障害報告などを提供できるよう、今後も努力して参ります。

なお、サービスの最新のステータスについては https://status.kenall.jp/ で確認できます。

ケンオールについて

ケンオールは、多くの開発者にとって悩みだった郵便番号住所検索機能をメンテナンス不要で簡単に使えるようにするためのAPIサービスです。

以下のリンクからサービスを利用することができます。

kenall.jp

この記事はShodo (https://shodo.ink) で執筆されました。

サービス障害のご報告 (2021年2月20日)

平素よりケンオールをご利用いただきまして誠にありがとうございます。

日本時間の2021年2月20日0時ごろよりサービス運営に利用しているパブリッククラウドにて障害が発生しており、1時ごろには全く接続ができない状況となりましたが、2時13分ごろに復旧いたしました。この度は大変ご迷惑をおかけし、申し訳ございませんでした。

時刻 (日本時間) 内容
2021年2月20日0時ごろ パブリッククラウドにて障害が発生
2021年2月20日1時4分 API接続が不可能となる (ダッシュボードは稼働)
2021年2月20日1時10分 障害の原因となっている箇所の復旧を試みる
2021年2月20日2時10分 復旧せず、問題箇所をバイパスするようDNSの設定を変更
2021年2月20日2時13分 APIサービス復旧
2021年2月20日6時ごろ 障害原因箇所が復旧
2021年2月20日9時ごろ 手動にて暫定的な変更の切り戻しを行う

現在ご提供中のスタンダードプランではSLAは設けておりませんが、今後も高い品質でのご提供を目指してシステムや体制を改善していく予定ですのでご期待ください。