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

时间:2011-10-03 11:55:19

标签: 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                 print text

表现非常好。但它有一个问题。例如,我有一个关键词“flu”,它不仅给出了“流感”,还给出了“影响”。为了解决这个问题,我搜索了匹配单词示例并修复了这样的代码。

  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

但它不起作用。请帮帮我!

2 个答案:

答案 0 :(得分:7)

您需要将each_keyword替换为正则表达式。目前,它确实试图匹配“each_keyword”。

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

答案 1 :(得分:0)

或者选择不使用正则表达式并使用更多kw变体,

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