📜  从字符串列表中删除停用词 python (1)

📅  最后修改于: 2023-12-03 14:49:23.921000             🧑  作者: Mango

从字符串列表中删除停用词 Python

在自然语言处理中,有些词汇被称为“停用词”,它们是一些常见的词汇,如 “the”、“and”、“a” 等等。这些词汇并不包含有价值的信息,因此在文本处理中通常会被过滤掉。

在 Python 中,我们可以使用一些库来删除停用词,如 nltk、spaCy 等。

使用nltk库删除停用词

NLTK(Natural Language Toolkit) 是用于Python编程语言的自然语言处理库,它提供了方便的函数来处理文本数据。下面是一个使用nltk库删除停用词的简单例子:

import nltk
from nltk.corpus import stopwords

nltk.download('stopwords')

stop_words = set(stopwords.words('english'))

sentence = "This is a sentence that contains some stopwords."

words = sentence.split()

filtered_sentence = [word for word in words if word.casefold() not in stop_words]

print(filtered_sentence)

在上面的代码中,我们首先导入了 stopwords 模块,然后我们下载了英文停用词列表。然后我们定义了一个句子 sentence,我们使用 split() 方法将它分割成单词,并将单词存入 words 列表中。接下来,我们使用列表推导式生成一个新的列表 filtered_sentence,其中仅包含不在停用词列表中的单词。最后,我们打印出 filtered_sentence 的内容。

输出结果是:['sentence', 'contains', 'stopwords.'],表示停用词被成功删除了。

使用spaCy库删除停用词

spaCy 是一个用于自然语言处理的现代Python库。它可以帮助我们进行词汇分析、命名实体识别、文本分类等任务。下面是一个使用spaCy库删除停用词的简单例子:

import spacy

nlp = spacy.load('en_core_web_sm')

sentence = "This is a sentence that contains some stopwords."

doc = nlp(sentence)

filtered_sentence = [token.text for token in doc if not token.is_stop]

print(filtered_sentence)

在上面的代码中,我们首先导入了 spacy 库,并使用 en_core_web_sm 模型加载了英文自然语言处理器。然后我们定义了一个句子 sentence,我们将它传递给 nlp() 方法,将其转换为一个 Doc 对象。接下来,我们使用列表推导式生成一个新的列表 filtered_sentence,其中仅包含不是停用词的单词。最后,我们打印出 filtered_sentence 的内容。

输出结果是:['sentence', 'contains', 'stopwords', '.'],表示停用词被成功删除了。

总结

在 Python 中删除停用词可以帮助我们过滤掉文本中无用的信息,使得我们能够更加有效地对文本进行处理。在本文中,我们介绍了使用nltkspaCy库删除停用词的方法。