📜  countvectorizer 最小频率 - Python (1)

📅  最后修改于: 2023-12-03 15:30:06.309000             🧑  作者: Mango

CountVectorizer 最小频率 - Python

在使用自然语言处理时,经常需要将文本转化为统计学特征,其中最基本和常用的就是词频统计。CountVectorizer是Python中的一个用于文本特征提取的库,它可以将文本集合转化为文档-词条矩阵,矩阵的每一行表示一个文档,每一列表示一个词条,它的值为该词条在相应文档中出现的频率。

CountVectorizer

CountVectorizersklearn.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”被忽略。