【NLP】如何清理文本数据
作者 | Matt Przybyla 编译 | VK 来源 | Towards Data Science
目录
介绍
清除文本数据
总结
参考引用
介绍
数据在大多数情况下都是杂乱无章、杂乱无章、难以处理的,这一点也不足为奇。
当你从教育实践中学习数据科学时,你将看到大多数数据都是从多个来源、多个查询中获得的,这可能会导致一些不干净的数据。
在某些或大多数情况下,你必须提供最终用于训练模型的数据集。有一些文章关注数字数据,但我希望本文的重点主要是文本数据,这与自然语言处理是一致的。
话虽如此,这里有一个简单的方法来清理Python中的文本数据,以及它何时有用。我将使用来自TMBDF5000电影数据集[2]的流行数据集。
清除文本数据
删除停用词
另一种解释“停用词”的方法是删除不必要的文本。
但是,需要注意的是,当你使用常用的停用词库时,你可能正在删除你实际上想要保留的单词。
这就是为什么你应该首先考虑你想要删除的单词列表。停用词的常见例子有“the”、“of”等。你想要删除这些单词的原因是你想要保留这些单词、短语、句子等的主题。
例如“ there was the time where they went to the store in July for the holiday party’”。如果你删除了停用词和一些不必要的词,你就会得到 time, July, holiday, party 。
话虽如此,让我们看看如何从电影标题中删除一些停用词:
import pandas as pdimport nltk.corpus
nltk.download(‘stopwords’)
from nltk.corpus import stopwordsdf = pd.read_csv('...path/tmdb_5000_movies.csv')stop_words = stopwords.words('english')
df['clean_title'] = df['title'].apply(lambda x: ' '.join([word for word in x.split() if word not in (stop_words)]))
在上面的代码中,我们导入必要的库,然后将数据读入数据框。
从这里,我们删除“title”列文本中的停用词,它们将在“ clean_title ”列中显示各自的效果。
输出是我们在下面看到的。在第1行、第3行和第8行中,删除了stopwords,你可以通过before和after并排看到这一点。
除了nltk中的停用词库外,你还可以“手动”添加其他停用词。为了实现这个功能,你可以简单地添加一个字符串列表来添加停用词。
例如,如果我们想删除文本“3”,因为它在本例中不是一个数字,我们可以将其添加到列表中,以及单词“At”和字母“v”。其工作原理如下所示:
stop_words = stopwords.words(‘english’) + [‘At’, ‘v’, ‘3’]# 应用与上面相同的代码,但分配一个新列来查看差异df['clean_title_v2'] = df['title'].apply(lambda x: ' '.join([word for word in x.split() if word not in (stop_words)]))
在下面的屏幕截图中,你可以看到lambda函数如何删除添加的字符串列表中的值。
现在我们已经展示了一种清理文本数据的方法,让我们讨论一下这个过程对数据科学家有用的可能应用:
删除不必要的单词以便可以执行词干分析
与上面类似,你可以使用词形还原
只保留必要的单词可以让你更容易地标记数据中的词类,例如,如果你只标记形容词,并在数据中使用该文本作为模型,那么像“ beautiful ”、“ amazing ”、“ loud ”就可以用来预测电影评论的目标变量。一个模型将能够更容易地从形容词中识别情感,从而辨别电影评论是好是坏,或者电影需要改进什么
根据更新文本的主要词语创建摘要仪表板,例如,去掉“蜘蛛侠1”、“蜘蛛侠2”和“蜘蛛侠3”中的数字,将允许对所有蜘蛛侠电影进行分析
更容易进行主题建模
少量文本,以便你的建模可以更快、更便宜地进行训练和预测
可以用来删除错误的文本,你可以自动删除通常被语音错误解释的单词。
当然,有更多的理由删除停用词,并清理文本数据。同样重要的是要记住,有一些新兴的算法可以很好地处理文本数据,比如CatBoost。
总结
如你所见,清理数据的一部分可以为进一步清理和处理数据奠定基础。最终会使模型更加健壮和准确。
总而言之,以下是如何从文本数据中删除停用词:
* 导入库* 导入数据集* 删除停用词* 添加单独的停用词
更新:由于单词的大小写是大写的,所以没有按应该的方式删除它,因此请确保在清理之前将所有文本都小写。
感谢阅读!
参考引用
[1] Photo by JESHOOTS.COM on Unsplash, (2019)
[2] Kaggle, TMBDF 5000 Movie Dataset, (2021 — accessed)
[3] Photo by Marylou Fortier on Unsplash, (2020)
[4] M.Przybyla, cleaning text example, (2021)
[5] M.Przybyla, cleaning text example plus adding individual stop words, (2021)
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件
本站qq群955171419,加入微信群请扫码:
【NLP】如何清理文本数据相关推荐
- 【NLP】如何清理文本数据?
作者 | Matt Przybyla 编译 | VK 来源 | Towards Data Science 目录 介绍 清除文本数据 总结 参考引用 介绍 数据在大多数情况下都是杂乱无章.杂乱无章.难以 ...
- nlp文本数据增强_如何使用Texthero为您的NLP项目准备基于文本的数据集
nlp文本数据增强 Natural Language Processing (NLP) is one of the most important fields of study and researc ...
- 数据代码分享|Python用NLP自然语言处理LSTM神经网络Twitter推特灾难文本数据、词云可视化与SVM,KNN,多层感知器,朴素贝叶斯,随机森林,GBDT对比
作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活跃用户达1.86亿.与此同时,Twitter也已成为突发紧急情况时 ...
- 数据代码分享|PYTHON用NLP自然语言处理LSTM神经网络TWITTER推特灾难文本数据、词云可视化...
全文下载链接:http://tecdat.cn/?p=28877 作者:Yunfan Zhang Twitter是一家美国社交网络及微博客服务的网站,致力于服务公众对话.迄今为止,Twitter的日活 ...
- 独家 | 文本数据探索性数据分析结合可视化和NLP产生见解(附代码)
作者:Susan Li 翻译:吴金笛 校对:和中华 本文约5000字,建议阅读12分钟. 本文使用电子商务的评价数据集作为实例来介绍基于文本数据特征的数据分析和可视化. 作为数据科学家或NLP专家,可 ...
- NLP自然语言处理—主题模型LDA案例:挖掘人民网留言板文本数据
全文链接:tecdat.cn/?p=2155 随着网民规模的不断扩大,互联网不仅是传统媒体和生活方式的补充,也是民意凸显的地带.领导干部参与网络问政的制度化正在成为一种发展趋势,这种趋势与互联网发展的 ...
- 文本数据增强一(概述、中文、同义句生成、enhance、augment、text、nlp)
文本数据增强(扩充增加.中文.同义句生成.enhance.augment.text.nlp) AugmentText 概述 - 相较于图像数据增强,文本数据增强,现在还是有很多问题的: - 往更严格的 ...
- NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等
NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏链接:NLP领域知识+项目+码源+方案设计 订阅本专栏你能获得什 ...
- NLP自然语言处理的文本数据增强——回译(内含python工具包)
回译 自然语言处理过程经常面临缺乏数据,因此需要进行数据增强.其中,回译,即将中文翻译成外文,再翻译回中文的操作可以扩展数据集,是一种好办法. 这里直接提供工具包NLP工具包-回译数据增强,可以直接调 ...
最新文章
- NOIP模拟题 斐波那契数列
- 「模型解读」从“局部连接”回到“全连接”的神经网络
- 想学python编程-想学Python编程?你真的适合吗?
- NET平台下Web树形结构程序设计
- java设计模式face_24种设计模式--门面模式【Facede Pattern】
- How is html text displayed in Assignment block
- vue利用级联选择器实现全国省市区乡村五级菜单联动
- 华为机试——提取不重复的整数
- LINUX/CentOS防CC***脚本
- Docker1.12.6+CentOS7.3 的安装
- Java之映射(map)
- 数学:概率论与数理统计
- RINEX3.05格式中的主要更新
- 「MRC干货」如何快速构建一台高精度AGV
- java 对象判断null_Java判断对象是否为null的方法
- 常用颜色表以及中国传统颜色名录(附宏定义)
- 根据Uniprot ID/PDB ID批处理获取蛋白质.pdb文件
- 计算机类所有一级刊物,核心期刊介绍
- excel插入散点图按时刻设置横坐标刻度值
- Altium Sesigner 测量距离后留下的距离图标如何删除的问题解决
热门文章
- 为 Neutron 准备物理基础设施(II) - 每天5分钟玩转 OpenStack(76)
- 【原创】贴片电容的测量方法。。。这是我从自己QQ空间转过来的,本人实操!...
- 3.12课·········数组
- 向maven中央仓库提交jar
- MFC之键盘和键盘消息处理
- C# winform DataGridView 属性说明
- 洛谷 - P2444 - 病毒 - AC自动机
- PTA-1011——World Cup Betting
- 判断IE浏览器的版本号
- 【2017-02-18】C#基础 - 定义变量,输入输出(最基础的编程,以及灵活多变的编写思维)...