APP下载

基于反馈的多构件库二次检索

2010-07-25郑立垠郎颖莹

微型电脑应用 2010年9期
关键词:库中关键字本体

郑立垠,郎颖莹

0 引言

随着面向各个领域的专用构件库的数量增长以及构件库中构件资源的日益扩充,构件也随技术和领域演化而更新,实践中常常需要复用者同时从多个构件库中查询检索构件,这就给复用者带来许多困难,因此如何实现构件的有效检索,成为构件库和软件复用研究的重点[1]。

当前的构件检索大都采用关键字匹配,关键词匹配检索模式假设,只要构建描述文档含有与查询相同的术语时,它们就是相关的。这种相关性匹配认为关键词之间是独立的,大多数只停留在语法检索的层次,是一种机械的基于表层的匹配,忽视了描述构件与构件之间的各种语义关系,而这正是影响到检索的查全率和查准率的重要因素,查询结果不可避免的存在与复用者需求无关的构件,从而导致检索的查准率和查全率等总体性能不佳。利用本体技术[2]正好可以解决这个缺陷,因为本体就是对类、类之间关系的定义来体现语义信息的。

本文引入了用户相关反馈机制和领域本体的概念,就基于语义关系的二次检索的模型和算法进行了研究,模型在构件描述与查询条件的关键词首次匹配的基础上,允许用户在检索结果集中选取他认为与要查询的构件相关联的构件,然后针对用户反馈的结果修改查询向量,并根据修改后的查询向量进行进一步检索。通过对多构件库相关领域建立统一的领域本体,进一步对构件描述术语之间的语义关系和查询关键词之间的语义关系进行匹配,并在检索过程中综合运用聚类算法,实验证明该模型为实现跨构件库检索奠定了基础,具有较高的查询性能,提高了检索的查准率和查全率。

1 构件的检索技术

1.1 构件检索的概述

构件的检索是基于构件的有效表示之上的,分类模式(Classification Mode)是构件库中构件所拥有的一组共同分类特征的集合,不同构件库适应不同领域特性。构件的分类方法及相应的库结构对构件的检索和理解有着极为深刻的影响。传统的构件检索方法有很多,如果单纯的使用一种检索方法,都有不足之处,关键字检索方法比较成熟、高效,同时在某种程度上反映了构件的语法信息,适合于对构件库进行首次检索。用关键字检索方式对基于关键字分类法和刻面分类法的多个构件库进行检索,在检索过程中需要采用检索条件转换算法[3] [4]。本文在对常规检索方法得到的结果基础上再进行二次检索,二次检索是基于语义的,而不是基于语法的,从而能够进一步捕捉用户的查询意图,得到比较满意的结果。

1.2 向量空间模型的建立

向量空间是由一些特征值向量集构成的[5]。根据每个刻面值各建立刻面值向量空间,每个构件有相应的m×n维向量集,其中m为该刻面的向量维数,n为刻面数。向量集中向量的维数取决于构件的描述文档中关键字的个数。向量值(权值)表示关键字在文档中出现的频率,若没有出现则权值为零。向量集中每一构件和用户每一次查询均可用等长的向量表示。例如:向量空间中有术语(即刻面描述模式中术语空间中的关键词):windows 95、windows 98、windows ME、windows XP和windows 7。文档D1,D2,D3,D4分别为:

1.3 领域本体

本体(Ontology)是用于描述或表达某一领域知识的一组概念或术语,可以用来描述特定领域的知识,给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义,支持逻辑推理以及某一领域知识的共享、复用。利用领域本体模型为捕捉特定领域应用知识提供有效的机制,这些知识能够表达构件检索所需的更潜在的查询信息。

要进行有效的语义检索,前提条件是有构造良好、信息充分的构件本体和领域本体,以及对构件进行详尽的描述,因为语义推理时需要这些信息数据作为基础。二次检索在领域本体的支持下,针对用户的反馈消息,由推理引擎对构件的隐含语义进行推理,将隐含语义与显式语义合成后再与检索条件匹配,最后返回检索结果集。这样用户在检索的过程中通过领域本体可以发现用户检索的潜在的含义,以及可以帮助用户发现用户想不到的方面,从这方面来讲,通过本体检索提高了构件检索的查全率和查准率。

