文字匹配或相似

NLP 的一個重要領域是文字物件的匹配以找到相似之處。文字匹配的重要應用包括自動拼寫校正,重複資料刪除和基因組分析等。根據需要,可以使用許多文字匹配技術。所以,讓我們; Levenshtein 距離

兩個字串之間的 Levenshtein 距離定義為將一個字串轉換為另一個字串所需的最小編輯數,允許的編輯操作是單個字元的插入,刪除或替換。

以下是有效記憶體計算的實現。

def levenshtein(s1,s2): 
   
 if len(s1) > len(s2):
    s1,s2 = s2,s1 
distances = range(len(s1) + 1) 

for index2,char2 in enumerate(s2):
    newDistances = [index2+1]
    for index1,char1 in enumerate(s1):
        if char1 == char2:
            newDistances.append(distances[index1]) 
        else:
             newDistances.append(1 + min((distances[index1], distances[index1+1], newDistances[-1]))) 
             distances = newDistances 

             return distances[-1]

print(levenshtein("analyze","analyse"))