什么是TF-IDF

TF-IDF(term frequency-inverse document frequency)词频-逆向文件频率。在处理文本时,如何将文字转化为模型可以处理的向量呢?TF-IDF就是这个问题的解决方案之一。字词的重要性与其在文本中出现的频率成正比(TF),与其在语料库中出现的频率成反比(IDF)。

TF

TF:词频。TF(w)=(词w在文档中出现的次数)/(文档的总词数)

IDF

IDF:逆向文件频率。有些词可能在文本中频繁出现,但并不重要,也即信息量小,如is,of,that这些单词,这些单词在语料库中出现的频率也非常大,我们就可以利用这点,降低其权重。IDF(w)=log_e(语料库的总文档数)/(语料库中词w出现的文档数)

TF-IDF

将上面的TF-IDF相乘就得到了综合参数:TF-IDF=TF*IDF

如何使用?

在文本处理中,我们经常遇到将一段话变成向量,以组成矩阵来输入到模型中处理。我们这时就可以用到TF-IDF来做。但是我们需要自己找语料库训练TF-IDF吗?看看sklearn.feature_extraction.text.TfidfVectorizer吧~~~

示例:

from sklearn.feature_extraction.text import TfidfVectorizer

cv=TfidfVectorizer(binary=False,decode_error='ignore',stop_words='english')
vec=cv.fit_transform(['hello world','this is a panda.'])#传入句子组成的list
arr=vec.toarray()

arr是一个2*3的矩阵,如下:

array([[ 0.70710678,  0.        ,  0.70710678],
[ 0. , 1. , 0. ]])

一行代表一个句子样本,这样的矩阵就可以放入模型中训练了。与TfidfVectorizer类似的还有CountVectorizer。与此相关的概念还有词袋,词集

最新文章

  1. Python笔记-集合,拷贝
  2. 提高生产性工具(四) - XML数据库的尝试
  3. C/C++相对论——C++中为什么要使用异常?
  4. 【C#】第1章 VS2015中C#6的新特性
  5. 如何下载某些 flash 在线视频 并使用ffmpeg下载分段并加密的m3u8视频流
  6. Cookies和Session的区别
  7. Linux学习新篇——常用命令和快捷键总结
  8. 查询MySQL中某个数据库中有多少张表
  9. ci框架学习告一段落,总结一下
  10. 虚函数&多态
  11. 深入理解Java虚拟机--下
  12. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器
  13. python自动化--文件处理
  14. JAVA生成数字0~9字母A~Z混合编码0000、0001...0009、000A...000Z、0010......
  15. Java编程思想_笔记_第二章_一切都是对象
  16. DirectX11 With Windows SDK--11 混合状态与光栅化状态
  17. 在过去五分钟内,TypeScript语言服务以外终止了5次
  18. ExFilePicker的使用 — 获取本地图片资源并用RecyclerView展示出来
  19. p151开映射札记
  20. Java程序员如何选择未来的职业路线

热门文章

  1. 极光推送Jpush功能(具体参照官网说明文档,注意此文红色字体)
  2. 一起学Python:字符串介绍
  3. hive 分区表与数据产生关联的三种方式
  4. Cordova-Android-Android target:not installed
  5. hexo主题选择和配置
  6. 全文检索(elasticsearch入门)
  7. express笔记
  8. Hamcrest 总结
  9. 黑科技 —— Type-C 接口与 USB3.1
  10. 科学的解决Http Token拦截器TokenInterceptor实现