数学之路(机器学习实践指南)-文本挖掘与NLP(6)

本文是数学之路系列的第六篇,主要探讨了在文本挖掘和自然语言处理(NLP)中如何使用朴素贝叶斯分类进行词条分类。博客强调内容为原创,并提供了来源链接。
摘要由CSDN通过智能技术生成
def wordfeatures(word):
    return {"cnword":word}

.....
classifier=nltk.NaiveBayesClassifier.train(samplewords)
#大学所属的类别 http://blog.csdn.net/myhaspl
print u"----大学所属的类别-----"
print classifier.classify({"cnword":u"大学"})
#大脑所属的类别http://blog.csdn.net/myhaspl
print u"----大脑所属的类别-----"
print classifier.classify({"cnword":u"大脑"})
#测试数据分类准确率http://blog.csdn.net/myhaspl
print nltk.classify.accuracy(classifier,testwords)

#特征0分类最有效的10个词http://blog.csdn.net/myhaspl
for wf,mostword in classifier.most_informative_features(10):
    print mostword,
print


#为显示utf-8,将show_most_informative_features代码进行修改http://blog.csdn.net/myhaspl
#classifier.show_most_informative_features(10)  也可直接调用这句,但是UTF8显示有问题  http://blog.csdn.net/myhaspl 
cpdist = classifier._feature_probdist
print('Most Informative Features')

for (fname, fval) in classifier.most_informative_features(10):
    def labelprob(l):
        return cpdist[l, fname].prob(fval)

    labels = sorted([l for l in classifier._labels
                     if fval in cpdist[l, fname].samples()],
                    key=labelprob)
    if len(labels) == 1:
        continue
    l0 = labels[0]
    l1 = labels[-1]
    if cpdist[l0, fname].prob(fval) == 0:
        ratio = 'INF'
    else:
        ratio = '%8.1f' % (cpdist[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值