我正在尝试识别一个特定的单词,然后对其进行计数。我需要保存每个标识符的计数。
例如,文档可能包含以下内容:
risk risk risk free interest rate
asterisk risk risk
market risk risk [risk*我需要计算‘风险’而不是星号。可能还有其他与风险相关的词,所以不要坚持上面的例子。我需要找到的是“风险”。如果风险以<(或.!*> ),等等。我也需要数一数。但如果风险词是像星号这样的词的一个组成部分,那么我就不应该计算它。
这是我到目前为止所拥有的。但是,它返回星号和[风险以及风险的计数。我试着使用正则表达式,但总是出错。另外,我是Python的初学者。如果任何人有任何想法,请帮助我!!^^谢谢。
from collections import defaultdict
word_dict=defaultdict(int)
for line in mylist:
words=line.lower().split() # converted all words to lower case
for word in words:
word_dict[word]+=1
for word in word_dict:
if 'risk' in word:
word, word_dict[word]发布于 2012-09-01 08:04:09
if 'risk' == word:
print word, word_dict[word]发布于 2012-09-01 08:09:59
实际上,使用正则表达式很容易做到这一点:
import re
haystack = "risk asterisk risk brisk risk"
prog = re.compile(r'\brisk\b')
result = re.findall(prog, haystack)
print len(result)这将输出"3“。
\b regexp表示任何单词分隔符,包括行尾/行开头。
https://stackoverflow.com/questions/12223803
复制相似问题