2 多构件库检索过程的模型

本文的检索模型主要包括首次检索、二次检索及相关反馈功能模块。多构件库检索过程模型包括以下几步:

(1)复用者分析实际的需求采用关键词检索提出查询检索条件,从多个构件库中首次检索并返回首次检索结果集合;

(2)复用者对首次检索集合进行评估选择根据需求提供反馈,再次填写检索信息,将用户查询中出现的关键字映射到领域本体,本体通过语义扩展用户查询,进一步选择合适的术语用于查询信息的表示,扩大搜索范围;

(3)将用户反馈的检索条件提交到各个构件库中进行检索,进行基于语义的二次检索;

(4)对检索出的构件进行构件相似度匹配算法,最终根据语义相似度大小返回检索结果集。如图1所示。

图1 多构件库检索过程模型

本文所设计的多库检索模型采用关键字检索,检索过程中采用文献[3]和文献[4]提出的检索条件转换算法,使关键字检索条件能够被不同分类方式的构件库所理解。

3 二次检索模块算法实现

3.1 二次检索模型的工作原理

二次检索即在结果中继续检索,主要作用是给用户提示以便选择更接近需求的构件。基于反馈算法的二次检索模型按以下步骤实现:

(1)用户分析需求对首次检索的结果进行评估选择,形成查询扩展条件的反馈信息;

(2)根据领域本体构件库的特点,对用户再次输入的查询扩展语句与领域子本体中的概念进行相似度匹配;

(3)把前两步匹配得到的关键字集合进行相关反馈算法;

(4)返回最终的检索结果集。

图2是基于用户反馈的二次检索模型。

图2 多构件库二次检索模型

3.2 反馈算法的描述

用document1表示用户首次反馈检索扩展语句, P为首次检索的构件数目,Q表示显示构件的最大数目,Results1表示首次检索结果集合。算法具体实现如下:

输入:用户反馈查询扩展语句检索向量集document1;

输出:按语义相关度排序的检索结果集合;

(1)对首次检索结果集 Results1= {component1,component2,…,componentp|p为相关构件个数}与目标构件组合在一起使用K-means聚类算法对这P+1个构件进行聚类,得到n个类别,以及n个类别的凝聚点;

(2)在概念词典的帮助下,将document1中的单词映射为本体中的概念,生成检索树的OWL文件,即本体库检索条 件集合;

(3)根据查询领域本体库的结果找到与用户检索扩展语句中的关键词有语义相关的关键词集合key={key1,key2,……,keyk|k为关键字术语个数},再到各个构件库中匹配术语,得到相关联的构件集合Results2;

(4)将 Results2 与(1)得到的 n个凝聚点再进行聚类;

(5)输出n个类别的凝聚点构件及构件的详细信息,用户对这n个进行评价,与目标构件相似的给予正向评价,不相似的给予负向评价;

(6)向用户显示被给予正向评价的构件的所属类别中的其他所有构件。如果剩余构件数量大于Q,则只显示其中相似度值大的Q个;

(7)如果用户不满意检索结果集,则转到(8)进行后续检索;如果用户不再提供反馈信息,转至(9);

(8)将目标构件与得到正向评价构件组合在一起,调整向量权值,并转到第(2)步,利用调整后的查询向量权值继续进行构件匹配计算;

(9)计算检索出的构件与目标构件的相似度大小,并根据此相似度值大小对构件库中的构件进行排序;

(10)输出检索结果集合。

这里的计算构件相似度采用文献[6]提出的语义相似度计算方法。

4 实验

我们设计了一个构件库群的联合检索的原型系统,针对采用关键词、刻面等不同的分类方法的多个构件库,加入了领域本体,采用了相关反馈模型,实现了基于聚类的相关反馈算法的二次检索。

下面以银行业务领域本体为例,实现该检索。银行业务领域的软构件按其功能可分为资产业务、负债业务、中间业务和表外业务。基于上述分类,图3刻画了部分银行业务领域本体。

图3 银行业务领域本体

图3中,实线箭头表示子类关系(kind of),比如存款类业务是负债业务的一个子类,而虚线箭头表示实例关系(instance of),比如个人贷款是贷款类业务的一个实例。

