一种数据查询的方法、装置、计算机设备以及存储介质转让专利

申请号 : CN202110807256.3

文献号 : CN113535919B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张亚东苗寒邹常林文才章程鑫

申请人 : 北京元年科技股份有限公司

摘要 :

本发明提供了一种数据查询的方法、装置、计算机设备以及存储介质,该方法包括:接收到用户的数据查询语句;确定数据查询语句中的多个实体;根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成;将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。解决了现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求的技术问题。

权利要求 :

1.一种数据查询的方法,其特征在于,所述方法包括:

接收到用户的数据查询语句;

确定所述数据查询语句中的多个实体;

根据预设的映射关系,映射得到所述多个实体中每个实体对应的统一语义标签,其中,所述映射关系为根据数据库以及语料库生成;

将包含所述每个实体对应的统一语义标签的数据查询语句从所述数据库中进行查询,得到数据查询结果;

根据所述数据库以及所述语料库生成所述映射关系的步骤包括:抽取所述数据库中的数据;具体的,自动抽取业务系统数据库中的数据表、数据表的结构、以及表内的主数据,数据库是关系型数据库或多维类型数据库;

通过词向量模型对所述数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语; 词向量模型为基于预训练的深度学习模型BERT;

统计所述每个词语组中的每个词语在所述语料库中出现的频次;

将所述频次超过预设频次的词语确定为其所在的词语组中的统一语义标签;

在所述语料库中查找得到与所述统一语义标签相同或者相似的语料词语;采用语义模型经过训练得到统一语义标签与预置语料的相似度,得到与统一语义标签相同或者相似的语料词语;

将所述统一语义标签以及所述语料词语之间的关联关系建立为所述映射关系;

接收到用户业务系统发送的所述数据查询语句,其中,在得到数据查询结果之后,所述方法包括:从所述用户业务系统确定所述用户的查看权限;

根据所述查看权限输出所述查询结果的部分或者全部;

具体的,因为数据查询请求来自不同业务系统的不同用户,而不同用户的数据权限是不同的,本方案通过用户业务系统来确定用户的查看权限,并且根据用户的不同权限来反馈查询结果,如果用户的权限比较低,本方案反馈和用户权限相应的部分查询结果,将和其权限不相应的查询结果进行隐藏,即,本方案针对用户不同的数据权限对数据查询请求进行控制,确保每个用户仅在其授权的数据范围内进行数据查询;在本方案的数据查询场景下,针对用户既定的CLS单元格级别的权限模型,进行查询结果的过滤,以确保数据安全;

在确定所述数据查询语句中的多个实体之前,所述方法还包括:通过意图分类模型对所述数据查询语句进行处理,得到所述数据查询语句的查询意图;

确定所述查询意图为非闲聊类意图;

具体的,在本方案中,服务器在接收到用户数据查询语句之后,采用意图分类模型,用来标识该数据查询语句的潜在意图是否为非闲聊类意图,即是否为数据查询意图,意图分类模型为通过循环神经网络得到的模型。

2.根据权利要求1所述的方法,其特征在于,在将包含所述每个实体对应的统一语义标签的数据查询语句从所述数据库中进行查询之前,所述方法包括:通过查询改写处理算法将所述数据查询语句的表达方式从非标准化表达方式转化为标准表达方式;和/或根据句法结构将所述数据查询语句进行拆解。

3.一种数据查询的装置,其特征在于,所述装置包括:

接收单元,用于接收到用户的数据查询语句;

确定单元,用于确定所述数据查询语句中的多个实体;

映射单元,用于根据预设的映射关系,映射得到所述多个实体中每个实体对应的统一语义标签,其中,所述映射关系为根据数据库以及语料库生成;

查询单元,用于将包含所述每个实体对应的统一语义标签的数据查询语句从所述数据库中进行查询,得到数据查询结果;

所述装置还包括:

抽取单元,用于抽取所述数据库中的数据;具体的,自动抽取业务系统数据库中的数据表、数据表的结构、以及表内的主数据,数据库是关系型数据库或多维类型数据库;

处理单元,用于通过词向量模型对所述数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语;词向量模型为基于预训练的深度学习模型BERT;

统计单元,用于统计所述每个词语组中的每个词语在所述语料库中出现的频次;

第一确定单元,用于将所述频次超过预设频次的词语确定为其所在的词语组中的统一语义标签;

