Python中的Levenshtein距离循环

Python中的Levenshtein距离循环,python,function,for-loop,levenshtein-distance,word-frequency,Python,Function,For Loop,Levenshtein Distance,Word Frequency,我有一组参考词(拼写正确),需要用户输入一个词。使用levenshtein距离将输入字与参考列表进行比较,我需要从参考列表返回成本最低的字。此外,参考列表按频率排序,因此更高的频率出现在顶部。如果两个单词的距离相同,则返回频率较高的单词。“NWORDS”是我根据频率排序的参考列表。“候选者”是用户输入的单词 代码: for word in NWORDS: #iterate over all words in ref i = jf.levenshtein_distance(candidat

我有一组参考词(拼写正确),需要用户输入一个词。使用levenshtein距离将输入字与参考列表进行比较,我需要从参考列表返回成本最低的字。此外,参考列表按频率排序,因此更高的频率出现在顶部。如果两个单词的距离相同,则返回频率较高的单词。“NWORDS”是我根据频率排序的参考列表。“候选者”是用户输入的单词

代码:

for word in NWORDS: #iterate over all words in ref
    i = jf.levenshtein_distance(candidate,word) #compute distance for each word with user input

        #dont know what to do here
    return word #function returns word from ref list with lowest dist and highest frequency of occurrence.

您可以按如下方式进行处理:

match = None # best match word so far
dist = None # best match distance so far
for word in NWORDS: #iterate over all words in ref
    i = jf.levenshtein_distance(candidate, word) #compute distance for each word with user input
    if dist is None or i < dist: # or <= if lowest freq. first in NWORDS
        match, dist = word, i
return match #function returns word from ref list with lowest dist and highest frequency of occurrence
match=None#迄今为止最匹配的单词
距离=无#迄今为止最佳匹配距离
对于NWORDS中的单词:#迭代ref中的所有单词
i=jf.levenshtein_距离(候选词,单词)#使用用户输入计算每个单词的距离

如果dist为None或i