如何使用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 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
但它不起作用。请帮助我!
答
您需要将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
答
或者做没有正则表达式和使用更多千瓦的变化,
for keyword in keywords:
kw_list = [' '+keyword+',',' '+keyword+' ',' '+keyword+'.','. '+keyword]
for kw in kw_list:
if kw in text:
related_tweet_count += 1
+0
谢谢!我会试试看。 – ooozooo
非常感谢!在我提出这个问题之前,我尝试过使用“if re.search('\ b'+ each_keyword +'\ b',text,re.I):”并且它不起作用。我忘记了“\\”的用法。 – ooozooo
没问题。我发现有时'\ x'会起作用,如果它不是一个有效的字符串转义序列,但为了保持一致性,最好总是使用'\\ x'。 – connec