Dictvectorizer,countvectorizer和tfidfvectorizer文本特征提取区别

本文探讨了在自然语言处理中,Dictvectorizer、Countvectorizer和Tfidfvectorizer的区别。Dictvectorizer用于名义型变量的0/1编码向量化,而Countvectorizer通过词频统计生成矩阵。Tfidfvectorizer引入逆文档频率,重视在较少文档中出现的关键词。在使用Countvectorizer前需进行分词处理,如用jieba进行中文分词,且可设置停用词列表。Tfidfvectorizer考虑了词语的普遍重要性,提高文本特征的区分度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Dicvectorizer对使用字典储存的数据进行特征提取与向量化

# 定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)。
measurements = [{'city': 'Dubai', 'temperature': 33.}, {'city': 'London', 'temperature': 12.}, {'city': 'San Fransisco', 'temperature': 18.}]
# 从sklearn.feature_extraction 导入 DictVectorizer
from sklearn.feature_extraction import DictVectorizer
# 初始化DictVectorizer特征抽取器
vec = DictVectorizer()
# 输出转化之后的特征矩阵。
print(vec.fit_transform(measurements).toarray())
# 输出各个维度的特征含义。
print (vec.get_feature_names())

特征矩阵:

[[ 1. 0. 0. 33.]
[ 0. 1. 0. 12.]
[ 0. 0. 1. 18.]]

对名义型变量 采用0/1编码,进行向量化;而数值型变量,维持原始值

输出各个维度的特征含义:

[‘city=Dubai’, ‘city=London’, ‘city=San Fransisco’, ‘temperature’]

  • Countvectorizer统计词频并转为矩阵

常用数据输入形式为:列表,列表元素为代表文章的字符串,一个字符串代表一篇文章,字符串是已经分割好的

参数 作用
stop_words 停用词表,自定义停用此表
token_pattern 过滤规则(如token_pattern=r"(?u)\b[^/]+\b"表示用" / "来过滤)
vocabulary_ 词汇表,字典型
get_feature_names()

所有文本的词汇;列表型

stop_words 返回停用词表

countvectorizer 是通过fit-transform函数将文本中的词语转换为词频矩阵,矩阵元素a[i][j] 表示j词在第i个文本下的词频。即各个词语出现的次数,通过get_feature_names()可看到所有文本的关键词,通过torray()可看到词频矩阵的结果。

放发表 作用
fit_transform(X) 拟合模型,并返回文本矩阵

首先要进行countvectorizer需对文本进行分词处理,中文分词,经常用jieba这个包

a ="自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学"
b = "因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。"
c ="因而它是计算机科学的一部分。自然语言处理(NLP)是计算机科学,人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值