如何提高记录联动算法的精度

2024-05-28 20:53:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序,在记录列表中寻找可能的重复记录。我的程序的当前版本可以识别94%的重复数据,但如果可能的话,我需要将其提高到100%,同时尽量减少误报。事实证明这很棘手。在

我的程序将一个电子表格作为输入,其中有四个相关列,每个列的长度为n。首先是记录名称,然后是三个字符串属性。对于每个属性列,我通过比较每个元素的Levenshtein距离并形成包含每个距离的nxn矩阵,将每个元素与其他元素进行比较。然后,我通过只选择距离低于所选阈值的对来剔除矩阵中不太相似的元素对(每个列的阈值不同,因为某些属性在其实例中有或多或少的差异)。如果两个记录的对应属性对中至少有一个是可能重复的,则称这两个记录是可能重复的。在

Sample output: Kang,[Kor, Koloth, Martok]

Kang的记录很可能是Kor,Koloth和Martok的复制品 因为至少有一个相关的领域和康有为相似

^{pr2}$

我可以很容易地调整Levenshtein距离阈值来检测更高比例的重复项,但似乎将它们提高到高于它们的值会降低边缘识别率并显著增加误报的数量,因为有少量重复项的属性非常不同(不确定我可以张贴例子;这是工作敏感)。我考虑过其他的解决方案,比如除了Levenshtein的或者甚至是一个天真的Byes分类器之外,使用其他字符串相似性函数。 你认为我怎样才能最好地提高我的程序的准确性?在


Tags: 字符串程序元素距离列表属性记录矩阵

热门问题