重要说明:

IBM Cloud Pak® for Data 4.6 版本将于 2025 年 7 月 31 日结束支持(EOS)。 欲了解更多信息,请参阅 IBM Cloud Pak for Data 版本 4.X 的停止服务公告

在 IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。

IBM Match 360 with Watson 中的匹配算法

IBM Match 360 with Watson 使用匹配算法将数据记录解析为主数据实体。 数据工程师可以为其数据中的每个实体类型定义不同的匹配算法。 然后,匹配算法可以分析数据以评估和比较记录,然后将匹配的记录收集到实体中。

对数据运行匹配有两个常见原因:

  • 对于 记录去重和实体解析,匹配过程会分析数据以确定数据中是否存在任何重复记录。 可疑重复记录将合并到主数据实体中,以建立单个可信的全方位数据视图。
  • 要创建其他类型的 实体关联,匹配过程会分析数据,以将记录收集到表示不同类型分组 (例如家庭) 的实体中。

在本主题中:

匹配以创建多种类型的实体

IBM Match 360 匹配算法由关联数据的实体类型驱动。 您可以为数据模型中的每个记录类型定义多个实体类型。 对于每种实体类型,配置并调整其相应的匹配算法,以确保 IBM Match 360 创建满足组织需求的实体。

单个记录可以是多个单独实体的一部分。 如果数据模型包含多个实体类型,那么可以在同一数据集中运行不同类型的匹配。 例如,考虑包含来自整个企业的人员记录的数据集。 如果 "个人" 记录类型包含 "个人" 实体类型和 "家庭" 实体类型的定义,那么您可以运行 "个人" 匹配算法以进行实体解析和去重,还可以运行 "家庭" 匹配算法以创建由属于同一家庭的人员记录组成的实体。

匹配过程

匹配引擎将通过定义的流程将记录匹配到实体中。 匹配过程包括三大步骤:

  1. 标准化。 在此步骤中,算法将数据的格式标准化,以便可以由匹配的引擎进行处理。

  2. 你在说什么? 该算法将数据排序为各种类别或 "存储区" ,以便它可以比较相似到相似的信息片段。

  3. 比较。 该算法比较数据以确定最终比较分数。 然后,该算法使用比较分数来确定记录是否匹配。

其中每个步骤都由匹配算法定义和配置。

匹配算法的组件

三种主要类型的组件定义 IBM Match 360 匹配算法:

标准化人员

正如名称所表明的那样,标准化程序定义了数据标准化的方式。 标准化使匹配算法能够将不同属性的值转换为可由匹配引擎处理的标准化表示。

匹配算法使用多个标准化程序。 每个标准化程序都适用于处理在记录数据中找到的特定属性类型。

标准化程序由 JSON 对象定义。 每个标准化程序的 JSON 对象定义都包含三个元素:

  • label -标识此标准化程序的标签。

  • inputs - inputs 列表具有一个元素,即 JSON 对象。 该 JSON 对象具有两个元素: fieldsattributes:

    • fields -要用于标准化的字段列表。
    • attributes -要用于标准化的属性列表。
  • standardizer_recipe -JSON 对象的列表,其中每个对象表示在关联的标准化程序的标准化过程中要运行的一个步骤。 standardizer_recipe 列表中的每个对象都由四个主要元素组成:

    • label -用于标识标准化程序配方中的此步骤的标签。
    • method -使用的内部方法。 此元素仅供参考,不得编辑。
    • inputs - inputs 列表的单个元素定义了一个更高级别的元素。
    • fields -要用于此步骤的字段的列表。 这通常是 inputs 列表中定义的所有字段的子集,级别更高一层。 并非每个步骤都需要处理所有 inputs 字段。
    • set_resource -用于此步骤的 set 类型可定制资源的名称。
    • map_resource -用于此步骤的 map 类型可定制资源的名称。

    根据步骤的行为,在相应的 JSON 对象中可能需要更多配置元素。

预配置的标准化程序

以下标准化程序已准备好在 IBM Match 360中使用。 预配置的标准化程序也是可定制的。

人员姓名标准化程序

此标准化程序用于对 "人员名称" 属性值进行标准化。 它按顺序包含以下食谱:

  1. Upper case -转换输入字段值以使用其大写等价项。
  2. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  3. Tokenizer -根据定义的定界符列表,将输入字段值标记为多个标记。
  4. Parse token -根据 IBM Match 360 资源中的预定义值,将输入字段值解析为不同的标记。 例如,您可以使用此配方将后缀,前缀和生成值解析为相应的字段。
  5. Length -废弃超出给定长度范围的标记。 最小值和最大值在 IBM Match 360 资源中定义。
  6. Stop token -除去已配置的匿名输入值。
  7. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
