我需要将源字符串转换为目标字符串,并表达与对源字符串的操作 (D,A,TYPE) 即(删除、添加、PREFIX\SUFFIX)相同的操作,这将在应用这些操作时将其转换为目标字符串源字符串的后缀,或源字符串的前缀
例如:
activities->activity
(ies,y,suffix)
center->centre
(er,re,suffix)
solutions->solution
(s,None,suffix)
solution ->solutions
(None,s,suffix)
could->would
(c,w,prefix)
以下代码确实获得了后缀,但也获得了所有其他匹配项,但我只需要后缀,除此之外它不会按照我的要求输出正确的格式。
from difflib import SequenceMatcher
a = "ACTIVITY"
b = "ACTIVITIES"
s = SequenceMatcher(None, a, b)
for tag, i1, i2, j1, j2 in s.get_opcodes():
print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" %
(tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2]))
此外,如果没有足够的后缀/前缀匹配,我也不需要输出任何更正,例如:字符串足够,超出不应该产生匹配,这可能来自:
difflib.SequenceMatcher(None,'especially','particularly').ratio()