【机器学习】特征工程 - 文本特征提取TfidfVectorizer_feature_names = vectorizer(1)

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


输出:



(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://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值