全文共4812字,预计学习时长10分钟
相同但不同。数据的模糊匹配是许多数据科学工作流程中必须的第一步。
真实世界中的数据十分杂乱。整理这些杂乱的数据集非常困难,并且会浪费大量用于数据分析本身的时间。
本文重点阐述了模糊匹配,以及如何通过下列方式自动化解决数据科学工作流程中的疑难问题:
1. 删除重复数据。合并数据集中相似的类别或项目(比如,可能需要将“D J Trump”,“D. Trump”和“Donald Trump”当作同一个条目”)。
2. 记录链接。关联某个特定实体的相关数据集(比如,把关于“D J Trump”的记录链接到他的维基百科页面)。
通过使用一种自然语言处理领域中的特殊手段,可以对大型数据集进行以上两种处理。
大型数据集的模糊匹配问题
可以执行模糊匹配的算法很多,但它们难以处理包含几千条记录的中型数据集。
原因是这些算法把每一条记录和数据集中的其他所有记录做对比。在计算机科学中,这一算法的运行时间随数据集大小呈平方增长。这会阻碍算法处理较大的数据集。
运行时间随数据集大小呈平方增长时记录条数和所需操作次数的对比。一个仅包含1万条记录的数据集需要1亿次操作。
更糟糕的是,字符串的长度也会影响大多数字符串匹配函数的效率。所以当比较两段较长的文本时,函数的运行速度会更慢。
用著名的NLP算法解决此问题
这个问题的解决方案来自一个著名的自然语言处理算法,也就是词频-逆文本频率指数算法(简称tf-idf)。从1972年起这个算法就被用于处理语言问题。
这是一个简单的算法。它把文本划分成信息块(或者称为项目),计算给定文本中每个信息块的出现次数,然后基于这个信息块在数据集所有文本中的罕见程度加权。这将把有意义的词语从常见词语中分离出来。
虽然信息块