使用python对中文文本进行分词

何为中文分词,指的是将一个汉字序列切分成一个个单独的词。

这里我们推荐使用jieba分词,它是专门使用python语言开发的分词系统,占用资源较少,常识类文档的分词精度较高。

我们可以去网上下载jieba的压缩包,然后解压,进入目录,找到setup.py这个文件,然后可以可以使用下面两种半自动方式去安装

方式一: 进入cmd命令窗口,输入: python setup.py install jieba

方式二: 进入cmd命令窗口,输入:pip install jieba

然后我们就可以进行下面的中文文本分词的操作了

首先我们把需要分词的文件train_corpus_small拷贝到项目中来:

使用python对中文文本进行分词_第1张图片

然后我们创建一个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 "读写完毕"
运行前文件格式如下:

使用python对中文文本进行分词_第2张图片

分词后生成的目录及格式如下:

使用python对中文文本进行分词_第3张图片

使用python对中文文本进行分词_第4张图片





你可能感兴趣的:(⑦机器学习)