031 | 经典搜索核心算法:TF-IDF及其变种
洪亮劼
该思维导图由 AI 生成,仅供参考
从本周开始我们进入人工智能核心技术模块,本周我会集中讲解经典的搜索核心算法,今天先来介绍 TF-IDF 算法。
在信息检索(Information Retrieval)、文本挖掘(Text Mining)以及自然语言处理(Natural Language Processing)领域,TF-IDF 算法都可以说是鼎鼎有名。虽然在这些领域中,目前也出现了不少以深度学习为基础的新的文本表达和算分(Weighting)方法,但是 TF-IDF 作为一个最基础的方法,依然在很多应用中发挥着不可替代的作用。
了解和掌握 TF-IDF 算法对初学者大有裨益,能够帮助初学者更快地理解其它更加深入、复杂的文本挖掘算法和模型。今天我就来谈谈 TF-IDF 的历史、算法本身的细节以及基于 TF-IDF 的几个变种算法。
TF-IDF 的历史
把查询关键字(Query)和文档(Document)都转换成“向量”,并且尝试用线性代数等数学工具来解决信息检索问题,这样的努力至少可以追溯到 20 世纪 70 年代。
1971 年,美国康奈尔大学教授杰拉德·索尔顿(Gerard Salton)发表了《SMART 检索系统:自动文档处理实验》(The SMART Retrieval System—Experiments in Automatic Document Processing)一文,文中首次提到了把查询关键字和文档都转换成“向量”,并且给这些向量中的元素赋予不同的值。这篇论文中描述的 SMART 检索系统,特别是其中对 TF-IDF 及其变种的描述成了后续很多工业级系统的重要参考。
1972 年,英国的计算机科学家卡伦·琼斯(Karen Spärck Jones)在《从统计的观点看词的特殊性及其在文档检索中的应用》(A Statistical Interpretation of Term Specificity and Its Application in Retrieval) 一文中第一次详细地阐述了 IDF 的应用。其后卡伦又在《检索目录中的词赋值权重》(Index Term Weighting)一文中对 TF 和 IDF 的结合进行了论述。可以说,卡伦是第一位从理论上对 TF-IDF 进行完整论证的计算机科学家,因此后世也有很多人把 TF-IDF 的发明归结于卡伦。
杰拉德本人被认为是“信息检索之父”。他 1927 年出生于德国的纽伦堡,并与 1950 年和 1952 年先后从纽约的布鲁克林学院获得数学学士和硕士学位,1958 年从哈佛大学获得应用数学博士学位,之后来到康奈尔大学参与组建计算机系。为了致敬杰拉德本人对现代信息检索技术的卓越贡献,现在,美国计算机协会 ACM(Association of Computing Machinery)每三年颁发一次“杰拉德·索尔顿奖”(Gerard Salton Award),用于表彰对信息检索技术有突出贡献的研究人员。卡伦·琼斯在 1988 年获得了第二届“杰拉德·索尔顿奖”的殊荣。
TF-IDF 算法详解
要理解 TF-IDF 算法,第一个步骤是理解 TF-IDF 的应用背景。TF-IDF 来源于一个最经典、也是最古老的信息检索模型,即“向量空间模型”(Vector Space Model)。
简单来说,向量空间模型就是希望把查询关键字和文档都表达成向量,然后利用向量之间的运算来进一步表达向量间的关系。比如,一个比较常用的运算就是计算查询关键字所对应的向量和文档所对应的向量之间的“相关度”。
因为有了向量的表达,相关度往往可以用向量在某种意义上的“相似度”来进行近似,比如余弦相似性(Cosine Similarity)或者是点积(Dot Product)。这样,相关度就可以用一个值来进行表达。不管是余弦相似度还是点积都能够从线性代数或者几何的角度来解释计算的合理性。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
TF-IDF算法是信息检索领域中最基本的技术之一,它源于向量空间模型,旨在通过计算单词频率(TF)和逆文档频率(IDF)的乘积来衡量单词在文档中的重要性。本文介绍了TF-IDF算法的历史渊源以及其核心组成部分,同时还探讨了TF-IDF的几种经典变种。其中,对TF进行对数变换和标准化,以及对IDF进行处理,是常见的优化技巧。此外,文章还提到了将查询关键字向量和文档向量进行标准化,以利用余弦相似度进行相关度计算的方法。总的来说,TF-IDF算法在信息检索领域具有重要意义,尤其对于初学者来说,掌握TF-IDF算法有助于更快地理解其他更深入、复杂的文本挖掘算法和模型。最后,文章提出了一个思考题,即在中文环境中应用TF-IDF算法是否需要一些预处理的步骤,为读者留下了一个思考和讨论的空间。 TF-IDF算法的详细解析和其基于TF-IDF的几个变种算法也是本文的重点内容,对于对信息检索感兴趣的读者来说,这些内容将会是一次有益的学习和思考。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 技术内参》,新⼈⾸单¥98
《AI 技术内参》,新⼈⾸单¥98
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- 颛顼中文首先要分词,分词后要解决多词一义,以及一词多义问题,这两个问题通过简单的tf-idf方法不能很好的解决,于是就有了后来的词嵌入方法,用向量来表征一个词
作者回复: 是这样的。
2017-12-0421 - 张岩kris文档到词向量的转换,语言先进行中文分词吧,不同分词算法,可能对最终的结果产生一定影响
作者回复: 对,中文分词是一个很重要的步骤。
2017-11-181 - 东辉 (●---●)是否需要先分词
作者回复: 是的。
2017-11-141 - 霸气芝士草莓能不能加上一些公式,用公式和文字结合来表达,感觉更清晰直观2018-08-2018
- lyhbit讲TF-IDF的四种变种、如果加一些图片或者例子会更好理解些2018-10-065
- 李沛欣TF词频:某一单词出现在某文档的次数 IDF逆文档频率:多个文档都出现同一单词的概率之倒数 二者向量化的乘积,能够反映出某词对整个文章的重要性。 采用余弦相似度等算法,能反映出多篇文章文章的相似性。 个人以为,这大概也是论文查重的原理2019-08-134
- guoguo 👻第一个变种那里是ln(tf)吧,log(tf)算的话值明显不对2018-11-172
- 追逐繁星的孩纸~思考题,如果要把 TF-IDF 应用到中文环境中,是否需要一些预处理的步骤? 答:要的。TF表示单词频率,对中文来说,首先就需要分句,分词,分词涉及的东西就多了,准确的分词需要涉及上下文理解,歧义词、多义词、词语搭配等处理。此外,为了统一处理,可能还会涉及简繁转换。暂时只能想到这些。2019-11-121
- Yang分词,有时候为了提高模型的效果,可能既要分词,也要分字。2019-09-09
- 庄小P学习了,了解这些算法是怎么改进的,才会有自己改进的空间2019-05-26
收起评论