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有个bug。
发布于 2011-09-29 16:06:28
当然了。看起来你是在用它的一个值(加1)替换word_hist dict。试一试
word_hist[v] = word_hist[v] + 1甚至更好
word_hist[v] += 1而不是。
编辑:还有另一个bug:
for k,v in word_freq.iteritems():
if key in word_hist:
word_hist[v] = word_hist[v] + 1
else:
word_hist[v] = 1这没有任何意义。在word_hist中测试key是否存在,但随后使用了v。
我不知道key是什么,但可以同时使用k或v。
发布于 2011-09-29 18:11:17
from collections import defaultdict
word_hist = defaultdict(int)
for k,v in word_freq.iteritems():
word_hist[v] +=1发布于 2021-12-03 14:37:20
这肯定有一个bug,但前一行也有。
if key in word_hist:
word_hist[v] = word_hist[v] + 1
else:
word_hist[v] = 1 应该是
if k in word_hist:
word_hist[k] = word_hist[k] + 1
else:
word_hist[k] = 1你不需要从word_freq中获取v。
https://stackoverflow.com/questions/7594056
复制相似问题