一种轻量级个性化搜索引擎及其搜索方法

文档序号:6573610阅读:202来源:国知局

专利名称::一种轻量级个性化搜索引擎及其搜索方法一种轻量级个性化搜索弓I擎及其搜索方法(一)
技术领域
本发明涉及的是一种网络技术,尤其是搜索引擎技术。(二)
背景技术
.如今的因特网对多数人己不再陌生,网络搜索引擎成了人们获取信息的一个重要途径,人们在希望搜索引擎能够提供全面的信息资源的同时,也对搜索引擎的服务提出了更高的要求,这是搜索引擎设计的一种挑战,也是未来搜索引擎的发展趋势。纵观目前因特网上流行的搜索引擎,普遍是基于关键字的查询,用户的每次搜索都是相互独立的,不能根据用户的兴趣给出适应用户需求的查询结果。而如今社会分工的细化与个人兴趣的不同,决定了不同领域的用户,不同社会群体对信息需求的不同。于是现在的搜索引擎应该能够根据用户的不同需求来对查询结果进行排序,也就是针对不同用户的个性化定制,使搜索结果根据用户需求收敛,使搜索引擎趋向于反映用户的偏好。为了适应这种需求,人们提出了个性化的搜索引擎的设计思想,通过增加用户行为数据库来跟踪用户的兴趣或需求。但是,这需要在服务器端建立庞大的用户信息库与用户行为库,同时要定期对这些数据进行维护,在如今面向因特网的搜索来说,这种在服务器端的巨大开销限制了这种方法的可行性,此外通过用户登录搜索的方式,对于公共搜索引擎的用户来说,也不是一种方便的信息查询方式。专利申请号为200510050198.5,名称为"基于链接分析的个性化搜索引擎方法"中公开的技术方案,是通过建立知识网络模型描述用户兴趣,建立多态链接网络记录网络节点之间链接的不同类别,进而在此基础上展开链接分析得到搜索结果。(三)
发明内容本发明的目的在于提供一种在搜索引擎的服务器端不需要增加存储开销,符合用户兴趣的个性化搜索引擎的一种轻量级个性化搜索引擎及其搜索方法。本发明的目的是这样实现的本发明的搜索引擎由信息抓取模块、信息检索模块和用户个性分析模块三部分连接组成,其中信息抓取模块由抓取程序和索引程序组成,因特网信息资源和Web库接入信息抓取模块,信息抓取模块的输出连接用户个性分析模块,用户兴趣记录与查询关键字输入信息检索模块,信息检索模块与用户个性分析模块,信息检索模块与用户个性分析模块结合提供个性化检索服务。本发明的搜索引擎的搜索方法为(1)信息抓取模块从配置了需要抓取的URL的Web库中获取抓取列表,提交给抓取程序,通过抓取程序抓取因特网信息资源提交给索引程序,同时根据需要更新Web库内容;(2)信息检索模块获取用户的査询请求,提取用户客户端的兴趣记录,同时把査询结果返回给用户,信息检索模块将用户兴趣记录与査询关键字同时提交给用户个性分析模块;用户个性分析模块生成用户特征向量提交给索引器/查询分析器;索引器/查询分析器根据索引库中的信息与用户特征向量结合得到查询结果;最后通过信息检索模块返回给用户。本发明的搜索方法还可以包括1.所述的用户兴趣记录的获取方法为搜索引擎记录用户的点击搜索结果的行为,对于只点搜索表单按钮而未访问搜索结果的行为不予记录,用户可以通过点击搜索结果中的访问并记录我的兴趣链接来访问搜索结果列表中感兴趣的网站,并让搜索引擎存储访问记录。2.所述的用户兴趣记录采用cookie形式存储在用户的客户机中。3.所述的用户个性分析模块生成用户特征向量是将用户兴趣记录抽象成一个向量,同时根据用户兴趣记录与信息源文本集、即抓取模块所维护的信息库的相似性特征。4.所述的用户个性分析模块生成用户特征向量还包括进一步抽象成基于关键字权重的向量。本发明基于现今个性搜索的不足,提出了一种轻量级的个性化搜索引擎的设计思想与实现方法。所谓轻量级是指在搜索引擎的服务器端不需要增加存储开销,充分利用客户端的资源来实现个性化的搜索。通过客户端的存储与服务器端的用户行为跟踪引擎的结合,本发明给出了针对用户不同需求,符合用户兴趣的个性化搜索引擎的解决方案。整个系统由"信息抓取模块","信息检索模块"和"用户个性分析模块"三部分。其中"信息抓取模块"由"抓取程序"和"索引程序"组成;"信息检索模块"与"用户个性分析模块"结合提供个性化检索服务。整体结构图如图1所示,可以看出虚线左侧负责搜索引擎数据的抓取,虚线右侧负责搜索引擎的搜索。本发明的主要特点体现在(1)搜索引擎的服务器端不需要增加存储开销,充分利用客户端的资源来实现个性化的搜索;(2)根据用户的不同需求来对査询结果进行排序,也就是针对不同用户的个性化定制;(3)基于向量空间的个性化检索模型。(四)附图是本发明的框图。具体实施方式本发明的搜索引擎由信息抓取模块、信息检索模块和用户个性分析模块三部分连接组成,其中信息抓取模块由抓取程序和索引程序组成,因特网信息资源和Web库接入信息抓取模块,信息抓取模块的输出连接用户个性分析模块,用户兴趣记录与查询关键字输入信息检索模块,信息检索模块与用户个性分析模块,信息检索模块与用户个性分析模块结合提供个性化检索服务。结合图l,虚线左侧负责搜索引擎数据的抓取,虚线右侧负责搜索引擎的搜索。(1)信息抓取模块从Web库(配置了需要抓取的URL)中获取抓取列表,提交给抓取程序,通过抓取程序抓取因特网信息资源提交给索引程序,同时根据需要更新Web库内容。(2)信息检索模块是用户与搜索引擎的一个接口,它可以获取用户的査询请求,提取用户客户端的兴趣记录,同时可以把査询结果返回给用户。信息检索模块将用户兴趣记录与查询关键字同时提交给用户个性分析模块;用户个性分析模块生成用户特征向量提交给索引器;索引器/查询分析器根据索引库中的信息与用户特征向量结合得到査询结果;最后通过信息检索模块(搜索接口)返回给用户。1.用户兴趣记录的获取用户搜索关键字和点击的搜索结果链接网址在一定程度上能反映出用户的访问偏好,相比之下,搜索结果网址链接比搜索关键字更能体现用户实际的兴趣,因为用户可能尝试性地输入某关键字后发现无感兴趣的内容时,往往不会去点击搜索结果中的链接。同时对于是否获取用户访问记录也涉及到用户隐私问题,需要由用户自由决定是否让搜索引擎记录用户兴趣。搜索引擎记录用户的点击搜索结果事性的行为(连同搜索的关键字),对于只点搜索表单按钮而未访问搜索结果的行为不予记录,因为后者相对于前者来说意思不是太大。关于用户隐私与自主性,用户可以通过点击搜索结果中的"访问并记录我的兴趣"链接来访问搜索结果列表中感兴趣的网站,并让搜索引擎存储访问记录。2.用户兴趣记录的存储搜索引擎需要根据用户的兴趣来返回搜索结果,但是在服务器端的搜索引擎如何获取这些用户兴趣是一个需要解决的问题,同时在获取这些用户兴趣记录的同时还要保证尽量小的额外开销。记录用户兴趣的方式一般方法是在搜索引擎服务器端建立用户注册信息表,为每一个搜索的用户维护用户注册信息,同时记录每个用户的访问行为。但是这有两个缺点,一是在服务器端需要额外的庞大的存储开销,二是每次用户访问时都要更新用户行为表中的记录,就算采用session延迟写入数据库的方式来记录用户访问行为,也会因为服务器端需要创建大量的session会话而消耗服务器内存资源,对于面向全网的搜索引擎来说,其开销更是不可想象。轻量级个性化搜索引擎用户兴趣记录采用cookie形式存储在用户的客户机中。Cookie是服务器发送给浏览器的体积很小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把它们原样发送给服务器。通过让服务器读取它原先保存到客户端的信息,网站能够为浏览者提供一系列的方便。同时,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此Cookie不会占用搜索引擎用户的客户机太多资源,更不会被用作"拒绝服务"攻击手段,也避免了一些采用登录搜索方式中维护大量用户注册信息与行为信息的开销。另外还可以利用cookie的存储来实现用户的访问历史搜索记录。3.基于向量空间的个性化检索模型在获取用户兴趣记录并在用户客户机存储用户访问行为之后,如何根据用户兴趣记录来对搜索结果重新排序,并返回针对用户偏好的不同的搜索结果是搜索引擎需要解决的另一个重要问题。这需要在算法上实现个性化査询,个性化査询应该在普通査询的基础上,根据用户兴趣记录来对普通查询结果进行过滤和非序,使查询结果趋向于反映用户的个人需要。普通搜索引擎的査询遵循了向量空间模型,"抓取模块"所得到的信息源页面是以基于关键字权值的向量的形式存在于索引库中,搜索关键字与信息源页面存在一种相关性。考虑到用户兴趣记录中的搜索关键字和访问网站信息与普通搜索时的关键字之间的相似性,本方法可以基于此引入用户特征向量的概念,将用户兴趣记录抽象成一个向量,同时根据用户兴趣记录与信息源文本集(抓取模块所维护的信息库)的相似性特征,用户模型也可以进一步抽象成基于关键字权重的向量。下面是本发明的一个具体实例-1用户兴趣的获取用户的行为可以通过其访问的网站信息来反映,所以可以将在一定时期内一定数量的网站信息来作为记录用户兴趣的模型InterestWeb。模型的各属性如下:<table>tableseeoriginaldocumentpage8</column></row><table>用户输入关键字搜索后,在搜索结果列表中,若点击"访问并记住我的兴趣"链接后,系统将首先调用搜索引擎的用户兴趣记录获取程序,将用户所点击列表项对应的网站的标题、网址、快照地址和摘要组装成interestWeb对象同时传递给用户兴趣记录存储程序,并利用3.2的方案来实现用户兴趣记录的存储。注意,如果用户输入关键字搜索后,未点"访问并记住我的兴趣"链接,系统将不会在用户客户机上记录访问信息,同时在下次搜索时也不会为该访问记录重新排序。这也在一定程度上体现了个性化搜索引擎的用户自主性。2用户兴趣记录的存储搜索引擎可以为用户创建M(0〈M<10)个cookie。在cookie个数未超过上限时,用户每搜索一个关键字并点击"兴趣访问"链接时,cookie将增加一条cookie记录,cookie由cookie名禾卩cookie值组成,cookie名预置成"key01,key02,…,keyM",每条cookie值的记录格式如下标题"用户关键字槲网站l标题ll网站l网址ll网站l快照l1网站1摘要$$网站2标题|l网站2网址ll网站2快照l|网站2摘要$$......SS网站N标题Il网站N网址Il网站N快照ll网站N摘要"(0<N〈6)字符编码采用UTF-8格式,另外cookie的名和值不能包含cookie的名字和值不能包含空格和[]()=,〃/@:;字符,所以在原字符串转换成UTF-8存储之前需要进行字符串转换,如titleStr二R印lace(titleStr,〃&equal〃,〃=〃)将字符串的转换成&equal,字符串的替换由自定义方法toCookieStr(String)来实现。存储算法如下(其中M为搜索引擎为每个用户保存兴趣关键字cookie项的上限值,N为搜索引擎为每个用户某关键字存储历史访问记录的上限值)1)接收interestWeb对象;2)取出对象中的已经过UTF-8编码的各属性关键字(key)、网站标题(title)、网址(url)快照地址(cachedUrl)和摘要(summary);并将各字符串通过toCookieStr(String)方法转换成适应cookie存储的格式;3)根据关键字key,设置计数器i,在i小于M的情况下遍历cookie中的cookie项,査找cookie中貼前的字符串Str01dPre与关键字key匹配的cookie项,若找到匹配的项则退出循环。根据计数器最终的结果i,若i小于M说明找到匹配转4),否则转5);4)得到cookie名"key"+i;5)拼接待存储串StrNew,title+”II”,,+url+,,II,,+cachedUrl+,,||,,十s醒ary;6)取出cookie项中鼎后的字符串Str01dSuc,用split("\\$\\$")方法将该字符串分隔成字符数组,判断数组长度是否超过N,若数组长度不超过N则转7),否则转8);7)修改新cookie项为原cookie串##前字符串Str01dPre+"##"+待存储串StrNew+"$$"+原cookie串##后字符串Str01dSuc,将新串存入cookie,替换原cookie项,转13);8)去除原串最后一个"$$"符后面的字符串(连同"$$"符)得到字符串Str01dSucTemp;修改新cookie项为原cookie串###前符串+"##"+待存储串+"$$"+Str01ldSucTemp,将新串存入cookie,替换原cookie项,转13);9)根据i生成cookie名"key"+(i+l);10)拼接待存储串StrNew,key+"抑"+title+"||"+url+,,II,,+cachedUrl+,,||,,+summary;11)设置cookie项目生命周期;12)将新cookie项存入cookie中;结束。3基于向量空间的个性化检索模型1)在用户提交搜索时,搜索引擎将同时获取用户搜索关键字和用户兴趣记录,如果未能获取用户兴趣记录或用户兴趣记录为空,则搜索引擎进行普通查询并返回结果。如果获取了用户兴趣记录,则搜索引擎将用户兴趣交由"用户个性分析模块"处理,处理过程算法如下2)搜索引擎读取cookie,将每一个cookie项中用"$$"分隔的字符串转换成interestWeb对象,将key01-keyM的所有cookie项转换成用户兴趣访问列表interestWebList;3)遍历interestWebList,抽取各关键字,存入用户兴趣关键字向量interestKeyVector;4)抽取各网站标题interestWeb.getTitle(),对网站标题进行分词处理,得到多个次关键字,将这些次关键字附加到用户兴趣关键字向量interestKeyVector中;5)建立用户兴趣关键字权值向量interestWeightVector,目前认定这些用户兴趣关键字权值是相同的,将interestWeightVector中各值初始化成1。其中,分词也是搜索引擎需要解决的重要问题,中文分词不同于英文分词,因为英文单词之间的空格足以区分不同的査询关键字,而中文固有的特征决定了需要采取更有效的方式来实现分词。一般的分词方式有三种1)单字切分中文搜索词一个一个单字分开来。这种方式的优点是分词算法简单,最大的缺点是会极大增加索引,相应地,索引条目的内容也会增多,严重影响搜索效率。2)二分法对中文搜索词中每两个字进行次切分,比如,对搜索词"计算机学院"进行二分法切分后得到的关键字将会是"计算/算机/机学/学院"。这种分词方式只是机械地对搜索词进行切分,不考虑词义与词法,所以会产生大量的无用关键字,同时增加了无用的索引开销。3)词库分词这是目前最理想的中文分词方式,方式是根据已经建立好的词的集合,即词库来匹配搜索词的子串。比如,词库中已经存在"计算机"、"学院"和"计算机学院"三个词,则"计算机学院"便可以切分成这三个关键字。假设搜索引擎中"抓取模块"获取的索引库中,每个URL包含的关键字身量为尺=(n…人)其中n…人该URL中的关键字每个关键字的权值向量为'F=(Vl,V2,""v)其中v"v"…,v"是每个关键字对应的权值用户兴趣模型中用户特征向量为[/=(Ml,"2,"")其中"""2"'"""是用户兴趣关键字(包括分词后的次关键字),用户兴趣模型中每个关键字的权值都设置为默认值l。接下去的任务是建立用户兴趣模型与信息源文本集之间的相关性,相关性的算法如下1)搜索引擎通过普通査询得到初始査询结果;2)对于1)中査询结果中给出的各URL,筛选符合条件《门U^0的URL,其中0为空集,若不存在这些URL转5),否则转3);3)为满足条件的URL计算与用户兴趣模型之间的相关性S-J^(1"'《"),其中K的计算方法为若Ae《,且^=、J化=v尸否则K=04)排除相关性为零的页面,按相关性S从大到小对搜索结果进行排序,最后将结果返回给用户,转6);5)将普通査询结果返回给用户;6)结束。权利要求1、一种轻量级个性化搜索引擎,由信息抓取模块、信息检索模块和用户个性分析模块三部分连接组成,其特征是其中信息抓取模块由抓取程序和索引程序组成,因特网信息资源和Web库接入信息抓取模块,信息抓取模块的输出连接用户个性分析模块,用户兴趣记录与查询关键字输入信息检索模块,信息检索模块与用户个性分析模块,信息检索模块与用户个性分析模块结合提供个性化检索服务。2、一种轻量级个性化搜索引擎的搜索方法,其特征是(1)信息抓取模块从配置了需要抓取的URL的Web库中获取抓取列表,提交给抓取程序,通过抓取程序抓取因特网信息资源提交给索引程序,同时根据需要更新Web库内容;(2)信息检索模块获取用户的査询请求,提取用户客户端的兴趣记录,同时把査询结果返回给用户,信息检索模块将用户兴趣记录与査询关键字同时提交给用户个性分析模块;用户个性分析模块生成用户特征向量提交给索引器/査询分析器索引器/査询分析器根据索引库中的信息与用户特征向量结合得到査询结果;最后通过信息检索模块返回给用户。3、根据权利要求2所述的一种轻量级个性化搜索引擎的搜索方法,其特征是所述的用户兴趣记录的获取方法为搜索引擎记录用户的点击搜索结果的行为,对于只点搜索表单按钮而未访问搜索结果的行为不予记录,用户可以通过点击搜索结果中的"访问并记录我的兴趣"链接来访问搜索结果列表中感兴趣的网站,并让搜索引擎存储访问记录。4、根据权利要求2所述的一种轻量级个性化搜索引擎的搜索方法,其特征是所述的用户兴趣记录采用cookie形式存储在用户的客户机中。5、根据权利要求2所述的一种轻量级个性化搜索引擎的搜索方法,其特征是所述的用户个性分析模块生成用户特征向量是将用户兴趣记录抽象成一个向量,同时根据用户兴趣记录与信息源文本集、即抓取模块所维护的信息库的相似性特征。6、根据权利要求5所述的一种轻M:级个性化搜索引擎的搜索方法,其特征是所述的用户个性分析模块生成用户特征向量还包括进一歩抽象成基于关键字权重的向量。全文摘要本发明提供的是一种轻量级个性化搜索引擎及其搜索方法。由信息抓取模块、信息检索模块和用户个性分析模块三部分连接组成,其中信息抓取模块由抓取程序和索引程序组成,因特网信息资源和Web库接入信息抓取模块,信息抓取模块的输出连接用户个性分析模块,用户兴趣记录与查询关键字输入信息检索模块,信息检索模块与用户个性分析模块,信息检索模块与用户个性分析模块结合提供个性化检索服务。本发明的服务器端不需要增加存储开销,充分利用客户端的资源来实现个性化的搜索。通过客户端的存储与服务器端的用户行为跟踪引擎的结合,本发明给出了针对用户不同需求,符合用户兴趣的个性化搜索引擎的解决方案。文档编号G06F17/30GK101127043SQ200710072608公开日2008年2月20日申请日期2007年8月3日优先权日2007年8月3日发明者研初,寒吴,张健沛,张泽宝,泼徐,磊徐,李泓波,李连江,静杨,董喜双申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1