今日分享:基于贝叶斯模型的新闻文本分类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群
公众号 QQ群
扫QQ群二维码进交流学习群
或在后台回复:加群
本文分享自微信公众号 - 数据指南(BigDataDT)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。