TF-IDF

TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

类:sklearn.feature_extraction.text.TfidfVectorizer

1.TfidfVectorizer语法语法

•TfidfVectorizer(stop_words=None,…)

•返回词的权重矩阵

•TfidfVectorizer.fit_transform(X,y)

•X:文本或者包含文本字符串的可迭代对象

•返回值:返回sparse矩阵

•TfidfVectorizer.inverse_transform(X)

•X:array数组或者sparse矩阵

返回值:转换之前数据格式

•TfidfVectorizer.get_feature_names()

•返回值:单词列表

2.例子:,抽取中文文本特征查看重要程度

​
from sklearn.feature_extraction.text import TfidfVectorizer
import jiebadef cutword():content1 = jieba.lcut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,""所以每个人不要放弃今天。")content2 = jieba.lcut("我们看到的从很远星系来的光是在几百万年之前发出的,""这样当我们看到宇宙时,我们是在看它的过去。")content3 = jieba.lcut("如果只用一种方式了解某样事物,你就不会真正了解它。""了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。")# 把分词后的列表转换成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1, c2, c3def tfidvec():""":return:"""c1, c2, c3 = cutword()tf = TfidfVectorizer()data = tf.fit_transform([c1, c2, c3])print(tf.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':tfidvec()​

程序运行结果:   打印出来的数组里面额数据就可以代表重要程度

['一种', '不会', '不要', '之前', '了解', '事物', '今天', '光是在', '几百万年', '发出', '取决于',
'只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '所以', '放弃', '方式', '明
天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系',
'过去', '这样']
[[0.         0.         0.21821789 0.         0.         0.0.43643578 0.         0.         0.         0.         0.0.21821789 0.         0.21821789 0.         0.         0.0.         0.21821789 0.21821789 0.         0.43643578 0.0.21821789 0.         0.43643578 0.21821789 0.         0.0.         0.21821789 0.21821789 0.         0.         0.        ][0.         0.         0.         0.2410822  0.         0.0.         0.2410822  0.2410822  0.2410822  0.         0.0.         0.         0.         0.         0.         0.24108220.55004769 0.         0.         0.         0.         0.24108220.         0.         0.         0.         0.48216441 0.0.         0.         0.         0.         0.2410822  0.2410822 ][0.15698297 0.15698297 0.         0.         0.62793188 0.470948910.         0.         0.         0.         0.15698297 0.156982970.         0.15698297 0.         0.15698297 0.15698297 0.0.1193896  0.         0.         0.15698297 0.         0.0.         0.15698297 0.         0.         0.         0.313965940.15698297 0.         0.         0.15698297 0.         0.        ]]

4.TF-IDF结果怎么样计算的来?

(1) tf: term frequency(统计词的频率)

   (2)idf:   逆文档频率  inverse document frequency 

                公式 idf = log(总文档数量/该词出现的文档数量)

最后的值    是由  tf  *  idf (重要性程度)

机器学习(4.文本数据的特征抽取(第二种TfidfVectorizer(TF-IDF)))相关推荐

  1. 机器学习(3.文本数据的特征抽取(第一种))

    文本特征抽取 作用:对文本数据进行特征值化 类:sklearn.feature_extraction.text.CountVectorizer 1.CountVectorizer语法 • CountV ...

  2. c++大文本比较_Excel – 将文本转换为数值,第二种方法会的请举左手

    工作中经常收到的数据是从系统直接导出的,有的数据看上去是数字,其实是文本格式. 这种数字在 Excel 看来就是个文本,无法参与任何计算分析.所以首先就要把它们转换成真正的数值. 案例: 下图 1 中 ...

  3. NLP中文本数据扩增的几种方法【一】单词替换

    和图像数据增强不同,NLP中文本数据增强比较少见.图像的一些增强操作,如图像旋转.灰度处理等等都不会改变图像的语义,语义不变变换的存在使得增广成为计算机视觉研究中必不可少的工具.但在NLP中进行数据增 ...

  4. 机器学习入门-文本数据-使用聚类增加文本的标签属性

    通过对特征做一个kmeans聚类,将聚类的结果做为文本的标签值,可以使得样本的特征更多 我们从sklearn.cluster中导入Kmeans建立模型进行聚类 代码: 第一步:使用Dataframe格 ...

  5. 《大数据之路:阿里巴巴大数据实践》第二篇 数据模型篇-读书笔记

    目录 8.大数据领域建模综述 8.1 为什么需要数据建模 8.2 关系数据库系统和数据仓库 8.3 从OLTP和OLAP系统的区别看模型方法论的选择 8.4 典型的数据仓库建模方法论 8.4.1 ER ...

  6. 文本数据的机器学习自动分类方法

    来源:http://blog.csdn.net/jdbc/article/details/50586042 本文为第一部分,着重介绍文本预处理以及特征抽取的方法. 随着互联网技术的迅速发展与普及,如何 ...

  7. 机器学习(2.sklearn(Scikit-learn)库、字典数据的特征抽取)

    sklearn(全称Scikit-learn库介绍) •Python语言的机器学习工具 •Scikit-learn包括许多知名的机器学习算法的实现 •Scikit-learn文档完善,容易上手,丰富的 ...

  8. 03_数据的特征抽取,sklearn特征抽取API,字典特征抽取DictVectorizer,文本特征抽取CountVectorizer,TF-IDF(TfidfVectorizer),详细案例

    数据的特征抽取 A:特征抽取实例演示 通过演示得出结论: 特征抽取针对非连续型数据 特征抽取对文本等进行特征值化 注:特征值化是为了计算机更好的去理解数据. B:sklearn特征抽取API skle ...

  9. 【数据科学】7种数据类型:思考机器学习数据类型的更好方法

    目录 目前的状态 史蒂文斯的测量类型学 7种机器学习的主要数据类型 1.无用的 2.形同虚设 3.序数 4.二进制 5.计数 6.时间 7.间隔 这些是正确的七个类别吗? 我如何记住这7种数据类型? ...

最新文章

  1. 年后准备跳槽可以看看
  2. 策略模式和php实现
  3. 2020年阿里大数据一面面经,看看你还有啥不知道的?
  4. Windows下Mysql 的安装和卸载
  5. Docker最全教程之树莓派和Docker(十六)
  6. winform中textbox属性Multiline=true时全选
  7. 如何在手机上安装Ubuntu Touch 13.10
  8. php 滑动 图片,JQuery图片滑动
  9. 圣诞节平面设计师排版|首选手写字体素材,简单但非常好用。
  10. python day - 19 抽象类 接口类 多态 封装
  11. 桌面计算机图标无法显示属性,Win7系统桌面图标显示异常的解决方法大全
  12. 战争调度(动态规划、记忆化搜索)
  13. 作为iOS开发者,你不可错过的资源
  14. arcgis for js4.x自定义图例位置添加到地图并导出
  15. PyTorch nn.CrossEntropyLoss() dimension out of range (expected to be in range of [-1, 0], but got 1)
  16. 海量资源!开发人员成功转行数据科学必备清单
  17. g4600支持服务器内存吗,Intel奔腾G4560和G4600哪个好?秒懂G4560和G4600区别 (全文)
  18. 你准备会计初级并通过考试用了多久?
  19. 串口软件与uPs测试,单路串口服务器在UPS动环监控解决方案你可了解?
  20. zabbix监控方式(02) - zabbix通过IPMI监控硬件环境(温度和风扇)

热门文章

  1. Invalid host: lb://xxx_xxx
  2. Eureka出现No instances available for xxx的五种解决方案(不能解决你骂我)
  3. Java判断字符串既不等于A也不等于B
  4. C/C++、JAVA、Python简单运行速度实验与分析
  5. [ZJOI2009]假期的宿舍
  6. 最长上升子序列(Longest increasing subsequence)
  7. arcscene如何显示标注_CAD制图初学入门:CAD制图软件中如何添加多重标注?
  8. Hive 1.1.1 启动错误
  9. Android 打造异常崩溃捕获工具
  10. AQS理解之三,由刚才写的锁转变成一个公平锁