需要用Python为语料库创建直方图

需要用Python为语料库创建直方图,python,nltk,dictionary,Python,Nltk,Dictionary,我在处理字典时犯了一个错误。需要创建一个具有 它的键是来自freqdict的单词,值是对应单词的数字。如何执行此增量 我确信 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

我在处理字典时犯了一个错误。需要创建一个具有 它的键是来自freqdict的单词,值是对应单词的数字。如何执行此增量

我确信

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()

他有一只虫子

当然。似乎您正在用它的一个值(加1)替换
word\u hist
dict。试一试

甚至更好

word_hist[v] = word_hist[v] + 1
相反

编辑:还有一个错误:

word_hist[v] += 1
毫无意义<代码>键在
word\u hist
中测试是否存在,但随后使用
v


我不知道什么是
,但可以同时使用
k
v

看起来我遇到了ubuntu错误。。回溯(最后一次调用):文件“hist.py”,第12行,在word\u hist[v]=word\u hist[v]+1键中错误:62713不太可能。你宁愿以错误的方式使用你的变量。查看我编辑的答案-或使用S.Lott的
defaultdict()
version。别忘了接受其中一个。。。
for k,v in word_freq.iteritems():
   if key in word_hist:
      word_hist[v] = word_hist[v] + 1
   else:
      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
from collections import defaultdict
word_hist = defaultdict(int)

for k,v in word_freq.iteritems():
    word_hist[v] +=1