用python做文本分类-贝叶斯分类器

该博客介绍了如何使用Python进行文本分类,主要步骤包括中文分词预处理、使用Bunch进行结构化表示、构建TF-IDF词向量空间、选择贝叶斯分类器进行分类。在实际操作中,作者遇到并解决了Python版本差异导致的问题,最终成功训练了贝叶斯分类器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先让看一下文本语料:
训练分类
文本内容使用的方法思路:
1、中文分词加一些简单的预处理
2、结构化表示-Bunch
3、构建词向量空间,权重策略–TF-IDF
4、分类器选择-贝叶斯分类器
5、评价
第一步:

import sys 
import os
import jieba
import importlib

importlib.reload(sys)
 

#保存至文件
def savefile(savepath, content):  
    with open(savepath, "w") as fp:  
        fp.write(content)  

#读取文件        
def readfile(path):  
    with open(path, "rb") as fp:  
        content = fp.read()  
    return content  
    

def corpus_segment(corpus_path, seg_path):  
    ''''' 
    corpus_path是未分词语料库路径 
    seg_path是分词后语料库存储路径 
    '''  
    catelist = os.listdir(corpus_path)  # 获取corpus_path下的所有子目录 
    print(catelist)
    ''''' 
    其中子目录的名字就是类别名,例如: 
    train_corpus/art/21.txt中,'train_corpus/'是corpus_path,'art'是catelist中的一个成员 
    '''  
  
    # 获取每个目录(类别)下所有的文件  
    for mydir in catelist:  
        ''''' 
        这里mydir就是train_corpus/art/21.txt中的art(即catelist中的一个类别) 
        '''  
        class_path = corpus_path + "/"+ mydir + "/"  # 拼出分类子目录的路径如:train_corpus/art/
        print(class_path)        
        seg_dir = seg_path + mydir + "/"  # 拼出分词后存贮的对应目录路径如:train_corpus_seg/art/  
  
        if not os.path.exists(seg_dir):  # 是否存在分词目录,如果没有则创建该目录  
            os.makedirs(seg_dir)  
  
        file_list = os.listdir(class_path)  # 获取未分词语料库中某一类别中的所有文本  
        ''''' 
        train_corpus/art/中的 
        21.txt, 
        22.txt, 
        23.txt 
        ... 
        file_list=['21.txt','22.txt',...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值