根据我的经验,这是一项特殊的工作。我用很多不同的方式搜索,但仍然找不到答案。 这里的问题是。
我有一个中文短语频率的字典。它看起来像:
{'中国':18950, '我们':16734, '我国':15400, ...}
我需要做的是计算每个角色的频率,例如: 字符'国'出现在两个短语中('中国'和'我国'),所以这个字符的频率应该是:
{'国':(18950+15400)}
我怎样才能做到这一点?
答案 0 :(得分:1)
简单的例子,
d = {'abd':2, 'afd':3}
f = {}
for key in d:
strlen = len(key)
for i in range(strlen):
if key[i] in f:
f[key[i]] += d[key]
else:
f[key[i]] = d[key]
print f #gives {'a': 5, 'b': 2, 'd': 5, 'f': 3}
答案 1 :(得分:0)
SHA
答案 2 :(得分:0)
这样的事情应该有效:
from collections import defaultdict
char_dict = defaultdict(int)
for phrase, count in phrase_dict.iteritems():
for char in phrase:
char_dict[char] += count
答案 3 :(得分:0)
我的方式:
from collections import Counter
c={'中国':18950, '我们':16734, '我国':15400}
print(Counter([j for k,v in c.items() for i in k for j in [i]*v]))
输出:
Counter({'国': 34350, '我': 32134, '中': 18950, '们': 16734})