一种xml数据库全文检索的文本相关度计算方法和系统的制作方法

文档序号:6374103阅读:201来源:国知局
专利名称:一种xml数据库全文检索的文本相关度计算方法和系统的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种XML数据库全文检索的文本相关度计算方法和系统。
背景技术
随着现代信息产业的不断深入发展,对于信息的集成和共享的需求也变得日益迫切。XML(全称Extensible Markup Language),是一种专门为internet而设计的一种标记语言。XML的重点不在于数据的形式本身,而在于管理数据信息,因此,XML使得不同数据库模式的统一成为可能,为异构数据库的集成问题提供了途径。因此,XML在近几年得到了发 展和广泛的应用。XML数据库管理系统(XMLDBMS)也是近年来发展迅速的一种新型的数据库管理系统,它以存储和检索符合W3C标准的XML文文件数据为目标的数据库管理系统,并且可以更新XML文档。由于它存储的对象是XML文档,因此XMLDBMS本质上就是一种XML文档库。随着XML相关技术的深入研究,XML查询已经具备了坚实的技术基础在此基础上,W3CWorldWideWebConsortium于2001年12月提出了 XML查询语言规范工作草案-XQuery语言,迄今为止,XQuery语言一直在不断的发展中。XML数据的检索和更新语言是由W3C制定的标准的XQuery和XQuery Update。XQuery系列语言基于序列数据模型(XDM),即XQuery中任意资料都是一个序列,序列由若干个有序的项目(item)的组成;一个item是一个原子值或者一个XDM节点,一个XDM节点是XML文档的7种节点之一。基于这样的数据模型,最自然和高效的XML数据存储方案就是把XML文档存储为节点。XQuery的FLOWR语句类似于SQL的select/from/where/orderby,是遍历节点并且返回查询结果的方式,FLOWR语句依次处理一个序列中的每个item,这些被处理的item成为context item。XQuery Fulltext查询表达式以” contains text”开头并且其返回结果是一个布尔值,所以它总是作为谓词表达式来使用。计算中,用户可以为每一个查询文本指定权重(weight),用于相关度数值的计算。在XQuery中,相关度是一个score关键词定义的浮点数类型的变量,score只可以出现在FLOWR语句的For和Let子句中。虽然Fulltext查询表达式可以作为谓词表达式出现在任何xpath/xquery查询/更新语句中,但是这些语句中除了 for和let子句外都不可以定义score变量;每个for子句中只允许定义一个score变量,但是允许在其查询表达式中有任意多个fulltext查询表达式作为谓词,但是每一个context item只有一个score值,无论有多少个fulltext查询表达式;可以使用Let子句定义多个score变量,每一个变量都使用一个特定的查询表达式来计算相关度。相关度变量值可以在FLOWR的where子句中用于过滤context item,也可以用在return子句中作为查询结果的一部分。XQuery Fulltext标准对相关度计算的要求非常宽泛,除了要求score (即相关度)变量值位于
区间内并且较大的值代表较大的相关度之外,其余都由不同的系统自定义实现。相关度计算是全文检索的重要需求,正确合理地计算相关度可以让用户按照相关度对查询结果排序,以便优先处理和利用最相关的信息。

