我有一些产品名称,其中由于某些拼写错误,嘈杂的单词等而存在一些重复项。我正在使用概率LSH算法来识别每个名称的潜在重复项,然后通过定义Jaro-Winkler距离来查找确切的重复项将一对名称标记为重复的某个最小阈值距离,否则距离计算操作的次数将非常大,因为名称以百万计。
问题是将已标识的重复记录合并为一个。现在,由于我正在使用概率LSH算法来识别潜在的重复项,并使用Jaro-Winkler距离的高阈值来查找精确的重复项,因此可能会发生以下情况:
name, duplicates
aa battery, [aa battry, aa batteries]
aa battry, [aa batteries, aa bettery]
其中重复字段是指标识为重复的名称。现在,我需要创建一个没有重复的列表。
此外,我面临的另一个问题是弄清楚在所有已识别的重复项中哪个是正确的名称。现在,我正在使用nltk英语单词corpus并选择使用最合适的英语单词的名称。发生冲突时,我选择长度最长的名称来正确。也欢迎对此提出任何建议。