CN102722556B - 一种基于相似性度量的模型比对方法 - Google Patents

一种基于相似性度量的模型比对方法 Download PDF

Info

Publication number
CN102722556B
CN102722556B CN201210171251.7A CN201210171251A CN102722556B CN 102722556 B CN102722556 B CN 102722556B CN 201210171251 A CN201210171251 A CN 201210171251A CN 102722556 B CN102722556 B CN 102722556B
Authority
CN
China
Prior art keywords
mrow
msub
node
similarity
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210171251.7A
Other languages
English (en)
Other versions
CN102722556A (zh
Inventor
覃征
赵凤飞
徐哲
王珍
徐文华
任博岩
胡浩
李金星
王瑶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201210171251.7A priority Critical patent/CN102722556B/zh
Publication of CN102722556A publication Critical patent/CN102722556A/zh
Application granted granted Critical
Publication of CN102722556B publication Critical patent/CN102722556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于相似性度量的模型比对方法,该方法包括:步骤10,确定待比对的模型;步骤20,分别从所述待比对的模型中获取组成各个模型的节点;步骤30,计算所述待比对模型之间各个节点的节点相似度;步骤40,基于所述待比对模型之间各个节点的节点相似度计算得到所述待比对模型之间的模型相似度;步骤50,基于所述模型相似度以得到所述待比对模型之间的关系。本发明方法因为在计算节点相似度时采用了文本相似度与标签相似度相结合的手段,克服了仅仅考虑文本而忽略模型元素标签特性的问题,进而使节点相似度更能反映模型的实际情况。

Description

一种基于相似性度量的模型比对方法
技术领域
本发明涉及计算机科学数据库领域,尤其涉及一种在半结构化模型上基于相似性度量的比对方法。
背景技术
版本控制是对系统不同版本进行标识和跟踪的过程,并且方便于对版本加以区分、检索和跟踪,以及表明各个版本之间的关系。而版本的比对则是版本控制中一个重要的模块,其目的为了让用户对当前所用版本有进一步的认识,将当前版本与以前的版本实例进行对比,并且把两个版本之间的明显不同清晰的呈现给用户。
经过长时间的发展,传统的版本比对工具已经比较成熟,传统的版本比对方法多数是基于行的比对,即标记出相比较的文本某一行存在的差别。对于模型比对,现有的方法是直接对模型中的文字和结构进行匹配来实现的。虽然相关技术也有了长足的进步,但是当前在建模工具中所用的模型比对方法却显得有些不尽如人意。
在当前的建模工具的模型比对中,只对两个模型进行非常简单的比较,即只有在两个模型在存储层面相同时两个模型才能被认同是相匹配的,而两个模型中的细微的差别都可能导致比对结果的不同。而用户所建立的模型往往是基于一些语义关系或者模型中的结构关系,而这些特点显然不能被整个对比工具所认知,因此,现存的模型比对工具与用户的需求仍然有一定的距离。而具体来说,当前模型比对方法的不足之处可以概括为如下几点:
(1)在模型比对时,不能对具有同义关系或相似的语义关系的两个概念进行判别,很容易就将具有相似语义关系的两个模型直接区别开来。例如:两个名称分别为“防护导弹”与“防御导弹”的模型,在用户看来,它们是一致的,而在模型比对中则会被视为不同的两个概念来处理。
(2)缺乏对异构数据源中的两个模型关系的认识。由于在建模过程中可能会出现多个团队,因此,就很容易导致他们对某些模型的认识上存在一定的差异,在相同的模型的表述上存在不同。这样就直接导致了所生成模型结构的不同。例如:对某一图书库中的书本模型的表述可以分别是如图1所示的三个模型。而以上三种表述方法,对用户来说应当是相同的。
(3)不能适用当前比较主流的建模工具的模型比对。在一般的建模工具中,模型在文件上都是以XML的方式进行存储的,现在针对XML进行比对的方法也层出不穷,但是由于当前模型比对具备了一定建模领域的特点。
因此,亟需一种基于相似性度量的模型比对方法以解决上述问题。
发明内容
本发明所要解决的技术问题之一是需要提供一种能够使得模型比对的结果更加准确、客观的基于相似性度量的模型比对方法。
为了解决上述技术问题,本发明提供了一种基于相似性度量的模型比对方法,该方法包括:步骤10,确定待比对的模型;步骤20,分别从所述待比对的模型中获取组成各个模型的节点;步骤30,计算所述待比对模型之间各个节点的节点相似度,其中,通过计算所述待比对模型之间各个节点的节点文本相似度和节点标签相似度、以得到所述待比对模型之间各个节点的节点相似度;步骤40,基于所述待比对模型之间各个节点的节点相似度计算得到所述待比对模型之间的模型相似度;步骤50,基于所述模型相似度以得到所述待比对模型之间的关系。
根据本发明另一方面的基于相似性度量的模型比对方法,基于各个节点所对应的标签之间的语义关系以得到所述待比对模型之间各个节点的节点标签相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,基于各个节点之间的字符串编辑距离来得到所述待比对模型之间各个节点的节点文本相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,所述待比对模型之间各个节点利用以下表达式来得到节点文本相似度:
SmaticSim ( X , Y ) = 1 - E ( X , Y ) max ( | X | , | Y | )
其中,|X|,|Y|分别表示节点X的字符串和节点Y的字符串的长度,E(X,Y)表示节点X和节点Y之间的字符串编辑距离,SmaticSim(X,Y)表示节点X和节点Y的节点文本相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,所述待比对模型之间各个节点利用如下表达式来得到所述待比对模型之间各个节点的节点相似度:
NodeSim ( X , Y ) = ∂ LabSim ( X , Y ) + ( 1 - ∂ ) SmaticSim ( X , Y )
其中,表示合成权重,NodeSim(X,Y)表示节点X和节点Y的节点相似度,LabSim(X,Y)表示节点X和节点Y之间的节点标签相似度,SmaticSim(X,Y)表示节点X和节点Y之间的节点文本相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,在所述步骤40中,具体包括以下步骤:
步骤41,基于所述各个节点的节点相似度计算得到所述待比对模型之间各个路径的路径相似度和各个层次的层次相似度;
步骤42,基于所述各个路径的路径相似度和所述各个层次的层次相似度以得到所述待比对模型之间的模型相似度,
其中,所述路径为待比对模型的树结构中从根节点到叶子节点所经由的节点组成的串。
根据本发明另一方面的基于相似性度量的模型比对方法,在所述步骤41中,利用所述各个节点的节点相似度,基于最长公共子序列法和/或层次法得到所述待比对模型之间各个路径的路径相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,在所述步骤41中,利用以下表达式得到待比对模型之间各个层次的层次相似度:
Horiz Sim i ( A , B ) = 2 × | trim ( Al i ∩ sim Bl i ) | | Al i | + | Bl i |
其中,trim(AlisimBli)表示去除AlisimBli集合中的重复节点后的节点集合,|trim(AlisimBli)|表示集合的大小,|Ali|和|Bli|分别表示模型A和模型B第i层的节点数目,其中,AlisimBli集合利用以下表达式来定义:
(a,b)∈AlisimBli<==>a∈Ali,b∈Bli并且NodeSim(a,b)>=k,
其中,a,b分别表示模型A和模型B的第i层的一个节点,k为预设的相似度阈值,Ali为模型A的第i层的节点集合,i为深度且为大于等于1且小于等于h的整数;Bli为模型B的第i层的节点集合,NodeSim(a,b)为节点a和节点b的节点相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,在所述步骤42中,具体包括以下步骤:
步骤421,基于所述各个路径的路径相似度得到待比对模型之间的模型纵向相似度;
步骤422,基于所述各个层次的层次相似度得到待比对模型之间的模型横向相似度;
步骤423,基于所述模型纵向相似度和/或模型横向相似度以得到待比对模型之间的模型相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,在所述步骤421中,所述待比对模型利用如下表达式得到待比对模型之间的模型纵向相似度:
VerticSim ( A , B ) = &Sigma; P 1 &Element; P A [ max P 2 &Element; P B ( simPath ( P 1 , P 2 ) ) ] + &Sigma; P 2 &Element; P B [ max P 1 &Element; P A ( SimPath ( P 1 , P 2 ) ) ] | P A | + | P B |
其中|PA|、|PB|分别表示待比对模型A和模型B所包含的路径的个数;PA,PB分别表示待比对模型A和模型B上的路径的集合,P1和P2分别表示PA,PB中的任意一条路径,SimPath(P1,P2)表示模型A中路径P1和模型B中路径P2的路径相似度,VerticSim(A,B)表示模型A和模型B的模型纵向相似度。
根据本发明另一方面的基于相似性度量的模型比对方法,所述步骤422中,利用以下表达式得到待比对模型之间的模型横向相似度:
HierSim ( A , B ) = &Sigma; i = 1 h HorizSim i ( A , B ) &times; r i 1 + r + r 2 + . . . . . + r h
其中,HierSim(A,B)表示模型A和模型B之间的模型横向相似度,HorizSimi(A,B)表示模型A和模型B之间各个层次的层次相似度,r为折扣因子,0<r<=1。
根据本发明另一方面的基于相似性度量的模型比对方法,其特征在于,在所述步骤50中,将所述模型相似度与设定阈值进行比较以得到待比对模型之间的关系。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
因为在计算节点相似度时采用了文本相似度与标签相似度相结合的手段,克服了仅仅考虑文本而忽略模型元素标签特性的问题,进而使节点相似度更能反映模型的实际情况。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是来源于不同数据源的三个模型的示意图;
图2是根据本发明实施例的基于相似性度量的模型比对方法的流程示意图;
图3(a)和图3(b)分别是是模型的存储结构和模型的树结构的示例图;
图4是根据本发明实施例的基于相似性度量的模型比对方法中各个相似度的组成以及它们之间的相互关系的示意图;
图5是根据本发明实施例的基于相似性度量的模型比对方法中节点相似度的组成示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的基于相似性度量的模型比对方法的流程示意图。
需要说明的是,本发明实施例中的模型所包括的所有元素是可扩展标记语言(eXtensible Markup Language,简称XML)形式,但是除了XML形式外,各种可以转化为树形结构的半结构化模型表示方式都可以适用本发明方法。
在本实施例中,每一个模型文件对应一个XML文件,并且每一个模型文件中包括有多个模型,每个模型都有自己相应信息,如图1,图3所示。因此,对模型的对比就转化为对两个XML文件之间片断的比对。
为了便于表述,以图3为例说明本实施例中要用到的术语,其中,图3(b)是模型的树结构,其是根据图3(a)模型的存储结构转化而来:
(1)节点:包括元素节点、属性节点和值节点,如图3中的“文章”、“开头”、“主体”等均是节点。
(2)模型的路径:给定一个模型,首先将其解析为对应的XML树,将从根节点到叶子节点所经由的节点组成的串(以“/”作为节点之间的分隔符)叫做路径,例如:“文章/开头/摘要”为图3模型中的一条路径。
从两个待比对模型中,可以看出,整个抽象树完全可以看作是由节点与节点之间的层次关系构成。
图4是根据本发明实施例的基于相似性度量的模型比对方法中各个相似度的组成以及它们之间的相互关系的示意图。如图4所示,在本实施例中涉及到通过计算模型之间横向相似度和/或纵向相似度以得到模型之间的相似度。模型纵向相似度是基于模型之间路径相似度来计算得到,模型横向相似度基于模型层次相似度来得到。节点相似度这一部分则可以分为节点标签相似度和节点文本相似度这两部分,具体如图5所示。
下面参考图2,详细说明本实施例的各步骤。
步骤S210,确定待比对的模型,记为模型A和模型B。
步骤S220,分别从待比对的模型中获取组成各个模型的节点。
步骤S230,计算待比对模型之间各个节点的节点相似度。
具体地,通过计算待比对模型之间各个节点的节点文本相似度和节点标签相似度、以得到待比对模型之间各个节点的节点相似度。
首先,基于各个节点所对应的标签之间的语义关系以得到待对比模型之间各个节点的节点标签相似度。
由于在本发明实施例中的模型中存在多种元素(即节点),因此,为了更精确的进行模型之间的比对,必须考虑到它们之间的相似度。在本发明实施例中,每个模型都对应着底层的半结构化文档块,因此,底层XML文档中每一个标签及标签所对应的文本内容就对应着一个元素。
优选地,本发明实施例中,模型的元素所对应的标签为以下9种,它们分别是:概念,属性,复合属性,继承,同义,反义,引用,聚集,自定义。在这里,根据它们的实际意义,对它们之间的关系进行了量化,具体如下表1所示。
表1
例如,节点1为体育,它所对应的标签为“概念”,节点2为足球,它所对应的标签为“引用”,则根据上述表格可以得到两节点之间的节点标签相似度为0.1。
然后,基于各个节点之间的字符串编辑距离来得到待比对模型之间各个节点的节点文本相似度。
对节点文本相似度的度量,就是度量节点的文本字符串的相似度,通过字符串编辑距离来实现。字符串编辑距离指的是一种用来度量字符串之间相似度的方法。给定两个字符串S、T,将S转换成T所需要的删除,插入,替换操作的数量就叫做S到T的编辑路径。而最短的编辑路径就叫做字符串S和T的编辑距离。在此,用动态规划方法来确定编辑距离。
给定节点X的字符串为X=[x0x1…xi….xm],节点Y的字符串为Y=[y0y1...yj....yn],用符号EDIT(i,j)表示X中[x0x1…xi]子串,到Y中子串[y0y1…yj]的编辑距离。用D(i,j)表示X中第i个字符X(i)转换到Y中第j个字符Y(j)所需要的操作次数,如果X(i)==Y(j),则不需要任何操作即D(i,j)=0;否则,需要替换操作,D(i,j)=1。那么根据动态规划的特点,可以得出X,Y之间的编辑距离E(X,Y)如下公式:
EDIT(i,j)=1,           如果i=0且j=0;
EDIT(i,j)=EDIT(i,j-1)+1,   如果i=0且j>0;
EDIT(i,j)=EDIT(i-1,j)+1,  如果i>0且j=0;
EDIT(i,j)=min(EDIT(i-1,j)+1,EDIT(i,j-1)+1,EDIT(i-1,j-1)+D(i,j)),             如果i>0,j>0
为了便于后续的计算,现在将通过将X,Y之间的编辑距离的值归于0-1的范围之内,得出节点X,Y之间的节点文本相似度为:
SmaticSim ( X , Y ) = 1 - E ( X , Y ) max ( | X | , | Y | )
其中|X|,|Y|分别表示节点X的字符串和节点Y的字符串的长度。
综合节点文本相似度与节点标签相似度可得最终的节点相似度如下公式:
NodeSim ( X , Y ) = &PartialD; LabSim ( X , Y ) + ( 1 - &PartialD; ) SmaticSim ( X , Y )
其中,表示合成权重,指定了最终的合成结果中LabSim(X,Y)和SmaticSim(X,Y)各占多大的比例,NodeSim(X,Y)表示节点X和节点Y的相似度,LabSim(X,Y)表示节点X和节点Y之间的节点标签相似度,SmaticSim(X,Y)表示节点X,Y之间的节点文本相似度。
步骤S240,基于各个节点的节点相似度计算得到待比对模型之间各个路径的路径相似度。
首先,把该模型所对应的XML分支分解成路径的集合,然后,分别计算两个模型中所对应路径的相似度。路径中对应的一致节点越多,两条路径就越相似。但是由于上面所提到的,可能出现节点同义不同名、不同人员对模型结构认知不一致的情况,因此,需要放宽节点一致的条件。
在本发明实施例中,依照如下所示的步骤来计算模型A,B之间任意两条路径之间的相似度。
(1)对两个模型的路径进行预处理。
具体地,利用节点相似度的比较结果,得到待比较的两条路径上具有相似语义标签的节点,并在具有相似语义标签的两个节点上做上标记,表明它们具有相同的语义标签。
更具体地,对于两条路径P1、P2分别表示两条路径上的节点,如果,其中NodeSim为节点之间的节点相似度,α为设定的阈值,α为0到1之间的实数,则认为相互匹配。在此过程中,把相互匹配的节点做上标记。
(2)利用节点相似度,基于最长公共子序列法和/或层次法得到所述待比对模型之间各个路径的路径相似度。
接下来,详细说明基于最长公共子序列法(以下简称LCS)计算两个模型之间的路径相似度(以下简称LCS法路径相似度)。
为了方便对路径进行比较,本发明中使用LCS来描述两个路径之间的相似度。
一个给定序列的子序列从形式上来说,给定一个序列X=<x1,x2,…,xm>,另一个序列Z=<z1,z2,……,zk>是X的一个子序列,如果存在X的一个严格递增下标序列<i1,i2,…,ik>,使得对所有j=1,2,….k,都有。例如,Z=<B,C,D,B>是X=<A,B,C,B,D,A,B>的一个子序列。
而最长公共子序列的定义是:一个序列S,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则S称为已知序列的最长公共子序列。
首先,把经过预处理的做过标记的两个节点,直接视作是相同两个节点,接着,使用LCS方法对处理过后的两个路径进行比较,在这个比较过程中,两条模型路径的最长公共子序列越长,就象征着两条路径在结构上重叠的部分越多,因此也就越相似。此外,考虑到高层次的节点比低层次的节点更能代表整个模型的结构信息,因而在比较的过程中需要考虑各个节点的权重。
因此,待比对模型之间各个路径的路径相似度可以表示成如下公式:
SP LCS ( P 1 , P 2 ) = &alpha; &times; | LCS ( P 1 , P 2 ) | | level ( P 1 ) |
其中,SPLCS(P1,P2)表示路径P1,P2的相似度,|level(P1)|表示路径P1所具有的层次数(或节点数),|LCS(P1,P2)|表示组成模型路径P1,P2最长公共子序列的节点的集合中节点的个数.α为LCS(P1,P2)中各个公共子序列节点的权重。
α可以通过下述表达式来表示:
&alpha; = &Pi; n = 1 | LCS ( P 1 , P 2 ) | | level ( P 1 ) | - level P 1 ( LCS n ( P 1 , P 2 ) ) | level ( P 1 ) |
其中,|LCS(P1,P2)|表示组成模型路径P1,P2最长公共子序列的节点的集合中节点的个数,|level(P1)|表示路径P1所具有的层次数(或节点数),LCSn(P1,P2)表示P1,P2最长公共子序列中第n个节点(模型路径从上至下顺序),表示P1,P2最长公共子序列中第n个节点在P1路径上所处的层次。
通过利用LCS方法来计算路径相似度,能够提高与某条路径排布顺序一致的子路径的处理,能有效地考虑到路径之间的相互包含问题。
另外,还可以基于层次法计算两个模型之间的路径相似度(以下简称层次法路径相似度)。
需要说明的是,与LCS路径相似度不同,层次路径相似度不要求相似节点之间严格按固定的次序出现,也就是路径A中的某一节点可以在路径B的所有节点中选择和自身最接近的节点,两个最匹配的节点可以出现在不同的层次上,但所处的层次越接近相似度也越高。在本步骤中通过度量节点所处的相对层次来度量两条路径的相似度。由于路径是由节点构成的,所以最先对两条路径上两个节点之间的相似度进行度量。
具体地,需要进行如下处理:
首先,计算路径上相互匹配两节点之间相似度。
从预处理中得出多组位于两条路径上相互匹配的节点,而相互匹配的节点又最能体现出两条路径的相似度,因此,在考虑路径相似度的过程中,对相互匹配的节点进行处理即可。
通过对两条路径上相互匹配的节点的权重和层次相关度的计算,得出如下计算路径上相互匹配两节点之间相似度的方法:
SV &prime; ( V p 1 , V p 2 ) = 1 - | Level P 1 ( V P 1 ) - level P 2 ( V P 2 ) | max ( level ( P 1 ) , level ( P 2 ) )
其中,level(P1),level(P2),分别表示路径P1和P2的层次数,levelP1(VP1)和levelP2(VP2)分别表示节点VP1在路径P1的层次数和节点VP2在路径P2的层次数。
然后,针对节点权重的选取。
由于在模型路径中往往处于高层次的节点比低层次节点对整个路径的影响要大,它能比低层次的节点更加准确的反应整个文档结构的信息。因此,在计算路径相似度时,可以对节点分别赋予不同的权重以反应它对整条路径的重要性。
例如,有P1和P2两条路径,它们之间的相互匹配的节点在P1上依次为{V0,V1.......Vn},那么给节点Vi所赋予的权值为其中0<β<1且level(Vi)表示Vi的在P1中的实际的层次。因此,考虑到节点权重后,两条路径上相互匹配的节点之间的相似度最终表示成如下公式:
SV ( V p 1 , V p 2 ) = &beta; level P 1 ( V P 1 ) &times; ( 1 - | Level P 1 ( V P 1 ) - level P 2 ( V P 2 ) | max ( level ( P 1 ) , level ( P 2 ) ) )
其中,levelP1(VP1)表示节点VP1在路径P1的层次数。
最后,计算层次法路径相似度。
给定路径P1,P2,对于路径P1上的节点VP1,把它在P2上的最佳匹配节点定义为:
那么,路径P1与P2最终的相似度SPw1(P1,P2)为
SP w 1 ( P 1 , P 2 ) = &Sigma;v p 1 Mv P 2 ( P 1 ) | P |
最后,可以通过将各个路径的LCS法相似度和/或层次法相似度作为待比对模型之间各个路径相似度。
在本发明实施例中,优选地将待比对模型之间各个路径之间的LCS法相似度和层次法相似度进行综合,得到两条模型路径之间的相似度。
最终两条模型路径相似度公式可以如下所示:
SimPath(P1,P2)=γSPLcs(P1,P2)+(1-γ)SPwl(P1,P2)
其中γ,1-γ分别表示SPLCS(P1,P2)和SPwl(P1,P2)所占的比重。
在上述步骤中,SPLCS(P1,P2)和SPw1(P1,P2)分别表示LCS法相似度和层次法相似度。但它们却各有优缺点,并且形成互补:SPLCS(P1,P2)能有效地考虑到路径之间的相互包含问题,但是缺乏对异构的数源异构的认识。而SPw1(P1,P2)能够有效处理模型层次中的错位关系,却不能考虑到两个模型之间的包含关系。因此,本步骤通过将两个方法得到的相似度进行结合,并分别给它们赋予一个权重以得到最终的路径相似度值。
步骤S250,基于各个路径的路径相似度和各个层次的层次相似度以得到所述待比对模型之间的模型相似度。
具体地,包括以下子步骤:
步骤S2501,基于各个路径的路径相似度得到待比对模型之间的模型纵向相似度;
步骤S2502,基于各个层次的层次相似度得到待比对模型之间的模型横向相似度;
步骤S2503,基于模型纵向相似度和/或模型横向相似度以得到待比对模型之间的模型相似度。
针对步骤S2501,需要说明的是,在本发明实施例中,模型间的纵向相似度,是指从纵向的角度对模型之间的相似度进行度量,其中,纵向表示的是一个从模型根节点逐步向末端节点的方向。那么,就可以把这个从模型根节点逐步向末端节点的过程,用一条路径来表示。在本发明中的模型元素可以包含多个子元素,因此在度量模型纵向相似度时会涉及到多条路径。如图3中模型的路径可以表示成三条:文章/开头/摘要;文章/开头/标题;文章/段落/主体。
由于模型纵向相似度考虑的是该模型的各个节点元素之间的层次关系,而对层次结构及节点之间相互关系最直接的体现就是模型的路径,因此对模型A,B之间包含的多条路径之间的相似度进行综合,得到模型A,B间的纵向相似度。
具体地,给定模型A与模型B,用PA,PB分别表示A,B上路径的集合,将模型A中的每条路径与模型B的路径进行逐一比较,并取最大的相似度值作为这条路径的相似度。同理,对模型B也进行同样的操作。最后,将A,B中所有路径对应的相似度相加再求平均,即可得模型A,B之间的纵向相似度。具体如下公式所示:
VerticSim ( A , B ) = &Sigma; P 1 &Element; P A [ max P 2 &Element; P B ( simPath ( P 1 , P 2 ) ) ] + &Sigma; P 2 &Element; P B [ max P 1 &Element; P A ( SimPath ( P 1 , P 2 ) ) ] | P A | + | P B |
其中|PA|、|PB|分别表示模型A和模型B所包含的路径的个数,PA,PB分别表示待比对模型A和模型B上的路径的集合,P1和P2分别表示PA,PB中的任意一条路径,SimPath(P1,P2)表示模型A中路径P1和模型B中路径P2的路径相似度,VerticSim(A,B)表示模型A和模型B的模型纵向相似度。
针对步骤S2502,需要说明的是,在本发明实施例中,模型间的横向相似度,是指从横向层次对模型之间的相似度进行度量,上层元素有多个下级元素的,下级元素与上层元素之间的关系会影响相似度的比较。如图3所示模型最外层“文章”模型下的“开头”与“主体”子元素就属于同一横向层次。
前述的路径相似度是对模型树(XML树)的纵向拆解,从纵向比较模型的相似程度,而横向相似度的度量是从横向上按层次将模型拆解来比较两个模型树之间的相关度。在此,通过度量模型的层次相似度来反应横向相似度。
具体地,基于各个节点的节点相似度得到待比对模型之间各个层次的层次相似度,然后基于层次相似度以得到待比对模型之间的模型横向相似度。
更具体地,首先,设模型(树)A的深度为h,设深度增加的方向是从根节点向叶子节点,即叶子节点的高度为h,根节点高度为1。此时将模型树A横向拆解,得到每一层的节点集合为Ali,i为深度,为大于等于1且小于等于h的整数。同理对于模型树B,得到第i层的节点集合为Bli,,先定义两个集合的一种新的运算,即相似交集∩sim,a(a是集合Ali中的一个节点)与Bli的相似交集是a与Bli中按照一定的相似度阈值近似相等的元素的集合,相似交集的定义如下所示:
(a,b)∈AlisimBli<==>a∈Ali,b∈Bli并且NodeSim(a,b)>=k,
其中a,b分别表示A,B模型i层的一个节点,k为预先设定的相似度阈值。
那么,模型树A和模型树B在层次i的层次相似度定义为,
Horiz Sim i ( A , B ) = 2 &times; | trim ( Al i &cap; sim Bl i ) | | Al i | + | Bl i |
其中,trim(AlisimBli)表示去除AlisimBli集合中的重复元素,|trim(AlisimBli)|表示集合的大小,|Ali|和|Bli|分别表示模型A和模型B第i层的节点数目。
然后,各层相似度的加权和作为模型树A、B的总的层次相似度。在本实施例中设定,越靠近根节点的层次重要性越大,越能反映概念的性质,因此,设r为折扣因子,0<r<=1,总的层次相似度(即模型横向相似度)定义为:
HierSim ( A , B ) = &Sigma; i = 1 h HorizSim i ( A , B ) &times; r i 1 + r + r 2 + . . . . . + r h
按照这种方法,可以计算出概念树(模型)A和概念树(模型)B之间的模型横向相似度了,模型横向相似度是对模型纵向相似度的重要补充,有助于更好的进行模型的相似性度量。
针对步骤S2503,根据上述的结果,可以基于模型纵向相似度和/或模型横向相似度以得到待比对模型之间的模型相似度。
在本实施例中,优选地基于两个模型之间的纵向相似度和横向相似度以得到两个模型的之间的相似度的值。
需要说明的是,为了让评估的结果更精确,从横纵两方面对模型相似度进行评估,因此需要对这两种相似度进行综合即可,那么对模型A,B间的相似度最终表示成如下公式:
ModelSim(A,B)=VerticSim(A,B)×p+HierSim(A,B)×(1-p)
其中ModelSim(A,B)表示A,B间的模型相似度,VerticSim(A,B)和HierSim(A,B)分别表示模型A和模型B之间的模型纵向相似度和模型横向相似度,p表示权重。
因为采用了横向相似度和纵向相似度相结合的方法来计算模型的相似度,克服了对模型相似情况反映不客观的问题,使得相似性的度量结果更加准确、全面、客观。
步骤S260,基于两个模型之间相似度得到待比对模型之间的关系。
具体地,将模型相似度与设定阈值进行比较以得到待比对模型之间的关系。
在版本比对过程中,对于进行比较的两个模型A与B,要将A与B中的各个元素划分为四种类型,即:1)A中包含某元素,而B中没有;2)B中包含某元素,而A中没有;3)A和B中均包含某元素,但该元素在A和B中有所不同;4)A与B中均包含某元素,而且相同。
对于情况4),仅当该元素在A与B中完全相同时才成立,因此比较容易判断,而情况1)和情况2)其实是同质的问题,即某元素在一个模型中存在而在另一个模型中不存在。当文件A和B分别包含一个元素Ai和Bi时,是把Ai划分为情况1),同时把Bi划分为情况2);还是把Ai与Bi划分为情况3)就是我们要通过相似性度量解决的问题。
在本步骤中,设定一个实数相似度阈值d,优选地,设定0<d<1,模型A中任何一个元素与模型B中任何一个元素的相互之间的相似性均可通过前述方法计算出来,并采用分别以A、B中元素为行和列的相似度矩阵保存。通过该相似度矩阵,我们可以随时查到(Ai,Bi)对的相似度,当此相似度的值为1时,本方法就将Ai和Bi划分为情况4),即A与B中均包含某元素,而且相同;当此相似度的值大于等于阈值d但小于1时,本方法就将Ai和Bi划分为情况3),即A和B中均包含某元素,但该元素在A和B中有所不同;当该相似度小于阈值d时,本方法就将Ai和Bi分别划分为情况1)和情况2)。
通过以上步骤,本实施例实现了利用模型元素之间的相似度计算来进行模型比对。将本发明用在传统的模型比对上,不仅有更高的效率,减少了多余的信息,增强了实用性,而且使得比对的结果更加的智能化、人性化,进一步契合了用户的需求,极大的方便了用户。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (6)

