CountVectorizer使用方法及参数详解

一、引言

CountVectorizer是自然语言处理中常用的文本特征提取方法之一,用于将文本数据转换为词袋(Bag of Words,BoW)表示。它将文本文档转换为词汇表中的单词计数向量。

二、 CountVectorizer使用及参数

以下是CountVectorizer的使用方法和一些常见参数的含义:

1.导入库:首先,你需要导入Python的相关库。在scikit-learn中,你可以使用以下导入语句:

from sklearn.feature_extraction.text import CountVectorizer

2.创建CountVectorizer对象:接下来,创建一个CountVectorizer对象,可以通过设定一些参数来控制文本向量化的方式:

vectorizer = CountVectorizer()

 你也可以在创建对象时设置一些参数,例如:

vectorizer = CountVectorizer(stop_words='english', max_features=500)

下面是一些常见的参数:

  • stop_words:指定停用词列表,这些词将被忽略不计入词袋中。
  • max_features:限制词汇表中的最大单词数量,保留出现频率最高的前n个单词。
  • ngram_range:指定要提取的n-gram范围,例如,ngram_range=(1, 2)将提取单个词和二元词组。
  • lowercase:是否将文本转换为小写。
  • 更多参数可以在scikit-learn的文档中找到。

3.拟合和转换数据:使用创建的CountVectorizer对象,对文本数据进行拟合和转换: 

X = vectorizer.fit_transform(text_data)

 这里的text_data是一个包含文本文档的列表或数组。

 4.获取词汇表:你可以通过以下方式获取词汇表,即向量中的特征名称:

vocabulary = vectorizer.get_feature_names_out()

 5.获得词频矩阵:通过X变量,你可以获得文本的词频矩阵,其中每行表示一个文档,每列表示一个词汇表中的单词,矩阵中的值表示单词在文档中的出现次数。

word_counts = X.toarray()

 6.使用文本向量:现在你可以将这些词频矩阵作为特征输入到机器学习模型中,用于文本分类、聚类等任务。

下面是一个小案例:

#从特征提取库中导入向量转化模块儿
from sklearn.feature_extraction.text import CountVectorizer
#需要转化的语句
"""
ngram_range(1, 2):对词进行组合
(1)本例组合方式:两两组合          #贝叶斯   模型,它只能识别数字,  传入模型,
['bird', 'cat', 'cat cat', 'cat fish', 'dog', 'dog cat', 'fish', 'fish bird']
(2)如果ngram_range(1, 3),则会出现3个词进行组合
['bird', 'cat', 'cat cat', 'cat fish', 'dog', 'dog cat', 'dog cat cat',
'dog cat fish', 'fish', 'fish bird']
"""
texts=["dog cat fish","dog cat cat","fish bird", 'bird']
cont =  []
#实例化一个模型
cv = CountVectorizer(ngram_range=(1,2))  #统计每篇文章中每个词出现的频率次数
 
#训练此模型
cv_fit=cv.fit_transform(texts)#每个词在这篇文章中出现的次数
 
print(cv_fit)
# 打印出模型的全部词库
print(cv.get_feature_names())
 
 
#打印出每个语句的词向量
print(cv_fit.toarray())
# #打印出所有数据求和结果
# print(cv_fit.toarray().sum(axis=0))

输出的结果如下图:

 

 

三、总结 

CountVectorizer是一个简单而强大的文本特征提取工具,它能够将文本数据转换成数值形式,以便于机器学习算法的处理。根据具体的任务和需求,你可以根据上述参数进行配置,以获得最佳的特征表示。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值