一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

自然语言的查询处理方法及装置与流程

2023-02-04 12:11:46 来源:中国专利 TAG:

自然语言的查询处理方法及装置1.本技术为2022年1月19日提交的申请号为202210058317.5,名为“自然语言的查询处理方法及装置”的发明专利申请的分案申请。
技术领域
2.本说明书一个或多个实施例涉及计算机领域,尤其涉及一种自然语言的查询处理方法及装置。
背景技术
:3.将自然语言(naturallanguage,nl)转换成能够查询数据库的查询语言的过程中,例如将自然语言语句转换成结构化查询语言(structuredquerylanguage,sql)语句的过程中,通常是基于极为简单的语义映射规则对自然语言语句中的实体进行映射,无法对语义较为复杂的自然语言语句进行准确转换,例如无法对涉及“逻辑关系”和/或“算术关系”的语句进行准确转换,导致后续过程中无法从数据存储系统查询到准确的查询结果。4.希望有一种新的技术方案,以其能够支持更加复杂的基于自然语言的数据查询场景。技术实现要素:5.本说明书一个或多个实施例中提供了一种自然语言的查询处理方法及装置。6.第一方面,提供了一种查询处理方法,包括:获取目标语句对应的标签序列,其中所述目标语句是用于请求从数据存储系统中查询数据的自然语言语句,所述标签序列中的单个标签用于指示所述目标语句中与该标签对应的词所属的实体类别;对所述标签序列进行语法解析以生成自然语言语法树;根据所述自然语言语法树生成查询所述数据存储系统的查询语句。7.在一种可能的实施方式中,所述方法还包括:确定所述标签序列中的各个标签分别对应的属性值。所述根据所述自然语言语法树生成查询所述数据存储系统的查询语句,包括:根据所述自然语言语法树以及各个标签分别对应的属性值生成语法解析结果,并根据所述语法解析结果生成查询语句。8.在一种可能的实施方式中,所述获取目标语句对应的标签序列,包括:对目标语句进行分词以获得其对应的词序列;确定所述词序列中的各个词分别所属的实体类别,并利用各个词分别所属的实体类别组成标签序列。9.在一种可能的实施方式中,所述对所述标签序列进行语法解析以生成自然语言语法树,具体包括:将所述标签序列与语法单元构成规则进行匹配以确定依次排列的多个语法单元,单个所述语法单元对应所述标签序列中的一个标签或依次排列的多个标签;根据所述标签序列和依次排列的所述多个语法单元生成自然语言语法树。10.在一种可能的实施方式中,所述对所述标签序列进行语法解析以生成自然语言语法树,还包括:确定所述依次排列的多个语法单元与语法单元组合规则是否匹配。11.在一种可能的实施方式中,所述自然语言语法树中依次排列的多个叶子节点为所述标签序列中依次排列的各个标签,所述自然语言语法树中根节点的多个子节点为所述依次排列的多个语法单元,单个所述语法单元与其对应的各个标签连接。12.在一种可能的实施方式中,所述标签序列中的单个标签具体为如下各个实体类别之一:时间、维度、维度值、逻辑关系、算术关系、数字以及查询对象。13.在一种可能的实施方式中,所述依次排列的多个语法单元中包括修饰对象和若干修饰词;所述语法单元构成规则用于指示标签与所述修饰对象或所述修饰词之间的映射关系。14.在一种可能的实施方式中,所述映射关系包括以下各项中的至少一项:当依次排列的多个标签中包括间隔排列的多个维度值,相邻两个维度值间的标签为逻辑关系时,所述依次排列的多个标签对应的语法单元为修饰词;当依次排列的多个标签为依次排列的维度、算术关系、数字时,所述依次排列的多个标签对应的语法单元为修饰词。15.第二方面,提供了一种自然语言的查询处理装置,包括:获取单元,配置为获取目标语句对应的标签序列,其中所述目标语句是用于请求从数据存储系统中查询数据的自然语言语句,所述标签序列中的单个标签用于指示所述目标语句中与该标签对应的词所属的实体类别;解析单元,配置为对所述标签序列进行语法解析以生成自然语言语法树;生成单元,配置为根据所述自然语言语法树生成查询所述数据存储系统的查询语句。16.在一种可能的实施方式中,所述装置还包括:插值单元,配置为确定所述标签序列中的各个标签分别对应的属性值。所述生成单元,具体配置为根据所述自然语言语法树以及各个标签分别对应的属性值生成语法解析结果,并根据所述语法解析结果生成查询语句。17.在一种可能的实施方式中,所述获取单元,具体配置为对目标语句进行分词以获得其对应的词序列;确定所述词序列中的各个词分别所属的实体类别,并利用各个词分别所属的实体类别组成标签序列。18.在一种可能的实施方式中,所述解析单元,具体配置为将所述标签序列与语法单元构成规则进行匹配以确定依次排列的多个语法单元,单个所述语法单元对应所述标签序列中的一个标签或连续的依次排列的多个标签;根据所述标签序列和所述依次排列的多个语法单元生成自然语言语法树。19.在一种可能的实施方式中,所述解析单元,还配置为确定所述依次排列的多个语法单元与语法单元组合规则是否匹配。20.在一种可能的实施方式中,所述自然语言语法树中依次排列的多个叶子节点为所述标签序列中依次排列的各个标签,所述自然语言语法树中根节点的多个子节点为所述依次排列的多个语法单元,单个所述语法单元与其对应的各个标签连接。21.在一种可能的实施方式中,所述标签序列中的单个标签具体为如下各个实体类别之一:时间、维度、维度值、逻辑关系、算术关系、数字以及查询对象。22.在一种可能的实施方式中,所述依次排列的多个语法单元中包括修饰对象和若干修饰词;所述语法单元构成规则用于指示标签与所述修饰对象或所述修饰词间的映射关系。23.在一种可能的实施方式中,所述映射关系包括以下各项中的至少一项:当依次排列的多个标签中包括间隔排列的多个维度值,相邻两个维度值间的标签为逻辑关系时,所述依次排列的多个标签对应的语法单元为修饰词;当依次排列的多个标签为依次排列的维度、算术关系、数字时,所述依次排列的多个标签对应的语法单元为修饰词。24.第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行如第一方面中任一项所述的方法。25.第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序/指令,所述处理器执行所述计算机程序/指令时,实现第一方面中任一项所述的方法。26.通过本说明书一个或多个实施例中提供的方法及装置,对于请求从数据存储系统中查询数据的自然语言语句,在基于该自然语言语句中的各个词分别所属的实体类别获得该自然语言语句对应的标签序列后,通过对该自然语言语句对应的标签序列进行语法解析以生成相应的自然语言语法树,然后再根据自然语言语法树生成能够直接查询数据存储系统的查询语句,有利于支持更加复杂的基于自然语言的数据查询场景。附图说明27.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。28.图1为本说明书实施例中提供的技术方案的业务场景示意图;29.图2为本说明书实施例中提供的一种自然语言的查询处理方法的流程图;30.图3为本说明书实施例中提供的另一种自然语言的查询处理方法的流程图;31.图4为本说明书实施例中示例性提供的一种自然语言语法树的示意图;32.图5为本说明书实施例中示例性提供的一种语法解析结果的示意图;33.图6为本说明书实施例中提供的一种自然语言的查询处理装置的示意图。具体实施方式34.下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。35.图1为本说明书实施例中提供的技术方案的业务场景示意图。为降低用户对数据存储系统中的数据的使用门槛,通常期望支持基于用户发起的自然语言语句实现对数据存储系统中的数据进行查询,其中数据存储系统例如可以为数据库、文件管理系统或具有特定格式的文件等。目前主流的解决方案包括seq2sql以及基于人工智能的自然语言处理(naturallanguageprocessing,nlp),其实质上均是基于简单的语义映射规则对自然语言语句中的实体进行映射,以将自然语言语句翻译为查询数据库的sql语句等查询语句。对于seq2sql以及基于人工智能的nlp而言,其准确率偏低而且覆盖范围相对较窄,无法支持企业/组织内部真实数据查询场景下的各类复杂数据分析要求;例如当前较为先进的seq2sql算法实际上仅仅支持单表单层聚合下80%左右的准确性,基于人工智能的nlp却又因其依赖于训练样本和训练过程而导致其翻译的查询语句不具有可靠性。例如在典型的场景中,请参考图1,对于用户发起的请求从数据库系统中查询数据的自然语言语句“最近三十天北京和上海的支付金额”,其中涉及较为复杂的逻辑关系“北京和上海”以及较为复杂的算术关系“最近三十天”,通过目前主流的解决方案seq2sql或者基于人工智能的nlp将该自然语言语句翻译为查询数据库系统的sql语句时,获得的sql语句可能无法准确体现该自然语言语句的语义,无法从数据库系统中查询到符合用户期望的数据。36.鉴于以上问题,本说明书实施例中提供了一种自然语言的查询处理方法及装置,对于请求从数据存储系统中查询数据的自然语言语句,在基于该自然语言语句中的各个词分别所属的实体类别获得该自然语言语句对应的标签序列后,通过对该自然语言语句对应的标签序列进行语法解析以生成相应的自然语言语法树,然后再根据自然语言语法树生成查询数据存储系统的查询语句,有利于支持更加复杂的基于自然语言的数据查询场景。例如对于涉及逻辑关系和/或算术关系的语义较为复杂的自然语言语句,因其对应的自然语言语法树可以辅助理解自然语言语句的语义,基于该自然语言语法树即可生成准确的直接查询数据存储系统的查询语句,从而能够基于查询语句从数据存储系统中查询到准确的查询结果。37.图2为本说明书实施例中提供的一种自然语言的查询处理方法的流程图。其中该方法可以由任何具有计算/处理能力的装置、设备、平台或设备集群执行,该方法至少可以如图2中所示的步骤21和步骤23。38.首先,在步骤21,获取目标语句对应的标签序列。39.其中前述的目标语句是用于请求从数据存储系统中查询数据的自然语言语句,该标签序列中的单个标签用于指示目标语句中与该标签对应的词所属的实体类别,例如对目标语句进行分词以得到的词序列中的单个词所属的分类类别可以作为该词对应的标签。40.在一种可能的实施方式中,请参考图3,步骤21可以包括如下步骤211~步骤215。41.在步骤211,对目标语句进行分词以获得其对应的词序列。其中具体可以对数据存储系统配置相应的词库和停用词表,基于词库对目标语句进行分词以生成由多个词组成的分词结果。其中当分词结果中存在未声明于词库的词时,可生成相应的错误提示信息以指示用户重新提供符合语法要求的自然语言语句;此外还可以基于停用词表去除分词结果中的停用词,由分词结果中除停用词以外的各个词组成目标语句对应的词序列。例如对于自然语言语句“最近三十天北京和上海的交易金额”,对其进行分词以获得的词序列可以为“最近三十天、北京、和、上海、交易金额”,其中“的”作为停用词被舍弃。42.步骤213,确定词序列中的各个词分别所属的实体类别,并利用各个词分别所属的实体类别组成标签序列。其中具体可以通过预先配置的各种实体识别算法识别该词序列中的各个词分别所属的实体类别,进而利用各个词分别所属的实体类别组成标签序列。43.标签序列中的单个标签具体可以为时间、维度、维度值、逻辑关系、算术关系、数字以及查询对象等多个实体类别之一,换而言之即基于相应的实体识别算法识别词序列中的各个词分别所属的实体类别时,单个词所属的实体类别可能为时间、维度、维度值、逻辑关系、算术关系、数字或者查询对象等。例如对于前述词序列“最近三十天、北京、和、上海、交易金额”而言,其对应的标签序列可以为“时间(time)、维度值(value)、逻辑关系(logic_operator)、维度值(value)、查询对象(measure)”;其中“时间”例如可以是请求查询的数据库表中的字段;“北京”和“上海”例如可以是相应数据库表中的某个字段下的字段值,具体例如为“城市(city)”字段下的字段值。44.通过前述各种方式获得目标语句对应的标签序列后,可以接着执行步骤23,对标签序列进行语法解析以生成自然语言语法树。请继续参考图3,在一种可能的实施方式中,步骤23具体可以包括如下步骤231和步骤233。45.步骤231,将标签序列与语法单元构成规则进行匹配以确定依次排列的多个语法单元,单个语法单元对应标签序列中的一个标签或连续的多个标签。46.可以预先配置标签/实体类别与语法单元间的映射关系。例如可以预先定义修饰词(formula)和修饰对象(aggr),并且通过语法单元构成规则定义标签/实体类别与修饰词和修饰对象间的映射关系。该映射关系可以包括但不限于:当依次排列的多个标签中包括间隔排列的多个维度值,相邻两个维度值间的标签/实体类别为逻辑关系时,依次排列的多个标签对应的语法单元为修饰词;当依次排列的多个标签为依次排列的维度、算术关系、数字时,依次排列的多个标签对应的语法单元为修饰词。例如该映射关系还可以定义标签/实体类别为查询对象时,其对应的语法单元为修饰对象;还可以定义标签/实体类别为时间时,其对应的语法单元为修饰词。47.继续以前述示例的标签序列“时间(time)、维度值(value)、逻辑关系(logic_operator)、维度值(value)、查询对象(measure)”为例,将标签序列与前述示例的语法单元构成规则进行匹配时,可以构成依次排列的多个语法单元:修饰词(formula)、修饰词(formula)、修饰对象(aggr)。48.步骤233,根据标签序列和依次排列的多个语法单元生成自然语言语法树。49.自然语言语法树中依次排列的多个叶子节点具体可以为标签序列中依次排列的各个标签,自然语言语法树中根节点(root)的多个子节点具体为已确定的依次排列的多个语法单元,单个语法单元与其对应的各个标签相连接。继续以前述的自然语言语句“最近三十天北京和上海的交易金额”为例,通过前述示例的各种方式获得标签序列和依次排列的多个语法单元后,例如可以针对该自然语言语句生成如图4所示的自然语言语法树。50.在一种可能的实施方式中,还可以预先配置相应的语法单元组合规则,例如配置单个“修饰对象(aggr)”与若干“修饰词(formula)”间的组合规则。与之相应的是在前述步骤231和步骤233的基础上,前述步骤23还可以执行步骤232,确定依次排列的多个语法单元与语法单元组合规则是否匹配。其中如果依次排列的多个语法单元与语法单元组合规则不匹配,可以结束当前流程并执行向用户提供用于指示自然语言语句不符合语法规则的提示信息等其它事务;如果依次排列的多个语法单元与语法单元组合规则相匹配,则继续执行前述步骤233以生成目标语句对应的自然语言语法树。51.完成生成目标语句对应的自然语言语法树后,可以接着执行步骤25,根据自然语言语法树生成查询数据存储系统的查询语句。其中该查询语句例如可以为sql语句。52.请继续参考图3,在一种可能的实施方式中,在步骤25之前还可以执行步骤24,确定标签序列中的各个标签分别对应的属性值。与之相应的是,前述步骤25中具体可以包括步骤251,根据自然语言语法树以及各个标签分别对应的属性值生成语法解析结果,并根据语法解析结果生成查询语句。53.可以预先配置相应的词法规则,在已生成的自然语言语法树的基础上结合该词法规则和标签序列中的各个标签生成语法解析结果。例如可以通过词法规则定义:属于实体类别“逻辑关系”的词“和”的属性值为“&&”;属于实体类别“算术关系”的词“大于”、“不小于”、“小于”、“不大于”、“等于”依次对应的属性值为“》”、“》=”、“《”、“《=”、“=”;属于实体类别“时间”可以基于该词的组成结构独立定义其属性值,例如属于实体类别“时间”的词“最近n天”,可以定义其属性值为“data《now()-n”,其中now()用于表征当前时间,data用于表征符合用户期望的时间间隔,或者还可以定义其属性值为“t1~t2”,其中t2表征当前时间,t1位于当前时间之前且其于t2间的时间间隔为n天;属于实体类别“维度值”或“查询对象”的词的属性值为该词自身。54.继续以前述示例的标签序列“时间(time)、维度值(value)、逻辑关系(logic_operator)、维度值(value)、查询对象(measure)”为例,例如可以确定出该标签序列中的各个标签依次对应的属性值为:“date《(now()-30)”、“北京”、“&&”、“上海”、“交易金额”,进而生成如图5示例的语法解析结果。55.语法解析结果能够准确反映自然语言语句的语义,因此可以基于语法解析结果生成能够准确表达自然语言语句的语义的查询语句。其中基于语法解析结果生成查询语句的规则可以结合实际业务情况进行灵活配置,例如可以从预先配置的各种可能的查询语句模板中确定出与语法解析结果相匹配的目标模板,进而基于语法解析结果向对应的查询语句模板中填充相应的属性值以生成用于查询数据存储系统的查询语句。举例来说,对于图5所示语法解析结果中依次排列的两个修饰词和修饰对象,其分别对应的标签的属性值可各自构成相应的语法短语,结合相应的查询语句模板可以针对这些语法短语生成sql语句“selectsum(amount)fromtablewherecityin(北京,上海)anddate《(now()-30)”,其中amount表征解析结果中的交易金额;基于类似的原理,自然语言语句“交易金额小于100000的城市”中,“交易金额小于100000”对应的语法单元为修饰词,该语法单元对应的各标签的属性值可构成相应的语法短语,进而基于该语法短语准确生成sql语句“selectcityfromtablegroupbycityhavingsum(amount)《100000”。56.基于前述各个实施例,对于涉及逻辑关系和/或算术关系的语义较为复杂的自然语言语句,生成相应的自然语言语法树来辅助理解自然语言语句的语义,进而可以对自然语言语句生成准确的查询语句,以便基于该查询语句从数据存储系统中查询符合用户期望的数据。57.与前述各个方法实施例基于相同的构思,本说明书实施例中还提供了一种查询处理装置。如图6所示,该装置包括:获取单元61,配置为获取目标语句对应的标签序列,其中所述目标语句是用于请求从数据存储系统中查询数据的自然语言语句,所述标签序列中的单个标签用于指示所述目标语句中与该标签对应的词所属的实体类别;解析单元63,配置为对所述标签序列进行语法解析以生成自然语言语法树;生成单元65,配置为根据所述自然语言语法树生成查询所述数据存储系统的查询语句。58.在一种可能的实施方式中,所述装置还包括插值单元64,配置为确定所述标签序列中的各个标签分别对应的属性值;所述生成单元65,配置为根据所述自然语言语法树以及各个标签分别对应的属性值生成语法解析结果,并根据所述语法解析结果生成查询语句。59.在一种可能的实施方式中,所述获取单元61,具体配置为对目标语句进行分词以获得其对应的词序列;确定所述词序列中的各个词分别所属的实体类别,并利用各个词分别所属的实体类别组成标签序列。60.在一种可能的实施方式中,所述解析单元63,具体配置为将所述标签序列与语法单元构成规则进行匹配以确定依次排列的多个语法单元,单个所述语法单元对应所述标签序列中的一个标签或连续的多个标签;根据所述标签序列和所述依次排列的多个语法单元生成自然语言语法树。61.在一种可能的实施方式中,所述解析单元63还配置为确定所述依次排列的多个语法单元与语法单元组合规则是否匹配。62.在一种可能的实施方式中,所述自然语言语法树中依次排列的多个叶子节点为所述标签序列中依次排列的各个标签,所述自然语言语法树中根节点的多个子节点为所述依次排列的多个语法单元,单个所述语法单元与其对应的各个标签连接。63.在一种可能的实施方式中,所述标签序列中的单个标签具体为如下各个实体类别之一:时间、维度、维度值、逻辑关系、算术关系、数字以及查询对象。64.在一种可能的实施方式中,所述依次排列的多个语法单元中包括修饰对象和若干修饰词;所述语法单元构成规则用于指示标签与所述修饰对象或所述修饰词间的映射关系。65.在一种可能的实施方式中,所述映射关系包括以下各项中的至少一项:当依次排列的多个标签中包括间隔排列的多个维度值,相邻两个维度值间的标签为逻辑关系时,所述依次排列的多个标签对应的语法单元为修饰词;当依次排列的多个标签为依次排列的维度、算术关系、数字时,所述依次排列的多个标签对应的语法单元为修饰词。66.本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中提供的自然语言的查询处理方法。67.本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行本说明书任意一个实施例中提供的自然语言的查询处理方法。68.本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序/指令,所述处理器执行所述计算机程序/指令时,实现本说明书任意一个实施例中提供的自然语言的查询处理方法。69.本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。70.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。71.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献