通俗解释TF-IDF

TF-IDF

一篇文档中出现的每个词都有其重要性,当我们快速阅读一篇文章的时候,重要的词可以让我们马上理解这篇文章大致和什么相关,举个最经典的例子,如果扫描文章多次遇见“蜜蜂”或者“养殖”,那这两个词对于这篇文章的理解就不可忽视,而不重要的词例如“的”或者“了”,对我们理解文章内容就几乎没有帮助,那么如何衡量每一个词的重要性呢?

首先直接上公式如下
 tf  i d f ( t , d , D ) = t f ( t , d ) ×  idf  ( t , D ) \text { tf } i d f(t, d, D)=t f(t, d) \times \text { idf }(t, D)
之后逐个解释公式中的项

  • t代表待衡量的词,d代表这个词所在的文档,D代表所有文档的集合

  • tf:代表词频,也就是t这个词,在文档d中,到底出现了多少次

  • idf:代表逆文档频率,感性理解就是如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需的关键词。这样就很容易理解idf会给少见的词较大权重,给常见的词较小权重,其表达式如下

i d f ( t , D ) = log N { d D : t d } i d f(t, D)=\log \frac{N}{|\{d \in D: t \in d\}|}

这里,N代表文档总数,分母就代表:包含该词的文档数+1(当前词所在文档),加1的话得到的idf值(也就是权重值)就可以低至0,同时也避免了分母是0。上面公式不直观,再看下面的表达式
逆文档频率(IDF) = l o g ( 语料库中包含的总文档数 包含该词的总文档数+1 ) \text {逆文档频率(IDF)}=log(\frac{\text {语料库中包含的总文档数}}{\text {包含该词的总文档数+1}})
为了便于记忆,需知IDF是针对文档而言的,是要通过统计多少个文档里面有这个词来衡量这个词的独特性。

于是,回过头看TF-IDF,易知下面两个知识点

  • TF-IDF值很高:这个词在这篇文档中出现得很频繁,对文档语义贡献程度可能很高
  • TF-IDF值很低:这个词有可能在这篇文档中出现得不频繁,也有可能这个词出现在太多文档里面了(太常见了)

所以,如果想快速看一篇文章可能写了些什么东西,就可以算出每个词的TF-IDF值然后降序排列,观察前几个词就能得到有用的信息。同时,TF-IDF也有应用于句表征任务(通过给词向量加权求和算出一句话的句向量)中给每个词表征(词向量)加权,这里的权重值就可以由TF-IDF值得来。

发布了33 篇原创文章 · 获赞 45 · 访问量 2514

猜你喜欢

转载自blog.csdn.net/nstarLDS/article/details/104463517