何为中文分词,指的是将一个汉字序列切分成一个个单独的词。
这里我们推荐使用jieba分词,它是专门使用python语言开发的分词系统,占用资源较少,常识类文档的分词精度较高。
我们可以去网上下载jieba的压缩包,然后解压,进入目录,找到setup.py这个文件,然后可以可以使用下面两种半自动方式去安装
方式一: 进入cmd命令窗口,输入: python setup.py install jieba
方式二: 进入cmd命令窗口,输入:pip install jieba
然后我们就可以进行下面的中文文本分词的操作了
首先我们把需要分词的文件train_corpus_small拷贝到项目中来:
然后我们创建一个demo3.py对其进行分词操作
# -*- encoding:utf-8 -*-
import sys
import jieba
import os
# 配置UTF-8的环境
reload(sys)
sys.setdefaultencoding('utf-8')
# 写入文件
def savefile(savepath, content):
fp = open(savepath, "wb")
fp.write(content)
fp.close()
# 读取文件
def readfile(path):
fp = open(path, "rb")
content = fp.read()
fp.close()
return content
# 获取路径名
seg_path = "train_corpus_seg/"
corpus_path = "train_corpus_small/"
catelist = os.listdir(corpus_path)
# 获取每个目录下的所有文件
for mydir in catelist:
# 拼接出分类子目录的路径
class_path = corpus_path + mydir + "/"
# 拼出分词后的预料分类目录
seg_dir = seg_path + mydir + "/"
# 判断目录是否为空
if not os.path.exists(seg_dir):
# 创建目录
os.makedirs(seg_dir)
# 获取类别目录下的所有目录
file_list = os.listdir(class_path)
# 将类别下面的所有目录遍历出来
for file_path in file_list:
# 拼出文件名全路径
fullname = class_path + file_path
# 读取文件内容
content = readfile(fullname).strip()
# 将换行替换掉
content = content.replace("\r\n", "").strip()
# 为文件内容分词
content_seg = jieba.cut(content)
# 将处理后的文件保存到分词后的语料目录
savefile(seg_dir + file_path, "".join(content_seg))
print "读写完毕"
运行前文件格式如下:
分词后生成的目录及格式如下: