Levenshtein:計算字串的編輯距離

luckzack發表於2024-05-07

https://github.com/ztane/python-Levenshtein/
在處理文字資料時,我們經常需要比較兩個字串的相似度,無論是在自然語言處理、資料清洗還是使用者輸入驗證中。這時,Levenshtein距離(又稱編輯距離)就顯得尤為重要。它衡量的是,將一個字串轉換成另一個字串所需的最少編輯操作次數,包括插入、刪除和替換字元。Python社群提供了一個名為python-Levenshtein的庫,它能夠高效地計算Levenshtein距離及相關操作。

安裝python-Levenshtein

在開始之前,我們需要確保已經安裝了python-Levenshtein庫。開啟你的終端或命令提示符,輸入以下命令進行安裝:

pip install python-Levenshtein

這條命令會從Python包索引(PyPI)下載並安裝python-Levenshtein

使用python-Levenshtein進行文字比較

python-Levenshtein庫提供了多種函式來計算Levenshtein距離及執行相關操作。讓我們透過兩個示例來探索其使用方法。

示例1:計算Levenshtein距離

假設我們想比較兩個字串的相似度,以下是如何使用python-Levenshtein來計算它們之間的Levenshtein距離的程式碼:

import Levenshtein

str1 = "kitten"
str2 = "sitting"

# 計算Levenshtein距離
distance = Levenshtein.distance(str1, str2)

print(f"'{str1}' 和 '{str2}' 之間的Levenshtein距離為:{distance}")

執行這段程式碼,你的終端將會顯示出兩個字串之間的Levenshtein距離。在這個例子中,我們使用了Levenshtein.distance函式來進行計算。

示例2:計算相似度比率

除了計算距離外,我們也許對比較兩個字串的相似度比率更感興趣。python-Levenshtein同樣提供了這種功能:

import Levenshtein

str1 = "apple"
str2 = "appel"

# 計算相似度比率
ratio = Levenshtein.ratio(str1, str2)

print(f"'{str1}' 和 '{str2}' 之間的相似度比率為:{ratio:.2f}")

執行這段程式碼,你的終端將會顯示出兩個字串之間的相似度比率。我們使用了Levenshtein.ratio函式來進行計算,它返回一個介於0到1之間的數值,數值越接近1表示兩個字串越相似。

小結

python-Levenshtein是一個功能強大且易於使用的庫,它能幫助我們在Python中高效地進行文字比較。無論是需要計算兩個字串之間的Levenshtein距離,還是比較它們的相似度比率,python-Levenshtein都能滿足我們的需求。

相關文章