使用Python中的NLTK和spaCy删除停用词与文本标准化

本文介绍了在Python中使用NLTK、spaCy和Gensim库进行停用词删除和文本标准化,包括词干化和词形还原。停用词在某些任务中可能不重要,但在机器翻译和文本摘要等任务中却是必要的。通过文本标准化,可以将单词减少到其基本形式,提高模型理解效率。
摘要由CSDN通过智能技术生成

640?wx_fmt=jpeg

 

 

 概述

  • 了解如何在Python中删除停用词与文本标准化,这些是自然语言处理的基本技术

  • 探索不同的方法来删除停用词,以及讨论文本标准化技术,如词干化(stemming)和词形还原(lemmatization)

  • 在Python中使用NLTK,spaCy和Gensim库进行去除停用词和文本标准化

介绍

多样化的自然语言处理(NLP)是真的很棒,我们以前从未想象过的事情现在只是几行代码就可做到。这真的令人开心。

但使用文本数据会带来一系列挑战。机器在处理原始文本方面有着较大的困难。在使用NLP技术处理文本数据之前,我们需要执行一些称为预处理的步骤。

错过了这些步骤,我们会得到一个不好的模型。这些是你需要在代码,框架和项目中加入的基本NLP技术。

我们将讨论如何使用一些非常流行的NLP库(NLTK,spaCy,Gensim和TextBlob)删除停用词并在Python中执行文本标准化。

目录

  • 什么是停用词?

  • 为什么我们需要删除停用词?

  • 我们何时应该删除停用词?

  • 删除停用词的不同方法

  • 使用NLTK

  • 使用spaCy

  • 使用Gensim

  • 文本标准化简介

  • 什么是词干化和词形还原?

  • 执行词干化和词形还原的方法

  • 使用NLTK

  • 使用spaCy

  • 使用TextBlob

什么是停用词?

在任何自然语言中停用词是最常用的词。为了分析文本数据和构建NLP模型,这些停用词可能对构成文档的意义没有太多价值。

通常,英语文本中使用的最常用词是"the","is","in","for","where","when","to","at"等。

考虑这个文本,"There is a pen on the table"。现在,单词"is","a","on"和"the"在解析它时对语句没有任何意义。而像"there","book"和"table"这样的词是关键词,并告诉我们这句话是什么意思。

640?wx_fmt=png

一般来说在去除停用词之前要执行分词操作。

以下是一份停用词列表,可能对你有用

a about after all also always am an and any are at be been being but by came can cant come

为什么我们需要删除停用词?

这是一个你必须考虑到的非常重要的问题

在NLP中删除停用词并不是一项严格的规则。这取决于我们正在进行的任务。对于文本分类等(将文本分类为不同的类别)任务,从给定文本中删除或排除停用词,可以更多地关注定义文本含义的词。

正如我们在上一节中看到的那样,单词there,book要比单词is,on来得更加有意义。

但是,在机器翻译和文本摘要等任务中,却不建议删除停用词。

以下是删除停用词的几个主要好处:

  • 在删除停用词时,数据集大小减小,训练模型的时间也减少

  • 删除停用词可能有助于提高性能,因为只剩下更少且唯一有意义的词。因此,它可以提高分类准确性

  • 甚至像Google这样的搜索引擎也会删除停用词,以便从数据库中快速地检索数据

我们什么时候应该删除停用词?

我把它归纳为两个部分:删除停用词的情况以及当我们避免删除停用词的情况。

删除停用词

我们可以在执行以下任务时删除停用词:

  • 文本分类

  • 垃圾邮件过滤

  • 语言分类

  • 体裁(Genre)分类

  • 标题生成

  • 自动标记(Auto-Tag)生成

避免删除停用词

  • 机器翻译

  • 语言建模

  • 文本摘要

  • 问答(QA)系统

删除停用词的不同方法

1.使用NLTK删除停用词

NLTK是文本预处理的自然语言工具包。这是我最喜欢的Python库之一。NLTK有16种不同语言的停用词列表

你可以使用以下代码查看NLTK中的停用词列表:

import nltk
from nltk.corpus import stopwords
set(stopwords.words('english'))

现在,要使用NLTK删除停用词,你可以使用以下代码块

# 下面的代码是使用nltk从句子中去除停用词

# 导入包
import nltk
from nltk.corpus i
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值