安裝python-Levenshtein模組
pip install python-Levenshtein
使用python-Levenshtein模組
import Levenshtein
演算法說明
1). Levenshtein.hamming(str1, str2)
計算漢明距離。要求str1和str2必須長度一致。是描述兩個等長字串之間對應 位置上不同字元的個數。
2). Levenshtein.distance(str1, str2)
演算法實現參考動態規劃整理。
3). Levenshtein.ratio(str1, str2)
計算萊文斯坦比。計算公式r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的長度總和,ldist是 類編輯距離
這樣設計的目的:ratio("a", "c"),sum=2, 按2中計算為(2-1)/2 = 0.5,’a","c"沒有重合,顯然不合算,但是替換操作+2,就可以解決這個問題。
4). Levenshtein.jaro(s1 , s2 )
計算jaro距離,
其中的 m 為s1 , s2的匹配長度,當某位置的認為匹配當該位置字元相同,或者在不超過
t是調換次數的一半
5.) Levenshtein.jaro_winkler(s 1 , s 2 )
計算 Jaro–Winkler距離:
安裝python-Levenshtein模組
pip install python-Levenshtein
使用python-Levenshtein模組
import Levenshtein
演算法說明
1). Levenshtein.hamming(str1, str2)
計算漢明距離。要求str1和str2必須長度一致。是描述兩個等長字串之間對應 位置上不同字元的個數。
2). Levenshtein.distance(str1, str2)
演算法實現參考動態規劃整理。
3). Levenshtein.ratio(str1, str2)
計算萊文斯坦比。計算公式r = (sum - ldist) / sum, 其中sum是指str1 和 str2 字串的長度總和,ldist是 類編輯距離
這樣設計的目的:ratio("a", "c"),sum=2, 按2中計算為(2-1)/2 = 0.5,’a","c"沒有重合,顯然不合算,但是替換操作+2,就可以解決這個問題。
4). Levenshtein.jaro(s1 , s2 )
計算jaro距離,
其中的 m 為s1 , s2的匹配長度,當某位置的認為匹配當該位置字元相同,或者在不超過
t是調換次數的一半
5.) Levenshtein.jaro_winkler(s 1 , s 2 )
計算 Jaro–Winkler距離: