实现文本预处理
在下面的python代码中,我们从Twitter情感分析数据集的原始文本数据中去除噪音。之后,我们将进行删除停顿词、干化和词法处理。

导入所有的依赖性。

! pip install contractions
import nltk
import contractions
import inflect
from nltk import word_tokenize, sent_tokenize
from nltk.corpus import stopwords
from nltk.stem import LancasterStemmer, WordNetLemmatizer
from bs4 import BeautifulSoup
import re, string, unicodedata
复制代码

去除噪音。

第一步是去除数据中的噪音;在文本领域,噪音是指与人类语言文本无关的东西,这些东西具有各种性质,如特殊字符、小括号的使用、方括号的使用、空白、URL和标点符号。

下面是我们正在处理的样本文本。

正如你所看到的,首先有许多HTML标签和一个URL;我们需要删除它们,为此,我们使用BeautifulSoup。下面的代码片段将这两者都删除了。

# to remove HTML tag
def html_remover(data):beauti = BeautifulSoup(data,'html.parser')return beauti.get_text()# to remove URL
def url_remover(data):return re.sub(r'https\S','',data)def web_associated(data):text = html_remover(data)text = url_remover(text)return textnew_data = web_associated(data)
复制代码

在去除HTML标签和URL后,仍有一些标点符号和空白的噪音,以及括号内的文本数据;这也需要被处理。

def remove_round_brackets(data):return re.sub('\(.*?\)','',data)def remove_punc(data):trans = str.maketrans('','', string.punctuation)return data.translate(trans)def white_space(data):return ' '.join(data.split())def complete_noise(data):new_data = remove_round_brackets(data)new_data = remove_punc(new_data)new_data = white_space(new_data)return new_datanew_data = complete_noise(new_data)
复制代码

现在,正如你所看到的,我们已经成功地去除文本中的所有噪音。

对文本进行规范化处理。

通常情况下,文本规范化首先要对文本进行标记,我们较长的语料现在要被分割成若干个词块,NLTK的标记器类可以做到这一点。之后,我们需要对语料库中的每个单词进行小写,将数字转换为单词,最后进行缩略语替换。

def text_lower(data):return data.lower()def contraction_replace(data):return contractions.fix(data)def number_to_text(data):temp_str = data.split()string = []for i in temp_str:# if the word is digit, converted to # word else the sequence continuesif i.isdigit():temp = inflect.engine().number_to_words(i)string.append(temp)else:string.append(i)return temp_strdef normalization(data):text = text_lower(data)text = number_to_text(text)text = contraction_replace(text)nltk.download('punkt')tokens = nltk.word_tokenize(text)return tokenstokens = normalization(new_data)
print(tokens)
复制代码

现在,我们已经接近基本文本预处理的尾声;现在,我们只剩下一件重要的事情:停止词。在分析文本数据时,停顿词根本没有意义;它只是用于装饰性目的。因此,为了进一步降低维度,有必要将停顿词从语料库中删除。

最后,我们有两种选择,即用词干化或词组化的形式来表示我们的语料库。词干化通常试图将单词转换为其词根格式,而且大多是通过简单地切割单词来进行。而词根化也是做干化的任务,但以适当的方式意味着它将单词转换为词根格式,如’scenes’将被转换为’scene’。人们可以在词干化和词缀化之间进行选择。

def stopword(data):nltk.download('stopwords')clean = []for i in data:if i not in stopwords.words('english'):clean.append(i)return cleandef stemming(data):stemmer = LancasterStemmer()stemmed = []for i in data:stem = stemmer.stem(i)stemmed.append(stem)return stemmeddef lemmatization(data):nltk.download('wordnet')lemma = WordNetLemmatizer()lemmas = []for i in data:lem = lemma.lemmatize(i, pos='v')lemmas.append(lem)return lemmas  def final_process(data):stopwords_remove = stopword(data)stemmed = stemming(stopwords_remove)lemm = lemmatization(stopwords_remove)return stemmed, lemm
stem,lemmas = final_process(tokens)
复制代码

下面我们可以看到经过词干化和词缀化的单词。

结语。
在这篇文章中,我们讨论了文本的预处理对模型的建立是如何必要的。从一开始,我们就学会了如何去除HTML标签,并从URL中去除噪音。首先,为了去除噪音,我们必须对我们的语料库进行概述,以定制噪音成分。我们已经观察到在词干化和词条化之间的巨大权衡,我们应该始终使用词条化的词。

