用Python实现本文分词以及本地保存

浏览: 4808

我们通常在做中文文本分析的时候,首先都需要先对文本进行分词,分割成我们想要的形式,这里的话我就使用python进行文本分词,并保存在本地相应文件夹中,这里的话我使用的数据集是answer;好像复旦大学某个人收集的,抱歉,我没记住名字,至少说明我还是有点责任感,哈哈;

入正题因为使用的python进行分词的话,我们就不得不进行一下对jieba的简短介绍,毕竟这里的重点不是讲jieba,这个小而精悍的分词系统完全够我们用了,有兴趣的同学可以百度一下他们的口号;这里的话我看社区有个人写的挺好的,这里就不多写了;

链接:https://ask.hellobi.com/blog/wangdawei/8300 感谢这位作者的辛勤劳动;

首先导入我想要的包

# -*- coding: UTF-8 -*-
import sys
import os
import jieba

然后设置一下我们的中文环境,毕竟我的Python是2.7,不是3版本,会有编码的问题,蛋疼

# 设置中文环境
reload(sys)
sys.setdefaultencoding("utf-8")

这里我写一个读取文件的函数

#读取文件
def readFile(path):
fp = open(path, "rb")
content = fp.read()
fp.close()
return content
#在写一个保存文件的函数,方便我们调用,参数字母也代表是什么意思了,
def readfile(path):
fp = open(path, "rb")
content = fp.read()
fp.close()
return content

接下来我们要开始我们的主程序部分,这个部分实现的功能是,将一个文件目录下的所有分类目录文本进行分词,并保存在相应输出目录下;

#设置输出和输入目录
corpus_path = r"E:\python_txt\answer\train/" #输入目录
seg_path = r"E:\python_txt\answer\test/" # 输出目录

Clipboard Image.png

这是我们的输出目录

Clipboard Image.png

这是我们的输出目录, 空空如也,下面我们就看看我们原来的文本是怎么样

Clipboard Image.png

我们的文本是复旦那人收集的语料;接下来我们获取一下输入目录下的全部子目录名称

 #获取在未分词语料下的所有子目录
catelist = os.listdir(corpus_path)
print catelist


结果上看没毛病,接下来开始写我们最重要的部分
#开始我们的迭代分词
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:
full_name = class_path + file_path#构建出文本的目录作为参数传入我们调用的函数中
print full_name #打印一下分词的本文路径
content = readfile(full_name).strip()#文本删除前面的空白符
content == content.replace("'\r\n'", '').replace(""'()'"",'').strip() # 删除掉换行和多于的空格
content_seg=jieba.cut(content)#对文本进行分词
fp = open(seg_dir+file_path, "wb")#将文本写入文件中
for word in content_seg:
word=' '.join(word)#分词后的词语连接空格保存
fp.write(word.encode('utf-8'))#设置一下我们的编码格式
fp.close
print "分词结束"

好了,接下来看看我们的结果

Clipboard Image.png

很好,这次文章就说到这里,下次说一下文本向量化

推荐 7
本文由 夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

回归了
大神,我现在有个问题。我在同一分词模式下。先用简单小程序对一篇文章(A)进行了分词(分词还比较准确),然后用你的方法对文件夹下的多个文章(包括 A)进行了分词(不理想),但是A的分词结果就是很大程度不一样,按道理来说应该是一样的结果,这是怎么回事呢
在线等您回复。分词结果真的不对呀

要回复文章请先登录注册