I\'m using the \"fuzzy match\" functionality of the Regex module.
How can I get the \"fuzziness value\" of a \"match\" which indicates how different the pattern is
>>> import difflib
>>> matcher = difflib.SequenceMatcher(None, 'foo', 'for')
>>> sum(size for start, end, size in matcher.get_matching_blocks())
2
>>> max(map(len, ('foo', 'for'))) - _
1
>>>
>>>
>>> matcher = difflib.SequenceMatcher(None, 'foo', 'food')
>>> sum(size for start, end, size in matcher.get_matching_blocks())
3
>>> max(map(len, ('foo', 'food'))) - _
1
http://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_matching_blocks http://docs.python.org/2/library/difflib.html#difflib.SequenceMatcher.get_opcodes
a = regex.match('(?:foo){e}','for')
a.fuzzy_counts
this returns a tuple (x,y,z) where:
x = number of substitutions
y = number of insertions and
z = number of deletions
But this is not always a reliable count, ie: the regex match fuzziness night not equate to the true Levinstein distance in some cases
Python regex module fuzzy match: substitution count not as expected