CN101807211A - 一种面向海量小规模xml文档融合路径约束的xml检索方法 - Google Patents
一种面向海量小规模xml文档融合路径约束的xml检索方法 Download PDFInfo
- Publication number
- CN101807211A CN101807211A CN 201010160331 CN201010160331A CN101807211A CN 101807211 A CN101807211 A CN 101807211A CN 201010160331 CN201010160331 CN 201010160331 CN 201010160331 A CN201010160331 A CN 201010160331A CN 101807211 A CN101807211 A CN 101807211A
- Authority
- CN
- China
- Prior art keywords
- document
- key
- constraint
- array
- path
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种面向海量小规模XML文档融合路径约束的XML检索方法。包括:创新地以带有XPath形式路径约束的关键字作为用户提交查询的方式,使用户更加容易且准确地表达查询需求;提出一种新的融合路径约束的检索排序模型,该模型在传统向量空间模型基础上,充分利用XML文档的结构层次特性,巧妙地将N-Gram思想应用于路径约束匹配计算,从而获得文档同用户查询的相关度,最终按照相关度对文档进行排序。本发明提出的XML文档检索方案,能够准确地表达用户的查询需求,且充分利用XML文档的路径约束来计算文档同用户查询的相关度,通过本发明方案可得到更加符合用户需求的检索结果。本发明可用于XML文档检索、XML数据库检索等领域。
Description
【技术领域】
本发明属于数据库技术领域,具体涉及一种新型的融合路径约束,对海量小规模XML文档进行检索的方案。
【背景技术】
可扩展标记语言(eXtensible Markup Language,XML)凭借其自描述性、可扩展性和半结构化等特点,已经成为最受欢迎的信息表示和数据交换的标准,并在各个领域得到了广泛支持和应用。随着XML形式数据和信息大量涌现,如何从海量XML文档中获取用户感兴趣的信息,成为人们广泛关注的问题之一。正是基于这种需求,信息检索这一传统的数据管理和获取技术,开始涉足XML数据领域。
由于使用简单、界面简洁,关键字检索方式在传统的信息检索领域取得了巨大成功,近年来,XML文档的关键字检索也受到工业界和学术界的广泛关注。XML关键字检索不同于结构化的XML查询(如XPath、XQuery等),不仅易于使用,且用户不再需要了解所查询XML文档的DTD或Schema模式,也不需要学习和掌握复杂的查询语言等相关知识,适用于互联网中大量存在的小规模自由XML文档。但是,XML关键字检索方式并没有充分考虑XML文档半结构化检索的特性,且用户单凭关键字的简单组合难以或无法准确表达自己的查询需求。因此,如何帮助用户更准确地表达自己的查询需求,成为了XML信息检索领域研究难题之一。
当用户提交查询需求后,搜索引擎将在海量文档集中检索出可能与用户需求相关的文档,并将这些文档按照其同用户需求的相关性进行排序,最后返回给用户。在传统的信息检索中,通常使用向量空间模型(Vector Space Model,VSM)来衡量文档同用户查询的相关性。向量空间模型是将文档和查询都表示成由标引词权重构成的向量,利用向量间的相似度来评价文档和查询的相关性,而向量间的相似度可用它们之间夹角的余弦值来定量计算。在向量空间模型中,查询标引词权重可由用户设定,也可认为所有关键字的权重相同;而文档标引词权重通常采用著名的tf-idf方案进行计算,tf指标引词在文档中出现的频率,用于体现标引词对文档的重要程度,可用tfi,j表示标引词termi在文档dj出现的频率;idf指标引词的逆文档频率,用于体现标引词区分文档的能力,标引词termi的逆文档频率idfi的一般计算公式为:idfi=log(N/ni),其中,N表示系统中的文档总数,ni表示系统中含有标引词termi的文档数目,则标引词termi在文档dj中的权值wi,j可以描述为:wi,j=tfi,j×idfi=tfi,j×log(N/ni)。但是由于XML文档具有结构层次特性,这种纯文本上的tf-idf加权方案并不完全适用,因此如何改进标引词加权方案和向量空间模型来计算文档和查询的相似度,也成为需要进一步研究的问题之一。
目前,对于大规模XML文档的检索,研究人员大多认为不需要将整篇文档返回给用户,只返回符合检索条件的文档片段即可,但判断符合检索条件片段粒度通常很困难。而且,对于海量小规模XML文档的检索,由于文档本身较短小,如果只返回部分片段,很可能造成提供信息过少,不能满足用户的需求。因此不妨同Web搜索引擎一样,快捷地将检索出的整篇文档返回给用户。
【发明内容】
本发明的目的在于克服现有技术存在的上述不足,提出一种面向海量小规模XML文档融合路径约束的XML检索方法。
本发明针对现有技术中的问题,创新地以带有XPath形式路径约束的关键字作为用户提交查询的方式;设计一种新的融合路径约束的检索排序模型,该模型在传统向量空间模型的基础上,充分利用XML文档的结构层次特性,巧妙地将N-Gram思想应用于模糊路径约束匹配的计算中,从而对文档标引词加权方案进行调整,最终获得文档同用户查询的相关度,并按照该相关度的高低对文档进行排序;最后将检索排序后的整篇文档返回给用户。该方法的主要步骤如下:
第1、对XML文档进行预处理;
第2、对用户提交的查询进行分析处理,形式化地表达用户的检索意图;
第3、利用本发明提出的检索排序模型对XML文档进行检索,并将检索结果依照相关度排序,最终返回给用户。
下面分别详述如下:
第1、对XML文档进行预处理;
第1.1、将XML文档定义为一棵XML文档树,具体定义如下
定义1:一篇XML文档D可以表示为一棵有序文档树,用9元组T=(V,v0,E,∑,P,type,id,lab)表示,其中:
①.V是文档D中所有XML节点的集合;
②.v0是文档D的根节点,v0∈V;
④.有穷字母表∑是文档D中所有节点名称的集合;
⑤.P是文档D中祖先路径约束的集合,P是一个多元关系即且
P={(v0,v1,...,vn)|(vi,vi+1)∈E,0≤i<n}∪{v0},给定节点vn的祖先路径约束(v0,v1,...,vn)∈P,表示的是从根节点v0到节点vn的连续父子约束,即v0→v1,v1→v2,...,vn-1→vn,简写为v0→v1→v2→...→vn,使用函数path:V→P返回XML节点的祖先路径约束,即当v∈V,path(v)∈P;
⑥.函数type:V→{ELEM,ATTR,TEXT}返回XML节点的类型,给出节点v∈V,有:
a)若v是元素节点,则type(v)=ELEM,所有元素节点组成的集合用Ve表示,则Ve={v|v∈V∧type(v)=ELEM};
b)若v是属性节点,则type(v)=ATTR,所有属性节点组成的集合用Va表示,则Va{v|v∈V∧type(v)=ATTR;
c)若v是文本节点,则type(v)=TEXT,所有文本节点组成的集合用Vt表示,则Vt={v|v∈V∧type(v)=TEXT};
⑦.函数id:V→DeweyId返回文档D中节点v的编码,即当v∈V,id(v)∈DeweyId,其中,DeweyId是文档D中所有节点编码的集合,节点v的Dewey编码是节点v在文档D中的唯一标识;
⑧.函数lab:V→∑∪{#text}返回文档D中节点v的名称,即当v∈Ve∪Va,lab(v)∈∑,
定义文本节点的名称都为#text,即当v∈Vt,lab(v)=#text。
第1.2、使用Dewey编码为XML文档进行编码;
第1.3、为检索系统所有XML文档的元素节点名称、属性节点名称和文本节点的内容建立标引词和节点编码的倒排索引表;
第1.4、计算系统中标引词在各篇XML文档中的频率(出现次数)和标引词的逆文档频率,分别使用函数GetTermTF(term)和GetTermIDF(term)返回标引词term的频率和逆文档频率。
第2、对用户提交的查询进行分析处理,形式化地表达用户的检索意图
XML关键字检索方式使用简单,易于被用户接受,但它并没有充分考虑XML文档半结构化的特性,且用户单凭关键字的简单组合难以或无法准确表达自己的查询需求,因此,本发明定义了一种新的用户提交查询方式,在简便的关键字基础之上,借用XML文档中XPath形式为每个关键字添加模糊的路径约束,这样用户就可以更加容易且准确地表达自己的查询需求,检索系统也就可以检索到更加符合用户需求的XML文档。
第2.1、对用户提交的查询方式进行重新定义,
定义2:用户以如下方式提交查询:
其中,keyij(i=1,2,...,p,j=1,2,...,mi)为用户提交的关键字,关键字的总数wij,q(i=1,2,...,p,j=1,2,...,mi)为用户给关键字keyij设定的权重,wij,q>0,也可缺省设定,认为所有的关键字权重相同,即wij,q=1/m;为用户给关键字keyij(j=1,2,...,mi)设定的路径约束,ni为关键字keyij路径约束的长度,labik(i=1,2,...,p,k=1,2,...,ni)为该路径约束中节点的名称,当1≤r≤s≤ni时,labir和labis对应的节点具有祖先后裔关系;
第2.2、将用户提交的查询解析成为重新定义的用户查询形式,
定义3:对于定义2中用户提交的查询可以表示为一个包含m个三元组的集合Q={(keyt,patht,wt,q)|t=1,2,...,m},其中:
③.wt,q是关键字keyt在用户查询Q中的权重,wt,q>0,若用户未指定关键字的权重,则任何关键字的权重wt,q=1/m(t=1,...,m);
第3、利用本发明提出的检索排序模型对XML文档进行检索,并将检索结果依照相关度排序,最终返回给用户。
本发明提出一种新的融合路径约束的检索排序模型,该模型在传统向量空间模型的基础上,充分利用XML文档的结构层次特性,巧妙地将N-Gram思想应用于路径约束相似度的计算中,从而对文档标引词加权方案进行调整,最终获得文档同用户查询的相关度,并按照相关度对文档进行排序返回给用户。
当将用户查询处理完成后,需检索出同用户查询相关的文档,并依据排序模型,对文档进行排序,具体步骤如下:
第3.1、查找标引词倒排索引表,返回与用户查询每个关键字匹配的文档节点,确定同用户查询相关的文档;
第3.2、定义标引词在文档中的修正频率,计算相关文档中各个标引词的修正频率;
其中所述的标引词根据其是否在用户提交的查询关键字集合中出现,被分为关键字标引词和非关键字标引词两类,定义如下:
定义4:出现在用户查询关键字集的文档标引词,称为关键字标引词;未出现在用户查询关键字集的文档标引词,称为非关键字标引词。
所述的计算每个相关文档中各个标引词的修正频率包括:
第3.2.1、计算每个相关文档中各个关键字标引词的修正频率,步骤如下:
第3.2.1.1、提取关键字在文档中每次匹配的目标子路径约束,作为该匹配的路径约束;
所述的关键字在文档中每次匹配的目标子路径约束定义如下:
定义5:设关键字keyt在文档dj中第k次匹配所在节点是v,在节点v的祖先路径约束path(v)中顺序查找关键字keyt路径约束patht包含的节点名称,查找到任意一个即停止查找,在节点v的祖先路径约束path(v)中,只截取从匹配节点名称开始直到结尾的子路径约束,将该子路径约束定义为关键字keyt在文档dj中第k次匹配的目标子路径约束TPt,j,k;若在节点v的祖先路径约束path(v)中未找到关键字路径patht包含的节点名称,则该次匹配的目标子路径约束为空,表示为ε。
第3.2.1.2、计算关键字在文档中每次匹配的路径约束相似度;
所述的计算关键字在文档中每次匹配的路径约束相似度的方法如下:
第3.2.1.2.1、将关键字的路径约束和该次匹配节点的目标子路径约束映射成为有序的整数数组,对于关键字keyt在文档dj中第k次匹配,具体作法如下:
①、设l为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k中出现的不同节点名称的数量,将这l个节点名称依次映射到[1,l]内的一个正整数,这样用字符串表示的节点名称被转换为正整数序列,相同的节点名称具有相同的整数编号;
②、为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k分别建立对应的整数数组arrayt,j,k和TParrayt,j,k,长度分别为|patht|+1和|TPt,j,k|;
③、依据每个节点名称对应的正整数,将关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k依次映射到对应的有序整数数组arrayt,j,k和TParrayt,j,k,并将整数数组TParrayt,j,k的最后一个正整数,也就是关键字keyt在文档dj中第k次匹配节点的名称所对应的正整数,赋给整数数组arrayt,j,k的最后一项arrayt,j,k[|patht|+1]。
第3.2.1.2.2、定义相同节点名称个数因子、未匹配节点名称个数因子和相同N-gram项个数因子三个影响路径约束相似度的因子
本发明在计算目标子路径约束同对应关键字路径约束的相似度时遵循以下三个规则:
①、在目标子路径约束中包含的关键字路径约束节点名称个数越多,其路径约束相似度应该越高;
②、在目标子路径约束中包含的关键字路径约束节点名称距离越近,间隔的不匹配节点名称越少,其路径约束相似度应该越高。
③、在目标子路径约束中包含的关键字路径约束相连节点名称越长,相连节点名称个数越多,且匹配顺序越一致,其路径约束相似度应该越高;
根据上述三个规则,分别定义相同节点名称个数因子、未匹配节点名称个数因子和相同N-gram项个数因子三个影响路径约束相似度的因子,具体定义如下:
第3.2.1.2.2.1、计算相同节点名称个数因子
定义6:对于关键字keyt在文档dj中第k次匹配,计算关键字keyt路径约束整数数组arrayt,j,k中的整数,在目标子路径约束整数数组TParrayt,j,k中出现的个数,称该个数为关键字keyt在文档dj中第k次匹配的相同节点名称个数slct,j,k,用关键字keyt路径约束整数数组arrayt,j,k的长度,对相同节点名称个数进行归一化,
SLCt,j,k=slct,j,k/|arrayt,j,k|
称SLCt,j,k为关键字keyt在文档dj中第k次匹配的相同节点名称个数因子,该数值介于0和1之间。相同节点名称个数越多,相同节点名称个数因子越大,路径约束的相似性越强,以解释规则1。
第3.2.1.2.2.2、计算未匹配节点名称个数因子
定义7:对于关键字keyt在文档dj中第k次匹配,计算目标子路径约束整数数组TParrayt,j,k中没有匹配关键字keyt路径约束整数数组arrayt,j,整数的个数,将该个数称为关键字keyt在文档dj中第k次匹配的未匹配节点名称个数ulct,j,k,用目标子路径约束整数数组TParrayt,j,k长度对未匹配节点名称个数ulct,j,k进行归一化,
ULCt,j,k=ulct,j,k/|TParrayt,j,k|
称ULCt,j,k为关键字keyt在文档dj中第k次匹配的未匹配节点名称个数因子,该数值介于0和1之间。在目标子路径约束中包含的不匹配节点名称个数越少,不匹配节点名称个数因子越小,路径约束的相似性越强,以解释规则2。
第3.2.1.2.2.3、计算相同N-Gram项个数因子
N-Gram是自然语言处理领域一种大词汇连续语音识别中常用的语言分词技术,它可按照字符长度从1到N,从长度为N的文本中分别提取出1-gram项数组、2-gram项数组、......、N-gram项数组,提取n-gram(n=1,2,...,N)项数组的具体方法是使用字符长度为n的窗口从文本的第一个字符处开始,自左向右连续移动,每次移动的步长为1个字符,窗口中每次出现的n个字符长的信息项构成n-gram项数组,也就是说,n-gram项数组包含N-n+1个长度为n的信息项,则长度为N的文档总共可提取N(N+1)/2个字符长度从1到N不等的信息项。
本发明将借用N-Gram信息项提取方式来比较目标子路径约束同关键字路径约束的相似度以解释规则3。
从目标子路径约束和关键字路径约束分别提取出N-Gram信息项,具体步骤如下:
对于关键字keyt在文档dj中第k次匹配,
①、取|TParrayt,j,k|和|arrayt,j,k|中较小者作为N-Gram信息项的最大长度M;
②、为目标子路径约束TPt,j,k和关键字keyt路径约束序列patht建立两个整数数组TPngramarrayt,j,k和ngramarrayt,j,k用于存储两个约束的n-gram(n=1,2,...,M)信息项,长度分别为∑n=1 M(|TPSarrayt,j,k|-n+1)和∑n=1 M(|arrayt,j,k|-n+1);
③、设l为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k中出现的不同节点名称的数量,令权值K=l+1;
④、提取关键字keyt路径约束整数数组arrayt,j,k的N-gram信息项数组,依次将信息项长度n设为1,2,...,M,分别提取1-gram项数组、2-gram项数组、......、M-gram项数组,其中n-gram信息项数组共有|arrayt,j,k|-n+1项,将n-gram信息项数组第s项存入数组ngramarrayt,j,k[(2|arrayt,j,k|×n+3n-n2-2|arrayt,j,k|-2)/2+s],n-gram信息项数组第s项定义为:n-gramitems=arrayt,j,k[s]×Kn-1+arrayt,j,k[s+1]×Kn-2+...+arrayt,j,k[s+n-1]×K0其中,n=1,2,...,M,s=1,...,|arrayt,j,k|-n+1,引入权值K是为了保证各个n-gram信息项的唯一性,即当i≠j时,i-gram数组和j-gram数组中不存在相同整数的信息项;
⑤、将目标子路径约束TPt,j,k对应的整数数组TParrayt,j,k也按以上第④步相同方法提取n-gram(n=1,2,...,M)信息项依次存入数组TPngramarrayt,j,k;
定义8:相同N-gram项个数,对于关键字keyt在文档dj中第k次匹配,计算关键字keyt路径约束N-Gram信息项数组ngramarrayt,j,k的整数,在目标子路径约束TPt,j,k的N-Gram信息项数组TPngramarrayt,j,k中出现的个数,将该个数称为关键字keyt在文档dj中第k次匹配的相同N-gram项个数snct,j,k,用arrayt,j,k数组的N-gram信息项总数|arrayt,j,k|×(|arrayt,j,k|+1)/2,对相同N-gram项个数进行归一化,
称SNCt,j,k为关键字keyt在文档dj中第k次匹配的相同N-gram项个数因子,该数值介于0和1之间。在目标子路径约束TPt,j,k中出现的关键字keyt路径约束序列patht相连节点名称越长,相连节点名称个数越多,且匹配顺序越一致,也就是N-gram项个数因子越大,路径约束的相似性越强,以解释规则3。
第3.2.1.2.3、计算路径约束相似度
定义9:将关键字keyt在文档dj中第k次匹配的路径约束同关键字keyt对应的路径约束相似度定义为:
pcst,j,k=α+βDMLt,j,k+γSNIt,j,k-δULCt,j,k
其中,α,β,γ,δ是路径约束相似度不同因子权重的参数,β,γ,δ分别是匹配的相同节点名称数因子、相同N-gram项个数因子和未匹配节点名称个数因子权重的参数,而α是匹配关键字的基础分数参数,要求α+β+γ=1且α>δ,从而保证pcst,j,k(0,1],且当目标子路径约束和关键字路径约束完全匹配情况下,相似度为1;
当目标子路径约束长度|TPt,j,k|为0或关键字keyt路径约束长度|patht|为0时,该次匹配相似度为α。
第3.2.1.3、根据关键字在文档中每次匹配路径约束相似度计算关键字标引词修正频率。
所述的根据关键字在文档中每次匹配的路径约束相似度计算关键字标引词修正频率的定义如下:
定义10:关键字标引词修正频率,关键字标引词termi同用户查询关键字keyt匹配,将关键字keyt在文档dj中每次出现的路径约束相似度之和作为标引词termi在文档dj中的修正频率,则标引词termi在文档dj中的修正频率定义为:
其中,tfi,j表示关键字keyt也就是termi在文档dj中出现的次数;pcst,j,k表示关键字keyt在文档dj中第k次出现时该关键字所在结点路径约束同用户查询中匹配关键字keyt的路径约束相似度,pcst,j,k∈(0,1]。
第3.2.2、计算每个相关文档中各个非关键字标引词的修正频率。
所述的每个相关文档中各个非关键字标引词的修正频率定义如下:
定义11:非关键字标引词修正频率,非关键字标引词termi未与用户查询任何关键字匹配,将非关键字标引词termi在文档dj中的修正频率定义为:
rtfi,j=α×tfi,j
其中,tfi,j表示标引词termi在文档dj中出现的次数,α值与定义9中α值相同。
第3.3、定义每个相关文档中各个标引词的权重并计算;
所述的计算每个相关文档中各个标引词的权重的方法定义如下:
定义12:文档标引词权重,将标引词在某文档中的权重定义为该标引词在该篇文档中的修正频率和该标引词逆文档频率的乘积,用标引词修正频率来体现标引词对文档的重要程度,用标引词逆文档频率体现标引词区分文档的能力,则标引词termi在文档dj中的权值wi,j具体定义为:
其中,rtfi,j表示标引词termi在文档dj中出现的修正频率,idfi表示标引词termi的逆文档频率,仍使用公式idfi=log(N/ni)计算,其中,N表示系统中的文档总数,ni表示系统中含有标引词termi的文档数目。
第3.4、定义每个相关文档同查询的相关度并计算,并依据相关度对文档排序。
所述的计算每个相关文档同查询的相关度的方法定义如下:
定义13:文档和查询相关度,检索系统中共有L个标引词,将检索系统中的所有文档和用户查询都用L维向量来表示,检索系统中的文档dj向量可以表示为dj=(w1,j,w2,j,...,wL,j),其中wi,j(i=1,2,...,L)是标引词termi在文档dj中的权值,wi,j≥0;而用户查询向量可以表示为q=(w1,q,w2,q,...,wL,q),其中wi,q(i=1,2,...,L)是标引词termi在查询中的权值,wi,q≥0;文档dj和用户查询的相关度可以用向量dj和向量q之间夹角余弦值来计算,如下定义:
其中,|dj|和|q|分别是文档向量dj和查询向量q的模。
本发明的优点和积极效果:
本发明面向海量小规模XML文档,提出了一种新的XML文档检索方法,包括:设计了以带有XPath形式路径约束的关键字作为用户提交查询的方式,充分利用XML文档的结构层次特性,提出了一种融合路径约束的检索排序模型,巧妙地将N-Gram思想应用于模糊路径约束匹配的计算。本发明提出的XML文档检索方法,更加准确地表达了用户的查询需求,且充分利用了XML文档的结构约束来计算文档同用户查询的相似度,因此通过该XML检索方法,可得到更加符合用户需求的检索结果。
【附图说明】
图1为XML文档检索方法整体流程示意图。
图2为一篇示例XML文档。
图3为示例XML文档对应的文档树。
图4为路径1→2→3→5的N-gram信息项提取过程示意图。
图5为路径1→2→2→4→5的N-gram信息项提取过程示意图。
图6为计算文档同查询相关度过程示意图。
表1为示例用户查询关键字在示例文档中所有匹配实例信息。
表2为示例用户查询关键字在示例文档中所有匹配实例的路径约束相似度计算结果。
【具体实施方式】
本发明面向海量小规模XML文档,提出了一种新的XML文档检索方法,方法整体流程如图1所示,下面以图2所示示例XML文档和示例用户查询“article/title/xmlbody/section/title/DTD”对方法核心内容加以解释。
第1、对XML文档进行预处理;
检索系统中所有XML文档需要进行预处理,首先将所有XML文档定义为XML文档树,并使用Dewey编码为整棵XML文档树进行编码,图3展示出图2中示例XML文档对应的编码后的文档树形式。其次,为检索系统所有XML文档的元素节点名称、属性节点名称和文本节点的内容建立标引词和节点编码的倒排索引表,最后计算系统中标引词在各篇XML文档中的频率(出现次数)和标引词的逆文档频率。
第2、对用户提交的查询进行分析处理,形式化地表达用户检索意图;
以用户提交查询“article/title/xml body/section/title/DTD”为例,系统需将用户提交的该查询解析成Q={(xml,article→title,0.5),(DTD,body→section→title,0.5)}的形式。
第3、依据检索排序模型对XML文档进行检索,并将检索结果依照相关度排序,最终返回给用户,具体步骤如下:
第3.1、查找词倒排索引表,返回与用户查询每个关键字匹配的文档节点。表1中列出了示例查询关键字在示例文档中的各个匹配节点信息。
第3.2、计算相关文档中各个标引词的修正频率
第3.2.1、计算每个相关文档中各个关键字标引词的修正频率,步骤如下:
第3.2.1.1、提取关键字在文档中每次匹配的目标子路径约束,作为该匹配的路径约束;
提取目标子路径约束并转成整数数组具体实现的伪代码如下:
算法1:提取目标子路径约束方法ConstructTargetPathSeq
输入:关键字在文档中某次匹配节点v,
用户提交的该关键字的路径约束path[]
输出:关键字在文档中该次匹配的目标子路径约束TP[]
①.TP[]:=path(v);/*节点v的祖先路径约束依次存入数组TP*/
②.FOR EACH label1IN TP DO/*依次取TP中的节点名称*/
③.i:=label1在TP中的下标;
④.FOR EACH label2 INpath DO /*依次取path中的节点名称*/
⑤.IF label1=label2THEN/*TP中的节点名称和path中的节点名称匹配*/
⑥.RETURN&TP[i];
/*找到任意path的节点名称,返回从该匹配节点名称至结尾的子路径约束*/
⑦.END IF
⑧.END FOR
⑨.END FOR
⑩.RETURN NULL;
算法结束
该算法是在匹配节点v的祖先路径约束中查找第一个出现的关键字路径约束的任意节点名称,将该匹配节点名称开始至祖先路径约束结尾的子路径约束作为目标子路径约束。
表1中列“目标子路径约束TP”列出了示例查询关键字在示例文档中各次匹配的目标子路径约束。以表1中第6个匹配实例为例,在节点1.1.3.2.2.2.1的内容中出现了关键字DTD,该节点的祖先路径约束是article→body→section→section→paragraph→#text,关键字DTD的路径约束是body→section→title,在节点1.1.3.2.2.2.1的祖先路径约束中顺序查找body、section、title任意一个,在匹配节点的祖先路径约束第2个节点处匹配节点名称body,停止查找,取body→section→section→paragraph→#text作为该次匹配的目标子路径约束。
第3.2.1.2、计算关键字在文档中每次匹配的路径约束相似度;
第3.2.1.2.1、将关键字的路径约束和该次匹配节点的祖先路径约束映射成为有序的整数数组;
表2“array”列和“TParray”列分别列出了示例查询关键字在示例文档中各次匹配的关键字路径约束整数数组和目标子路径约束整数数组。以表2中第6个匹配实例为例,匹配关键字DTD的路径约束是body→section→title,该次匹配的目标子路径约束是body→section→section→paragraph→#text,在两个路径约束中包含body、section、title、paragraph、#text共5个不同的节点名称,将这5个不同的节点名称依次映射到[1,5]内的一个正整数,易得路径body→section→title映射后对应的序列是1→2→3,而路径body→section→section→paragraph→#text映射后对应的序列是1→2→2→4→5。
第3.2.1.2.2、计算相同节点名称个数因子、未匹配节点名称个数因子和相同N-gram项个数因子;
第3.2.1.2.2.1、计算相同节点名称个数因子;
第3.2.1.2.2.1、计算未匹配节点名称个数因子;
计算相同节点名称个数因子和未匹配节点名称个数因子具体实现的伪代码如下:
算法2:相同节点名称个数因子和未匹配节点名称个数因子计算ComputeSLCandULC
输入:关键字路径约束对应的整数数组array[1,......,m],
关键字该次匹配节点的目标子路径约束整数数组TParray[1,......,n]
输出:相同节点名称个数因子SLC,未匹配节点名称个数因子ULC
①.slc:=|array∩TParray|;/*slc是相同节点名称个数*/
②.ulc:=|TParray-array|;/*ulc是未匹配节点名称个数*/
③.SLC:=slc/m;/*用数组array的长度将相同节点名称个数进行归一化*/
④.ULC:=ulc/n;/*用数组TParray的长度将未匹配节点名称个数进行归一化*/
⑤.RETURN SLC,ULC
⑥.算法结束
表2中slc列、SLC列、ulc列、ULC列分别列出了示例用户查询关键字在示例文档中所有匹配实例的相同节点名称个数、相同节点名称个数因子、未匹配节点名称个数、未匹配节点名称个数因子的计算结果。
第3.2.1.2.2.3、计算相同N-Gram项个数因子
构造N-Gram整数数组和计算相同N-gram项个数因子具体实现的伪代码如下:
算法3:构造N-Gram整数数组方法ConstructNGramArray
输入:目标子路径约束或关键字路径约束的整数数组array[1,......,l],
需要提取的N-Gram信息项的最大长度M,
权值K
输出:NGramarray[1,......,∑i=1 M(l-i+1)]
①.pos[1,......,M];
/*每个i-gram信息项(i=1,2,...,M)在数组NGramarray中的首位置存于pos[i]*/
②.pos[1]:=1;
③.FOR(i:=2;i≤M;i++)DO
④.pos[i]:=(2l×i+3i-i2-2l)/2;
⑤.END FOR
⑥.FOR EACH member IN array do
⑦.i:=member在array中的下标;/*i=1,......,l*/
⑧.NGramarray[i]:=member;/*填充1-gram第i个信息项*/
⑨.j:=2;/*j为当前计算的N-Gram信息项的长度*/
⑩.Whilej≤i&&j≤M do
/*由(j-1)-gram第i-j+1项和array第i项(1-gram第i项)填充j-gram第i-j+1项*/
算法4:相同N-gram项个数因子计算ComputeSameNGramItemsCount
输入:关键字路径约束对应的整数数组array[1,......,m],
关键字该次匹配节点的目标子路径约束整数数组TParray[1,......,n]
输出:相同N-gram项个数因子SNC
①.M:=min(m,n);/*M为需要提取的N-Gram信息项的最大长度*/
②.K:=数组array和TParray中不同整数个数+1;/*计算权值K*/
③.ngramarray[1,......,∑i=1 M(m-i+1)];
④.TPngramarray[1,.....,∑i=1 M(n-i+1)];
⑤.ngramarray:=ConstructNGramArray(array,M,K);
⑥.TPngramarray:=ConstructNGramArray(TParray,M,K);
⑦.snc:=|ngramarray∩TPngramarray|;/*计算相同N-Gram项个数*/
⑧.SNC:=2×snc/[m×(m+1)];/*用array数组N-Gram信息项总数进行归一化*/
⑨.RETURN SNC;
⑩.算法结束
算法3通过一次扫描数组array,提取出该数组能生成的所有i-gram信息项(i=1,......,l),填充到NGramarray数组的相应位置中。由于每个i-gram信息项个数可以确定,为l-i+1项,因此每个i-gram信息项数组的起始位置可以确定,为(2l×i+3i-i2-2l)/2,在算法中用pos数组存储每个i-gram信息项数组的起始位置。然后,依次取i=1,......,l,在i的每一次取值过程中,先填充1-gram第i个信息项,进而根据j-gram第i-j+1项和array的第i项(1-gram第i个信息项),计算填充(j+1)-gram第i-j+1项,而j≤i&&j≤M,也就是:
i=1时,在NGramarray数组的1位置填充1-gram的第1项;
i=2时,在NGramarray数组的2位置填充1-gram的第2项,取j=2,用1-gram的第1项和array的第2项计算得到2-gram的第1项,填充到NGramarray的第pos[2]+2-2位置;
i=3时,在NGramarray数组的3位置填充1-gram的第3项,取j=2,用1-gram的第2项和array的第3项计算得到2-gram的第2项,填充到NGramarray的第pos[2]+3-2位置,取j=3,用2-gram的第1项和array的第3项计算得到3-gram的第1项,填充到NGramarray的第pos[3]+3-3位置;
......
i=l时,在NGramarray数组的l位置填充1-gram的第l项,取j=2,用1-gram的第l-1项和array的第l项计算得到2-gram的第l-1项,填充到NGramarray的第pos[2]+l-2位置,取j=3,用2-gram的第l-2项和array的第l项计算得到3-gram的第l-2项,填充到NGramarray的第pos[3]+l-3位置;......,取j=M,用(M-1)-gram的第l-M+1项和array的第l项计算得到M-gram的第l-M+1项,填充到NGramarray的第pos[M]+l-M位置;
当数据array扫描结束,需要提取的全部N-gram信息项也全部填充完毕。
算法4描述了路径约束相同N-gram项个数因子的计算方法,首先选取关键字路径约束整数数组和目标子路径约束整数数组中较小长度作为需要提取的N-Gram信息项的最大长度M,选取两个整数数组中不同整数个数加1作为权值K,再分别提取两个整数数组的N-gram信息项,最后计算两个整数数组N-gram信息项的相同个数,并用关键字路径约束数组的N-gram信息项总数对其进行归一化。
在计算示例用户查询关键字在示例文档中第6匹配实例的相同N-gram项个数因子时,首先确定需要提取的N-Gram信息项的最大长度,关键字路径约束1→2→3→5长度为4,目标子路径约束1→2→2→4→5长度为5,取两者较小数4作为提取的N-Gram信息项的最大长度。再找出两个整数数组中不同整数个数为5,确定提取N-gram项数组进制K为5+1=6。然后分别进行N-gram信息项的提取,图4和图5分别描述了路径1→2→3→5和路径1→2→2→4→5的N-Gram信息项提取过程,图4和图5中i即为算法3中当前扫描array数组的位置。填充最后计算出两个路径最终的N-Gram数组共有4个相同的N-Gram信息项,用关键字路径约束1→2→3→5的N-gram信息项总数10对其进行归一化,计算得到关键字路径约束1→2→3→5和目标子路径约束1→2→2→4→5的相同N-gram项个数因子为0.4。表2中snc列和SNC列分别列出了示例用户查询关键字在示例文档中所有匹配实例的相同N-gram项个数和相同N-gram项个数因子的计算结果。
第3.2.1.2.3、计算路径约束相似度
每个关键字在每个文档中每次匹配的目标子路径约束同关键字路径约束的相似度受相同节点名称个数因子、相同N-gram项个数因子、未匹配节点名称个数因子三个因素的影响,计算两个路径约束相似度具体实现伪代码如下:
算法5:路径约束相似度计算ComputePathConstraintSim
输入:关键字路径约束对应的整数数组array[1,......,m],
关键字该次匹配节点的目标子路径约束整数数组TParray[1,......,n]
输出:路径约束相似度分数pcs
①.IFm≤1||n≤1THEN/*如果array或TParray的长度小于等于1时*/
②.pcs:=α;/*将参数α设为0.2*/
③.ELSE
④.ComputeSLCandULC(array,TParray,&SLC,&ULC);
⑤.SNC:=ComputeSameNGramItemsCount(array,TParray);
⑥.pcs:=α+βSLC+γSNC-δULC;/*将参数β,γ,δ分别设为0.45、0.35和0.15*/
⑦.END IF
⑧.RETURNpcs;
⑨.算法结束
该算法描述了关键字路径约束同目标子路径约束的相似度计算方法,当目标子路径约束长度为0或关键字路径约束长度为0,也就是它们对应的整数数组大小小于等于1时,该次匹配分数为α;其他情况下,需要计算两个路径约束的节点名称个数因子、相同N-gram项个数因子和未匹配节点名称个数因子,本发明认为相同节点名称个数因子、相同N-gram项个数因子、未匹配节点名称个数因子对路径约束相似度的影响程度依次递减,因此将算法中的参数α,β,γ,δ分别设为0.2、0.45、0.35和0.15,满足α+β+γ=1且α>δ,使pcs∈(0,1],从而当目标子路径约束和关键字路径约束完全匹配情况下,相似度分数为1。表2中pcs列列出了示例用户查询关键字在示例文档中所有匹配实例的路径约束相似度计算结果。
第3.2.1.3、根据关键字在文档中每次匹配路径约束相似度计算关键字标引词修正频率。
第3.2.2、计算每个相关文档中各个非关键字标引词的修正频率。
标引词在各个文档中的修正频率计算具体实现伪代码如下:
算法6:标引词修正频率计算ComputeRevisedTermFreq
输入:标引词k,文档d,
用户提交查询Q={(keyt,patht,wt,q)|t=1,...,m},
关键字路径约束对应的整数数组A={arrayi|i=1,...,m}
输出:标引词k在文档d中标引词修正频率rtf
①.rtf:=0;
②.IFk∈{keyt|t=1,...,m}THEN
③.FOR关键字k在文档d中的每次匹配DO
④.v:=当前匹配的节点;
⑤.TParray[]:=ConstructTargetPathSeq(v,path);/*提取目标子路径约束*/
⑥.pcs:=ComputePathConstraintSim(array,TParray);
⑦.rtf:=rtf+pcs;/*修正的标引词频率为每次匹配的路径约束相似度之和*/
⑧.END FOR
⑨.ELSE
⑩.tf:=GetTermTF(k,d);/*函数GetTermTF(k,d)获取k在文档d出现次数*/
RETURNrtf;
该算法描述了系统中所有标引词在各个文档中的修正频率计算方法,若标引词同用户提交查询任一关键字匹配,则其在文档中的修正频率定义为该标引词在文档中各次匹配路径约束相似度分数之和,如算法6中②~⑧所示;若标引词未在用户查询中出现,则其在文档中修正频率定义为其在文档中出现次数同参数α的乘积,如算法6中⑨~(12)所示。
第3.3、定义每个相关文档中各个标引词的权重并计算;
算法7:标引词在文档中权重计算ComputeTermWeight
输入:标引词k,文档d,用户提交查询Q={(keyt,patht,wt,q)|t=1,...,m},
关键字路径约束对应的整数数组A={arrayi|i=1,...,m}
输出:标引词k在文档d中权重weight
①.rtf:=ComputeRevisedTermFreq(k,d,Q,A);
②.idf:=GetTermIDF(k);/*函数GetTermIDF(k)获取k的逆文档频率*/
③.weight:=rtf×idf;
④.RETURN weight;
⑤.算法结束
该算法描述了标引词在各个文档中的权重计算方法,先计算标引词在文档中的修正频率,再获取其逆文档频率,将修正频率和逆文档频率的乘积作为该标引词在文档中的权重。
第3.4、定义每个相关文档同查询的相关度并计算,并依据相关度对文档排序。
文档同用户查询相关度计算具体实现伪代码如下:
算法8:文档和查询相关度计算ComputeDocQuerySim
输入:文档d,用户提交查询Q={(keyt,patht,wt,q)|t=1,...,m},
关键字路径约束对应的整数数组A={arrayi|i=1,...,m}
输出:文档d和查询的相关度Sim
①.numerator:=0,denominator:=0;
②.FOR EACH k IN系统标引词集LDO
③.i:=k在系统标引词集L的序号下标;
④.docweight:=ComputeTerm Weight(k,d,Q,A);
⑤.queryweight:=GetQueryWeight(k,Q);
/*函数GetQueryWeight(k,Q)获取与标引词k匹配的关键字在用户查询中的权重*/
⑥.numerator+=docweight×queryweight;
⑦.denominator+=docweight×docweight;
⑧.END FOR
⑨.
⑩.Sim:=numerator/denominator;
该算法描述了使用向量空间模型计算文档和用户查询相关度的方法,将用户查询和文档都用向量表示,而文档和用户查询的相关度可以用两个向量的夹角余弦值来计算。
计算文档同用户查询相关度整体过程示意图如图6所示。
表1示例用户查询关键字在示例文档中所有匹配实例信息
序号 | 关键字 | 节点编码 | 目标子路径约束TP |
1 | XML | 1.1.2.1 | article→title→#text |
2 | XML | 1.1.3.1.2.1 | article→body→section→paragraph→#text |
3 | XML | 1.1.3.2.1.1 | article→body→section→title→#text |
4 | XML | 1.1.3.2.3.2.1 | article→body→section→section→paragraph→#text |
5 | DTD | 1.1.3.2.2.1.1 | body→section→section→title→#text |
6 | DTD | 1.1.3.2.2.2.1 | body→section→section→paragraph→#text |
表2示例用户查询关键字在示例文档中所有匹配实例的路径约束相似度计算结果
序号 | 关键字 | array | TParray | slc | SLC | snc | SNC | ulc | ULC | pcs |
1 | XML | 1/2/3 | 1/2/3 | 3 | 1.000 | 6 | 1.000 | 0 | 0.000 | 1.000 |
2 | XML | 1/2/6 | 1/3/4/5/6 | 2 | 0.667 | 2 | 0.333 | 3 | 0.600 | 0.527 |
3 | XML | 1/2/5 | 1/3/4/2/5 | 3 | 1.000 | 4 | 0.667 | 2 | 0.400 | 0.823 |
4 | XML | 1/2/6 | 1/3/4/4/5/6 | 2 | 0.667 | 2 | 0.333 | 4 | 0.667 | 0.517 |
5 | DTD | 1/2/3/4 | 1/2/2/3/4 | 4 | 1.000 | 8 | 0.800 | 0 | 0.000 | 0.930 |
6 | DTD | 1/2/3/5 | 1/2/2/4/5 | 3 | 0.750 | 4 | 0.400 | 1 | 0.200 | 0.648 |
Claims (9)
1.一种面向海量小规模XML文档融合路径约束的XML检索方法,其特征在于该方法包括如下步骤:
第1、对XML文档进行预处理
第1.1、将XML文档定义为一棵XML文档树,
定义1:一篇XML文档D可以表示为一棵有序文档树,用9元组T=(V,v0,E,∑,P,type,id,lab)表示,其中:
①.V是文档D中所有XML节点的集合;
②.v0是文档D的根节点,v0∈V;
④.有穷字母表∑是文档D中所有节点名称的集合;
⑤.P是文档D中祖先路径约束的集合,P是一个多元关系即且P={(v0,v1,...,vn)|(vi,vi+1)∈E,0≤i<n}∪{v0},给定节点vn的祖先路径约束(v0,v1,...,vn)∈P,表示的是从根节点v0到节点vn的连续父子约束,即v0→v1,v1→v2,...,vn-1→vn,简写为v0→v1→v2→...→vn,使用函数path:V→P返回XML节点的祖先路径约束,即当v∈V,path(v)∈P;
⑥.函数type:V→{ELEM,ATTR,TEXT}返回XML节点的类型,给出节点v∈V,有:
a)若v是元素节点,则type(v)=ELEM,所有元素节点组成的集合用Ve表示,则Ve={v|v∈V∧type(v)=ELEM};
b)若v是属性节点,则type(v)=ATTR,所有属性节点组成的集合用Va表示,则Va={v|v∈V∧type(v)=ATTR;
c)若v是文本节点,则type(v)=TEXT,所有文本节点组成的集合用Vt表示,则Vt={v|v∈V∧type(v)=TEXT};
⑦.函数id:V→DeweyId返回文档D中节点v的编码,即当v∈V,id(v)∈DeweyId,其中,DeweyId是文档D中所有节点编码的集合,节点v的Dewey编码是节点v在文档D中的唯一标识;
⑧.函数lab:V→∑∪{#text}返回文档D中节点v的名称,即当v∈Ve∪Va,lab(v)∈∑,定义文本节点的名称都为#text,即当v∈Vt,lab(v)=#text。
第1.2、使用Dewey编码为XML文档进行编码;
第1.3、为检索系统所有XML文档的元素节点名称、属性节点名称和文本节点的内容建立标引词和节点编码的倒排索引表;
第1.4、计算系统中标引词在各篇XML文档中的频率(出现次数)和标引词的逆文档频率;
第2、对用户提交的查询进行分析处理,形式化地表达用户的检索意图
第2.1、对用户提交的查询方式进行重新定义,
定义2:用户以如下方式提交查询:
……
其中,keyij(i=1,2,...,p,j=1,2,...,mi)为用户提交的关键字,关键字的总数wij,q(i=1,2,...,p,j=1,2,...,mi)为用户给关键字keyij设定的权重,wij,q>0,也可缺省设定,认为所有的关键字权重相同,即wij,q=1/m;(i=1,2,...,p)为用户给关键字keyij(j=1,2,...,mi)设定的路径约束,ni为关键字keyij路径约束的长度,labik(i=1,2,...,p,k=1,2,...,ni)为该路径约束中节点的名称,当1≤r<s≤ni时,labir和labis对应的节点具有祖先后裔关系;
第2.2、将用户提交的查询解析成为重新定义的用户查询形式,
定义3:对于定义2中用户提交的查询可以表示为一个包含m个三元组的集合Q={(keyt,patht,wt,q)|t=1,2,...,m},其中:
③.wt,q是关键字keyt在用户查询Q中的权重,wt,q>0,若用户未指定关键字的权重,则任何关键字的权重wt,q=1/m(t=1,...,m);
第3、利用本发明提出的检索排序模型对XML文档进行检索,并将检索结果依照相关度排序,最终返回给用户。
第3.1、查找标引词倒排索引表,返回与用户查询每个关键字匹配的文档节点,确定同用户查询相关的文档;
第3.2、定义标引词在文档中的修正频率,计算相关文档中各个标引词的修正频率;
第3.3、定义每个相关文档中各个标引词的权重并计算;
第3.4、定义每个相关文档同查询的相关度并计算,并依据相关度对文档排序。
2.根据权利要求1所述的方法,其特征在于第3.2步所述的标引词分为关键字标引词和非关键字标引词,定义如下:
定义4:出现在用户查询关键字集的文档标引词,称为关键字标引词;未出现在用户查询关键字集的文档标引词,称为非关键字标引词。
3.根据权利要求1所述的方法,其特征在于第3.2步所述的计算每个相关文档中各个标引词的修正频率包括:
第3.2.1、计算每个相关文档中各个关键字标引词的修正频率,步骤如下:
第3.2.1.1、提取关键字在文档中每次匹配的目标子路径约束,作为该匹配的路径约束;
第3.2.1.2、计算关键字在文档中每次匹配的路径约束相似度;
第3.2.1.3、根据关键字在文档中每次匹配路径约束相似度计算关键字标引词修正频率。
第3.2.2、计算每个相关文档中各个非关键字标引词的修正频率。
4.根据权利要求3所述的方法,其特征在于第3.2.1.1步所述的关键字在文档中每次匹配的目标子路径约束定义如下:
定义5:设关键字keyt在文档dj中第k次匹配所在节点是v,在节点v的祖先路径约束path(v)中顺序查找关键字keyt路径约束patht包含的节点名称,查找到任意一个即停止查找,在节点v的祖先路径约束path(v)中,只截取从匹配节点名称开始直到结尾的子路径约束,将该子路径约束定义为关键字keyt在文档dj中第k次匹配的目标子路径约束TPt,j,k;若在节点v的祖先路径约束path(v)中未找到关键字路径patht包含的节点名称,则该次匹配的目标子路径约束为空,表示为ε。
5.根据权利要求3所述的方法,其特征在于第3.2.1.2步所述的计算关键字在文档中每次匹配的路径约束相似度的方法如下:
第3.2.1.2.1、将关键字的路径约束和该次匹配节点的目标子路径约束映射成为有序的整数数组,对于关键字keyt在文档dj中第k次匹配,具体作法如下:
①、设l为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k中出现的不同节点名称的数量,将这l个节点名称依次映射到[1,l]内的一个正整数,这样用字符串表示的节点名称被转换为正整数序列,相同的节点名称具有相同的整数编号;
②、为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k分别建立对应的整数数组arrayt,j,k和TParrayt,j,k,长度分别为|patht|+1和|TPt,j,k|;
③、依据每个节点名称对应的正整数,将关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k依次映射到对应的有序整数数组arrayt,j,k和TParrayt,j,k,并将整数数组TParrayt,j,k的最后一个正整数,也就是关键字keyt在文档dj中第k次匹配节点的名称所对应的正整数,赋给整数数组arrayt,j,k的最后一项arrayt,j,k[patht|+1]。
第3.2.1.2.2、定义相同节点名称个数因子、未匹配节点名称个数因子和相同N-gram项个数因子三个影响路径约束相似度的因子,具体定义如下:
第3.2.1.2.2.1、计算相同节点名称个数因子
定义6:对于关键字keyt在文档dj中第k次匹配,计算关键字keyt路径约束整数数组arrayt,j,k中的整数,在目标子路径约束整数数组TParrayt,j,k中出现的个数,称该个数为关键字keyt在文档dj中第k次匹配的相同节点名称个数slct,j,k,用关键字keyt路径约束整数数组arrayt,j,k的长度,对相同节点名称个数进行归一化,
SLCt,j,k=slct,j,k/|arrayt,j,k|
称SLCt,j,k为关键字keyt在文档dj中第k次匹配的相同节点名称个数因子,该数值介于0和1之间。相同节点名称个数越多,相同节点名称个数因子越大,路径约束的相似性应该越强。
第3.2.1.2.2.2、计算未匹配节点名称个数因子
定义7:对于关键字keyt在文档dj中第k次匹配,计算目标子路径约束整数数组TParrayt,j,k中没有匹配关键字keyt路径约束整数数组arrayt,j,k整数的个数,将该个数称为关键字keyt在文档dj中第k次匹配的未匹配节点名称个数ulct,j,k,用目标子路径约束整数数组TParrayt,j,k长度对未匹配节点名称个数ulct,j,k进行归一化,
ULCt,j,k=ulct,j,k/|TParrayt,j,k|
称ULCt,j,k为关键字keyt在文档dj中第k次匹配的未匹配节点名称个数因子,该数值介于0和1之间。在目标子路径约束中包含的不匹配节点名称个数越少,不匹配节点名称个数因子越小,路径约束的相似性应该越强。
第3.2.1.2.2.3、计算相同N-Gram项个数因子
从目标子路径约束和关键字路径约束分别提取出N-Gram信息项,具体步骤如下:
对于关键字keyt在文档dj中第k次匹配,
①、取|TParrayt,j,k|和|arrayt,j,k|中较小者作为N-Gram信息项的最大长度M;
②、为目标子路径约束TPt,j,k和关键字keyt路径约束序列patht建立两个整数数组TPngramarrayt,j,k和ngramarrayt,j,k用于存储两个约束的n-gram(n=1,2,...,M)信息项,长度分别为∑n=1 M(|TPSarrayt,j,k|-n+1)和∑n=1 M(|arrayt,j,k|-n+1);
③、设l为关键字keyt路径约束patht和该次匹配的目标子路径约束TPt,j,k中出现的不同节点名称的数量,令权值K=l+1;
④、提取关键字keyt路径约束整数数组arrayt,j,k的N-gram信息项数组,依次将信息项长度n设为1,2,...,M,分别提取1-gram项数组、2-gram项数组、......、M-gram项数组,其中n-gram信息项数组共有|arrayt,j,k|-n+1项,将n-gram信息项数组第s项存入数组ngramarrayt,j,k[(2|arrayt,j,k|×n+3n-n2-2|arrayt,j,k|-2)/2+s],n-gram信息项数组第s项定义为:
n-gramitems=arrayt,j,k[s]×Kn-1+arrayt,j,k[s+1]×Kn-2+...+arrayt,j,k[s+n-1]×K0
其中,n=1,2,...,M,s=1,...,|arrayt,j,k|-n+1,引入权值K是为了保证各个n-gram信息项的唯一性,即当i≠j时,i-gram数组和j-gram数组中不存在相同整数的信息项;
⑤、将目标子路径约束TPt,j,k对应的整数数组TParrayt,j,k也按以上第④步相同方法提取n-gram(n=1,2,...,M)信息项依次存入数组TPngramarrayt,j,k;
定义8:相同N-gram项个数,对于关键字keyt在文档dj中第k次匹配,计算关键字keyt路径约束N-Gram信息项数组ngramarrayt,j,k的整数,在目标子路径约束TPt,j,k的N-Gram信息项数组TPngramarrayt,j,k中出现的个数,将该个数称为关键字keyt在文档dj中第k次匹配的相同N-gram项个数snct,j,k,用arrayt,j,k数组的N-gram信息项总数|arrayt,j,k|×(|arrayt,j,k|+1)/2,对相同N-gram项个数进行归一化,
称SNCt,j,k为关键字keyt在文档dj中第k次匹配的相同N-gram项个数因子,该数值介于0和1之间。在目标子路径约束TPt,j,k中出现的关键字keyt路径约束序列patht相连节点名称越长,相连节点名称个数越多,且匹配顺序越一致,也就是N-gram项个数因子越大,路径约束的相似性应该越强。
第3.2.1.2.3、计算路径约束相似度
定义9:将关键字keyt在文档dj中第k次匹配的路径约束同关键字keyt对应的路径约束相似度定义为:
pcst,j,k=α+βDMLt,j,k+γSNIt,j,k-δULCt,j,k
其中,α,β,γ,δ是路径约束相似度不同因子权重的参数,β,γ,δ分别是匹配的相同节点名称数因子、相同N-gram项个数因子和未匹配节点名称个数因子权重的参数,而α是匹配关键字的基础分数参数,要求α+β+γ=1且α>δ,从而保证pcst,j,k∈(0,1],且当目标子路径约束和关键字路径约束完全匹配情况下,相似度为1;
当目标子路径约束长度|TPt,j,k|为0或关键字keyt路径约束长度|patht|为0时,该次匹配相似度为α。
6.根据权利要求3所述的方法,其特征在于第3.2.1.3步所述的根据关键字在文档中每次匹配的路径约束相似度计算关键字标引词修正频率的定义如下:
定义10:关键字标引词修正频率,关键字标引词termi同用户查询关键字keyt匹配,将关键字keyt在文档dj中每次出现的路径约束相似度之和作为标引词termi在文档dj中的修正频率,则标引词termi在文档dj中的修正频率定义为:
其中,tfi,j表示关键字keyt也就是termi在文档dj中出现的次数;pst,j,k表示关键字keyt在文档dj中第k次出现时该关键字所在结点路径约束同用户查询中匹配关键字keyt的路径约束相似度,pcst,j,k∈(0,1]。
7.根据权利要求3所述的方法,其特征在于第3.2.2步所述的每个相关文档中各个非关键字标引词的修正频率定义如下:
定义11:非关键字标引词修正频率,非关键字标引词termi未与用户查询任何关键字匹配,将非关键字标引词termi在文档dj中的修正频率定义为:
rtfi,j=α×tfi,j
其中,tfi,j表示标引词termi在文档dj中出现的次数,α值与定义9中α值相同。
8.根据权利要求1所述的方法,其特征在于第3.3步所述的计算每个相关文档中各个标引词的权重的方法定义如下:
定义12:文档标引词权重,将标引词在某文档中的权重定义为该标引词在该篇文档中的修正频率和该标引词逆文档频率的乘积,用标引词修正频率来体现标引词对文档的重要程度,用标引词逆文档频率体现标引词区分文档的能力,则标引词termi在文档dj中的权值wi,j具体定义为:
其中,rtfi,j表示标引词termi在文档dj中出现的修正频率,idfi表示标引词termi的逆文档频率,仍使用公式idfi=log(N/ni)计算,其中,N表示系统中的文档总数,ni表示系统中含有标引词termi的文档数目。
9.根据权利要求1所述的方法,其特征在于第3.4步所述的计算每个相关文档同查询的相关度的方法定义如下:
定义13:文档和查询相关度,检索系统中共有L个标引词,将检索系统中的所有文档和用户查询都用L维向量来表示,检索系统中的文档dj向量可以表示为dj=(w1,j,w2,j,...,wL,j),其中wi,j(i=1,2,...,L)是标引词termi在文档dj中的权值,wi,j≥0;而用户查询向量可以表示为q=(w1,q,w2,q,...,wL,q),其中wi,q(i=1,2,...,L)是标引词termi在查询中的权值,wi,q≥0;文档dj和用户查询的相关度可以用向量dj和向量q之间夹角余弦值来计算,如下定义:
其中,|dj|和|q|分别是文档向量dj和查询向量q的模。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101603313A CN101807211B (zh) | 2010-04-30 | 2010-04-30 | 一种面向海量小规模xml文档融合路径约束的xml检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101603313A CN101807211B (zh) | 2010-04-30 | 2010-04-30 | 一种面向海量小规模xml文档融合路径约束的xml检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101807211A true CN101807211A (zh) | 2010-08-18 |
CN101807211B CN101807211B (zh) | 2012-07-25 |
Family
ID=42609003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101603313A Expired - Fee Related CN101807211B (zh) | 2010-04-30 | 2010-04-30 | 一种面向海量小规模xml文档融合路径约束的xml检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101807211B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033867A (zh) * | 2010-12-14 | 2011-04-27 | 西北工业大学 | 用于xml文档分类的语义相似度度量方法 |
CN102760173A (zh) * | 2012-07-02 | 2012-10-31 | 河海大学 | 一种自下而上的xml分支模式匹配方法 |
CN102760166A (zh) * | 2012-06-12 | 2012-10-31 | 上海方正数字出版技术有限公司 | 一种支持多语言的xml数据库全文检索方法 |
CN103020167A (zh) * | 2012-11-26 | 2013-04-03 | 南京大学 | 一种计算机中文文本分类方法 |
WO2014206350A1 (en) * | 2013-06-28 | 2014-12-31 | Orcastras Technology International Co., Ltd. | Method and computer system for searching intended path |
CN106547817A (zh) * | 2016-09-28 | 2017-03-29 | 昆明理工大学 | 一种针对环境法律法规的查询方法 |
WO2017096777A1 (zh) * | 2015-12-07 | 2017-06-15 | 百度在线网络技术(北京)有限公司 | 文献归一方法、文献搜索方法及对应装置、设备和存储介质 |
CN107085595A (zh) * | 2017-03-23 | 2017-08-22 | 国网浙江省电力公司信息通信分公司 | 一种电力行业非结构化元数据关联方法及系统 |
CN107577799A (zh) * | 2017-09-21 | 2018-01-12 | 合肥集知网知识产权运营有限公司 | 一种基于潜在语义检索模型的大数据专利检索方法 |
CN108431798A (zh) * | 2015-11-16 | 2018-08-21 | 布尔简易股份公司 | 生成消息表格的方法 |
CN108475320A (zh) * | 2015-11-24 | 2018-08-31 | 谷歌有限责任公司 | 在搜索查询当中识别查询模式及相关联的聚合统计 |
CN109408578A (zh) * | 2018-10-30 | 2019-03-01 | 环境保护部华南环境科学研究所 | 一种针对异构环境监测数据融合方法 |
CN111967252A (zh) * | 2020-08-29 | 2020-11-20 | 深圳呗佬智能有限公司 | 一种实体词表示学习方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101000A1 (en) * | 2004-11-05 | 2006-05-11 | Hacigumus Vahit H | Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system |
CN1904896A (zh) * | 2005-07-28 | 2007-01-31 | 株式会社东芝 | 结构化文档处理装置、搜索装置及结构化文档系统和方法 |
-
2010
- 2010-04-30 CN CN2010101603313A patent/CN101807211B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101000A1 (en) * | 2004-11-05 | 2006-05-11 | Hacigumus Vahit H | Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system |
CN1904896A (zh) * | 2005-07-28 | 2007-01-31 | 株式会社东芝 | 结构化文档处理装置、搜索装置及结构化文档系统和方法 |
Non-Patent Citations (1)
Title |
---|
《计算机应用研究》 20070831 于红等 基于复杂模式索引的XML查询优化 第100-105,108页 1-9 第24卷, 第8期 2 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033867B (zh) * | 2010-12-14 | 2012-07-25 | 西北工业大学 | 用于xml文档分类的语义相似度度量方法 |
CN102033867A (zh) * | 2010-12-14 | 2011-04-27 | 西北工业大学 | 用于xml文档分类的语义相似度度量方法 |
CN102760166A (zh) * | 2012-06-12 | 2012-10-31 | 上海方正数字出版技术有限公司 | 一种支持多语言的xml数据库全文检索方法 |
CN102760166B (zh) * | 2012-06-12 | 2014-07-09 | 北大方正集团有限公司 | 一种支持多语言的xml数据库全文检索方法 |
CN102760173A (zh) * | 2012-07-02 | 2012-10-31 | 河海大学 | 一种自下而上的xml分支模式匹配方法 |
CN102760173B (zh) * | 2012-07-02 | 2015-04-08 | 河海大学 | 一种自下而上的xml分支模式匹配方法 |
CN103020167A (zh) * | 2012-11-26 | 2013-04-03 | 南京大学 | 一种计算机中文文本分类方法 |
CN103020167B (zh) * | 2012-11-26 | 2016-09-28 | 南京大学 | 一种计算机中文文本分类方法 |
WO2014206350A1 (en) * | 2013-06-28 | 2014-12-31 | Orcastras Technology International Co., Ltd. | Method and computer system for searching intended path |
US20150006514A1 (en) * | 2013-06-28 | 2015-01-01 | Jiun Hung | Method and Computer System for Searching Intended Path |
CN108431798A (zh) * | 2015-11-16 | 2018-08-21 | 布尔简易股份公司 | 生成消息表格的方法 |
CN108475320A (zh) * | 2015-11-24 | 2018-08-31 | 谷歌有限责任公司 | 在搜索查询当中识别查询模式及相关联的聚合统计 |
WO2017096777A1 (zh) * | 2015-12-07 | 2017-06-15 | 百度在线网络技术(北京)有限公司 | 文献归一方法、文献搜索方法及对应装置、设备和存储介质 |
CN106547817A (zh) * | 2016-09-28 | 2017-03-29 | 昆明理工大学 | 一种针对环境法律法规的查询方法 |
CN106547817B (zh) * | 2016-09-28 | 2019-11-08 | 昆明理工大学 | 一种针对环境法律法规的查询方法 |
CN107085595A (zh) * | 2017-03-23 | 2017-08-22 | 国网浙江省电力公司信息通信分公司 | 一种电力行业非结构化元数据关联方法及系统 |
CN107085595B (zh) * | 2017-03-23 | 2023-07-14 | 国网浙江省电力公司信息通信分公司 | 一种电力行业非结构化元数据关联方法及系统 |
CN107577799A (zh) * | 2017-09-21 | 2018-01-12 | 合肥集知网知识产权运营有限公司 | 一种基于潜在语义检索模型的大数据专利检索方法 |
CN109408578A (zh) * | 2018-10-30 | 2019-03-01 | 环境保护部华南环境科学研究所 | 一种针对异构环境监测数据融合方法 |
CN109408578B (zh) * | 2018-10-30 | 2020-07-31 | 环境保护部华南环境科学研究所 | 一种针对异构环境监测数据融合方法 |
CN111967252A (zh) * | 2020-08-29 | 2020-11-20 | 深圳呗佬智能有限公司 | 一种实体词表示学习方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101807211B (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101807211B (zh) | 一种面向海量小规模xml文档融合路径约束的xml检索方法 | |
CN112307218B (zh) | 基于知识图谱的智能电厂典型设备故障诊断知识库构建方法 | |
US20220121695A1 (en) | Knowledge graph-based case retrieval method, device and equipment, and storage medium | |
CN108710663B (zh) | 一种基于本体模型的数据匹配方法及系统 | |
CN107122413B (zh) | 一种基于图模型的关键词提取方法及装置 | |
CN106970910B (zh) | 一种基于图模型的关键词提取方法及装置 | |
CN101430695B (zh) | 用于计算单词之间的差相关度的系统和方法 | |
CN111522910B (zh) | 一种基于文物知识图谱的智能语义检索方法 | |
CN103049569A (zh) | 基于向量空间模型的文本相似性匹配方法 | |
CN101582073A (zh) | 一种基于领域本体的智能检索系统及方法 | |
CN113239148B (zh) | 基于机器阅读理解的科技资源检索方法 | |
CN100535895C (zh) | 文本检索装置及方法 | |
CN101382962B (zh) | 一种考虑概念抽象度的浅层分析自动文档综述方法 | |
CN102156728B (zh) | 一种改进的基于用户兴趣模型的个性化摘要系统 | |
CN103646099A (zh) | 一种基于多层图的论文推荐方法 | |
CN113673252B (zh) | 一种基于字段语义的数据表自动join推荐方法 | |
CN114090861A (zh) | 一种基于知识图谱的教育领域搜索引擎构建方法 | |
CN114048305A (zh) | 一种基于图卷积神经网络的行政处罚文书的类案推荐方法 | |
CN115269865A (zh) | 一种面向辅助诊断的知识图谱构建方法 | |
CN106294733A (zh) | 基于文本分析的网页检测方法 | |
Kim et al. | An optimization approach for semantic-based XML schema matching | |
CN110717014B (zh) | 一种本体知识库动态构建方法 | |
CN106294295A (zh) | 基于词频的文章相似度识别方法 | |
CN114580557A (zh) | 基于语义分析的文献相似度确定方法及装置 | |
CN111062218A (zh) | 一种结合依存关系与同义词词林的语义相似度计算方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120725 Termination date: 20140430 |