基于本体和Lucene的语义检索模型设计与实现
2010-05-13段寿建,夏幼明,甘健侯
段寿建,夏幼明,甘健侯
摘 要:基于本体的语义检索利用本体构建概念空间,可以处理概念之间的关系,具有语义处理能力。基于本体的语义检索符合人类的思维习惯,并且克服传统检索方法造成的信息冗余或信息丢失的缺点,其查询效果更为合理。这里结合本体和Lucene,设计并实现一个语义检索模型,与传统的全文检索系统进行比对分析,说明了其有效性和可行性。
关键词:本体;语义检索;Lucene;用户查询
中图分类号:TP182文献标识码:B
文章编号:1004-373X(2009)12-036-03
Design and Implementation of Semantic Retrieval Model Based on Ontology and Lucene
DUAN Shoujian1,XIA Youming2,GAN Jianhou2
(1.Baoshan Teachers College,Baoshan,678000,China;
2.College of Computer Science and Information Technology,Yunnan Normal University,Kunming,650092,China)
Abstract:Semantic retrieval based on ontology to construct the concept space by using ontology,it has a certain semantic processing power and better natural language interface,and can also deal with the concept of relationship.Semantic retrieval based on ontology more in line with the human habit of thinking,it can overcome the traditional method of retrieval of the information lost or redundant information,the characteristics of their query results can be more reasonable.A semantic retrieval model based on ontology and Lucene is designed and implemented,comparing to traditional full-text retrieval system,its effectiveness and feasibility are shown.
Keywords:ontology;semantic retrieval;Lucene;user query
0 引 言
随着计算机网络技术的飞速发展,对计算机信息存储、传输和处理能力的要求迅速增长,对海量信息的检索与利用成为当前一个重要研究和应用领域。如何解决好诸如信息组织、知识表示、机器理解、人机交互等问题,对于提高信息利用的效率,是非常重要和迫切的。近年来,语义检索的提出为解决这些问题提供了契机,语义检索是把信息检索与人工智能技术、自然语言理解技术相结合进行检索,它的核心是基于概念的检索匹配机制。现在普遍认同的观点是,语义检索技术将是支撑下一代互联网的关键技术[1]。语义检索是一种基于知识、语义上的分析检索,是在理解自然语言、计算语言学发展的基础上产生的,由知识库和逻辑推理系统支持,并且在检索的查准率和查全率上都能较好地满足用户的检索要求,从语义理解的角度分析信息对象与检索者的检索请求。基于本体的语义检索更符合人类的思维习惯,它克服了传统信息检索方法造成的信息冗余或信息丢失的缺点,其查询效果更为合理。
1 基于本体和Lucene的语义检索模型设计
基于本体的信息检索的基本设计思想可以总结如下[2]:
(1) 在领域专家的帮助下,建立相关领域的本体;
(2) 选择专业领域有较高权威性的专业网站作为信息检索的起点,根据宽度、深度优先或启发式的信息获取算法在Web上利用网络爬虫循环收集信息(也可以利用本地信息);
(3) 从用户检索界面获取初始查询集合,通过基于本体的查询扩展,生成扩展查询词及权重集合,提交给检索引擎;
(4) 检索的结果通过排序,返回给用户。
根据语义检索系统的设计目标和基于本体的信息检索系统的设计思路,提出一个基于本体和Lucene的语义检索系统模型,如图1所示。
基于本体和Lucene的语义检索系统模型共分成了4个模块:本体建立与管理模块、信息获取模块、Lucene检索引擎模块、用户查询扩展和结果反馈模块。
1.1 本体建立与管理模块
本体是语义检索系统的信息组织框架,在查询扩展和查询结果排序上都需要以本体为基本依据,因此在构建基于本体的语义检索系统时,首先需要在领域专家和知识工程师的协助下构建合理的领域本体。
该模型的本体可以是单个常识本体或领域本体,也可以是多个本体的组合。常识本体用来描述在现实世界中公认的词汇和词汇间的语义联系,现在常用的常识本体包括WordNet和知网(HowNet)等。建立领域本体是一个严谨的过程,领域专家可以尽可能全面地涵盖领域内的重要概念和关系,以及如何将这些关系表达清楚;知识工程师则通过本体管理工具,依照领域专家的描述建立本体。本体在建立好之后需根据领域研究的不断深入而不断改变,因此在建立了基本的领域本体后要对本体进行维护,这个步骤通常分为5步:资源收集、概念整理、关系整理、精炼、评估[3]。从领域本体的建立过程可以看到,领域本体是建立在领域概念及概念之间抽象关系的基础上,不依赖于具体的软件而存在,从而可以成为面向该领域的通用模型,具有极高的可重用性,方便在其之上进行开发和应用。
图1 基于本体和Lucene的语义检索系统模型
1.2 信息获取模块
文档信息库是信息检索系统的基础设施之一。在检索信息时,首先要确保信息库中存在足够多的可供检索的信息,然后才能考虑如何有效的检索。
在该模型中,除了考虑网络资料外,还可以把本地资料,如Word,PDF等文件通过处理,可加入到文档信息库中。因此,该模型也可以用于本地资源的检索中,如数字图书馆、企业内部信息等中小规模信息检索的系统中。
1.3 Lucene检索引擎模块
Lucene[4]是一个高性能、可扩展的信息检索工具库。人们可以把它融入到应用程序中,以增加索引和搜索功能。Lucene是一个纯Java实现的成熟、自由、开源的软件项目,它用简单易用的API隐藏了复杂的索引和搜索操作的实现过程,因此可以使用应用程序专注于自身的业务领域。基于Lucene的检索引擎提供了如下功能:为文档库建立索引,生成索引库,根据用户的检索要求对索引库进行查询,并将查询的结果进行排序后返回给用户。
1.4 用户查询扩展和结果反馈模块
查询扩展指在本体的支持下,把与原查询相关的词语或者与原查询语义相关联的概念添加到原查询,得到比原查询更长的新查询;然后检索文档,以改善信息检索的查全率和查准率,解决信息检索领域长期困扰的词不匹配问题,弥补用户查询信息不足的缺陷。查询扩展技术是指实现查询扩展的方法和手段,其核心问题是如何设计和利用扩展词的来源[5]。在该模型中,语义查询扩展是通过领域本体实现的,其通过量化本体中概念间的关联程度,然后按照关联程度决定扩展范围。查询结果处理主要包括查询结果的排序和显示方式定制。查询结果的排序算法对信息检索系统至关重要,一个好的排序算法是搜索引擎成功的保证,直接决定了查询结果对用户的有用性和重要性。
2 基于本体和Lucene的语义检索系统的实现
为了验证提出的基于本体和Lucene的语义检索模型的有效性,本文实现了语义检索原型实验系统。原型实验系统以计算机“软件开发”领域为例,该系统在计算机“软件开发”领域本体的支持下,对“软件开发”相关的“知识”、“图书”、“软件”方面的文档进行检索。对比语义检索结果和传统的信息检索的结果,证明了基于本体和Lucene的语义检索模型的有效性。
2.1 系统开发平台及工具
基于本体的语义检索原型实验系统在Windows XP平台中,利用JBuilder 2006和Microsoft SQL Server 2000开发。开发中使用的开发工具包括:Protégé(用于领域本体的创建与维护),RacerPro(用于领域本体的一致性检测,类层次关系推理,等价类推理),Jena(用于本体文件的解析与操作)和Lucene(用于基于关键字的全文检索)。
2.2 本体建立与管理模块的实现
在“软件开发”创建的本体中,参考了ODP(Open Directory Project)和领域专家的意见,主要考虑了“程序设计语言”、“数据库”、“软件开发环境”三个方面。本体描述语言使用OWL-DL,利用Protégé建立“软件开发”领域本体。“软件开发”领域本体创建完成后,使用RacerPro对领域本体的一致性进行检测,并进行类层次推理和等价类推理。
2.3 信息获取模块的实现
原型实验系统实现对“软件开发”相关的“知识”、“图书”、“软件”方面的文档进行检索,利用网络爬虫在网上收集了与“软件开发”相关的知识、图书和软件介绍文本信息作为检索系统的文档库。
2.4 Lucene检索引擎模块的实现
原型实验系统利用Lucene开发包为文档库建立索引。为文档库建立索引后,即可利用Lucene检索引擎对文档库进行基于关键字匹配的全文检索。原型系统提供了2种查询方式:一种是输入查询语句,通过分词得到检索词;另一种是直接输入检索词。全文检索系统支持“AND”,“OR”和“NOT”关键词来表示检索词间的逻辑关系。
2.5 用户查询扩展和结果反馈模块的实现
用户查询扩展和结果反馈是基于本体语义检索的关键模块。对用户的检索词进行扩展,需要领域本体的支持,因此在查询扩展之前需要有量化好的领域本体中概念间相似度和相关度的综合值。领域本体中概念间相似度和相关度值的量化算法和公式参看参考文献[6]。原型系统通过使用Jena开发包解析本体结构,计算出了综合的概念相似度和相关度的值,存储在SQL数据表中,检索时,能快速确定需要扩展的词表。
用户输入的初始检索词集合通过领域本体中综合的概念相似度和相关度进行扩展,生成扩展的检索词及相应权重集合,并提交给Lucene检索引擎,实现了语义检索。基于本体和Lucene的语义检索系统提供了2种查询方式,一种是输入查询语句,通过分词得到检索词,分词时可以选择“本体概念优先”,则在分词时优先考虑本体中的词汇,以获得更多的扩展;另一种是直接输入检索词。语义检索系统提供扩展阈值参数的设置,在检索时可以根据实现情况设置,阈值设置参看参考文献[8]。
如在“软件开发”本体中定义了“Prolog”和“LISP”是“人工智能语言”的子类。“人工智能语言”是“高级语言”的子类,通过检索可以看出,当扩展阈值为0.5时,用语义检索系统检索“人工智能语言”,可以获得关于“Prolog”,“LISP”和“高级语言”的相关文档。
3 结 语
在对传统信息检索技术和本体技术研究的基础上,提出并实现了一个基于本体和Lucene的语义检索系统模型。该模型在传统的信息检索系统中加入本体,为信息检索系统提供了语义支持。下一步工作是把基于本体和Lucene的语义检索系统模型推广应用。
参考文献
[1]曹茂诚,王英龙,王金栋,等.语义检索技术研究[J].信息技术与信息化,2007(3):51-52.
[2]聂卉,龙朝晖.结合语义相似度与相关度的概念扩展[J].情报学报,2007,26(5):728-732.
[3]杨晓淼.一种基于本体的语义检索模型[D].哈尔滨:哈尔滨工程大学,2006.
[4]Lucene[EB/OL].http://lucene.apache.org,2007.
[5]黄名选,严小卫,张师超.查询扩展技术进展与展望[J].计算机应用与软件,2007,24(11):1-4.
[6]段寿建.基于本体和语义检索原型系统的设计与实现[D].昆明:云南师范大学,2008.
[7]时念云,杨晨,滕良娟.黄页检索的语义实现[J].现代电子技术,2007,30(6):100-101,108.
[8]杨彩莲,谢福鼎.基于潜在语义索引的中文文本聚类的研究[J].现代电子技术,2005,28(10):58-59.