我有一段话要说。对于dict中的每个键,我想在一篇文章中找到它的频率。
我开了一篇文章之后

for k, v in sourted_key.items():
    for token in re.findall(k, data)
        token[form] += 1

“re.findall(k,data)”中的键必须是字符串。但这段录音里的钥匙不是。我想搜一下钥匙。还有其他解决办法吗?注意,这些键包含许多标点符号。
如果钥匙是“手”的话。它只和手匹配。不方便,钱德。

最佳答案

在Python2.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)))

关于python - 计算文本中字典键的频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10501299/

10-11 22:48