Kin*_*xit 1 python classification nltk
我在NaiveBayesClassifier中看到的大多数例子只有两个:'pos','neg'.我想谈谈文本的主题,如娱乐,体育,电影,政治,文学.可以为此训练NaiveBayesClassifier,还是应该在其他地方寻找?
当然是啦.当您将训练集传递给NaiveBayesClassifier.train方法时,它将为训练集中的每个标签创建一个贝叶斯模型.如果您的训练集有多个标签,那么您的分类器将分类为多个标签.如果您的训练集只有2个标签,那么您的分类器将只提供两个分类.当您要求分类器进行分类时,它将返回给定特征集的概率最高的模型.
在贝叶斯分类器中,为每个标签创建概率模型.选择与最佳特征匹配的模型.这是一个组成的例子:
import nltk
articles = [({'entertaining':0.6, 'informative':0.2, 'statistical':0.6}, 'sports'),
({'entertaining':0.7, 'informative':0.2, 'statistical':0.8}, 'sports'),
({'entertaining':0.1, 'informative':0.7, 'statistical':0.2}, 'news'),
({'entertaining':0.2, 'informative':0.8, 'statistical':0.3}, 'news'),
({'entertaining':0.8, 'informative':0.2, 'statistical':0.1}, 'movies')]
classifier = nltk.NaiveBayesClassifier.train(articles)
label = classifier.classify({'entertaining':0.9, 'informative':0.2, 'statistical':0.1})
print label
#movies
probabilities = classifier.prob_classify({'entertaining':0.9, 'informative':0.2, 'statistical':0.1})
for sample in probabilities.samples():
print "{0}: {1}".format(sample, probabilities.prob(sample))
#news: 0.0580
#sports: 0.2999
#movies: 0.6522
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2201 次 |
| 最近记录: |