经典的 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 高。

相关文章
|
Java C# C++
Java源码转C#源码的五款最佳工具
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41913581 Java源码转C#源码的五款最佳工具 作者:chszs,转载需注明。
1691 0
|
7月前
|
自然语言处理 算法
大模型应用:大模型的词元化处理详解:BPE、WordPiece、Unigram.11
本文详解大模型中文词元化三大核心算法:BPE(基于频率合并)、WordPiece(基于似然增益合并)和Unigram(自顶向下概率筛选)。通过原理、流程、代码与示例对比,揭示其在中文分词中的适用性与优化要点,强调语料质量、参数配置及中文特性适配的关键作用。(239字)
1487 2
|
11月前
|
机器学习/深度学习 存储 自然语言处理
18_TF-IDF向量表示:从词频到文档相似度
在自然语言处理(NLP)领域,如何将非结构化的文本数据转换为计算机可以处理的数值形式,是一个基础性的关键问题。词袋模型(Bag of Words, BoW)作为一种简单直接的文本表示方法,虽然能够捕获文本中的词频信息,但无法区分不同词的重要性。为了解决这个问题,TF-IDF(Term Frequency-Inverse Document Frequency)向量表示方法应运而生,它通过评估词语对文档集合中某个文档的重要程度,为文本分析提供了更准确的数值表示。
878 1
|
人工智能 自然语言处理 监控
构建智能客服Agent:从需求分析到生产部署
本文将结合我在多个智能客服项目中的实践经验,从需求分析、系统设计、核心算法实现到生产部署的完整技术链路进行深度剖析。文章重点关注客服场景的需求建模、多轮对话的上下文维护、知识库的动态集成以及人机协作的智能切换机制。通过详实的代码实现、丰富的技术图表和量化的性能评测,帮助读者构建一个真正适用于生产环境的智能客服Agent系统。这套技术方案已在多家大型企业成功落地,处理日均对话量超过10万次,为企业节省人力成本60%以上。
3263 3
|
9月前
|
存储 算法 数据挖掘
如何使用乘积量化压缩向量?
乘积量化通过将高维向量划分为多个低维子空间,对每个子空间聚类并用聚类ID表示子向量,大幅压缩存储空间。例如,1024维向量可分段聚类,用32比特替代原始4KB空间,压缩率达1/1024,显著提升内存加载与检索效率。
|
9月前
|
存储 NoSQL 关系型数据库
什么是 Geohash 编码?
Geohash编码将经纬度转换为字符串,通过不断二分地球坐标区间,交叉合并经纬编码,再转为Base32简化表示。它用短字符串标识位置,支持高效空间索引与查询,广泛应用于Redis、MySQL等系统。
|
9月前
|
搜索推荐 数据库 索引
广告引擎的整体架构和工作过程
广告引擎核心是匹配用户与广告。通过用户标签、广告位信息及广告主定向条件,构建倒排索引,实现高效召回与排序,0.1秒内完成广告返回,并实时监测展现、点击与计费,确保精准投放与预算控制。
|
9月前
|
自然语言处理 搜索推荐 索引
搜索引擎是如何完成短语检索的?
搜索引擎进行短语检索时,首先尝试将整个短语作为关键词在倒排索引中查找。若未命中,则拆分为更细粒度的词(如“极客”“时间”)分别检索,并利用位置信息索引法,通过计算关键词间的最小窗口长度判断 proximity,确保结果中词语位置接近,从而实现精准匹配。
|
自然语言处理 Python
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
5055 0
|
人工智能 JSON 供应链
5C提示词工程框架:让AI成为你的贴心助手
通过清晰度、上下文、命令、链式、持续优化五个维度,教你如何与AI进行高效对话。从小白到专家,一篇文章搞定所有提示词技巧!
1018 1

热门文章

最新文章