📅  最后修改于: 2023-12-03 15:30:06.309000             🧑  作者: Mango
在使用自然语言处理时,经常需要将文本转化为统计学特征,其中最基本和常用的就是词频统计。CountVectorizer
是Python中的一个用于文本特征提取的库,它可以将文本集合转化为文档-词条矩阵,矩阵的每一行表示一个文档,每一列表示一个词条,它的值为该词条在相应文档中出现的频率。
CountVectorizer
是sklearn.feature_extraction.text
中提供的一个类。它的主要参数包括:
input
:文本集合,可以是列表、数组等。stop_words
:停用词,可以是字符串、列表、None等。min_df
:表示忽略文档频率低于该值的词条。max_df
:表示忽略文档频率高于该值的词条。max_features
:表示选取前n个高频词作为特征。ngram_range
:表示选取几个相邻词作为特征。min_df
参数表示将忽略在文档中出现频率低于该值的词条,可以用来过滤噪声和停用词。例如,当min_df=2
时,只有在至少两篇文档中出现过的词条才会被选取作为特征,其他的都会被忽略。
以下是一个简单的使用CountVectorizer
的例子:
from sklearn.feature_extraction.text import CountVectorizer
# 将文本集合转化为文档-词条矩阵
corpus = [
'This is the first document.',
'This document is the second document.',
'And this is the third one.',
'Is this the first document?',
]
vectorizer = CountVectorizer(min_df=2)
X = vectorizer.fit_transform(corpus)
# 输出特征
print(vectorizer.get_feature_names())
# 输出文档-词条矩阵
print(X.toarray())
输出:
['document', 'is', 'the', 'this']
[[1 1 1 1]
[2 1 1 1]
[0 1 1 1]
[1 1 1 1]]
可以看到,只有出现频率大于等于2的词条才被选取为特征,即“first”和“one”被忽略。