編輯距離算法 python有沒(méi)有什么包能判斷文本相似度?
python有沒(méi)有什么包能判斷文本相似度?安裝Python Levenshtein模塊PIP安裝Python Levenshtein使用Python Levenshtein模塊導(dǎo)入Levenshtei
python有沒(méi)有什么包能判斷文本相似度?
安裝Python Levenshtein模塊
PIP安裝Python Levenshtein
使用Python Levenshtein模塊
導(dǎo)入Levenshtein
算法說(shuō)明
1)萊文施泰因·哈明(STR1,STR2)
計(jì)算漢明距離。STR1和STR2的長(zhǎng)度必須相同。它描述兩個(gè)等長(zhǎng)字符串之間對(duì)應(yīng)位置的不同字符數(shù)。
2). Levenshtein.距離(STR1,STR2)
計(jì)算編輯距離(也稱為L(zhǎng)evenshtein距離)。它描述了將一個(gè)字符串轉(zhuǎn)換為另一個(gè)字符串的最小操作數(shù),包括插入、刪除和替換。
算法實(shí)現(xiàn)了參考動(dòng)態(tài)規(guī)劃。
3). 列文斯坦比率(STR1,STR2)
計(jì)算萊文斯坦比率。計(jì)算公式r=(sum-ldist)/sum,其中sum是STR1和STR2字符串長(zhǎng)度之和,ldist是類編輯距離
注意:這里的類編輯距離不是2中提到的編輯距離,2中的三個(gè)操作都是1。這里,刪除和插入仍然是1,但是替換為2
這個(gè)設(shè)計(jì)的目的是:比率(“a”,“C”),和=2,根據(jù)2中(2-1)/2=0.5的計(jì)算,“a”和“C”之間沒(méi)有重合,這顯然不劃算,但是可以通過(guò)替換操作2來(lái)解決。
4). Levenshtein.jaro公司(S1,S2)
計(jì)算Jaro距離,
其中m是S1,S2的匹配長(zhǎng)度,當(dāng)一個(gè)位置的字符相同時(shí),或在
t是切換時(shí)間的一半
5之內(nèi)。)列文施坦.jarouWinkler(s1,s2)
要計(jì)算Jaro-Winkler距離: