【机器学习】特征工程 - 文本特征提取TfidfVectorizer

这篇具有很好参考价值的文章主要介绍了【机器学习】特征工程 - 文本特征提取TfidfVectorizer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

「文本」进行特征提取时,一般会用「单词」作为特征,即特征词。

TfidfVectorizer会计算特征词的「权重」,帮我们发现哪个词是最重要的。

比如,某个词在这篇文章中出现的频率很高,但在其他文章中出现的频率很低,那么这个词对于这篇文章的权重就高。

而 CountVectorizer 则只是单纯的计算特征词出现的「次数」,对于多篇文章的特征提取,就相对逊色。

一、特征提取API

sklearn.feature_extraction 是用来提取特征的API。

sklearn.feature_extraction.text.TfidfVectorizer( stop_words=[…] )

  • fit_transform( data ):接收数据(文本或包含文本字符串的可迭代对象),返回提取的特征(权重矩阵)
  • vector.inverse_transform(new_data):将提取的特征,转换成之前的数据
  • get_feature_names_out():获取(特征)单词列表

参数:

  • stop_words:停用词,数组类型,指定的停用词不再作为特征词。

二、提取特征

我们准备一组原始数据,「提取」特征:

from sklearn import feature_extraction

# 原始数据
old_data = [
    "I am your mather !"
    "I am your father !"
]

# 初始化
tf = feature_extraction.text.TfidfVectorizer()

# 提取特征
new_data = tf.fit_transform(old_data)
print(new_data)

输出:

  (0, 1)	0.31622776601683794
  (0, 2)	0.31622776601683794
  (0, 3)	0.6324555320336759
  (0, 0)	0.6324555320336759

提取的结果是sparse类型的特征矩阵,我们用type查看一下返回值类型:

new_data = tf.fit_transform(old_data)
print(type(new_data))

输出:

<class 'scipy.sparse._csr.csr_matrix'>

这种存储形式目的是「节省内存」,但不利于我们分析,接下来,我们把结果转化成数组形式。

三、转成数组

使用sparse矩阵的内置方法 toarray() 转成「数组」

from sklearn import feature_extraction

# 原始数据
old_data = [
    "I am your mather !"
    "I am your father !"
]

# 初始化
tf = feature_extraction.text.TfidfVectorizer()

# 提取特征
new_data = tf.fit_transform(old_data)
print(new_data.toarray())

输出:

[[0.63245553 0.31622777 0.31622777 0.63245553]]

这种格式看起来友好一些,接下来,我们来分析一下这个输出结果是什么意思。

四、特征名字

get_feature_names_out() 获取提取特征的「名字」

from sklearn import feature_extraction

# 原始数据
old_data = [
    "I am your mather !"
    "I am your father !"
]

# 初始化
tf = feature_extraction.text.TfidfVectorizer()

# 提取特征
new_data = tf.fit_transform(old_data)
print(new_data.toarray())
print(tf.get_feature_names_out())

输出:

[[0.63245553 0.31622777 0.31622777 0.63245553]]
['am' 'father' 'mather' 'your']

原始数据中的每一个单词,都被当做一个特征;

当然,字母和标点符号默认不统计,因为没有意义。

特征名字 [‘am’ ‘father’ ‘mather’ ‘your’] 和 提取的特征 [0.63245553 0.31622777 0.31622777 0.63245553] 是一 一 对应的。

意思是:特征词 am 的权重是 0.63245553,特征词 father 的权重是 0.31622777,…

五、转回原始数据

inverse_transform( ) 方法可以将提取的特征转换成原始数据:

from sklearn import feature_extraction

# 原始数据
old_data = [
    "I am your mather !"
    "I am your father !"
]

# 初始化
tf = feature_extraction.text.TfidfVectorizer()

# 提取特征
new_data = tf.fit_transform(old_data)
print(new_data.toarray())
# 转回原始数据
print(tf.inverse_transform(new_data))

输出:文章来源地址https://www.toymoban.com/news/detail-525373.html

[[0.63245553 0.31622777 0.31622777 0.63245553]]
[array(['father', 'mather', 'your', 'am'], dtype='<U6')]

