【朴素贝叶斯-新闻主题分类】

朴素贝叶斯对新闻进行分类

朴素贝叶斯算法是一种常用的文本分类方法,特别适用于自然语言处理任务,如新闻分类。在这篇博客中,我们将使用Python的scikit-learn库来实现朴素贝叶斯算法,并将其应用于新闻分类任务。

数据准备

首先,我们需要下载新闻数据集并进行数据准备。在这里,我们使用scikit-learn中的20个新闻组数据集,其中包含20个不同主题的新闻文本。我们从互联网上下载所有数据,并将其划分为训练集和测试集。

python 复制代码
from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split

# 从互联网上下载所有数据
news = fetch_20newsgroups(subset='all')

# 进行数据分割
x_train, x_test, y_train, y_test = train_test_split(news.data, news.target)

特征抽取

在进行文本分类任务时,我们需要将文本数据转换为可供机器学习算法使用的数字特征。这里我们使用TfidfVectorizer来将文本转换为TF-IDF特征向量,它考虑了词频和逆文档频率,能够更好地表示词的重要性。

python 复制代码
from sklearn.feature_extraction.text import TfidfVectorizer

# 对数据集进行特征抽取
transformer = TfidfVectorizer()
x_train = transformer.fit_transform(x_train)
x_test = transformer.transform(x_test)

构建朴素贝叶斯分类器

接下来,我们使用朴素贝叶斯算法来构建分类器。在scikit-learn中,我们可以使用MultinomialNB类来实现多项式朴素贝叶斯分类器。我们使用默认配置初始化分类器,并使用训练数据进行拟合。

python 复制代码
from sklearn.naive_bayes import MultinomialNB

# 使用默认配置初始化朴素贝叶斯分类器
estimator = MultinomialNB()
estimator.fit(x_train, y_train)

模型评估

现在,我们的朴素贝叶斯分类器已经训练好了,接下来我们使用测试数据进行预测,并对分类器性能进行评估。我们可以使用准确率来衡量分类器在测试数据上的性能。

python 复制代码
# 进行模型评估
y_predict = estimator.predict(x_test)
print("y_predict:\n", y_predict)
print("直接比对真实值和预测值:\n", y_test == y_predict)

# 计算准确率
score = estimator.score(x_test, y_test)
print("准确率为:\n", score)
相关推荐
BerryS3N17 分钟前
Java 后端转型大模型:Demo 能跑不等于能上线
java·人工智能·python·java后端·spring ai·langchain4j·大模型转型
冻柠檬飞冰走茶20 分钟前
PTA基础编程题目集 7-19 支票面额(C语言实现)
c语言·开发语言·数据结构·算法
制造数据与AI践行者老蒋23 分钟前
智联工坊实战:从“金鱼记忆”到“记住了”:给制造Agent装上记忆芯片的完整指南
人工智能·python·langchain·制造
某林21224 分钟前
ros从底层硬件到 Web 端部署
python·机器人·硬件架构·ros2
你怎么知道我是队长35 分钟前
计算机虚拟存储管理与页面置换算法详解
服务器·网络·算法
罗西的思考1 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 — (14)— Teacher
人工智能·笔记·深度学习·算法·机器学习
塔能物联运维1 小时前
塔能两相液冷:600W/cm²极限能力,为下一代AI芯片预留充足散热余量
人工智能·算法·两相液冷
FBI HackerHarry浩1 小时前
AI大模型开发V2第四阶段机器学习概述
人工智能·python·机器学习
axinawang1 小时前
第22课 石头剪刀布
python
醉城夜风~1 小时前
手撕 C++ string:从零实现一个简易字符串类
开发语言·c++·算法