我有以下字符串:
"The boy went to twn and bought sausage and chicken. He then picked a tddy for his sister"
要提取的单词列表:
["town","teddy","chicken","boy went"]
注:town和teddy在给定的句子中拼写错误
我尝试了以下方法,但我得到的其他词语不是答案的一部分:
import difflib
sent = "The boy went to twn and bought sausage and chicken. He then picked a tddy for his sister"
list1 = ["town","teddy","chicken","boy went"]
[difflib.get_close_matches(x.lower().strip(), sent.split()) for x in list1 ]
我得到以下结果:
[['twn', 'to'], ['tddy'], ['chicken.', 'picked'], ['went']]
而不是:
'twn', 'tddy', 'chicken','boy went'
在^{} 的文档中注意:
目前,您正在使用默认的
n
和cutoff
参数您可以指定其中一个(或两个),以缩小返回的匹配项的范围
例如,您可以使用0.75的
cutoff
分数:或者,您可以指定最多只返回1个匹配项:
在任何一种情况下,您都可以使用列表理解来展平列表列表(因为
difflib.get_close_matches()
总是返回一个列表):由于您还希望检查bigram的紧密匹配,因此可以通过提取相邻“单词”的配对,并将它们作为
possibilities
参数的一部分传递给difflib.get_close_matches()
下面是一个完整的工作示例:
如果您阅读了关于ifflib.get_close_matches()的Python文档 https://docs.python.org/3/library/difflib.html 它返回所有可能的最佳匹配。 方法签名: difflib.get_close_匹配(单词,可能性,n=3,截止值=0.6)
这里n是要返回的最大接近匹配数。所以我想你可以把这个作为1通过
相关问题 更多 >
编程相关推荐