本文以查询个人借贷软构件为例说明构件检索过程。用户首先在软构件检索系统客户端的查询栏中输入“个人借贷”,提交给系统,根据检索条件转换算法把关键字转化为各个构件库所能识别的检索语言进行检索。由于各个构件库中的术语没有完全与之匹配的术语,因此根据关键词匹配原则,返回“贷款类业务”、“商业贷款”、“个人贷款”等与“个人借贷”中匹配一个或几个关键字的构件集合。用户根据返回的检索结果集,分析具体需求,完善检索条件,生成新的查询向量权值,在概念词典的帮助下,将用户反馈的检索扩展条件映射为本体中的概念,检查本体库中的术语集合,将“现金类业务”“投资类业务”“贷款类业务”“存款类业务”等与首次检索出的构件在语义上相关联的构件检索出来提交给用户,并请求用户选择一个与之匹配的,则用户会选择“贷款类”,那么在“详细信息”栏里将会进一步显示相应的“贷款类业务”类型,如“商业贷款”“个人贷款”等详细信息,此时用户选择“个人贷款”,再到各个构件库中检索有“个人贷款”功能的构件,返回用户相应有“个人贷款”功能的所有构件。通过与软构件描述库进行交互,将进一步获取构件的属性、下载地址以及与之相关的软构件列表。

实验设计如下:在3个构件库中分别存储了100个相关构件的描述信息,然后模拟用户对构件进行检索。用户包括计算机专业和非计算机专业人士。以检索“个人贷款”和“利率互换”这两项为例来比较在使用相关反馈二次检索情况下检索前后查全率与查准率,满足“个人贷款”的相关构件共有200个,满足“利率互换”的相关构件共有150个。采用相关反馈算法后,每10次统计一次,检索时反馈次数一般在4次左右效果最好。如表1是使用领域本体和相关反馈的二次检索前后的查准率和查全率比较图。

表1 构件检索结果比较

由表1可知,在多库检索过程中,引入领域本体并基于反馈的二次检索提高了检索的查准率和查准率,但是,由于要不断的进行用户反馈交互,增加了时间的开销。以上测试验证了本检索方法的可行性和有效性。

5 结束语

本文针对多个构件库构件检索进行研究,借鉴数据库二次检索的思想,结合构件库领域本体能更好揭示构件之间语义关系的功能,提出了一种聚类反馈算法,给出了具体步骤,该算法在一定程度上解决了跨构件库检索查准率和查全率低的问题,该算法在某一条件下聚类并进行反馈,即减少聚类的空间复杂度,并且能进一步捕捉用户的实际查询意图,有助于实现多个构件库构件的有效匹配。但是此方法会增加检索过程中的工作时间负荷,所以在以后的工作中我们还要继续研究以减少构件检索的工作负荷,尽可能改进算法性能。

[1] 潘颖,赵俊峰,谢冰.构件库技术的研究与发展[J] .计算机科学. 2003,30(5) , 90-93.

[2] SINDNEY C. BAILIN. Software Reuse as Ontology Negotiation[C] [S.l.] [s.n.] Proceedings of the 8th International Conference on Software Reuse(ICSR 2004)

[3] 盛义芳,张维石,张秀国,史金余.面向多构件库的构件检索条件转换机制研究[J] . 学术探讨, 2006.

[4] 郑立垠,郎颖莹,安璐.基于检索条件转换算法的多构件库检索[J] .计算机系统应用.2010,19(1):72-75.

[5] 刘大昕,赵磊,王卓.一种基于刻面分类和聚类分析的构件分类检索方法[J] ,计算机应用2004-S1-034.

[6] 牛志一, 杨俊强, 杨宁. 构件库语义描述和检索技术研究[J] ,计算机应用, 2010,30(1):18-21.

猜你喜欢

库中关键字本体
Abstracts and Key Words
动物城堡
动物城堡
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
对姜夔自度曲音乐本体的现代解读
成功避开“关键字”
智能盘库在自动化立体库中的探索和应用
《我应该感到自豪才对》的本体性教学内容及启示
ID3算法在构件库中的应用
Care about the virtue moral education