【发布时间】:2017-07-26 15:42:12
【问题描述】:
我编写了一个 Python 函数,它接受两个列表,使用 Levenshtein 比较它们并将足够相似的单词合并到一个名为“merged”的列表中。
如何为 6 个以上的列表执行此操作?确保将每个列表与其他 5 个列表进行比较等等?
first_list = ["Mouse", "Cat", "Dog", "Gremlinge", "Horse"]
second_list = ["Mouse", "Cat", "Hors", "Dog", "Gremling"]
third_list = ["Mouse", "Cat", "Horrs", "Dog", "Greemling"]
fourth_list = ["Mouse", "Cate", "Dog", "Gremlinge", "Horse"]
fifth_list = ["Mose", "Cat", "Hors", "Dog", "Gremling"]
sixth_list = ["Mouse", "Cat", "Horser", "Doeg", "Gremling"]
def lev_merging(a, b): # function to compare 2 lists
merged = [] # Empty list to add the matching words
for first in a:
for second in b:
if levenshtein(first, second) < 2:
merged.append(set([first,second]))
return merged
print (lev_merging(first_list,second_list))
【问题讨论】:
-
所以你想比较
first_list中的每个单词和second_list中的每个单词? -
感谢您的评论。不,这就是我的功能目前所做的。我已经更新了帖子以显示其他 4 个列表,我希望我的函数也可以通过并合并相似性。
-
您能否提供您正在寻找的示例输出?您是否正在寻找单个列表的结果,其中列表中的每个元素都是所有列表中所有“关闭”单词的集合。所以
[{"Mouse","Mose"}, {"Cat", "Cate"}, ...] -
是的,谢谢,这正是我要找的。最好我也想只将“关闭”词合并到他们自己的列表中,如果它们来自 3 个或更多列表,我想这需要某种计数器?
标签: python list function compare levenshtein-distance