CN105094209B - 数据的修复方法及装置 - Google Patents
数据的修复方法及装置 Download PDFInfo
- Publication number
- CN105094209B CN105094209B CN201410201689.4A CN201410201689A CN105094209B CN 105094209 B CN105094209 B CN 105094209B CN 201410201689 A CN201410201689 A CN 201410201689A CN 105094209 B CN105094209 B CN 105094209B
- Authority
- CN
- China
- Prior art keywords
- frequent
- graph structure
- data
- graph
- node
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的修复方法及装置,属于信息技术领域。方法包括:根据资源描述框架RDF知识库中的数据获取RDF图数据及邻居步数;根据RDF图数据及邻居步数确定至少一个频繁图结构;挖掘每个频繁图结构中包含语义的依赖关系;根据包含语义的依赖关系检测RDF图数据中的异常数据,并对异常数据进行修复。本发明通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种数据的修复方法及装置。
背景技术
随着信息技术的不断发展,RDF(Resource Description Framework,资源描述框架)知识库中的数据快速增长。由于数据转换错误、拼写错误等原因,RDF知识库中的数据可能会出现异常。因此,如何对RDF知识库中的异常数据进行修复,从而提高数据质量成为人们关注的问题。
目前有两种数据的修复方式。第一种方式:根据RDF知识库中的数据获取一个关系数据表,并挖掘该关系数据表中的依赖关系;根据依赖关系检测关系数据表中的异常数据,并对异常数据进行修复。第二种方式:获取RDF图数据,并对RDF图数据中的属性值进行聚类,得到属性值聚类中心;根据RDF图数据中每个属性值与属性值聚类中心的距离检测RDF图数据中的第一异常数据;挖掘RDF图数据中的属性依赖关系,根据属性依赖关系检测RDF图数据中的第二异常数据,并对第一异常数据及第二异常数据进行修复。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
第一种方式中对关系数据表中的异常数据进行修复,致使数据的修复范围受到一定的限制。另外,第一种方式挖掘关系数据表中的依赖关系,第二种方式挖掘RDF图数据中的属性依赖关系,使得根据关系数据表中挖掘的依赖关系或RDF图数据中挖掘的属性依赖关系检测的异常数据的错误类型受到限制,进一步限制了数据的修复范围。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据的修复方法及装置。所述技术方案如下:
第一方面,提供了一种数据的修复方法,所述方法包括:
根据RDF知识库中的数据获取RDF图数据及邻居步数;
根据所述RDF图数据及邻居步数确定至少一个频繁图结构;
挖掘每个频繁图结构中包含语义的依赖关系;
根据所述包含语义的依赖关系检测所述RDF图数据中的异常数据,并对所述异常数据进行修复。
第二方面,提供了一种数据的修复装置,所述装置包括:
获取模块,用于根据RDF知识库中的数据获取RDF图数据及邻居步数;
确定模块,用于根据所述RDF图数据及邻居步数确定至少一个频繁图结构;
挖掘模块,用于挖掘每个频繁图结构中包含语义的依赖关系;
检测模块,用于根据所述包含语义的依赖关系检测所述RDF图数据中的异常数据;
修复模块,用于对所述异常数据进行修复。
本发明实施例提供的技术方案带来的有益效果是:
通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据的修复方法流程图;
图2是本发明另一实施例提供的数据的修复方法流程图;
图3是本发明另一实施例提供的RDF数据的示意图;
图4是本发明另一实施例提供的1步邻居图模式的示意图;
图5是本发明另一实施例提供的图模式的示意图;
图6是本发明另一实施例提供的图模式关系表的示意图;
图7是本发明另一实施例提供的频繁图结构的示意图;
图8是本发明另一实施例提供的频繁图结构的编码的示意图;
图9是本发明另一实施例提供的层级化的有向图的示意图;
图10是本发明另一实施例提供的数据库的示意图;
图11是本发明另一实施例提供的前缀树的示意图;
图12是本发明另一实施例提供的包含语义的依赖关系的示意图;
图13是本发明另一实施例提供的实验结果的示意图;
图14是本发明另一实施例提供的包含语义的依赖关系的示意图;
图15是本发明另一实施例提供的数据的修复装置的结构示意图;
图16是本发明另一实施例提供的确定模块的结构示意图;
图17是本发明另一实施例提供的挖掘模块的结构示意图;
图18是本发明另一实施例提供的挖掘单元的结构示意图;
图19是本发明另一实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
针对目前在修复数据时,检测到的异常数据的错误类型较少,限制数据修复范围的情况,本发明实施例提供了一种数据的修复方法,参见图1,方法流程包括:
101:根据RDF知识库中的数据获取RDF图数据及邻居步数;
102:根据RDF图数据及邻居步数确定至少一个频繁图结构;
作为一种可选实施例,根据RDF图数据及邻居步数确定至少一个频繁图结构,包括:
查找RDF图数据中每个主体对应的邻居步数的图模式;
将每个邻居步数的图模式转换为一个图模式;
根据所有图模式生成一个图模式关系表;
根据图模式关系表确定至少一个频繁图结构。
103:挖掘每个频繁图结构中包含语义的依赖关系;
作为一种可选实施例,挖掘每个频繁图结构中包含语义的依赖关系,包括:
挖掘每个频繁图结构中的开包集;
根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集;
根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系。
作为一种可选实施例,挖掘每个频繁图结构中的开包集,包括:
确定所有频繁图结构之间的子集链,子集链包括至少两个第一频繁图结构;
挖掘子集链的第一开包集,根据第一开包集验证每个第一频繁图结构的开包集,得到每个第一频繁图结构的第二开包集;
挖掘除第一频繁图结构外的每个第二频繁图结构的第三开包集,将第二开包集及第三开包集作为挖掘到的每个频繁图结构中的开包集。
作为一种可选实施例,确定所有频繁图结构之间的子集链,包括:
将所有频繁图结构转换为一个有向图,有向图中的每个节点对应一个频繁图结构;
确定有向图中的最长路径的集合,并将最长路径集合中任一最长路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
作为一种可选实施例,确定所有频繁图结构之间的子集链,包括:
将所有频繁图结构组合成一个数据库;
根据数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
104:根据包含语义的依赖关系检测RDF图数据中的异常数据,并对异常数据进行修复。
本发明实施例提供的方法,通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
本发明实施例提供了一种数据的修复方法,结合上一实施例的内容,参见图2,方法流程包括:
201:根据RDF知识库中的数据获取RDF图数据及邻居步数;
需要说明的是,本实施例提供的方法在描述数据时,对于图中的数据,使用三元组<主体,谓词,客体>描述;对于表格中的数据,使用三元组<实体名称,属性,属性值>描述;其中,主体对应实体名称,谓词对应属性,客体对应属性值。因此,对于RDF图数据,使用三元组<主体,谓词,客体>描述。
具体实施时,RDF图数据可以表示为有向图G=<I,L,R,E>;其中,I、L及R分别表示实体标识符(Instance)、文字标识符(Literal)及关系标识符(Relation),对应于三元组<主体,谓词,客体>,I为RDF图数据中所有主体的标识的集合,L为RDF图数据中所有客体的标识的集合,R为RDF图数据中所有谓词的标识的集合;E表示有向边集合,有向边表明实体标识符、关系标识符及文字标识符或实体标识符之间的关系,用公式表示为E=I*R*(I∪L),*表示连接关系,∪表示或关系,即有向边从一个实体标识符通过关系标识符指向一个文字标识符或实体标识符。G中的一条路径(path)可以表示为<I0,r1,I1,…,rn,In>,I0、I1及In分别表示RDF图数据中的一个主体,r1及rn分别表示RDF图数据中的一个谓词,G中所有路径的集合可以表示为Pο;其中,如果且i≠j,则Ii≠Ij,Ii及Ij分别表示RDF图数据中的一个主体;如果则<Ii,ri+1,Ii+1>∈E或<Ii+1,ri+1,Ii>∈E,ri∈R。
例如,获取到的RDF图数据为如图3所示的数据。其中,“演员A”及“导演A”为主体,“AB”、“普通话”、“西安”、“天秤”、“天蝎”、“演员”、“119分钟”及“演艺导演”为客体,“血型”、“语言”、“籍贯”、“星座”、“作品”、“职业”、“片长”为谓词,“电影1”在三元组<演员A,作品,电影1>或<导演A’,作品,电影1>中为客体,在三元组<电影1,语言,普通话>或<电影1,片长,119分钟>中为主体。
另外,邻居步数为对RDF图数据中的所有主体进行DFS(Depth First Search,深度优先搜索)的步数。以图3所示RDF图数据为例,当邻居步数为1时,对主体“演员A”进行DFS的过程为:访问主体“演员A”;访问与“演员A”1步相邻的未被访问的谓词或主体,即访问“AB”、“天秤”、“电影1”及“演员”。
进一步地,获取RDF图数据,包括但不限于:对RDF知识库中的数据进行半结构化数据的抽取、数据集成,得到所有的三元组;将客体通过谓词连接主体,得到以主体为中心的“星形”图,再通过既可作为主体又可作为客体的数据将不同的“星形”图连接,即可得到RDF图数据。
获取邻居步数,包括但不限于:提供交互界面,获取用户通过交互界面输入的邻居步数,将用户输入的邻居步数作为获取到的邻居步数。
关于获取到的RDF图数据的内容及数量,以及邻居步数的大小,本实施例均不作具体限定。具体实施时,可根据RDF图数据的大小等条件调整邻居步数的大小。
202:根据RDF图数据及邻居步数确定至少一个频繁图结构;
其中,一个频繁图结构为包含RDF图数据中频繁出现的谓词的图结构,并且所有频繁出现的谓词同时对应一个主体。以图3所示的RDF图数据为例,频繁出现的谓词为“职业”、“作品”及“星座”,这三个谓词同时对应主体“演员A”,还同时对应主体“导演A’”。
作为一种可选实施例,根据RDF图数据及邻居步数确定至少一个频繁图结构,包括但不限于:
查找RDF图数据中每个主体对应的邻居步数的图模式;
将每个邻居步数的图模式转换为一个图模式;
根据所有图模式生成一个图模式关系表;
根据图模式关系表确定至少一个频繁图结构。
其中,邻居步数的图模式P'为对于RDF图数据G=<I,L,R,E>以及G中所有并列谓词集合R+,以i为起点的N步DFS所对应的并列谓词,P'∈R+,N为邻居步数,则邻居步数的图模式可以表示为N步邻居图模式。
G中的并列谓词由{r1,r2,…,rn}组成,表示为r1+r2+…+rn;ri∈Pο; (I',ri,Ii)∈Pο,即(I',ri,Ii)∈Inst(ri,G);G中所有并列谓词集合即为R+。
Inst(ri,G)为G中所有满足rο的三元组(主体,谓词,客体)。rο为G中的复合谓词,表示为r1οr2ο…οrn。其中,ri∈R∪R-;复合谓词为将至少两个谓词进行复合,ο为复合符号。以图3所示的RDF图数据为例,“作品ο语言”可以为一个复合谓词,表示一个主体的作品的语言为一个客体。例如,“作品ο语言”表示演员A的作品的语言是普通话。
通过查找RDF图数据中每个主体对应的N步邻居图模式,将确定频繁图结构的过程转换为寻找频繁的N步邻居图模式的过程,从而利用频繁模式挖掘算法即可寻找频繁的N步邻居图模式,进而将频繁的N步邻居图模式确定为频繁图结构。其中,本实施例不对利用的频繁模式挖掘算法进行限定。另外,由于一个RDF图数据可能对应多个频繁图结构,因而扩展了数据修复的范围。
为了便于理解,以图3所示的RDF图数据、邻居步数为1为例进行说明,该RDF图数据中有三个主体“演员A”、“导演A’”及“电影1”,查找到的这三个主体对应的1步邻居图模式如图4所示;其中,主体“演员A”对应的1步邻居图模式如图4(1)所示,主体“导演A’”对应的1步邻居图模式如图4(2)所示,主体“电影1”对应的1步邻居图模式如图4(3)所示。
由于频繁图结构确定的是RDF图数据中频繁出现的谓词的图结构,与RDF图数据中的客体无关,即与邻居步数的图模式中的客体也无关,本实施例提供的方法将每个邻居步数的图模式转化为一个图模式,该图模式即为将邻居步数的图模式中的客体去除得到的图模式,从而在确定频繁图结构的过程中,无需记录客体,简化了频繁图结构的确定过程,提高了频繁图结构的确定效率。
为了便于理解,以将图4所示的三个1步邻居图模式分别转换为一个图模式为例进行说明,将三个1步邻居图模式中的客体去除,得到如图5所示的图模式;其中,图4(1)所示的1步邻居图模式对应图5(1)所示的图模式,图4(2)所示的1步邻居图模式对应图5(2)所示的图模式,图4(3)所示的1步邻居图模式对应图5(3)所示的图模式。
进一步地,将图5所示的每个图模式作为一条交易记录(transaction),每个主体作为一个交易号(transaction_id),每个主体对应的谓词作为与该主体对应的交易号的项目(items),得到如图6所示的图模式关系表,从而根据图5所示的所有图模式生成一个图模式关系表。
通过FP-growth(Frequent Pattern-growth,频繁模式增长)算法挖掘图6所示的图模式关系表中的频繁模式,得到如图7所示的一个频繁图结构。
上述根据RDF图数据及邻居步数确定至少一个频繁图结构的过程可通过如下Find_Graph_Structure算法实现。
Require:Input:RDF数据集G=(I,L,R,E)以及邻居步数n.
Output:频繁图结构集合S.
1:for each entity e do
2:S=S∪n_hop_DFS(e,G)
3:end for
4:T=Transform_Graph2Table(S)
5:S=Mine_Frequent_Pattern(T)
6:Return S
其中,第1行至第3行对应查找RDF图数据中每个主体对应的邻居步数的图模式,第4行对应将每个邻居步数的图模式转换为一个图模式及根据所有图模式生成一个图模式关系表,第5行对应根据图模式关系表确定至少一个频繁图结构。
203:挖掘每个频繁图结构中的开包集;
对于RDF图数据G、频繁图结构P以及主体e,如果e具备P中任一复合谓词rο,则e与P匹配,即e∝P,并且G中所有与P匹配的主体可以构成一个模式表(Pattern Table)T(P,G),即每个频繁图结构对应一个模式表;T(P,G)中主体的数目表示P在G中的支持度support(P,G)。因此,可将挖掘每个频繁图结构中的开包集转化为挖掘每个频繁图结构对应的模式表中的开包集。
其中,对于RDF图数据G、频繁图结构P、赋值表属性tp,支持度support(P,tp,G),如果对于任意的频繁图结构P',sp=tp(X),满足support(P,tp,G)<support(P',sp,G),则(P,tp)为开包集。
tp为P对应的属性赋值表,sp为P'对应的属性赋值表。属性赋值表包含一组属性的赋值tp(X),X为属性;tp(X)=a或tp(X)=_;“a”是X取值范围中的常量,“_”表示任意属性值。根据属性赋值表tp,频繁图结构P在RDF图数据G中的支持度还可以表示为support(P,tp,G),该支持度表明G中所有与P匹配的主体的数目,并该主体对应的谓词(谓词在属性赋值表中表示为属性)与客体(客体在属性赋值表中表示为属性值)的对应关系满足属性值表中属性与属性值的对应关系。
如果根据RDF图数据G确定的频繁图结构为PA及PB,并且将G中与PA匹配的主体进行扩展,使扩展后的主体与PB匹配,并得到扩展表U(PA,PB,G)。其中,在扩展时,对于属性值为空的属性,使用NULL填补。
进一步地,如果根据RDF图数据G确定的频繁图结构P对应模式表为T(P,G),且T(P,G)中所有开包集为φ,对T(P,G)进行扩展得到扩展表T'(P,G),则对φ中的任意开包集X,X在T'(P,G)中仍是开包集。证明过程如下:
由于X是T(P,G)的开包集,则可知support(X',G)>support(X,G)。如果r包含X的所有元素,则r对X没有影响;如果r不包含X的所有元素,但包含X'的所有元素,或是r既不包含X的所有元素,也不包含X'的所有元素,则仍有support(X',G)>support(X,G),即r不影响support(X',G)及support(X,G)的大小关系。因此,X在T'(P,G)仍是开包集。
如果根据RDF图数据G确定的频繁图结构为PA及PB,并且扩展表为U(PA,PB,G)中所有开包集为φU,PB对应的模式表T(PB,G)中所有开包集为则这是由于U(PA,PB,G)是将与PA匹配但与PB不匹配的主体插入T(PB,G)得到的,可知中的开包集在φU中仍是开包集,即有因此,
如果根据RDF图数据G确定的频繁图结构为PA及PB,并且扩展表为U(PA,PB,G)中所有开包集为φU,PA对应的模式表T(PA,G)中所有开包集为则这是由于U(PA,PB,G)是将与PA匹配但与PB不匹配的主体插入T(PB,G)得到的,T(PA,G)与U(PA,PB,G)中包含相同的主体,则中的每个项集(item set)的支持度在U(PA,PB,G)中保持不变,T(PA,G)中的而每个开包集在U(PA,PB,G)中仍是开包集,即
如果根据RDF图数据G确定的频繁图结构为P1、P2、…、Pn-1、Pn,并且模式表T(Pi,G)中所有开包集为φi,扩展表U(P1,Pn,G)中所有开包集为φ1,n,则这是由于i=1及i=n时,可知 当时,可知又由于U(P1,Pn,G)是扩展U(Pi,Pn,G)得到的,将主体集添加到U(Pi,Pn,G),可得到
作为一种可选实施例,挖掘每个频繁图结构中的开包集,包括但不限于:
确定所有频繁图结构之间的子集链,子集链包括至少两个第一频繁图结构;
挖掘子集链的第一开包集,根据第一开包集验证每个第一频繁图结构的开包集,得到每个第一频繁图结构的第二开包集;
挖掘除第一频繁图结构外的每个第二频繁图结构的第三开包集,将第二开包集及第三开包集作为挖掘到的每个频繁图结构中的开包集。
其中,当频繁图结构之间存在多个包含关系时,例如存在包含关系的多个频繁图结构构成子集链。
在实际应用中,确定的频繁图结构可能为多个,则频繁图结构对应的模式表也为多个。如果对每个模式表均使用GC-growth(Generator Closed-growth,开包集闭包集增长)算法挖掘开包集(open item set),则会耗费较多时间。对于子集链中的频繁图结构对应的模式表,验证所有模式表的扩展表的开包集在每个模式表中是否仍为开包集,得到每个模式表的开包集,从而不需要挖掘每个模式表的开包集即可实现开包集的挖掘,提高了挖掘开包集的效率。
通过GC-growth算法挖掘开包集的过程包括但不限于;建立集合遍历树;按照从上到下,从左到右的顺序遍历集合遍历树中的每个节点;判断遍历的节点,并判断该节点对应的集合是否为开包集;若该节点对应的集合为闭包集,则执行步骤204,根据开包集计算闭包集。其中,集合遍历树的节点为一组属性值中任意数量的属性值组成的集合。
本实施例提供了包括但不限于如下两种确定子集链的方式:
第一种方式,确定所有频繁图结构之间的子集链,包括但不限于如下步骤:
步骤1.1、将所有频繁图结构转换为一个有向图,有向图中的每个节点对应一个频繁图结构;
步骤1.2、确定有向图中的最长路径的集合,并将最长路径集合中任一最长路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
其中,步骤1.1在将所有频繁图结构转换为一个有向图时,将每个频繁图结构作为有向图中的一个节点,对于所有频繁图结构P中的任意两个频繁图结构P1及P2,如果且P1对应节点n1,P1对应节点n2,则在有向图T中有一条有向边从n1指向n2。
将所有频繁图结构转换为一个有向图的方式可以有多种,本实施例以通过编码技术进行转换为例进行说明。步骤1.1包括但不限于:
步骤1.11、将所有频繁图结构中的每个谓词进行编码,并通过或操作根据每个谓词的编码表示每个频繁图结构的编码;
步骤1.12、通过异或操作确定任意两个频繁图结构的包含关系,并根据该包含关系确定有向边的指向,从而将所有频繁图结构转换为一个有向图。
对于频繁图结构P1及P2,P1的编码为Pe1,P2的编码为Pe1,如果则P1∪P2=P2;如果P1∪P2=P2,则即与P1∪P2=P2等价。用Pe1|Pe2表示P1∪P2,则P1∪P2=P2可以表示为Pe1|Pe2=Pe2,通过用异或操作可将Pe1|Pe2=Pe2表示为(Pe1|Pe2)∧Pe2=0,∧表示异或,即(Pe1|Pe2)∧Pe2=0与等价。与类似,与(Pe2|Pe1)∧Pe1=0等价。因此,通过判断(Pe1|Pe2)∧Pe2及(Pe2|Pe1)∧Pe1是否为零,即可判断P1及P2的包含关系。当(Pe1|Pe2)∧Pe2=0时,当(Pe2|Pe1)∧Pe1时,通过编码技术中的或操作及异或操作为基本操作,从而可减少将所有频繁图结构转换为一个有向图的耗时,从而提高子集链的挖掘效率。
为了便于理解,如图8所示的8个频繁图结构的编码为例,该频繁图结构以该频繁图结构的每个谓词组成,如果属性职业、作品、星座、籍贯及血型的编码分别为10000、01000、00100、00010及00001,则将每个频繁图结构的谓词的编码进行或操作,即可得到如图8所示的各个频繁图结构的编码。例如,对于ID为“008”的频繁图结构,该频繁图结构的编码有由属性“职业”的编码10000及属性“作品”的编码01000进行或操作得到,即该频繁图结构的编码为11000。
在得到各个频繁图结构的编码后,可通过异或操作确定任意两个频繁图结构的包含关系。例如,对于ID为“001”的频繁图结构及ID为“002”的频繁图结构,“001”的编码为“11111”,“002”的编码为“11110”;计算(11111|11110)∧11110不为0,(11110|11111)∧11111为0,表明编码“11111”对应的频繁图结构包含编码“11110”对应的频繁图结构,即将图8中所有频繁图结构转换为有向图后,得到如图9所示的有向图。
对于步骤1.2,由于在有向图中可根据有向边的指向确定频繁图结构的包含关系,则可将确定所有频繁图结构之间的子集链转换为确定有向图中的最长路径的集合。其中,如果有向图中存在路径P(n1,n2,…,nk),但不存在路径P'(P'≠P),且P'包含ni(1≤i≤k),则P为有向图中的最长路径。在一个有向图中,包含节点i的最长路径可能有多条,本发明实施例提供的方法选择其中的一条最长路径,将该最长路径的每个节点对应的频繁图结构作为一个子集链。由于子集链中的每个频繁图结构对应一个模式表,则子集链的长度越长,需要挖掘模式表的数目越少。因此,在确定最长路径时,选择包含节点最多的路径作为确定的最长路径。
本实施例提供的方法在确定最长路径的集合时,通过对有向图中的所有节点进行拓扑排序将每个节点赋予一个层级(level),表示该层级对应的节点在所处的最长路径中的顺序,得到层级化的有向图;再通过贪心策略在层级化的有向图中选择最长路径。
对有向图进行拓扑排序可通过如下拓扑排序算法实现:
其中,L[n]表示节点n所在的最终层级,L[n]初始化为1;S表示所有入度为零的节点的集合,即S={n|n∈V∧n[inDegree]=0};节点的入度为该节点作为图中有向边的终点的次数之和,节点的出度为该节点作为图中有向边的起点的次数之和。算法第1行初始化G’,第2行初始化S,L;第3-14行更新的S,第15行返回层级化的有向图G’。其中,第4行从S中移除入度为零的节点n;第5-9行更新有向图的结构,并对与n相连的节点的层级进行检查。
以图8中所示的有编码的各个频繁图结构为例,层级化的有向图如图9所示。
进一步地,在得到层级化的有向图后,可通过贪心策略在层级化的有向图中选择子集链,贪心策略包括:
1、当有多条路径同时覆盖同一节点时,优先选择最长的路径;
2、当有多个候选节点时,优先选择层级较高的节点;
3、当多个候选节点的层级相同时,优先选择出度较少的节点;当多个候选节点的出度相同时,优先选择入度较少的节点;
4、每个节点仅能被选择一次,节点被选中后需要立即更新的节点的状态。
上述贪心策略可通过如下选择子集链算法实现:
以通过贪心策略在图9所示层级化的有向图中选择子集链为例进行说明。在选择第一个节点时,候选节点为层级化的有向图中的全部节点,由于“001”的层级最高,则选择“001”节点作为选择的第一个节点;在选择第二个节点时,候选节点为“002”、“003”、“006”及“007”,由于“002”及“003”具有相同的较高层级及相容的出度,则将入度较小的“003”节点作为选择的第二个节点;在选择第三个节点时,候选节点为“004”及“005”,由于“005”具有较高的层级,则将“005”作为第三个选择的节点;在选择第四个节点时,候选节点仅有“008”,则将“008”作为第四个候选节点;在选择第五个节点时,由于没有候选节点,则无法选择第五个节点,得到的一条子集链为
由于还有未选择的节点,则继续根据贪心策略选择另一个子集链。在选择第一个节点时,候选节点为“002”、“004”、“006”及“007”,由于“002”的层级较高,则将“002”作为选择的第一个节点;在选择第二个节点时,候选节点为“006”及“007”,由于“006”的层级较高,则将“006”作为选择的第二个节点;在选择第三个节点时,由于没有候选节点,则无法选择第三个节点,得到的一条子集链为
此时,还有未选择的节点“004”及“007”,在将这两个节点中任一节点作为选择的第一节点时,均没有候选节点,则表明此层级化的有向图中没有可选择的子集链。因此,在层级化的有向图中找到两条子集链,分别为及
第二种方式,确定所有频繁图结构之间的子集链,包括但不限于如下步骤:
步骤2.1、将所有频繁图结构组合成一个数据库;
步骤2.2、根据数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
对于步骤2.1,本实施例提供的方法将每个频繁图结构作为一条记录(transaction),将每个频繁图结构中的属性作为记录内容(items),则可将所有频繁图结构组合成一个数据库DBT。每条记录中,各个属性根据该属性出现的频率进行排序;属性p的频率可以表示为Freq(p),Freq(p)=|{A|A∧A∈DBT}|,A表示数据库中的一个频繁图结构。
为了便于理解,以图10所示的组合的数据库为例进行说明。
其中,谓词出现的频率可以用谓词出现的次数进行衡量;谓词“职业”、“作品”、“星座”、“籍贯”及“血型”出现的次数分别为7、6、5、4及3。根据谓词的出现次数对谓词进行排序,出现次数较多的谓词的排序也靠前。例如在出现“职业”及“作品”这两个谓词的记录中,“职业”需要排在“作品”前面。
进一步地,对于步骤2.2,在根据数据库构建前缀树时,先创建根节点,选择数据库中任意一个频繁图结构,根据该频繁图结构中谓词在数据库中的排序依次创建各个谓词对应的节点,排序越靠前的节点距离根节点越近;按照上述过程选择数据库中的其他频繁图结构,并创建各个频繁图结构中的谓词对应的节点,直至数据库中所有频繁图结构的谓词对应的节点创建完毕,得到构建的前缀树。其中,如果已创建该频繁图结构中的包括排序首位的谓词在内的部分或全部谓词对应的节点,并且节点的顺序与该频繁图结构中谓词在数据库中的排序相同,且在排序首位的谓词对应的节点连接根节点,则无需创建已创建的节点。
构建的前缀树满足:
1、每个前缀树具有唯一的“root(根)”顶点;
2、前缀树的每个节点代表一个谓词;
3、节点Ni是节点Nj的子节点等价于一条路径经过Nj的同时也经过Ni;
4、前缀树中的每个节点都有一个标记,如果该节点作为一条记录的最后一个节点,则标记为1,否则为0。
需要说明的是,前缀树的中的每个节点仅被选择一次。
为了便于理解,以根据图10所示的数据库构建前缀树为例进行说明,创建根节点,选择ID为001的频繁图结构,按照“职业”、“作品”、“星座”、“籍贯”及“血型”的顺序创建节点,“职业”对应的节点与根节点连接;选择ID为002的频繁图结构,按照“职业”、“作品”、“星座”及“籍贯”的顺序创建节点,由于已按照该顺序创建这些谓词对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点;由于已按照该顺序创建“职业”、“作品”及“星座”对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点,仅需在“星座”对应的节点后创建“血型”对应的节点;选择ID为004的频繁图结构,按照“职业”及“血型”的顺序创建节点,由于已按照该顺序创建“职业”对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点,仅需在“职业”对应的节点后创建“血型”对应的节点;选择ID为005的频繁图结构,按照“职业”、“作品”及“星座”的顺序创建节点,由于已按照该顺序创建这些谓词对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点;选择ID为006的频繁图结构,按照“职业”、“作品”及“籍贯”的顺序创建节点,由于已按照该顺序创建“职业”及“作品”对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点,仅需在“作品”对应的节点后创建“籍贯”对应的节点;选择ID为007的频繁图结构,按照“星座”及“籍贯”的顺序创建节点,虽然已按照该顺序创建“星座”及“籍贯”对应的节点,但“星座”对应的节点没有连接根节点,则在根节点后创建“星座”及“籍贯”对应的节点;选择ID为008的频繁图结构,按照“职业”及“作品”的顺序创建节点,由于已按照该顺序创建“职业”及“作品”对应的节点,并且“职业”对应的节点连接根节点,则无需创建已创建的节点,至此数据库中所有频繁图结构的谓词对应的节点创建完毕,即前缀树已构建完毕,构建的前缀树如图11所示。
对于标记1的节点,该节点对应一个将该节点对应的属性排序在最后的第一频繁图结构。为了便于确定第一频繁图结构之间的包含关系,本发明实施例提供的方法,在该前缀树中,将该节点标记为对应的第一频繁图结构的标识。
因此,针对图11所示的前缀树,将与根节点相连的两个节点标记为0,对于其他节点,则标记为与该节点对应的第一频繁图结构的结构。其中,叶子节点为001、003、004、006及007。在这四个节点中,按照的从下至上的顺序依次确定001、003、006、004或007至根节点的路径。因此,先确定001至根节点构成的路径,即从001依次访问每个节点直至根节点,得到子集链:由于除001至根节点构成的路径中的节点及叶子节点003、006、004、007外,没有其他标记为第一频繁图结构的标识的节点,则无法确定叶子节点003、006、004及007至根节点构成的路径。因此根据001至根节点构成的路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链为
另外,由于在组合数据库时,通过属性出现的频率对属性进行排序,使得更多频繁图结构能够共享前缀,从而减少了构建的前缀树的节点,简化了构建的前缀树。
204:根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集;
关于根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集的方式,本实施例不作具体限定。具体实施时,可通过GC-growth算法根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集(closed item set)。需要说明的是,GC-growth算法同时计算开包集和闭包集,即在步骤203中计算出开包集后,执行步骤204通过GC-growth算法根据开包集计算闭包集。
其中,对于RDF图数据G、频繁图结构P、赋值表属性tp,支持度support(P,tp,G),如果对于任意的频繁图结构P',sp=tp(X),满足support(P,tp,G)>support(P',sp,G),则(P,tp)为闭包集。
205:根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系;
关于根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系的方式,本实施例不作具体限定。具体实施时,可通过CFDMiner(ConditionalFunctional Dependency Miner,条件函数依赖挖掘)、FastCFD(Fast ConditionalFunctional Dependency,快速条件函数依赖)等算法根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系的方式。
例如,以上述步骤201获取到的RDF图数据为例,确定的包含语义的依赖关系可以表示为:职业→作品ο类型,(演艺导演|电影)。其中,括号内的“演艺导演|电影”即为对依赖关系“职业→作品ο类型”的语义限定,“作品ο类型”为复合谓词,“ο”表示复合。该包含语义的依赖关系表明如果一个主体的职业是演艺导演,则该主体的作品的类型是电影。该包含语义的依赖关系还可以表示为如图12所示的包含语义的依赖关系,表示如果X的职业是演艺导演,则X的作品的类型是电影。其中,X表示主体,X的作品为Y,Y的类型为电影。
进一步地,通过上述步骤203至步骤205即完成了挖掘每个频繁图结构中包含语义的依赖关系,为了完成数据修复,本实施例提供的方法还包括后续步骤。
206:根据包含语义的依赖关系检测RDF图数据中的异常数据,并对异常数据进行修复。
本实施例不对根据包含语义的依赖关系检测RDF图数据中的异常数据的方式进行限定,具体实施时,由于RDF图数据可以使用三元组<主体,谓词,客体>描述,因此,可根据包含语义的依赖关系检测三元组中的异常数据。其中,依赖关系由至少一个谓词组成,语义可以由至少一个客体组成。以依赖关系由三个谓词组成,语义由两个客体组成为例,具体检测过程包括但不限于如下几个步骤:
步骤一、在RDF知识库中查找以依赖关系中的第一个谓词为谓词、以语义中的第一个客体为客体的三元组,得到第一组三元组;第一组三元组中的每个三元组包括的主体可以相同,也可以不同。
步骤二、从第一组三元组中的每个三元组包括的主体中选择一个主体,在RDF知识库中查找以选择出的主体为主体、以依赖关系中的第二个谓词为谓词的三元组,得到第二组三元组;第二组三元组中的每个三元组包括的客体可以相同,也可以不同。
步骤三、从第二组三元组中的每个三元组包括的客体中选择一个客体,在RDF知识库中查找以选择出的客体为主体、以依赖关系中的第三个谓词为谓词的三元组,得到第三组三元组;第三组三元组中的每个三元组包括的客体可以相同,也可以不同。
步骤四、判断所有第三组三元组与包含语义的依赖关系中的语义是否一致,将与包含语义的依赖关系中的语义不一致的三元组作为异常数据。
例如,包含语义的依赖关系为:职业→作品ο类型,(演艺导演|电影),该包含语义的依赖关系表明如果一个主体的职业是演艺导演,则该主体的作品的类型是电影。其中,“职业→作品ο类型”表示依赖关系,依赖关系对应谓词,“演艺导演|电影”表示语义,语义对应客体。首先,查找满足主体的职业是演艺导演的至少一个三元组,例如,查找到的三元组为<导演A’,职业,演艺导演>,将<导演A’,职业,演艺导演>作为第一次查找到的三元组。其次,由于第一次查找到的三元组限定了主体为“导演A’”则继续查找主体为“导演A’”,谓词是“作品”的三元组,例如查找到的三元组为<导演A’,作品,电影1>,将<导演A’,作品,电影1>作为第二次查找到的三元组。再次,由于第二次查找到的三元组限定了客体为“电影1”,且“电影1”既可以是一部电影的名称,还可以是一部古曲的名称;最后,继续查找主体为“电影1”,并且谓词是“类型”的三元组,例如,查找到三元组为<电影1,类型,古曲>,至此,根据查找到的三元组可得到:如果主体为“导演A’”,并且该主体“导演A’”的职业是演艺导演,则主体“导演A’”的作品的类型是古曲;而包含语义的依赖关系中限定的是如果一个主体的职业是演艺导演,则该主体的作品的类型是电影,即表明客体“古曲”不符合包含语义的依赖关系中限定的语义客体“电影”,进而表明客体“古曲”所在的三元组<电影1,类型,古曲>为异常数据,该异常数据是由于数据连接错误导致的。通过语义限定可发现更多的错误类型,提高了异常数据检测的准确性,进而扩大修复数据的范围。
需要说明的是,对于依赖关系由三个以上的谓词组成的情况,可从上述步骤三的结果中选取客体作为下一次查找的三元组的主体,并将依赖关系中的下一个谓词为下一次查找到的三元组的谓词,并依此循环,直至查找到以上一次查找到的三元组中的客体为主体,以依赖关系中的最后一个谓词为谓词的三元组,并判断是否与包含语义的依赖关系中的语义是否一致,将与包含语义的依赖关系中的语义不一致的三元组作为异常数据。
关于异常数据的修复方式,本实施例不作具体限定。具体实施时,可根据包含语义的依赖关系确定对异常数据的修复建议,由人工根据修复建议确定是否检测的异常数据是否正确以及是否根据修复建议修复数据,从而完成数据的修复。
另外,为了确定在不同的邻居步数、不同的频繁图结构数目以及不同的挖掘方式下包含语义的频繁图结构的挖掘效率,本实施例提供的方法在实际的RDF知识库中进行实验,实验结果如图13所示,挖掘效率以时间效率衡量,时间单位为秒(s)。其中,数据集表示RDF知识库,分别为DBPedia及中文RDF知识库;邻居步数为1至4;表数目分别表示在DBPedia中抽取400个频繁图结构以及在中文RDF知识库中抽取200个频繁图结构数目;GCFDs(Graph-based Conditional Functional Dependency,基于图的条件函数依赖)数量表示随着邻居步数的增加,挖掘到的包含语义的依赖关系增加的数量;s/GCFD表示挖掘一个包含语义的依赖关系所用时间,时间单位为s。
例如,在DBpedia中,当邻居步数为1时,挖掘到的包含语义的依赖关系的数量为238;当邻居步数为2时,挖掘到的包含语义的依赖关系的数量比邻居步数为1时包含语义的依赖关系的数量增加361。因此,在DBpedia中一共挖掘到760个包含语义的依赖关系,在中文RDF知识库中一共挖掘到89个包含语义的依赖关系。
通过步骤203提供的第一种确定子集链的方式所挖掘的包含语义的依赖关系对应的实验结果为图13中的贪心策略所对应的实验结果,通过步骤203提供的第二种确定子集链的方式所挖掘的包含语义的依赖关系的实验结果为图13中的前缀树策略所对应的实验结果,直接挖掘包含语义的依赖关系的实验结果为图13中原始方案所对应的实验结果。
在这两个RDF知识库中挖掘到的部分包含语义的依赖关系如图14所示。其中,GCFDs表示挖掘到的包含语义的依赖关系,将挖掘到的包含语义的依赖关系用图来描述即为图结构描述。包含语义的依赖关系“职业→作品ο类型,(演艺导演|电影)”表示如果一个主体的职业是演艺导演,则该主体的作品的类型是电影;包含语义的依赖关系“主管部门→类型,(教育部|全国重点大学)”表明如果一个主体的主管部门是教育部,则该主体的类型是全国重点大学;包含语义的依赖关系“被影响→影响,(哲学家A|西方哲学)”表明如果一个主体的被哲学家A影响,则该主体影响西方哲学;依赖关系“语言→建立时间,(首都|最大城市)”表明如果一个主体对应的谓词是语言及建立时间,则该主体对应的谓词还是首都及最大城市。
上述实验是通过服务器执行上述数据的修复方法完成的,服务器为双核至强处理、30G内存,数据库为MySQL5.5.15.0。在执行本实施例提供的算法时,通过C++语言实现。
通过图13所示的实验结果可知,通过确定子集链的方式挖掘包含语义的依赖关系耗时比直接挖掘包含语义的依赖关系的耗时至少减少8%。因此,通过确定子集链可提高包含语义的依赖关系的挖掘效率。而通过第一种确定子集链的方式挖掘包含语义的依赖关系的耗时与通过第二种确定子集链的方式挖掘包含语义的依赖关系的耗时基本相同。对于需要全面挖掘子集链的情况,通常使用第一种确定子集链的方式;对于需要简化计算的情况,通常使用第二种确定子集链的方式。因此,实际应用中,可根据需求以及RDF知识库中数据的分布选择确定子集链的方式。
本实施例提供的方法,通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
参见图15,本发明实施例提供了一种数据的修复装置,该装置用于执行上述任一实施例提供的方法。该装置包括:
获取模块301,用于根据RDF知识库中的数据获取RDF图数据及邻居步数;
确定模块302,用于根据RDF图数据及邻居步数确定至少一个频繁图结构;
挖掘模块303,用于挖掘每个频繁图结构中包含语义的依赖关系;
检测模块304,用于根据包含语义的依赖关系检测RDF图数据中的异常数据;
修复模块305,用于对异常数据进行修复。
作为一种可选实施例,参见图16,确定模块302,包括:
查找单元3021,用于查找RDF图数据中每个主体对应的邻居步数的图模式;
转换单元3022,用于将每个邻居步数的图模式转换为一个图模式;
生成单元3023,用于根据所有图模式生成一个图模式关系表;
第一确定单元3024,用于根据图模式关系表确定至少一个频繁图结构。
作为一种可选实施例,参见图17,挖掘模块303,包括:
挖掘单元3031,用于挖掘每个频繁图结构中的开包集;
计算单元3032,用于根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集;
第二确定单元3033,用于根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系。
作为一种可选实施例,参见图18,挖掘单元3031,包括:
确定子单元30311,用于确定所有频繁图结构之间的子集链,子集链包括至少两个第一频繁图结构;
第一挖掘子单元30312,用于挖掘子集链的第一开包集;
验证子单元30313,用于根据第一开包集验证每个第一频繁图结构的开包集,得到每个第一频繁图结构的第二开包集;
第二挖掘子单元30314,用于挖掘除第一频繁图结构外的每个第二频繁图结构的第三开包集;
处理子单元30315,用于将第二开包集及第三开包集作为挖掘到的每个频繁图结构中的开包集。
作为一种可选实施例,确定子单元30311,用于将所有频繁图结构转换为一个有向图,有向图中的每个节点对应一个频繁图结构;确定有向图中的最长路径的集合,并将最长路径集合中任一最长路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
作为一种可选实施例,确定子单元30311,用于将所有频繁图结构组合成一个数据库;根据数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
本发明实施例提供的装置,通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
图19是本发明实施例示出的一种用于数据的修复的服务器1900的结构示意图。参照图19,服务器1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述数据的修复方法,方法包括:
根据RDF知识库中的数据获取RDF图数据及邻居步数;
根据RDF图数据及邻居步数确定至少一个频繁图结构;
挖掘每个频繁图结构中包含语义的依赖关系;
根据包含语义的依赖关系检测RDF图数据中的异常数据,并对异常数据进行修复。
作为一种可选实施例,根据RDF图数据及邻居步数确定至少一个频繁图结构,包括:
查找RDF图数据中每个主体对应的邻居步数的图模式;
将每个邻居步数的图模式转换为一个图模式;
根据所有图模式生成一个图模式关系表;
根据图模式关系表确定至少一个频繁图结构。
作为一种可选实施例,挖掘每个频繁图结构中包含语义的依赖关系,包括:
挖掘每个频繁图结构中的开包集;
根据每个频繁图结构中的开包集计算每个频繁图结构中的闭包集;
根据每个频繁图结构中的开包集及闭包集确定每个频繁图结构中包含语义的依赖关系。
作为一种可选实施例,挖掘每个频繁图结构中的开包集,包括:
确定所有频繁图结构之间的子集链,子集链包括至少两个第一频繁图结构;
挖掘子集链的第一开包集,根据第一开包集验证每个第一频繁图结构的开包集,得到每个第一频繁图结构的第二开包集;
挖掘除第一频繁图结构外的每个第二频繁图结构的第三开包集,将第二开包集及第三开包集作为挖掘到的每个频繁图结构中的开包集。
作为一种可选实施例,确定所有频繁图结构之间的子集链,包括:
将所有频繁图结构转换为一个有向图,有向图中的每个节点对应一个频繁图结构;
确定有向图中的最长路径的集合,并将最长路径集合中任一最长路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
作为一种可选实施例,确定所有频繁图结构之间的子集链,包括:
将所有频繁图结构组合成一个数据库;
根据数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的第一频繁图结构作为确定的所有频繁图结构之间的一个子集链,得到所有频繁图结构之间的子集链。
服务器1900还可以包括一个电源组件1926被配置为执行服务器1900的电源管理,一个有线或无线网络接口1950被配置为将服务器1900连接到网络,和一个输入输出(I/O)接口1958。服务器1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例提供的服务器,通过根据RDF图数据及邻居步数确定至少一个频繁图结构,并根据挖掘到的每个频繁图结构中包含语义的依赖关系检测RDF图数据中的异常数据,使得检测到的异常数据的错误类型较多,进而通过对检测到的异常数据进行修复,扩大了数据的修复范围。
需要说明的是:上述实施例提供的数据的修复装置在修复数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据的修复装置与数据的修复方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种数据的修复方法,其特征在于,所述方法包括:
根据资源描述框架RDF知识库中的数据获取RDF图数据及邻居步数;
查找所述RDF图数据中每个主体对应的所述邻居步数的图模式;
将每个邻居步数的图模式转换为一个图模式;
根据所有图模式生成一个图模式关系表;
根据所述图模式关系表确定至少一个频繁图结构;
挖掘每个所述频繁图结构中包含语义的依赖关系;
根据所述包含语义的依赖关系检测所述RDF图数据中的异常数据,并对所述异常数据进行修复。
2.根据权利要求1所述的方法,其特征在于,所述挖掘每个所述频繁图结构中包含语义的依赖关系,包括:
挖掘所述每个频繁图结构中的开包集;
根据所述每个频繁图结构中的开包集计算所述每个频繁图结构中的闭包集;
根据所述每个频繁图结构中的开包集及所述每个频繁图结构中的闭包集确定所述每个频繁图结构中包含语义的依赖关系。
3.根据权利要求2所述的方法,其特征在于,所述挖掘每个频繁图结构中的开包集,包括:
确定所有所述频繁图结构之间的子集链,所述子集链包括至少两个第一频繁图结构;
挖掘所述子集链的第一开包集,根据所述第一开包集验证每个所述第一频繁图结构的开包集,得到所述每个第一频繁图结构的第二开包集;
挖掘除所述第一频繁图结构外的每个第二频繁图结构的第三开包集,将所述第二开包集及所述第三开包集作为挖掘到的所述每个频繁图结构中的开包集。
4.根据权利要求3所述的方法,其特征在于,所述确定所有频繁图结构之间的子集链,包括:
将所述所有频繁图结构转换为一个有向图,所述有向图中的每个节点对应一个所述频繁图结构;
确定所述有向图中的最长路径的集合,并将所述最长路径集合中任一最长路径的每个节点对应的所述第一频繁图结构作为确定的所述所有频繁图结构之间的一个子集链,得到所述所有频繁图结构之间的子集链。
5.根据权利要求3所述的方法,其特征在于,所述确定所有频繁图结构之间的子集链,包括:
将所述所有频繁图结构组合成一个数据库;
根据所述数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的所述第一频繁图结构作为确定的所述所有频繁图结构之间的一个子集链,得到所述所有频繁图结构之间的子集链。
6.一种数据的修复装置,其特征在于,所述装置包括:
获取模块,用于根据资源描述框架RDF知识库中的数据获取RDF图数据及邻居步数;
查找单元,用于查找所述RDF图数据中每个主体对应的所述邻居步数的图模式;
转换单元,用于将每个邻居步数的图模式转换为一个图模式;
生成单元,用于根据所有图模式生成一个图模式关系表;
第一确定单元,用于根据所述图模式关系表确定至少一个频繁图结构;
挖掘模块,用于挖掘每个所述频繁图结构中包含语义的依赖关系;
检测模块,用于根据所述包含语义的依赖关系检测所述RDF图数据中的异常数据;
修复模块,用于对所述异常数据进行修复。
7.根据权利要求6所述的装置,其特征在于,所述挖掘模块,包括:
挖掘单元,用于挖掘所述每个频繁图结构中的开包集;
计算单元,用于根据所述每个频繁图结构中的开包集计算所述每个频繁图结构中的闭包集;
第二确定单元,用于根据所述每个频繁图结构中的开包集及所述每个频繁图结构中的闭包集确定所述每个频繁图结构中包含语义的依赖关系。
8.根据权利要求7所述的装置,其特征在于,所述挖掘单元,包括:
确定子单元,用于确定所有所述频繁图结构之间的子集链,所述子集链包括至少两个第一频繁图结构;
第一挖掘子单元,用于挖掘所述子集链的第一开包集;
验证子单元,用于根据所述第一开包集验证每个所述第一频繁图结构的开包集,得到所述每个第一频繁图结构的第二开包集;
第二挖掘子单元,用于挖掘除所述第一频繁图结构外的每个第二频繁图结构的第三开包集;
处理子单元,用于将所述第二开包集及所述第三开包集作为挖掘到的所述每个频繁图结构中的开包集。
9.根据权利要求8所述的装置,其特征在于,所述确定子单元,用于将所述所有频繁图结构转换为一个有向图,所述有向图中的每个节点对应一个所述频繁图结构;确定所述有向图中的最长路径的集合,并将所述最长路径集合中任一最长路径的每个节点对应的所述第一频繁图结构作为确定的所述所有频繁图结构之间的一个子集链,得到所述所有频繁图结构之间的子集链。
10.根据权利要求8所述的装置,其特征在于,所述确定子单元,用于将所述所有频繁图结构组合成一个数据库;根据所述数据库构建前缀树,并将前缀树中叶子节点到根节点构成的路径的每个节点对应的所述第一频繁图结构作为确定的所述所有频繁图结构之间的一个子集链,得到所述所有频繁图结构之间的子集链。
11.一种计算机可读存储介质,所述存储介质存储有指令,所述指令被配置由处理器执行如权利要求1至5任一所述的数据的修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410201689.4A CN105094209B (zh) | 2014-05-13 | 2014-05-13 | 数据的修复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410201689.4A CN105094209B (zh) | 2014-05-13 | 2014-05-13 | 数据的修复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094209A CN105094209A (zh) | 2015-11-25 |
CN105094209B true CN105094209B (zh) | 2018-12-28 |
Family
ID=54574872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410201689.4A Active CN105094209B (zh) | 2014-05-13 | 2014-05-13 | 数据的修复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094209B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319573B (zh) * | 2018-01-24 | 2021-04-20 | 南京亚派软件技术有限公司 | 一种基于能源统计数据异常判断和修复的方法 |
US11080266B2 (en) * | 2018-07-30 | 2021-08-03 | Futurewei Technologies, Inc. | Graph functional dependency checking |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202560A1 (en) * | 2010-02-16 | 2011-08-18 | Microsoft Corporation | Expressing and executing semantic queries within a relational database |
CN102779161A (zh) * | 2012-06-14 | 2012-11-14 | 杜小勇 | 基于rdf知识库的语义标注方法 |
-
2014
- 2014-05-13 CN CN201410201689.4A patent/CN105094209B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202560A1 (en) * | 2010-02-16 | 2011-08-18 | Microsoft Corporation | Expressing and executing semantic queries within a relational database |
CN102779161A (zh) * | 2012-06-14 | 2012-11-14 | 杜小勇 | 基于rdf知识库的语义标注方法 |
Non-Patent Citations (2)
Title |
---|
"Detecting Abnormal Semantic Web Data Using Semantic Dependency";Yang Yu et al.;《2011 Fifth IEEE International Conference on Semantic Computing》;20110921;论文第I节4段、第II节A部分、第III-IV节 * |
"Improving RDF Data Through Association Rule Mining";Ziawashch Abedjan et al.;《Datenbank Spektrum》;20130521;第111-120页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105094209A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zou et al. | Finding top-k maximal cliques in an uncertain graph | |
US8977650B2 (en) | Scalable summarization of data graphs | |
US20120265778A1 (en) | Fuzzy searching in a geocoding application | |
AU2015347304B2 (en) | Testing insecure computing environments using random data sets generated from characterizations of real data sets | |
CN105183796A (zh) | 一种基于聚类的分布式链路预测方法 | |
Szathmary et al. | Efficient vertical mining of frequent closures and generators | |
Solé et al. | Region-based foldings in process discovery | |
Gange et al. | Optimal k-level planarization and crossing minimization | |
Wetzels et al. | Branch Decomposition‐Independent Edit Distances for Merge Trees | |
JP5844824B2 (ja) | Sparqlクエリ最適化方法 | |
CN105094209B (zh) | 数据的修复方法及装置 | |
CN106295252B (zh) | 用于基因产品的检索方法 | |
Chen et al. | Graph indexing for efficient evaluation of label-constrained reachability queries | |
CN110309214A (zh) | 一种指令执行方法及其设备、存储介质、服务器 | |
CN104899283A (zh) | 一种针对单个不确定图的频繁子图挖掘与优化方法 | |
Ferdjoukh et al. | Measuring differences to compare sets of models and improve diversity in MDE | |
Reza et al. | Scalable pattern matching in metadata graphs via constraint checking | |
Zafarmand et al. | Fast local community discovery relying on the strength of links | |
Nair et al. | Improvised Apriori with frequent subgraph tree for extracting frequent subgraphs | |
CN107678953A (zh) | 基于uml图形的路径生成方法、系统及存储介质 | |
Gerencsér et al. | A complexity analysis of Policy Iteration through combinatorial matrices arising from Unique Sink Orientations | |
CN114429252A (zh) | 储气库地下设施动态风险评价方法和设备 | |
US9111032B2 (en) | Identification of performance bottlenecks | |
Ferdjoukh et al. | Measurement and generation of diversity and meaningfulness in model driven engineering | |
JP2016115287A (ja) | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |