Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 如何计算查询的TF-IDF?_Search_Computer Science_Tf Idf_Data Retrieval - Fatal编程技术网

Search 如何计算查询的TF-IDF?

Search 如何计算查询的TF-IDF?,search,computer-science,tf-idf,data-retrieval,Search,Computer Science,Tf Idf,Data Retrieval,如何计算查询的tf idf?我了解如何计算具有以下定义的一组文档的tf idf: tf=文档中的发生次数/文档中的总字数 idf=日志(#文档/#出现术语的文档 但我不明白这和查询有什么关系。 例如,我读到一篇文章指出了一个查询的值“生活学习” 寿命| tf=0.5 | idf=1.405507153 | tf|u idf=0.702753576 学习| tf=.5 | idf=1.405507153 | tf|u idf=0.702753576 我理解的tf值,每个术语在两个可能的术语中只出

如何计算查询的
tf idf
?我了解如何计算具有以下定义的一组文档的tf idf:

tf=文档中的发生次数/文档中的总字数

idf=日志(#文档/#出现术语的文档

但我不明白这和查询有什么关系。

例如,我读到一篇文章指出了一个查询的值“
生活学习

寿命| tf=0.5 | idf=1.405507153 | tf|u idf=0.702753576
学习| tf=.5 | idf=1.405507153 | tf|u idf=0.702753576

我理解的
tf
值,每个术语在两个可能的术语中只出现一次,因此为1/2,但我不知道
idf
从何而来。
我认为#documents=1,occurrence=1,log(1)=0,所以
idf
应该是0,但事实并非如此。它基于您使用的任何文档吗?如何计算查询的tf idf?

只有tf(life)取决于查询本身。然而,查询的idf取决于背景文档,所以idf(寿命)=1+ln(3/2)~=1.405507153。
这就是为什么tf idf被定义为本地组件(术语频率)与全局组件(反向文档频率)的乘积.

假设您的查询是最佳汽车保险,您的总词汇表包含汽车、最佳、汽车、保险,并且您有
N=1000000
文档。因此,您的查询如下所示:

您的文档之一可以是:


现在计算你的
查询的
TF-IDF
文档的
TF-IDF
之间的余弦相似性,即使这个问题被标记为已回答。我觉得它还没有完全回答。 因此,如果将来有人需要这个:

但我不知道以色列国防军从哪里来

在本例中: 介绍了如何计算一个查询和一组文档之间的余弦相似度

如上所述,IDF是一个全局组件,因此每个文档的单词IDF都是相同的:

注意:从技术上讲,我们将查询视为一个新文档。但是,您不应该重新计算IDF值:只使用您之前计算的值


我如何根据背景文件计算idf?例如:query=“英国通道影响”,那么tf将是1/3,但idf将保持1+log(3/2)~=1.405507153,还是会改变?