/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/
GOOGLE 的相关提示功能
中科院软件所 张俊林
2006年3月
在我以前发的帖子里面讲过百度的相关提示功能是如何实现的,下面说说GOOGLE(http://googlechinablog.com/2006/04/blog-post_10.html)的相关提示如何实现的,你使用两个搜索引擎并观察一下两个系统的相关提示就会发现,GOOGLE的技术含量比百度高出很多.比如输入查询”刘翔”,GOOGLE的相关提示”足球”/”罗雪绢”/”姚明”/”田径”等等,而百度的相关提示是:”刘翔图片”/”刘翔简介”等等.最大的区别是:百度的相关提示一定包含查询本身,而GOOGLE的相关提示视野要开阔很多.那么GOOGLE是如何做的?
GOOGLE有计算用户相似需求的算法,并且依据这个算法来对用户进行相关提示.基本步骤如下:
(1) 得到用户查询LOG文件作为输入,其中包含大量不同用户提交给搜索引擎的查询;
(2) 首先将用户查询进行分类,假设LOG文件由以下三个域构成
QUERY USERID TIMESTAMP
QUERY:用户提交的查询
USERID:用户ID信息
TMESTAMP:用户提交查询的时间信息
(3) 对于用户查询进行排序,排序原则是首先按照用户ID进行排序,对于同一用户,将查询按照时间进行排序;
(4) 在排好序列的LOG里面寻找满足下列特征的集合:a.如果两个查询属于同一用户发出,b.而且两个查询在排序的LOG文件里面紧密相邻,c.同时两个查询有部分词汇相同;
(5) 此时,可以将两个查询中不同的词汇看作可能的候选同义词,这些同义词用不同词汇表达相似的信息需求;
(6) 统计这两个候选同义词在语料库文件里面共现次数,如果出现次数足够大,则认为是属于表达相似用户需求的同义词,否则认为不是同义词;具体计算应该采用的是互信息的方法,也就是说首先计算两个候选同义词同时在语料库里面出现次数,然后计算每个候选词汇单独出现在语料库里面面的次数,然后计算互信息来确定;
(7) 将统计得出的同义词作为用户查询相关信息提示的依据;