import nltk
from nltk.book import *
from nltk.corpus import brown
corpus_text = brown.words()
word_freq = FreqDist(corpus_text)
word_hist = dict()
for k,v in word_freq.iteritems():
if key in word_hist:
word_hist[v] = word_hist[v] + 1
else:
word_hist[v] = 1
print word_hist.viewkeys()
print word_hist.viewvalues()
我在这里处理字典时犯了一个错误。需要创建一个有的字典 它是来自freqdict的单词的键,值是相应单词的数字。我该如何执行此增量?
我确定
word_hist[v] = word_hist[v] + 1
else:
word_hist[v] = 1
有一个错误。
答案 0 :(得分:1)
当然。您似乎正在使用其中一个值(加1)替换word_hist
dict。试试
word_hist[v] = word_hist[v] + 1
甚至更好
word_hist[v] += 1
代替。
编辑:还有另一个错误:
for k,v in word_freq.iteritems():
if key in word_hist:
word_hist[v] = word_hist[v] + 1
else:
word_hist[v] = 1
毫无意义。 key
会对word_hist
中的状态进行测试,但会使用v
。
我不知道key
是什么,但两者都使用k
或v
。
答案 1 :(得分:1)
from collections import defaultdict
word_hist = defaultdict(int)
for k,v in word_freq.iteritems():
word_hist[v] +=1