在我的经验,这是一个特殊的工作要做。我以许多不同的方式搜索,但仍无法找到答案。 这里的问题是。计算字符频率在短语频率字典python 3
我有中国短语的字典frequency.It样子:
{'中国':18950, '我们':16734, '我国':15400, ...}
我需要做的是计算每一个人物的频率,例如: 字符“国”在两个词组出现(”中国'和'我国'),所以这个字符的频率应该是:
{'国':(18950+15400)}
我该如何做到这一点?
在我的经验,这是一个特殊的工作要做。我以许多不同的方式搜索,但仍无法找到答案。 这里的问题是。计算字符频率在短语频率字典python 3
我有中国短语的字典frequency.It样子:
{'中国':18950, '我们':16734, '我国':15400, ...}
我需要做的是计算每一个人物的频率,例如: 字符“国”在两个词组出现(”中国'和'我国'),所以这个字符的频率应该是:
{'国':(18950+15400)}
我该如何做到这一点?
我的方式:
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})
它也可以工作,并自动排序结果,非常感谢! –
d = {'中国':18950, '我们':16734, '我国':15400, ...}
q = 0
for i in d:
if '国' in i:
a = (d[i])
q += a
print(q)
这不起作用,请再次阅读该问题。 – Julien
@Julien,现在这个工作,并且不需要进口。 –
像这样的东西应该工作:
from collections import defaultdict
char_dict = defaultdict(int)
for phrase, count in phrase_dict.iteritems():
for char in phrase:
char_dict[char] += count
简单的例子,
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}
它完美的作品!非常感谢! –
到目前为止您尝试过什么? –
@Sagar V我目前还不知道,我刚开始学习编程2周。 –