我有一个名为的腌制文件classifier.pkl
,我正在尝试将其加载到另一个模块中。但是,我收到一个我不明白的错误。
我的腌制代码:
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'
不久前,我.pkl
通过腌制三件事来制作文件:
- 特点:列表
- extract_features : 函数
- 分类器:NLTK 朴素贝叶斯分类器的实例
令人费解的是,我在以下代码中遇到了同样的错误:
x = cPickle.load(open('cocaine_classifier.pkl','rb'))
为什么我不能检索三样东西?即使我不想解包元组?
更新
正如 NPE 指出的那样,要取消腌制的函数的路径必须与取消腌制的函数完全匹配。我正在调试和终端,因此from mod import *
将所有内容加载到命名空间中,而import mod as m
没有。