查找单元,用于在所述语料库中查找得到与所述统一语义标签相同或者相似的语料词语;采用语义模型经过训练得到统一语义标签与预置语料的相似度,得到与统一语义标签相同或者相似的语料词语;

建立单元,用于将所述统一语义标签以及所述语料词语之间的关联关系建立为所述映射关系;

第二确定单元,用于从用户业务系统确定所述用户的查看权限;

输出单元,用于根据所述查看权限输出所述查询结果的部分或者全部;

具体的,因为数据查询请求来自不同业务系统的不同用户,而不同用户的数据权限是不同的,本方案通过用户业务系统来确定用户的查看权限,并且根据用户的不同权限来反馈查询结果,如果用户的权限比较低,本方案反馈和用户权限相应的部分查询结果,将和其权限不相应的查询结果进行隐藏,即,本方案针对用户不同的数据权限对数据查询请求进行控制,确保每个用户仅在其授权的数据范围内进行数据查询;在本方案的数据查询场景下,针对用户既定的CLS单元格级别的权限模型,进行查询结果的过滤,以确保数据安全;

所述装置还用于在确定所述数据查询语句中的多个实体之前,通过意图分类模型对所述数据查询语句进行处理,得到所述数据查询语句的查询意图;确定所述查询意图为非闲聊类意图;

具体的,在本方案中,服务器在接收到用户数据查询语句之后,采用意图分类模型,用来标识该数据查询语句的潜在意图是否为非闲聊类意图,即是否为数据查询意图,意图分类模型为通过循环神经网络得到的模型。

4.一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机指令,所述计算机指令在由所述处理器执行时导致根据权利要求1‑2中任一项所述的一种数据查询的方法被执行。

5.一种非暂时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由处理器执行时导致权利要求1至2中任一项所述的一种数据查询的方法被执行。

说明书 :

一种数据查询的方法、装置、计算机设备以及存储介质

技术领域

[0001] 本发明涉及计算机软件领域,尤其是涉及一种数据查询的方法、装置、计算机设备以及存储介质。

背景技术

[0002] 随着人工智能技术的发展,基于自然语言的人机对话,已成为主要的人机交互场景之一。在人机对话场景中,设备基于用户输入的语句确定该输入语句相关的答案进行答复,从而实现用户和机器的沟通。
[0003] 现有的人机对话技术,往往将用户输入的问句同预置的问答对进行匹配,而这一过程的实现往往需要花费大量的精力来人工预置问答对,然后根据匹配结果来反馈问答对中的答复语句,但是,上述现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求。

发明内容

[0004] 本发明提供了一种数据查询的方法、装置、计算机设备以及存储介质,以解决现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求的技术问题。
[0005] 根据本发明的第一方面,提供了一种数据查询的方法,该方法包括:接收到用户的数据查询语句;确定数据查询语句中的多个实体;根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成;将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。
[0006] 进一步地,根据数据库以及语料库生成映射关系的步骤包括:抽取数据库中的数据;通过词向量模型对数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语;统计每个词语组中的每个词语在语料库中出现的频次;将频次超过预设频次的词语确定为其所在的词语组中的统一语义标签;在语料库中查找得到与统一语义标签相同或者相似的语料词语;将统一语义标签以及语料词语之间的关联关系建立为映射关系。
[0007] 进一步地,接收到用户业务系统发送的数据查询语句,其中,在得到数据查询结果之后,方法包括:从用户业务系统确定用户的查看权限;根据查看权限输出查询结果的部分或者全部。
[0008] 进一步地,在确定数据查询语句中的多个实体之前,方法还包括:通过意图分类模型对数据查询语句进行处理,得到数据查询语句的查询意图;确定查询意图为非闲聊类意图。
[0009] 进一步地,在将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询之前,方法包括:通过查询改写处理算法将数据查询语句的表达方式从非标准化表达方式转化为标准表达方式;和/或根据句法结构将数据查询语句进行拆解。
[0010] 根据本发明的第二方面,提供了一种数据查询的装置,该装置包括:接收单元,用于接收到用户的数据查询语句;确定单元,用于确定数据查询语句中的多个实体;映射单元,用于根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成;查询单元,用于将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。
[0011] 进一步地,装置还包括:抽取单元,用于抽取数据库中的数据;
[0012] 处理单元,用于通过词向量模型对数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语;统计单元,用于统计每个词语组中的每个词语在语料库中出现的频次;第一确定单元,用于将频次超过预设频次的词语确定为其所在的词语组中的统一语义标签;查找单元,用于在语料库中查找得到与统一语义标签相同或者相似的语料词语;建立单元,用于将统一语义标签以及语料词语之间的关联关系建立为映射关系。
[0013] 进一步地,装置包括:第二确定单元,用于从用户业务系统确定用户的查看权限;输出单元,用于根据查看权限输出查询结果的部分或者全部。
[0014] 根据本发明的第三方面,提供了一种计算机设备,包括存储器和处理器,存储器上存储有计算机指令,计算机指令在由处理器执行时导致根据上述任一项的一种数据查询的方法被执行。
[0015] 根据本发明的第四方面,提供了一种非暂时性计算机可读存储介质,其上存储有计算机程序,计算机程序在由处理器执行时导致上述任一项的一种数据查询的方法被执行。
[0016] 本发明提供了一种数据查询的方法、装置、计算机设备以及存储介质,该方法包括:接收到用户的数据查询语句;确定数据查询语句中的多个实体;根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成;将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。解决了现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求的技术问题。

