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

Python 如何检查文本是否包含特定单词或类似单词?,python,string,python-3.x,praw,Python,String,Python 3.x,Praw,我对python非常陌生,我想知道是否输入了文本,我可以使用sequencematcher检查文本是否包含某个单词或另一个80%或以上相似的单词 例如,如果要检查的单词是“扬抑词”,而文本是: “在解剖学中,环流描述的是一种绕轴弯曲的结构 像弓一样。” 它会将其检测为90%匹配,然后执行某些操作,如果文本为: “在解剖学中,cercimflux描述了一种弯曲的结构 像弓一样。” 这将是一场70%的比赛,什么也不做 这可能吗?试试这个很棒的软件包 它就像- from fuzzywuzzy impo

我对python非常陌生,我想知道是否输入了文本,我可以使用sequencematcher检查文本是否包含某个单词或另一个80%或以上相似的单词

例如,如果要检查的单词是“扬抑词”,而文本是:

“在解剖学中,环流描述的是一种绕轴弯曲的结构 像弓一样。”

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

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

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

这可能吗?

试试这个很棒的软件包

它就像-

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

输出-
97

基于那只鸟的模糊模糊建议,加上我自己的附加内容来检查每个单词

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

此外,您还可以保存正在比较的单词和比较值,以便进一步使用。

您应该查看两个字符串之间的Jaro距离。有几个库可以实现它,例如
水母
,您可以安装它们。到字符串之间的距离(差异)称为Levenshtein距离。您可能希望通过视频详细了解它,列出模块并显示python实现。@James我找到了difflib SequenceMatcher,但我只希望它在较大文本中的某个单词中执行,然后您可以迭代检查每个单词的字符串。IE:for x in my_string:do sequencematching thing.我不想对整个文本进行匹配,只想对文本中的某个单词进行匹配。我不确定是否有可能我上面的评论也适用于这里。。。只需在字符串上迭代,然后对每个单词应用fuzzyfuzzy…@AlvieMahmud显然,您需要将一个单词存储在某种变量或列表中,以便对其进行比较。谢谢:)这似乎是最好的答案!我也可以试着把它改写成两个词。如果我使用两个单词并一次迭代两个单词,那么在Python3中似乎可以使用zip?没错,可以使用zip以多种方式处理w/元组。