📅  最后修改于: 2023-12-03 14:40:13.983000             🧑  作者: Mango
在使用自然语言处理技术时,常常需要对文本进行特征提取。其中,一种常用的特征提取方法是使用词袋模型,即将文本转化为向量表示。在这个过程中,我们通常会删除一些常见且没有实际含义的词语,称为停用词。
在Python中,我们可以使用CountVectorizer库来实现对文本的向量化表示,并删除停用词。
首先,我们需要安装CountVectorizer库,可以使用以下命令:
$ pip install scikit-learn
接下来,我们可以编写以下代码来使用CountVectorizer删除停用词:
from sklearn.feature_extraction.text import CountVectorizer
# 停用词列表
stopwords = ['a', 'an', 'the', 'is', 'and', 'or', 'that']
# 文本列表
corpus = ['This is a sample text',
'It contains stopwords',
'We want to remove stopwords']
# 初始化CountVectorizer对象
vectorizer = CountVectorizer(stop_words=stopwords)
# 文本向量化处理
X = vectorizer.fit_transform(corpus)
# 输出特征词和其数量
features = vectorizer.get_feature_names_out()
counts = X.toarray().sum(axis=0)
for feature, count in zip(features, counts):
print(feature, count)
在以上代码中,我们首先定义了一个停用词列表stopwords
,然后定义了一个包含了三个样本文本的文本列表corpus
。接着,我们初始化了一个CountVectorizer对象,并将停用词列表传递给stop_words
参数。然后,我们使用fit_transform
方法对文本进行向量化处理。最后,我们使用get_feature_names_out
方法获取特征词列表,并使用toarray().sum(axis=0)
方法获取每个特征词的数量。
以上代码将输出每个特征词及其数量,例如:
contains 1
remove 1
sample 1
text 1
want 1
we 1
如上所示,停用词(例如 "is"、"the")已经被成功删除。
希望以上介绍对你有帮助!