1.一种基于相似性度量的模型比对方法,其特征在于,包括:
步骤10,确定待比对的模型;
步骤20,分别从所述待比对的模型中获取组成各个模型的节点;
步骤30,计算所述待比对模型之间各个节点的节点相似度,其中,通过计算所述待比对模型之间各个节点的节点文本相似度和节点标签相似度、以得到所述待比对模型之间各个节点的节点相似度;
步骤40,基于所述待比对模型之间各个节点的节点相似度计算得到所述待比对模型之间的模型相似度,在所述步骤40中,具体包括以下步骤:
步骤41,利用所述各个节点的节点相似度,基于最长公共子序列法和
/或层次法得到所述待比对模型之间各个路径的路径相似度,且利用以下表
达式得到待比对模型之间各个层次的层次相似度:
HorizSim i ( A , B ) = 2 &times; | trim ( Al i &cap; sim Bl i ) | | Al i | + | Bl i |
其中,trim(AlisimBli)表示去除AlisimBli集合中的重复节点后的节点集合,|trim(AlisimBli)|表示集合的大小,|Ali|和|Bli|分别表示模型A和模型B第i层的节点数目,其中,AlisimBli集合利用以下表达式来定义:
(a,b)∈AlisimBli<==>a∈Ali,b∈Bli并且NodeSim(a,b)>=k,
其中,a,b分别表示模型A和模型B的第i层的一个节点,k为预设的相似度阈值,Ali为模型A的第i层的节点集合,i为深度且为大于等于1且小于等于h的整数,h为模型A的深度;Bli为模型B的第i层的节点集合,NodeSim(a,b)为节点a和节点b的节点相似度;
步骤42,基于所述各个路径的路径相似度得到待比对模型之间的模型纵向相似度,基于所述各个层次的层次相似度得到待比对模型之间的模型横向相似度,基于所述模型纵向相似度和/或模型横向相似度以得到待比对模型之间的模型相似度,其中,所述路径为待比对模型的树结构中从根节点到叶子节点所经由的节点组成的串,
其中,利用如下表达式得到待比对模型之间的模型纵向相似度:
VerticSim ( A , B ) = &Sigma; P 1 &Element; P A [ max P 2 &Element; P B ( SimPath ( P 1 , P 2 ) ) ] + &Sigma; P 2 &Element; P B [ max P 1 &Element; P A ( SimPath ( P 1 , P 2 ) ) ] | P A | + | P B |
其中|PA|、|PB|分别表示待比对模型A和模型B所包含的路径的个数;PA,PB分别表示待比对模型A和模型B上的路径的集合,P1和P2分别表示PA,PB中的任意一条路径,SimPath(P1,P2)表示模型A中路径P1和模型B中路径P2的路径相似度,VerticSim(A,B)表示模型A和模型B的模型纵向相似度;
利用以下表达式得到待比对模型之间的模型横向相似度:
HierSim ( A , B ) = &Sigma; i = 1 h HorizSim i ( A , B ) &times; r i 1 + r + r 2 + . . . . . + r h
其中,HierSim(A,B)表示模型A和模型B之间的模型横向相似度,HorizSimi(A,B)表示模型A和模型B之间各个层次的层次相似度,r为折扣因子,0<r<=1;
步骤50,基于所述模型相似度以得到所述待比对模型之间的关系。
2.根据权利要求1所述的方法,其特征在于,
基于各个节点所对应的标签之间的语义关系以得到所述待比对模型之间各个节点的节点标签相似度。
3.根据权利要求1所述的方法,其特征在于,
基于各个节点之间的字符串编辑距离来得到所述待比对模型之间各个节点的节点文本相似度。
4.根据权利要求3所述的方法,其特征在于,
所述待比对模型之间各个节点利用以下表达式来得到节点文本相似度:
SmaticSim ( X , Y ) = 1 - E ( X , Y ) max ( | X | , | Y | )
其中,|X|,|Y|分别表示节点X的字符串和节点Y的字符串的长度,E(X,Y)表示节点X和节点Y之间的字符串编辑距离,SmaticSim(X,Y)表示节点X和节点Y的节点文本相似度。
5.根据权利要求1至4任一项所述的方法,其特征在于,
所述待比对模型之间各个节点利用如下表达式来得到所述待比对模型之间各个节点的节点相似度:
NodeSim ( X , Y ) = &PartialD; LabSim ( X , Y ) + ( 1 - &PartialD; ) SmaticSim ( X , Y )
其中,表示合成权重,NodeSim(X,Y)表示节点X和节点Y的节点相似度,LabSim(X,Y)表示节点X和节点Y之间的节点标签相似度,SmaticSim(X,Y)表示节点X和节点Y之间的节点文本相似度。
6.根据权利要求1所述的方法,其特征在于,在所述步骤50中,
将所述模型相似度与设定阈值进行比较以得到待比对模型之间的关系。
CN201210171251.7A 2012-05-29 2012-05-29 一种基于相似性度量的模型比对方法 Active CN102722556B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210171251.7A CN102722556B (zh) 2012-05-29 2012-05-29 一种基于相似性度量的模型比对方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210171251.7A CN102722556B (zh) 2012-05-29 2012-05-29 一种基于相似性度量的模型比对方法

