推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > Python大数据与人工智能 > 朴素贝叶斯实战:新闻文本分类

朴素贝叶斯实战:新闻文本分类

Python大数据与人工智能 2018-10-27
击上方
“蓝色字”
可关注我们!


今日分享:基于贝叶斯模型的新闻文本分类


一:流程

1、从网站下载获取数据集,该数据集也是由sklearn提供的,不过由于数据集较大(其实也就15M左右),因此需要在使用时从网站直接下载(如若下载不成功,请在本QQ学习群获取)

2、数据集划分

3、进行特征工程,对新闻文本数据进行 TF-IDF 提取

4、实例化贝叶斯估计器,训练,预测


二:数据集介绍


该新闻数据集大约包含11314个新闻文本,共20大类


(单个新闻文本示例)


朴素贝叶斯实战:新闻文本分类

(类别编码及实际类别描述)


三:代码演示


#导入相关库
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report


def naba():
   '''朴素贝叶斯新闻文本分类'''
   
   #获取数据集 网络下载获取 参数表明将训练集和测试集的数据全部下载
   news = fetch_20newsgroups(subset='all')
   
   #划分数据集
   x_train,x_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25)
   
   #对文本进行特征提取
   tf = TfidfVectorizer()
   
   x_train = tf.fit_transform(x_train)
   
#     print(tf.get_feature_names())
   
   x_test = tf.transform(x_test)
   
   #贝叶斯实例化
   mlt = MultinomialNB(alpha=1.0)
   
   mlt.fit(x_train,y_train)
   
   y_predict = mlt.predict(x_test)
   
   print('预测的文章类别为:',y_predict)
   
   print('准确率为:',mlt.score(x_test,y_test))
   
   print('每个类别的精确率和召回率:',
         classification_report(y_test,y_predict,target_names = news.target_names))
   
   
if __name__ == '__main__':
   naba()


输出结果

预测的文章类别为:
[16  6  4 ... 13 14 14]

准确率为:
0.8539898132427843

每个类别的精确率和召回率:
                          precision    recall  f1-score   support

            alt.atheism       0.84      0.78      0.81       179
          comp.graphics       0.94      0.73      0.82       271
comp.os.ms-windows.misc       0.87      0.83      0.85       250
comp.sys.ibm.pc.hardware       0.79      0.77      0.78       254
  comp.sys.mac.hardware       0.87      0.87      0.87       234
         comp.windows.x       0.92      0.91      0.92       239
           misc.forsale       0.92      0.72      0.81       248
              rec.autos       0.91      0.90      0.90       245
        rec.motorcycles       0.91      0.96      0.93       248
     rec.sport.baseball       0.96      0.95      0.96       243
       rec.sport.hockey       0.93      0.98      0.96       253
              sci.crypt       0.81      0.98      0.88       251
        sci.electronics       0.85      0.85      0.85       237
                sci.med       0.96      0.90      0.93       247
              sci.space       0.88      0.95      0.92       263
 soc.religion.christian       0.56      0.98      0.71       241
     talk.politics.guns       0.73      0.99      0.84       222
  talk.politics.mideast       0.92      0.97      0.95       237
     talk.politics.misc       0.97      0.60      0.74       192
     talk.religion.misc       0.93      0.16      0.27       158

            avg / total       0.87      0.85      0.85      4712









或在后台回复:加群

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《朴素贝叶斯实战:新闻文本分类》的版权归原作者「数据挖掘及分析」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注数据挖掘及分析微信公众号

数据挖掘及分析微信公众号:bigdata688

数据挖掘及分析

手机扫描上方二维码即可关注数据挖掘及分析微信公众号

数据挖掘及分析最新文章

精品公众号随机推荐