首先引用一下百度百科里的解释:
TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆向文件频率(Inverse Document Frequency)。
最近学习了阮一峰先生关于TF-IDF算法的讲解,受益匪浅,特记录一下学习的过程。
TF,即某个词在某篇文章中出现的总次数,但出现的多的词,不一定是最重要的,如之乎者也类的<是>,<也>,<的>,<好>等,这类词不能帮助我们去找到文章的旨意,是需要滤除掉的词,被称为“停用词”。
此外,在一篇文章中,出现次数一样的词,重要性也不一定一样,如在一篇介绍感冒和发烧是否相关的医学类文献里,可能“感冒”、“发烧”、“生病”出现的频次是一样的,但是“生病”明显不能用于探索该文献的主旨,因此重要性程度,远小于其他2个词。
因此,需要引入一个重要性调整参数,用于辨别某个词是否为常用词。一个很好解释的场景是:如果一个词特别少见,但在某篇文章中出现的次数非常多,那么它就最能体现出这篇文章的特征,被认为是该篇文章的关键词。
用统计学的语言表述,就是在词频的基础上,对每一个词分配一个“重要性”权重。
在上述这个场景中,之乎者也类的<是>,<也>,<的>,<好>的需要分配一个极小权重,较常见的“生病”需要分配一个较小的权重,而较少出现的词“感冒”,“发烧”(这两个词也较为常见,用在这里只是说明其相对于其他停用词,和特常见的词,显得比较稀缺)。这样一种权重概念即称为 IDF (逆文档频率)。
而TF-IDF是词频 与 逆文档频率的 乘积,即:
TF-IDF = TF * IDF
其中:
TF = 一个词在文章中的出现次数 / 文章的总词数
IDF = log(语料库中的文档总数 / 某个词在某篇文章中出现的次数)
注:
-----------------------------------------------------
语料库:
指经科学取样和加工的大规模电子文本库。借助计算机分析工具,研究者可开展相关的语言理论及应用研究。
由此可见,TF-IDF的大小与 “一个词在文章中的出现次数” 成正比,与 其“在语料库中的存在次数”成反比。
参考自:
http://www.ruanyifeng.com/blog/2013/03/tf-idf.html
http://www.ruanyifeng.com/blog/algorithm/ -- 算法讲解