自然语言处理中常用的文本清理流程

在自然语言处理中,尽管文本清理受所做的任务影响比较大,但是有一些通用的清理流程标准是通用的,比如是否有必要替换URLS,时间,货币,姓名,地名,数字等。
我们以英文文本为例,大致将文本处理流程分为以下几个步骤:

  • Normalization
  • Tokenization
  • Stop words
  • Part-of-speech Tagging
  • Named Entity Recognition
  • Stemming and Lemmatization
    下面是各个流程的具体介绍

Normalization

得到纯文本后,第一步通常要做就是Normalization。在英文中,所有句子第一个单词的首字母一般是大写,有的单词也会全部字母都大写用于表示强调和区分风格,这样更易于人类理解表达的意思,但是从计算机的角度来说是没法区别’Car’、‘car’、'CAR’是否是一个意思的,因此我们一般把文本中所有字母都转换为小写或大写(通常意义上是小写),没歌词用一个唯一的词来表示。
例如在下面的代码中,字符串文本调用lower()函数就可以将所有字母转换为小写形式。

pre_str = 'I Love My Family'
after_str = pre_str.lower()
print(after_str)

输出结果为:

i love my family

你可能还想清楚文本中的句号、问号、感叹号等特殊字符,并且保留字母表中的字母和数字。文档分类和聚类等应用中若要将所有文本文档作为一个整体,那么正则表达式这个方法特别有效。用正则匹配小写’a’到’z’以及大写’A’到’Z’以及数字’0’到’9’的范围之外的所有字符并用空格代替。这个方法无需指定所有标点符号。当然,也可以采用其他正则表达式。
在下面的代码中,使用re模块的sub正则匹配所有非a-z,A-Z,0-9的字母,并将其替换为空格。

import re
text = 'the first time you see the second renaissance it may look boring.look at it at least and definitely watch part 2.it will??'
text = re.sub(r'[^a-zA-Z0-9]', " ", text)
print(text)

输出结果:

the first time you see the second renaissance it may look boring look at it at least and definitely watchpart 2 it will  

小写转换和标点移除是两个最常见的文

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值