我有一个单词的字面.对于dict中的每个键,我想在文章中找到它的频率.
在我打开文章后,我做了
for k, v in sourted_key.items():
for token in re.findall(k, data)
token[form] += 1
Run Code Online (Sandbox Code Playgroud)
在're.findall(k,data)'键中必须是字符串.但是这个词中的关键不是.我想搜索键.还有其他方法吗?请注意,KEYS包含许多PUNCTUATIONS.
例如,如果钥匙是'手'.它只匹配手.钱德勒,不方便.
在Python 2.7+中你可以使用collections.Counter它:
import re, collections
text = '''Nullam euismod magna et ipsum tristique suscipit. Aliquam ipsum libero, cursus et rutrum ut, suscipit id enim. Maecenas vel justo dolor. Integer id purus ante. Aliquam volutpat iaculis consectetur. Suspendisse justo sapien, tincidunt ut consequat eget, fringilla id sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent mattis velit vitae libero luctus posuere. Vestibulum ac erat nibh, vel egestas enim. Ut ac eros ipsum, ut mattis justo. Praesent dignissim odio vitae nisl hendrerit sodales. In non felis leo, vehicula aliquam risus. Morbi condimentum nunc sit amet enim rutrum a gravida lacus pharetra. Ut eu nisi et magna hendrerit pharetra placerat vel turpis. Curabitur nec nunc et augue tristique semper.'''
c = collections.Counter(w.lower() for w in re.findall(r'\w+|[.,:;?!]', text))
words = set(('et', 'ipsum', ',', '?'))
for w in words:
print('%s: %d' % (w, c.get(w, 0)))
Run Code Online (Sandbox Code Playgroud)