到了这里,关于【机器学习】特征工程 - 文本特征提取TfidfVectorizer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习图像特征提取—SIFT特征提取原理及代码实现

    目录 1 SIFT简介 2 SIFT原理及特点 2.1 SIFT算法特点 2.2 SIFT特征检测 3 SIFT代码实现        SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。       SIF

    2024年02月06日
    浏览(45)
  • 机器学习---特征提取

    1.  手工特征 —— 图像 1.1  Harris 角点检测 角点的特性 :向任何方向移动变化都 很大 。 Chris_Harris 和 Mike_Stephens 早在 1988 年的文章 《A CombinedCorner and Edge Detector》 中就已经提出 了角点 检测的方法,被称为 Harris 角点检 测。他把这个简单的想法转换成了数学形式。将窗口向

    2024年01月19日
    浏览(38)
  • 机器学习图像特征提取—颜色(RGB、HSV、Lab)特征提取并绘制直方图

    目录 1 颜色特征 1.1 RGB色彩空间 1.2 HSV色彩空间 1.3 Lab色彩空间 2 使用opencv-python对图像颜色特征提取并绘制直方图 2.1 RGB颜色特征和直方图 2.2 HSV颜色特征和直方图 2.3 Lab颜色特征和直方图 RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以

    2024年02月08日
    浏览(59)
  • 机器学习基础之《特征工程(2)—特征工程介绍、特征抽取》

    一、什么是特征工程 机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ” 注:业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

    2024年02月13日
    浏览(38)
  • AI实践与学习1_NLP文本特征提取以及Milvus向量数据库实践

    随着NLP预训练模型(大模型)以及多模态研究领域的发展,向量数据库被使用的越来越多。 在XOP亿级题库业务背景下,对于试题召回搜索单单靠着ES分片集群普通搜索已经出现性能瓶颈,因此需要预研其他技术方案提高试题搜索召回率。 现一个方案就是使用Bert等模型提取试

    2024年01月24日
    浏览(47)
  • 机器学习:特征工程之特征预处理

    目录 特征预处理 1、简述 2、内容 3、归一化 3.1、鲁棒性 3.2、存在的问题 4、标准化 ⭐所属专栏:人工智能 文中提到的代码如有需要可以私信我发给你😊 什么是特征预处理:scikit-learn的解释: provides several common utility functions and transformer classes to change raw feature vectors into a r

    2024年02月12日
    浏览(54)
  • 机器学习重要内容:特征工程之特征抽取

    目录 1、简介 2、⭐为什么需要特征工程 3、特征抽取 3.1、简介 3.2、特征提取主要内容 3.3、字典特征提取 3.4、\\\"one-hot\\\"编码 3.5、文本特征提取 3.5.1、英文文本 3.5.2、结巴分词 3.5.3、中文文本 3.5.4、Tf-idf ⭐所属专栏:人工智能 文中提到的代码如有需要可以私信我发给你噢😊 特

    2024年02月12日
    浏览(42)
  • python机器学习——机器学习相关概念 & 特征工程

    监督学习:输入数据有特征有标签,即有标准答案 分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络 回归:线性回归、岭回归 标注:隐马尔可夫模型 (不做要求) 无监督学习:输入数据有特征无标签,即无标准答案 聚类:k-means 特征工程是将原始数据

    2024年02月11日
    浏览(50)
  • 机器学习特征工程学习笔记(一)

            机器学习特征工程是指在机器学习任务中对原始数据进行转换、提取和选择,以创建更有效、更具有表征能力的特征的过程。良好的特征工程可以显著提升模型的性能,并帮助解决数据中存在的各种问题。         以下是一些常见的机器学习特征工程技术:

    2024年02月11日
    浏览(45)
  • 【机器学习】小波变换在特征提取中的实践与应用

    在信号处理与数据分析领域,小波变换作为一种强大的数学工具,其多尺度分析特性使得它在特征提取中扮演着至关重要的角色。本文将从小波变换的基本原理出发,结合实例和代码,深入探讨小波变换在特征提取中的应用,并着重分析几种常见的基于小波变换的特征提取方

    2024年04月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包