首页> 中国专利> 一种支持多语言的XML数据库全文检索方法

一种支持多语言的XML数据库全文检索方法

摘要

本发明提供了一种支持多语言的XML数据库全文检索方法。本发明的技术方案可以让XML数据库管理系统不再依赖于语言选项设置,支持在同一个文本匹配条件中使用多种语言构成的查询条件字符串进行全文检索,且被检索的XML文档内部亦可同时含有多种语言文字。本发明的技术方案对于以互联网为基础的国际化大潮下大量的多语言文本的全文检索具有更大的实用价值,因为这样的文本内容和全文检索需求会不断快速增长,限定于单一语言的全文检索无法满足这类需求,只有支持多语言全文检索的XML数据库管理系统才具有实用价值。特别是在中文用户群中该功能更加有用,可以适应当前中文文本中大量含有英文单词的现状和检索需求。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-10

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

    专利权的终止

  • 2014-07-09

    授权

    授权

  • 2013-10-09

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

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

  • 2013-02-20

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

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

  • 2012-12-12

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

    实质审查的生效

  • 2012-10-31

    公开

    公开

查看全部

说明书

技术领域

本发明涉及计算机技术领域,特别涉及一种持多语言的XML数据库全文检 索方法。

背景技术

XML(全称Extensible Markup Language),是一种专门为internet而设计的 一种标记语言,且由于其具有有效的表达各种信息、数据和使各种应用协同工 作的能力,业已成为数据发布和数据交换的事实标准,因此,XML在近几年得 到了发展和广泛的应用。XML的重点不在于数据的形式本身,而在于管理数据 信息,因此,XML使得不同数据库模式的统一成为可能,为异构数据库的集成 问题提供了途径。

XML数据库管理系统(XML数据库管理系统)是近年来快速发展的一种新 型的数据库管理系统(数据库管理系统),它存储和检索的数据是XML文档, 并且支持更新XML文档。随着XML标准被越来越多的行业采纳为数据交换标 准,XML数据的管理(包括存储、检索、更新等)需求会持续快速增长,特别 是XML数据库管理系统比关系数据库管理系统更加适合处理文本类数据和 XML文档数据。查询引擎是数据库管理系统(数据库管理系统)中的核心子系 统,由于XML是典型的半结构化数据,对XML数据的查询要求不同于传统数据 库,在查询时不仅要对数据库中的数值进行查询,而且要对XML文档的结构和 数据之间的关系进行查询。随着XML相关技术的深入研究,XML查询已经具备 了坚实的技术基础在此基础上,W3CWorldWideWebConsortium于2001年12月提 出了XML查询语言规范工作草案-XQuery语言,迄今为止,XQuery语言一直在 不断的发展中。XML数据的检索和更新语言是由W3C制定的标准的XQuery和 XQuery Update。W3C同时制定了XQuery Fulltext标准,作为XML数据库管理系 统的标准的全文检索语言。XQuery Fulltext语言定义了匹配选项(match options) 功能,让用户可以定制全文检索行为。其中有一项匹配选项是语言选项 (language),也就是设置当前的全文检索条件中的字符串所使用的语言,然后 所有的全文检索行为都假设检索条件字符串和文本内容字符串使用的是这种语 言。XQuery Fulltext标准制定了在XQuery Fulltext查询中使用任意的stopwords, thesaurus词汇表的机制。

Stopwords即停用词,其作用是在全文检索过程中忽略非常常用的单词,比 如冠词,助词,语气词,介词等等,因为这些词在大多数文本中都存在,失去 了索引的意义和价值;这些词被列在一个stopwords词汇表中,做分词和全文检 索的词语匹配时,就忽略这些单词,认为它们与任何单词都匹配。

Thesaurus的作用是定义词汇之间的关系,比如近义词,词汇意义的扩展或者缩小关系,常用与不常用 关系等,以便在查找一个词的时候也可以找到含有与之有指定关系的其他词语的文本。

Stemming即词根化,其作用是在英语等欧洲语言中做词根匹配——只要两个单词有相同的词根,就可 以认为它们相等,虽然他们在字面上并不相同。比如英文中的done和doing在启用词根化选项时是相同的 单词。

但是对于全文检索的需求来说,标准的XQuery Fulltext定义的功能还很不完 整。要求用户指定语言的查询机制会限制全文检索的灵活性,这是因为在国际 化的潮流下,特别是internet网络上面的文字内容中,有大量多语言混合的文本。 这种情况在中文文本中更加普遍,目前各种网络文字中存在大量中英文混合的 内容。如果一个XML数据库管理系统只能检索限定为某种语言的文本,就无法 适应这种多语言文本的全文检索需求,特别是无法适应中国用户的需求。而且, 实现多种语言的全文检索,在技术实现上存在着一定的技难度,阻碍了XML数 据库管理系统的全文检索技术的发展。

