TF-IDF算法的全称叫 Term Frequency-Inverse Document Frequency 词频-逆文档频率算法

TF-IDF主要用来文章关键词抽取

当需要抽取一篇文章的关键词时候,往往我们最先想到的是计算文章的所有词的词频,文章越是和主题相关,出现主题相关的词越是多,词频也就越大,按照词频来排序,找出关键词top N。但是问题来了,像‘的’,‘我们’,‘地’等这些没什么实在意义的词在所有文章中出现的词频应该都是很高的,我们称这样的词称为停词。在计算top N的关键词频之前,我们需要过滤掉这些停词,那么根据前几个排名的关键词我们也就能得出一篇文章的大概主题在说什么。

TF=当前词出现在文章中烦人个数文章中总的词个数

TF=\cfrac{当前词出现在文章中烦人个数}{文章中总的词个数}
当然,以上说的只是从TF(词频)角度来分析,那我们接下来就要从TF-IDF来说了。

TF-IDF简单但强大。

在之前我们对于停词是直接采取过滤的方案,有没有方法自从让那些词频又高但又不重要的停词排到后面呢,这儿就用到了IDF(逆文档频率)了。IDF的计算公式如下:

IDF=log文档总个数包含当前词的文档个数+1

IDF=log\cfrac{文档总个数}{包含当前词的文档个数+1}

从表达式中我们可以看出,包含当前词的文档个数越多,IDF的值越小,说明该词越不重要。反之,该词越重要。简单打个比方,像‘的’‘地’这些停词几乎在每一篇文章中都有出现,那么她的IDF就接近0。
IDF更像是给TF赋的一个权重,故TF-IDF的计算公式为:

TF−IDF=TF∗IDF

TF-IDF=TF*IDF

所以用TF-IDF来抽取文章关键词的方法就是先计算每个词在文章中的词频(TF),然后计算词的权重(IDF),最后将TF,IDF相乘再排序,得到top N个关键词,也就是文章的关键词了。

计算出文章的关键词后,我们就可以来计算两篇文章的相似度了,这儿相似度我们可以用余弦相似度。
余弦相似度公式:

α1=[x1,y1]

\alpha_{1}=[x_{1},y_{1}]

α1=[x2,y2]

\alpha_{1}=[x_{2},y_{2}]

COSΘ=x1∗x2+y1∗y2x21+x22−−−−−−√+y21+y22−−−−−−√

COS\Theta=\cfrac{x_{1}*x_{2}+y_{1}*y_{2}}{\sqrt{x_{1}^{2}+x_{2}^{2}}+\sqrt{y_{1}^{2}+y_{2}^{2}}}

具体步骤如下:
1、分词
2、抽取每篇文章的前30个关键词,用TF-IDF算法实现。
3、运动词袋模型(bag of words)计算每篇文章的特征向量
4、计算余弦相似度,值越大表明文章约相似。

TF-IDF算法总结相关推荐

  1. 关键词提取算法—TF/IDF算法

    关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...

  2. 随笔_从《芳华》影评到TF/IDF算法

     前两天看好多<芳华>的影评说:为什么好人没好报?于是感叹一堆世态炎凉,人性丑陋什么的.我觉得这问题是:为什么中央空调(对谁都温暖)往往不被看好.  先说说TF/IDF算法,这是一种信息处 ...

  3. 搜索引擎:文本分类——TF/IDF算法

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

  4. tfidf算法 python_tf–idf算法解释及其python代码实现(下)

    tf–idf算法python代码实现 这是我写的一个tf-idf的简单实现的代码,我们知道tfidf=tf*idf,所以可以分别计算tf和idf值在相乘,首先我们创建一个简单的语料库,作为例子,只有四 ...

  5. tf/idf_Neo4j:带密码的TF / IDF(和变体)

    tf/idf 几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wik ...

  6. Neo4j:带密码的TF / IDF(和变体)

    几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wikipedia的 ...

  7. scitkit-learn:计算机科学论文的TF / IDF和余弦相似度

    几个月前,我下载了数千篇计算机科学论文的元数据,这样我就可以尝试编写一个迷你推荐引擎来告诉我接下来应该读什么论文. 由于我没有任何人可以阅读每篇论文的数据,因此排除了协作过滤方法,所以我认为我可以尝试 ...

  8. 文本特征抽取的向量空间模型(VSM)和TF/IDF方法

    文本特征抽取 两组小说,一组是爱情的,另一组是科幻的.我们能否用支持向量机训练一个模型,用来识别小说类型呢? 这个并不容易.因为支持向量机这类机器学习算法只能接受数学里面的向量作为输入.如果用它来做文 ...

  9. tf-idf词向量和bow_使用词袋Bow和TF IDF进行多标签分类

    tf-idf词向量和bow 1.加载数据 (1. Load the data) For this study, we are using Kaggle data for Toxic Comment C ...

  10. ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码)

    ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码) 目录 单个评价指标各种框架下实现 1 ...

最新文章

  1. 设备漏电对计算机影响,电脑机箱漏电对电脑有影响吗
  2. 35岁,一个尴尬的年纪
  3. 【leetcode】Intersection of Two Linked Lists
  4. 怎么能方便的进行数据库存储过程的版本管理?
  5. Webstorm常用快捷键备忘(Webstorm入门指南)
  6. mysql 全连接问题_mysql 解决全连接问题
  7. dotnet core开发体验之开始MVC
  8. Java中List排序的3种方法!
  9. linux下打开、关闭tomcat,实时查看tomcat运行日志
  10. 计算机网络技术实验,计算机网络技术实验一
  11. 检测远程主机上的某个端口是否开启——telnet命令
  12. 2021年网络推广品牌营销渠道平台大全
  13. 如何设置迪文DGUS屏的字体效果?
  14. 我见过最清晰的–理解梯度,散度,旋度
  15. gogo系统更新无服务器,gogo云服务器
  16. 仅用10行Python代码,便可以坐拥后宫3000
  17. 运维自动化之ANSIBLE
  18. 计算机课的底纹在哪,2017计算机二级MSOffice考试边框与底纹的设置
  19. 在线播放音乐AVPlayer的使用
  20. 计算机网络(期末复习5、6章)

热门文章

  1. java百度地图坐标_腾讯地图坐标与百度地图坐标互相转换(PHP版、Java版)
  2. Bzoj 3654 图样图森波 题解
  3. MySQL8pdf_Mysql8.0中文参考手册 中英文chm+pdf版
  4. 国外硕博论文下载网址资源
  5. C语言 动态内存分配
  6. 小鑫の日常系列故事(一)——判断对错 (sdut oj)
  7. Python初学者必刷的五个项目,你做过几个?
  8. 如何用计算机做文档,在wps上怎么做文档_在wpsoffice上怎么做文档的图文步骤
  9. 计算机课程设计答辩评语,课程设计评语模板.doc
  10. samba服务端配置和客户端使用【含windows共享文件到linux】