如何确定网页和查询的相关性 TF-IDF

前面介绍了如何下载网页并建立索引。但通过关键词和索引的相关性,一个搜索引擎仍然能够提供几十万的页面,这时候就需要如何把好的页面排序在前面。前面已经介绍通过PageRank来衡量页面质量。显然PageRank只能找出质量好的页面。但无法衡量该页面与关键词的匹配程度,这就需要一种技术来衡量页面与查询的相关性。

科学度量“IF-IDF”:

当我们知道一个关键词“原子能的应用”时,显然,直觉上那些网页中包含更多关键词的比较少的网页相关性更大。但这样有个问题,如果一个网页内容很长,会使得它包含关键词的个数更多,占有优势。因此我们需要对关键词的个数进行归一化。可以使用关键词个数除以页面总字数。则可得关键词频率(Term Frequency),若某网页总字数1000,出现“原子能”、“的”、“应用”次数分别为2,35,5。那么对应频率为0.002,0.035,0.005,相加总和0.045就是关键词与该网页的相关性度量。

但这样会有一个明显的问题,“的”这个关键词占据总词频的80以上,但是却没有实际意义。这种类似于“的”、“得”、“和”、“中”之类的经常出现但是却不包含具体信息的词称之为“停止词”,一般在处理过程可以出掉它。这样上述相关性总和就变成0.007。

还有个问题是在语言中“应用”是一个非常通用的词,虽然具有一定含义,但远没有“原子能”这样具有专业含义。则显然需要对每个词赋予不同的权重。且权重应该符合如下条件:

1、如果一个关键词预测主题的能力越强,权重应该越大。比如一看原子能,就能知道大概主题,但一看应用,不知道搜索的具体内容。

2、停止词权重为0

很容易发现,如果一个词在网页中出现越多,就不清楚它要找的内容,如果一个词很少出现,那么就很容易锁定目标。这样我们就可以统计关键词在所有页面出现的次数。

所谓的inverse就是表示取得是频率的倒数。从而最终的相关性求解就变成词频的权重加权:

至于为什么使用log,而不是sqrt。信息学解释为,IDF概念就是在一定条件下关键词概率分布的交叉熵。如果我们把D/Dw逆过来,就是标准的交叉熵形式,而且Dw/D正好可以代表一个关键词出现在文档中的概率。

信息学解释:

一个词的权重反应了这个词能够提供的信息多少,一个简单方法就是用这个词所含信息量来表示权重。即(这里的TF表示的是频数,非频率):

这样存在一个问题:如果两个词出现TF相同,但是其中一个只是出现的特定文章中,而另一个分散在许多文章中。显然前面一个词更为重要。

上式很好理解N=MD(文章数乘以每篇文章词数),TF(w) = C(w)D(w)(包含关键词w的文章数乘以每篇词数),这样上述公式可以转为:

从上式就会发现TF-IDF和一个词的信息量I(w)是正相关的。一个词信息量越大,I(w)越大,TF-IDF越大,而同时这个词在同一篇文章中包含词数越多,即c(w)越大,第二项越小。

猜你喜欢

转载自blog.csdn.net/qq_16234613/article/details/82586079
今日推荐