如何查找关于“原子能的应用”的网页?
大致思路
- 第一步,在索引中找到包含这三个词的网页(这大约能返回千万以上个结果)
- 第二步,给这些网页排序:
- 1)把网页本身质量好的排在前面 (Page Rank 算法)
- 2)与查询关键词“原子能应用”相关性高的网页排在前面(TF-IDF 算法)
问题描述
如何度量查询(query)与网页的相关性?
解决过程
一、使用“总词频”
“原子能的应用”可以分为三个关键词“原子能、的、应用”。
1、直觉上,关键词出现次数较多的网页应该比出现较少的网页相关性高;
2、 存在问题:那就是篇幅长的网页比篇幅短的网页占便宜,长的网页其包含地关键词更多一些;
3、 所以,需要根据网页的长度,对关键词的次数进行归一化: **
- 用关键词的次数除以网页的总词数——即关键词的频率【Term Frequency】**
所以,当一个查询包含N个关键词
,他们在一个特定网页中的词频分别为:
,那么这个查询和该网页的相关性(相似度)就是各个关键词在网页中的总词频:
二、加入IDF权重
4、 存在问题:
1) “停止词 Stop Word”(的,是,地,和…),在总词频中占比会非常高,并且其对确定网页主题几乎没有什么用,所以在度量相关性的时候不应该考虑他们的词频;
2)“通用词”与“专用词”(应用与原子能),在相关性排序中各自的重要程度又不相同;
5、所以,需要对每一个词赋予一个权重,其满足以下条件
1)一个词预测主题的能力越强,权重越大,反之权重越小;
2)停止词的权重为 0 ;
6、信息检索中,“逆文本频率指数”(Inverse Document Frequency):
表示关键词
出现在不同网页的次数,
表示全部网页数目。如果一个关键词大量出现在网页中,就是看到它仍然不会清楚要找什么内容,其对应的权重越小;如果出现在很少的网页,通过它就很容易锁定目标,权重也就应该很大。
例如,假设中文网页数 ,停止词“的”在的网页 ,那么它的 ,加入“原子能”出现在200万个网页中,则它的权重 。
7、所以,利用IDF,相关性的计算公式就由词频简单的求和变成了加权求和:
三、IDF概念的理论支撑——信息论
8、 IDF的概念,来自于特定条件下关键词的概率分布的交叉熵(即,信息论):
1)一个查询(query)中的每一个关键词(key word)
的权重应该反映这个词对查询来讲提供了多少信息:
> 可以使用每个词的信息量作为他的权重
是关键词
在语料库中的词频(概率);N是整个语料库的大小,是个可以省略的常数。则上面公式可以简化成:
2)上式,有一个缺陷:两个出现频率TF相同的词,当一个集中出现在特定文章中,而另一个分散在多篇文献中,显然第一个词有更高的分辨率,它的权重应该更大。显然,更好的权重公式应该反映出关键词的分辨率。
3)基本假设:
- 每个文献大小基本相同,均为 个词,即:
为全部网页数
- 一个关键词在文献中一旦出现,不论次数多少,贡献都等同。即,一个词要么在一个文献中出现,且次数为 ,要么是 0 。( )
为 出现的网页数
4)根据假设,可以得到关键词的信息量:
5)可以得到:
可以看出 和 信息量 之间的差异就是公式第二项,因为 ,所以第二项大于 0 ,它是 (关键词在文献中平均出现的次数)的递减函数,即:
- 一个词的信息量 越大, 值越大;
- 关键词 命中的文献中 平均出现的次数越多,第二项越小, 值越大
四、搜索引擎中的应用
如果给定一个查询,结合网页排名(PageRank)算法,那么有关网页的综合排名大致由相关性和网页排名的乘积决定;