gpt4 book ai didi

python - 如何破译这个 cPickle 错误?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:40 24 4
gpt4 key购买 nike

我有一个名为 classifier.pkl 的 pickled 文件,我正试图将其加载到另一个模块中。但是,我收到一个我不明白的错误。

我要 pickle 的代码:

features = ['bob','ice','snowing'] #... shortened for exposition's sake
def extract_features(document):
return {'contains(%s)'% word: (word in set(document))
for word in all_together_word_list}
training_set = classify.util.apply_features(extract_features,tweets[0])
classifier = NaiveBayesClassifier.train(training_set)
cPcikle.dump(open('cocaine_classifier.pkl','wb'))

我要解开的代码:

features, extract_features, classifier = 
cPickle.load(open('cocaine_classifier.pkl','rb'))

我的错误:

AttributeError: 'module' object has no attribute 'extract_features'

不久前,我通过 pickle 三样东西制作了 .pkl 文件:

  • 特征:列表
  • extract_features:函数
  • 分类器:NLTK 朴素贝叶斯分类器的实例

令人费解的是,我用下面的代码得到了同样的错误:

x = cPickle.load(open('cocaine_classifier.pkl','rb'))

为什么我不能取回三样东西?即使我不尝试解包元组?

更新

正如 NPE 所指出的,要解封的函数的路径必须与要解封的函数完全匹配。我正在调试和终端,所以 from mod import * 将所有内容加载到命名空间中,而 import mod as m 则没有。

最佳答案

问题是,当您 pickle 一个函数时,只会 pickle 函数的(完全限定的)名称,而不是函数本身。这意味着您必须在进行 unpickling 时将函数定义就位。

您是否有意 pickle 调用 extract_features结果

关于python - 如何破译这个 cPickle 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com