贝叶斯做文本分类,代码实现数据处理

2023-11-12

import os
import time
import random
import jieba  #处理中文
import nltk # 处理英文
import sklearn
from sklearn.naive_bayes import MultinomialNB  #多项式模式贝叶斯   还有伯努利模式  混合模式
import numpy as np
import pylab as pl
import matplotlib.pyplot as plt
#划分数据集 api 
from sklearn.model_selection import train_test_split

from sklearn.externals import joblib



#粗暴的词去重

#文本处理  样本生成  读取文件 划分训练集合
"""
共9类  9个文件夹  每个文件夹有一系列文本  每个text是一个文本
C000008  C000010  C000013  C000014  C000016  C000020  C000022  C000023  C000024
每个文件夹下的是一些文本
10.txt  11.txt  12.txt  13.txt  14.txt  15.txt  16.txt  17.txt  18.txt  19.txt
传入文件夹路径  划分训练和测试集合  
"""
def text_processing(folder_path,test_size=0.2):
    foleder_list=os.listdir(folder_path)
    data_list=[]
    class_list=[]
    #print("foleder_list",len(foleder_list))
    
    #遍历文件夹
    for folder in foleder_list:
        new_folder_path=os.path.join(folder_path,folder)
        files=os.listdir(new_folder_path)
        #print("files",len(files))
        
        #遍历每个类别的文件夹
        for file in files:
            with open(os.path.join(new_folder_path,file),'r') as fp:
                raw=fp.read()
                # 对读到的文本进行Jieba分词
                jieba.enable_parallel(4)#开启结巴并行分词模式
                word_cut=jieba.cut(raw,cut_all=False)
                word_list=list(word_cut)
                jieba.disable_parallel()#关闭并行模式
                
                #将每个文本放入数据列表中
                """
                [
                []
                []
                ]
                """
                data_list.append(word_list)
                """
                C000008 财经
                C000010 IT
                C000013 健康
                C000014 体育
                C000016 旅游
                C000020 教育
                C000022 招聘
                C000023 文化
                C000024 军事
                将每个文本对应的文件夹的名称 存入类别列表  建立关联label

                """
                class_list.append(folder.encode('utf-8').decode('utf-8'))#类别 列表
                
    #划分数据集合
    train_data_list,test_data_list,train_class_list,test_class_list=tr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贝叶斯做文本分类,代码实现数据处理 的相关文章

