评分和词条权重计算
直观上去评价一个搜索引擎的好坏的一个标准就是搜索结果是否能够令用户满意,这个对于搜索引擎来说直接在于结果的排序。对于排序的不同标准来说,并提到了权重的计算和搜索结果评分。
对于布尔检索来说,例如做一个查询”徐佳佳是信息检索学习博客的作者”这样的信息,一般我们在Google或者是Baidu中我们会在搜索框输入”徐佳佳 信息检索”。对于布尔检索系统来说,这里它所作的操作就是“徐佳佳”和“信息检索”做了and操作,如果仅仅是这样的话,它是直接返回网页中有“徐佳佳”和“信息检索”结果而已,也许它返回的第一个结果是其他的blog中描写“徐佳佳的信息检索学习的博客写的很垃圾”这样的网站,但是作者想到找到的其实是我的博客。所以如何对搜索结果进行排序就能给用户最近的结果。如果我们对一个网页进行简单的分区,一个网页中的title,另一个是网页中的body部分,如果我们进行一个简单的约定:一个网页中title部分的数据比在网页中body中的数据更能描述网站信息。根据这一的一个约定在实际的搜索结果中给body和titile分不同的权重wj,对于我们的例子来说,title的权重要比body的权重要高。在计算最终得分的时候还需要考虑搜素的关键字是出现在网页中title部分还是在body部分,这里我们只考虑是在这个标签中还是不在这些标签中,在这里用0和1分别表示si的值(si表示关键字与网页哪个区域相关。si是0表示不在,1表示在)。根据这一的标准我们可以得出评分的计算方法,就是将关键自己出现在网页中不同区域中(是出现在title总还是出现在body中)的权重wj与区域相关si积的和就是所得的评分。
上面的方法是通过相关的人员人工设置网页各个部分的不同权重,这种方式受人的干扰因素较多。其实还有其他的方法来计算权重,那就是机器学习的方法,其主要思想就是根据训练数据得出权重的计算方法。具体计算方法会在机器学习一节会提到。
一般对于文档来说采用的权重计算方法是Tf-idf(term frequency – inverting document frequency),词条频度(term frequency)表示的是这个词条在文档中数量。文档频度(doument frequency)只的是在文档集中包含这个词条文档的数量,从直觉上我们知道,在一个文档中如果一个词条不断的出现的话,那么这个文档很有可能是关于这个话题的,那么他肯定是比较重要的,相对来说权重也是比较高的。但是我们知道,在一篇文章中有很多的词语”的,地,得”等词语在任何一篇文中是都会出现而且出现的频率是很高的,所以在自然语言处理的时候提到过“stop words”停词表,这些词语在很多情况下不做考虑。我们可以在做词条权重计算的时候不用考虑停词的情况,但是出了停词表之外,有些词语在一些文档中出现的概率也是很高的,所以为了避免这样的情况,所以采用了一种的反文档频度(inverting document frequency)的办法。所以在计算词条权重是的办法是:tf *log(N/df),其中N是文档集中所有的文档的数量。tf-idf的直观上理解可以分为三种情况(一下说的情况,权重的高低是相对的):
- 权重最高情况。一个词条在文档中词条频度很高,但是仅仅在一个文档或者非常少中出现,这样情况的话,这个词条的权重被认为是最高的。
- 权重比较高情况。一个词条在文档中词条频度比较高,在其他文档中出现的情况不是很高,或者是词条频度不是很高,但是出现在其他的文档中情况比较少。
- 权重最低情况。词条在文档中的词条频度很低,但是又经常出现在其他的文档中。
词条权重的计算,直接影响到最终的结果显示,所以一个合理的权重计算对搜索引擎和推荐系统来说是非常重要的。







Hi,
Thank you! I would now go on this blog every day!
Zoran
Thanks for article. Everytime like to read you.
signed to your rss