編輯距離
編輯距離是針對二個字符串(例如英文字)的差異程度的量化量測,量測方式是看至少需要多少次的處理才能將一個字符串變成另一個字符串。編輯距離可以用在自然语言处理中,例如拼寫檢查可以根據一個拼錯的字和其他正確的字的編輯距離,判斷哪一個(或哪幾個)是比較可能的字。DNA也可以視為用A、C、G和T組成的字符串,因此編輯距離也用在生物信息学中,判斷二個DNA的類似程度。Unix 下的 diff 及 patch 即是利用编辑距离来进行文本编辑对比的例子。
編輯距離有幾種不同的定義,差異在可以對字符串進行的處理。
例子
kitten和sitting的萊文斯坦距離是3。將kitten變為sitting的最小處理方式如下:
- kitten → sitten(將k改為s)
- sitten → sittin(將e改為i)
- sittin → sitting(最後加入g)
若是考慮LCS距離(只考慮加入及刪除),LCS距離是5:
- 刪除位在第1個字的k
- 在第1個字之前加入s
- 刪除位在第4個字的e
- 在第4個字之前加入i
- 在第6個字之前加入g
參考資料
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.