作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经尝试了这里的代码:Save Naive Bayes Trained Classifier in NLTK .我想将推文分为正类或负类。这是我的代码:
#learning.py
def main_learning():
.......
classifier = nltk.NaiveBayesClassifier.train(feature_set)
save_classifier(classifier)
classifier2 = load_classifier()
print classifier2.classify(get_features("My tweet is bad".split())
def save_classifier(classifier):
f = open('my_classifier.pickle', 'wb')
pickle.dump(classifier, f)
f.close()
def load_classifier():
f = with open('my_classifier.pickle')
classifier = pickle.load(f)
f.close
return classifier
然后输出:negative
但是,当我在不同的方法中尝试 save_classifier
和 load_classifier
时,输出总是变成正类。
这是代码:
#learning.py
def main_learning():
.......
classifier = nltk.NaiveBayesClassifier.train(feature_set)
save_classifier(classifier)
def test_classify():
classifier = load_classifier()
print classifier.classify(get_features("My tweet is bad".split())
the def save_classifier and load_classifier() are same with the first ones.
第二个输出是:positive
。它应该仍然是 negative
类。
我的代码怎么了??谢谢
编辑:
根据@Cassio 的回答然后我编辑我的代码:
def save_classifier(classifier):
f = open('my_classifier.pickle', 'wb')
pickle.dump(classifier, f)
f.close()
def load_classifier():
f = with open('my_classifier.pickle', 'rb')
classifier = pickle.load(f)
f.close
return classifier
实际上它有效。
最佳答案
我没有环境设置来测试你的代码,但我感觉它在你保存/加载 pickle 的部分不正确。
引用Storing Taggers NLTK 书的一部分,我会更改您的代码并按如下方式进行:
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
希望对您有所帮助。
关于python - 保存和加载测试以另一种方法对 NLTK 中的朴素贝叶斯分类器进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17262339/
我是一名优秀的程序员,十分优秀!