个性化综合倒排索引在Lucene中的应用

  • 格式:doc
  • 大小:22.00 KB
  • 文档页数:6

个性化综合倒排索引在Lucene中的应用作者:林洁来源:《电脑知识与技术》2010年第04期摘要:该文针对目前通用搜索引擎存在的不足,提出在建立普通倒排索引的基础上,再建立一个记录用户手动标注信息的综合倒排索引,并结合渠道奖励词频算法和文档关注度算法动态更新综合倒排索引,最后在Lucene环境下实现了一个体现用户个性的搜索引擎。

关键词:综合倒排索引;词频;渠道;文档关注度;Lucene中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)04-0932-03Application of Personalized Synthetically Inversed Index Based on LuceneLIN Jie(Hangzhou Normal University Qianjiang College, Hangzhou 310012, China)Abstract: Aiming at the actual flaw of current search engine, the synthetically inverted index was built by the information which was marked by users based on building a traditional inversed index. Meanwhile, algorithms of statistical word frequency and channels and document attention algorithm were used to update the personalized synthetically inverted index. Finally, the paper designed a search engine according to users' personalization based on Lucene.Key words: synthetically inversed index; word frequency; channel; document attention algorithm; lucene随着计算机的存储设备容量不断增大,散落在本地计算机或者局域网内计算机系统各个角落中的文件、邮件和图片等结构化和非结构化文档也在快速增长,由于操作系统自带的搜索工具的功能非常有限,当用户在本地或者局域网中查找各种各样的信息时,搜索有如大海捞针,速度也非常的缓慢,如何满足用户个性化的需求、协助用户从海量信息中找到自己所需的信息成为了个性化搜索引擎的发展方向。

1 个性化综合倒排索引关键技术1.1 综合倒排索引综合倒排索引就是以用户手动标注的关键词、主题词和评语共同作为索引词对文档建立的倒排索引。

当用户在计算机上阅读或处理不同的文档时,借助专利——基于关键词的个性化文档处理系统[1],用户有意识的对文档的内容进行关键词、主题词和评语等信息的标注,系统利用鼠标轨迹的一些特定移动轨迹来抓取并存储这些信息。

综合倒排索引结构如表1所示:表1 综合倒排索引结构其中:1)Mark_Word表示用户标注的索引词,可以是关键词,也可以是主题词或是用户标注的评语;2)HFc代表用户采用多种渠道标注某索引词后该索引词最终的词频奖励值,体现索引词对用户的重要程度;3){{h1,h1_num},…,{hn,hn_num}}记录用户标注索引词时所使用的渠道集合以及使用不同渠道的次数;4)In_Time表示添加索引词的时间;5){d1,…,dm}表示用户手动标注索引词时相对应的文档编号集合。

1.2 普通倒排索引和综合倒排索引的有效结合考虑到用户的操作行为和操作习惯,刚开始肯定会有很多用户不太愿意对文件进行过多的信息标注,另一方面单纯依靠用户标注所建立的综合倒排索引是不够的,因为用户阅读的文档还只是信息资源中的很小一部分,当用户想要查找其它相关资源时,仍然还需要借助对所有文档通过自动分词所建立普通倒排索引进行检索。

本文认为通过对用户标注的关键词、主题词和评语等信息,并且将其作为索引词保存生成一个规模较小的个性化综合倒排索引,该索引的大小控制其能保存在内存中,如果有相当的查询在这个性化综合倒排索引文件中获得满足用户设定的K 条返回结果时,则查询结束;当检索得到的结果不足时,再去访问磁盘上的整个普通倒排索引文件。

通过这种方式,系统可以节省大量磁盘的访问开销,检索效率将得到大大提高,同时检索的结果也更能满足用户的个性化需求。

1.3 文档关注度文档关注度是用户对文档的重要性、参考价值以及喜爱程度的综合评价。

文档关注度表结构如表2所示:表2 文档关注度表结构其中:1)Did表示用户曾经使用过并且标注过信息的文档代号;2)Gz表示用户对某文档的关注程度(简称文档关注度);3)Fw表示文档被使用次数;当某个关键词通过某个渠道被标注时,或者标注主题词和评语时,必然会与某个文档相关联。

为了使各种文档之间的比较能相对公平,所有的文档取与它关联的最重要的前k个索引词进行词频Fc平均,对于总索引词少于k个的情形,认为剩余的索引词词频为0。

计算文档的关注度Gz的公式可以表示为:(1)其中, Rw表示文档使用频率的权重,Rc表示重要索引词词频均值的权重。

1.4 词频渠道奖励词频渠道奖励就是模仿人类记忆过程中的感观渠道的综合作用和新鲜感对记忆的影响,将用户的操作习惯进行量化,便于挖掘用户潜在的兴趣。

用户在计算机上对文档进行操作时,不同的用户有不同的操作习惯,本文提到的渠道是指用户手动对文档进行标注所采用的途径和方法,比如屏幕精确取词、输入过程取词等等,对于用户标注的索引词,我们根据不同的渠道赋予不同的词频奖励值,借此反映用户对该标注词的感受强度。

