训练有素的分类器工作正常.但是,如果我加载一个保存的分类器,分类器将为所有示例输出’positive’或’negative’.
我正在使用保存分类器
classifIEr = nltk.NaiveBayesClassifIEr.train(training_set)classifIEr.classify(words_in_tweet)f = open('classifIEr.pickle','wb')pickle.dump(classifIEr,f)f.close()
并使用加载分类器
f = open('classifIEr.pickle','rb')classifIEr = pickle.load(f)f.close()classifIEr.classify(words_in_tweet)
我没有收到任何错误.
知道问题可能是什么,或者如何正确调试?
NaiveBayesClassifIEr期望训练和分类的特征向量;您的代码看起来就像是将原始单词传递给分类器(但可能只是在取消渲染之后,否则您将无法在unpickling之前和之后获得不同的行为).您应该将特征提取代码存储在单独的文件中,并将其导入训练和分类(或测试)脚本中.
我怀疑这适用于OP,但是一些NLTK分类器将特征提取函数作为构造函数的参数.当您有用于训练和分类的单独脚本时,确保unpickled分类器成功找到相同的函数可能很棘手.这是因为pickle的工作方式:pickling只保存数据,而不是代码.要使其工作,只需将提取功能放在脚本导入的单独文件(模块)中.如果您输入“main”脚本,pickle.load将在错误的位置查找它.
总结以上是内存溢出为你收集整理的Python:加载的NLTK分类器无法正常工作全部内容,希望文章能够帮你解决Python:加载的NLTK分类器无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)