住所データを綺麗にしてみる

本記事では Informatica Intelligent Cloud Services の データ品質/Cloud Data Quality で利用できる「住所クレンジング」についてご紹介します

#はじめに
顧客マスタや企業マスタなどに格納されている「住所」は綺麗ですか?
例えば、こんな状態になったりしていませんか?

- 住所の一部が欠落している
- 漢字/ひらがな/カタカナが混在している
- 市区町村合併などで古い住所のままになっている


住所が間違っていると郵送物が届かず大切な連絡ができなかったり、再配送のコストがかかったりと様々な影響があります。かといって、1件1件確認して修正するのも大変です。

Cloud Data Qualityでは日本を含む世界各国の住所辞書を元に、<strong>住所データを綺麗にする(クレンジング)</strong>ことができます。

#Cloud Data Qualityの住所クレンジング
Cloud Data Qualityは「ベリファイヤ」アセットを利用して、日本やアメリカ、中国など240以上の国と地域<sup>(*)</sup>の住所を検証し、正しい住所を提案します。また、住所コードや経度緯度情報の出力もおこなえます。

\* 対応する国と地域は [住所検証 - インタラクティブ世界地図](https://www.informatica.com/jp/products/data-quality/data-as-a-service/address-verification/interactive-country-map.html) で確認できます。

Cloud Data Qualityで作成した「<strong>ベリファイヤ</strong>」アセットをCloud Data Integrationの「マッピング(データ連携処理)」に組み込むことにより、実データの住所をクレンジングし簡単に綺麗にすることができます。

#住所データを綺麗にしてみる
それでは、住所クレンジングを行ってみましょう。

## 「ベリファイヤ」アセットの作成
1. Cloud Data Qualityの[新規]をクリックして、[ベリファイヤ]を作成します。
![01_CDQ_New.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/440742a2-e97c-21af-83a7-2968170ecf2b.png)　
![02_CDQ_Verifier.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/537f1c9d-3cf4-2240-8616-43806af79c30.png)

2. [定義]タブではアセットの名前や説明を入力します。
![03_CDQ_Verifier_Name.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/382bc8e6-af1c-d73c-b47c-8c05ce9c0466.png)

3. [設定]では住所検証時の入出力データを指定します。
![04_CDQ_Verifier_Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/9cefbca9-978b-e7c0-38be-8cf96a9100dd.png)
    今回は次の設定を行いました
    - 入力モデル 【検証する住所のカラム構成(1つのカラムか、都道府県や市区町村ごとに別のカラムか)】
        - 混合
    - 入力 【入力モデルに基づく、入力データのカラム】
        - 住所
            - 住所1
        - 郵便番号
            - 郵便番号1
    - 出力 【ベリファイヤで検証した結果の出力カラム】
        - Single address elements
            - 管理部署
                - 管理部署ISO 1 (県コードが出力されます)
            - 国
                - ISO3国番号1 (日本であればJPNと出力されます)
        - Preformatted data
            - 最終行
                - 最終行1 (郵便番号＋住所が出力されます)
        - Enrichments
            - ジオコーディング
                - ジオ座標緯度, ジオ座標経度
            - Country Specific
                - 日本
                    - 町名字コードJP
</detail>

4. ベリファイヤの検証条件などを指定するため、画面右上のアクションメニューから[設定]を選択します。
![05_CDQ_Verifier_Setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/ac1d36c0-a5e0-7620-8ae7-41529a08c45d.png)

5. [入力設定]タブでは住所辞書が参照する国を指定します。ここで指定する代わりに元の住所データに国コードなどを付加して複数の国を一度に検証することもできます。
![06_CDQ_Verifier_Setting_Input.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/3f5b9ef7-0ad5-fc37-cc0c-bbe1d93c668b.png)

6. [プロセス設定]タブでは検証モードや範囲を指定します。検証モードの[提案付き検証]では曖昧または不完全な住所に対してはいくつかの候補住所を提案します。
![07_CDQ_Verifier_Setting_Process.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/153b8b0b-dd37-3d3b-49f3-d2bf82741127.png)

7. [結果設定]タブでは出力データに適用するフォーマットオプションを指定します。
![08_CDQ_Verifier_Setting_Result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/943dfbdc-3c79-79da-eb05-f32ee17a142b.png)

8. ベリファイヤアセットを保存します。

##ベリファイヤアセットのマッピングへの組み込み
Cloud Data Qualityで作成したベリファイヤアセットをCloud Data Integrationのマッピング内で呼び出します。なお、本記事ではマッピングの基本的な操作方法の説明は省略します。

1. Cloud Data Integrationの[新規]をクリックして、[マッピング]を作成します。
![09_CDI_New.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/6036dbab-3ea4-d64c-0ae8-9f13f6f1e833.png)
![10_CDI_Mapping.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/4a1ad378-ef24-7a9b-c315-150702b8b6a1.png)

2. [ソース]トランスフォーメーションに検証を行う住所データを指定します。
3. [ソース]トランスフォーメーションと[ターゲット]トランスフォーメーションの間に[検証用]トランスフォーメーションを追加し、さきほど作成した<strong>「ベリファイヤ」アセット</strong>アセットを指定します。
![11_CDI_Mapping_Verifier.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/df24fabe-0bb7-745d-a646-c190651ddd2a.png)

4. [フィールドマッピング]タブで[ソース]トランスフォーメーション(住所データ)のカラムを[検証用]トランスフォーメーションのカラムに紐付けます。
![12_CDI_Mapping_Verifier_FieldMapping.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/ef40949e-6c6b-effc-f170-73794ad50162.png)

5. [ターゲット]トランスフォーメーションに検証結果の出力先を指定します。
6. マッピングを保存して実行すると、住所の検証が行われます。

#検証結果
今回は次のデータを検証してみました。

| No | 郵便番号 | 住所 | 備考 |
|---|---|---|---|
|1  |162-0845|東京都新宿区市谷本村町|正しい住所表記|
|2  |162-0845|東京都新宿区市ヶ谷本村町|市ヶ谷の<font color="Red">ヶ</font>が不要|
|3  |   |東京都新宿区市谷本村町|No.1の郵便番号なし|
|4  |   |東京都新宿区いちがや本村町|郵便番号なし、かつ、一部ひらがな|
|5  |510-0101|三重県三重郡楠町小倉|市区町村合併前の住所 (現在は三重県四日市市楠町小倉)|

住所検証後の結果です。No.は入力データに対応しています。

| No | 管理部署ISO_1 | ISO3国番号1 | 最終行1                            | 一致率 | ジオ座標緯度 | ジオ座標軽度 | 町名字コードJP |備考|
|----|---------------|-------------|------------------------------------|--------|--------------|--------------|----------------|---|
| 1  | 13            | JPN         | 〒162-0845東京都新宿区市谷本村町   | 100.00 | 35.693191    | 139.729618   | 13104017000    |一致率100%で正しい住所です|
| 2  | 13            | JPN         | 〒162-0845東京都新宿区市谷本村町   | 91.55  | 35.693191    | 139.729618   | 13104017000    |<font color="Red">ヶ</font>が削除されました|
| 3  | 13            | JPN         | 〒162-0845東京都新宿区市谷本村町   | 100.00 | 35.693191    | 139.729618   | 13104017000    |正しい住所なので郵便番号が付加されました|
| 4  | 13            | JPN         | 〒162-0845東京都新宿区市谷本村町   | 100.00 | 35.693191    | 139.729618   | 13104017000    |ひらがなが漢字に修正されました|
| 5  | 24            | JPN         | 〒510-0101三重県四日市市楠町小倉   | 59.40  | 34.921688    | 136.627536   | 24202290000    |市区町村合併後の住所に修正されました|


#まとめ
Cloud Data Qualityの<strong>ベリファイヤ</strong>を利用することにより、住所のクレンジングを簡単に行うことができます。
住所が綺麗になることにより、顧客マスタ統合時などの名寄せもより正確に行うことができます。
ぜひ、みなさんの住所データをクレンジングしてみてください。

#おまけ
インフォマティカではData as a Serviceとしてデータの住所/電話番号/メールアドレスの検証サービスもご提供しています。
詳しくはこちらのサイトを参考にしてください。
[Data as a Service (DaaS)](https://www.informatica.com/jp/products/data-quality/data-as-a-service.html)