【问题标题】:Save naive bayes classifier nltk保存朴素贝叶斯分类器 nltk
【发布时间】:2012-12-05 03:04:30
【问题描述】:

我无法对通过 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。如果您知道这是怎么回事,请告诉我。

【问题讨论】:

  • 我也遇到了一些麻烦。使用cPickle 模块进行转储和加载对我有用。如果它也不起作用,请尝试将协议设置为 1:pickle.dump(classifier, pickledfile, 1)
  • 是的,然后设置协议参数可以解决 MaxEnt 模型的类似问题。

标签: python nltk pickle


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 2012-04-18
    • 2012-04-01
    • 2015-12-20
    • 2017-04-19
    • 2017-08-30
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多