【Python NLP】:搜狗语料库-新闻语料处理

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

搜狗新闻语料处理

自然语言处理,最重要的当然是语料数据,选择搜狗实验室的语料库是不错的,但是模型训练前,需要对数据做一些处理,过程如下。

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赶紧安排上!

在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值