美文网首页NLP
TF-IDF的简单推导过程

TF-IDF的简单推导过程

作者: 方帮信 | 来源:发表于2019-08-03 18:54 被阅读0次

TF-IDF的推导过程,因为很少找到比较详细的通俗易懂的, 所以这里做了一下梳理:

熵:

为什么做了这个铺垫?因为信息熵的提出,解决了信息的量化的问题。

下面对TF-IDF做详细介绍:

TF:词频,某个词,出现在词所在文档的次数,这里简单理解为词出现的次数越多,越重要,当然排除停用词,就是“的”,“了”,这一类型的修饰词。

IDF:逆文档频率,log(文档总数/出现某个词的文档总数),出现的次数越多,分母就越大,取对数的值就越小,说明这个词在所有文章中的重要程度就越小

说明:词的重要性,随着在文档中出现的次数增多变大,随着在所有文档中的出现次数增加而变小

推导过程:

(1)

(2)

(3)

(4)

(5)

(6)

实际上

上面这个公式能不能看懂主要取决于对信息论的掌握程度:

首先需要说明的是上述的这个6个公式是来自于《数学之美》这本书中。

场景的介绍:

一个查询(Query)中每一个关键词(Key word)w的权重应该反映这个词对查询来讲提供了多少信息。一个简单的办法就是用每个词的信息量来作为它的权重。

对这句话进行拆解,拆解出公式中会用到的元素。

w:在这句话中的说明是指,关键词

权重:w对query来说提供了多少信息,就是w在这个查询中的信息量

N:整个语料库的大小

信息量:信息量的概念来源于信息论,一个随机事件的自信息量定义为其出现概率对数的负值

这种情况下,这个词相对于query的权重就是公式(1)中的I(x),要注意的是,这里用的是信息熵的概念,而不是自信息量的概念。信息熵表征的是信息的平均不确定程度。

公式(2)对于公式(1)来说, 只是消去了N,原因是N,在这里指的是整个语料库的大小,是个可以省略的常数,我们知道,常数在概率的运算中,可以直接忽略掉,对事件发生概率的分布没有影响。

公式(3)是对这个场景进行的理想假设:

a.每个文献大小基本相同,均为M个词,那么M=N/D,其中N是这个语料库的大小,那么D在这里就是指文献的数量TF(w)的求和,就是整个语料中所有词的词频的总和,简单来说就是D个文档中,每个文档有M个词,总共有D*M个词,也就是这里的N,N就是D个文档中所有的词,那么TF(w)求和,就是w个词,每个词的词频是TF(w),同样是所有的词的总数

b.第二个假设在《数学之美》中是这么描述的:一个关键词在文献一旦出现,不论次数出现多少,贡献都等同,这样一个词要么在一个文献中出现c(w)=TF(w)/D(w)次,要么是零。注意c(w)<M,那么从公式(2)就能得到公式(4)

对于b假设理解起来,可能稍微有点绕,但是实际上简单的说就是,假设在每个文档中某个词的词频是相等的,要么是c,要么是0,c(w)是文档中出现的词频,TF(w)是整个语料库中w的词频,D(w)是出现w词的文档数,实际上这个假设,就是为了简单计算,词在单个文献和所有文献中的出现频率,将复杂的计算过程简化了而已。横向比较进行了一定程度的简化。小于M的条件是也比较容易解释,因为在某一个文档中某个词的词频,必须要小于a假设中的每个文献均为M个词的假设。

在公式(5)的换算中,注意到TF(w)log(D/D(w))的转换,转换为了TF-IDF(w),这其中又用到了一个概念。就是Karen Sparck Jones提出的:IDF=log(D/Dw)

经过换算后得到公式(6)就得到了TF-IDF的最终结论:

一个词的信息量I(w)越多,TF-IDF的值越大,同时w命中的文献中w平均出现的次数越多,第二项就越小,TF-IDF也越大

这就是对TF-IDF最浅显的解释了,另外还有一些TF-IDF的相关的改进算法,持续更新

相关文章

  • TF-IDF的简单推导过程

    TF-IDF的推导过程,因为很少找到比较详细的通俗易懂的, 所以这里做了一下梳理: 熵: 为什么做了这个铺垫?因为...

  • 算法推导之——递归最小二乘法

    上面是用于系统辨识时的推导过程,用于信道估计时候的推导过程如下

  • 2021-03-25

    两个个简单的思考 在学习数学的过程中总是刻意的回避 推导类的问题 其他的还好 一到推导类的问题 就犯困 大...

  • 强化学习二 MDP

    详细推导过程

  • Spark-特征抽取(TF-IDF)

    mac单机简单实现一个Spark-特征抽取(TF-IDF)。 TF-IDF原理: 词频TF(t,d)是某个词t在文...

  • Python语法学习八之强化学习

    一、列表推导式 所谓的列表推导式,就是指的轻量级循环创建列表 1-1、简单方式 1-2、循环的过程中使用if 1-...

  • AdaBoosting推导过程

    一、AdaBoosting算法 Adaboosting中的A是adaptive的意思,所以AdaBoosting表...

  • BP推导过程

    Backpropagation 算法的推导与直观图解 摘要 本文是对 Andrew Ng 在 Coursera 上...

  • 注重“推导”过程

    一般情况下,当你和别人表达一件事情的时候,如果只说你总结出来的结论,就是无效沟通。 就像上学的时候老师讲一道数学题...

  • 最大后验推导L2(Ridge)回归

    序 本次记录最大后验推导L2回归的推导过程 极大似然与最大后验的区别 推导过程 转载注明:https://www....

网友评论

    本文标题:TF-IDF的简单推导过程

    本文链接:https://www.haomeiwen.com/subject/bqhsdctx.html