春争日,夏争时,扫码抽取夏日礼包!!! 了解详情
写点什么

AI 系统如何识别重复数据?

  • 2021 年 7 月 30 日
  • 本文字数:1587 字

    阅读完需:约 5 分钟

AI系统如何识别重复数据?

当你同时比较两个 Salesforce 记录或任何其它 CRM 记录时,你可以很容易地确定它们是否重复。然而,当你有 10 万条这样的记录时,你几乎不可能一个一个地筛选它们,并进行这样的比较。这就是为什么很多公司开发了各种工具来自动化这些过程,为了做好工作,机器需要识别这些记录之间的相似性和差异性。在本文中,我们将更仔细地研究数据科学家用来训练机器学习系统识别重复的一些方法。

机器学习系统如何对比记录?


研究人员使用的主要工具之一是字符串度量。当你取数据中的两个字符串时,如果字符串相似,返回一个低值;如果字符串不同,则返回一个高值。这在实践中是如何工作的?让我们来看看下面两个记录:


First Name

Last Name

Email

Company Name

Ron 

Burgundy

ron.burgundy@acme.com

Acme

Ronald

burgundy

ron.burgundy@acme.com

Acme Corp


如果一个人看到这两个记录,很明显能看出来这是重复的。而机器依赖字符串度量来复现人类的思考过程,这就是所谓的人工智能。


最著名的字符串度量之一是汉明距离,它度量将一个字符串转换为另一个字符串所需的替换次数。例如,如果我们返回到上面的两条记录,只需要进行一次替换就可以将“burgundy”变成“Burgundy”,因此汉明距离是 1。

 

还有许多其它的字符串度量可以用来度量两个字符串之间的相似性,它们之间的区别是它们所允许的操作。例如,我们前面提到的汉明距离只允许替换,这意味着这种字符串度量只能应用于长度相等的字符串。而编辑距离(Levenshtein distance)允许删除、插入和替换。

如何消除 Salesforce 重复数据?


人工智能系统有许多方法可以实现 Salesforce 重复数据消除。其中一种方法是分区块,如下所示:


Record 1

Record 2

Ron Burgundy, ron.burgundy@acme.com, Acme

Ronald burgundy,ron.burgundy@acme.com Acme Corp


这种分区块方法具有可扩展性。它的工作方式是,每当你上传新的记录到你的 Salesforce,系统会自动将看起来“相似”的记录分块到一起,比如可以是名字的前三个字母或者任何其它条件。

 

这减少了需要进行比较的次数。例如,假设你的 Salesforce 中有 10 万条记录,而你想要上传一个包含 5 万条记录的 Excel 表。传统的基于规则的重复消除应用程序,需要将每个新记录与已有记录进行比较,那需要做 50 亿(100,000 x 50,000)次比较。想象一下这需要多少时间,并且会增加多少出错的概率。


此外,我们要知道,10 万条记录只是 Salesforce 记录中相当有限的一部分。有很多组织拥有数十万甚至上百万的记录。因此,在尝试适应此类模型时,传统方案的可伸缩性很差。

 

另一种选择是单独比较每个字段:


 

Record 1

Record 2

First Name

Ron

Ronald

Last Name

Burgundy

burgundy

Email

ron.burgundy@acme.com

ron.burgundy@acme.com

Company

Acme

Acme Corp


一旦系统将“相似的”记录分块到一起,它将继续逐字段分析每条记录。这是我们前面讨论的所有字符串度量发挥作用的地方。


除此之外,系统会给每个字段制定一个特定的“权重”或重要性。例如,假设对于你的数据集,“Email”字段是最重要的。你可以自己调整算法,或者当你将记录标记为重复(或不重复)时,系统会自动学习正确的权重。这被称为主动学习(Active Learning),这种方法更可取,因为系统可以精确计算一个字段相对于另一个字段的重要性。

机器学习方法的优点是什么?


