我不确定这个问题是否重复。但是,我知道更多关于R或Java或Python中优化的Levenshtein距离算法实现的知识。我有一个文本文件,其中包含许多字符串行按字母顺序排列(接近2000条记录,如下所示),它们之间可能有某种相似性。现在,我想比较文件中的所有字符串对并输出距离矩阵。另外,请让我知道如何使用这个矩阵根据我的要求过滤设置字符串说LD< = 2。
如果问题不明确并且您需要更多信息,请回复我。
Sample Text File
----------------
abc
abcd
abe
bac
bad
back
blade
cub
cube
cute
dump
duke
答案 0 :(得分:0)
所以这可以稍微颠倒的方式完成。创建字典d = {word:[] for word in file}
。现在:
for word in d:
for neighbor in edit_distance_1(word):
if neighbor in d:
d[word].append(neighbor)
现在d
将是他们的edit-distance-1邻居的所有单词的图表。您可以进一步追踪这些边缘以获得编辑距离2个单词(通过其他单词),我相信这就是您想要的。