Bootstrap

朴素贝叶斯代码实练(二)—新闻分类

实例:新闻分类器:

参考:这篇

  1. 首先将文件当中的文字取出,分别存到列表当中,并且返回存放字出现频率从高到底排列的列表:
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
;