组织名称标准化程序

此标准化程序用于标准化 "组织名称" 属性值。 它按顺序包含以下食谱:

  1. Upper case -转换输入字段值以使用其大写等价项。
  2. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  3. Stop character -从名称值中除去不需要的输入字符。
  4. Map token -生成给定输入的昵称或备用名,并将信息存储在单独的新内部字段中。
  5. Tokenizer -根据定义的定界符列表,将输入字段值标记为多个标记。
  6. Stop token -除去已配置的匿名输入值。
  7. Acronym -生成给定组织名称的首字母缩略词,并将信息存储在单独的新内部字段中。 此首字母缩略词值在比较期间用于处理缩写名称。
  8. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
日期标准化程序

此标准化程序用于对 "日期" 属性值进行标准化。 它支持许多不同的日期格式,并按顺序包含以下食谱:

  1. Map character -将斜杠字符 (/) 转换为短划线字符 (-)。
  2. Date function -将不同格式的日期输入转换为标准化格式。
  3. Stop token -除去已配置的匿名日期值。
  4. Parse token -根据某些正则表达式,将输入字段值解析为不同的标记。 例如,您可以使用此配方将完整的日期输入解析为日,月和年标记。
  5. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
性别标准化

此标准化程序用于对 "性别" 属性值进行标准化。 它按顺序包含以下食谱:

  1. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  2. Upper case -转换输入字段值以使用其大写等价项。
  3. Stop token -除去配置的匿名输入性别值。
  4. Map token -将输入令牌值转换为等效值,如 IBM Match 360 资源中所配置。
  5. Parse token -将已处理的字段值解析为相应的内部字段。
  6. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
地址标准化程序

此标准化程序用于对地址属性值进行标准化。 根据语言环境,地址可以有多种不同的格式。 这种灵活性需要复杂的处理才能将地址转换为标准化格式。 地址标准化程序按顺序包含以下食谱:

  1. Upper case -转换输入字段值以使用其大写等价项。
  2. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  3. Map token -将输入令牌值转换为等效值,如 IBM Match 360 资源中所配置。 例如, "美利坚合众国" , "美国" 和 "美国" 都可以映射到 "美国"。 此映射对于国家或地区和省/直辖市/自治区字段值是通用的。 此外,在资源中配置的定界字符将映射到空格字符。
  4. Tokenizer -根据定义的定界符列表,将输入字段值标记为多个标记。
  5. Stop token -除去配置的匿名输入值,例如邮政编码。
  6. Keep token -仅允许为给定字段定义值列表。 例如,您可以定义标准化期间允许的邮政编码列表。 将除去不在允许列表中的输入值。
  7. Parse token -根据资源中配置的特定正则表达式和预定义值,将输入字段值解析为相应的内部字段。 您可以使用此配方通过使用正则表达式将给定令牌截断为特定长度。 您还可以使用正则表达式形式定义不同的字母数字模式集,以仅允许某些模式。
  8. Join fields -将两个或多个字段连接在一起,以创建分配给内部字段的新组合值。 例如,可以将 latitudelongitude 字段值连接在一起,以形成名为 lat_long的新内部字段。
  9. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
电话标准化装置

此标准化程序用于对 "电话" 属性值进行标准化。 它按顺序包含以下食谱:

  1. Stop character -从电话值中除去不需要的输入字符。
  2. Stop token -除去已配置的匿名电话值。
  3. Phone -将不同语言环境中具有不同格式的输入电话号码解析为通用格式。 此配方可配置为从电话号码中除去区域代码和国家或地区代码。 它还可以在一个标准化的电话号码中保留一定数量的数字。
  4. Parse token -根据资源中配置的特定正则表达式,将已处理的字段值解析为相应的内部字段。
  5. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
标识标准化程序

此标准化程序用于标准化标识属性值。 它按顺序包含以下食谱:

  1. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  2. Upper case -转换输入字段值以使用其大写等价项。
  3. Stop character -从标识值中除去不需要的输入字符。
  4. Stop token -除去已配置的匿名输入值。
  5. Map token -将输入令牌值转换为等效值,如 IBM Match 360 资源中所配置。
  6. Parse token -根据资源中配置的特定正则表达式,将已处理的字段值解析为相应的内部字段。
  7. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
电子邮件标准化程序

