一文搞懂模糊匹配:定义、过程与技术

译文 精选
开发 前端
根据Accenture的一项调查显示,75% 的消费者更喜欢在知道他们名字和购买习惯的零售商那里消费,如果零售商无法对消费者提供个性化体验,他们客户中的 52% 有可能投入竞争对手的怀抱。因此,品牌方每天都会搜集数百万数据,识别并建立客户资料,这也是大多数公司面临的最大挑战之一。

译者 | 崔皓

审校 | 孙淑娟

开篇

根据Accenture的一项调查显示,75% 的消费者更喜欢在知道他们名字和购买习惯的零售商那里消费,如果零售商无法对消费者提供个性化体验,他们客户中的 52% 有可能投入竞争对手的怀抱。因此,品牌方每天都会搜集数百万数据,识别并建立客户资料,这也是大多数公司面临的最大挑战之一。

当企业使用多种工具来采集数据的时候,常遇到客户姓名拼错或电子邮件地址格式混乱的情况。此外,当不同的应用拥有同一客户不同信息时,由于信息分散导致无法深入了解客户行为和偏好。

为了解决上述问题,我们引入了模糊匹配,接下来将介绍什么是模糊匹配、它的实现方式、使用哪些常用技术以及它所面临的挑战。让我们开始吧。

什么是模糊匹配?

模糊匹配是一种数据匹配技术,它比较两个或多个记录并计算出它们属于同一实体的可能性。模糊匹配得不到匹配或不匹配的结果,而是得到一个百分比(通常在 0-100% 之间),用来描述该记录属于同一客户、产品、员工的可能性。

有效的模糊匹配算法可以处理一系列数据歧义,例如名字/姓氏颠倒、首字母缩略词、缩略语、语音和故意拼写错误、缩写、添加/删除的标点符号等。

模糊匹配过程

模糊匹配包括如下几个过程:

1. 创建基本标准化错误的概要记录。这包括已经得到修复的错误,以便跨记录实现统一和标准化的视图。

2. 基于将发生的模糊匹配来选择和映射属性。由于属性的标题可能不同,因此必须跨数据源对其进行映射。

3. 为每个属性选择一种模糊匹配技术。例如,名称可以根据键盘距离或名称变体进行匹配,而电话号码可以根据数字相似度指标进行匹配。

4. 为每个属性选择一个权重,例如高权重与低权重的字段相比,高权重的属性对整体匹配置信度的影响更大。

5. 定义阈值级别——模糊匹配得分只要高于该级别就被认为是匹配的,低于该级别的就认为是不匹配的。

6. 运行模糊匹配算法并分析匹配结果。

7. 覆盖任何可能出现的误报。

8. 合并、去重或简单地消除重复记录。

模糊匹配参数

从上面定义的过程中,可以看到模糊匹配算法有多个技术参数,包括属性权重、模糊匹配技术和分数阈值等等。

为了获得最佳结果,必须使用不同参数执行模糊匹配,并找到最适合数据的值。许多供应商将这些功能打包在模糊匹配解决方案中,让参数自动调整,同时也可以根据需要进行定制。

什么是模糊匹配技术?

当今使用的多数模糊匹配技术与比较、匹配字段的公式算法有所不同。可以根据数据的性质选择适合的技术。以下是常见的模糊匹配技术列表:

1. 基于字符的相似性度量(最适合匹配字符串):

a) 编辑距离:计算两个字符串之间的距离,逐个字符计算。

b) 仿射间隙距离:通过还考虑字符串之间的间隙或空间来计算两个字符串之间的距离。

c) Smith-Waterman 距离:通过同时考虑前缀和后缀的存在与否来计算两个字符串之间的距离。

d) Jaro 距离:用来匹配名字和姓氏。

2. 基于标记的相似性度量(最适合匹配字符串中完整单词):

a) 原子字符串:将长字符串划分为由标点符号分隔的单词,并在单词上进行比较。

b) WHIRL:类似于原子字符串,但 WHIRL 会为每个单词分配权重。

3. 语音相似度指标(最适合发音相似而字符不同的单词):

a) Soundex:比较拼写不同发音相似的姓氏。

b) NYSIIS:类似于 Soundex,不同的是它保留了有关元音位置的详细信息。

c) Metaphone:比较发音相似的单词、美国人常用的单词以及美国常用的名字和姓氏。

4. 数字相似度指标,数字之间的距离,数字数据的分布等。

模糊匹配的挑战

虽然模糊匹配的整个过程提供了意向不到的帮助,但其实现却很困难。以下是企业面临的一些挑战:

1. 高误报率

许多模糊匹配解决方案具有较高的误报率。当算法错误地分类匹配和不匹配时,就会发生这种情况,反之亦然。可以通过对匹配定义和模糊参数的配置尽可能多地减少不正确的结果。

2. 计算复杂度

在匹配过程中,每条记录都会与同一数据集中的所有记录进行比较。在处理多个数据集的情况下,比较次数会成倍增加。值得注意的是,随着数据库容量的增长,比较呈二次方增长态势。因此,必须使用资源密集型的计算系统。

3.验证测试

匹配的记录合并在一起形成实体的完整模型,可以 通过360 度视角来观察实体。在此过程中发生的任何错误都会给业务运营增加风险。这就是为什么必须进行详细的验证测试以确保调整后的算法始终如一地产生高准确率的结果。

总结

企业通常将模糊匹配解决方案视为运行时间长、执行复杂、消耗资源和耗费资金的项目。事实上,投资能够产生快速和准确结果的解决方案才是关键。组织在选择模糊匹配工具时需要考虑诸多因素,例如投入的时间和金钱、可扩展性设计以及数据集的性质。这些都会帮助他们选择解决方案,从而充分利用数据产生价值。

译者介绍

崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。

原文标题:THOUGHT LEADERSFuzzy Matching – Definition, Process and Techniques,作者:Zara Ziad

责任编辑:华轩 来源: 51CTO
相关推荐

2022-03-24 08:51:48

Redis互联网NoSQL

2021-03-22 10:05:59

netstat命令Linux

2021-11-06 10:18:30

Python变量常量

2021-02-28 20:53:37

Cookie存储浏览器

2021-03-04 00:09:31

MySQL体系架构

2020-09-03 06:35:44

Linux权限文件

2020-12-07 06:19:50

监控前端用户

2022-07-15 08:16:56

Stream函数式编程

2021-07-08 10:08:03

DvaJS前端Dva

2021-05-06 05:38:48

Python文件操作异常模块

2021-08-05 06:54:05

观察者订阅设计

2022-08-15 15:39:23

JavaScript面向对象数据

2021-01-13 05:21:59

参数

2021-06-30 08:45:02

内存管理面试

2019-11-19 08:00:00

神经网络AI人工智能

2022-06-07 10:13:22

前端沙箱对象

2020-03-18 14:00:47

MySQL分区数据库

2020-04-15 16:30:24

扫码登录微信前端

2020-12-21 07:54:46

CountDownLa用法源码

2019-11-06 17:30:57

cookiesessionWeb
点赞
收藏

51CTO技术栈公众号