假设我有一个文档,我想搜索字符串“Google”,但也可能会输入错误信息,例如“Goggle”,“Gooole”,“Goofle”。
我想要做的是弄清楚是否有办法创建一个每个位置都有变化的字符串,例如我想要搜索 G +(o)+(o或g)+(o或g或f)+(l)+ e。
将这些字母连接在一起是一种在Python中执行此操作的方法,还是有一种更简单的方法?您是否可以在每个位置添加变体而无需输入每个可能的字母组合?
谢谢
答案 0 :(得分:3)
我会使用字符串距离并选择一个阈值:
import difflib
def similarity(word, pattern):
return difflib.SequenceMatcher(a=word.lower(), b=pattern.lower()).ratio()
text = "Somme text with google or gooole or goofle";
lookup = "google";
threshold = 0.9
for word in text.split():
if similarity(word, lookup) > threshold:
print(word)
答案 1 :(得分:1)