1

我无法腌制通过 nltk 训练的朴素贝叶斯分类器。这是我用来保存分类器的代码:

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

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

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

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

4

1 回答 1

2

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

参考 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/

于 2014-12-09T06:52:00.010 回答