发明内容

为解决上述问题,本发明技术方案提供的一种支持多语言的XML数据库全文检索方法,包括:

分别构建stemming词汇表、thesaurus词汇表和stopwords词汇表;

分别将所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇表存储至XML数据库管理 系统的查询引擎中;

分别设置所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇表各自对应的唯一的查询 字符串作为其主键标识;

在全文检索查询语句中引用所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇表;

所述查询引擎分别以所述查询字符串为主键从所述stemming词库中查找所述stemming词汇表、从所 述thesaurus词库中查找所述thesaurus词汇表,从所述所述stopwords词库中查找所述stopwords词汇表, 并得到各自存储的字符串内容;

所述按照stemming词汇表的预定义格式解析从所述stemming词汇表中查找得到的所述字符串、按照 所述thesaurus词汇表的预定义格式解析从thesaurus所述词汇表中查找得到的字符串以及按照所述 stopwords词汇表的预定义格式解析从stopwords所述词汇表中查找得到的字符串;

所述查询引擎分别将所述经过解析的字符串从相应的词汇表中取出并存储至相应的内存数据结构中, 以快速查找任意单词的词根、词间关系和停用词。

可选地,所述分别构建stemming词汇表、thesaurus词汇表和stopwords词汇表具体为将多种语言的词 根存储至所述stemming词汇表,多种语言的词汇间关系存储至所述thesaurus词汇表,将多种语言的停用 词存储至stopwords词汇表中。

可选地,将所述thesaurus词汇表存储至所述查询引擎中具体为:在所述查询引擎中构建thesaurus词 库,所述thesaurus词库为一元数据表,在所述元数据表的每一行存储每种语言的所述thesaurus词汇表的 全部内容。

可选地,将所述stopwords词汇表存储至所述查询引擎中具体为:在所述查询引擎中构建stopwords 词库,所述stopwords词库为一元数据表,在所述元数据表的每一行存储每种语言的所述stopwords词汇表 的全部内容。

可选地,在所述stemming词汇表中存储多种语言的词根数据或在所述stopwords词汇表存储多种语言 的停用词数据。

可选地,在所述thesaurus词汇表中指定任意的词间关系数据。

可选地,所述在thesaurus词汇表中指定任意的词间关系具体为:在所述thesaurus词汇表中直接使用 任意词汇关系字符串表示两个字符串之间的词间关系。

可选地,在所述分别使用唯一的字符串作为主键标识所述stemming词汇表、所述thesaurus词汇表和 所述stopwords词汇表中,所述字符串为URL字符串。

可选地,所述在全文检索查询语句中引用所述stemming词汇表具体为:在所述全文检索查询语句中, 使用“using stemming at URL”的形式引用指定的URL所标识的所述stemming词汇表。

可选地,所述在全文检索查询语句中引用所述thesaurus词汇表具体为:在所述全文检索查询语句中, 使用“using thesaurus at URL”的形式引用指定的URL所标识的所述thesaurus词汇表。

可选地,所述在全文检索查询语句中引用所述stopwords词汇表具体为:在所述全文检索查询语句中, 使用“using stopwords atURL”的形式引用指定的URL所标识的所述stopwords词汇表。

可选地,在所述的按照stemming词汇表预定义的格式解析所述字符串中,所述stemming词汇表预定 义的格式具体为:所述stemming词汇表的每行分别存储两个单词字符串,所述的两个单词字符串中间以 一tab字符分隔,所述的位于所述tab字符分隔的左边字符串为任意词汇字符串,所述的位于所述tab字符 右边的字符串为位于所述tab字符左边的字符串的词根。

可选地,在所述的按照thesaurus词汇表预定义的格式解析所述字符串中,所述thesaurus词汇表预定 义的格式具体为:所述thesaurus词汇表的每行分别存储三个单词字符串,所述的每两个单词字符串中间以 一tab字符分隔,第一和第三的单词字符串具有第二个单词字符串指定的词间关系。

可选地,在所述的按照stopwords词汇表预定义的格式解析所述字符串中,所述stopwords词汇表预定 义的格式具体为:所述stopwords词汇表的每行分别存储一个停用词单词字符串。

可选地,在所述查询引擎分别将所述经过解析的字符串从相应的词汇表中取出并存储至相应的内存数 据结构中,以快速查找任意单词的词根、词间关系和停用词中,查所述询引擎将经解析的从stemming词 汇表中的字符串取出并存储至内存的一哈希表中,所述查询引擎将经解析的从thesaurus词汇表中的字符串 取出并存储至内存的又一哈希表中,所述查询引擎将经解析的从stopwords词汇表中的字符串取出并存储 至内存的一数组或集合中。

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

