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