首页> 中国专利> 一种XML数据库全文检索的文本相关度计算方法和系统

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

摘要

本发明提供一种XML数据库全文检索的文本相关度计算方法和系统包括:计算包括XQueryFulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;获取所述内节点的所有子节点的相关度和权重值;根据所获取的所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度。本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计算方法简单、高效,计算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的合理性,能够反映出用户的查询意图,并且满足XQueryFulltext对score变量的约束。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-17

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20160601 终止日期:20170727 申请日:20120727

    专利权的终止

  • 2016-06-01

    授权

    授权

  • 2013-10-09

    专利申请权的转移 IPC(主分类):G06F17/30 变更前: 变更后: 登记生效日:20130912 申请日:20120727

    专利申请权、专利权的转移

  • 2013-02-20

    专利申请权的转移 IPC(主分类):G06F17/30 变更前: 变更后: 登记生效日:20130117 申请日:20120727

    专利申请权、专利权的转移

  • 2013-01-16

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120727

    实质审查的生效

  • 2012-11-28

    公开

    公开

查看全部

说明书

技术领域

本发明涉及计算机技术领域,特别涉及一种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 (即相关度)变量值位于[0,1]区间内并且较大的值代表较大的相关度之外,其余都由不同的系统自定义实 现。

相关度计算是全文检索的重要需求,正确合理地计算相关度可以让用户按照相关度对查询结果排序, 以便优先处理和利用最相关的信息。

发明内容

为解决上述问题,本发明技术方案提供了一种XML数据库全文检索的文本相关度计算方法,包括:

计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;

将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;

获取所述内节点的所有子节点的相关度和权重值;

根据所获取的所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度。

可选地,所述叶节点的相关度根据下述的公式计算得到:

S=M/N;

其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次 数,N为将所述被检索的文本字符串分词后得到的单词的总数。

可选地,所述的叶节点和所述内节点的其他的所有子节点的权重值由用户自定义得到。

可选地,所述的根据所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度S0具体为, 利用下述的公式计算:

S0=Σi=1Nsi*wi

其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为s1,s2…sn和 w1,w2,…wn,si、wi分别表示所述内节点的第i个子节点的相关度和权重值。

可选地,为保证所述内节点的相关度S0位于区间[0,1]之内,运用下列的公式对所述内节点的相关度 S0作进一步运算:

S0=Σi=1Nsi*wi/(max(wi)*Σi=1Nsi);

其中,max(wi)表示所述内节点的所有子节点的权重的最大值。

可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则则通 过求均值计算出所述内节点的相关度S0

可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则将所述内节点的相关 度S0设置为零。

本发明还提供了一种XML数据库全文检索的文本相关度计算系统,包括:

子节点计算单元10,用于计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点 的相关度和权重值;

存储单20,用于将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;

获取单元30,用于获取所述内节点的所有子节点的相关度和权重值;

内节点计算单元40,根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关 度。

可选地,所述的子节点计算单元进一步包括一叶节点计算单元,所述叶节点计算单元利用下述的公式 计算所述叶节点的相关度S:

S=M/N;

其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次 数,N为将所述被检索的文本字符串分词后得到的单词的总数。

可选地,所述的叶节点和所述内节点的其他的所有子节点的的权重值W由用户自定义得到。

可选地,所述的内节点计算单元40利用下述的公式计算所述内节点的相关度S0

S0=Σi=1Nsi*wi

其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为s1,s2…sn和 w1,w2,…wn,si、wi分别表示所述内节点的第i个子节点的相关度和权重值。

可选地,还进一步包括一修正单元40a,所述的修正单元利用40a下述的公式计算所述内节点的相关 度S0,已将所述内节点的相关度S0限定于区间[0,1]之内:

S0=Σi=1Nsi*wi/(max(wi)*Σi=1Nsi);

其中,max(wi)表示所述内节点的所有子节点的权重的最大值。

可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则所述 内节点计算单元40将通过求均值计算出所述内节点的相关度S0

可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则所述内节点计算单元 40将所述内节点的相关度S0设置为零。

与现有技术相比,上述技术方案具有下优点:

本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计算方法简单、高效,计 算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的合理性,能够反映出用 户的查询意图,并且满足XQuery Fulltext对score变量的约束,方便实用。

