如何使用python从文本中提取精确的单词?

如何使用python从文本中提取精确的单词?,python,Python,我想计算有多少行包含与我选择的关键字匹配的单词。所以我这样编码 28 for each_keyword in keywords: 29 if each_keyword in text: 31 related_tweet_count += 1 32 print "related_tweet_count", related_tweet_count 33

我想计算有多少行包含与我选择的关键字匹配的单词。所以我这样编码

  28         for each_keyword in keywords:
  29             if each_keyword in text:
  31                 related_tweet_count += 1
  32                 print "related_tweet_count", related_tweet_count
  33                 print text
  28         for each_keyword in keywords:
  30             if re.search('\beach_keyword\b', text, re.I):
  31                 related_tweet_count += 1
  32                 print "related_tweet_count", related_tweet_count
  33                 print text
它表现得很好。但它有一个问题。例如,我有一个关键词“flu”,它不仅给出了“flu”,还给出了“影响力”。为了解决这个问题,我搜索了匹配词示例,并修复了如下代码

  28         for each_keyword in keywords:
  29             if each_keyword in text:
  31                 related_tweet_count += 1
  32                 print "related_tweet_count", related_tweet_count
  33                 print text
  28         for each_keyword in keywords:
  30             if re.search('\beach_keyword\b', text, re.I):
  31                 related_tweet_count += 1
  32                 print "related_tweet_count", related_tweet_count
  33                 print text

但它不起作用。请帮帮我

实际上需要将
每个_关键字
替换为正则表达式。目前,它正在尝试匹配“每个_关键字”


实际上,您需要将
每个_关键字
替换为正则表达式。目前,它正在尝试匹配“每个_关键字”


或者,在不使用正则表达式的情况下使用更多的kw变量

for keyword in keywords:
    kw_list = [' '+keyword+',',' '+keyword+' ',' '+keyword+'.','. '+keyword]
    for kw in kw_list:
        if kw in text:
            related_tweet_count += 1

或者,在不使用正则表达式的情况下使用更多的kw变量

for keyword in keywords:
    kw_list = [' '+keyword+',',' '+keyword+' ',' '+keyword+'.','. '+keyword]
    for kw in kw_list:
        if kw in text:
            related_tweet_count += 1

谢谢!在我提出这个问题之前,我试着使用“if re.search('\b'+每个_关键字+'\b',text,re.I:”,但它不起作用。我忘了“\\”的用法。没问题。我发现有时
\x
会起作用,可能是因为它不是有效的字符串转义序列,但为了保持一致性,最好始终使用
\\x
。非常感谢!在我提出这个问题之前,我试着使用“if re.search('\b'+每个_关键字+'\b',text,re.I:”,但它不起作用。我忘了“\\”的用法。没问题。我发现有时
\x
会起作用,可能是因为它不是有效的字符串转义序列,但为了保持一致性,最好始终使用
\\x