当前位置:   article > 正文

【NLP】如何清理文本数据?

在处理文本数据时,我们通常使用()来删除文本中的无意义词语。

2a2c81b263b4419b220723eef2c8aa13.png



作者 | Matt Przybyla

编译 | VK
来源 | Towards Data Science

目录

  1. 介绍

  2. 清除文本数据

  3. 总结

  4. 参考引用

介绍

数据在大多数情况下都是杂乱无章、杂乱无章、难以处理的,这一点也不足为奇。

当你从教育实践中学习数据科学时,你将看到大多数数据都是从多个来源、多个查询中获得的,这可能会导致一些不干净的数据。

在某些或大多数情况下,你必须提供最终用于训练模型的数据集。有一些文章关注数字数据,但我希望本文的重点主要是文本数据,这与自然语言处理是一致的。

话虽如此,这里有一个简单的方法来清理Python中的文本数据,以及它何时有用。我将使用来自TMBDF5000电影数据集[2]的流行数据集。

清除文本数据

3c841cab40e67df63c6a3b2d0b1c9194.png

删除停用词

另一种解释“停用词”的方法是删除不必要的文本。

但是,需要注意的是,当你使用常用的停用词库时,你可能正在删除你实际上想要保留的单词。

这就是为什么你应该首先考虑你想要删除的单词列表。停用词的常见例子有“the”、“of”等。你想要删除这些单词的原因是你想要保留这些单词、短语、句子等的主题。

例如“ there was the time where they went to the store in July for the holiday party’”。如果你删除了停用词和一些不必要的词,你就会得到 time, July, holiday, party 。

话虽如此,让我们看看如何从电影标题中删除一些停用词:

  1. import pandas as pd
  2. import nltk.corpus
  3. nltk.download(‘stopwords’)
  4. from nltk.corpus import stopwords
  5. df = pd.read_csv('...path/tmdb_5000_movies.csv')
  6. stop_words = stopwords.words('english')
  7. 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并排看到这一点。

9391e7f800bacf620814ed5a29c2d6d9.png

除了nltk中的停用词库外,你还可以“手动”添加其他停用词。为了实现这个功能,你可以简单地添加一个字符串列表来添加停用词。

例如,如果我们想删除文本“3”,因为它在本例中不是一个数字,我们可以将其添加到列表中,以及单词“At”和字母“v”。其工作原理如下所示:

  1. stop_words = stopwords.words(‘english’) + [‘At’, ‘v’, ‘3’]
  2. # 应用与上面相同的代码,但分配一个新列来查看差异
  3. df['clean_title_v2'] = df['title'].apply(lambda x: ' '.join([word for word in x.split() if word not in (stop_words)]))

在下面的屏幕截图中,你可以看到lambda函数如何删除添加的字符串列表中的值。

1dbd2e82d7a8cb341f58c382bf4180af.png

现在我们已经展示了一种清理文本数据的方法,让我们讨论一下这个过程对数据科学家有用的可能应用:

  • 删除不必要的单词以便可以执行词干分析

  • 与上面类似,你可以使用词形还原

  • 只保留必要的单词可以让你更容易地标记数据中的词类,例如,如果你只标记形容词,并在数据中使用该文本作为模型,那么像“ beautiful ”、“ amazing ”、“ loud ”就可以用来预测电影评论的目标变量。一个模型将能够更容易地从形容词中识别情感,从而辨别电影评论是好是坏,或者电影需要改进什么

  • 根据更新文本的主要词语创建摘要仪表板,例如,去掉“蜘蛛侠1”、“蜘蛛侠2”和“蜘蛛侠3”中的数字,将允许对所有蜘蛛侠电影进行分析

  • 更容易进行主题建模

  • 少量文本,以便你的建模可以更快、更便宜地进行训练和预测

  • 可以用来删除错误的文本,你可以自动删除通常被语音错误解释的单词。

当然,有更多的理由删除停用词,并清理文本数据。同样重要的是要记住,有一些新兴的算法可以很好地处理文本数据,比如CatBoost。

总结

如你所见,清理数据的一部分可以为进一步清理和处理数据奠定基础。最终会使模型更加健壮和准确。

总而言之,以下是如何从文本数据中删除停用词:

  1. * 导入库
  2. * 导入数据集
  3. * 删除停用词
  4. * 添加单独的停用词

更新:由于单词的大小写是大写的,所以没有按应该的方式删除它,因此请确保在清理之前将所有文本都小写。

感谢阅读!

参考引用

[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)

✄---------------------------------------

28a19f4de386a396e15ee9bcd131de74.png
 
 
 
 
 
 
 
 
  1. 往期精彩回顾
  2. 适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
  3. AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群955171419,加入微信群请扫码:

0860d129632315785b72d189c46b7944.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/568884
推荐阅读
相关标签
  

闽ICP备14008679号