字符串相似度對比

最近項目需要比較兩個字符串的相似度,並且返回相同的元素所佔的百分比。

如果讓我自己做的話,思路是把兩個字符串分別轉化爲列表,然後在列表中解決掉。

new = [i for i,j in zip(a, b) if i == j]
ratio = 2.0 * len(new) / (len(a) + len(b))


去網上一查,發現python自帶比較相似度的模塊,difflib。比較兩個字符串的模塊是difflib.SequenceMatcher,使用起來很簡單:

seq = difflib.SequenceMatcher(None, a, b)
ratio = seq.ratio()


最主要的是,python原生的模塊的效率都比較好。其中None的位置是一個函數,用來去掉自己不想算在內的元素。比如我想把空格排除在外:

seq = difflib.SequenceMatcher(lambda x:x=" ", a, b)
ratio = seq.ratio()


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章