您的位置:首页 > 编程语言 > Go语言

Google怎么做(1.相关提示)

2006-03-27 17:18 204 查看
/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/

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)   将统计得出的同义词作为用户查询相关信息提示的依据;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息