保存朴素贝叶斯分类器nltk

时间:2012-12-17 23:25:09

标签: python nltk pickle

我无法挑选通过nltk训练的天真贝叶斯分类器。这是我用来保存分类器的代码:

pickledfile=open('my_classifier.pickle','wb')
pickle.dump(classifier,pickledfile)
pickledfile.close()

这似乎工作正常。但是,当我尝试使用以下代码加载pickle文件时:

f1=open('my_classifier.pickle')
classifier=pickle.load(f1)
f1.close()

我收到了EOF错误。我直接从这个问题得到了这个代码,它对我来说无论如何都不起作用:Save Naive Bayes Trained Classifier in NLTK。如果您知道这是怎么回事,请告诉我。

1 个答案:

答案 0 :(得分:1)

我没有环境设置来测试您的代码,但我觉得在保存/加载pickle的部分不正确。

参考NLTK书籍的Storing Taggers部分,我会更改您的代码并按照以下方式执行:

def save_classifier(classifier):
   f = open('my_classifier.pickle', 'wb')
   pickle.dump(classifier, f, -1)
   f.close()

def load_classifier():
   f = open('my_classifier.pickle', 'rb')
   classifier = pickle.load(f)
   f.close()
   return classifier

希望它有所帮助。

https://stackoverflow.com/posts/17635668/