发明内容
为解决上述问题,本发明技术方案提供了一种XML数据库全文检索的文本相关度计算方法,包括计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中; 获取所述内节点的所有子节点的相关度和权重值;根据所获取的所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度。可选地,所述叶节点的相关度根据下述的公式计算得到S=M/N ;其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到的单词的总数。可选地,所述的叶节点和所述内节点的其他的所有子节点的权重值由用户自定义得到。可选地,所述的根据所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度Stl具体为,利用下述的公式计算So=Z^-Si * Wl其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为sl, s2…sn和wl, w2, ---wn, si、wi分别表示所述内节点的第i个子节点的相关度和
权重值。可选地,为保证所述内节点的相关度Stl位于区间
之内,运用下列的公式对所述内节点的相关度Stl作进一步运算S0=H ^ / (max(wi) * XJl* Si );其中,max(wi)表示所述内节点的所有子节点的权重的最大值。可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则则通过求均值计算出所述内节点的相关度可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则将所述内节点的相关度Stl设置为零。本发明还提供了一种XML数据库全文检索的文本相关度计算系统,包括子节点计算单元10,用于计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;存储单20,用于将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;获取单元30,用于获取所述内节点的所有子节点的相关度和权重值;内节点计算单元40,根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。可选地,所述的子节点计算单元进一步包括一叶节点计算单元,所述叶节点计算单元利用下述的公式计算所述叶节点的相关度S S=M/N ;其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到的单词的总数。可选地,所述的叶节点和所述内节点的其他的所有子节点的的权重值W由用户自定义得到。可选地,所述的内节点计算单元40利用下述的公式计算所述内节点的相关度S。
S0=Zf-I SI *- Wl其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为sl, s2…sn和wl, w2, ---wn, si、wi分别表示所述内节点的第i个子节点的相关度和
权重值。可选地,还进一步包括一修正单元40a,所述的修正单元利用40a下述的公式计算所述内节点的相关度Stl,已将所述内节点的相关度Stl限定于区间
之内
_6] S0= Zf=:( max(wi) *Si);其中,max(wi)表示所述内节点的所有子节点的权重的最大值。可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则所述内节点计算单元40将通过求均值计算出所述内节点的相关度可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则所述内节点计算单元40将所述内节点的相关度Stl设置为零。与现有技术相比,上述技术方案具有下优点本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计算方法简单、高效,计算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的合理性,能够反映出用户的查询意图,并且满足XQuery Fulltext对score变量的约束,方便实用。