机器学习能提供的最大好处是,它能为你做所有的工作。主动学习将自动给每个字段设置必要的权重。这意味着,不需要创建复杂的设置过程或规则。


让我们看看下面的场景。假设其中一个销售代表发现了一个重复记录,并将这个问题通知给 Salesforce 管理员。Salesforce 管理员将创建一个规则,从而防止将来发生此类重复。每次发现一种新的重复使得这一过程不可持续时,需要一遍又一遍地重复这个过程。

 

另外,我们需要记住,Salesforce 中基于重复数据消除的功能也是基于规则的,只是非常有限。例如,你一次只能合并三条记录,不支持自定义对象,以及其它许多限制。


机器学习是一种更智能的方法,因为规则的创建是自动化的,而人工智能和机器学习则试图重现人类的思维过程。在另一篇文章中,讨论了更多机器学习与自动化之间的区别。选择一个简单地扩展了 Salesforce 的功能的去重产品,而不修复整个过程,是没有意义的。这就是为什么机器学习方法是最好的方法。

作者介绍


Ilya Dudkin 是 Softwarium 的业务开发经理。

原文链接


How Do AI Systems Identify Duplicate Data?

2021 年 7 月 30 日 14:461165

评论

发布
暂无评论
发现更多内容

springboot使用redis(从配置到实战)

Python研究者

8月日更

Docker 系列 _ 01_ 一念缘起

编程三昧

Docker 8月日更

Linux之time命令

入门小站

Linux

聊聊 PC 端自动化最佳方案 - Pywinauto

星安果

Python 自动化 Pywinauto PC

在线JSON转HTML工具

入门小站

工具

今天聊一聊Golang的互斥锁吧

Regan Yue

互斥锁 互斥锁Mutex 8月日更

CC校园运动小程序云开发解决方案

CC同学

成为高效工程师的四步法则

俞凡

生产力 认知

审计挖掘之CNVD通用漏洞

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞挖掘

百度地图开发-绘制点线提示框 07

Andy阿辉

android Android 小菜鸟 Android端 8月日更

neo4j 基本概念与入门实例

escray

学习 neo4j 8月日更

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java 编程 程序员 架构 面试

mycat入门:落地分库分表与读写分离

小鲍侃java

8月日更

微校园小程序(云开发)设计方案

CC同学

谈 C++17 里的 Factory 模式

hedzr

c++ factory pattern c++17 factory method

☕【Java技术指南】「TestNG专题」单元测试框架之TestNG使用教程指南(上)

浩宇天尚

Java 测试 单元测试 8月日更 testNG

一种单机支持 JavaWeb 容器万级并发的设想

Java 编程 程序员 面试

JavaScript 中 Math.random() 生成随机数据

devpoint

JavaScript 8月日更 math

架构实战训练营模块六作业

NewBranSTONE

#架构实战营

架构实战营 模块六 作业

一雄

作业 架构实战营 模块六

JAVA应用生产问题排查步骤

Java 编程 架构 程序人生 架构师

命中率高达87%,GitHub收费下载超过28W次的Java面试题库外泄

Java架构师迁哥

SSH免登陆

Mike

死锁终结者:顺序锁和轮询锁!

王磊

Java 死锁 8月日更

ShardingSphere JDBC 语句执行初探

源码 ShardingSphere

轻松让你的nginx服务器支持HTTP2协议

程序那些事

Java nginx HTTP 程序那些事 http2

区块链产业正处于繁荣前夜(上)

CECBC

区块链产业正处于繁荣前夜(下)

CECBC

03. AI就是与人类思考方式相似的计算机程序:从仿生学看人工智能的定义

数据与智能

人工智能

如何使用python制作动感炫酷的 动态二维码

4ye

Python 后端 二维码 8月日更

ShardingSphere UI 初步体验

源码 ShardingSphere

WAVE SUMMIT 2022 深度学习开发者峰会

WAVE SUMMIT 2022 深度学习开发者峰会

AI系统如何识别重复数据?_AI_Ilya Dudkin_InfoQ精选文章