随机推荐

  • 论文笔记:On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima

    2017 ICLR 0 摘要 这篇文章探究了深度学习中一个普遍存在的问题 使用大的batchsize训练网络会导致网络的泛化性能下降 Generalization Gap 大的batchsize训练使得目标函数倾向于收敛到sharp min
  • ubuntu18.04 安装OpenBLAS

    一 通过apt get安装 sudo apt get install libopenblas dev 二 源码安装 下载OpenBLAS并安装 git clone https github com xianyi OpenBLAS git c
  • [人工智能-深度学习-37]:卷积神经网络CNN - 重构神经网络的疑惑与思考?

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 人工智能 深度学习 37 卷积神经网络CNN 重构神经网络的疑惑与思考 文火冰糖 王文兵 的博客 CSDN博客 如果你看懂我的疑惑 如果你能
  • MYSQL的server层和存储引擎层分析

    转自 微点阅读 https www weidianyuedu com SQL的全称是Structured Query Language 翻译成中国话就是结构化查询语言 这是一种声明式的语法 何为声明式 对于设计数据库的人而言 语句怎么执行就
  • 海量数据找中位数

    腾讯一面问到了 用的算法导论中的Kth算法 期望时间复杂度为O n 后来想了想 万一数据多的来根本不能一次读入内存 这个时候该如何解决呢 题目如下 只有2G内存的pc机 在一个存有10G个整数的文件 从中找到中位数 写一个算法 http b
  • python第五天作业

    作业4 判断以下哪些不能作为标识符 B D F A a B a C 12 D a 12 E false F False 作业5 输入数 判断这个数是否是质数 要求使用函数 for循环 num int input 请输入一个数 def zhi
  • 关于STM32烧录时遇到No Algorithm found for: 08000000H - 08001E13H的解决办法

    在烧录STM32F103C8T6相关例程时遇到提示 检查相关文件 均正常 但发现其默认配置为 Erase Sectors 因此 解决办法为 1 进入option for trget 小锤子 界面 2 选择Utilities界面 点击sett
  • js正则搜索img标签并替换src值

    第一种用函数更灵活 const html img src image1 jpg img src image22 jpg p Some text with no image p img src i23mage3 jpg const regex
  • 动态代理原理和设计模式详解

    一 什么是代理模式代理模式是一种设计模式 提供了对目标对象额外的访问方式 即可以通过代理访问目标对象 这样可以在不修改原目标对象的前提下 提供额外的方式进行访问 扩展目标对象的功能 通俗的说 例如你想租房 房子就是你的目标访问对象 那在中间
  • LVGL7.5版本 触摸与键盘输入(API)对接(一)

    LVGL7 5版本 触摸与键盘输入 LVGL7 5版本 触摸与键盘输入 API 对接 一 前言 一 indev输入设备的种类介绍 二 移植Touchpad与Keypad Touchpad Keypad Keypad测试示例 本篇完 LVGL
  • 有哪些值得互联网人加入的国企?

    程序员的成长之路 互联网 程序员 技术 资料共享 关注 阅读本文大概需要 5 5 分钟 今年的就业相比以往是难了一点 感受到的人 都懂 今天分享一些值得考虑的国企 毕竟优质的国企很稳定 不会像互联网一样担忧年纪大被裁员的情况发生 福利又好
  • 使用zabbix5.2监控mariadb--第七步

    困难点 zabbix5 2可用的userparameter mysql conf问题 一般不成功是因为监控脚本和数据库账号授权 01 前言 zabbix内置Mysql的监控模版 因为mariadb和Mysql两者的相关性 所以这个模版也能用
  • HFSS仿真导入到PCB

    一 从HFSS中导出DXF文件 以偶极子天线为例 先导出顶层 选择这个然后保存 然后同理 导出介质层和底层 二 导入PCB文件中 1 导入顶层 导入刚刚导出的顶层文件 然后将比例更改为mm pcb层改为Top Layer 导入之后选中 2
  • python 矩阵常用计算

    coding utf 8 import numpy as np aa np array 1 2 3 4 5 6 7 8 9 行列式 print np linalg det aa
  • mysql分割和合并字段数据

    1 以此表为例 2 分割字符串成多列展示 sql语句 select li substr li 1 2 as D盘 substr li 11 11 as jpg from sheet1 结果 3 分割完之后 可以得到想要的数据 根据数据有多少
  • 区块链医疗应用--智慧医疗系统

    区块链医疗应用 医疗现状 医疗行业利用区块链技解决个人健康数据的安全性与共享 医疗数据信息孤岛 产品溯源等 提供了更有效维护 全量备份 信息安全的分布式记账技术 为医疗数据共享带来更好思路 区块链的特性确保系统的稳定性 医疗行业的发展主要是
  • 语义分割——SegNet(四)

    简介 补充一下2015年发表的SegNet模型 它是由剑桥大学团队开发的图像分割的开源项目 该项目可以对图像中的物体所在区域进行分割 SegNet是在FCN的语义分割任务基础上 搭建encoder decoder对称结构 实现端到端的像素级
  • idea使用vim

    idea使用vim 安裝ideaVim插件 在idea中直接搜索插件 ideaVim 并安装 配置vim 在 home 目录下创建 ideavimrc文件 如在 windows 系统中 则在 C Users xxxx 下建 在 ideavi
  • 《等级保护二级基本要求》

    等级保护二级基本要求 通过等级保护工作发现单位信息系统存在的安全隐患和不足 进行安全整改之后 提高信息系统的信息安全防护能力 降低系统被各种攻击的风险 维护单位良好的形象 等级保护是我国关于信息安全的基本政策 国家法律法规 相关政策制度要求
  • 贝叶斯做文本分类,代码实现数据处理

    import os import time import random import jieba 处理中文 import nltk 处理英文 import sklearn from sklearn naive bayes import Mu