当前位置: 首页 > 面试题库 >

在NLTK中保存朴素贝叶斯训练分类器

卢雅惠
2023-03-14
问题内容

关于如何保存经过训练的分类器,我有些困惑。就像在其中一样,每次我想使用分类器时都要对其进行重新训练显然很糟糕而且很慢,如何保存它并在需要时再次加载它?代码如下,在此先感谢您的帮助。我正在将Python与NLTK朴素贝叶斯分类器一起使用。

classifier = nltk.NaiveBayesClassifier.train(training_set)
# look inside the classifier train method in the source code of the NLTK library

def train(labeled_featuresets, estimator=nltk.probability.ELEProbDist):
    # Create the P(label) distribution
    label_probdist = estimator(label_freqdist)
    # Create the P(fval|label, fname) distribution
    feature_probdist = {}
    return NaiveBayesClassifier(label_probdist, feature_probdist)

问题答案:

保存:

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

稍后加载:

import pickle
f = open('my_classifier.pickle', 'rb')
classifier = pickle.load(f)
f.close()


 类似资料:
  • 我正在开发一个朴素的贝叶斯分类器使用简单的词袋概念。我的问题是,在朴素贝叶斯或任何其他机器学习中,senario'训练‘分类器是一个重要的问题。但是当我已经有了一个不同类别的词包时,如何训练朴素贝叶斯分类器呢?

  • 作为理解用于分类的斯坦福nlp api的一部分,我在一个非常简单的训练集(3个标签=>['快乐'、'悲伤'、'中立'])上训练朴素贝叶斯分类器。此训练数据集为

  • 当用整个集合测试时,当使用分类器对一组新的tweet进行测试时,它只返回“中性”作为标签,但当使用30个时,它只返回正,这是否意味着我的训练数据不完整或过于“加权”中性条目,以及我的分类器在使用大约4000个tweet时只返回中性的原因? 我已经在下面包括了我的完整代码。

  • 还是让我们回到运动员的例子。如果我问你Brittney Griner的运动项目是什么,她有6尺8寸高,207磅重,你会说“篮球”;我再问你对此分类的准确度有多少信心,你会回答“非常有信心”。 我再问你Heather Zurich,6尺1寸高,重176磅,你可能就不能确定地说她是打篮球的了,至少不会像之前判定Brittney那样肯定。因为从Heather的身高体重来看她也有可能是跑马拉松的。 最后,

  • 上例的数据格式如下: both sedentary moderate yes i100 both sedentary moderate no i100 health sedentary moderate yes i500 appearance active moderate yes i500 appearance moderate aggressive yes i500