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

相关文章
|
5月前
|
机器学习/深度学习 存储 自然语言处理
18_TF-IDF向量表示:从词频到文档相似度
在自然语言处理(NLP)领域,如何将非结构化的文本数据转换为计算机可以处理的数值形式,是一个基础性的关键问题。词袋模型(Bag of Words, BoW)作为一种简单直接的文本表示方法,虽然能够捕获文本中的词频信息,但无法区分不同词的重要性。为了解决这个问题,TF-IDF(Term Frequency-Inverse Document Frequency)向量表示方法应运而生,它通过评估词语对文档集合中某个文档的重要程度,为文本分析提供了更准确的数值表示。
|
编译器 Python Windows
解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全
解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全,我们在jupyter的notebook中使用matplotlib画图的时候,经常性的会遇见一些中文乱码显示□的情况,如下所示:
1473 0
解决jupyter以及windows系统中pycharm编译器画图的中文乱码问题大全
|
开发工具 git druid
解决Git中fatal: refusing to merge unrelated histories
Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。 一、fatal: refusing to merge unrelated histories 今天在使用Git创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。
109848 6
|
6月前
|
机器学习/深度学习 数据采集 编解码
Stable Video Diffusion:将潜在视频扩散模型扩展到大规模数据集——论文阅读
Stable Video Diffusion(SVD)是Stability AI提出的高分辨率视频生成模型,基于潜在扩散框架,通过三阶段训练与严格数据筛选,在文本到视频和图像到视频任务中实现高质量生成。论文系统研究了数据质量对模型性能的影响,提出级联切分检测、运动评分过滤、合成字幕优化等策略,并引入线性递增引导等创新技术,显著提升生成稳定性与视觉保真度。
1273 4
|
8月前
|
人工智能 自然语言处理 监控
构建智能客服Agent:从需求分析到生产部署
本文将结合我在多个智能客服项目中的实践经验,从需求分析、系统设计、核心算法实现到生产部署的完整技术链路进行深度剖析。文章重点关注客服场景的需求建模、多轮对话的上下文维护、知识库的动态集成以及人机协作的智能切换机制。通过详实的代码实现、丰富的技术图表和量化的性能评测,帮助读者构建一个真正适用于生产环境的智能客服Agent系统。这套技术方案已在多家大型企业成功落地,处理日均对话量超过10万次,为企业节省人力成本60%以上。
1760 3
|
7月前
|
人工智能 JSON 供应链
5C提示词工程框架:让AI成为你的贴心助手
通过清晰度、上下文、命令、链式、持续优化五个维度,教你如何与AI进行高效对话。从小白到专家,一篇文章搞定所有提示词技巧!
680 1
|
自然语言处理 算法 搜索推荐
NLP中TF-IDF算法
TF-IDF(词频-逆文档频率)是一种用于信息检索与数据挖掘的加权技术,通过评估词语在文档中的重要性来过滤常见词语,保留关键信息。本文介绍了TF-IDF的基本概念、公式及其在Python、NLTK、Sklearn和jieba中的实现方法,并讨论了其优缺点。TF-IWF是TF-IDF的优化版本,通过改进权重计算提高精度。
1555 1
|
人工智能 自然语言处理 算法
【人工智能】TF-IDF算法概述
TF-IDF算法,全称Term Frequency-Inverse Document Frequency(词频-逆文档频率),是一种在信息检索和文本挖掘领域广泛应用的加权技术。它通过评估一个词语在文档中的重要程度,来挖掘文章中的关键词,进而用于文本分析、搜索引擎优化等场景。其核心思想是:如果某个词或短语在一篇文章中出现的频率高(TF高),且在其他文章中很少出现(IDF也高),则认为这个词或短语具有很好的类别区分能力,适合用来代表这篇文章的内容。 具体而言,TF-IDF由两部分组成,即词频(TF)和逆文档频率(IDF)。词频(TF)指的是某一个给定的词在该文件中出现的频率。这个数值通常会被归一化
1610 3
|
存储 安全 前端开发
端到端加密:确保数据传输安全的最佳实践
【10月更文挑战第12天】端到端加密(E2EE)是确保数据传输安全的重要手段,通过加密技术保障数据在传输过程中的隐私与完整性,防止第三方窃听和篡改。本文介绍E2EE的工作原理、核心优势及实施步骤,并探讨其在即时通讯、文件共享和金融服务等领域的应用,强调了选择加密协议、密钥管理、数据加密及安全接口设计的重要性,旨在帮助企业和开发者有效保护用户数据,满足数据保护法规要求。
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
363 3

热门文章

最新文章