国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python文本相似性計算之編輯距離詳解

2019-11-25 16:28:51
字體:
供稿:網(wǎng)友

編輯距離

編輯距離(Edit Distance),又稱Levenshtein距離,是指兩個字串之間,由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)。編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。一般來說,編輯距離越小,兩個串的相似度越大。

例如將kitten一字轉(zhuǎn)成sitting:('kitten' 和 ‘sitting' 的編輯距離為3)

     sitten (k→s)

     sittin (e→i)

     sitting (→g)

Python中的Levenshtein包可以方便的計算編輯距離

包的安裝: pip install python-Levenshtein

我們來使用下:

# -*- coding:utf-8 -*-import Levenshteintexta = '艾倫 圖靈傳'textb = '艾倫•圖靈傳'print Levenshtein.distance(texta,textb)

上面的程序執(zhí)行結(jié)果為3,但是只改了一個字符,為什么會發(fā)生這樣的情況?

原因是Python將這兩個字符串看成string類型,而在 string 類型中,默認(rèn)的 utf-8 編碼下,一個中文字符是用三個字節(jié)來表示的。

解決辦法是將字符串轉(zhuǎn)換成unicode格式,即可返回正確的結(jié)果1。

# -*- coding:utf-8 -*-import Levenshteintexta = u'艾倫 圖靈傳'textb = u'艾倫•圖靈傳'print Levenshtein.distance(texta,textb)

接下來重點(diǎn)介紹下保重幾個方法的作用:

Levenshtein.distance(str1, str2)

計算編輯距離(也稱Levenshtein距離)。是描述由一個字串轉(zhuǎn)化成另一個字串最少的操作次數(shù),在其中的操作包括插入、刪除、替換。算法實(shí)現(xiàn):動態(tài)規(guī)劃。

Levenshtein.hamming(str1, str2)

計算漢明距離。要求str1和str2必須長度一致。是描述兩個等長字串之間對應(yīng)位置上不同字符的個數(shù)。

Levenshtein.ratio(str1, str2)

計算萊文斯坦比。計算公式  r = (sum

主站蜘蛛池模板: 金平| 汶上县| 长宁区| 比如县| 东阳市| 平利县| 义乌市| 本溪市| 新泰市| 高台县| 绍兴县| 德昌县| 兴化市| 红河县| 永年县| 南汇区| 安图县| 洞头县| 长宁区| 扶余县| 桐柏县| 丹巴县| 巴里| 马公市| 于田县| 仁布县| 钟祥市| 康平县| 湘潭市| 泽普县| 新巴尔虎左旗| 沙洋县| 察雅县| 武功县| 千阳县| 新乡市| 渝中区| 托克逊县| 济阳县| 象州县| 治多县|