李杏艳,张翠肖
(石家庄铁道大学 信息科学与技术学院,河北 石家庄 050043)
在当前的信息爆炸时代,信息检索已经成为人们获取信息的重要方式,以前基于关键字匹配和目录式检索的方法往往返回大量的信息,其中许多不是人们真正需要的,需要在返回结果中再次进行筛选,既费时又费力,从而出现了“忠实表达”问题、“表达差异”问题、“词汇孤岛”问题,已经远不能满足人们的要求。语义Web技术为解决这个问题提供了新思路,现在国内外学者都开始对语义Web进行研究,成为研究热点。
笔者在研究语义Web的基础上,引入本体技术,构建了一种智能信息检索模型,通过创建本体提取某一领域信息;在用户查询方面,将用户的查询请求通过语义分析转化为语义概念,再通过查询扩展模块扩大查询词的数量,检索出与此概念相关的信息,提高查全率,同时也提高了用户检索信息的满意度。
语义Web是Tim Berners-lee于2000年12月在XML2000会议上提出的,并于2001年5月在《科学美国人》杂志上发表同名论文“The Semantic Web”。语义Web被称为第三代互联网,它以实现Web中的信息能够被机器所理解为目标,而且能够让不同机器之间的异构数据语义实现互操作,即能够支持语义特性。
语义Web的目标是实现不同层次的计算机都能理解并处理信息。语义Web的体系结构是层次化的,它具有多种语言和应用。它包括本体、逻辑、证明和信任、数字签名和加密等内容,本体描述语言涉及到XML、RDF等。
本体是语义Web的核心技术,它是实现语义Web的基础。本体最初来自于哲学上的概念,被哲学家用来描述事物的本质。Studer等总结认为:“本体是共享概念模型明确的形式化规范说明。”这个定义包含4层含义:概念模型、明确、形式化和共享[1]。本体是关于某一领域内对象、对象特性以及它们之间关系的描述,这些对象应该是此领域共同认可的词汇,能够得到该领域内人士的共同理解。
基于语义Web的智能信息检索模型主要任务有:能够将网页上的信息进行收集;在检索过程中,能够对用户提交的自然语言查询词进行语义匹配和语义扩展;最后通过信息检索器对扩展检索词进行查询,将结果排序后返回给用户。
由此,可以设计出上面提到的模型,如图1所示。
此模型主要包括四大模块:本体创建模块,信息获取模块,用户查询扩展模块,信息检索模块,下面详细介绍各个模块。
本体是实现语义Web智能信息检索的核心技术,在本模块中,本体的创建是提高信息检索性能的重要前提条件,完整的本体是后面模块顺利实现的保证。它提供了关于术语概念和关系词汇集,通过该词汇集可以对一个领域进行建模。在构建本体时,确定检索系统的应用范围后,在领域专家的参与下,抽取出本领域的核心概念词汇,并从不同层次的形式化模式上明确定义这些词汇和词汇间相互关系,这些定义是明确的、无二义性的,是一组描述该领域内实体及其属性和行为以及实体关系的词汇、定义、公理、定理的集合[2]。该模型的本体,应该能够明确的表示出该领域内的核心词汇以及它们之间的关系,并且应该能够在此基础上进行扩展和更新,提高本体的可重用性。
图1 基于语义Web的智能信息检索模型
文档信息库是实现高效率信息检索系统的基础,因此,在信息检索时,信息库中必须有足够多的信息来供用户检索。由于互联网本身具有分布性、动态性、开放性特点,其信息格式是多种多样的,存储方式也具有分布性,因此,通过一个信息采集器事先将分布在各种存储媒质中的信息收集到检索信息库中可以提高信息检索的效率。网络信息的搜集主要是依靠网络爬虫(Spider/Crawler)技术,现在已经有很多现成的或开源的网络爬虫程序和接口。除了考虑网络资源外,还可以把本地资源通过处理,加入文档信息库中。
此外,还需对所收集到的信息进行预处理,因为从Web上收集到的信息一般是HTML形式的,代表一种无结构的数据。为了方便检索,可以使用RDF 或者OWL 语言对收集到的信息进行语义标注,然后将其按照一定的格式存储在数据库中,可以是一般的数据库,也可以是关系型的数据库。
查询扩展指的是在用户输入的查询关键词的基础上,进行语义扩展,从而得到具有相同或相似语义的查询词集。具体方法是在接受用户查询请求后,将用户的查询请求进行分词处理,得到查询词集合,然后将该查询词集映射到本体中的概念和关系,同时运用规则推理出隐含在本体知识库中与原查询词相关的信息,得到比原查询更长的新查询词,然后用新查询词检索文档,以改善检索的查全率和查准率,解决传统信息检索领域中存在的一系列问题。语义查询扩展主要是实现同义词扩展、语义蕴涵扩展、语义外延扩展和语义相关扩展[3]。
本模块的主要功能是将扩展后的查询词集合同数据库中的信息进行关键字匹配,查询出需要检索的信息,并将结果进行排序后返回给用户。此模块解决两个主要问题,一是快速的检索出结果;二是对检索结果进行排序。
根据以上智能信息检索模型,提出了一种针对某一领域的全文检索实施方案,下面介绍其详细步骤:
(1)在领域专家的参与和帮助下,建立某一特定领域的本体。
本体的建立使用Protégé 来完成,它的开放源代码提供了本体创建的基本功能,在Protégé中本体概念是以三元组的形式存在,主要包括类,关系属性和实例。它屏蔽了具体的本体描述语言,用户只需要在概念层次上构建领域本体。在本体创建完成以后,还需要对其进行语义标注、创建SWRL规则集,同时需要用Jena框架处理本体数据文件,Jena对本体的处理主要包括存储、填充、组合、询问、推理、导出和存储单元分配等内容。
(2)利用网络爬虫从网页上收集信息,并将收集来的信息按照一定的格式存储在数据库中。
本模块主要是对网络上的信息进行采集,并对其进行预处理。涉及到的技术主要是网络爬虫技术,它是一种按照一定的规则对网页上的信息自动进行提取的程序。具体过程是:从网站上某一个页面开始,提取网页中的内容,并记录下此网页中的链接地址,通过这些链接地址寻找下一个网页,就这样一直循环下去,直到网页上的信息都抽取完为止。网络爬虫工具还将对收集到的信息进行进一步的处理,将其放在数据库中。
实现网络爬虫选用Heritrix,它是基于Java的开源爬虫工具,具有方便的可扩展性。首先将网页上抓取到的URL存储到磁盘中,然后通过URL 对网页进行分析,将网页中的内容提取出来,对其进行语义标注,最后将其存入数据库中。
(3)获得用户的查询请求,将查询请求映射为本体中的概念和关系,并通过基于本体的查询扩展得到更加完善的查询集合。
目前的查询扩展方法主要有全局分析法、局部分析法、基于关联规则法、基于用户查询日志法,近几年语义概念扩展查询技术吸引了广大学者的注意力,以上几种方法各有利弊。在实现此模块时,可以将以上几种方法综合进行查询词扩展,评估每种方法的性能,选出一种最优方法,将其运用到检索系统中,提高检索的查全率和查准率。
本模块的实现采用Jena推理机来实现,它是Jena中的一个子系统,是基于规则的推理机,其本身自带了一系列的推理规则,有时候这些自带的规则不能满足具体领域的信息检索,这时就可以自定义一些规则创建推理机来满足检索的需要。
(4)将上述得到的查询集合进行检索,检索的结果经过排序算法的处理,按照与用户检索相关性由高到低排序返回给用户。
本模块采用现在技术较成熟的全文检索引擎Lucene,它是基于Java开源信息检索工具库,提供了丰富的API工具包,能够完成全文检索功能。它能处理任何形式的可以转化成文本文档的数据。首先,Lucene为文档库建立索引,检索时只需用查询词和索引进行匹配,不需要在全文中进行检索,因而提高了检索速度。其次,Lucene将查询结果进行排序后返回给用户。因而,解决了2.4节中提到的两个问题。但是Lucene是按照文档权重的高低对结果进行排序,不能满足按照其他条件排序的情况。为了使检索系统能更好的为用户服务,可以在Lucene的基础上进一步改进其排序算法,从而改进查询结果的排序,使结果符合用户的需求,提高用户对检索系统的满意度。文献[4]将目前比较著名的几种网页排序算法(词频位置加权排序法、DirectHit算法、PageRank算法)融入到Lucene自身排序算法中,对其进行了改进,使返回结果更加符合用户的意愿。
提出了一种基于语义Web的智能信息检索模型,在语义Web环境中,对相关领域建立本体,对查询词进行语义分析和语义扩展,改进了传统上基于关键字匹配的检索系统,可以提高检索的查全率与查准率。另外,给出了一种具体的实施方案,在信息检索模块中采用了Lucene全文检索引擎,它是一个基于纯Java的开源工具包,提供了丰富的API,通过建立索引达到全文检索的目的。
[1]周超,石爱萍,杨帆.一种基于语义Web的信息检索模型研究[J].科学技术与工程,2010.4:89-91.
[2]陶芸健.基于语义Web的信息检索改进原理与系统构建[J].旅游教育管理,2011,(12):33-35.
[3]黄名选,严小卫,张师超.查询扩展技术进展与展望[J].计算机工程,2010,24(11):1-4.
[4]张贤,周娅.基于Lucene网页排序算法的改进[J].计算机系统应用,2009,(2):155-158.