附图说明

[0017] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明实施例一的数据查询的方法的流程图;
[0019] 图2为本发明实施例一的可选的数据查询的方法的示意图;
[0020] 图3为本发明实施例一的数据查询的方法的效果的示意图;以及
[0021] 图4为本发明实施例二的数据查询的装置的示意图。

具体实施方式

[0022] 为了使本发明的上述以及其他特征和优点更加清楚,下面结合附图进一步描述本发明。应当理解,本文给出的具体实施例是出于向本领域技术人员解释的目的,仅是示例性的,而非限制性的。
[0023] 在以下描述中,阐述了许多具体细节以提供对本发明的透彻理解。然而,对于本领域普通技术人员来说,明显的是,不需要采用具体细节来实践本发明。在其他情况下,未详细描述众所周知的步骤或操作,以避免模糊本发明。
[0024] 实施例一
[0025] 本发明提供了一种数据查询的方法,如图1所示,该方法可以包括:
[0026] 步骤S11,接收到用户的数据查询语句。
[0027] 具体的,本方案的方法的执行主体可以为服务器,在本方案中,服务器可以接收用户通过客户端输入的数据查询语句,需要说明的是,用户输入数据查询语句的方式可以是文字输入,也可以是语音输入,如果是语音输入的话,客户端可以将接收到的音频发送至服务器,由服务器通过自动语音识别技术,即ASR技术(Automatic Speech Recognition)将语音转化成文本。
[0028] 步骤S13,确定数据查询语句中的多个实体。
[0029] 具体的,在本方案中,服务器在接收到用户的数据查询语句,可以将数据查询语句进行命名实体识别操作,以确定数据查询语句中的多个实体,需要说明的是,上述多个实体可以为数据查询语句中的多个元素,即通过上述命名实体识别操作,可以标记出上述数据查询语句的语义结构。
[0030] 下面以用户输入的一个具体的数据查询语句“本月北京地区曲面彩电的销售量”为例,在上述数据查询语句中的多个实体可以为:“时间:本月”、“地域:北京”、“产品:电视”、“产品属性:曲面”、“指标:销售量”。
[0031] 步骤S15,根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成。
[0032] 具体的,在本方案中,上述通过命名实体识别操作,可以为本方案针对数据查询语句的一个初步的标记操作,为了更好的标记效果,本方案可以通过一个预设的映射关系,映射得到与每个实体对应的统一语义标签,比如,用户在数据查询语句中提到了一个“彩电”,本方案根据一个预设的映射关系“彩电‑电视”将“彩电”自动映射为“电视”。
[0033] 这里还需要说明的是,上述映射关系,是根据数据库以及语料库预先建立的,上述数据库可以为业务系统的数据库,例如在数据库中可以存储商品在不同时间的销售业绩状况等数据。上述语料库可以为本方案通过爬虫模块准备的预置语料库,本方案可以从多种问答类应用、行业类应用、电商类应用来获取语料,在问答类应用获取的语料更接近于口语,行业百科类应用的语料更符合特定行业的语料特点,在上述电商类应用的语料则包含更多产品信息、物料信息。本方案通过数据库以及语料库来建立的映射关系,可以实现在人机交互的过程中,既可以很好的识别口语化表达、还可以识别行业术语,更能在特定领域识别细粒度的产品。
[0034] 步骤S17,将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。
[0035] 具体的,在本方案中,在通过上述预设的映射关系将数据查询语句中的实体转化为统一语义标签之后,本方案则将包含着上述统一语义标签的数据查询语句到数据库中进行查询,以得到数据库反馈的查询结果。
[0036] 需要说明的是,与现有技术相比,本方案无需人工预置问答对,只需要预先根据语料库以及数据库建立一个映射关系,即可针对用户输入的非规范化的数据查询语句进行规范化处理,然后到数据库中进行查询以得到查询结果,因此,本方案解决了现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求的技术问题。
[0037] 还需要说明的是,在步骤S17得到数据结果之后,服务器可以将查询的结果数据返回给前端用户。
[0038] 可选的,上述根据数据库以及语料库生成映射关系的可以步骤包括:
[0039] 步骤S1,抽取数据库中的数据。
[0040] 具体的,在本方案中,可以自动抽取业务系统数据库中的数据表、数据表的结构、以及表内的主数据(不包括具体的数值),上述数据库可以关系型数据库,也可以是多维类型数据库。
[0041] 步骤S2,通过词向量模型对数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语。具体的,在本方案中,可以采用词向量模型来对数据库中的数据进行识别处理,得到多个词语组,需要说明的是,在不同的业务系统的数据库中,会存在命名不规范的词语,比如“净收入”、“净利润”,“盈利”,三个表达的含义是相同的,都是“收入减费用”的意思,本方案可以将相似的词语形成多个组,每个组中包括多个相似的词语,比如,本方案通过词向量模型识别出数据库中的相似内容,并且把上述“净收入”、“净利润”,“盈利”分成一个词语组。需要说明的是,上述词向量模型可以为基于预训练的深度学习模型BERT(Bidirectional Encoder Representations from Transformers)。
[0042] 步骤S3,统计每个词语组中的每个词语在语料库中出现的频次。
[0043] 步骤S4,将频次超过预设频次的词语确定为其所在的词语组中的统一语义标签。
[0044] 具体的,在本方案中,可以统计每个词语组中每个词语在语料库中出现的频次,比如,上述“净收入”在上述语料库中较为高频出现,则本方案将“净收入”确定为其所在组的“净利润”,“盈利”的统一语义标签(语义层描述标签),需要说明的是,本方案采用词向量模型,自动识别出数据库中的相似内容,然后形成基于抽取数据的统一语义层描述标签,成为对于数据虚拟数据表的结构映射。
[0045] 步骤S5,在语料库中查找得到与统一语义标签相同或者相似的语料词语。
[0046] 步骤S6,将统一语义标签以及语料词语之间的关联关系建立为映射关系。
[0047] 具体的,本方案可以采用语义模型经过训练可以得到上述统一语义标签与预置语料的相似度,得到与统一语义标签相同或者相似的语料词语,并且将统一语义标签以及语料词语之间的关联关系建立为映射关系,比如,在预置语料中存在“赚钱”、“获利”的词语,统一语义标签为“净收入”,那么本方案在预置语料中查找到与统一语义标签“净收入”相同或者相似的语料词语“赚钱”、“获利”,本方案则将“净收入”与“赚钱”、“获利”之间的关联关系建立为映射关系,需要说明的是,如果用户在进行查询的时候使用了非标准化的口语表达,比如,用户的查询语句中包含了“赚钱”,本方案则通过“赚钱”通过映射关系查找到统一语义标签“净收入”,然后通过统一语义标签“净收入”漫游到不同业务系统中进行查询结果的查找。上述语义模型可以为词向量(Word2Vec)模型。
[0048] 可选的,在上述步骤S11中,本方案的服务器是接收到用户业务系统发送的数据查询语句,其中,在步骤S17得到数据查询结果之后,本申请的方法可以包括:
[0049] 步骤S111,从用户业务系统确定用户的查看权限。
[0050] 步骤S112,根据查看权限输出查询结果的部分或者全部。
[0051] 具体的,在本方案中,因为数据查询请求来自不同业务系统的不同用户,而不同用户的数据权限是不同的,本方案可以通过用户业务系统来确定用户的查看权限,并且根据用户的不同权限来反馈查询结果,如果用户的权限比较低,本方案反馈和用户权限相应的部分查询结果,将和其权限不相应的查询结果进行隐藏,即,本方案可以针对用户不同的数据权限对数据查询请求进行控制,确保每个用户仅可以在其授权的数据范围内进行数据查询。需要说明的是,通常情况下,通用领域的对话系统,并不包含问答权限的控制。但是在本方案的数据查询场景下,可以针对用户既定的CLS(单元格级别)的权限模型,进行查询结果的过滤,以确保数据安全。
[0052] 可选的,在步骤S13,确定数据查询语句中的多个实体之前,本方案提供的方法还可以包括:
[0053] 步骤S120,通过意图分类模型对数据查询语句进行处理,得到数据查询语句的查询意图。
[0054] 步骤S121,确定查询意图为非闲聊类意图。
[0055] 具体的,在本方案中,服务器在接收到用户数据查询语句之后,可以采用意图分类模型,用来标识该数据查询语句的潜在意图是否为非闲聊类意图,即是否为数据查询意图,意图分类模型可以为通过循环神经网络(Recurrent Neural Network,RNN)得到的模型。需要说明的是,在本方案中,只有在确定了用户的潜在意图就是数据查询的意图,本方案才可以执行上述步骤S13之后的方法,如果确定用户是闲聊类意图,本方案则不进行后续的数据查询的过程,节省了算力的消耗。
[0056] 可选的,在步骤S17将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询之前,本申请提供的方法可以包括:
[0057] 步骤S161,通过查询改写处理算法将数据查询语句的表达方式从非标准化表达方式转化为标准表达方式;和/或
[0058] 步骤S162,根据句法结构将数据查询语句进行拆解。
[0059] 具体的,在上述步骤S161中,因为通常情况下,用户使用口语进行查询,表达并不标准,需要查询改写把非标准的表达转化为标准化表达。例如:“哪些产品的收入较上月实现增长?”,这就需要通过查询改写处理算法将“较上月实现增长”修改为“收入环比大于0”,因为数据库中会存储各产品的“收入”,而“收入环比”可以通过公式计算得出。
[0060] 在上述步骤S162中,因为部分场景下,数据查询的中会包含较为复杂的内在逻辑关系,这就需要用到句法结构对句子进行拆解。例如:“上月销量最高的产品,本月的销量是多少?”,本方案可以根据依存句法将上述句子拆解为“句子1:上月销量最高的产品”、“句子2:某产品本月的销量”,然后将句子1得出的结果填写进入句子2中。
[0061] 可选的,在本方案中,在上述步骤S162后,即在将用户的数据查询语句进行查询改写、实体识别以及依存句法识别之后,可以运用数据库查询语义模型,例如NL2SQL等技术,实现用户查询的语义结构,变成数据库可以执行的数据库查询语言,然后再执行步骤S17的方法。
[0062] 下面介绍本申请提供的一种优选的实施例:
[0063] 本申请可以提供一种数据查询的方法,该数据查询的方法可以为一种人机对话的方法,结合图2,本优选实施例提供的方法可以包括如下多个步骤:
[0064] 步骤S201,通过爬虫模块,准备预制语料,从多种问答类应用、行业类应用、电商类应用获取语料。问答类应用获取的语料更接近于口语,行业百科类应用的语料更符合特定行业的语料特点,电商类应用的语料包含更多产品信息、物料信息。这样在人机交互的过程中,既可以很好的识别口语化表达、还可以行业术语,更能在特定领域识别细粒度的产品。
[0065] 步骤S202,自动抽取待查询数据库中的数据表、数据表的结构,与表内的主数据(不包括数值)。数据库可以是关系型数据库、也可以是多维类型数据库。
[0066] 步骤S203,采用词向量模型,自动识别步骤S202中数据库的相似内容,形成基于抽取数据的统一语义层描述标签,成为对于虚拟数据表结构映射。该语义模型,例如可以为基于预训练的深度学习模型BERT(Bidirectional Encoder Representations from Transformers)。
[0067] 比如:不同业务系统中存在命名不规范的场景“净收入”、“净利润”,“盈利”,三个词表达的含义相同的,表意均为“收入减费用”。然后会自动根据在S201中的预置语料出现的词频确定为标准语义标签,“净收入”在语料中较为高频出现,则自动成为“净利润”以及“盈利”的语义层描述标签。
[0068] 步骤S204,采用语义模型,经过训练可以得到S203中的描述标签与S201中的预置语料的相似度,并建立描述标签与预置语料之间的映射关系,此方法后可以增强用户数据查询的意图识别。比如:预置语料样本中“赚钱”、“获利”等词语,与S203中的标准语义标签“净收入”相似,则语料与标准语义标签之间的关系。所以在用户进行非标化的口语表达时,也可以找到标准语义标签,再通过标准语义标签,漫游到不同业务系统。该语义模型,可以为词向量(Word2Vec)模型。
[0069] 步骤S205,客户端接收用户的输入的提问,提问的方式可以是文字输入,也可以是语音输入。如果遇到语音输入的情况,客户端将接收到的音频,实时发送到服务端。服务端通过ASR技术,将语音转换成文本。
[0070] 步骤S206,服务端在接收到用户提问的文本后,采用意图分类模型,用来标识该问句的潜在意图是否为数据查询。主要为二分类算法,主要进行闲聊类意图以及数据查询类意图的判断。该分类算法可以为循环神经网络(Recurrent Neural Network,RNN)。
[0071] 步骤S207,服务端对S206筛选的数据查询类意图的提问的语句进行精细化处理,生成语义结构。精细化处理的过程包括,查询改写、实体识别、依存句法识别,具体流程可以为如下:
[0072] 步骤S2071,通常情况下用户使用口语进行查询,表达并不标准,需要查询改写把非标准的表达转义为标准化表达。例如:“哪些产品的收入较上月实现增长?”,这就需要将“较上月实现增长”修改为“收入环比大于0”。因为数据库中会存储各产品的“收入”,而“收入环比”可以通过公式计算得出。
[0073] S2072,经过S2071的操作,查询语句变成了标准化输入,此时需要对查询语句里面的内容进行命名实体识别操作,标记出句子的语义结构。结合图3,例如:“20年12月1日北京彩电的销量,,其中“时间:20年”、“地域:北京”、“产品:彩电”、“产品属性:全部”、“指标:销量”。为了实现更好的标记效果,需要用到S204中建立的映射关系。如实例中用户提到的“彩电”,被自动映射为“电视”。
[0074] S2073,在部分场景下,数据查询的中会包含较为复杂的内在逻辑关系,这就需要用到句法结构对句子进行拆解。例如:“上月销量最高的产品,本月的销量是多少?”,“句子1:上月销量最高的产品”、“句子2:某产品本月的销量”,然后将句子1得出的结果填写进入句子2.
[0075] S208,运用数据库查询语义模型,例如NL2SQL等技术,实现用户查询的语义结构,变成数据库可以执行的数据库查询语言。
[0076] S2081,通常情况下,通用领域的对话系统,并不包含问答权限的控制。但是数据查询场景下,需要针对用户既定的CLS(单元格级别)的权限模型,进行查询结果的过滤,以确保数据安全。数据权限通常来自用户的业务系统,系统可以用户不同的数据权限对数据查询请求进行控制,确保每个用户仅可以在其授权的数据范围内进行数据查询。
[0077] S209,服务端将查询的数据集返回给前端用户,结合图3,服务端(机器人)可以将用户的查询语句到数据库(数据库中的数据如下表1所示)进行查找,并且将查找结果反馈至用户的前端页面。
[0078] 表1:数据库中的数据展示
[0079]
[0080] 实施例二
[0081] 本申请还提供了一种数据查询的装置,该装置可以设置于服务器中,也可以用于执行实施例一中的方法步骤,如图4所示,该装置可以包括:接收单元40,用于接收到用户的数据查询语句;确定单元42,用于确定数据查询语句中的多个实体;映射单元44,用于根据预设的映射关系,映射得到多个实体中每个实体对应的统一语义标签,其中,映射关系为根据数据库以及语料库生成;查询单元46,用于将包含每个实体对应的统一语义标签的数据查询语句从数据库中进行查询,得到数据查询结果。
[0082] 通过上述装置,与现有技术相比,本方案无需人工预置问答对,只需要预先根据语料库以及数据库建立一个映射关系,即可针对用户输入的非规范化的数据查询语句进行规范化处理,然后到数据库中进行查询以得到查询结果,因此,本方案解决了现有的人机对话技术不能满足于针对海量数据的数据库的查询的需求的技术问题。
[0083] 可选的,装置还包括:抽取单元,用于抽取数据库中的数据;处理单元,用于通过词向量模型对数据库中的数据进行处理,得到多个词语组,其中,每个词语组中包括多个相似的词语;统计单元,用于统计每个词语组中的每个词语在语料库中出现的频次;第一确定单元,用于将频次超过预设频次的词语确定为其所在的词语组中的统一语义标签;查找单元,用于在语料库中查找得到与统一语义标签相同或者相似的语料词语;建立单元,用于将统一语义标签以及语料词语之间的关联关系建立为映射关系。
[0084] 可选的,装置包括:第二确定单元,用于从用户业务系统确定用户的查看权限;输出单元,用于根据查看权限输出查询结果的部分或者全部。
[0085] 可选的,本申请还提供了一种计算机设备,包括存储器和处理器,存储器上存储有计算机指令,计算机指令在由处理器执行时导致根据上述实施例一中的数据查询的方法被执行。
[0086] 可选的,本方案提供了一种非暂时性计算机可读存储介质,其上存储有计算机程序,计算机程序在由处理器执行时导致上述实施例一中的数据查询的方法被执行。
[0087] 应理解,本文中前述关于本发明的方法所描述的具体特征、操作和细节也可类似地应用于本发明的装置和系统,或者,反之亦然。另外,上文描述的本发明的方法的每个步骤可由本发明的装置或系统的相应部件或单元执行。
[0088] 应理解,本发明的装置的各个模块/单元可全部或部分地通过软件、硬件、固件或其组合来实现。所述各模块/单元各自可以硬件或固件形式内嵌于计算机设备的处理器中或独立于所述处理器,也可以软件形式存储于计算机设备的存储器中以供处理器调用来执行所述各模块/单元的操作。所述各模块/单元各自可以实现为独立的部件或模块,或者两个或更多个模块/单元可实现为单个部件或模块。
[0089] 在一个实施例中,提供了一种计算机设备,其包括存储器和处理器,所述存储器上存储有可由处理器执行的计算机指令,所述计算机指令在由所述处理器执行时指示所述处理器执行本发明的方法的各步骤。该计算机设备可以广义地为服务器、终端,或任何其他具有必要的计算和/或处理能力的电子设备。在一个实施例中,该计算机设备可包括通过系统总线连接的处理器、存储器、网络接口、通信接口等。该计算机设备的处理器可用于提供必要的计算、处理和/或控制能力。该计算机设备的存储器可包括非易失性存储介质和内存储器。该非易失性存储介质中或上可存储有操作系统、计算机程序等。该内存储器可为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口和通信接口可用于与外部的设备通过网络连接和通信。该计算机程序被处理器执行时执行本发明的用于电池充电的方法的步骤。
[0090] 本发明可以实现为一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由处理器执行时导致本发明的方法的步骤被执行。在一个实施例中,所述计算机程序被分布在网络耦合的多个计算机设备或处理器上,以使得所述计算机程序由一个或多个计算机设备或处理器以分布式方式存储、访问和执行。单个方法步骤/操作,或者两个或更多个方法步骤/操作,可以由单个计算机设备或处理器或由两个或更多个计算机设备或处理器执行。一个或多个方法步骤/操作可以由一个或多个计算机设备或处理器执行,并且一个或多个其他方法步骤/操作可以由一个或多个其他计算机设备或处理器执行。一个或多个计算机设备或处理器可以执行单个方法步骤/操作,或执行两个或更多个方法步骤/操作。
[0091] 本领域普通技术人员可以理解,本发明的方法步骤可以通过计算机程序来指示相关的硬件如计算机设备或处理器完成,所述的计算机程序可存储于非暂时性计算机可读存储介质中,该计算机程序被执行时导致本发明的步骤被执行。根据情况,本文中对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘等。易失性存储器的示例包括随机存取存储器(RAM)、外部高速缓冲存储器等。
[0092] 以上描述的各技术特征可以任意地组合。尽管未对这些技术特征的所有可能组合进行描述,但这些技术特征的任何组合都应当被认为由本说明书涵盖,只要这样的组合不存在矛盾。
[0093] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。