Publications (2)

Publication Number Publication Date
CN102722556A CN102722556A (zh) 2012-10-10
CN102722556B true CN102722556B (zh) 2014-10-22

Family

ID=46948317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210171251.7A Active CN102722556B (zh) 2012-05-29 2012-05-29 一种基于相似性度量的模型比对方法

Country Status (1)

Country Link
CN (1) CN102722556B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323865B2 (en) * 2013-12-24 2016-04-26 TCL Research America Inc. Content alignment method and system
CN104305957B (zh) * 2014-08-28 2016-09-28 中国科学院自动化研究所 头戴式分子影像导航系统
CN105488084A (zh) * 2014-12-24 2016-04-13 哈尔滨安天科技股份有限公司 基于树同构的软件安装包分类方法及系统
CN105184387A (zh) * 2015-07-23 2015-12-23 北京理工大学 一种路径相似度比较方法
CN105930761A (zh) * 2015-11-30 2016-09-07 中国银联股份有限公司 一种基于眼球跟踪的活体检测的方法、装置及系统
CN109597913B (zh) * 2018-11-05 2021-01-29 东软集团股份有限公司 对齐文档图片的方法,装置,存储介质和电子设备
CN109582759B (zh) * 2018-11-15 2021-10-22 中电科大数据研究院有限公司 一种衡量公文相似性的方法
EP3671579A1 (en) * 2018-12-19 2020-06-24 Siemens Aktiengesellschaft Method and system for providing a service for a complex industrial system
SG10201904554TA (en) 2019-05-21 2019-09-27 Alibaba Group Holding Ltd Methods and devices for quantifying text similarity
CN110225007A (zh) * 2019-05-27 2019-09-10 国家计算机网络与信息安全管理中心 webshell流量数据聚类分析方法以及控制器和介质
CN111307194B (zh) * 2020-01-21 2020-12-25 中南民族大学 基于北斗的环境设备检测方法、装置、设备及存储介质
CN115378824B (zh) * 2022-08-24 2023-07-14 中国联合网络通信集团有限公司 模型相似度确定方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876995A (zh) * 2009-12-18 2010-11-03 南开大学 一种计算xml文档相似度的方法
CN101930462A (zh) * 2010-08-20 2010-12-29 华中科技大学 一种综合的本体相似度检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876995A (zh) * 2009-12-18 2010-11-03 南开大学 一种计算xml文档相似度的方法
CN101930462A (zh) * 2010-08-20 2010-12-29 华中科技大学 一种综合的本体相似度检测方法

