



人们都希望做出更好的决策。无论是为了更好地服务客户,还是为了保障客户的安全,人们都希望做出正确的判断并开展正确的工作。为了能够自信地行动,人们需要了解服务对象及其信息。虽然人们时常有大量数据可以使用,但这些数据往往是孤立的,难以完整描述个体全貌。
实体消解是连接数据、串联数据并揭示全貌的技术。本书是一本实操指南,旨在帮助读者了解实体消解广阔的知识背景,掌握实体消解技术并灵活运用它。数据匹配看起来很容易,但通过本书,读者将了解到数据匹配并非总是一帆风顺的。不过不用担心,阅读完全书,读者就能够克服这些挑战,让数据集焕发生机。
本书适合金融服务、制药业或其他大型企业的产品经理、数据分析师或数据科学家阅读。如果你正面临数据孤岛难题、不同数据库中的客户信息存在分歧,或者你要合并来自不同组织或附属公司的信息,本书也适合你。
负责防范金融犯罪、管理声誉及供应链风险的风险管理专家,也能从本书对数据匹配挑战及其解决策略的深入讨论中受益。
实体消解的挑战无处不在。虽然我们可能不常用这个术语,但实体消解过程每天都在重复发生。在完成本书的几周前,妻子让我帮助她核对银行对账单上的付款人名单,以确认名单上的人是否都付款了。这正是实体消解的实际应用!
创作本书的想法,源于我想要阐释为什么核对名单上的匹配项并不像听起来那么简单,还想展示一些现在可用于高效处理实体消解问题的优秀工具和技术。
通过介绍一些真实案例,我希望读者能够自信地对数据集进行匹配,从而更好地服务并保护客户。非常欢迎读者向我分享读书的心得体会,或是对本书的任何反馈。如果对本书附带的代码有任何疑问,欢迎在GitHub( https://github.com/mshearer0/HandsOnEntityResolution )上提出。若想讨论实体消解问题,请通过LinkedIn( https://www.linkedin.com/in/mshearer0 )联系我。
实体消解既是一门技艺,也是一门科学。不存在适用于所有数据集的通用解决方案,因此开发者需要根据自身需求调整算法,以达成期望结果。希望本书读者能够相互帮助,找到最佳解决方案,通过分享彼此的经验,让众人受益。
本书旨在提供实体消解的实操指南,因此鼓励读者在逐章学习时动手运行代码。本书的核心原则是通过使用真实的开源数据,展示实体消解中的挑战与解决方案。但是,使用开源数据可能会面临一些挑战,因为开源数据集在发布后可能会有更新,导致读者的运算结果略有不同。请查看GitHub页面( https://github.com/mshearer0/HandsOnEntityResolution ),以获取及时更新,并访问最新代码。
本书各章内容如下:
● 第1章简要介绍实体消解,解释为什么需要进行实体消解,及实体消解包含的主要步骤。
● 第2章阐述在尝试匹配记录之前,数据标准化的重要性。
● 第3章至第6章展示如何使用模糊匹配和概率匹配方法,比较数据记录以消解实体。
● 第7章介绍对于描述同一实体的记录,将其聚类到唯一可识别簇的过程。
● 第8章和第9章展示如何使用云计算服务大规模实施实体消解。
● 第10章介绍如何利用记录关联技术保护数据所有者隐私。
● 第11章介绍对实体消解算法设计的进一步思考,并展望实体消解技术的未来发展。
建议读者连续阅读第2章至第9章,因为这些章节会使用相同的数据集逐步构建出实体消解解决方案。
本书假定读者具备Python基础知识。如有学习需要,可访问互动教程网站
http://learnpython.org
。此外,强烈推荐Wes McKinney所著的
Python for DataAnalysis
一书。对于更有经验的读者,建议学习pandas、Spark和Google Cloud Platform,肯定能有所收获。
本书使用以下排版约定:
斜体 ( Italic )
表示新的术语、URL、电子邮件地址、网址文件名和文件扩展名。
等宽字体(Constant width)
用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体( Constant width bold )
表示应由用户直接输入的命令或其他文本。
等宽斜体( Constant width italic )
表示应由用户提供的值或由上下文确定的值替换的文本。
该图标表示一般性说明。
该图标表示警告或注意。
可从 https://github.com/mshearer0/HandsOnEntityResolution 下载补充材料(示例代码、练习等)。
本书旨在帮助读者完成工作。通常,可以在程序和文档中使用本书中的代码,而不需要联系O'Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O'Reilly的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。
非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和ISBN,例如:
Hands-On Entity Resolution ,作者Michael Shearer,由O'Reilly出版,书号978-1-098-14848-5。
如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过 permissions@oreilly.com 联系我们。
40多年来,O'Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和创新者组成的庞大网络,他们通过图书、文章和在线学习平台分享他们的知识和经验。O'Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O'Reilly和200多家其他出版商提供的大量教材和视频资源。如需有关的更多信息,请访问 https://oreilly.com 。
对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O'Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
要询问技术问题或对本书提出建议,请发送电子邮件至 errata@oreilly.com.cn 。
本书配套网站 https://oreil.ly/handsOnEntityResolution 上列出了勘误表、示例以及其他信息。
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站 https://oreilly.com 。
我们在LinkedIn上的地址: https://linkedin.com/company/oreilly-media 。
我们在X上的地址: https://twitter.com/oreillymedia 。
我们在YouTube上的地址: https://youtube.com/oreillymedia 。
写书是一项团队工作。很荣幸能编写这本书,感谢所有愿意参与以及自愿做出贡献的人们。没有他们,本书不可能付梓。
首先,我要感谢Aurélien Géron,他的 Hands-On Machine Learning with Scikit-Learn,Keras,and TensorFlow 一书启发了我,使我有了创作本书的想法。我还要对我在汇丰银行的所有前同事表示感谢,他们在打击金融犯罪的过程中完美运用了实体消解技术。
我要感谢O'Reilly出版社的每一位编辑,首先感谢高级内容策划编辑Michelle Smith,她接纳了我最初的想法并协助制定了提案。诚挚感谢Jeff Bleiel,他的写作指导和编辑工作对我帮助良多。感谢排版编辑Aleeya Rahman提供了格式化和LaTeX技巧方面的指导。感谢内容服务经理Kristen Brown发布了早期版本,这是鼓舞人心的里程碑。我还想感谢Karen Montgomery,她为本书设计了非常合适的封面配图—这两只鸟儿配成了一对儿吗?
特别感谢审读者Robin Linacre、Olivier Binette和Juan Amador。感谢Juan在几年前向我介绍实体消解这一技术,并激发了我进一步学习的兴趣;感谢Olivier在最新技术动态和评估方面的专业指导;感谢Robin以实用、易懂的方式向我阐释了实体消解的复杂性。我还要感谢Splink和OpenMined团队,本书的大部分内容基于他们的开源框架,让我想到了“站在巨人的肩膀上”这句话。
最后,我必须向我亲爱的妻子Kay表达深深的谢意,感谢她在我的整个写作过程中给予的支持和耐心。同时,我也要感谢两个女儿:Abigail鼓励我用简单易懂的方式进行写作,Emily则一直鼓励我坚持到底!