8 文本预处理之去除停用词

在自然语言处理(NLP)中,文本预处理是至关重要的一步。在上一篇中,我们探讨了分词的基本概念与方法,这为后续处理奠定了坚实的基础。今天,我们将继续讨论去除停用词的主题,这是文本清洗和预处理过程中不可或缺的一环。接下来,我们将了解什么是停用词、它们的作用,以及如何在Python中去除这些词。

什么是停用词?

停用词通常是指在文本中出现频率较高,但对文本理解帮助较小的词语。例如,英语中的theisin等词都是常见的停用词。虽然这些词在语法上是必要的,但在许多NLP任务中,它们往往不会提供有价值的信息。因此,我们可以选择在进行文本分析时将其去除。

停用词的选择

去除停用词有助于减少文本的维度,提高后续分析的效率。例如,在构建词云或者进行文本分类时,保留停用词可能会导致模型混淆,因为这些词对文本的主旨贡献甚微。

然而,在某些情况下,例如情感分析或某些类型的文本生成任务中,停用词也可能承载了重要的上下文信息,因此是否保留停用词需要根据具体任务而定。

如何去除停用词?

在Python中,通常可以使用NLTK(Natural Language Toolkit)库来去除停用词。下面是一个简要的示例,展示如何使用NLTK去除英文文本中的停用词。

安装NLTK

首先,确保你已安装NLTK库。你可以通过以下命令安装:

1
pip install nltk

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

# 下载停用词列表(首次使用时需要下载一次)
nltk.download('punkt')
nltk.download('stopwords')

# 示例文本
text = "This is an example showing off the stop words filtration."

# 分词
words = word_tokenize(text)

# 获取停用词列表
stop_words = set(stopwords.words('english'))

# 去除停用词
filtered_words = [word for word in words if word.lower() not in stop_words]

print("原始词:", words)
print("去除停用词后的词:", filtered_words)

代码解析

  1. 分词: 使用nltk.tokenize中的word_tokenize函数将文本分解为单词。
  2. 获取停用词: 使用nltk.corpus.stopwords获取常用的英语停用词列表。
  3. 过滤停用词: 使用列表推导式,遍历每个单词并检查它是否在停用词列表中。如果不在,我们将其保留。

运行上述代码后,你会看到输出结果:

1
2
原始词: ['This', 'is', 'an', 'example', 'showing', 'off', 'the', 'stop', 'words', 'filtration', '.']
去除停用词后的词: ['example', 'showing', 'stop', 'words', 'filtration', '.']

从输出结果可以看出,原始文本中的停用词如This, is, an, the等已经被成功去除。

常用停用词列表

除了英语,停用词的概念也适用其他语言。例如,在中文处理时,常用的停用词可以包括的、了、在等。

假设你在处理中文文本,使用jieba库进行分词和停用词去除的代码示例如下:

中文示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import jieba

# 中文停用词列表
stop_words = set(['的', '了', '在'])

# 示例文本
text = "在自然语言处理中,停用词的去除是非常重要的步骤。"

# 分词
words = jieba.cut(text)

# 去除停用词
filtered_words = [word for word in words if word not in stop_words]

print("原始词:", list(words))
print("去除停用词后的词:", filtered_words)

小结

在本篇中,我们探讨了去除停用词的重要性和方法,学习了如何利用Python及其库来处理停用词。这一过程不仅可以提高模型的效率,也能增强后续文本分析的效果。在下一篇文章中,我们将进一步研究词干提取与词形还原,帮助我们更好地规范和标准化文本。期待与大家的下次讨论!

8 文本预处理之去除停用词

https://zglg.work/nlp-zero/8/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论