本发明的技术方案可以让XML数据库管理系统不再依赖于语言选项设置,支持在同一个文本匹配条 件中使用多种语言构成的查询条件字符串进行全文检索,且被检索的XML文档内部亦可同时含有多种语 言文字。

与现有技术中数据库管理系统相比,本发明的技术方案对于以互联网为基础的国际化大潮下大量的多 语言文本的全文检索具有更大的实用价值,因为这样的文本内容和全文检索需求会不断快速增长,限定于 单一语言的全文检索无法满足这类需求,只有支持多语言全文检索的XML数据库管理系统才具有实用价 值。特别是在中文用户群中该功能更加有用,可以适应当前中文文本中大量含有英文单词的现状和检索需 求。

附图说明

图1是本发明实施方式的支持多语言的XML数据库全文检索方法的流程图。

具体实施方式

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

本领域的技术人员知道,标准的XQuery Fulltext使用时需要设置语言选项,因为每一种人类语言有各 自的特征,要想同时支持多种语言的全文检索存在一定的技术难度。在XQuery Fulltext的所有匹配选项中, 依赖于特定的人类语言的语言学特征的选项包括停用词(stopwords),词根化(stemming)和thesaurus 这三种选项。

现有技术中,按照传统的方式实现上述的三种语言匹配选项需要在XML数据库管理系统的全文检索 内核中知道所处理的语言的语言学特征。例如,在英语中哪些词语常用为停用词(stopwords),每一个词 语的词根是什么,哪些词语之间有语义间的各种关联等等。XQuery Fulltext标准定义了让用户扩展 stopwords和thesaurus的方法,即在全文检索查询中可以用”at URL”的形式引用一个停用词表或者 thesaurus词汇表,但是对stemming没有类似规定。

为解决现有技术中的问题,本发明的发明人经过研究,提出了支持多语言的XML数据库全文检索方 法。参阅图1,图1是本发明实施方式的支持多语言的XML数据库全文检索方法的流程图。本发明实施 方式的支持多语言的XML数据库全文检索方法,包括:

步骤S1:分别构建stemming词汇表、thesaurus词汇表和stopwords词汇表;

为了支持多种语言的全文检索,需要在stemming词汇表中包含他所处理的各种语言的词汇的词根信 息,在thesaurus词汇表中包含它所处理的各种语言的词间关系信息,在stopwords词汇表中包含他所处理 的各种语言的停用词。本发明的技术方案首先需要构建stemming词库、stemming词汇表和stopwords词汇 表,stemming词汇表存储有多种语言的作为词根的单词的各种变化形式数据;thesaurus词汇表用于存储 多种语言的词间关系数据,stopwords词汇表用于存储多种语言的停用词数据。

步骤S2:分别将所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇表存储至XML 数据库管理系统的查询引擎中;

其中,将所述stemming词汇表存储至所述查询引擎中具体为:在所述查询引擎中构建stemming词库, 所述stemming词库为一元数据表,在所述元数据表的每一行存储每种语言的所述stemming词汇表的全部 内容。

将所述thesaurus词汇表存储至所述查询引擎中具体为:在所述查询引擎中构建thesaurus词库,所述 thesaurus词库为一元数据表,在所述元数据表的每一行存储每种语言的所述thesaurus词汇表的全部内容。

将所述stopwords词汇表存储至所述查询引擎中具体为:在所述查询引擎中构建stopwords词库,所述 stopwords词库为一元数据表,在所述元数据表的每一行存储每种语言的所述stopwords词汇表的全部内容。

步骤S3:分别设置所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇表各自对应的 唯一的查询字符串作为其主键标识;

其中,本步骤中,优选使用URL字符串作为主键标识所述stemming词汇表、所述thesaurus词汇表和 所述stopwords词汇表。

步骤S4:在全文检索查询语句中引用所述stemming词汇表、所述thesaurus词汇表和所述stopwords 词汇表;

其中,在全文检索查询语句中引用所述stemming词汇表、所述thesaurus词汇表和所述stopwords词汇 表。

例如:

using stemming at URL

using thesaurus at URL

using stopwords at URL

步骤S5:所述查询引擎分别以所述查询字符串为主键从所述stemming词库中查找所述stemming词汇 表、从所述thesaurus词库中查找所述thesaurus词汇表,从所述所述stopwords词库中查找所述stopwords 词汇表,并得到各自存储的字符串内容;

步骤S6:所述按照stemming词汇表的预定义格式解析从所述stemming词汇表中查找得到的所述字符 串、按照所述thesaurus词汇表的预定义格式解析从thesaurus所述词汇表中查找得到的字符串以及按照所 述stopwords词汇表的预定义格式解析从stopwords所述词汇表中查找得到的字符串;

