确认地址 - 示例

本文档介绍了许多实际情况,在这些场景中,Address Validation API 为确保系统能够进行 confirm 行为的地址提供响应信号。如需了解背景信息,请参阅构建验证逻辑中的工作流概览

常见示例:确认

以下示例说明了具有相似街道名称的都市区域的情况。假设用户想要输入美国华盛顿州柯克兰 Google D 楼的地址。不过,他们不是柯克兰作为城市,而是无意中进入了西雅图

已输入地址 区域
华盛顿州西雅图市第七大道南 451 号楼 D 楼,邮编:98033 美国

对已替换数据的判定

以下示例强调了响应中的重要信号。

{
  "inputGranularity": "SUB_PREMISE",
  "validationGranularity": "PREMISE_PROXIMITY",
  "geocodeGranularity": "PREMISE_PROXIMITY",
  "addressComplete": true,
  "hasUnconfirmedComponents": true
  "hasReplacedComponents": true
}

PREMISE_PROXIMITY 表示建筑物级地址的接近程度,但不像 SUB_PREMISE(输入时提供的粒度)那样详细。响应中还包含未经确认的组件和已替换的组件,因此组合会将此组件提示到 confirm 类别。

通过对地址组成部分进行查询,您可以了解以下几个方面:

{
  "componentName": {
    "text": "451",
  },
  "componentType": "street_number",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
...
{
  "componentName": {
    "text": "98104",
  },
  "componentType": "postal_code",
  "confirmationLevel": "CONFIRMED",
  "replaced": true
}
...
{
  "componentName": {
    "text": "Building D",
    "language_code": "en"
  },
  "componentType": "subpremise",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
}
.......

    "unconfirmedComponentTypes": [
      "street_number",
      "subpremise"
    ]

在本例中,Address Validation API 找到了与提供的地址(位于西雅图)近似,并替换了邮政编码(更高级别的组成部分),以解析为西雅图的地址。这可能是一个有效的替代地址,但考虑到组件未经确认,因此有必要确保用户有意输入西雅图的地址,而不是其他地址(如柯克兰)。

极端情况示例:确认

下面的示例说明了以下极端情况类型:

  • 经确认的轻微推断。 Address Validation API 会推断国家/地区、邮政编码或州,但所有其他信息都会提供并确认。通过结合使用粒度和确认级别,可进行细微推断,并不需要确认操作。
  • 未确认意外地址组件。 未经确认的地址组成部分会增加地址的风险等级。这可能需要确认。
  • 已确认的非预期地址组成部分。此组成部分并非是正确地址所必需的,Address Validation API 会从输出中移除该组成部分。出现格式问题通常不需要确认。

已确认的次要推断

与更细粒度的已确认数据结合使用时,如果输入仅缺少以下类型中的一个组成部分,API 仍可以做出正确的推断:

  • 城市
  • 状态
  • 邮政编码
  • 国家/地区

例如,某客户在马萨诸塞州斯普林菲尔德市的麦当劳餐厅提供了有效的街道地址,但忘记输入城市,并且提供了不含 4 位数扩展名的邮政编码。

已输入地址 区域
马萨诸塞州艾伦街 1402 号 01118 美国

针对缺失城市的判决

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "PREMISE",
  "geocodeGranularity": "PREMISE",
  "addressComplete": true,
  "hasInferredComponents": true
}

如果 Address Validation API 通过推断更高级别的组成部分来生成可交付的地址,您可以更确信来自系统的数据正确无误。这是因为表示范围较广的地理区域的推断组成部分更容易与更精细的已确认地址组成部分相匹配。即使在城市名称重复的国家/地区(例如美国的斯普林菲尔德),其他部分与城市名称结合在一起也可以提供唯一的地址。

使用上面的示例,扫描所有地址组成部分后发现,每个组成部分都已经过确认,这意味着它与 Address Validation API 存储的数据匹配,并且该服务还会推断两个更高级别的组成部分。

{
  "componentName": {
    "text": "Springfield",
    "languageCode": "en"
  },
  "componentType": "locality",
  "confirmationLevel": "CONFIRMED",
  "inferred": true
},
{
  "componentName": {
    "text": "1806"
  },
  "componentType": "postal_code_suffix",
  "confirmationLevel": "CONFIRMED",
  "inferred": true
}

未确认非预期的地址组成部分

此场景说明了在确认组件时进行检查的重要性。如果地址组成部分不是预期类型,Address Validation API 会从输出中移除该组成部分。在这些情况下,您可以接受地址或与客户重新确认,具体取决于您的风险级别和置信度。

例如,客户经常输入某个地址,而该地区的客户经常会输入被邮政部门忽略的无害信息,在这种情况下,您可以接受该地址。但是,在某些情况下,未经确认的组件可能不是客户想要的。

已输入地址 区域
1 Rue Grenache, la Caritat 2, 34630 Saint-Thibéry 法国

未确认非预期地址组成部分的判定

{
  "inputGranularity": "PREMISE",
  "validationGranularity": "PREMISE",
  "geocodeGranularity": "PREMISE",
  "unconfirmedComponents": true
}

除了包含未确认组件的判定结果之外,Address Validation API 还会返回以下格式化的地址:

"formattedAddress": "1 Rue Grenache, 34630 Saint-Thibéry, France",

对未经确认的组件的扫描表明,API 从返回的地址中移除了 la Caritat 2

{
  "componentName": {
    "text": "la caritat 2",
    "languageCode": "fr"
  },
  "componentType": "sublocality_level_1",
  "confirmationLevel": "UNCONFIRMED_BUT_PLAUSIBLE",
  "unexpected": true
}

IS 确认的非预期地址组成部分

此示例说明在提供的地址中包含英国郡,这是一种常见做法。不过,英国邮政机构并未要求这样做,因此基本上会忽略这项要求。请参阅 postoffice.co.uk如何寄送英国和国际邮件

因此,当客户提供英国地址中的郡/县时,服务会将其评估为意外输入。

已输入地址 区域
33 Dunalley St, Cheltenham, Gloucestershire, GL50 4AP 英国

对已确认的非预期地址组成部分的判定

{
   "inputGranularity": "PREMISE",
   "validationGranularity": "PREMISE",
   "geocodeGranularity": "PREMISE"
}

其中,address_complete 的计算结果为 false,并且在分析地址组成部分时会发现意外标记。

{
  "componentName": {
    "text": "Gloucestershire",
    "languageCode": "en"
  },
  "componentType": "administrative_area_level_2",
  "confirmationLevel": "CONFIRMED",
  "unexpected": true
}

虽然格洛斯特郡是所输入地址的正确郡/县,但地址本身的格式不正确。回想一下,Address Validation API 也会评估信息以确保正确的格式。