我想知道如何通過Python中的函數比較2個不同的字符串。更具體地說,兩個不同的字符串有多相似,以及它們的百分比(兩個字符串中出現的字母)的相似性。提前致謝。比較2個類似字母的字符串
-1
A
回答
1
def pctSame(s1,s2):
# Make sorted arrays of string chars
s1c = [x for x in s1]
s1c.sort()
s2c = [x for x in s2]
s2c.sort()
i1 = 0
i2 = 0
same = 0
# "merge" strings, counting matches
while (i1<len(s1c) and i2<len(s2c)):
if s1c[i1]==s2c[i2]:
same += 2
i1 += 1
i2 += 1
elif s1c[i1] < s2c[i2]:
i1 += 1
else:
i2 += 1
# Return ratio of # of matching chars to total chars
return same/float(len(s1c)+len(s2c))
1
你可以看看difflib的各種比較字符串和獲得差異的方法。看起來像difflib.Differ.compare(string1, string2)
會給你一個產生線條的迭代器。以-
爲前綴的行在一個字符串中,前綴爲空的行在兩個字符串中,並且以+
爲前綴的行位於另一個字符串中。
0
字符串相似性是一種度量,取決於您正在測量的內容。你是否試圖將錯字輸入到字典中的目標單詞?比較DNA或蛋白質序列?試圖基於與搜索查詢的相似性來進行文檔檢索?做模糊名稱匹配?對於這些任務中的每一個,不同的算法可能是合適的。如果你真的在問一個完全一般的問題,你可以從閱讀Levenshtein距離開始。
0
從difflib
的SequenceMaster
幾乎是你在找什麼。它取決於他們看起來像海誓山盟的多少,在0和1之間得分。
相關問題
- 1. 如何比較2個具有相似字符的字符串?
- 2. 比較兩個字符串由字母
- 3. Excel vba比較2個字母數字字符串
- 4. 字符串(C) - 比較兩個字符串的字母
- 5. c#比較2字符串
- 6. 字符串比較和單個字符的字母順序
- 7. 按字母順序比較字符串
- 8. 2個字符串的部分比較
- 9. 比較Haskell中的2個字符串
- 10. 比較Python中的2個字符串
- 11. 最好的方法來比較2個相似的字符串?
- 12. 類似字符串比較中的四個通配符
- 13. 字符串比較算法,相關性,多少「相似」2個字符串
- 14. 比較2個字符串PHP
- 15. C++比較2個字符串列表
- 16. 如何比較2個xml字符串?
- 17. 如何比較2個HTML字符串
- 18. MySQL的比較字符串忽略非字母數字字符
- 19. 比較字符串的相似之處?
- 20. C#比較相似的字符串
- 21. 如何比較2個字符串字符串
- 22. 比較和組合一個類似的字符串列表
- 23. 比較兩個字符串(類似於GNU diff的做法)
- 24. 字符串與最相似字符串的比較
- 25. 用字母比較字符串中的字符?
- 26. Javascript:如何僅比較字母字符上的字符串?
- 27. 比較字符串二進制(非字母數字字符)
- 28. 比較在特殊字符的jave中的2個字符串
- 29. 字符串比較,返回最相似
- 30. 字符串比較似乎無效
可能的複製:http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison – aioobe 2012-03-18 21:13:43
提問者是要求一個模塊,可以做到這一點。我在問怎麼沒有不同的模塊 – bahaaz 2012-03-18 21:16:02
@bahaaz爲什麼?這是作業嗎?有什麼試過? – 2012-03-18 21:20:28