搜索系统 基础教程

搜索 query 分析

搜索系统 索引教程

搜索系统 高级教程

搜索系统 排序层

搜索系统 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/search-what-is-tf-idf.html

tf idf 是什么

搜索系统 笔记 搜索系统 笔记


tf idf 英文全称 term frequency-inverse document frequency,中文名叫词频-逆文档频率,它用以计算词项(term)对于一个文档集或语料库中的一个文档的重要程度。

计算公式

tf(term frequency)即词频,指一个字词(term)在一个文档中出现的次数(频率);在实际操作中,这个词频做了词数归一化,以防止它偏向于长文档(同一个词语在长文档里可能会比短文档有更高的词数,而不管该词语重要与否)。

idf(inverse document frequency)即逆文档频率,主要是表达一个词语的普遍重要性(在整个文档集语料库中)的度量;在实际操作中,所有文档数除以指定一个词语出现的文档数,并将得到的商通过以 10 为底数取对数。

公式如下:

tf-idf = tf * idf

tf = 指定词语在该文档中出现次数/指定文档中的所有词语数

idf = log10(所有文档数/指定词语所出现的文档数)

如上公式,总结起来就是,词语的重要性随着它在文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降

示例

假如一篇文档的总词语数是 100 个,其中“玻尿酸”这个词出现了 6 次,那“玻尿酸”一词在该文档中的词频(TF)就是 6/100 = 0.06。而计算文档频率(IDF)的方法是以文档集的文档总数,除以出现“玻尿酸”一词的文档数。所以,如果“玻尿酸”一词在 100 份文件出现过,而文件总数是 1000000 份的话,其逆文档频率(IDF)就是 log10(1000000/100) = 4。最后 tf-idf 的分数为 0.06 * 4 = 0.24。

Django是一个开源的高级Web应用程序框架,采用Python编程语言构建。总的来说,Django是一个功能强大且开发人员友好的Web框架 ...
我们知道 IntelliJ IDEA 在业界被公认为最好的 java 集成开发环境工具,那它本身是用什么语言编写的呢? ...
java 的 fastjson 库我们常用做 JSON 数据结构的工具库,其 API 中没有直接提供能判断当前 Json 字符串或 JSON ...
Django是一个强大的PythonWeb框架,适用于开发各种类型的Web应用程序。Web应用程序:Django非常适合构建各种规模的Web ...
在Django中使用的是MTV(Model-Template-View)架构,而不是传统的MVC(Model-View-Controller ...