经典的 TF-IDF 算法是什么?

简介: TF-IDF是衡量词与文档相关性的经典算法,由词频(TF)和逆文档频率(IDF)相乘得出。TF反映词在文档中的重要性,IDF体现词的区分度。词频越高、文档频率越低的词,权重越大。通过累加各词项的TF-IDF值,可计算查询与文档的整体相关性,广泛应用于搜索引擎排序。

在搜索引擎的应用场景中,检索结果文档和用户输入的查询词之间的相关性越强,网页排名就越靠前。所以,在搜索引擎对检索结果的打分中,查询词和结果文档的相关性是一个非常重要的判断因子。

那要计算相关性,就必须要提到经典的 TF-IDF 算法了,它能很好地表示一个词在一个文档中的权重。TF-IDF 算法的公式是:相关性 = TF*IDF。其中,TF 是 词频(Term Frequency),IDF 是 逆文档频率(Inverse Document Frequency)。

在利用 TF-IDF 算法计算相关性之前,我们还要理解几个重要概念,分别是词频、文档频率和逆文档频率。

词频 定义的就是一个词项在文档中出现的次数。换一句话说就是,如果一个词项出现了越多次,那这个词在文档中就越重要。

文档频率(Document Frequency),指的是这个词项出现在了多少个文档中。你也可以理解为,如果一个词出现在越多的文档中,那这个词就越普遍,越没有区分度。一个极端的例子,比如“的”字,它基本上在每个文档中都会出现,所以它的区分度就非常低。

那为了方便理解和计算相关性,我们又引入了一个 逆文档频率 的概念。逆文档频率是对文档频率取 倒数,它的值越大,这个词的的区分度就越大。

因此, TF*IDF 表示了我们综合考虑了一个词项的重要性和区分度,结合这两个维度,我们就计算出了一个词项和文档的相关性。不过,在计算的过程中,我们会对 TF 和 IDF 的值都使用对数函数进行平滑处理。处理过程如下图所示:

使用 相关性 = TF*IDF ,我们可以计算一个词项在一个文档中的权重。但是,很多情况下,一个查询中会有多个词项。不过,这也不用担心,处理起来也很简单。我们直接把每个词项和文档的相关性累加起来,就能计算出查询词和文档的总相关性了。

这么说可能比较抽象,我列举了一些具体的数字,我们一起动手来计算一下相关性。假设查询词是「极客时间」,它被分成了两个词项「极客」和「时间」。现在有两个文档都包含了「极客」和「时间」,在文档 1 中,「极客」出现了 10 次,「时间」出现了 10 次。而在文档 2 中,「极客」出现了 1 次,「时间」出现了 100 次。

计算 TF-IDF 需要的数据如下表所示:

那两个文档的最终相关性得分如下:
文档 1 打分 = TFIDF(极客)+ TFIDF(时间)= (1+log(10)) 10 + (1+log(10)) 1 = 20 + 2 = 22
文档 2 打分 = TFIDF(极客)+ TFIDF(时间)=(1+log(1)) 10 + (1+log(100)) 1 = 10 + 3 = 13
你会发现,尽管「时间」这个词项在文档 2 中出现了非常多次,但是,由于「时间」这个词项的 IDF 值比较低,因此,文档 2 的打分并没有文档 1 高。

相关文章
|
开发工具 git druid
解决Git中fatal: refusing to merge unrelated histories
Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。 一、fatal: refusing to merge unrelated histories 今天在使用Git创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。
110017 6
|
8月前
|
机器学习/深度学习 存储 自然语言处理
18_TF-IDF向量表示:从词频到文档相似度
在自然语言处理(NLP)领域,如何将非结构化的文本数据转换为计算机可以处理的数值形式,是一个基础性的关键问题。词袋模型(Bag of Words, BoW)作为一种简单直接的文本表示方法,虽然能够捕获文本中的词频信息,但无法区分不同词的重要性。为了解决这个问题,TF-IDF(Term Frequency-Inverse Document Frequency)向量表示方法应运而生,它通过评估词语对文档集合中某个文档的重要程度,为文本分析提供了更准确的数值表示。
693 1
|
4月前
|
自然语言处理 算法
大模型应用:大模型的词元化处理详解:BPE、WordPiece、Unigram.11
本文详解大模型中文词元化三大核心算法:BPE(基于频率合并)、WordPiece(基于似然增益合并)和Unigram(自顶向下概率筛选)。通过原理、流程、代码与示例对比,揭示其在中文分词中的适用性与优化要点,强调语料质量、参数配置及中文特性适配的关键作用。(239字)
1074 2
|
9月前
|
机器学习/深度学习 数据采集 编解码
Stable Video Diffusion:将潜在视频扩散模型扩展到大规模数据集——论文阅读
Stable Video Diffusion(SVD)是Stability AI提出的高分辨率视频生成模型,基于潜在扩散框架,通过三阶段训练与严格数据筛选,在文本到视频和图像到视频任务中实现高质量生成。论文系统研究了数据质量对模型性能的影响,提出级联切分检测、运动评分过滤、合成字幕优化等策略,并引入线性递增引导等创新技术,显著提升生成稳定性与视觉保真度。
1655 4
|
自然语言处理 Python
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
4853 0
|
自然语言处理 算法 搜索推荐
NLP中TF-IDF算法
TF-IDF(词频-逆文档频率)是一种用于信息检索与数据挖掘的加权技术,通过评估词语在文档中的重要性来过滤常见词语,保留关键信息。本文介绍了TF-IDF的基本概念、公式及其在Python、NLTK、Sklearn和jieba中的实现方法,并讨论了其优缺点。TF-IWF是TF-IDF的优化版本,通过改进权重计算提高精度。
2058 1
SEM结构方程模型(零基础
SEM结构方程模型(零基础
633 0
SEM结构方程模型(零基础
|
人工智能 自然语言处理 算法
【人工智能】TF-IDF算法概述
TF-IDF算法,全称Term Frequency-Inverse Document Frequency(词频-逆文档频率),是一种在信息检索和文本挖掘领域广泛应用的加权技术。它通过评估一个词语在文档中的重要程度,来挖掘文章中的关键词,进而用于文本分析、搜索引擎优化等场景。其核心思想是:如果某个词或短语在一篇文章中出现的频率高(TF高),且在其他文章中很少出现(IDF也高),则认为这个词或短语具有很好的类别区分能力,适合用来代表这篇文章的内容。 具体而言,TF-IDF由两部分组成,即词频(TF)和逆文档频率(IDF)。词频(TF)指的是某一个给定的词在该文件中出现的频率。这个数值通常会被归一化
1913 3
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch使用专题 | 2 :Pytorch中数据读取-Dataset、Dataloader 、TensorDataset 和 Sampler 的使用
介绍Pytorch中数据读取-Dataset、Dataloader 、TensorDataset 和 Sampler 的使用