如何检查文本中是否包含特定单词或类似单词?

时间:2018-07-15 22:23:39

标签: python string python-3.x praw

我真的是python的新手,我想知道是否输入了文本,我可以使用sequencematcher检查文本中是否包含某个单词或另一个80%相似或更高的单词。

例如,如果要检查的单词是“ circumflex ”,而文字是:

  

“在解剖学中,旋流描述了一种弯曲的结构   像弓一样。”

它将检测为90%匹配,然后执行某些操作,否则,如果文本为:

  

“在解剖学中, cercimflux 描述了一种弯曲的结构   像弓一样。”

这将是70%的比赛,什么也不做。

这可能吗?

2 个答案:

答案 0 :(得分:0)

尝试这个很棒的软件包fuzzywuzzy

它的工作原理类似于-

from fuzzywuzzy import fuzz
fuzz.ratio("this is a test", "this is a test!")

输出-97

答案 1 :(得分:0)

基于ThatBird的模糊建议,加上我自己的补充内容,以检查每个单词。

from fuzzywuzzy import fuzz

my_string = "this is a test"
comparisons = []
for x in my_string:
    comparisons.append(fuzz.ratio(x, "test!"))
print sum(i > 70 for i in comparisons) #Based on previous example test! would be 97%

Output: 1 #as test was a 97% match

此外,您还可以保存要比较的单词和比较值,以使它们可以进一步使用。