关键字提取算法TF-IDF

2021年09月15日 阅读数:1
这篇文章主要向大家介绍关键字提取算法TF-IDF,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

在文本分类的学习过程当中,在“如何衡量一个关键字在文章中的重要性”的问题上,遇到了困难。在网上找了不少资料,大多数都提到了这个算法,就是今天要讲的TF-IDF。面试

总起算法

  TF-IDF,理解起来至关简单,他实际上就是TF*IDF,两个计算值的乘积,用来衡量一个词库中的词对每一篇文档的重要程度。下面咱们分开来说这两个值,TF和IDF。机器学习

TF学习

  TF,是Term Frequency的缩写,就是某个关键字出现的频率,具体来说,就是词库中的某个词在当前文章中出现的频率。那么咱们能够写出它的计算公式:优化

  

 

  其中:搜索引擎

    TF(i,j):关键词j在文档i中的出现频率。spa

    n(i,j):关键词j在文档i中出现的次数。blog

  

  好比,一篇文章一共100个词汇,其中“机器学习”一共出现10次,那么他的TF就是10/100=0.1。索引

  这么看来好像仅仅是一个TF就能用来评估一个关键词的重要性(出现频率越高就越重要),其实否则,单纯使用TF来评估关键词的重要性忽略了经常使用词的干扰。经常使用词就是指那些文章中大量用到的,可是不能反映文章性质的那种词,好比:由于、因此、所以等等的连词,在英文文章里就体现为and、the、of等等的词。这些词每每拥有较高的TF,因此仅仅使用TF来考察一个词的关键性,是不够的。这里咱们要引出IDF,来帮助咱们解决这个问题。文档

IDF

  IDF,英文全称:Inverse Document Frequency,即“反文档频率”。先看什么是文档频率,文档频率DF就是一个词在整个文库词典中出现的频率,就拿上一个例子来说:一个文件集中有100篇文章,共有10篇文章包含“机器学习”这个词,那么它的文档频率就是10/100=0.1,反文档频率IDF就是这个值的倒数,即10。所以得出它的计算公式:

 

其中:

  IDF(i):词语i的反文档频率

  |D|:语料库中的文件总数

  |j:t(i)属于d(j)|出现词语i的文档总数

  +1是为了防止分母变0。

 

  因而这个TF*IDF就能用来评估一个词语的重要性。

  仍是用上面这个例子,咱们来看看IDF是怎么消去经常使用词的干扰的。假设100篇文档有10000个词,研究某篇500词文章,“机器学习”出现了20次,“并且”出现了20次,那么他们的TF都是20/500=0.04。再来看IDF,对于语料库的100篇文章,每篇都出现了“并且”,所以它的IDF就是log1=0,他的TF*IDF=0。而“机器学习”出现了10篇,那么它的IDF就是log10=1,他的TF*IDF=0.04>0,显然“机器学习”比“并且”更加剧要。

 

总结

  这算法看似简单,实际上在SEO搜索引擎优化啊,文本分类方面用的挺多的,面试时也经常做为信息论知识储备来出题。