贝叶斯⑤——搜狗新闻分类实战(jieba + TF-IDF + 贝叶斯)

本文介绍了使用jieba分词、TF-IDF和朴素贝叶斯分类器对搜狗新闻进行文本分类的实战过程。通过90篇财经、体育、教育等类别的新闻,构建了TF-IDF词频权重矩阵,并进行了多项式模型的朴素贝叶斯分类。尽管分类效果一般,但得出结论:特征量越大,多项式模型优势越明显。
摘要由CSDN通过智能技术生成

贝叶斯机器学习系列:
贝叶斯①——贝叶斯原理篇(联合概率&条件概率&贝叶斯定理&拉普拉斯平滑)
贝叶斯②——贝叶斯3种分类模型及Sklearn使用(高斯&多项式&伯努利)
贝叶斯③——Python实现贝叶斯文本分类(伯努利&多项式模型对比)
贝叶斯④——Sklean新闻分类(TF-IDF)
贝叶斯⑥——银行借贷模型(贝叶斯与决策树对比)

分类过程:
1、导入文件并用jieba分词
2、随机抽取训练和测试样本
3、建立tf-idf词频权重矩阵
4、朴素贝叶斯分类(采用多项式模型)

数据集下载
选取了搜狗新闻下财经,体育、教育等九大类别共90篇文章,本博文将使用朴素贝叶斯进行分类实战(数据集文末有下载方式,方便你实操一遍

一、读取文件并用jieba分词

import os
import jieba

# 读取所有文件并组成矩阵,特征和类别单独存放
fold_path = r'C:\Users\cindy407\Desktop\Naive-Bayes-Text-Classifier\Database\SogouC\Sample'
folder_list = os.listdir(fold_path)  # 读取文件夹列表
print(folder_list)
artcilt_list = []
class_list = []
for fold in folder_list:  # 读取子文件夹列表 
    new_fold_path = os.path.join(fold_path,fold) # 将路径拼接
    files = os.listdir(new_fold_path) # 再读取子文件夹
    for file in files: # 读取文件
        with open(os.path.join(new_fold_path,file),'r',encod
实现tf-idf中文文本分类的步骤如下: 1. 中文分词 首先需要对中文文本进行分词,将文本划分为一个个词语。可以使用中文分词工具,如jieba等。 2. 构建词典 根据分词结果,可以构建一个词典,将每个词语映射到一个唯一的索引。可以使用Python中的Counter类来计算每个词语在文本中出现的次数,并进行排序选取出现频率最高的k个词语构建词典。 3. 计算TF-IDF值 对于每篇文本,可以计算其每个词语的TF-IDF值。TF(词频)表示该词在文本中出现的次数,IDF(逆文本频率)表示包含该词的文本数与总文本数的比值的对数的倒数。可以使用Python中的TfidfTransformer类计算每篇文本的TF-IDF值。 4. 编码文本 将每篇文本转换为一个向量表示。对于每个词语,将其TF-IDF值作为向量对应索引位置的权重。如果该词语不在文本中出现,则该索引位置的权重为0。 5. 训练分类器 可以使用机器学习算法(如朴素贝叶斯、支持向量机、决策树等)对这些特征向量进行训练,建立一个分类模型。可以使用Python中的sklearn库来实现。 6. 分类预测 当有新的文本需要进行分类时,可以将其转换成特征向量,并使用训练好的模型对其进行分类预测。 需要注意的是,在进行中文文本分类时,需要尽可能地使用大量、高质量的训练数据来提高分类的准确性。同时,需要注意处理停用词、同义词等问题,以提高分类效果。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值