Also Published As

Publication number Publication date
CN102722556A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
CN102722556B (zh) 一种基于相似性度量的模型比对方法
CN106919689B (zh) 基于术语释义知识单元的专业领域知识图谱动态构建方法
Aggarwal et al. Xproj: a framework for projected structural clustering of xml documents
US7930262B2 (en) System and method for the longitudinal analysis of education outcomes using cohort life cycles, cluster analytics-based cohort analysis, and probabilistic data schemas
CN105930368B (zh) 一种情感分类方法及系统
CN106250412A (zh) 基于多源实体融合的知识图谱构建方法
Carpineto et al. Consensus clustering based on a new probabilistic rand index with application to subtopic retrieval
CN105975458B (zh) 一种基于细粒度依存关系的中文长句相似度计算方法
CN105808524A (zh) 一种基于专利文献摘要的专利自动分类方法
CN104346438B (zh) 基于大数据数据管理服务系统
CN112148890B (zh) 基于网络群体智能的教学知识点图谱系统
CN102119389A (zh) 使用语义距离学习的自动图像注释
CN105045875A (zh) 个性化信息检索方法及装置
CN106202206A (zh) 一种基于软件聚类的源码功能搜索方法
Gao et al. Pattern-based topic models for information filtering
CN116127084A (zh) 基于知识图谱的微电网调度策略智能检索系统及方法
CN109829065A (zh) 图像检索方法、装置、设备及计算机可读存储介质
CN114997288A (zh) 一种设计资源关联方法
Li et al. Bi-CMR: Bidirectional reinforcement guided hashing for effective cross-modal retrieval
CN109684473A (zh) 一种自动简报生成方法及系统
CN117573829A (zh) 基于注意力机制的领域大模型知识库分类和构建方法
CN112417082A (zh) 一种科研成果数据消歧归档存储方法
CN116186297A (zh) 一种基于图流形学习的文献关系发现方法及系统
Yang et al. Research on improvement of text processing and clustering algorithms in public opinion early warning system
Zhang et al. Text Semantic Analysis Algorithm Based on LDA Model and Doc2vec

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant