當我運行下面的代碼時,我得到一堆行,說“沒有結果”
我想通過使用該string_len_test函式查看地址是否相似 ,然后每個地址是否不相似以進行某種模糊匹配。如果每次比較的結果都是某個值 % 值,那么我想對它們執行一些邏輯(現在我只有列印陳述句)。我知道我的資料具有很高的匹配分數,但它們似乎在這個 if/else 陳述句中被跳過了。
def string_len_test(l_value, v_value):
if abs(len(l_value) - len(v_value)) >2:
#print('not matched')
return False
elif abs(len(l_value) - len(v_value)) == 0:
#print('potential match', l_value, v_value)
return True
else:
return False
for link in Address1.itertuples():
if link._5 == 'X':
match_table = Adddress_main_X
else:
match_table = Adddress_main_Y
for v in match_table.itertuples():
if not string_len_test(link.Address_1, v.Address_2):
continue
lev_score = lev(link.Address_1, v.Address2)
fuzz_score = fuzz.token_sort_ratio(link.Address_1, v.Address2)
#print(lev_score)
#print(fuzz_score)
if lev_score >=98 | fuzz_score >90:
print('match', link.Address_1, v.Address2)
if lev_score >= 80:
print('close', link.Address_1, v.Address2)
else:
print('no results')
uj5u.com熱心網友回復:
添加了一個 else pass 陳述句并去掉了 continue 陳述句。謝謝大家的幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/387046.html
上一篇:C 宣告和范圍問題
