TF-IDF:Term Frequency-Inverse Document Frequency(词频-逆文档频度):主要用来估计一个词在一个文档中的重要程度。

符号说明:

文档集:D={d1,d2,d3,..,dn}

nw,d:词w在文档d中出现的次数

{wd}:文档d中的所有词的集合

nw:包含词w的文档数目

1、词频 TF的计算公式如下:

2、逆文档频率IDF计算公式:

3、综合1和2,得到TF-IDF:

//w关于d的词频越大,包含w的文档数越少,则词w与文档d的TF-IDF值就越大。TF-IDF值越大,说明词w与文档d的相关性越高。

可以将IDF看做是词频TF的权值,当一个词在越多的文档中出现时,词的权重就越小。比如像“的,是,等”等词基本在每个文档都有出现(这时n=nw,)则其值IDF为0。故而达到了减小其权值的目的。

一些扩展:

1、获取一个文档的关键字的方法:

  1)首先提取出文档中所有的词;

  2)然后将每个词都计算与当前文档的TF-IDF值

  3)再将该值从大到小排序;

  4)最后取出前k个TF-IDF值最大的词即为关键字。

2、从一组文档中获取与关键字w最相关的文档

  计算关键字w与每个文档的TF-IDF值,其值最大的即为最相关的文档。

  

  假如有k个词w1,w2,..,wk个词,计算与这K个词最相关的文档

  

3、计算两个文档之间的相似度

首先将两个文档d1,d2中的词求并集,得到一个新的词集合W,然后将文档d1,d2与词集合W中的每一个词就算相似度,最后将两个文档的相似度计算余弦距离,即得到两个文档的相似度。

具体过程如下:

1)计算文档d1,d2两个文档的词的并集,

  

  2)分别计算W中每个词与d1,d2之间的相似度。得到V1,V2。

  3)使用余弦公式,计算V1,V2之间的余弦距离:

  

  余弦距离越大,则两个文档的相似度越高,反之越低。

参考文献:

[1] http://blog.csdn.net/itplus/article/details/20958185

[2] http://www.cnblogs.com/biyeymyhjob/archive/2012/07/17/2595249.html

TF-IDF算法 笔记的更多相关文章

  1. tf–idf算法解释及其python代码实现(下)

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

  2. tf–idf算法解释及其python代码实现(上)

    tf–idf算法解释 tf–idf, 是term frequency–inverse document frequency的缩写,它通常用来衡量一个词对在一个语料库中对它所在的文档有多重要,常用在信息 ...

  3. 55.TF/IDF算法

    主要知识点: TF/IDF算法介绍 查看es计算_source的过程及各词条的分数 查看一个document是如何被匹配到的         一.算法介绍 relevance score算法,简单来说 ...

  4. Elasticsearch由浅入深(十)搜索引擎:相关度评分 TF&IDF算法、doc value正排索引、解密query、fetch phrase原理、Bouncing Results问题、基于scoll技术滚动搜索大量数据

    相关度评分 TF&IDF算法 Elasticsearch的相关度评分(relevance score)算法采用的是term frequency/inverse document frequen ...

  5. tf–idf算法解释及其python代码

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

  6. 25.TF&IDF算法以及向量空间模型算法

    主要知识点: boolean model IF/IDF vector space model     一.boolean model     在es做各种搜索进行打分排序时,会先用boolean mo ...

  7. Elasticsearch学习之相关度评分TF&IDF

    relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度 Elasticsearch使用的是 term frequency/inverse doc ...

  8. 基于TF/IDF的聚类算法原理

        一.TF/IDF描述单个term与特定document的相关性TF(Term Frequency): 表示一个term与某个document的相关性. 公式为这个term在document中出 ...

  9. 信息检索中的TF/IDF概念与算法的解释

    https://blog.csdn.net/class_brick/article/details/79135909 概念 TF-IDF(term frequency–inverse document ...

  10. 文本分类学习(三) 特征权重(TF/IDF)和特征提取

    上一篇中,主要说的就是词袋模型.回顾一下,在进行文本分类之前,我们需要把待分类文本先用词袋模型进行文本表示.首先是将训练集中的所有单词经过去停用词之后组合成一个词袋,或者叫做字典,实际上一个维度很大的 ...

随机推荐

  1. 转载 C++学习第9篇---类和类的封装

    http://blog.csdn.net/zuheyawen/article/details/7324340

  2. kafka configuration

    http://kafka.apache.org/08/configuration.html

  3. filters

    http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/admin_hbase_filtering.h ...

  4. nat和打洞

    http://michankong.blog.51cto.com/1464983/761270 可能有点乱,下面以故事的形式叙述一下这个情景. 人物:A(男) NAT_A(A家接线员) B(女) NA ...

  5. jsp如果超过字数就变成...

    <script> var infoTitle = '<ww:property value="infoTitle"/>'; if(infoTitle.leng ...

  6. Ubuntu 12.04 中文输入法

    Ubuntu 12.04 中文输入法 [日期:2012-07-28] 来源:Linux社区  作者:lqhbupt [字体:大 中 小]   Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/ ...

  7. base库插件---拖动

    /** * Created by Administrator on 2014/6/5 0005. Base-drag 基于Base库的拖拽插件 tags为你要拖拽的元素参数, 数组形式传入 */ $( ...

  8. .net task

    Task 是4.0里面带来的一个很好用的线程类,后台也是由线程池控制的 有时间是里面的方法得好好看看. 今天学到一个新的. 当需要两个操作并行执行,然后再线性执行时.可以先 Task1 Task2执行 ...

  9. Mysql 技巧

    order by条件: SELECT * FROM tablename WHERE id_one=27 OR id_two=27 ORDER BY CASE WHEN id_one=27 THEN t ...

  10. 修改SqlServer字段长度

    Alter Table  [JHEMR].[dbo].[PT_ERROR_LOG]  ALTER COLUMN  MESS  nvarchar(1000)