Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何提高记录链接算法的准确性_Python_Algorithm_Levenshtein Distance_Naivebayes - Fatal编程技术网

Python 如何提高记录链接算法的准确性

Python 如何提高记录链接算法的准确性,python,algorithm,levenshtein-distance,naivebayes,Python,Algorithm,Levenshtein Distance,Naivebayes,我编写了一个程序,在记录列表中查找可能重复的记录。我的程序的当前版本识别了通过手动检查数据发现的94%的重复项,但如果可能的话,我需要将其提高到100%,同时最大限度地减少误报。事实证明,这很棘手 我的程序以一个电子表格作为输入,该表格有四个相关列,每个列的长度为n。首先是记录名,然后是三个字符串属性。对于每个属性列,我通过比较每个元素的Levenshtein距离并形成包含每个距离的nxn矩阵,将每个元素与其他元素进行比较。然后,我通过仅选择距离低于所选阈值的元素对(每个列的阈值不同,因为某些属

我编写了一个程序,在记录列表中查找可能重复的记录。我的程序的当前版本识别了通过手动检查数据发现的94%的重复项,但如果可能的话,我需要将其提高到100%,同时最大限度地减少误报。事实证明,这很棘手

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

Sample output: Kang,[Kor, Koloth, Martok]
其中Kang记录可能是Kor、Koloth和Martok的复制品 因为至少有一个相关字段类似于Kang的字段

e.g. bat'leth,[mek'leth,d'k tahg, mek'leth]
我可以很容易地调整Levenshtein距离阈值,以检测更高比例的重复,但似乎将其提高到高于现有水平会导致边缘识别减少,并显著增加误报的数量,因为存在少量属性非常不同的重复(我不确定我是否可以发布示例;这对工作很敏感)。我考虑过其他解决方案,比如使用Levenshtein之外的其他字符串相似性函数,甚至是一个天真的Byes分类器。 你认为我怎样才能最好地提高我的程序的准确性