TF-IDF (词频-逆文档频率) 是一种统计测量方法,用于评估一个词在文档中相对于文档集合(语料库)的重要性。它结合了两个指标:词频 (TF),它测量一个词在文档中出现的频率,以及逆文档频率 (IDF),它惩罚在许多文档中频繁出现的词。 TF-IDF 分数是这两个值的乘积,突出显示特定文档特有的词。 这种方法广泛应用于信息检索、文本挖掘和搜索引擎中,以对相关性进行排名。
要计算 TF-IDF,首先从词频 (TF)开始。 这通常是一个词在文档中出现的次数除以该文档中词的总数。 例如,如果单词“代码”在 100 个单词的文档中出现 5 次,则“代码”的 TF 为 5/100 = 0.05。 这可以标准化频率,以避免对较长文档的偏差。 接下来,使用公式计算逆文档频率 (IDF): log(文档总数 / (包含该词的文档数 + 1))
。 “+1” 可防止除以零。 如果“代码”在 1,000 篇文档中的 10 篇中出现,则 IDF 为 log(1000/11) ≈ 4.5
。 最后,将 TF 和 IDF 相乘即可得到 TF-IDF 分数 (0.05 * 4.5 ≈ 0.225)。 较高的分数表示在一个文档中频繁出现且在语料库中很少出现的词。
TF-IDF 适用于将文本转换为数值特征。 例如,在搜索引擎中,查询词的 TF-IDF 分数较高的文档排名较高。 开发人员通常使用 scikit-learn 或 Python 的 TfidfVectorizer
等库来自动进行这些计算,从而生成文档-词矩阵,其中行代表文档,列代表每个词的 TF-IDF 分数。 虽然 TF-IDF 不会捕获语义含义(与现代嵌入不同),但它仍然是诸如关键词提取、文档聚类和文本分类等任务的基础。 它的简单性、效率和可解释性使其成为 NLP 应用程序预处理管道中的主要内容。