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

时间:2011-09-29 07:46:17

标签: python nltk dictionary

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

有一个错误。

2 个答案:

答案 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是什么,但两者都使用kv

答案 1 :(得分:1)

from collections import defaultdict
word_hist = defaultdict(int)

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