实例:新闻分类器:
参考:这篇
- 首先将文件当中的文字取出,分别存到列表当中,并且返回存放字出现频率从高到底排列的列表:
import os
import jieba
from sklearn.naive_bayes import MultinomialNB
from matplotlib import pyplot as plt
import random
def TextProcess(folder_path,test_size):
"""遍历切分新闻内容
Params:
文件夹所在目录,测试集大小
return:
字出现频率从高到底排列的列表,训练集列表和分类,测试集列表和分类
"""
file_list = os.listdir(folder_path) #获取文件夹下的所有文件名, 返回一个列表
data_list = [] #用来存放数据
class_list = [] #用来存放分类
for each in file_list: #遍历每个文件夹
new_folder = os.path.join(folder_path,each) #形成一个打开该文件夹的路径
files = os.listdir(new_folder) #返回该文件夹下所有文件名
j=1 #文件数量初始化
for file in files: #遍历每一个文件名
if j>100: #遍历数量最多不能超过100个
break
with open(os.path.join(new_folder,file),'r',encoding = 'utf-8') as f: #打开文件
raw = f.read() #获取内容
word_cut = jieba.cut(raw,cut_all=False) #用jieba库进行切割
word_list = list(word_cut) #形成列表
data_list.append(word_list)
class_list.append(each)
j +=1
all_data = list(zip(data_l