1.4.1 单渠道词频奖励本文认为当用户使用一个新的渠道来标注索引词时对记忆的促进最大,奖励词频值HF0;第二次使用奖励HF0×Zd,其中Zd(0(2)1.4.2 多渠道词频奖励当用户像在印刷材料上用笔去做标注一样习惯对电子文档进行手动标注时,更为普遍的情况是用户在使用文档时,会采用多种渠道来标注索引词,在这种情况下,就需要判断两个渠道的相似程度,本文通过渠道相似度Q(0Xd(Hi,Hj)=Zdn(1-Q(Hi,Hj)·(1-Zdm)) (3)于是使用Hi渠道第n次的奖励词频值HFt(Hi,n)可以表示为:HFt(Hi,n) =HF0×Xd(Hi,Hj) (4)综合以上,当一个索引词在渠道Hj用过m次的情况下,渠道Hi用第n次时,该索引词的渠道奖励词频值为[2]:HFc(n)=HFc(n-1)+1+HFt(Hi,n) (5)2 个性化综合倒排索引在Lucene中的实现2.1 Lucene技术简介Lucene是一个基于Java的全文检索引擎的架构,它提供了完整的查询引擎和索引引擎,可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。

使用Lucene工具包进行搜索应用程序的开发,主要是利用Lucene的索引与搜索方面的优良性能,简洁、高效地实现应用程序的搜索功能。

Lucene与搜索应用的关系如图1所示。

2.2 个性化综合倒排索引的建立建立个性化综合倒排索引之前,先根据自动分词的方法,生成一个普通倒排索引,先检查该文件是否已经存在,如果不存在,则开始创建。

同时创建一个记录文档使用频率和关注度等信息的顺序索引,本文将个性化综合倒排索引称为“UMARK_INDEX”,将文档关注度的顺序索引称为“DOC_INDEX”;如果已经存在,则不再重新建立。

2.3 添加索引词标注信息根据专利基于关键词的个性化文档处理系统[1],获取用户标注的信息和渠道需要一系列的子部件相互配合才能完成,是一项非常复杂的工程,为了便于实验,本文通过用户手动输入相关信息来代替对索引词的标注,用户标注文件名、标注信息和渠道以后,系统将其保存在个性化综合倒排索引中,整体流程如图2所示。

在信息的保存过程中,系统首先检查用户标注的索引词是否已经在个性化综合倒排索引中存在,如果不存在,则将该索引词添加到综合倒排索引中,同时按照单渠道词频奖励算法给予新添加的索引词一定的渠道词频奖励值,同时记录该渠道的使用次数;如果用户标注的索引词已经存在,则继续检查用户标注的渠道编号是否已经添加到该索引词对应的渠道集合中,同时获取相关渠道的使用次数,如果多次都只使用同一个渠道来进行标注,则继续使用单渠道词频奖励算法,反之则按照多渠道词频奖励算法进行词频奖励,最后更新不同渠道使用的次数和该索引词的词频奖励值。

本系统中设定用户标注的渠道只有H1、H2和H3,它们的初始渠道词频奖励值如表3所示。

当用户每次都使用同一个渠道标注来标注某个索引词时,采用单渠道词频奖励算法进行词频奖励,按照系统事先约定的渠道相似度(如表4所示),关于多渠道的判断,本系统是这样界定的:假设用户第一次使用H1渠道标注索引词后,第二次使用H2渠道来标注相同索引词时,就采用多渠道词频奖励算法,当用户第三次再用采用H1渠道标注同一个索引词时,也按照多渠道词频奖励算法来计算。

2.4 文档关注度更新用户在手动标注信息的过程中,系统除了统计和更新索引词和渠道信息外,还动态更新文档关注度值。

用户对文档标注的信息越多,说明这篇文档对用户就越重要,相对应的文档关注度值就越高。

系统对文档关注度专门建立了一个记录文档编号和文档关注度的文档关注度表,同时假设用户标注过一次文档,则代表该文档被使用过一次,也就是说文档被标注过一次,文档使用次数(Fw)的值就加1。

当用户指定标注文档后,系统先去个性化综合倒排索引中查找该文档中用户曾经标注过的索引词,同时取出每个被标注的索引词的渠道词频奖励值。

当用户标注相关信息后,系统将其保存到综合倒排索引中后,根据文档关注度算法对文档关注度表进行更新,图3显示了文档关注度表中关于文档被使用的次数已经该文档的文档关注度(Gz)等信息。

图3文档关注度更新后的信息2.5 个性化搜索的实现为了实现搜索结果的个性化,搜索流程如图4所示,当用户输入要搜索的信息后,系统对用户输入的信息进行解析后开始去个性化综合倒排索引中检索,首先判断用户输入的信息是否属于被标注的索引词,如果是,则直接在个性化综合倒排索引中返回对应的文档信息,然后系统再去普通倒排索引中查找,若返回的文档信息与个性化综合倒排索引中的结果相同,则不重复显示。

这样一来,返回的搜索结果分为两个部分,系统把从个性化综合倒排索引中查找出来的结果显示在前面,并且按照文档关注度值从高到底显示,另外,从普通倒排索引中返回的结果则按照索引词在文档中Score[5]从高到低进行显示。