NLP——语料库信息提取和处理方法

NLP——语料库信息提取和处理方法

本文以搜狗新闻语料为例,记录文本语料的收集、读取、处理等一整套的方法,主要是为了排排坑。


前言

文本语料的资源在网上有很多,主要的资源在这篇文章中的语料库部分有介绍和连接。
语料的收集处理主要包括以下环节(尽可能详尽):
1)语料下载,在各个资源网站上找到对应分类的语料资源;
2)文件读取:文件的读取最要注意的一点就是编码形式,比如这个例子中搜狗新闻语料的文件的初始编码是中文gb18030(这里有坑,在下文对应章节细讲),对于小文件可以直接用notepad++打开后,进行转码,基本能够将各种编码文件转换成想要的编码形式,如果是超大文件,notepad++就无法打开了,这里我是采用python进行的转码;
3)转码后文件的清洗:从资源网站直接下载的语料资源,里面常常是带有很多无关信息的,比如这次例子中的搜狗新闻资源,其中还有很多的html文件的相关内容,需要对新闻文本内容进行进一步的精准提取,这里采用的是正则化匹配的方法;


一、语料下载

搜狗中文语料库
各模块的文本资源包括精简版和完整版,完整版的文件解压后会达到1G以上,实际中最好先下载精简版进行处理试验,没问题之后再对完整版的资源进行处理。

二、文件读取

notepad++读取转码的方式这里就不赘述了,基本的软件操作方法

1. 文件编码嗅探

在不确定文件的编码方式的时候,可以用以下方法进行文件编码方式的嗅探,python代码如下:

import chardet
with open(r"D:\DATAanalysis\NLP\yuliao\sougou_news_2012\news_sohusite_xml.smarty.dat", 'rb') as file:
print(chardet.detect(file.read()))

利用chardet的detect功能
上述代码返回的结果是:

{
   'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}

意思是文件的编码方式是“GB2312”,置信度是0.99(并不完全,这就是坑)
可以看出文档中绝大多数的内容都能够按照GB2312的编码方式进行读取,但是对于少部分不匹配的内容,才是问题所在。
如果在open函数中,给erroes参数‘ignore’,则读取的文件就会出现少部分的乱码(根据我的对比观察,乱码主要出现在换行的位置),而不给‘ignore’读取文件就会报错,这个例子中,如果按照GB2312编码读取,就会出现上述问题。

解决方法:经过多轮测试,发现搜狗新闻资源如果用‘gb18030’编码进行读取就能够完全读取,对于中文编码,有GB2312 < GBK < gb18030,问题是编码嗅探给出GB2312的结果也是真坑啊。。。(应该是还不支持识别gb18030编码)

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值