图I是现有技术中的数据库全文检索查询条件的示意图;图2是本发明实施方式的XML数据库全文检索的文本相关度计算方法的流程图;图3是本发明实施方式的XML数据库全文检索的文本相关度计算系统的组成结构框架示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式
做详细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式
的限制。
参阅图1,图I示出了现有技术中的数据库全文检索条件示意图。本技术领域的技术人员知道,全文检索条件总是递归的。图I中的节点树有任意深度,假设深度是L,根节点为ftcontains,而内节点是某种类型的ftselection,叶节点总是ftwords, ftwords也是一种ftselectionll节点。每层节点按照层数和层内下标为编号,ftselectionll就是第一层的第一个节点。图I中的Wij表示对应的FTSelectionij节点的权重,这个权重Wi j也是这个FTSelection节点的属性,其余相关度都会在执行查询节点时被计算出来,以供上一层的FTSelection或者FTContains节点计算相关度时使用。........·在一个XQuery Fulltext查询语法树中,叶节点总是FTWords (FTWords也是一种特殊的FTSelection),内节点总是FTSelection,内节点可以有任意多层,根节点总是FTContains。FTSelection是若干种具体的查询节点的基类,它们是由FTWords或者FTSelection 经过 ftand, for, ftnot, ftnotin 运算符组合而成的。例如,对于 containstext ( “abc”for “xyz”)ftand “def”这样一个条件,其中的“abc”,“xyz” 和“def ” 都是FTffords,并且“abc”与“xyz”经由ftor运算符构成一个FTSelection查询节点,这个查询节点又和” def”这个FTWords经由ftand运算符构成了一个FTSelection查询节点,而这个FTSelection又是contains text查询表达式(即FTContains)的子节点。为解决现有技术中的问题,本发明的发明人经过研究,提出了一种本发明实施方式的XML数据库全文检索的文本相关度计算方法。参阅图2,图2是本发明实施方式的XML数据库全文检索的文本相关度计算方法的流程图。本发明实施方式的XML数据库全文检索的文本相关度计算方法,包括SI :计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;其中,在XQuery Fulltext查询语法树中,所述叶节点的相关度通过下述的公式计算S=M/N ;其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到的单词的总数。所有内节点的子节点的权重值默认为I. 0,且用户可以根据实际的需要进行定义。S:2 :将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;由于,每个子节点分别具有自己的相关度值和权重值,因此,这两个数组必然含有相同数目的元素。(有两个数组,一个数组中存放所有子节点的相关度值,一个数组组中存放所有子节点的权重值,而每个子节点都有一个相关度值和一个权重值,因此,两个数组中包含的元素的数目相同)。S3 :获取所述内节点的所有子节点的相关度和权重值;S4:根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。其中,在本步骤中,所述的根据所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度Stl具体为,利用下述的公式计算So=IJi:si * Wl其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为Si, s2…Sn和wl, w2, . . . wn, si、wi分别表示所述内节点的第i个子节点的相关度
和权重值。由于在计算任何一个内节点的相关度时,首先获取它的所有子节点(也是FTSelection对象)的相关度和权重值,且计算过程是从XQuery Fulltext查询语法树的叶节点向上计算的,因此,在计算任何一个内节点的相关度时,内节点的所有子节点的相关度和权重值都已经计算好并且分别存在两个数组中,且两个数组必然含有相同数目的元素。同时,由于,XQuery Fulltext标准中对相关度计算要求相关度值位于
区间之内,因此,为了满足上述的标准,则本发明中进一步采用下述的公式计算内节点的相关度,即
S0=' Wi/ (max(wi) *11);其中,max(wi)表示所述内节点的所有子节点的权重的最大值。上述的公式对于是一般情况下计算内节点相关度的方法,但是,对一些奇异情况则无法进行合理的计算,包括(I)所有的权重值都相等;(2)只有一个子节点相关度非0 ;
(3)所有的子节点相关度都是0 ; (4)最大的权重值为0 ;在(I)和(2)两种情况下,上述的公式计算出的相关度总是I ;在(3)和(4)两种情况下,会出现分母为0的错误。为了解决上述四种奇异情况,需要在(I)和(2)两种情况下,简单地求均值得到相关度;在(3)和(4)两种情况下,则直接将内节点的相关度Stl设置为O。参阅图3,本发明还提供了一种XML数据库全文检索的文本相关度计算系统,包括子节点计算单元,用于计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;存储单元,用于将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;获取单元,用于获取所述内节点的所有子节点的相关度和权重值;内节点计算单元,根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。可选地,所述的子节点计算单元进一步包括一叶节点计算单元,所述叶节点计算单元利用下述的公式计算所述叶节点的相关度S S=M/N ;其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到单词的总数。可选地,所述的叶节点和所述内节点的其他的所有子节点的的权重值W的默认值为I. 0,并且可以根据实际的需要由用户自定义。可选地,所述的内节点计算单元利用下述的公式计算所述内节点的相关度Sci q Si \ri
Oo —釀画其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为sl, s2…sn和wl, w2, ---wn, si、wi分别表示所述内节点的第i个子节点的相关度和权重值。可选地,还进一步包括一修正单元,所述的修正单元利用下述的公式计算所述内节点的相关度S。,已将所述内节点的相关度Stl限定于区间
之内S0=15I ( max(wi) *其中,max(wi)表示所述内节点的所有子节点的权重的最大值。可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则所述内节点计算单元将通过求均值计算出所述内节点的相关度
可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则所述内节点计算单元将所述内节点的相关度Stl设置为零。综上所述,本发明技术方案具有下优点本发明的方法基于这样一种常识如果一个单词出现的次数越多,它对其所处的文本来说,相关度越大,但是这种出现次数是相对于被检索的字符串的单词数目的。比如在三个单词中出现一次应该比在三百个单词中出现两次的相对出现数目更大,也就是相关度更大。同时,当有多个相关度数值时,需要使用其权重计算出最终的相关度。本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计算方法简单、高效,计算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的合理性,能够反映出用户的查询意图,并且满足XQuery Fulltext对score变量的约束,方便实用。应当理解的是这里所描述的方法和系统可以以各种形式的硬件、软件、固件、专用处理机或者它们的组合实现。尤其是,至少本发明的一部分包括程序指令的应用程序优选实现。这些程序指令被确实地包括在一个或者多个程序存储设备(包括但不限于硬盘,磁性软盘,RAM, ROM, CD,ROM等)里,并且可由任何包括适当结构的设备或者机器,例如一种具有处理器、内存和输入/输出接口的通用数字计算机执行。还应当理解由于附图中描述的一些系统的组成部件和处理步骤优选地以软件实现,所以,系统模块(或者方法步骤的逻辑流程)之间的连接可能不同,这取决于本发明的程序设计方式。根据这里给出的指导,相关领域的普通技术人员将能够设计出本发明的这些以及类似的实施方式。以上公开了本发明的多个方面和实施方式,本领域的技术人员会明白本发明的其它方面和实施方式。本发明中公开的多个方面和实施方式只是用于举例说明,并非是对本发明的限定,本发明的真正保护范围和精神应当以权利要求书为准。
权利要求
1.一种XML数据库全文检索的文本相关度计算方法,其特征在于,包括 计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值; 将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中; 获取所述内节点的所有子节点的相关度和权重值; 根据所获取的所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度。
2.如权利要求I所述的XML数据库全文检索的文本相关度计算方法,其特征在于,所述叶节点的相关度根据下述的公式计算得到S=M/N ; 其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到的单词的总数。
3.如权利要求I所述的XML数据库全文检索的文本相关度计算方法,其特征在于,所述的叶节点和所述内节点的其他的所有子节点的权重值由用户自定义。
4.如权利要求I所述的XML数据库全文检索的文本相关度计算方法,其特征在于,所述的根据所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度Stl具体为,利用下述的公式计算q _Z-- si - wi. 其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为Si, s2…Sn和wl, w2, ---wn, si、wi分别表示所述内节点的第i个子节点的相关度和权重值。
5.如权利要求4所述的XML数据库全文检索的文本相关度计算方法,其特征在于,为保证所述内节点的相关度Stl位于区间
之内,运用下列的公式对所述内节点的相关度Stl作进一步运算 S0=M i / (max(wi) * Xll; Si )。
6.如权利要求I所述的XML数据库全文检索的文本相关度计算方法,其特征在于,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则通过求均值计算出所述内节点的相关度
7.如权利要求I所述的XML数据库全文检索的文本相关度计算方法,其特征在于,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则将所述内节点的相关度Stl设置为零。
8.—种XML数据库全文检索的文本相关度计算系统,其特征在于,包括 子节点计算单元,用于计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值; 存储单元,用于将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中; 获取单元,用于获取所述内节点的所有子节点的相关度和权重值; 内节点计算单元,根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。
9.如权利要求8所述的XML数据库全文检索的文本相关度计算系统,其特征在于,所述的子节点计算单元进一步包括一叶节点计算单元,所述叶节点计算单元利用下述的公式计算所述叶节点的相关度S S=M/N ; 其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次数,N为将所述被检索的文本字符串分词后得到的单词的总数。
10.如权利要求8所述的XML数据库全文检索的文本相关度计算系统,其特征在于,所述的叶节点和所述内节点的其他的所有子节点的的权重值W由用户自定义。
11.如权利要求8所述的XML数据库全文检索的文本相关度计算系统,其特征在于,所述的内节点计算单元利用下述的公式计算所述内节点的相关度Stl
12.如权利要求8所述的XML数据库全文检索的文本相关度计算系统,其特征在于,还进一步包括一修正单元,所述的修正单元利用下述的公式计算所述内节点的相关度Sci,已将所述内节点的相关度Stl限定于区间
之内
13.如权利要求8所述的XML数据库全文检索的文本相关度计算系统,其特征在于,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则所述内节点计算单元将通过求均值计算出所述内节点的相关度
14.如权利要求8所述的XML数据库全文检索的文本相关度计算方法,其特征在于,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则所述内节点计算单元将所述内节点的相关度Stl设置为零。
全文摘要
本发明提供一种XML数据库全文检索的文本相关度计算方法和系统包括计算包括XQueryFulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;获取所述内节点的所有子节点的相关度和权重值;根据所获取的所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度。本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计算方法简单、高效,计算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的合理性,能够反映出用户的查询意图,并且满足XQueryFulltext对score变量的约束。
文档编号G06F17/30GK102799685SQ20121026501
公开日2012年11月28日 申请日期2012年7月27日 优先权日2012年7月27日
发明者赵伟, 郑程光, 孙伟丰, 罗正海, 李泉, 李 浩, 李书淦, 程仁波 申请人:上海方正数字出版技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1