python读取txt文件分词_用Python实现本文分词以及本地保存

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-16 23:41   11   0

原标题:用Python实现本文分词以及本地保存

欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习、问答、求职,一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

我们通常在做中文文本分析的时候,首先都需要先对文本进行分词,分割成我们想要的形式,这里的话我就使用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")

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

#读取文件

defreadFile(path): fp = open(path,

"rb") content = fp.read() fp.close()

return content

#在写一个保存文件的函数,方便我们调用,参数字母也代表是什么意思了,

defreadfile(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/"

# 输出目录

这是我们的输出目录

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

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

#获取在未分词语料下的所有子目录 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

"分词结束"

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

很好,这次文章就说到这里,

转载请保留以下内容:

本文来源自天善社区夏尔康老师的博客(公众号)。

原文链接: https://ask.hellobi.com/blog/xiaerkang/8362返回搜狐,查看更多

责任编辑:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP