搜狗新闻语料处理
自然语言处理,最重要的当然是语料数据,选择搜狗实验室的语料库是不错的,但是模型训练前,需要对数据做一些处理,过程如下。
1、数据下载链接:搜狗新闻语料库
先在链接上下载“搜狐新闻数据(SogouCS)”,请直接下载“精简版”!(迷你版有雷。。。)

2、数据下载下来后是这样子的

3、数据量已经很大了,每一个txt采用的是ANSI编码方式

4、每个新闻可以根据url、contenttitle、content三者进行拆分
url:获取内容类别
contenttitle:获取内容标题,作为之后txt的文档名
content:正文内容
5、开始拆分数据
import re
import os
class Sougou(object):
def __init__(self):
self.directory = 'sogoucs/'
self.file = [file for a,b,file in os.walk(self.directory)][0]
def split_language_database(self):
main_config = 'sogoucs_split/'
os.makedirs(main_config) if not os.path.exists(main_config) else print('Is Exists')
for file in self.file:
# 读取txt文件
text = open(self.directory + file, 'rb').read().decode("ansi")
# 匹配 url 和 正文内容
content = re.findall('<url>(.*?)</url>.*?<contenttitle>(.*?)</contenttitle>.*?<content>(.*?)</content>', text, re.S)
# 根据 url 存放每一个 正文内容
for news in content:
url_title = news[0]
content_title = news[1]
news_text = news[2]
# 提取正文的类别
title = re.findall('http://(.*?).sohu.com', url_title)[0]
# 存储正文
if len(title)>0 and len(content_title)>0 and len(news_text)>30:
print('【{}】【{}】【{}】'.format(file, title, content_title))
# 目标保存路径
save_config = main_config + title
# 如果没有该文件,则创建文件夹
os.makedirs(save_config) if not os.path.exists(save_config) else print('Is Exists')
# 保存文件
f = open('{}/{}.txt'.format(save_config, content_title), 'w', encoding='utf-8')
f.write(news_text)
f.close()
if __name__ == '__main__':
sg = Sougou()
sg.split_language_database()
基本步骤(不出意外,基本上是可以直接运行的)
1、首先把上面那一坨 txt 放到一个名为【sogoucs】的文件夹
2、把代码【搜狗语料库.py】放在同一个目下
3、最后输出的结果会生成在【sogoucs_split】
如图所示

整个处理过程很久。。我反正跑了快【2小时】呢日。。

6、最后的整理结果如下


有了数据就可以随心训练模型了,什么TF-IDF、LSI、LDA、TEXTRank赶紧安排上!

本文介绍了如何处理搜狗新闻语料库,包括数据下载、数据拆分等步骤,为自然语言处理的模型训练做好准备,如TF-IDF、LSI、LDA和TEXTRank等。
7001

被折叠的 条评论
为什么被折叠?