附图说明

图1是现有技术中的数据库全文检索查询条件的示意图;

图2是本发明实施方式的XML数据库全文检索的文本相关度计算方法的流程图;

图3是本发明实施方式的XML数据库全文检索的文本相关度计算系统的组成结构框架示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详 细的说明。在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述 的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面 公开的具体实施方式的限制。

参阅图1,图1示出了现有技术中的数据库全文检索条件示意图。本技术领域的技术人员知道,全文 检索条件总是递归的。图1中的节点树有任意深度,假设深度是L,根节点为ftcontains,而内节点是某种 类型的ftselection,叶节点总是ftwords,ftwords也是一种ftselection11节点。每层节点按照层数和层内下标 为编号,ftselectionll就是第一层的第一个节点。图1中的Wij表示对应的FTSelectionij节点的权重,这个 权重Wij也是这个FTSelection节点的属性,其余相关度都会在执行查询节点时被计算出来,以供上一层的 FTSelection或者FTContains节点计算相关度时使用。........

在一个XQuery Fulltext查询语法树中,叶节点总是FTWords(FTWords也是一种特殊的FTSelection), 内节点总是FTSelection,内节点可以有任意多层,根节点总是FTContains。FTSelection是若干种具体的查 询节点的基类,它们是由FTWords或者FTSelection经过ftand,for,ftnot,ftnotin运算符组合而成的。 例如,对于contains text(“abc”for“xyz”)ftand“def”这样一个条件,其中的“abc”,“xyz”和“def”都是 FTWords,并且“abc”与“xyz”经由ftor运算符构成一个FTSelection查询节点,这个查询节点又和”def”这个 FTWords经由ftand运算符构成了一个FTSelection查询节点,而这个FTSelection又是contains text查询表 达式(即FTContains)的子节点。

为解决现有技术中的问题,本发明的发明人经过研究,提出了一种本发明实施方式的XML数据库全 文检索的文本相关度计算方法。参阅图2,图2是本发明实施方式的XML数据库全文检索的文本相关度 计算方法的流程图。本发明实施方式的XML数据库全文检索的文本相关度计算方法,包括:

S1:计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的相关度和权重值;

其中,在XQuery Fulltext查询语法树中,所述叶节点的相关度通过下述的公式计算:

S=M/N;

其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次 数,N为将所述被检索的文本字符串分词后得到的单词的总数。所有内节点的子节点的权重值默认为1.0, 且用户可以根据实际的需要进行定义。

S:2:将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;

由于,每个子节点分别具有自己的相关度值和权重值,因此,这两个数组必然含有相同数目的元素。 (有两个数组,一个数组中存放所有子节点的相关度值,一个数组组中存放所有子节点的权重值,而每个 子节点都有一个相关度值和一个权重值,因此,两个数组中包含的元素的数目相同)。

S3:获取所述内节点的所有子节点的相关度和权重值;

S4:根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。

其中,在本步骤中,所述的根据所述内节点的所有子节点的相关度和权重值计算所述内节点的相关度 S0具体为,利用下述的公式计算:

S0=Σi=1Nsi*wi

其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为s1,s2…sn和 w1,w2,...wn,si、wi分别表示所述内节点的第i个子节点的相关度和权重值。

由于在计算任何一个内节点的相关度时,首先获取它的所有子节点(也是FTSelection对象)的相关度 和权重值,且计算过程是从XQuery Fulltext查询语法树的叶节点向上计算的,因此,在计算任何一个内节 点的相关度时,内节点的所有子节点的相关度和权重值都已经计算好并且分别存在两个数组中,且两个数 组必然含有相同数目的元素。

同时,由于,XQuery Fulltext标准中对相关度计算要求相关度值位于[0,1]区间之内,因此,为了满足 上述的标准,则本发明中进一步采用下述的公式计算内节点的相关度,即:

S0=Σi=1Nsi*wi/(max(wi)*Σi=1Nsi);

其中,max(wi)表示所述内节点的所有子节点的权重的最大值。

上述的公式对于是一般情况下计算内节点相关度的方法,但是,对一些奇异情况则无法进行合理的计 算,包括:(1)所有的权重值都相等;(2)只有一个子节点相关度非0;(3)所有的子节点相关度都是0; (4)最大的权重值为0;

在(1)和(2)两种情况下,上述的公式计算出的相关度总是1;在(3)和(4)两种情况下,会出 现分母为0的错误。

为了解决上述四种奇异情况,需要在(1)和(2)两种情况下,简单地求均值得到相关度;在(3) 和(4)两种情况下,则直接将内节点的相关度S0设置为0。

参阅图3,本发明还提供了一种XML数据库全文检索的文本相关度计算系统,包括:

子节点计算单元,用于计算包括XQuery Fulltext查询语法树中的叶节点在内的所有内节点的子节点的 相关度和权重值;

存储单元,用于将所述内节点的所有子节点的相关度和权重值分别保存在两个数组中;

获取单元,用于获取所述内节点的所有子节点的相关度和权重值;

内节点计算单元,根据所获取的所述内节点的所有子节点相关度和权重值计算所述内节点的相关度。

可选地,所述的子节点计算单元进一步包括一叶节点计算单元,所述叶节点计算单元利用下述的公式 计算所述叶节点的相关度S:

S=M/N;

其中,M为查询字符串经过分词后得到的若干个目标查询单词在被检索的文本字符串中出现的总次 数,N为将所述被检索的文本字符串分词后得到单词的总数。

可选地,所述的叶节点和所述内节点的其他的所有子节点的的权重值W的默认值为1.0,并且可以 根据实际的需要由用户自定义。

可选地,所述的内节点计算单元利用下述的公式计算所述内节点的相关度S0

S0=Σi=1Nsi*wi

其中,假设所述内节点具有N个子节点,所述的每个节点有自己的相关度和权重,分别为s1,s2…sn和 w1,w2,…wn,si、wi分别表示所述内节点的第i个子节点的相关度和权重值。

可选地,还进一步包括一修正单元,所述的修正单元利用下述的公式计算所述内节点的相关度S0,已 将所述内节点的相关度S0限定于区间[0,1]之内:

S0=Σi=1Nsi*wi/(max(wi)*Σi=1Nsi);

其中,max(wi)表示所述内节点的所有子节点的权重的最大值。

可选地,若所述内节点的所有子节点的权重值都相等或者只有一个子节点的相关度值为非零,则所述 内节点计算单元将通过求均值计算出所述内节点的相关度S0

可选地,若所述内节点的所有子节点的相关度皆为零或者最大的权重值为零,则所述内节点计算单元 将所述内节点的相关度S0设置为零。

综上所述,本发明技术方案具有下优点:

本发明的方法基于这样一种常识:如果一个单词出现的次数越多,它对其所处的文本来说,相关度越 大,但是这种出现次数是相对于被检索的字符串的单词数目的。比如在三个单词中出现一次应该比在三百 个单词中出现两次的相对出现数目更大,也就是相关度更大。同时,当有多个相关度数值时,需要使用其 权重计算出最终的相关度。本发明的技术方案可以有效、合理地计算出文本检索的相关度,其所采用的计 算方法简单、高效,计算开销可以忽略不计,有效节约了资源,并且用这种方法计算的相关度具有较强的 合理性,能够反映出用户的查询意图,并且满足XQuery Fulltext对score变量的约束,方便实用。

应当理解的是这里所描述的方法和系统可以以各种形式的硬件、软件、固件、专用处理机或者它们的 组合实现。尤其是,至少本发明的一部分包括程序指令的应用程序优选实现。这些程序指令被确实地包括 在一个或者多个程序存储设备(包括但不限于硬盘,磁性软盘,RAM,ROM,CD,ROM等)里,并且 可由任何包括适当结构的设备或者机器,例如一种具有处理器、内存和输入/输出接口的通用数字计算机执 行。还应当理解由于附图中描述的一些系统的组成部件和处理步骤优选地以软件实现,所以,系统模块(或 者方法步骤的逻辑流程)之间的连接可能不同,这取决于本发明的程序设计方式。根据这里给出的指导, 相关领域的普通技术人员将能够设计出本发明的这些以及类似的实施方式。

以上公开了本发明的多个方面和实施方式,本领域的技术人员会明白本发明的其它方面和实施方式。本发 明中公开的多个方面和实施方式只是用于举例说明,并非是对本发明的限定,本发明的真正保护范围和精 神应当以权利要求书为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号