此标准化程序用于对电子邮件属性值进行标准化。 它按顺序包含以下食谱:

  1. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  2. Upper case -转换输入字段值以使用其大写等价项。
  3. Stop token -除去已配置的匿名输入值。
  4. Map token -将输入令牌值转换为等效值,如 IBM Match 360 资源中所配置。
  5. Parse token -根据资源中配置的特定正则表达式,将已处理的字段值解析为相应的内部字段。
  6. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。
社交媒体标准化程序

此标准化程序用于对社交媒体属性值进行标准化。 它按顺序包含以下食谱:

  1. Map character -将 UNICODE 输入字符转换为等效的英语字母字符。 (可选) 在 IBM Match 360 资源中定义映射。
  2. Upper case -转换输入字段值以使用其大写等价项。
  3. Stop token -除去已配置的匿名输入值。
  4. Map token -将输入令牌值转换为等效值,如 IBM Match 360 资源中所配置。
  5. Parse token -根据资源中配置的特定正则表达式,将已处理的字段值解析为相应的内部字段。
  6. Pick token -选择标记的子集 (或全部) 作为标准化数据,以用于分包和比较。

实体类型 (buc凭单)

在单个匹配算法中,每个记录类型都可以具有多个实体类型定义 (entity_type JSON 对象)。 例如,在为人员记录类型定义的算法中,您可能需要创建多个实体类型定义,例如人员实体,家庭实体,位置实体等。

每种实体类型都可用于以不同方式匹配和链接记录。 实体类型定义在匹配过程中如何对记录进行 bucketed 和比较。

