我有一个我想在文本字符串中找到的关键字列表。完全匹配工作正常,但是任何人都知道库可以帮助进行近似匹配,例如,如果我提供的单词列表是
["hello", "bye"]
我希望看一下文本字符串是否有hlelo
到某种程度的“亲密度”
有什么建议吗?
答案 0 :(得分:3)
这就是我要做的。首先,定义要搜索的字符串并删除无关的字符:
>>> tosearch = "This is a text string where I typed hlelo but I meant to type hello."
>>> import string
>>> exclude = set(string.punctuation)
>>> tosearch = ''.join(ch for ch in tosearch if ch not in exclude)
>>> tosearch
'This is a text string where I typed hlelo but I meant to type hello'
>>> words = set(tosearch.split(" "))
接下来,您可以使用difflib库查找与给定字词的近似匹配:
>>> import difflib
>>> difflib.get_close_matches('hello', words)
['hello', 'hlelo']