基于事件驱动模型的搜索引擎设计
基于事件驱动模型的搜索引擎设
摘要:介绍了搜索引擎个性化服务的主要技术,结合离散事件驱动模型的思想、DWR 和
现有搜索引擎的基本架构,设计了基于事件驱动模型的搜索引擎的系统结构,提出了一种
新的搜索引擎算法,算法中,基于用户停留时间来分析用户对打开页面主题的关注程度,
并结合 HTML 文档特点和中文写作习惯等特征,对算法中的关键词权重计算公式进行了改
进,从而进一步提高了搜索引擎的性能。
关键词:事件驱动模型;搜索引擎;主题分析
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2011)28-6866-03
Design of Search Engine Based on Event Driven Model
LUO Xing-jun1, BAI Xiao-bo2
( Department of Nanping,Nanping 353021 China; School of
Hunan University, Fuzhou 350003,China)
Abstract: The paper introduces the main technology of search engine personalized
service. Combine with the concept of event driven model, DWR and basic framework of
search engine, design of the system framework for the search engine based on event
driven model as well as the idea of design is provided. Meanwhile, the algorithm of
analysis of users’ interest in page by users’ time on page is proposed; the algorithm of
key words wEight is improved in comply with HTML file's features and Chinese writing
habits; so as to improve the performance of the search engine.
Key words: event driven model; search engine; theme analysis
1 个性化搜索引擎概述
个性化搜索引擎[1],使用自动获得的领域模型(如 Web 知识、信息处理、与用户兴
趣相关的信息资源、领域组织结构)、用户模型(如用户背景、兴趣、行为、风格)知识
进行信息搜集、索引、过滤(包括兴趣过滤和不良信息过滤),并自动地将用户感兴趣的
、对用户有用的信息提交给用户。也就是针对同一搜索关键字能根据不同用户返回不同的
结果。
2004 年 3 月,Google 推出了个性化搜索引擎测试版(Google Personalized), 用户
可以设定自己感兴趣的领域, 让它只返回与该领域有关的链接;中国搜索提供了 12 个一
级目录,102 个二级目录,供用户添加感兴趣的类别[2]。
个性化搜索服务的主要技术
个性化搜索引擎考虑到不同用户的差异性,为用户提供更符合自身需要的服务。其涉
及的主要技术有推荐技术、用户建模技术等。
目前主流的推荐技术主要有基于项目推荐[3]、基于用户推荐的协同过滤[4]等。其主
要内容又分为两个方面:一是用户资源关系,二是推荐算法。其中用户资源关系是基础,
推荐算法是核心。
用户兴趣建模是产生推荐结果的基础,其技术主要有用户手工输入、用户浏览的页面
分析、Web 日志分析等。
个性化服务技术存在的主要问题
1)维护用户与资源关系矩阵的开销大。例如,对于 100 万个用户和 1000 万个资源
,个性化服务中需要维护的用户与资源的关系矩阵维护将非常庞大,其存储和计算过程的
时间开销将非常巨大,而作为搜索引擎,响应时间是一个很重要的技术指标,巨大的开销
必将严重影响搜索引擎的性能和应用。
2)用户潜在兴趣难以挖掘。用户的生活丰富多彩,在网上所需的信息具有随机性。
而目前的个性化服务技术难以适用对用户潜在兴趣的充分挖掘。
因此,本文研究一种新的基于事件驱动模型的搜索引擎设计方法,以解决个性化服务
技术中存在的主要问题。
2 事件驱动模型及 DWR 技术
事件驱动模型三要素
事件驱动模型思想在很多程序开发语言的 GUI 中都有应用,其主要内容如下:
事件源:能够接收外部事件的源体, 如按钮、单选框和复选框等。
监听器:能够接收事件源的通知的对象。
事件处理方法 用于处理事件的对象, 事件源接收一个事件, 并把这个事件发送到一个
或多个监听程序, 监听程序只是等待这个事件并处理它, 然后返回. 即程序把事件的处理“委
托”给一段“代码”。这段代码就是事件处理方法, 也叫事件处理程序。
DWR 异步更新技术
DWR(Direct Web Remoting)是一个开源的 Java 类库,应用该架构的 Web 应用程序
,能够在浏览器中直接调用 Java 程序。其原理较为简单,就是通过配置文件()
完成路径映射,以确定 JavaScript 要调用的 Java 类,再使用 XMLHttpReuqest 请求,将请
求参数转化并调用相应的 Java 方法处理,然后将处理结果以异步的方式返回并转化为
JavaScript 代码,因此该框架非常适合模拟事件驱动模型。
3 基于事件驱动模型的搜索引擎设计
结合事件驱动模型思想、DWR 技术和搜索引擎现有技术,设计基于事件驱动模型的
搜索引擎系统,基本思想如下:
1)在用户第一次输入关键词查询以后,将结果在页面显示,设为各项目为 I,初始显
示页面为 P;
2)当用户对项目 I“单击”以后,此处将 I 看作事件源;
3)单击以后,通过 JavaScript 和 DWR 的设置调用执行相应的 Java 代码,也就是调
用图 1 的主题分析器的方法,将该方法作为“事件处理方法”,根据公式(1)计算的结果
决定是否进行异步更新。
基于事件驱动模型的搜索引擎系统结构设计
结合事件驱动模型和 DWR 框架,设计基于事件驱动模型的搜索引擎系统的结构如图
1 所示。
其中,过滤器主要完成查询器返回的文档与查询条件的主题相似度的计算;主题分析
器完成用户随机关注主题的分析。
基于事件驱动模型的搜索引擎算法设计
1)将搜索关键字提交给“查询器”;
2)“查询器”根据用户输入的查询条件在索引数据库中搜索;
3)“查询器”将查询到的结论文联盟 果集经过过滤器以后返回给用户
接口显示。
4)用户“单击”打开相应的 Web 页面的同时,通过 DWR 框架对用户的“单击”事件做出
响应;
5)通过 DWR 框架,调用“主题分析器”的方法对打开页面的“主题”进行分析,从而获
得用户随机的关注主题,同时计算用户在该页面的实际停留时间(St)和理论停留时间(
Pt)。理论停留时间可采用公式(1)计算得出。
(1)
互联网行业有一个比较流行的“八秒钟规则”[5],如果 Web 站点在 8 秒钟后没有反应
,那么访问者一般会弃之而去。所以,这里 Pt(理论停留时间)就加上了其平均时间
α=; β= 为平均阅读速度;TFki 为词汇 ki 在文档 D 中的词频。
6)如果 ,说明该页主题不符合用户的需求,则不进行结果集(RS)
的异步更新;否则,结合用户的查询关键字和分析所得的主题传递给“查询器”进行查
询,也就是执行第 2 步;
7)经过过滤器,将新的结果集返回给 DWR 框架。
8)通过 DWR 框架对原页面进行更新。
以上八个步骤中的核心是主题的分析算法,通常采用空间向量模型 VSM(Vector
Space Model)[6-8]来表达文档主题特征,向量中的各项是文档中关键词汇的权重,词汇
权重计算的一般公式为 W=TFIDF,Salton 给出了一个词汇权重计算公式[9]:
(2)
其中,W(t,i):词汇 t 在文档 i 中的权重;fti :词汇 t 在文档 i 中的词频,即词汇
出现的次数;N:所有的文档数;nt:所有文档中,出现词汇 t 的文档数;ti:文档 i 中,
所有的词汇数。
对算法中词汇权重计算公式的改进
为了更好地进行主题分析,在对关键词汇权重的计算中需要考虑 HTML 页面的文档结
构和中文的写作习惯等特征,因此,对词汇权重计算公式(2)进行如下改进。
根据 HTML 页面的文档结构和中文的写作习惯,把词汇出现在 HTML 页面的位置分为
以下 7 个等级:
1)〈title〉〈title〉标签中的词汇,通常都直观的反映了页面的主题,所以给其位置
重权为 P1 远大于其他等级的权重;
2)〈strong〉〈strong〉、〈B〉〈B〉、〈I〉〈I〉、〈H1〉〈H1〉、〈meta〈
meta〉等强调性的标签中的词汇,例如〈meta name=“keywords” content=“业务” ,/〉或
者标点符号《》和“”之间的文字更有可能是关键词汇,给其位置权重为 P2;
3)〈a〉〈a〉锚或超链接中的词汇给其位置权重为 P3;
4)正文的第一段中词汇给其位置权重为 P4;
5)正文最后一段中词汇给其位置权重为 P5;
6)其他段落中首句或尾句的词汇给其位置权重为 P6;
7)其他位置的词汇给其位置权重为 P7,其中,P1〉P2〉P3〉P4〉P5〉P6〉P7,如
果没有在相应位置 j 处出现,则 Pj(1〈=j〈=7)为 0。
通过对用户打开文档 D 的解析和分词,得到网页中词汇集,各个词汇权重可通过公式
(3)计算。
(3)
其中,W(kt :D)词汇 kt 在页面 D 中的权重;TF(kt :D)词汇 kt 在打开文档 D 中出现
的次数;DF(kt :D)所有文档中,出现词汇 kt 的文档数,例如“业务”在 100 篇文档中的 50
篇出现过,则 DF(Document Frequence,文档频率)就是 50;N :所有文档数;Pj :位
置权重(1〈=j〈=7),表示同一个词汇在不同的位置的不同权重。
计算完各词汇的权重之后,按词汇排序,文档 D 的向量为词汇, Wn 为词汇 Kn 的权
重。下一步就是计算各页面与主题的相似度,通常都采用向量余弦来表示,T 为用户关注
主题向量,D 为所查询到的文档,其公式如下:
(4)
考虑 HTML 页面的文档结构和中文的写作习惯等特征,对词汇权重计算公式进行改进
,可以更准确地分析用户关注的主题,从而进一步提高了搜索引擎中主题分析器的性能,
进而提高搜索引擎的性能。
4 结束语
本文结合已有的 DWR 技术和搜索引擎基本结构,设计了一个基于事件驱动模型思想
的搜索引擎系统,提出了基于用户停留时间来分析用户对打开页面主题关注程度的搜索引
擎算法,并对算法中关键词权重的计算公式进行了改进,以期能够解决用户搜索需求的随
机性问题及大量的用户兴趣特征需要维护的问题。
然而,在异步更新后,计算页面内容与用户随机主题相似度时需要大量的计算的问题
,以致响应速度较慢。所以,如何提高响应速度是下一步研究的主要目标。
参考文献:
[1] 李晓明,陈建国.搜索引擎技术及趋势[J].IT 聚焦:搜索引擎,1992(2):83.
[2] 张立彬,杨军花,杨琴茹.第三代搜索引擎的研究现状及其发展趋向探析[J].信息系统:
情报理论与实践,2008,31(5):788.
[3] 陈健,印鉴.基于影响集的协作过滤推荐算法[J].软件学报,2007,18(7):1685-1694.
[4] Konstan J,Miller B,Maltz :Applying Collaborative Filtering to Usenet
News[J].Communications of the ACM,1997,40(3):77-87.
[5] 常庆.风险主题搜索引擎相关技术的研究与应用[D].西安:西北大学,2008.
[6] 王颧,黄厚宽,田盛丰.文本分类实现技术[J].广西师范大学学报:自然科学
,2003(1):173-179.
[7] 张东礼,江东升,郑纬民.基于 VSM 的中文文本分类系统的设计与实现二[J].清华大学
学报:自然科学版,2003(9):1288-1291.
[8] 李雪雷,张冬茉.一种基于空间向量模型的文本分类方法[J].计算机工程
,2003(17):90-92.
[9] Salton C, WEighting Approaches in Automatic Text
Relrieval[J].Information Processing and Management,1998,24(5):13-52.