目录
一、TF-IDF 是什么
TF-IDF,即 Term Frequency-Inverse Document Frequency,翻译过来就是词频 - 逆文档频率 ,是一种在信息检索与文本挖掘领域常用的加权技术。简单来说,它是一种统计方法,用于评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
TF-IDF 由两部分组成:词频(TF,Term Frequency)和逆文档频率(IDF,Inverse Document Frequency)。
词频(TF)很好理解,就是某个词在文档中出现的次数,它衡量的是某个词在当前文档中的重要性。例如,在一篇科技类的文章中,“人工智能” 这个词出现了 10 次,那它在这篇文档中的词频就是 10(当然,实际计算时可能会进行归一化处理,比如除以文档的总词数,以消除文档长度对词频的影响) 。计算公式为:\(TF(t,d)=\frac{n_{t,d}}{\sum_{t^{'} \in d}n_{t^{'},d}}\),其中\(n_{t,d}\)是词 t 在文档 d 中出现的次数,分母是文档 d 中所有词的出现次数之和。
逆文档频率(IDF)稍微复杂一点,它衡量的是某个词在整个文档集合中的重要性。计算方式是总文档数除以包含该词的文档数,然后取对数。比如,在一个包含 1000 篇文档的语料库中,“的” 这个词在 900 篇文档中都出现了,而 “量子计算” 只在 10 篇文档中出现。那么 “的” 的逆文档频率就会很低,因为它在很多文档中都频繁出现,说明它是一个很常见的词,对区分文档的作用不大;而 “量子计算” 的逆文档频率就会很高,因为它只在少数文档中出现,更能体现这些文档的独特性 。IDF 的计算公式为:\(IDF(t)=\log\frac{|D|}{|{d \in D:t \in d}|}\),其中\(|D|\)是语料库中的文档总数,\(|{d \in D:t \in d}|\)是包含词 t 的文档数量。
最后,TF-IDF 就是将 TF 和 IDF 相乘,得到一个综合的词语权重 ,公式为:\(TF-IDF(t,d)=TF(t,d)\times IDF(t)\) 。这个权重值越高,说明该词在这篇文档中越重要。例如,在一篇关于机器学习的论文中,“梯度下降” 这个词可能出现的次数不是特别多,但由于它只在少数关于机器学习的专业文档中出现,所以它的 TF-IDF 值会比较高,能够很好地代表这篇论文的主题。
二、工作原理大揭秘
2.1 词频(TF):文本中的 “出镜率”
词频(TF),作为 TF-IDF 的重要组成部分,就像是一个 “出镜率统计器”,精准衡量着每个词在文档中的出现频繁程度 。简单来说,它就是某个词在文档中出现的次数。例如,在一篇关于美食的文章中,“美食” 这个词出现了 15 次,那它在这篇文档中的词频就是 15。不过,直接使用词频有个小问题,如果文档 A 有 100 个词,“美食” 出现 10 次;文档 B 有 1000 个词,“美食” 也出现 10 次。仅看词频,会觉得它们对文档的重要性一样,但显然在短文档 A 中,“美食” 更关键。所以,为了让词频能公平地反映词在不同长度文档中的重要性,通常会用词频除以文章的总词数进行归一化处理 。这样一来,就能更准确地评