以下代码片段有什么问题?

我目前正在尝试使用《集体智能编程》这本书中的一些代码,构建一个文档分类器时,遇到了由docclass.py引起的错误。有人能告诉我如何调试这类问题吗?

def __init__(self,getfeatures,filename=None):    self.fc={}    self.cc={}    self.getfeatures=getfeaturesdef incf(self,f,cat):    self.fc.setdefault(f,{})    self.fc.setdefault(cat,0)    self.fc[f][cat]+=1def incc(self,cat):    self.cc.setdefault(cat,0)    self.cc[cat]+=1def train(self,item,cat):    features=self.getfeatures(item)    for f in features:        self.incf(f,cat)    self.incc(cat)

我得到了以下错误:

>>> import docclass>>> c1=docclass.classifier(docclass.getwords)>>> c1.train('the quick brown fox jumps over the lazy dog','good')Traceback (most recent call last):  File "<pyshell#32>", line 1, in <module>    c1.train('the quick brown fox jumps over the lazy dog','good')  File "docclass.py", line 36, in train    self.incf(f,cat)  File "docclass.py", line 17, in incf    self.fc[f][cat]+=1KeyError: 'good'

回答:

KeyError异常告诉您字典中没有这样的键:

当映射(字典)中的键在现有键集中找不到时引发此异常。

查看代码,似乎

self.fc.setdefault(cat,0)

应该改为

self.fc[f].setdefault(cat,0)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注