NLP 最小編輯距離

2022-07-08 21:18:13 字數 1612 閱讀 2032

最小編輯距離

編輯距離(

edit distance,又稱

levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的編輯操作次數。最小編輯距離,是指所需最小的編輯操作次數。

動態規劃的核心思想是:將待求解的問題分解為若干個子問題(階段),按順序求解子階段,前一子問題的解,為後一子問題的求解提供了有用的資訊。在求解任一子問題時,列出各種可能的區域性解,通過決策保留那些有可能達到最優的區域性解,丟棄其他區域性解。依次解決各子問題,最後乙個子問題就是初始問題的解。

由於動態規劃解決的問題多數有重疊子問題這個特點,為減少重複計算,對每乙個子問題只解一次,我們將其不同階段的不同狀態儲存在乙個二維陣列中。

輸入:字串

1-str1

字串2-str2

實質問題:

求解動態規劃矩陣。假設我們以

str1

為主串(即對

str1

進行操作)

演算法:假設

str1=abcd str2=acd

;len1=str1

的長度,

len2

為str2

的長度。

建立矩陣:#a

bcd#

acd#表示在串前可以插入任何字元。

初始化:#a

bcd#

0123

4a1c

2d3三種編輯操作對應著矩陣的三種走法:

矩陣方向

編輯操作

計算公式

向右走:

right

刪除向下走:

down

插入對角線:

diagonal替換|

匹配

迴圈計算整個矩陣#a

bcd#

0123

4a10

123c

2111

2d32

2215.

即為最小編輯距離

最小編輯距離通常作為一種相似度計算函式被用於多種實際應用中,詳細如下:

(特別的,對於中文自然語言處理,一般以詞為基本處理單元)

拼寫糾錯(

spell correction

):又將每個詞與詞典中的詞條比較,英文單詞往往需要做詞幹提取等規範化處理,如果乙個詞在詞典中不存在,就被認為是乙個錯誤,然後試圖提示

n個最可能要輸入的詞

——拼寫建議。常用的提示單詞的演算法就是列出詞典中與原詞具有最小編輯距離的詞條。

命名實體抽取(

named entity extraction

):由於實體的命名往往沒有規律,如品牌名,且可能存在多種變形、拼寫形式,這樣導致基於詞典完全匹配的命名實體識別方法召回率較低,為此,我們可以使用編輯距離由完全匹配泛化到模糊匹配,先抽取實體名候選詞。

實體共指(

entity coreference

字串核函式(

string kernel

svm中使用。

NLP 二 編輯距離

編輯距離,又稱levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪除乙個字元。例如將kitten一字轉成sitting sitten k s sittin e i sitting g 俄羅斯科學家leve...

最小編輯距離

題目描述給定兩個字串str1和str2,再給定三個整數ic,dc和rc,分別代表插入 刪除和替換乙個字元的代價,請輸出將str1編輯成str2的最小代價。輸入 abc adc 5,3,2 輸出 2 輸入 abc adc 5,3,100 輸出 8 分析使用動態規劃進行解題,dp i j 表示str1的...

最小編輯距離

dp i j 代表字串word1 0.i 1 與word2 0.j 1 的最小編輯距離。插入舉例 x ex vs y exp 前面的兩個ex都是相同,則編輯距離不變為0,x沒有第三個字元,這裡如果我們插入了乙個字元即可。dp i j dp i j 1 1 刪除舉例 x exp vs y ex 我故意...