背景技术
当今网络的一个主要目标就是信息共享,即不管什么样的平台、语言和协议,用户都能访问到需要的信息,这正是当代网络背后的商业需求。因此,在过去十年里网络搜索集中在保证网络信息资源能被访问的标准上,语义网的发展以及语义网体系中的层次架构的发展可以使计算机在处理信息资源检索时更有效率。
当前对语义搜索技术的研究主要集中在语义网络资源中实例(即实例或实体)的搜索,但在现实应用中,人们最感兴趣的并不是网络资源中的实体,而是它们之间的语义关联关系。因此相应的研究重点也应该从传统网络中对关键词或语义注解的搜索转向对语义网中资源之间关联关系的搜索。关联搜索应该能够提供一种有效的方法来回答比如“实体X和实体Y之间是否存在某种语义关联”,目前已有针对语义关联的研究,并且取得了一定进展。
另一个需要解决的重要问题是在实体关联被搜索之后,如何从用户的角度来决定这些关联关系的重要性,也即怎样对这些关联关系搜索结果进行排序。随着语义资源的日益丰富,相对于实体本身的数量来说,实体之间的关联关系将会超过实体本身。因此关联关系的排序方法也显得尤为重要。研究关联关系搜索结果的排序方法,有助于语义网的进一步发展,同时对语义搜索技术也将起到促进作用。
语义搜索结果的排序是语义搜索需要解决的关键技术,知识库中实体之间关系的个数可能会远超出实体本身,传统的结果排序方法只能对文本信息进行排序,无法识别语义信息,因此不能实现基于语义的结果排序。目前多是结合传统搜索引擎结果排序算法和信息检索技术,尝试新的语义搜索结果排序方法,利用语义Web资源的重要性对结果集进行排序,将信息检索实例集中在语义元数据上,试图发现元数据上复杂的关系,提出了一种预测用户需求的排序方法来识别语义关联。关联搜索排序方法的研究涉及到多个方面的技术,比如本体论、语义网、链接分析、社会网络学以及统计学等。
本体(Ontology)是共享概念模型的明确的形式化规范说明,在很多领域中,如知识工程、自然语言处理、信息协同系统、智能信息集成、知识管理等都是研究的热点问题,它提供了一套对特定领域知识的共享的共同认识。在某一领域中,本体对概念进行了严格定义,通过概念之间的关系来确定概念的精确含义,表示共同认可的、可共享的知识,从而解决同一概念有多种词汇和同一词汇有多种概念(含义)的问题。本体建模包括一套领域内重要概念的分层结构描述,通过“属性一值”机制来描述每一个概念的重要属性,概念间的关系通过相应的逻辑语句进行描述,对领域内感兴趣的个体实例赋予一个或多个概念。对关联关系的研究是建立在本体之上的,而关联关系的搜索就是对本体中实体之间关系的搜索,因此,掌握本体概念和作用是研究语义关联搜索排序的基础。
语义网(Semantic Web)是万维网发明人Tim Berners-Lee倡导的下一代万维网,旨在赋予万维网上所有资源唯一的标识,并在资源之间建立起机器可处理的各类语义联系。2003年提出语义搜索的概念。近年来,该领域内逐步展开了相关研究,并取得了初步的发展。语义网就是本体论在万维网的应用,作为下一代的万维网毫无疑问将影响到网站的构建方式和用户的使用方式上。
链接分析(Hyperlink analysis)又称为结构分析(structureanalysis),以超链接作为主要输入研究Web的性质,尤其是隐藏的宏观性质。Web上的链接分析是基于下面两个假设:
假设1:一个从页面A到负面B的超链接表示的是:页面A的作者对页面B的一种推荐。
假设2:如果页面A和页面B是通过超链接连接起来的话,我们就认为它们有可能是关于同一个主题的。
如果将页面看作顶点,链接看作有向边,整个Web就可以看作是一个有向图,称为Web图(Web graph),可以用复杂网络理论来进行研究分析。目前比较有名的链接分析算法有google的PageRank算法,HITS(Hyperlink-Induced Topic Search)算法、ARC(Automatic Resource Compilation)算法等等。虽然它们是用于传统的万维网中的,但是链接分析将整个Web看作是一个有向图的概念。
本体中实体之间的关联关系与计算机学科的另一个分支社会网络学研究有某些的相似处,可以利用社会网络学研究的已有成果来获得用户所关心的关联关系有那一些,因此需要对社会网络学的研究现状有一个比较清楚的了解。社会网络的研究缘于社会学、人类学、传染病学等学科的发展,逐渐地社会学家将其发展为强大的工具—社会网络分析(socialnetwork analysis,SNA)。SNA通过映射和分析团体、组织、社区等内部人与人之间的关系,提供丰富的、系统的描述和分析社会关系网络的方法、工具和技术。SNA分析问题的理论视角主要集中在行为者之间的关系(网络拓扑结构)而不是行为者的某些特性上,并且强调行为者之间相互影响、依赖,从而产生整体涌现行为。社会关系网络是由多个节点(行为者)和节点之间的连线(行为者之间关系)组成的集合,用节点和连线来表示网络,这就使社会网络的分析得到较好地形式化界定。因此,社会网络的数据至少应包括结构变量(structural variable)和组成变量(composition variable)。结构变量测量两个行为者之间的某种特定关系,它是社会网络数据集的基石。例如,它可以测量人与人之间的信息、知识流动,或者企业间的贸易、投资等。组成变量,或者说是行为者的属性变量,通常是单个行为者层面的描述。例如,它可以测量行为者的性别、专业,或企业的行业、规模等。
统计学是一门研究随机现象,以推断为特征的方法论科学,“由部分推及全体”的思想贯穿于统计学的始终。具体地说,它是研究如何搜集、整理、分析反映事物总体信息的数字资料,并以此为依据,对总体特征进行推断的原理和方法。用统计来认识事物的步骤是:研究设计->抽样调查->统计推断->结论。这里,研究设计就是制定调查研究和实验研究的计划,抽样调查是搜集资料的过程,统计推断是分析资料的过程。显然统计的主要功能是推断,而推断的方法是一种不完全归纳法,因为是用部分资料来推断总体。实体之间的关联关系数量是巨大的,如果纯粹用人工计算的方式从中得出用户使用的侧重点是不可能的,只用利用一种推理,分析的技术,由局部的抽样调查来得到全局总体的结论,而统计学正是这样的一门学科。
现有搜索技术中,针对关键词的检索,只是在全文中做简单的词语匹配,也即对实体的检索,检索到的结果远不能符合用户的要求,因此,出现了是针对实体之间的关联关系进行的检索,但是现有的针对关联关系的检索中,不存在对关联关系的检索结果进行再进行排序的技术方案,使得用户无法高效、准确的搜索到其想要获得信息,无法满足用户的需求。
具体实施方式
语义关联关系的搜索即对本体中实例之间的语义关联进行搜索,即在某个知识领域中的两个实例,如果它们通过一个或多个属性直接连接在一起,或者是相似(相同或衍生)的属性间接连接在一起,就称之为语义关联。这种关联关系构成了一个关联关系图,各个实例即为图中的各个节点。语义关联是基于资源描述框架(Resource Description Framework,简称RDF)属性序列的观点,可以看作知识库中做了标记的路径。
语义关联结果的排序依赖于统计学、链接分析、社会网络和词法等相关技术。
在语义关联排序方法中,本发明实施例主要考虑了几种关键的排序标准尺度供用户在搜索时根据自己的需求来设置。
设计合适的排序方法,首先必须能识别出影响排序的关键因素。
对任意搜索Q=(Q1,Qn),该搜索表示用户希望查询实例Q1和Qn之间存在的关联关系。其查询结果为关联关系R={O1,P1,O2,P2,O3,......,On-1,Pn-1,On},其由关联关系路径上的所有实例O,和属性P的集合构成。以下三种因素为影响排序的关键因素,分别为领域相关度、语义关联路径长度和关联关系频度。
1)领域相关度是指在某个关联关系中,出现的所有实例及属性与用户感兴趣领域的相关性大小,其大小记为DR。
领域相关度可由用户自行调节与赋值,用户可能会对某些领域更感兴趣,不同的用户,其感兴趣的领域也会发生变化。在具体应用中,可划分出若干领域,并对不同领域赋予不同的权值。对用户感兴趣领域,可赋予相对较高的权值。某个领域由与之相关的所有实例和属性集合组成。如学术领域一般包含实例“教师”、“论文”、“课程”和属性“发表”、“授课”等。某关联关系中属于用户感兴趣领域的实例和属性越多,则该关联关系的领域相关度应该越大。相关度越大的关联关系,则是用户更感兴趣的结果。
2)语义关联长度是指连接两实例之间语义关联路径的长度对关联关系结果排序的影响,其大小记为LR。
对查询结果R={O1,P1,O2,P2,O3,......,On-1,Pn-1,On},其关联路径的长度为n。一般情况下,两关联实例路径长度越短,则说明其关系越重要。某些情况下,则相反。例如在国家外汇部门或者安全部门,用户期望通过复杂的关联关系发现潜在的犯罪嫌疑人或者恐怖分子,用户感兴趣的信息可能隐含在较长的语义关联关系中,这时较长的关联关系相对于较短的一般关联关系,应该被赋予更高的相关度。
3)关联关系频度是指在某个关联关系中,出现的所有实例的出入度对关联关系结果排序的影响,其大小记为FR。
在计算关联关系频度之前,首先需要了解实例的入度和出度的概念。类似网页排序(PageRank)技术,一个实例有更大的入度和出度,则表明其具有更高的重要性。如在教育领域,作为“学校”这一概念的两个具体实例“清华大学”和“长江大学”,在RDF图中,“清华大学”具有更大的入度和出度,表明“清华大学”相对于“长江大学”而言,“清华大学”具有更高的知名度。这些具有更高出入度的实例,我们可看作是更为“重要”的实例,对于包含了“重要”实例的关联关系,在排序时可赋予较高的权值。
对搜索Q=(O1,On),其搜索的结果遍历实例关联关系图中这两个实例间的所有关联关系的路径后,得到的关联关系集:
Ri={O1,P1i,O2i,P2i,O3i,......,O(n-1)i,P(n-1)i,On},i=1,2,...,m。
实施例一
以这三种影响排序的关键因素为基础,本发明实施例提出了一种关联关系排序方法,如图1所示包括如下步骤:
步骤1、解析本体的各个实例的三元组信息,根据各个实例的三元组信息构建实例关联关系图;
步骤2、根据输入的所述本体中的任意两个实例,遍历实例关联关系图中所述两个实例间的所有关联关系的路径,生成两个实例间的所有关联关系的搜索结果信息;
根据用户输入的两个实例,到已经建好的实例关联图中进行搜索,搜索方式为图的深度优先搜索,在搜索过程中将所有联系这两个实例的其它实例和属性保存下来。利用图搜索算法搜索两实例之间存在的所有关联关系。将提取出的三元组存储在邻接矩阵中,此邻接矩阵即为该本体中所有实例之间直接关联关系在数据结构中图的表示。采用深度优先的图搜索算法,算法首先从图中某个顶点v1出发(即为用户输入的起始搜索实例对应的图中的节点),访问此顶点,然后依次从v1的未被访问的邻接点出发继续按深度优先探测,并将所有访问过的顶点作一个visited(已访问)标识,以便以后再次遇到这个顶点时可以跳过。当到达的点正好是要求的终点v2(即为用户输入的终止搜索实例对应的图中的节点),则说明找到了一条起始点v1到终点v2的路径,将该路径保存下来,并继续搜索,直到将所有连接v1和v2的路径被搜索出来。否则如果所有的顶点都探测完毕后仍然没有找到任何路径,则说明v1和v2之间不存在关联关系。
步骤3、根据所述搜索结果信息,计算领域相关度和/或关联关系长度和/或关联关系频度;
步骤4、根据领域相关度或关联关系长度或关联关系频度、或者根据领域相关度、关联关系长度、关联关系频度的任意组合来对所述搜索结果信息进行排序。
在上述步骤3中,领域相关度、关联关系长度、关联关系频度可以采用如下计算方法:
(1)计算领域相关度DR。
首先获取关联关系中的实例所属类(实例的概括、抽象描述),然后将此类与用户所选择的感兴趣的领域的类相比较,如果匹配就说明此类是用户希望重点强调的类,获取所有关联关系路径中的所有此类的实例及属性,根据获取到的实例及属性,通过如下公式计算。
对搜索Q=(O1,On),设定用户感兴趣领域为D。
属于领域D的实例和属性集合为:
Yi={OiorPi|Oi∈R∩Pi∈R∩Oi∈D∩Pi∈D}
不属于领域D的实例和属性集合为:
Ni={OiorPi|Oi∈R∩Pi∈R∩OiD∩PiD}
则关联关系的领域相关度为:
(公式1)
其中,length(R)表示关联关系的长度,d是为了避免DR=0而设定的调整因子,d的大小设定在0和1之间,可自行设定,一般取0<d<0.1。计算方法表明,领域相关度与属于领域D的实例和属性个数成正比,与不属于领域D的实例和属性个数成反比,也即关联关系中属于领域D的实例和属性越多,其领域相关度越大。
(2)计算语义关联长度LR。
(公式2)
公式(2)分两种情况,第一种计算方法表明语义关联路径长度越短,则该路径越有价值,即语义关联长度LR越大,第二种计算方法表达的含义完全相反,对语义关联较长的路径赋予较大的语义关联路径值。用户可结合实际需求选择合适的语义关联长度计算公式。
(3)计算关联关系频度FR。
关联关系频度实际上是图中节点的相对出入度来计算得到的,因此,首先要得到路径中每个节点的出度和入度,根据这个出度和入度来计算出节点的相对出入度。同时还要从所有节点的相对出入度中选出最大的相对出入度。将这些值带入下面公式进行计算。
首先,定义实例Oi的绝对入度AIi、绝对出度AOi、相对入度RIi、相对出度ROi。定义相对入度和相对出度,是出于对关联关系频度FR标准化的考虑。
在RDF图中,假设有k个实体指向实例Oi,Oi指向n个其他的实例,则定义实例Oi的绝对入度AIi:AIi=k。
定义实例Oi的绝对出度AOi:绝对出度为AOi=n。
定义其相对入度RIi: 。
其中Sji是实例Oj指向Oi且分配给Oi的入度,则:
,其中,AOj是节点j的绝对出度。
因此,相对入度RIi为: 。
相对出度定义为: ,其中AOi是实例Oi的绝对出度。
在关联关系R中出现n个实例,在此基础上,我们可定义关联关系R的相对入度RIR。
,其中Max(I)是所有实体中的最大入度数。
也即: 。
关联关系R的相对出度 ,也即:
。
关联关系的频率权值FR由关联关系中实体的出入度大小同时决定。
,也即:
(公式3)
其中Max(I)是所有实体中的最大入度数,对实体i,有k个实体指向i,AOj表示实体Oj的绝对出度,AOi表示实体Oi的绝对出度。
在上述步骤4的具体排序操作中,可以单独以领域相关度、关联关系长度和关联关系频度之一作为排序的依据,也可以以他们的任意组合来作为排序的依据。作为优选的实施例,可以综合考虑三者来进行排序,具体可以通过加权求和的方式来计算关联关系的总权值,每个因素的加权系数可以根据用户的实际需要来灵活设置没,可以通过用户输入的方式或者系统预定义的方式来设置加权系数,具体如下:
VR=k1×DR+k2×LR+k3×FR (公式4)
其中,k1+k2+k3=1,用户可根据应用中的实际需求对变量赋值。DR表示领域相关度大小,LR表示语义关联长度大小,FR表示关联关系频度大小。
根据计算所得的各关联关系的总权值,按从大到小的标准对所有关联关系搜索结果进行排序。
实施例二
本发明的实施例还提供了一种关联关系搜索结果的排序装置,如图2所示,包括:
本体解析模块1,用于解析本体的各个实例的三元组信息,根据各个实例的三元组信息构建实例关联关系图;
关联关系搜索模块2,用于根据输入的所述本体中的任意两个实例,遍历实例关联关系图中所述两个实例间的所有关联关系的路径,生成两个实例间的所有关联关系的搜索结果信息;
关联关系排序模块3,用于根据所述搜索结果信息,计算领域相关度和/或关联关系长度和/或关联关系频度;根据领域相关度或关联关系长度或关联关系频度、或者根据领域相关度、关联关系长度、关联关系频度的任意组合来对所述搜索结果信息进行排序。
在上述装置中还可以包括,本体加载模块4,用于向装置中加载本体。其中,加载的本体即可以是自己构建,也可以通过在互联网上搜索得到,加载后本体后,就可以进行相应的解析操作了。
实施例三
如图3所示,其为本体结构示意图一,根据对本体的分析,确定了如下一些主要的类:
银行账户(Account);
书籍(Book);
学生所选的课程(Course);
客户(Customer);
某个组织的员工(Employee);
学校的教师(Faculty):其包括子类:大学里的教授(Professor),Professor又包括子类:是导师的教授(Adviser);
飞机的航班(Flight);
某个组织的领导(Leader);
组织或机构(Organization);
航班的乘客(Passenger);
付费方式(Payment_Type);Payment_Type下有两个子类:一个是信用卡(Credit_Card),另一个是经常飞行的旅客(Frequent_Flier);
学生(Student),可以是本科生、硕士研究生或博士等等;Student类有子类:研究生(Grad_Student),Grad_Student下有子类:教师助理(TA);
搭乘航班的票据(Ticket);
根据上面建好的类,就可以为每个类加入相应的实例。本体中的部分实例如图4所示,其为本体结构示意图二,表示为类Customer和Account加入部分实例后的关系。r1,r4、r5、r6、r8、r9、r10分别为上述两个类的实例。其中,r1、r5、r6、r9是Customer的实例,r4、r8、r10是Account的实例。R1是R8和R10账户所有者,R1可以从R10取款,R1可以存款到R8账户;R5是一个组织,R1是R5股东,R5是R4账户所有者;R5组织领导是R6,同时R6也是R8账户所有者.R6是R1的导师;R9也是一个组织,R6是R9股东,同时也是R9的领导。
从关联关系图中可知,实例之间存在多种不同的关联关系,用户在进行搜索时,要输入要搜索的起始实例和终止实例,如图5所示的用户界面,其输入的两个实例为r1和r9,对r1和r9之间的关联关系进行检索,根据用户输入领域相关度、关联关系长度和关联关系频度的加权系数,结合上述实施例中的计算方法,计算获得r1和r6之间的关联关系的总权值,根据总权值的大小对搜索结果进行排序,将用户希望得到的关联关系优先返回。用户得到的排序后的搜索结果如图6所示。
实施例四
下面针对另一个本体排序方法进行说明。图7为本实施例的用户搜索界面,按照系统默认的排序标准搜索出两个实例的关联关系,比如孙小林和卢正鼎之间的关联关系。图8为搜索的结果。对第一条结果做一个简单的说明。
1.孙小林 发表著作 基于本体的多域访问控制策略集成研究 作者 文坤梅 发表著作 paper005 作者 李瑞轩 发表著作 在Java2环境中实现可插入的认证及访问控制作者宋伟指导教师卢正鼎Total Value(关联关系的总权值):0.508706
其中孙小林是一个起始搜索实例,他发表了基于本体的多域访问控制策略集成研究这样一篇论文,而这篇论文还有另一个作者文坤梅,而文坤梅发表了另一篇论文paper005,后面一直按照这样一种关系推倒,知道与卢正鼎这样一个实例产生关联关系。
而在大多数情况下,系统默认的排序标准给出的排序结果并不能满足用户的需求,比如说用户希望找出孙小林和卢正鼎之间比较直接的关联关系,如果用户要得到这种直接的关联关系,可能要翻到后面几页,甚至几十页。而本发明实施例可以让用户自己对排序标准进行设置,我们可以将Length weight(关联关系长度的权值)设为0.7,而Context weight(领域相关度的权值)的权值设为0.2、Node In&Out weight(关联关系频度的权值)设为和0.1,将Long Association Prior(长度关联优先)选项去掉。如图9所示:
图10为按照用户的设定的标准进行排序后返回的搜索结果。
从结果中可以看到,两个实例间的直接关联关系排在的第一个,这个关联关系表明孙小林的指导老师是卢正鼎,而且其它较短的关联也排在靠前的位置,这样就达到了用户的需求。
下面利用默认排序标准(去掉了长关联优先)对两个实例孙小林和文坤梅之间的关联关系进行搜索,搜索结果如图11所示。
第一条关联关系表明文坤梅和孙小林都是本体中的《(多域访问控制策略集成研究》这篇论文的作者。但是用户可能对两个实例通过“教师”等某些概念联系起来的路径更感兴趣,那么用户就可以在设置排序标准时强调这些类(即设定用户感兴趣的领域),如下图12所示。
在排序标准中加入了用户感兴趣的类后的搜索结果如图13所示:
这次的排序结果与上一次的结果有所不同,前几条关联关系中就包括了“李瑞轩”和“卢正鼎”这样一些“教师”类的实例。
下面提供一些实际的评估测试数据:
在实际应用中,因为表述语义关联的方式有多种,而且用户的排序标准也具有很强的主观性,很难有一个统一的标准能对此进行评估。五个用户对排序方法进行了测试,并对测试结果进行评估。给出不同的语义关联关系查询,随机选取,提供每个查询的排序标准。同时还需提供各种类型的实例以及关联关系,以便用户能判断某个关联是否与其感兴趣的领域相关。然后用户根据其感兴趣的领域和排序标准对关联关系排序。考虑到不同的用户在对结果排序时都有一定的主观性,因此所有用户的平均值可以看作一种参考。
定制了五种比较具有代表性的排序组合。在每一个测试查询中,强调两种因素(即通过赋予它们较高的权值)。以图3的本体结构为基础,下表列出了搜索的排序标准和意义。
表1
序号 |
排序标准 |
意义 |
1 |
查询“Passenger”和“Organization”的对应的实例之间的关联关系,强调短的关联关系长度和含有运输类型的类(例如Ticket和Flight等)的路径。 |
为了测试排序方法抓住直接关联路径的能力和某些感兴趣的领域的关联关系。 |
2 |
查询两个“Customer”类的实例之间的关联关系。强调长的关联关系长度和含有组织的类(例如Organization等)的路径。 |
为了测试用户搜索出长路径和某些感兴趣的领域的关联关系。 |
3 |
查询两个“Customer”类型的实例之间的关联关系。强调长的关联关系长度和包含重要节点的关联关系。 |
测试系统搜索稀有关联和包含重要节点关联的能 |
|
|
力。 |
4 |
查询“Customer”类型和“Account”类型的实例之间的关联关系。强调含有组织的类(例如Organization等)和包含重要节点(即关联关系频度高)的关联关系。 |
可以用于语义分析系统,例如查出客户与账户之间的联系,用于反洗钱检测。 |
5 |
查询两个“Customer”类型的实例之间的关联关系。分别给关联关系长度、关联关系频度和领域相关度选择不同的权值。 |
根据用户的需求选择三个排序标准后的排序结果。 |
为了证明排序方法的有效性,将数据以图表的方式整理出来,如图14所示,它显示了系统排序结果(如图所示,包括查询1、查询2、查询3、查询4和查询5)和人为排序结果(即理想的排序结果)的大致关系。其中“理想排序”表示一种理想的情况,即系统排序结果和人为排序结果完全吻合。从图中可以看到排序方法的测试效果还是比较理想的。测试人员排序的结果与系统的排序结果比较接近,甚至有些排序结果与系统给出的结果是直接匹配的。虽然只是一个有限和初步的评估测试,每个测试人员的排序标准之间还是存在一些分歧,但测试结果表明了排序方法的可行性,而且此方法拥有的灵活性足以满足多个用户的多种偏好,能够让他们获得满意的搜索结果。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。