1

一連の参照単語 (スペルが正しい) があり、ユーザー入力単語を取得する必要があります。入力単語は、レーベンシュタイン距離を使用して参照リストと比較され、コストが最も低い参照リストから単語を返す必要があります。さらに、その参照リストは頻度でソートされるため、頻度が高いほど上部に表示されます。2 つの単語の距離が同じ場合は、頻度の高い単語が返されます。「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.
4

1 に答える 1

2

これには次のようにアプローチできます。

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
于 2014-02-16T10:07:58.993 に答える