TF-IDF? 这一篇就够了

【TF-IDF? 这一篇就够了】今天用朴素贝叶斯做文本分类的时候,需要把普通的文本转成计算机可以识别的特征向量, 这里用到了一种TF-IDF的统计方法,所以先解释一下这个:
什么是TF-IDF值呢?
TF-IDF 是一个统计方法,用来评估某个词语对于一个文件集或文档库中的其中一份文件的重要程度。
TF-IDF 实际上是两个词组 Term Frequency 和 Inverse Document Frequency 的总称,两者缩写为 TF 和 IDF,分别代表了词频和逆向文档频率。

  • 词频 TF计算了一个单词在文档中出现的次数,它认为一个单词的重要性和它在文档中出现的次数呈正比。
  • 逆向文档频率 IDF,是指一个单词在文档中的区分度。它认为一个单词出现在的文档数越少,就越能通过这个单词把该文档和其他文档区分开。IDF 越大就代表该单词的区分度越大。
所以 TF-IDF 实际上是词频 TF 和逆向文档频率 IDF 的乘积。这样我们倾向于找到 TF 和 IDF 取值都高的单词作为区分,即这个单词在一个文档中出现的次数多,同时又很少出现在其他文档中。这样的单词适合用于分类。
TF-IDF如何计算
首先我们看下词频 TF 和逆向文档概率 IDF 的公式。
TF-IDF? 这一篇就够了
文章图片

TF-IDF? 这一篇就够了
文章图片

为什么 IDF 的分母中,单词出现的文档数要加 1 呢?因为有些单词可能不会存在文档中,为了避免分母为 0,统一给单词出现的文档数都加 1。
TF-IDF=TF*IDF
TF-IDF 值就是 TF 与 IDF 的乘积, 这样可以更准确地对文档进行分类。比如“我”这样的高频单词,虽然 TF 词频高,但是 IDF 值很低,整体的 TF-IDF 也不高。
我在这里举个例子。
假设一个文件夹里一共有 10 篇文档,其中一篇文档有 1000 个单词,“this”这个单词出现 20 次,“bayes”出现了 5 次。“this”在所有文档中均出现过,而“bayes”只在 2 篇文档中出现过。我们来计算一下这两个词语的 TF-IDF 值。


针对“this”,计算TF-IDF的值:
TF-IDF? 这一篇就够了
文章图片

TF-IDF? 这一篇就够了
文章图片

所以TF-IDF=0.02*(-0.0414)=-8.28e-4。


针对“bayes”,计算 TF-IDF 值:
TF-IDF? 这一篇就够了
文章图片

TF-IDF? 这一篇就够了
文章图片

TF-IDF=0.005*0.5229=2.61e-3。


很明显“bayes”的 TF-IDF 值要大于“this”的 TF-IDF 值。这就说明用“bayes”这个单词做区分比单词“this”要好。
TF-IDF其实没那么复杂,实际上就是找到 TF 和 IDF 取值都高的单词作为区分,即这个单词在一个文档中出现的次数多,同时又很少出现在其他文档中。这样的单词适合用于分类。
如果对朴素贝叶斯文本分类感兴趣,移步:
??白话机器学习算法理论+实战之朴素贝叶斯

    推荐阅读