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

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

朴素贝叶斯算法是一种常用的文本分类方法,特别适用于自然语言处理任务,如新闻分类。在这篇博客中,我们将使用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)
相关推荐
卷无止境1 小时前
mathmodel-figure-templates 以及两个上手案例
后端·python
2601_967980112 小时前
从决策树到随机森林:Python机器学习里的“树形家族“深度实战与原理拆解
决策树·随机森林·机器学习·scikit-learn·集成学习
锋行天下2 小时前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国
人工智能·后端·python
一条大祥脚2 小时前
深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道
人工智能·pytorch·python·注意力机制·flex attention·可编程注意力
硅谷秋水3 小时前
PhysicalWords:一种用于构建机器人操作中潜推理过程的词汇体系
人工智能·机器学习·计算机视觉·语言模型·机器人
2601_967980113 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整
长沙三为智能科技3 小时前
GEO与传统SEO的5个关键差异:排名与被引用、关键词与答案型的全维度对比
python·aigc·seo·ai搜索·geo优化
量化分析码农5 小时前
【Python量化趋势跟踪实战 02】突破买入总被假突破坑:通道系统与入场时机
python
Agent世界5 小时前
多平台登录态巡检:cookie 判据为什么会撒谎
python