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 to the string, just like the "edit distance" in Levenshtein?
I thought I could get the value in the Match object, but it's not there. The official docs said nothing about it, neither.
e.g.:
regex.match('(?:foo){e}','for')
a.captures()
tells me that the word "for" is matched, but I'd like to know the fuzziness value, which should be 1
in this case.
Is there any way to achieve that?
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
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