第四章 朴素贝叶斯
PS:个人笔记 根据《机器学习实战》这本书,Jack-Cui的博客,以及深度眸的视频进行学习
1 中文语句切分
import os
import jieba
def TextProcessing(folder_path):
folder_list = os.listdir(folder_path) #查看folder_path下的文件列表
data_list = [] #训练集
class_list = [] #分类列表
for folder in folder_list: #遍历文件列表中的每个文件
new_folder_path = os.path.join(folder_path, folder) #根据子文件夹名称,生成子文件夹的路径
files = os.listdir(new_folder_path) #存放子文件夹下的txt文件的列表名称
j = 1
for file in files: #遍历每个TXT文件
if j > 100: #每类txt样本数最多100个
break
with open(os.path.join(new_folder_path, file), 'r', encoding = 'utf-8') as f: #打开txt文件
raw = f.read() #读取文件
word_cut = jieba.cut(raw, cut_all = False) #精简模式,返回一个可迭代的generator
word_list = list(word_cut) #将generator转换为list
data_list.append(word_list) #加入数据列表中
class_list.append(folder) #分类加入分类列表中
j += 1
print(data_list)
print(class_list)
if __name__ == '__main__':
folder_path = './SogouC/Sample' #训练集存放地址
TextProcessing(folder_path)
2 文本特征选择
我们将所有文本分成训练集和测试集,并对训练集中的所有单词进行词频统计,并按降序排序。也就是将出现次数多的词语在前,出现次数少的词语在后进行排序。编写代码如下:
import os
import random
import jieba
"""
函数说明:中文文本处理
Parameters: