@@ -262,8 +262,8 @@ def __call__(self, s1, s2, prefix_weight=0.1):
262262 # looking only within search range, count & flag matched pairs
263263 common_chars = 0
264264 for i , s1_ch in enumerate (s1 ):
265- low = i - search_range if i > search_range else 0
266- hi = i + search_range if i + search_range < s2_len else s2_len - 1
265+ low = max ( 0 , i - search_range )
266+ hi = min ( i + search_range , s2_len - 1 )
267267 for j in range (low , hi + 1 ):
268268 if not s2_flags [j ] and s2 [j ] == s1_ch :
269269 s1_flags [i ] = s2_flags [j ] = True
@@ -284,7 +284,7 @@ def __call__(self, s1, s2, prefix_weight=0.1):
284284 break
285285 if s1 [i ] != s2 [j ]:
286286 trans_count += 1
287- trans_count /= 2
287+ trans_count // = 2
288288
289289 # adjust for similarities in nonmatched characters
290290 common_chars = float (common_chars )
@@ -312,7 +312,7 @@ def __call__(self, s1, s2, prefix_weight=0.1):
312312 # agreed characters must be > half of remaining characters
313313 if not self .long_tolerance or min_len <= 4 :
314314 return weight
315- if common_chars < i or 2 * common_chars < min_len + i :
315+ if common_chars <= i + 1 or 2 * common_chars < min_len + i :
316316 return weight
317317 tmp = float (common_chars - i - 1 ) / (s1_len + s2_len - i * 2 + 2 )
318318 weight += (1.0 - weight ) * tmp
0 commit comments