其中,优选地,在所述按照stemming词汇表的预定义格式解析从所述stemming词汇表中查找得到的 所述字符串中,所述stemming词汇表的每行分别存储两个单词字符串,所述的两个单词字符串中间以一 tab字符分隔,所述的位于所述tab字符分隔的左边字符串为任意词汇字符串,所述的位于所述tab字符右 边的字符串为位于所述tab字符左边的字符串的词根。

在所述thesaurus词汇表的预定义格式解析从thesaurus所述词汇表中查找得到的字符串中,所述 thesaurus词汇表的预定义格式为:所述thesaurus词汇表的每行分别存储三个单词字符串,所述的每两个单 词字符串中间以一tab字符分隔,第一和第三的单词字符串具有第二个单词字符串指定的词间关系。例如, 下述表1所示的词间关系:

表1

  Love   ASYN   Hate   Love   SYN   Like

其中,第一行定义了love与hate两个单词之间的反义词关系,第二行定义了love与like之间的近义 词关系。这里的ASYN和SYN都不是XQuery Fulltext标准的thesaurus词间关系,是用户可以根据自己的 需要进行指定的词间关系。XQuery Fulltext查询语句中,直接使用这些词间关系字符串即可。

在所述stopwords词汇表的预定义格式解析从stopwords所述词汇表中查找得到的字符串中,所述 stopwords词汇表的预定义格式:所述stopwords词汇表的每行存储一个单词字符串

步骤S7:所述查询引擎分别将所述经过解析的字符串从相应的词汇表中取出并存储至相应的内存数 据结构中,以快速查找任意单词的词根、词间关系和停用词。

其中,在本步骤中,所述查询引擎将经解析的从stemming词汇表中的字符串取出并存储至内存的一 哈希表中,将经解析的从thesaurus词汇表中的字符串取出并存储至内存的另外的哈希表中,将经解析的从 stopwords词汇表中的字符串取出并存储至内存的一数组。同时,应该指出的是,经解析的从stopwords词 汇表中的字符串亦可存储至内存的一集合中。

这样,本发明的技术方案使得XML数据库管理系统的全文检索内核不需要理解人类语言的语言学特 征,只是简单地把任何一个单词当作一个字符串,通过各种词汇表定义的字符串之间的关系,找到与之有 特定关系(比如词根关系,同义词关系等)的另外一个字符串。只要在xquery fulltext查询中引用正确的 stemming词汇表、thesaurus词汇表和stopwords词汇表,即可正确处理这些词汇表所支持的人类语言。在 XQuery Fulltext查询中不再使用语言选项,即可进行包含多种语言的全文检索。

例如:

下面的查询片段:

Contains text“study黑奴的历史of America”all words

using stemming at http://www.founderdpt.com/XMLDBMS/fts/stemming

using thesaurus at http://www.founderdpt.com/XMLDBMS/fts/thesaurus relationship SYN

using stopwords at http://www.founderdpt.com/XMLDBMS/fts/stopwords

只要所使用的stemming词汇表中含有中文和英文的stemming词汇表,stopwords停用词表和thesaurus 词汇表且在上述的词汇表包含有上述单词即可(中文不需要词根信息所以该词根表只需要包含英文词根即 可)正确地处理。

分词器会正确地分割出“study”,“黑奴”,“的”,“历史”,“of”,“America”等单词, 然后把“的”和“of”被当作停用词处理,并且以“study”和“America”这两个单词为词根的各种变化 形式也会被匹配到;并且指定的thesaurus词汇表中与这些单词具有SYN关系的单词也会被匹配到。

另外,本发明的技术方案可以在thesaurus词汇表中指定任意的词间关系,并且在XQuery Fulltext查询 语句中使用这些词间关系字符串。其中,指定任意的词间关系的方法具体为在thesaurus词汇表中包含它所 处理的各种语言的词间关系信息。

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

本发明的技术方案可以让XML数据库管理系统不再依赖于语言选项设置,支持在同一个文本匹配条 件中使用多种语言构成的查询条件字符串进行全文检索,且被检索的XML文档内部亦可同时含有多种语 言文字。

与现有技术中数据库管理系统相比,本发明的技术方案对于以互联网为基础的国际化大潮下大量的多 语言文本的全文检索具有更大的实用价值,因为这样的文本内容和全文检索需求会不断快速增长,限定于 单一语言的全文检索无法满足这类需求,只有支持多语言全文检索的XML数据库管理系统才具有实用价 值。特别是在中文用户群中该功能更加有用,可以适应当前中文文本中大量含有英文单词的现状和检索需 求。

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

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号