杨韦洁+高珑+苏静
〔摘要〕针对传统数字图书馆中基于关键字的P2P查询扩展存在对用户检索词语义信息解释不足的缺陷,本文提出一种P2P环境下基于语义的节点查询扩展方法,通过把关键字关联表和本体相结合,实现了一种个性化查询扩展方法,同时利用这种扩展方法实现P2P中基于兴趣网络的搜索,能够较大幅度提升检索效率。
〔关键词〕P2P;语义扩展;关键字关联表;数字图书馆
随着信息技术的发展,数字图书馆的规模不断扩大,文本、视频、音频等流媒体资源急剧扩充,网络规模也不断扩大。为了解决传统客户机/服务器网络结构(C/S,Client/Server)在应对数字图书馆日益庞大的存储量和传输量带来的读者检索体验迟滞、传输速度缓慢的影响,点对点(P2P,Peer to Peer)技术被越来越广泛的应用在数字图书馆中,读者对建立在这种技术之上的数字图书馆检索性能的要求也越来越高,而查询扩展作为信息检索中的一个重要环节,对于改善信息检索中查全率和查准率非常重要。不同于C/S结构,由于非结构化P2P网络具有动态、完全分布式结构的优点,它在数字图书馆检索的应用虽然比较广泛,但仍然具有以下两类问题:(1)P2P中同样存在“词典问题”,即由于大多数用户提交的查询词都是短词,会出现缺少上下文信息而存在语义歧义现象;同时由于自然语言大量同义词的存在,很可能会导致用户所需要结果漏检。(2)传统的基于关键字的查询扩展会把与用户检索词不相似而相关的结果漏检也就是缺乏相关性推理机制,如,“医生”和“疾病”两个词语,尽管相关性很高,但由于其相似性非常低,所以经常被漏检。上述问题归结为一点,就是缺乏对读者检索关键字进行必要的语义信息和推理信息解释。然而虽然之前的基于语义查询扩展方法能够通过本体所提供的良好的层次化结构和推理机制在概念层次上对P2P中节点用户的查询关键词进行必要的解释和推理,但这种语义扩展方式下,由于本体库构建后是静态的,难以适应对新词或未收录词的扩展需求。为了避免上述问题,本文提出一种改进方法,即将关键字关联表和本体技术相结合,该方法首先利用节点本地本体库扩展检索词,然后采用历史查询记录中的关键字关联表再次对原始检索词进行扩展,最终对扩展结果进行权重更新,根据权重值从大到小输出扩展结果,以提高读者对检索结果的满意程度。
1相关理论基础
11查询扩展方法
“查询扩展”概念的提出,最早可以追溯到1986年,学者Van Rijsberge[1]指出“仅限于原查询词来提高系统的检索性能是有限的,必须对原查询进行修改以提高检索性能”,同时他还指出,查询扩展主要涉及原查询词的权重修改和加入与原查询相关的词。目前通过对现有大量国内外文献研究发现,不同学者从不同角度对查询扩展方法进行了研究,主要分为3个阶段:①基于关键字的查询扩展技术。这一阶段又按照扩展词来源不同有全局分析、局部分析、基于关联规则分析、基于用户查询日志分析以及上述方法的任意组合[2-3]。后来学者Song Jin等人[4]指出可以使用标签共现的方法发现扩展词。上述这些方法都是在符号匹配层次上进行的扩展,忽略了查询语义及查询概念之间的语义关联,因而没有充分表达和扩展用户查询意图,也就不能从根本上消除用户查询意图与检索结果之间的语义偏差和用户查询的歧义性问题,同时会出现查询漂移问题。②语义扩展阶段。该阶段主要是把本体技术或概念图等引入到查询扩展中,解决了对初始查询词语义信息的充分挖掘。虽然语义扩展能够清晰的表达用户检索词相关信息,但是单独使用语义扩展的缺陷也是比较明显的,例如,静态性或非即时性以及语料库无关性。③前两个阶段的融合。这时的研究目的是为用户提供个性化的查询扩展,使用的方法包括语义扩展与用户兴趣模型相结合、语义扩展与关联规则相结合、语义扩展与局部共现分析或互信息相结合、上下文感知矩阵与本体相结合、概念图与知网相结合、语义扩展与社会标签相结合等。
目前P2P中查询扩展主要有两大类:基于关键词的查询扩展和基于语义的查询扩展。目前基于关键词的查询扩展研究主要是根据节点用户历史记录进行查询扩展,具体又有两种方式:①分析用户历史查询记录,建立查询关键词与文档用词之间的关联关系,为下一次扩展提供候选词依据[5-6];②分析用户历史记录,建立查询关键词与文档之间的关联关系,可以对传统局部上下文分析技术进行改进[6]。而P2P中基于语义的查询扩展根据语义的表现形式不同,分为两种方式:①基于LSI的查询扩展方法,其主要思想是借助于LSI分别进行本地和远程扩展解决同义词问题,通过对两个扩展查询结果的集合操作解决P2P中存在的查询扩展问题[7];②基于本体的查询扩展方法,主要是指节点用户根据语义词典建立本体库[8]或利用大众标签建立本体库,据此进行查询扩展。
综上所述,可以看出现有P2P中的查询扩展基本上都是把关键字扩展和语义扩展人为地割裂开了,没有把两者相结合起来使用。适应于P2P环境的关键字扩展主要是利用节点关键词关联表进行查询扩展,但这只是根据节点的历史查询记录扩展,缺乏查询词的语义性扩展。而P2P中基于语义的查询扩展难以适应对新词或未收录词扩展的需求。因此,随着科学技术的发展和理论研究的深入,网络的普及和文化交流的日益密切,新词不断涌现,尽管节点本体也在不断地更新发展,但是仍然很难跟上应用的脚步。
2基于关键字关联表和本体的查询扩展
为了解决上述问题,本文提出了一种新的语义查询扩展方法,即将关键字关联表和本体技术相结合应用到P2P查询扩展中,来弥补单独使用基于本体查询扩展的缺陷。关键字关联表建立在每一个节点上,通过记录该节点历史成功查询记录,使初始检索词与最终成功检索用词发生关联关系,下一次将该成功检索用词直接作为扩展候选词使用。这种方法也是为用户提供个性化检索的一种途径。通过该方法可以快速适应新环境的变化,弥补利用本体进行查询扩展的不足。
21关键字关联表的建立endprint
关键字关联表(如图1所示)是根据节点用户历史查询记录,为每一个节点建立一个关键字关联表,每个节点仅存储本地节点的关键字关联表信息,相当于一个同义词词典,只是它是根据节点的历史记录建立的,在搜索时可以作为查询扩展的依据。关键字关联表的构建主要有两种方法,一种建立用户输入的初始检索词和最后一个成功检索词之间的关联关系,另一种是建立用户检索词与成功检索的结果文档所使用的标引词之间的关联关系。(如图2所示)本文使用的关键字关联表的构建采用的是后者。也即将查询词空间(用户检索词)与目标文档标引词空间(成功检索的结果文档所使用的标引词)直接关联起来,建立查询单词与目标文档标引词之间的关联关系,其中关联权重可作为选择查询扩展词排序输出的依据。
22语义扩展架构
利用本地本体库对节点查询词进行初步扩展,然后利用该节点的历史查询记录对初次扩展结果进行再次扩展合并,去掉一些语义相关但实际查询不相关的扩展分支,同时对概念树上各个节点的权值进行修正,只有满足一定权值要求的概念才会被最终选中加入查询,同时使得满足一定要求的只在历史记录集中出现的词也能够被选中加入到最终的查询词中。这种结合的算法克服了单独算法的弊端,提供更好的查询质量。首先,可以过滤一些语义上相关但与实际的文档集合不符合的扩展词,提高查准率和查询效率。另外,使用这种算法能够向查询扩展词集中添加语义概念树上没有收录的扩展词。
基于本体的语义扩展,核心任务是一系列语义推理——同义扩展、语义蕴含、外延扩展及语义相关扩展。本文采用如下方法选取扩展词,并赋予扩展词权值。
定义1基于本体的语义扩展候选词集:利用语义词典WordNet为初始查询词构造概念树。记为CForest{SenseTree1,SenseTree2,…,SenseTree n},其中,SenseTree i表示由查询词的一个词义生成的概念树。根据各个词在概念树中的位置定义的权重,反映在语义方面是扩展词和初始查询词的紧密程度。记为WeightSem(Concepti)=1/distance(Root,Concept),其中Root是初始查询词,distance(Root,Concepti)是从初始查询词到Concepti的最短距离。
定义2关键词扩展候选词集:记为StaCandidates{T1,T2,…,Tm},是与初始查询词最相关的m个候选查询词。按照条件概率的方法计算每一个关联关键字的权值,然后根据阈值排序输出。
设历史记录中包含的文档集为D,查询用词A与文档标引词B的关联权重设为B相对于A的条件概率,
3P2P下一种基于语义查询扩展的检索模型
该模型采用基于超级节点的P2P网络结构,它是一种采用超级节点来管理普通节点的半结构化网络,既具有传统集中式P2P系统的可控性和搜索效率高的特点,又能充分发挥非结构化P2P网络扩展性强、容错性好以及负载平衡等优势。网络中各普通节点在本地超级节点的控制下直接建立连接。超级节点负责本地节点的集中认证和管理,并与其他超级节点构成对等结构,同时作为本地的服务提供者和服务接受者,负责本地节点与其他区域超级节点或一般节点的通信。超级节点负责消息在本组中的转发。本文中选取度数较高的节点作为超级节点,便于资源快速在对等网络中传播。图3基于语义查询扩展的检索模型
从图3可以看出,该模型包括6大模块:
(1)词表管理模块。主要由领域专家构建领域词汇表,同时对相关领域词汇表进行定期维护和更新,它是节点用户对本体存储资源的本体化和规范化描述的基础。
(2)提问处理模块。该模块主要是对用户所提检索问题进行分词处理、词性标注、去掉停用词和虚词等操作,得到具有实际意义并能够反应用户真实检索意图的关键词。
(3)语义标注模块。语义标注是根据有关本体为各个节点上的资源标引概念类、概念属性和其他元数据的过程。目前有三类语义标引的方法,即人工标引、领域文档类型定义和文档模式进行概念映射和标引、利用词汇语义分析进行标引。本文是在第三类基础上进行基于本体的语义标引,通过分析文档特征词汇,建立词汇与本体概念之间的映射,采用领域本体对文档进行领域语义标引。根据领域共享词表和本地本体库,各节点对本地可共享信息资源实现语义标引。
(4)本体管理模块。本体管理模块支持本体的创建和进化,负责抽取节点数据的本体化描述,同时对节点本体中新概念进行整合,对本地可共享信息资源的本体和节点用户进行管理并存放于本体库中。
(5)匹配模块。也即语义相似度计算,它是自然语言处理研究的重要组成部分,是衡量用户查询与资源信息匹配度的标准。传统的概念语义相似度计算方法有基于距离的语义相似度、基于信息内容的相似度计算方法、基于属性的语义相似度计算方法,其中影响语义距离的因素主要有:语义重合度、语义深度、语义密度、语义属性。但凡这3种方法单独使用都会存在不足,目前的研究主要集中在把这3种方法混合使用。
(6)资源搜索模块。由于对等网的网络拓扑结构的不同,其资源搜索的路径选择亦不同。对非结构化P2P来说,通常有:泛洪搜索、BFS、迭代深入、随机游走等。而本文采用的是基于兴趣网络的搜索算法,通过引入兴趣组,减轻了节点查找和路由负担,实现高效搜索和资源定位。当一个提问向量被发送到超级节点处,首先会与该节点进行基于距离的相似度匹配,匹配成功后,依次与属于该兴趣组的普通节点本体库和关联表进行查询扩展,其中兴趣组的构建过程包括3个步骤:①对每个节点资源抽取文件特征向量;②采用K-Means对文件向量空间聚类;③建立兴趣索引表,在超级节点处记录同一兴趣的普通节点ID,在普通节点处记录所属超级节点ID。
4实例验证
以某高校图书馆馆藏图书查询为例,分别以3种不同的算法进行分析,通过对比分析查询结果,对上述说明进行验证。根据文章所述各查询算法的特点可知,关键词搜索方便用于有信息记录的用户;语义是固定的语义库,可用于初次使用系统的用户,只要搜索内容在语义库中便可进行搜索,但不可进行自动的语义库扩展。两者结合可以用户初次检索,并可以自动更新扩展语义库。
关键词搜索适合应用于有信息记录的搜索栏目中,对于首次搜索内容,显示结果会存在不准确,内容不全面的情况出现。
基于语义的搜索是建立在语义库的基础上的搜索方式,对于图书馆系统的部分语义库内容如图4所示。图4图书馆检索系统语义库示意图
以搜索关键词“苹果”为例,进行搜索试验,基于语义库和基于语义查询扩展的搜索结果对比显示,如表1所示。表1检索结果对比表
序号〖〗关键词名称基于语义的查询相关结果个性化推荐结果1苹果《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》……《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》、《苹果的种植技术》……
表中包括字段有,关键词序号,关键词名称,查询结果。如表1所示,由于语义库中苹果分类为社会科学类,所以结果显示的均为苹果电脑的相关内容,而用户事实上想搜索关于苹果的饮食和种植方面书籍,但显示结果中没有这一项目。产生这一结果的原因就是建立的语义库中苹果所属社会科学类,而目标搜索结果为自然科学类。语义库中缺少类别扩展以及语义库的静态属性造成了搜索的片面和不准确。于是,笔者采用语义库与关键词的结合完成搜索扩展,一方面补充语义库静态属性的缺陷;另一方面弥补关键词无记录搜索的缺点。采用综合搜索的结果,显示结果除显示苹果电脑相关外,也加入了扩展内容,为用户推荐苹果的种植方面书籍。
由此对比可知,基于语义的查询扩展可以搜索到更加全面完整的结果,并且可以应用于记录和非记录用户的搜索查询。endprint
关键字关联表(如图1所示)是根据节点用户历史查询记录,为每一个节点建立一个关键字关联表,每个节点仅存储本地节点的关键字关联表信息,相当于一个同义词词典,只是它是根据节点的历史记录建立的,在搜索时可以作为查询扩展的依据。关键字关联表的构建主要有两种方法,一种建立用户输入的初始检索词和最后一个成功检索词之间的关联关系,另一种是建立用户检索词与成功检索的结果文档所使用的标引词之间的关联关系。(如图2所示)本文使用的关键字关联表的构建采用的是后者。也即将查询词空间(用户检索词)与目标文档标引词空间(成功检索的结果文档所使用的标引词)直接关联起来,建立查询单词与目标文档标引词之间的关联关系,其中关联权重可作为选择查询扩展词排序输出的依据。
22语义扩展架构
利用本地本体库对节点查询词进行初步扩展,然后利用该节点的历史查询记录对初次扩展结果进行再次扩展合并,去掉一些语义相关但实际查询不相关的扩展分支,同时对概念树上各个节点的权值进行修正,只有满足一定权值要求的概念才会被最终选中加入查询,同时使得满足一定要求的只在历史记录集中出现的词也能够被选中加入到最终的查询词中。这种结合的算法克服了单独算法的弊端,提供更好的查询质量。首先,可以过滤一些语义上相关但与实际的文档集合不符合的扩展词,提高查准率和查询效率。另外,使用这种算法能够向查询扩展词集中添加语义概念树上没有收录的扩展词。
基于本体的语义扩展,核心任务是一系列语义推理——同义扩展、语义蕴含、外延扩展及语义相关扩展。本文采用如下方法选取扩展词,并赋予扩展词权值。
定义1基于本体的语义扩展候选词集:利用语义词典WordNet为初始查询词构造概念树。记为CForest{SenseTree1,SenseTree2,…,SenseTree n},其中,SenseTree i表示由查询词的一个词义生成的概念树。根据各个词在概念树中的位置定义的权重,反映在语义方面是扩展词和初始查询词的紧密程度。记为WeightSem(Concepti)=1/distance(Root,Concept),其中Root是初始查询词,distance(Root,Concepti)是从初始查询词到Concepti的最短距离。
定义2关键词扩展候选词集:记为StaCandidates{T1,T2,…,Tm},是与初始查询词最相关的m个候选查询词。按照条件概率的方法计算每一个关联关键字的权值,然后根据阈值排序输出。
设历史记录中包含的文档集为D,查询用词A与文档标引词B的关联权重设为B相对于A的条件概率,
3P2P下一种基于语义查询扩展的检索模型
该模型采用基于超级节点的P2P网络结构,它是一种采用超级节点来管理普通节点的半结构化网络,既具有传统集中式P2P系统的可控性和搜索效率高的特点,又能充分发挥非结构化P2P网络扩展性强、容错性好以及负载平衡等优势。网络中各普通节点在本地超级节点的控制下直接建立连接。超级节点负责本地节点的集中认证和管理,并与其他超级节点构成对等结构,同时作为本地的服务提供者和服务接受者,负责本地节点与其他区域超级节点或一般节点的通信。超级节点负责消息在本组中的转发。本文中选取度数较高的节点作为超级节点,便于资源快速在对等网络中传播。图3基于语义查询扩展的检索模型
从图3可以看出,该模型包括6大模块:
(1)词表管理模块。主要由领域专家构建领域词汇表,同时对相关领域词汇表进行定期维护和更新,它是节点用户对本体存储资源的本体化和规范化描述的基础。
(2)提问处理模块。该模块主要是对用户所提检索问题进行分词处理、词性标注、去掉停用词和虚词等操作,得到具有实际意义并能够反应用户真实检索意图的关键词。
(3)语义标注模块。语义标注是根据有关本体为各个节点上的资源标引概念类、概念属性和其他元数据的过程。目前有三类语义标引的方法,即人工标引、领域文档类型定义和文档模式进行概念映射和标引、利用词汇语义分析进行标引。本文是在第三类基础上进行基于本体的语义标引,通过分析文档特征词汇,建立词汇与本体概念之间的映射,采用领域本体对文档进行领域语义标引。根据领域共享词表和本地本体库,各节点对本地可共享信息资源实现语义标引。
(4)本体管理模块。本体管理模块支持本体的创建和进化,负责抽取节点数据的本体化描述,同时对节点本体中新概念进行整合,对本地可共享信息资源的本体和节点用户进行管理并存放于本体库中。
(5)匹配模块。也即语义相似度计算,它是自然语言处理研究的重要组成部分,是衡量用户查询与资源信息匹配度的标准。传统的概念语义相似度计算方法有基于距离的语义相似度、基于信息内容的相似度计算方法、基于属性的语义相似度计算方法,其中影响语义距离的因素主要有:语义重合度、语义深度、语义密度、语义属性。但凡这3种方法单独使用都会存在不足,目前的研究主要集中在把这3种方法混合使用。
(6)资源搜索模块。由于对等网的网络拓扑结构的不同,其资源搜索的路径选择亦不同。对非结构化P2P来说,通常有:泛洪搜索、BFS、迭代深入、随机游走等。而本文采用的是基于兴趣网络的搜索算法,通过引入兴趣组,减轻了节点查找和路由负担,实现高效搜索和资源定位。当一个提问向量被发送到超级节点处,首先会与该节点进行基于距离的相似度匹配,匹配成功后,依次与属于该兴趣组的普通节点本体库和关联表进行查询扩展,其中兴趣组的构建过程包括3个步骤:①对每个节点资源抽取文件特征向量;②采用K-Means对文件向量空间聚类;③建立兴趣索引表,在超级节点处记录同一兴趣的普通节点ID,在普通节点处记录所属超级节点ID。
4实例验证
以某高校图书馆馆藏图书查询为例,分别以3种不同的算法进行分析,通过对比分析查询结果,对上述说明进行验证。根据文章所述各查询算法的特点可知,关键词搜索方便用于有信息记录的用户;语义是固定的语义库,可用于初次使用系统的用户,只要搜索内容在语义库中便可进行搜索,但不可进行自动的语义库扩展。两者结合可以用户初次检索,并可以自动更新扩展语义库。
关键词搜索适合应用于有信息记录的搜索栏目中,对于首次搜索内容,显示结果会存在不准确,内容不全面的情况出现。
基于语义的搜索是建立在语义库的基础上的搜索方式,对于图书馆系统的部分语义库内容如图4所示。图4图书馆检索系统语义库示意图
以搜索关键词“苹果”为例,进行搜索试验,基于语义库和基于语义查询扩展的搜索结果对比显示,如表1所示。表1检索结果对比表
序号〖〗关键词名称基于语义的查询相关结果个性化推荐结果1苹果《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》……《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》、《苹果的种植技术》……
表中包括字段有,关键词序号,关键词名称,查询结果。如表1所示,由于语义库中苹果分类为社会科学类,所以结果显示的均为苹果电脑的相关内容,而用户事实上想搜索关于苹果的饮食和种植方面书籍,但显示结果中没有这一项目。产生这一结果的原因就是建立的语义库中苹果所属社会科学类,而目标搜索结果为自然科学类。语义库中缺少类别扩展以及语义库的静态属性造成了搜索的片面和不准确。于是,笔者采用语义库与关键词的结合完成搜索扩展,一方面补充语义库静态属性的缺陷;另一方面弥补关键词无记录搜索的缺点。采用综合搜索的结果,显示结果除显示苹果电脑相关外,也加入了扩展内容,为用户推荐苹果的种植方面书籍。
由此对比可知,基于语义的查询扩展可以搜索到更加全面完整的结果,并且可以应用于记录和非记录用户的搜索查询。endprint
关键字关联表(如图1所示)是根据节点用户历史查询记录,为每一个节点建立一个关键字关联表,每个节点仅存储本地节点的关键字关联表信息,相当于一个同义词词典,只是它是根据节点的历史记录建立的,在搜索时可以作为查询扩展的依据。关键字关联表的构建主要有两种方法,一种建立用户输入的初始检索词和最后一个成功检索词之间的关联关系,另一种是建立用户检索词与成功检索的结果文档所使用的标引词之间的关联关系。(如图2所示)本文使用的关键字关联表的构建采用的是后者。也即将查询词空间(用户检索词)与目标文档标引词空间(成功检索的结果文档所使用的标引词)直接关联起来,建立查询单词与目标文档标引词之间的关联关系,其中关联权重可作为选择查询扩展词排序输出的依据。
22语义扩展架构
利用本地本体库对节点查询词进行初步扩展,然后利用该节点的历史查询记录对初次扩展结果进行再次扩展合并,去掉一些语义相关但实际查询不相关的扩展分支,同时对概念树上各个节点的权值进行修正,只有满足一定权值要求的概念才会被最终选中加入查询,同时使得满足一定要求的只在历史记录集中出现的词也能够被选中加入到最终的查询词中。这种结合的算法克服了单独算法的弊端,提供更好的查询质量。首先,可以过滤一些语义上相关但与实际的文档集合不符合的扩展词,提高查准率和查询效率。另外,使用这种算法能够向查询扩展词集中添加语义概念树上没有收录的扩展词。
基于本体的语义扩展,核心任务是一系列语义推理——同义扩展、语义蕴含、外延扩展及语义相关扩展。本文采用如下方法选取扩展词,并赋予扩展词权值。
定义1基于本体的语义扩展候选词集:利用语义词典WordNet为初始查询词构造概念树。记为CForest{SenseTree1,SenseTree2,…,SenseTree n},其中,SenseTree i表示由查询词的一个词义生成的概念树。根据各个词在概念树中的位置定义的权重,反映在语义方面是扩展词和初始查询词的紧密程度。记为WeightSem(Concepti)=1/distance(Root,Concept),其中Root是初始查询词,distance(Root,Concepti)是从初始查询词到Concepti的最短距离。
定义2关键词扩展候选词集:记为StaCandidates{T1,T2,…,Tm},是与初始查询词最相关的m个候选查询词。按照条件概率的方法计算每一个关联关键字的权值,然后根据阈值排序输出。
设历史记录中包含的文档集为D,查询用词A与文档标引词B的关联权重设为B相对于A的条件概率,
3P2P下一种基于语义查询扩展的检索模型
该模型采用基于超级节点的P2P网络结构,它是一种采用超级节点来管理普通节点的半结构化网络,既具有传统集中式P2P系统的可控性和搜索效率高的特点,又能充分发挥非结构化P2P网络扩展性强、容错性好以及负载平衡等优势。网络中各普通节点在本地超级节点的控制下直接建立连接。超级节点负责本地节点的集中认证和管理,并与其他超级节点构成对等结构,同时作为本地的服务提供者和服务接受者,负责本地节点与其他区域超级节点或一般节点的通信。超级节点负责消息在本组中的转发。本文中选取度数较高的节点作为超级节点,便于资源快速在对等网络中传播。图3基于语义查询扩展的检索模型
从图3可以看出,该模型包括6大模块:
(1)词表管理模块。主要由领域专家构建领域词汇表,同时对相关领域词汇表进行定期维护和更新,它是节点用户对本体存储资源的本体化和规范化描述的基础。
(2)提问处理模块。该模块主要是对用户所提检索问题进行分词处理、词性标注、去掉停用词和虚词等操作,得到具有实际意义并能够反应用户真实检索意图的关键词。
(3)语义标注模块。语义标注是根据有关本体为各个节点上的资源标引概念类、概念属性和其他元数据的过程。目前有三类语义标引的方法,即人工标引、领域文档类型定义和文档模式进行概念映射和标引、利用词汇语义分析进行标引。本文是在第三类基础上进行基于本体的语义标引,通过分析文档特征词汇,建立词汇与本体概念之间的映射,采用领域本体对文档进行领域语义标引。根据领域共享词表和本地本体库,各节点对本地可共享信息资源实现语义标引。
(4)本体管理模块。本体管理模块支持本体的创建和进化,负责抽取节点数据的本体化描述,同时对节点本体中新概念进行整合,对本地可共享信息资源的本体和节点用户进行管理并存放于本体库中。
(5)匹配模块。也即语义相似度计算,它是自然语言处理研究的重要组成部分,是衡量用户查询与资源信息匹配度的标准。传统的概念语义相似度计算方法有基于距离的语义相似度、基于信息内容的相似度计算方法、基于属性的语义相似度计算方法,其中影响语义距离的因素主要有:语义重合度、语义深度、语义密度、语义属性。但凡这3种方法单独使用都会存在不足,目前的研究主要集中在把这3种方法混合使用。
(6)资源搜索模块。由于对等网的网络拓扑结构的不同,其资源搜索的路径选择亦不同。对非结构化P2P来说,通常有:泛洪搜索、BFS、迭代深入、随机游走等。而本文采用的是基于兴趣网络的搜索算法,通过引入兴趣组,减轻了节点查找和路由负担,实现高效搜索和资源定位。当一个提问向量被发送到超级节点处,首先会与该节点进行基于距离的相似度匹配,匹配成功后,依次与属于该兴趣组的普通节点本体库和关联表进行查询扩展,其中兴趣组的构建过程包括3个步骤:①对每个节点资源抽取文件特征向量;②采用K-Means对文件向量空间聚类;③建立兴趣索引表,在超级节点处记录同一兴趣的普通节点ID,在普通节点处记录所属超级节点ID。
4实例验证
以某高校图书馆馆藏图书查询为例,分别以3种不同的算法进行分析,通过对比分析查询结果,对上述说明进行验证。根据文章所述各查询算法的特点可知,关键词搜索方便用于有信息记录的用户;语义是固定的语义库,可用于初次使用系统的用户,只要搜索内容在语义库中便可进行搜索,但不可进行自动的语义库扩展。两者结合可以用户初次检索,并可以自动更新扩展语义库。
关键词搜索适合应用于有信息记录的搜索栏目中,对于首次搜索内容,显示结果会存在不准确,内容不全面的情况出现。
基于语义的搜索是建立在语义库的基础上的搜索方式,对于图书馆系统的部分语义库内容如图4所示。图4图书馆检索系统语义库示意图
以搜索关键词“苹果”为例,进行搜索试验,基于语义库和基于语义查询扩展的搜索结果对比显示,如表1所示。表1检索结果对比表
序号〖〗关键词名称基于语义的查询相关结果个性化推荐结果1苹果《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》……《iLike苹果Final Cut Pro X非线性编辑》、《苹果计算机应用》、《苹果电脑玩全攻略》、《苹果电脑完全手册》、《苹果的种植技术》……
表中包括字段有,关键词序号,关键词名称,查询结果。如表1所示,由于语义库中苹果分类为社会科学类,所以结果显示的均为苹果电脑的相关内容,而用户事实上想搜索关于苹果的饮食和种植方面书籍,但显示结果中没有这一项目。产生这一结果的原因就是建立的语义库中苹果所属社会科学类,而目标搜索结果为自然科学类。语义库中缺少类别扩展以及语义库的静态属性造成了搜索的片面和不准确。于是,笔者采用语义库与关键词的结合完成搜索扩展,一方面补充语义库静态属性的缺陷;另一方面弥补关键词无记录搜索的缺点。采用综合搜索的结果,显示结果除显示苹果电脑相关外,也加入了扩展内容,为用户推荐苹果的种植方面书籍。
由此对比可知,基于语义的查询扩展可以搜索到更加全面完整的结果,并且可以应用于记录和非记录用户的搜索查询。endprint