为什么我们必须删除最常用的词来进行文本分析?

数据挖掘 机器学习 Python 情绪分析 nltk
2022-03-08 18:13:10

我正在尝试进行情绪分析,任务是将种族主义推文与其他推文分类。我读过很多文章,很多人提到要从列中删除最常见的 10 个单词,因为它们的存在对我们的文本数据分类没有任何用处。

所以这些是我数据集中最常见的 10 个单词。

[('love', 4271),
 ('day', 3572),
 ('amp', 2709),
 ('happy', 2651),
 ('u', 1840),
 ('time', 1771),
 ('im', 1770),
 ('life', 1756),
 ('like', 1700),
 ('today', 1591)]

如果我删除这些,我的分类模型会更准确吗?

同样,他们还建议从列中删除前 10 个罕见词。

我想知道为什么?任何帮助

3个回答

解释为什么删除最常见的词可能是有利的最简单的方法是它们没有给我们太多信息。在您对种族主义推文进行分类的情况下,“and”、“a”、“the”等词对分类器没有帮助,并且可能充当对性能产生负面影响的噪音。

我不会说去掉n个最流行的词就可以保证模型更准确,但它是一个你可以探索的参数。除了完全删除最常见的单词之外,您可能还想研究下采样等技术。

停用词不会给您任何见解,并且在任何文本中经常使用这些词,因此这些词的频率高于文本中其他有用的词。这将导致停用词比其他词具有更多的权重年龄。这将影响模型的性能,尤其是当您应用基于 TF-IDF(词频-逆文档频率)的算法时。

例如:考虑下面我要应用文本分析算法的文本段落。

** 大家好,我叫 X。我的家乡是 Y。我最喜欢的菜是意大利面。我喜欢萨钦。他是有史以来最伟大的板球运动员。**

在这里,像这样的词的频率是 - 3 my - 3 等等。

因此,在提取最重要的文本来总结大量数据时,算法考虑是一个重要的词,因为它已经重复了很多次。显然,要总结文本,我会看到诸如 Sachin 、 town 、 favorite 之类的词,而不是 is 和 my 之类的词。

好问题山姆。

正如其他人所提到的,在文本分析中,诸如“a”、“have”和“they”之类的停用词会导致一系列问题:

  • 它们无助于识别文档中的内容。如果我告诉你“我”这个词在一个 500 个单词的文档中出现了 12 次,那么你将无法自信地就该文档的内容做出任何陈述,或者如果它与另一个带有“我”这个词的文档相似在里面。

  • 它们确实损害了计算速度。这些词经常出现,如果我们不删除它们,我们的算法将使用它们来分析文档。如果您可以将数据大小减少 25%,只需删除停用词,就可以显着提高性能。

除了常见的停用词之外,定义自己的停用词可能也很重要。在你的情况下,我想不出你想要定义的任何新的停用词(也许只是“tweet”或“twitter”这个词)。但是,如果您正在查看有关葡萄酒的推文,并且 99% 的推文中包含“葡萄酒”一词,那么您肯定会删除这个词。

希望这可以帮助!