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