所以我使用difflib找到以不同格式写下的相同街道。这是真正让我感到困惑的一对:'1-йЛихачевскийпереулок'和'ПереулокЛихачевский1-й'。
我像这样计算序列相似性:
s = difflib.SequenceMatcher(None, "1-й Лихачевский переулок", "Переулок Лихачевский 1-й")
s.ratio()
给我0.5416666666666666的结果。够了,嗯?但好吧,get_close_matches()的默认截止点是0.6,所以我这样做:
difflib.get_close_matches('1-й Лихачевский переулок', 'Переулок Лихачевский 1-й', cutoff=0.5)
没有结果!实际上,即使我将截止值设置为0.1,也没有结果。
我缺少什么?
答案 0 :(得分:0)
get_close_matches()
的第二个参数是要匹配的字符串序列,而不是单个字符串。因此,例如,传递一个列表:
>>> difflib.get_close_matches('1-й Лихачевский переулок', ['Переулок Лихачевский 1-й'], cutoff=0.5)
['Переулок Лихачевский 1-й']
按原样,您传递了一个字符串,该字符串被视为一系列单个字符。