一筆地址前面含郵遞區號、一筆分欄保存,怎麼比較才不會多算差異?

郵遞區號在地址內外兩種結構的比對

先對齊結構再比較。A 筆可能是「100範例市示範區學習路8號」,B 筆則把 100 放在 postal_code 欄、地址欄只存「範例市示範區學習路8號」。不能直接比整串字,也不能看到前三個數字就一律刪除;門牌本身也可能在字首,郵遞區號必須連同行政區資料判讀。

檢查層次A 筆B 筆結論
郵遞區號候選100100文字相同,仍須核對適用範圍
縣市區範例市示範區範例市示範區可比較
道路門牌學習路8號學習路8號可比較
原始結構同欄分欄保留差異,不視為地址衝突

對齊方式

  1. 保存兩筆 raw_address 與獨立 postal_code 原值。
  2. 只有當開頭數字符合預期長度,後面又能辨識行政區時,才建立 postal_code_candidate。
  3. 用中華郵政資料或查詢確認號碼與行政區是否相容;本站資料精度不足時保持可能。
  4. 建立 address_without_postal_candidate,不覆寫原始地址。
  5. 用地址比較工具比較去除候選後的地址元件。
  6. 分開記錄「地址元件結果」與「郵遞區號結果」,不要揉成單一相似度。
  7. 任一欄衝突或缺漏都交人工,不自動選擇看起來完整的一筆。

若 A 開頭是「100號」而非郵遞區號,誤拆會把門牌刪掉。若郵遞區號不同,也不能只因剩下的地址文字相同就忽略;應查資料版本、投遞區段與輸入來源。

可用地址名單去重工具找大量候選,再按上述欄位覆核;一般格式差異的判斷見不同格式地址比對指南。欄位對齊只是讓比較公平,不表示郵遞區號或門牌已由官方證明存在。

三種常見衝突不能混在一起

第一種是同一筆地址中,字首郵遞區號和獨立欄不同;第二種是兩筆地址行政區相同但保存的碼不同;第三種是只有前三碼和完整碼位數不同。三者處理不同。字首與分欄衝突時先保留兩值,依官方查詢和來源日期核對;位數不同時不能把前三碼補零或重複當完整碼;行政區相同也可能有投遞段特例,不能只用區名決定。

例如 raw_address 寫 242 新北市新莊區五工路10號,postal_code 欄也是 242,但工具依特例資料給出 248。這時兩個輸入互相一致仍不代表正確,應保留 input_zip、stored_zip、tool_zip 與原因,再查官方資料。反過來,工具只有前三碼而來源有六碼,也不能把後三碼丟掉後宣稱完全相同。

寫回資料表的方式

將 address_without_postal_code、postal_code_original、postal_code_level、postal_code_candidate、verification_source 分欄。移除字首碼時只改比較候選,raw_address 不動;若前三個數字可能其實是門牌或訂單代碼,就維持無法確認,不用正規表示式直接刪除。

驗收時抽查括號碼、六碼、前後有空白、行政區特例及門牌以數字開頭的案例。兩筆比對結論應分成「地址元件是否一致」與「郵遞區號是否一致」,不要壓成單一相同/不同。即使兩者都對上,也只能支持這次資料比對,不能證明門牌實際存在。

前導碼移除後要能重組

建立 comparison_address 時,可以把已確認的郵遞區號從字首拆出,但要測試能否用 postal_code_original 加 address_without_postal_code 重建原顯示。若重組後空白、括號或六碼位數改變,表示拆解規則有資料損失。原始字串永遠保留,重組只用於驗證轉換是否可逆。

同一地址的碼也可能隨用途不同

資料來源可能保存舊制碼、前三碼或本次承運商要求的完整碼。比較前記錄 code_scheme、source_date 與用途,不把所有數字當成同一層級。若來源年代不同,結論應寫「地址元件相同、郵遞區號版本待確認」,而不是直接覆蓋較舊值。

資料來源

本站相關標籤

#地址與戶籍 #處理地址的民眾與商家 #文章 #觀念說明 #門牌與編釘 #郵遞區號 #地址資料整理

本站延伸閱讀