在我的經驗,這是一個特殊的工作要做。我以許多不同的方式搜索,但仍無法找到答案。 這裏的問題是。計算字符頻率在短語頻率字典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周。 –