计算python 3中短语频率dict中的字符频率

时间:2017-03-16 04:34:22

标签: python dictionary

根据我的经验,这是一项特殊的工作。我用很多不同的方式搜索,但仍然找不到答案。 这里的问题是。

我有一个中文短语频率的字典。它看起来像:

{'中国':18950, '我们':16734, '我国':15400, ...}

我需要做的是计算每个角色的频率,例如: 字符'国'出现在两个短语中('中国'和'我国'),所以这个字符的频率应该是:

{'国':(18950+15400)}

我怎样才能做到这一点?

4 个答案:

答案 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})