समाधान # 1: अजगर difflib
पेशेवरों से
उपयोग SequenceMatcher builtin: देशी अजगर पुस्तकालय, अतिरिक्त पैकेज की जरूरत नहीं है।
विपक्ष: बहुत सीमित, वहाँ स्ट्रिंग समानता के लिए कई अन्य अच्छे एल्गोरिदम हैं।
उदाहरण:
>>> from difflib import SequenceMatcher
>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75
समाधान # 2: jellyfish पुस्तकालय
अपनी अच्छी कवरेज और कुछ मुद्दों के साथ एक बहुत अच्छा पुस्तकालय। यह समर्थन करता है:
- Levenshtein दूरी
- Damerau-Levenshtein दूरी
- Jaro दूरी
- Jaro-विंकलर दूरी
- मिलान रेटिंग दृष्टिकोण तुलना
- आलोचनात्मक अंतर
पेशेवरों: आसान समर्थित एल्गोरिदम का उपयोग करने के लिए, परीक्षण किया।
विपक्ष: मूल पुस्तकालय नहीं।
उदाहरण:
>>> import jellyfish
>>> jellyfish.levenshtein_distance(u'jellyfish', u'smellyfish')
2
>>> jellyfish.jaro_distance(u'jellyfish', u'smellyfish')
0.89629629629629637
>>> jellyfish.damerau_levenshtein_distance(u'jellyfish', u'jellyfihs')
1
स्रोत
2017-09-08 22:49:25
मुझे नहीं लगता कि "संभावना" यहाँ बहुत सही शब्द है है। किसी भी घटना में, http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison – NPE
जो शब्द आप खोज रहे हैं वह अनुपात है, संभावना नहीं है। –
[हैमिंग दूरी] पर एक नज़र डालें (http://en.wikipedia.org/wiki/Hamming_distance)। – Diana