先让看一下文本语料:
使用的方法思路:
1、中文分词加一些简单的预处理
2、结构化表示-Bunch
3、构建词向量空间,权重策略–TF-IDF
4、分类器选择-贝叶斯分类器
5、评价
第一步:
import sys
import os
import jieba
import importlib
importlib.reload(sys)
#保存至文件
def savefile(savepath, content):
with open(savepath, "w") as fp:
fp.write(content)
#读取文件
def readfile(path):
with open(path, "rb") as fp:
content = fp.read()
return content
def corpus_segment(corpus_path, seg_path):
'''''
corpus_path是未分词语料库路径
seg_path是分词后语料库存储路径
'''
catelist = os.listdir(corpus_path) # 获取corpus_path下的所有子目录
print(catelist)
'''''
其中子目录的名字就是类别名,例如:
train_corpus/art/21.txt中,'train_corpus/'是corpus_path,'art'是catelist中的一个成员
'''
# 获取每个目录(类别)下所有的文件
for mydir in catelist:
'''''
这里mydir就是train_corpus/art/21.txt中的art(即catelist中的一个类别)
'''
class_path = corpus_path + "/"+ mydir + "/" # 拼出分类子目录的路径如:train_corpus/art/
print(class_path)
seg_dir = seg_path + mydir + "/" # 拼出分词后存贮的对应目录路径如:train_corpus_seg/art/
if not os.path.exists(seg_dir): # 是否存在分词目录,如果没有则创建该目录
os.makedirs(seg_dir)
file_list = os.listdir(class_path) # 获取未分词语料库中某一类别中的所有文本
'''''
train_corpus/art/中的
21.txt,
22.txt,
23.txt
...
file_list=['21.txt','22.txt',...