匹配算法中的每个实体类型定义 (entity_type) 都有四个 JSON 元素:

  • clerical_review_threshold -比较分数低于文书复审阈值的记录被视为不匹配。

  • auto_link_threshold -比较分数高于自动链接阈值的记录被认为是足够强的匹配项,可以自动进行匹配。

  • bucket_generators -此部分包含为实体类型配置的存储区生成器的定义。 有两种类型的存储区生成器: 存储区和存储区组。

    • 存储区 仅涉及一个属性的存储区。 每个 bucket 定义都包含四个元素:

      • label -用于标识存储区生成器的标签。
      • maximum_bucket_size -用于定义大型存储区大小的值。 在匹配期间,不会考虑存储区大小大于此值的任何存储区散列用于候选项选择。
      • inputs -对于存储区, inputs 列表只有一个元素,即 JSON 对象。 该 JSON 对象具有两个元素: fieldsattributes:
        • fields -要用于窃用的字段的列表。
        • attributes -要用于分包的属性的列表。
      • bucket_recipe -存储区配方列表定义存储区生成器在分包过程中要完成的步骤。 每个 bucket_recipe 列表都有多个子元素:
        • label -用于标识存储区配方元素的标签。
        • method -使用的内部方法。 此元素仅供参考,不得编辑。
        • inputs - inputs 列表的单个元素定义了一个更高级别的元素。
        • fields -要用于此存储区的字段的列表。 这通常是 inputs 列表中定义的所有字段的子集,级别更高一层。
        • min_tokens -在配方构成存储区散列时要使用的最小令牌数。
        • max_tokens -在配方构成存储区散列时要一起使用的最大令牌数。
        • count -对从存储区生成器生成的单个记录的存储区散列数的限制。 如果记录生成大量存储区散列,那么仅选取此元素设置的散列数。
        • bucket_group -生成存储区散列的存储区组的序号。 不会为中间步骤或食谱分配序号。
        • order -指定组合多个令牌以形成存储区散列时,是否按字典顺序对令牌进行排序。
        • maximum_bucket_size -用于定义大存储区大小的值。 此元素与在存储区生成器级别定义的元素相同; 在存储区配方级别具有此元素也使您能够更精细地控制大型单个存储区。
    • 存储区组 涉及对多个属性执行窃用。 每个 bucket_group 定义都包含五个元素:

      • label -用于标识存储区生成器的标签。
      • maximum_bucket_size -用于定义大型存储区大小的值。 在匹配期间,不会考虑存储区大小大于此值的任何存储区散列用于候选项选择。
      • inputs -对于存储区组, inputs 列表具有多个 JSON 对象元素。 JSON 对象各有两个元素: fieldsattributes:
        • fields -要用于窃用的字段的列表。
        • attributes -要用于分包的属性的列表。
      • bucket_recipe -存储区配方列表定义存储区生成器在分包过程中要完成的步骤。 每个 bucket_recipe 列表都有多个子元素:
        • label -用于标识存储区配方元素的标签。
        • method -使用的内部方法。 此元素仅供参考,不得编辑。
        • inputs - inputs 列表的单个元素定义了一个更高级别的元素。
        • fields -要用于此存储区的字段的列表。 这通常是 inputs 列表中定义的所有字段的子集高一级。
        • min_tokens -在配方构成存储区散列时要使用的最小令牌数。
        • max_tokens -在配方构成存储区散列时要一起使用的最大令牌数。
        • count -对从存储区生成器生成的单个记录的存储区散列数的限制。 如果记录生成许多存储区散列,那么只会选取此元素设置的散列数。
        • bucket_group -生成存储区散列的存储区组的序号。 不会为中间步骤或食谱分配序号。
        • order -指定组合多个令牌以形成存储区散列时,是否按字典顺序对令牌进行排序。
        • maximum_bucket_size -用于定义大存储区大小的值。 此元素与在存储区生成器级别定义的元素相同。 能够在存储区配方级别对其进行定义,使您能够更精细地控制大型单个存储区。
        • set_resource -用于存储区配方的 set 类型资源的名称。
        • map_resource -用于存储区配方的 map 类型资源的名称。
        • output_fields -如果此配方在对输入字段完成分包函数后生成新字段,那么此元素将包含生成的字段的名称列表。
      • bucket_group_recipe -存储区组配方部分通常用于定义由多个属性组成的存储区。 bucket_group_recipe 列表的每个元素都是一个 JSON 对象,用于定义单个存储区组的构造。
        • bucket_group_recipe 中的 inputs 列表具有多个元素,这意味着它是指在 inputs 数组中定义的多个属性 (一个级别更高)。
        • fields 元素是列表的列表。 每个内部字段列表都与相应的 attributes 列表相关联。
        • min_tokensmax_tokens 列表具有多个元素,每个元素对应于各自的 attributes 列表。

      注: 在某些蜂鸣式配方定义中,有一个名为 search_only的属性。 缺省情况下,其值为 false。 如果设置为 true,那么此属性指示存储区或存储区组仅用于概率搜索方案,而不用于实体解析 (匹配) 方案。

  • compare_methods -为实体类型配置的比较方法的定义。 每个 compare_methods JSON 对象都由各种 compare 方法的定义组成。 匹配算法会将每个 compare 方法定义中的分数相加,以获取最终比较分数。 每个 compare 方法的 JSON 对象都包含三个元素:

    • label -用于标识 compare 方法的标签。
    • methods -构成比较组的比较器列表。 此数组中的每个元素都表示一个比较器,用于一种类型的匹配属性。 匹配算法将 methods 列表中所有比较器中的最大分数视为此比较组中的最终分数。 每个比较器定义都包含两个元素:
      • inputs -对于比较器, inputs 列表只有一个元素,即 JSON 对象。 该 JSON 对象具有两个元素: fieldsattributes:
        • fields -要用于比较的字段的列表。
        • attributes -要用于比较的属性的列表。
      • compare_recipe -此列表主要用于定义比较步骤。 通常,此数组中只有一个 JSON 元素,仅表示执行比较的一个步骤。 此步骤具有五个元素:
        • label -用于标识比较步骤的标签。
        • method -使用的内部方法。 此元素仅供参考,不得编辑。
        • inputs - inputs 列表的单个元素定义了一个更高级别的元素。
        • fields -要用于此比较的字段比 inputs 列表中定义的所有字段高一级。
        • comparison_resource -用于此比较步骤的可定制比较资源的名称。
    • weights -由比较器进行的每个比较会产生从 0 到 10 的数字分数。 此数字称为距离或非相似性度量。 距离 0 指示要比较的值完全相同。 距离 10 表示它们完全不同。 对应于 11 个不同的值 (0-10) ,为每个比较器定义了 11 个权重。 计算距离后,比较方法从权重列表中确定相应的权重值,得出总比较分数。 数据工程师可以根据数据质量,分布或其他因素,根据需要定制权重。

比较函数

比较函数 (有时称为 比较器) 是匹配算法的关键组件之一。 匹配引擎在匹配过程中使用比较函数来比较记录数据。 本质上,记录匹配涉及在不同记录的数据之间比较不同类型的属性。

对于人员,组织和位置域中的许多常用属性类型, IBM Match 360 匹配引擎包含预配置的比较方法。

在 IBM Match 360中,比较函数使用一种称为 特征向量的比较方法。 IBM Match 360 中有不同的可定制功能定义用于不同的比较功能。 每个比较都产生一个距离度量 (向量) ,显示两个给定属性值的不同程度。

在匹配算法中,将为每个离散距离值赋予一个权重,以确定考虑该值的程度。 重量与距离结合,产生比较分数。 匹配算法将所有比较得分相加,得出整体记录到记录比较的最终比较得分。

关于功能部件

功能部件表示比较函数的精细级别详细信息。 不同类型的属性使用不同类型的相似性检查,这意味着它们的特征也各不相同。

特征定义指示用于每个比较函数的内部函数的类型。 内部函数的示例包括精确匹配,编辑距离,昵称,语音等效或初始匹配。

人员姓名比较

人员名称属性中的不同字段将以不同方式进行处理。 对于诸如前缀,后缀和生成值之类的字段,将选中 "精确性" 或 "不匹配"。 其他字段 (例如,名字,姓氏和中间名) 主要使用以下功能:

  • 精确匹配
  • 昵称匹配
  • 编辑距离
  • 缩写匹配
  • 语音匹配
  • 令牌的错位
  • 额外令牌
  • 缺失值

组织名称比较

对于组织名称,存在一个包含整个业务名称的类型字段。 该字段主要使用以下功能进行比较:

  • 精确匹配
  • 昵称匹配
  • 编辑距离
  • 缩写匹配
  • 语音匹配
  • 令牌的错位
  • 额外令牌
  • 缺失值

对于组织名称,还会比较首字母缩略词和昵称的精确性。

日期比较

对于日期,通常有三个要比较的字段: 日,月和年。

将使用以下功能来比较 year 字段:

  • 精确性
  • 编辑距离
  • 不匹配
  • 缺少

使用以下功能对 daymonth 字段进行比较:

  • 精确性
  • 不匹配
  • 缺少

日期比较器还会检查 daymonth 字段是否由于日期格式的语言环境差异而被转置。

性别比较

使用以下功能对性别属性进行比较:

  • 精确性
  • 不匹配

地址比较

以不同方式处理地址属性中的不同字段。

使用以下功能比较国家或地区,城市,省/直辖市/自治区和分区之类的字段:

  • 精确性
  • 等值
  • 编辑距离
  • 不匹配
  • 缺少

邮政编码字段使用以下功能进行比较:

  • 精确性
  • 编辑距离
  • 不匹配
  • 缺少

使用以下功能对诸如街道编号,街道名称,街道类型,单位编号和方向之类的字段进行比较:

  • 精确性
  • 等值
  • 缩写匹配
  • 编辑距离
  • 不匹配
  • 令牌的错位
  • 缺少

电话比较

使用以下功能比较电话号码属性:

  • 精确匹配
  • 编辑距离
  • 不匹配

标识比较

使用以下功能比较标识号属性:

  • 精确匹配
  • 编辑距离
  • 不匹配

电子邮件比较

电子邮件属性由两个部分组成: 唯一标识 (在 @ 符号之前) 和电子邮件域 (在 @ 符号之后)。 使用以下功能分别比较标识部分和域部分:

  • 精确匹配
  • 编辑距离
  • 不匹配

两个比较的结果以加权方式进行组合,以产生总体比较得分。

社交媒体比较

使用以下功能比较社交媒体句柄属性:

  • 精确匹配
  • 编辑距离
  • 不匹配

编辑距离

IBM Match 360 匹配引擎在比较和匹配各种属性期间计算 编辑距离 作为内部函数之一。 编辑距离是对两个字符串之间的不同程度的测量。 它通过计算将一个字符串转换为另一个字符串所需的更改数来计算。

有不同的方法通过使用不同的字符串操作集来定义编辑距离。 缺省情况下, IBM Match 360 使用在文献中公开可用的标准编辑距离函数。 作为替代方法,您可以选择使用专门的 IBM Match 360 编辑距离功能。

  • 标准编辑距离函数 提供了更好的匹配引擎性能。 因此,它是除 "电话" 属性类型以外的所有属性的缺省比较配置。

  • 专用编辑距离函数 是为超精度用例构建的。 此选项会考虑类型或相似字符,例如 8 和 B , 0 和 O , 5 和 S 或 1 和 I。 当基于相似字符的两个比较值不匹配时,分配的非相似性度量小于标准编辑距离函数分配的度量。 因此,这些类型的不匹配不会受到专门功能的强烈惩罚。

    重要信息: 专用编辑距离函数包含一些复杂计算。 因此,选择此选项会在匹配过程中影响系统性能。

注: 在 IBM Cloud Pak for Data 4.0 refresh 7 ( 4.0.7 ) 之前,专门的编辑距离函数是计算编辑距离的唯一选项。

有关定制匹配算法 (包括使用 API 来定制编辑距离) 的信息,请参阅 定制和加强匹配算法

了解更多

父主题: 管理主数据