我正在进行记录联动项目,我需要对各种字符串比较器进行一些调查工作。我正在看的那个是:
Jaro-Winkler,Levenshtein距离,最长公共子串和完全匹配。
我想知道,有没有做过什么工作来确定哪个好用,什么时候用?也就是说,Jaro-Winkler似乎对名字有好处,但在社会安全号码上进行精确匹配可能会更好。你会用哪个地址? Jaro-Winkler对其他人有优势吗?
有人可以指出我的白皮书吗?
感谢。
答案 0 :(得分:2)
一个很好的起点是'A Comparison of String Distance Metrics for Name-Matching Tasks'等人的论文William W. Cohen。本文比较了几个字符串距离指标。
他们还在SecondString project内实施了大部分内容。它是一个“开源的基于Java的近似字符串匹配技术包”,因此您可以轻松地比较不同的指标,而无需自己实现所有内容。
几乎不可能说哪个指标是最好的。正如你所说,Jaro-Winkler对于名字很有用,比较一下使用像Cohen所描述的基于令牌的指标(如TFIDF或SoftTFIFD)可能有意义的地址。
为了能够做出决定,您还应该考虑底层算法的复杂性和相关的执行时间。
答案 1 :(得分:0)
答案 2 :(得分:0)
对于姓名,特别是英语姓氏,Caverphone算法非常值得一看。我在我的数据集上测试了几个,它表现最好 - 至少满足我的需求。