Python如何計算編輯距離?

2021-09-10 01:12:02 字數 1084 閱讀 5040

演算法原理

在計算文字的相似性時,經常會用到編輯距離。編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。通常來說,編輯距離越小,兩個文字的相似性越大。這裡的編輯操作主要包括三種:

下面通過示例來看一下。

1、batyu變為beatyu(插入字元e)

2、beatyu變為beaty(刪除字元u)

3、beaty變為beauty(插入字元u)

所以編輯距離為3。

那麼,如何用python計算編輯距離呢?我們可以從較為簡單的情況進行分析。

很明顯,上述演算法的思想即為動態規劃

python**實現

talk is cheap. show me the code. python**也是極其簡潔的,這也是動態規劃的魅力:

擴充套件

那麼,python功能這麼強大,有沒有計算編輯距離的包呢?

得到的結果是3而不是1。這是因為在字串編碼為utf-8時,乙個漢字占用3個位元組。改為unicode編碼即可得到1,即:

那麼,levenshtein包中還有沒有其它計算距離的方法呢?

這個包有很多計算距離的方法,包括如下:

總結

Python如何計算編輯距離?

演算法原理 在計算文字的相似性時,經常會用到編輯距離。編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。通常來說,編輯距離越小,兩個文字的相似性越大。這裡的編輯操作主要包括三種 下面通過示例來看一下。1 batyu變為beatyu 插入字元e 2 b...

Python實現計算最小編輯距離

最小編輯距離或萊文斯坦距離 levenshtei指由字串a轉化為字串b的最小編輯次數。允許的編輯操作有 刪除,插入,替換。具體內容可參見 維基百科 萊文斯坦距離。一般 實現的方式都是通過動態規劃演算法,找出從a轉化為b的每一步的最小步驟。從google借來的圖,python 實現,其中要注意矩陣的下...

計算編輯距離方法

給你兩個單詞word1和word2,請你計算出將word1和word2所使用的最少運算元。你可以對乙個單詞進行如下三種操作 1 插入乙個字元 2 刪除乙個字元 3 替換乙個字元 示例1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r ro...