记录联动:比较字符串比较器



我在做记录联动项目,我需要对各种字符串比较器做一些调查工作。我正在看的是:

Jaro-Winkler, Levenshtein距离,最长公共子串和精确匹配。

我想知道,有没有做过任何工作来确定哪一个是好的,什么时候使用?也就是说,Jaro-Winkler似乎对名字很有帮助,但对社会安全号码进行精确匹配可能会更好。你会用哪个来表示地址?Jaro-Winkler比其他人有什么优势吗?

有没有什么白皮书可以给我指一下?

谢谢。

William W. Cohen等人的论文《A Comparison of String Distance Metrics for Name-Matching Tasks》是一个很好的起点。本文比较了几种字符串距离度量。

他们还在SecondString项目中实现了其中的大部分。它是一个"开源的基于java的近似字符串匹配技术包",因此您可以轻松地比较不同的指标,而无需自己实现所有内容。

很难说哪个度量是最好的。正如你所说,Jaro-Winkler对名称很好,为了比较地址,使用基于令牌的指标,如TFIDF或SoftTFIFD,如Cohen所描述的,是有意义的。

为了能够做出决定,您还应该考虑底层算法的复杂性和相关的执行时间。

原来google scholar发现了这篇论文

http://www.amstat.org/sections/srms/proceedings/y2006/files/jsm2006 - 000855. - pdf

对于名字,特别是英文姓氏,Caverphone算法非常值得一看。我在我的数据集上测试了几个,它表现最好-至少对我的需求。

最新更新