最后
如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star:http://github.crmeb.net/u/defu不胜感激 !

免费获取源码地址:http://ym.baisouvip.cn/html/wzym/36.html

PHP学习手册:https://doc.crmeb.com

技术交流论坛:https://q.crmeb.com

关于NLP中的文本预处理的完整教程相关推荐

  1. NLP任务中的文本预处理步骤、工具和示例

    作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井.文本数据无处不在,在实际 ...

  2. NLP中的文本分析和特征工程

    语言检测,文本清理,长度测量,情绪分析,命名实体识别,n字频率,词向量,主题建模 前言 在本文中,我将使用NLP和Python解释如何分析文本数据并为机器学习模型提取特征. NLP(自然语言处理)是人 ...

  3. 从0到1,了解NLP中的文本相似度

    本文由云+社区发表 作者:netkiddy 导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是, ...

  4. 从0到1,了解NLP中的文本相似度 1

    导语 AI在2018年应该是互联网界最火的名词,没有之一.时间来到了9102年,也是项目相关,涉及到了一些AI写作相关的功能,为客户生成一些素材文章.但是,AI并不一定最懂你,客户对于AI写出来的文章 ...

  5. NLP中面向文本表示的模型梳理

    引言 语言表示是将自然语言表示为计算机或者模型能够处理的数据特征,是解决例如情感分析.命名实体识别.机器翻译.文本生成等这些高级任务的基础.本文作为NLP基础知识的入门,梳理了相关文本表征的模型与方法 ...

  6. 文本挖掘和文本分析与nlp_如何在NLP中保护文本表示的隐私

    文本挖掘和文本分析与nlp 问题概述 (Problem overview) Recently, we have been experiencing numerous breakthroughs in ...

  7. NLP 中的文本分类

    文本分类是机器学习在自然语言处理中的最常用也是最基础的应用,机器学习相关内容可以直接看我的有关scikit-learn相关教程,本节直接涉及nltk中的机器学习相关内容 转载自网站www.shared ...

  8. python进行文本预处理_用python做NLP:中文文本预处理

    数据挖掘入门与实战  公众号: datadw 一 得到原始文本内容 def FileRead(self,filePath): f = open(filePath) raw=f.read() retur ...

  9. 微信小程序中引用FontAwesome字体 最完整教程 附下载源码

    目的:在小程序实现,FontAwesome.省去制作图标,引用图标的烦恼 主要步骤,下载>转码>合并样式>引用 样式,不会的可下载源码 1.到Font Awesome官网下载字体包 ...

最新文章

  1. 实现影响力的三个核心要素
  2. Python3 的内置函数和闭包
  3. Linux C 中字符串化操作符#
  4. 用循环语句求2^0+2^1+........+2^63 (C语言)
  5. vue-router自动判断左右翻页转场动画
  6. servlet mysql 小程序_Servlet页面注册用户的小程序(一)
  7. Spring AOP原理分析(四)--AnnotationAwareAspectJAutoProxyCreator#postProcessBeforeInstantiation源码解析
  8. 打包fpm mysql_fpm制做mysql-5.6.33 rpm包
  9. 图形数字化工具 - getData
  10. Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
  11. 游戏设计的100个原理(11-15)
  12. 百度地图生成器不显示图片的原因
  13. 阿里云Oss获取图片的大小信息
  14. psn注册什么服务器,psn港服注册图文教程
  15. matlab中得到透明背景图片的方法,如何在Matlab中得到透明背景的图片?
  16. fatal error C1189
  17. PMP系列 - 关键链法
  18. 连载:大学生求职七大昏招(十九)缺少职业素养(4)
  19. DDS信号发生器:直接数字式频率合成器 (Direct Digital Synthesizer)
  20. 《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记

热门文章

  1. Selenium使用CSS定位 总结
  2. zabbix监控nginx
  3. fgetpos()和fsetpos()
  4. matlab极坐标六边形图片,matlab怎样直接画出六边形
  5. win10/11系统自带的下载文件夹和音乐文件夹合并,恢复
  6. 认真敲项目(三) select2
  7. Qt inherits
  8. 韩国或将禁止苹果和谷歌向开发者抽佣 创全球首例
  9. 7-20 简单计算器分数 (详解)
  10. 《一个联通转电信用户的操蛋经历》后续