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

击上方
“蓝色字”
可关注咱们!


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


一:流程windows

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

二、数据集划分网络

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

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


二:数据集介绍学习


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


(单个新闻文本示例)


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


三:代码演示网站


#导入相关库
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


源代码及数据集文件已上传至QQ群




Python基础知识集锦

爬虫专题文章整理篇!!!

Python数据分析干货整理篇

Matplotlib数据可视化专题集锦贴



公众号     QQ群

扫QQ群二维码进交流学习群

或在后台回复:加群

本文分享自微信公众号 - 数据指南(BigDataDT)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索