CN112988784B - 数据查询方法、查询语句生成方法及其装置 - Google Patents
数据查询方法、查询语句生成方法及其装置 Download PDFInfo
- Publication number
- CN112988784B CN112988784B CN202110450910.XA CN202110450910A CN112988784B CN 112988784 B CN112988784 B CN 112988784B CN 202110450910 A CN202110450910 A CN 202110450910A CN 112988784 B CN112988784 B CN 112988784B
- Authority
- CN
- China
- Prior art keywords
- query
- query statement
- fragments
- natural language
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Acoustics & Sound (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据查询方法、查询语句生成方法及其装置。该数据查询方法包括:接收用户通过用户终端输入的自然语言问句;基于自然语言问句,利用深度学习模型确定第一查询语句片段集合,第一查询语句片段集合包括结构化查询语言的语句的片段;基于自然语言问句,利用预设的句式模板确定第二查询语句片段集合,第二查询语句片段集合包括结构化查询语言的语句的片段;基于第一查询语句片段集合和第二查询语句片段集合生成结构化查询语言的语句;根据结构化查询语言的语句进行数据查询,以获得查询结果;以及将查询结果发送至用户终端。本申请实现了基于自然语言进行数据查询,降低了数据查询的难度,提高了数据查询的方便性。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据查询方法、查询语句生成方法及其装置。
背景技术
随着数据时代的来临,数据的高效应用变的愈加重要。数据通常存储在数据库中。当需要时,相关人员可以通过编写查询语句从数据库中查询数据。
然而,这种数据查询方式不够方便,尤其是对于不具备数据查询知识的业务人员来说,数据查询的难度较大。
发明内容
本申请提供一种数据查询方法、数据查询装置、查询语句生成方法、查询语句生成装置和电子设备。
第一方面,提供一种数据查询方法。该数据查询方法包括:接收用户通过用户终端输入的自然语言问句;基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句;根据所述结构化查询语言的语句进行数据查询,以获得查询结果;以及将所述查询结果发送至所述用户终端。
结合第一方面,在一些实施例中,所述基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,包括:对所述自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;将所述拼接结果输入所述深度学习模型,以获得所述第一查询语句片段集合。
结合第一方面,在一些实施例中,该数据查询方法还包括:确定多个数据集中的每个数据集相对于所述自然语言问句的相似度;根据每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集,其中,所述确定多个数据集中的每个数据集相对于所述自然语言问句的相似度,包括:从所述自然语言问句中确定多个关键词;将所述多个数据集中的每个数据集的字段名和字段成员与分别与所述多个关键词进行相似度比对,以获得每个数据集相对于所述多个关键词的多个相似度;针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将所述加权平均相似度作为每个数据集相对于所述自然语言问句的相似度。
结合第一方面,在一些实施例中,该数据查询方法还包括:基于所述自然语言问句确定用户的意图,其中,所述基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,包括:在所述用户的意图为查询数据的情况下,基于所述自然语言问句,利用所述深度学习模型确定所述第一查询语句片段集合。
结合第一方面,在一些实施例中,该数据查询方法还包括:在所述用户的意图为查找已有报表的情况下,确定与所述自然语言问句对应的目标已有报表,并将所述目标已有报表发送至所述用户终端;和/或在所述用户的意图为闲聊的情况下,确定与所述自然语言问句对应的答复,并将所述答复发送至所述用户终端。
结合第一方面,在一些实施例中,所述基于所述自然语言问句确定用户的意图,包括:确定所述自然语言问句中是否存在预设的指示词;在所述自然语言问句中存在所述指示词的情况下,根据多个已有报表中的每个已有报表相对于所述自然语言问句的相似度,确定所述多个已有报表中是否存在目标已有报表,其中所述目标已有报表相对于所述自然语言问句的相似度大于第一阈值;在所述多个报表中存在所述目标已有报表的情况下,将所述用户的意图确定为查找已有报表;在所述自然语言问句中不存在所述指示词的情况下,或在所述多个报表中不存在所述目标已有报表的情况下,根据多个数据集中每个数据集相对于所述自然语言问句的相似度,确定所述多个数据集中是否存在目标数据集,其中所述目标数据集相对于所述自然语言问句的相似度大于第二阈值;在所述多个数据集中存在所述目标数据集的情况下,将所述用户的意图确定为查询数据;在所述多个数据集中不存在所述目标数据集的情况下,将所述用户的意图确定为闲聊。
结合第一方面,在一些实施例中,所述深度学习模型以BERT模型作为编码层。
第二方面,提供一种查询语句生成方法。该方法包括:基于自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;以及基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句。
第三方面,提供一种数据查询装置。该数据查询装置包括:接收模块,用于接收用户通过用户终端输入的自然语言问句;第一确定模块,用于基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;第二确定模块,用于基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;生成模块,用于基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句;查询模块,用于根据所述结构化查询语言的语句进行数据查询,以获得查询结果;以及发送模块,用于将所述查询结果发送至所述用户终端。
第四方面,提供一种查询语句生成装置。该装置包括:第一确定模块,用于基于自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;第二确定模块,用于基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;生成模块,用于基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句。
第五方面,提供一种电子设备。该电子设备包括:与存储器耦合的处理器,被配置为基于所述存储器中存储的指令,执行如第一方面所述的数据查询方法,或执行如第三方面所述的查询语句生成方法。
本申请提供的数据查询方法能够基于自然语言问句,生成结构化查询语句,实现基于自然语言进行数据查询,从而降低了数据查询的难度,提高了数据查询的方便性。此外,分别基于深度学习模型和预设的句式模板生成第一和第二查询语句片段集合,并根据第一和第二查询语句片段集合生成查询语句,能够提高生成的查询语句的准确性。
附图说明
图1所示为根据本申请一实施例的数据查询方法的应用环境的示意图。
图2所示为根据本申请一实施例的数据查询方法的示意性流程图。
图3所示为根据本申请一实施例的确定目标数据集的示意性流程图。
图4所示为根据本申请一实施例的确定数据集与自然语言问句的相似度的示意性流程图。
图5所示为根据本申请一实施例的确定用户的意图的方法的流程示意图。
图6所示为根据本申请一示例的数据查询方法的示意性流程图。
图7所示为根据本申请一实施例的数据查询装置的结构示意图。
图8所示为根据本申请一实施例的查询语句生成方法的示意性流程图。
图9所示为根据本申请一实施例的查询语句生成装置的结构示意图。
图10所示为根据本申请一实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
本申请使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“根据”是“至少部分地根据”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其它术语的相关定义将在下文描述中给出。
图1所示为根据本申请一实施例的数据查询方法的应用环境的示意图。本申请提供的数据查询方法,可以应用于如图1所示的应用环境中。
如图1所示,本申请实施例提供的数据查询方法涉及用户终端100和服务器端200。用户终端100和服务器端200通信连接。
用户终端100例如可以但不限于是台式电脑、笔记本电脑、平板电脑和智能手机等用户终端设备。服务器端200例如可以由本地服务器设备或云端服务器来实现。
应当理解,图1所示出的应用环境仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
图2所示为根据本申请一实施例的数据查询方法的示意性流程图。
如图2所示,数据查询方法S100例如可以包括步骤S110~S160。数据查询方法S100例如可以由服务器端实现。
在步骤S110中,接收用户通过用户终端输入的自然语言问句。
示例性地,用户终端可以显示交互界面,以供用户输入自然语言问句。用户输入自然语言问句后,用户终端可以将自然语言问句发送至服务器端。
用户输入的自然语言问句可以是文字形式,也可以是语音形式。若用户输入的自然语言问句为语音形式,则将其转换为文字形式。
在步骤S120中,基于自然语言问句,利用深度学习模型确定第一查询语句片段集合。
具体来说,服务器端可以将自然语言问句与目标数据集的所有字段的字段名进行拼接,然后,将拼接结果输入到深度学习模型中,从而得到第一查询语句片段集合。
数据集例如可以是存储在数据库中的数据表。一个数据集可以仅包括一张数据表,也可以包括多张数据表。数据表可以是物理表,也可以是逻辑表。目标数据集是指与用户输入的自然语言问句对应的数据集。换句话说,用户输入自然语言问句的目的是查找目标数据,而目标数据存储在目标数据集中。
大多数情况下,数据库中的数据表较多,此时,需要从数据库中确定出目标数据集。
目标数据集的确定方式有多种,对此,本申请实施例不作具体限定。
在某些实施例中,可以基于自然语言问句确定目标数据集。在某些实施例中,也可以也可以在用户终端上显示交互界面,显示可供选择的多个数据集,以便用户手动选择目标数据集。
应当理解,在某些实施例中,也可以不确定目标数据集。例如,数据库中可能仅有一张数据表,或仅有少量的几张数据表。这种情况下,无需确定目标数据集,仅需要将数据库中的全部的字段名与自然语言问句拼接,并将拼接结果输入到深度学习模型即可。
查询语句片段集合包括结构化查询语言(Structured Query Language, SQL)的语句的片段,一个查询语句片段集合可以包括一个或多个片段,这些片段可以被拼接成结构化查询语言的语句。或者可以说,这些查询语句片段是构成结构化查询语言的语句的代码片段。
出于简便的目的,在下文中,将结构化查询语言的语句简称为结构化查询语句,或SQL语句。
通常,一条完整的SQL语句包括多个子句,例如,Select子句、where子句以及having子句等等。在某些实施例中,SQL语句中的一个子句便为的一个片段,也就是说,一个查询语句片段集合可以包括一个或多个子句。
拼接结果的形式例如可以为:[CLS], Q, [SEP], C1, T1, [SEP], C2, T2,…,[SEP], Cn, Tn, [SEP]。
[CLS]为标志位,[SEP]为分隔符,Q为自然语言问句,Ci为目标数据集的各字段的字段名,Ti为目标数据集的各字段的数据类型,i∈(1,n),n为目标数据集所包含的字段的数量。
示例性地,目标数据集的字段的数据类型可以包括字符串类型(即text类型)和数值类型(即real类型)。
深度学习模型例如可以包括BERT模型和多个全连接层。多个全连接层例如可以包括第一全连接层、第二全连接层和第三全连接层。
BERT模型可以用于基于输入的拼接结果,得到拼接结果整体对应的向量 、自然语言问句Q对应的向量 、各字段的字段名和数据类型对应的向量 ,以及标志位[CLS]对应的向量 。标志位[CLS]初始为随机数,在深度模型的学习过程中记录向量和向量之间的关系,以便BERT模型基于输入的拼接结果确定标志位[CLS]对应的向量。
将向量 分别输入第一全连接层,第二全连接层,和第三全连接层,将向量 输入第一全连接层,将向量 输入第二和第三全连接层。取第一全连接层输出结果的向量 ,利用softmax函数预测Where子句中各条件之间的连接符。取第二全连接层输出结果的向量 ,利用softmax函数预测Select子句和聚合函数。取第三全连接层输出结果的向量 ,利用softmax函数预测Where子句。
以此方式,将拼接结果输入到深度学习模型后,便可以得到深度学习模型输出的Select子句、Where子句、Where子句中各条件之间的连接符以及聚合函数等输出结果。这些输出结果即为查询语句片段集合。将这些输出结果进行拼接,便可以得到一条能够进行数据查询的SQL语句。
深度学习模型的训练方法为现有技术,本申请实施例对此不做具体限定。示例性地,可以建立包括多个训练样本的训练集,利用训练集中的训练样本训练深度学习模型。每个训练样本可以包括输入数据和输出结果。输入数据可以为自然语言问句和目标数据集的字段名和字段的数据类型的拼接结果,输出结果可以为查询语句片段集合。
虽然,在该实施例中,在拼接自然语言问句和字段名时加入了字段的数据类型。但是,在本申请的其它实施例中,也可以仅拼接自然语言问句和字段名,而不拼接字段的数据类型。通过实践研究发现,在拼接自然语句和字段名时,加入字段的数据类型,能够显著地提高深度学习模型输出的查询语句元素的准确性。
在步骤S130中,基于自然语言问句,利用预设的句式模板确定第二查询语句片段集合。
句式模板可以由占位符和空位组成。举例来说,在句式模板“X年X”中,“年”为占位符,“年”前后的“X”表示空位。
这样的句式模板可以有很多,例如,还可以包括“X年X月X”或“X的X”等等。
这些句式模板例如可以通过人工编写的方式获得。通过充分分析用户的常见表达方式,可以归纳总结出很多句式模板,从而建立成句式模板库。
应当理解,以上句式模板仅仅是举例说明,句式模板库并非仅包含这些句式模板,也并非一定要包含这些模板。本领域技术人员可以根据这一规则,编写足够数量的句式模板,以满足实际需求。
接收到自然语言问句后,可以将其与句式模板进行匹配,以从多个句式模板中确定出匹配度最高的句式模板组合。该句式模板组合可以仅包含一个句式模板,也可以包含多个句式模板。
鉴于大多数语言,例如汉语、英语等,都满足投射性假设。因此,通过上述匹配过程,可以从句式模板库中找到匹配度最高的一个句式模板组合,其可以不重、不漏以及不交叉地覆盖自然语言问句中的每一个词,以使得该句式模板组合的概率对数之和最大(即信息量之和最小)。
示例性地,可以先将自然语言问句进行分词,得到分词结果。然后,将分词结果与句式模板进行匹配,具体而言,可以基于句式模板的占位符进行匹配。
例如,可以将句式模板库中的多个句式模板以单独对比的方式和组合在一起进行对比的方式,与自然语言问句进行匹配,以得到每个句式模板组合的匹配得分(或称为相似度得分)。可选地,这一匹配过程,可以通过递归算法来实现。
为了使匹配过程更加快速,在某些实施例中,可以将句式摸版读取到Trie树中,利用Trie扫描分词结果,从而快速地从句式模板库中确定出与自然语言问句匹配度最高的句式模板。
完成匹配后,可以基于匹配到的句式模板组合对分词结果进行分段处理。分段处理是指,将分词结果分成多个词块集合。每个词块集合里可以包括一个或多个词块。
然后,可以将每个词块集合分别与目标数据集的字段名称和字段成员进行相似度对比,以找到相似度大于预设阈值的字段名和字段成员。字段成员是指数据表中每一列所包含的数据项。
根据匹配到的字段名,可以确定所要查询的字段,基于此,可以得到Select子句。根据匹配到的字段成员,可以确定出筛选条件(即:某一字段下,哪些字段成员被查询),基于此,可以得到Where子句以及Where子句中各条件之间的连接符。以此方式,便可以得到第二查询语句片段集合。
出于清楚的目的,下面通过举例的方式,对上述方案进行详细描述。
例如,对于问句“2019年销量”,可以首先进行分词处理,得到分词结果:“2019”、“年”和“销量”。然后,可以对该分词结果与句式库中的模板进行匹配,匹配到模板“X年X”。根据该模板,可以将分词结果分段为:词块“2019年”和词块“销量”。将词块“2019年”和字块“销量”分别与目标数据集的字段名和字段成员进行匹配,可以匹配到字段名为“年份”的字段和该字段的字段成员“2019年”,以及字段名为“销量”的字段。这样,便可以得到Select子句和Where子句等查询语句片段。
例如,对于问句“2019年丰田汽车的销量”,可以首先进行分词处理,得到分词结果:“2019”、“年”、“丰田”、“汽车”“的”和“销量”。然后,可以对该分词结果与句式库中的模板进行匹配,匹配到模板“X年X”和模板“X的X”组合得到的模板“X年X的X”。根据该模板,可以将分词结果分段为:词块“2019年”、词块“丰田汽车”和词块“销量”。将这些字块分别与目标数据集的字段名和字段成员进行匹配,可以匹配到字段名为“年份”的字段和该字段的字段成员“2019年”,字段名为“销量”的字段,以及字段名为“汽车生产商”的字段和该字段下的字段成员“丰田”。这样,便可以得到相应的查询语句片段。
考虑到数据查询需求的复杂性,为了满足复杂的查询需求,在一些实施例中,句式模板可以包括第一类模板和第二类模板。若匹配到的句式摸版组合仅包含第一类模板,则可以按照上述的方案进行处理;若包含第二类模板,则需要根据预设的处理规则进行处理。
具体而言,可以设置多个处理规则,以使得每个第二类模板都有相对应的处理规则。这样,当匹配到第二类模板时,便可以根据对应的处理规则进行处理。
举例来说,第二类模板可以包括“近X个月X”、“X前X的X”等等。
例如,对于问句“近三个月的销量”,可以匹配到模板“近X个月X”。分段后可以得到词块“近三个月”和词块“销量”。此类句式模板对应的规则为替换规则,即将分段后的至少一个词块进行替换。具体来说,若本月为3月,则可以将词块“近三个月”替换为词块“1月”、“2月”和“3月”,然后,将替换后的词块与目标数据集的字段名称和字段成员进行匹配,从而得到相应的查询语句片段。
例如,对于问句“2019年销量前5的车企”,可以匹配到模板“X年X”与模板X前X的X”的组合,即“X年X前X的X”。分段后得到词块“2019年”、词块“销量前5”以及词块“车企”。对于词块“2019年”和“车企”可以直接与目标数据集的字段名称和字段成员进行匹配。具体来说,根据词块“2019年”可以确定出字段名为“年份”的字段,并确定出字段成员为“2019年”;根据词块“车企”可以确定出字段名为“车企”的字段,这样便可以得到与这两个字块对应的查询语句片段。对于词块“销量前5”,进行匹配后,可以确定出字段名为“销量”的字段,从而得到Select子句,然后,可以将改字段下排序前5的字段成员确定出来,从而得到Where子句,这样便可以得到相应的查询语句片段。
应当理解,对于第二类模板以及与之对应的处理规则,本申请实施例不做具体限定,本领域技术人员可以根据实际需求进行设置。
在步骤S140中,基于第一查询语句片段集合和第二查询语句片段集合生成结构化查询语句。
示例性地,服务器端在确定第一查询语句片段集合和第二查询语句片段集合后,可以合并第一查询语句片段集合和第二查询语句片段集合,以获得合并后的查询语句片段集合。
服务器端可以根据预设的结构化查询语句模板,对合并后的查询语句片段集合进行拼接处理,以获得结构化查询语句。
合并第一查询语句片段集合和第二查询语句片段集合的方式例如可以是:对于第一查询语句片段集合或第二查询语句片段集合独有的部分,予以保留;对于第一查询语句片段集合和第二查询语句片段集合均具有且相同的部分,进行去重处理;对于第一查询语句片段集合和第二查询语句片段集合均具有且不同的部分,则可以以第一查询语句片段集合或第二查询条件中的一个为准,删除来自另外一个的该部分。
以结构化查询语言为例,若第一查询语句片段集合包括:Select子句(S1)、Where子句(W1),第二查询语句片段集合包括:Where子句(W2)、ORDER BY子句(O1)。这里,S1和O1分别为第一查询语句片段集合和第二查询语句片段集合独有的部分。若W1和W2的内容相同,则W1和W2为第一查询语句片段集合和第二查询语句片段集合均具有且相同的部分;若W1和W2的内容不同,则W1和W2为第一查询语句片段集合和第二查询语句片段集合均具有且不同的部分。
通过实践发现,相较于深度学习模型,利用句式模板获取的查询语句片段集合的准确性更高。因此,在某些优选的实施例中,在合并第一查询语句片段集合和第二查询语句片段集合时,对于第一查询语句片段集合和第二查询语句片段集合均具有且不同的部分,可以以第二查询语句片段集合为准,即:保留第二查询语句片段集合的该部分,删除第一查询语句片段集合的该部分。
在步骤S150中,根据结构化查询语句进行数据查询,以获得查询结果。
服务器端得到结构化查询语句后,可以根据该结构化查询语句从数据库中进行数据查询,以获得查询结果。
在步骤S160中,将数据查询结果发送至用户终端。
服务器端获得数据查询结构后,可以将数据查询结果发送至用户终端,以便在通过用户终端向用户显示数据查询结果。
本申请提供的数据查询方法能够基于自然语言问句,生成结构化查询语句,实现基于自然语言进行数据查询,从而降低了数据查询的难度,提高了数据查询的方便性。
此外,分别基于深度学习模型和预设句式模板生成第一和第二查询语句片段集合,并根据第一和第二查询语句片段集合生成查询语句,能够提高生成的查询语句的准确性。
考虑到在某些应用场景下,需要从数据库中的多个数据集中确定目标数据集。因此,在一些实施例中,前述实施例的数据查询方法还可以包括步骤:基于自然语言问句确定目标数据集。
图3所示为根据本申请一实施例的确定目标数据集的方法的示意性流程图。
如图3所示,确定目标数据集的方法S200可以包括步骤S210和S220。方法S220可以由服务器端实现。
在步骤S210中,确定多个数据集中的每个数据集相对于自然语言问句的相似度。
具体来说,服务器端可以将数据库中的多个数据集分别与自然语言问句进行相似度比对,从而确定每个数据集相对于自然语言问句的相似度。
确定每个数据集相对于自然语言问句的相似度的方法可以有多种,本申请实施例对此不作具体限定。下面结合附图,给出一种示例性的实现方式。
图4为根据本申请一实施例的确定数据集与自然语言问句的相似度的方法的示意性流程图。
如图4所示,该方法包括步骤S211~S214。该方法可以由服务器端实现。
在步骤S211中,从自然语言问句中确定多个关键词。
例如,若自然语言问句为“查看2020年上海的销售额”,则可以从中确定出关键词“2020年”、“上海”和“销售额”。
确定关键词的方式可以有多种,本申请实施例对此不做具体限定。示例性地,可以采用TF-IDF(Term Frequency-Inverse Document Frequency)算法从自然语言问句中提取关键词。
在步骤S212中,将多个数据集中的每个数据集的字段名和字段成员与分别与多个关键词进行相似度比对,以获得每个数据集相对于多个关键词的多个相似度。
具体来说,可以将每个数据集所包含的所有字段名和所有字段成员与分别与多个关键字中的每个关键词进行相似度比对。字段名是指数据表中每一列的标识,或称为每一列的列名。字段成员是指数据表中每一列所包含的数据项。
举例来说,若某一数据集仅包含字段名为“年份”的字段和字段名为“城市”的字段。字段名为“年份”的字段下仅包含“2018”、“2019”和“2020”这3个字段成员。字段名为“城市”的字段下仅包含“北京”、“上海”和“深圳”这3个字段成员。
在将该数据集与某一关键词进行相似度比对时,可以将该关键词分别与字段名“年份”和“城市”进行相似度比对,并将该关键词分别与字段成员“2018”、“2019”、“2020”、“北京”、“上海”和“深圳”进行相似度比对。这样,可以获得该关键词相对于字段名“年份”和“城市”的相似度a1和a2,以及该关键词相对于字段成员“2018”、“2019”、“2020”、“北京”、“上海”和“深圳”的相似度b1、b2、b3、b4、b5和b6。最后将a1、a2、b1、b2、b3、b4、b5和b6相加,便可得到该数据集相对于该关键词的相似度Ri。通过这种方式可以获得该数据集相对于多个关键词的多个相速度R1、R2……Rn,其中n为多个关键词的数量。
在步骤S213中,针对每个数据集,将其相对于多个关键词的多个相似度进行加权平均,以获得每个数据集的加权平均相似度。
具体来说,若某一数据集相对于多个关键词中每个关键词的相似度分别为R1、R2……Rn,则可以对R1、R2……Rn加权平均,以得到该数据集的加权平均相似度R。
在步骤S214中,将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
服务器端确定每个数据集的加权平均相似度后,可以将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
可选地,在某些实施例中,步骤S212和S213可以通过SIM-BERT模型实现。具体来说,可以将每个数据集所包含的字段名称和字段成员之间的对应关系梳理成知识图谱,并将知识图谱输入到训练好的SIM-BERT模型,以得到每个数据集对应的向量。然后,可以将从自然语言问句中确定的多个关键词输入到该SIM-BERT模型中,以得到每个关键词对应的向量。然后,利用SIM-BERT模型对每个数据集的对应的向量和每个关键词对应的向量分别进行匹配,匹配规则可以为将每个关键词分别与每个数据集的字段名和字段成员进行相似度计算,从而将每个数据集相对于多个关键词的多个相似度进行加权平均,以得到每个数据集的加权平均相似度。
通过将每个数据集的所有字段名和所有字段成员与每个关键词进行相似度比对,能够准确地确定每个数据集与自然语言问句的相似度,进而能够提高确定目标数据集的准确性。
在步骤S220中,根据每个数据集相对于自然语言问句的相似度,从多个数据集中确定所述目标数据集。
在某些实施例中,可以将多个数据集中相对于自然语言问句的相似度最高的数据集确定为目标数据集。如此设置,可以确保目标数据集所包含数据的准确性。
在某些实施例中,也可以设置相似度阈值,将多个数据集中相对于自然语言问句的相似度大于阈值的一个或多个数据集确定为目标数据集。如此设置,可以确保目标数据集所包含数据的全面性。
通过确定多个数据集相对于自然语言问句的相似度,实现了从多个数据集中确定目标数据集。
考虑到在某些应用场景下,用户的意图并不是查询数据,此时如果直接将自然语言问句按照查询数据的方式进行处理,则很有可能无法得到数据查询结果。由于用户的意图并非查询数据,因此,即使侥幸得到某一数据查询结果,也仍旧无法满足用户的实际需求。
为了解决这一问题,在一些实施例中,前述实施例的数据查询方法还可以包括步骤:根据自然语言问句确定用户的意图。
用户的意图可能有多种,仔细研究发现,用户的意图可能包括:查询数据和/或打开已有报表和/或闲聊等。
可选地,在某些实施例中,方法S100的步骤S120可以包括:服务器端在确定用户的意图为查询数据的情况下,基于自然语言问句和目标数据集,利用深度学习模型确定第一查询语句片段集合。
也就是说,在确定用户的意图为查询数据的情况下,可以执行方法S100中的步骤S120到S160,以实现数据查询。
可选地,在某些实施例中,方法S100还可以包括步骤:服务器端在确定用户的意图为查找已有报表的情况下,确定与自然语言问句对应的目标已有报表,并将目标已有报表发送至终端,以便在用户终端上进行显示。
已有报表是指当前用户或其他用户已经制作好的报表。不同于查询数据,确定目标已有报表仅需要从多个已有报表中找到目标报表已有报表即可,无需生成查询语句。
可选地,在某些实施例中,方法S100还可以包括步骤:服务器端在确定用户的意图为闲聊的情况下,确定与自然语言问句对应的答复,并将确定的答复发送至用户终端,以便在用户终端上进行显示。
闲聊是指常见问题解答,即FAQ(Frequently Asked Questions)。可以针对常见的问答问题建立知识库,然后可以基于自然语言问句从知识库中查找对应的答复。实现FAQ的方式可以参见现有技术,本申请实施例对此不作具体限定。
通过确定用户的意图,更好地满足了用户的实际需求,提高了用户体验。
确定用户的意图的方式可以有多种,本申请实施例对此不作具体限定。下面结合附图给出一种示例性的实现方式。
图5所示为根据本申请一实施例的确定用户的意图的方法的流程示意图。
如图5所示,方法S300包括步骤S310~S360。方法S300可以由服务器端实现。
在步骤S310中,确定自然语言问句中是否存在预设的指示词。
示例性地,服务器端可以从自然语言问句中抽取多个关键词,然后确定多个关键词中是否存在预设的指示词。
预设的指示词用于表示用户的意图为查找已有报表。
对于预设的指示词,本申请实施例不做具体限定。例如,预设的指示词可以包括“打开”。例如,预设的指示词也可以包括“报表”。
若自然语言问句中存在预设的指示词则执行步骤S320,若不存在,则执行步骤S340。
在步骤S320中,确定多个已有报表中是否存在目标已有报表。
示例性地,若自然语言问句中存在预设的指示词,则服务器端可以根据多个已有报表中的每个已有报表相对于自然语言问句的相似度,确定多个已有报表中是否存在目标已有报表。目标已有报表相对于自然语言问句的相似度大于第一阈值
具体来说,服务器端可以先确定每个已有报表相对于自然语言问句的相似度,然后将每个已有报表相对于自然语言问句的相似度与第一阈值对比,从而确定出多个已有报表中是否存在目标已有报表。
确定每个已有报表相对于自然语言问句的相似度的方法可以参考图4所示的确定数据集与自然语言问句的相似度的方法。也就是说,可以将每个已有报表的字段名和字段成员分别与从多个关键词进行相似度比对,以确定每个已有报表相对于多个关键词的多个相似度。然后,对针对每个已有报表,将其相对于多个关键词的多个相似度加权平均,以获得每个已有报表的加权平均相似度。最终,将每个已有报表的加权平均相似度作为每个已有报表相对于自然语言问句的相似度。
若多个已有报表中存在目标已有报表,则执行步骤S330,若不存在,则执行步骤S340。
在步骤S330中,将用户的意图确定为查找已有报表。
示例性地,若多个报表中存在目标已有报表,则服务器端将用户的意图确定为查找已有报表。然后可以将目标已有报表发送至用户终端,以便在用户终端上显示该目标报表。
在步骤S340中,确定多个数据集中是否存在目标数据集。
具体来说,服务器端可以先确定每个数据集相对于自然语言问句的相似度,然后将每个数据集相对于自然语言问句的相似度与第二阈值对比,从而确定出多个数据集中是否存在目标数据集。
确定每个数据集相对于自然语言问句的相似度的方法可以参考图4所示的确定数据集与自然语言问句的相似度的方法。也就是说,可以将每个数据集的字段名和字段成员分别与从多个关键词进行相似度比对,以确定每个数据集相对于多个关键词的多个相似度。然后,对针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度。最终,将每个数据集的加权平均相似度作为每个数据集相对于自然语言问句的相似度。
若多个数据集中存在目标数据集,则执行步骤S350,若不存在,则执行步骤S360。
在步骤S350中,将用户的意图确定为查询数据。
示例性地,若多个数据集中存在目标数据集,则服务器端可以将用户的意图确定为查询数据。然后,可以执行根据前述实施例的数据查询方法。
在步骤S360中,将用户的意图确定为闲聊。
示例性地,若多个数据集中不存在目标数据集,则服务器端可以将用户的意图确定为闲聊。然后,服务器端可以确定与自然语言问句对应的答复,并将答复发送至用户终端,以便在用户终端上显示该答复。
该实施例提供的确定用户意图的方法,能够准确地确定用户的意图,满足了实际使用需求,提高了用户体验。
图6所示为根据本申请一示例的数据查询方法的示意性流程图。
如图6所示,该示例S400包括步骤S410~S470。该示例可以由服务器端实现。
在步骤S410中,接收来自用户终端的自然语言问句。
在步骤S420中,确定自然语言问句中是否存在预设的指示词。若存在则执行步骤S430,若不存在则执行步骤S450。
确定自然语言问句中是否存在预设的指示词的方法可以参见前述实施例,为了简便,在此不做赘述。
在步骤S430中,确定多个已有报表中是否存在目标已有报表。若存在则执行步骤S440,若不存在则执行步骤S450。
确定多个已有报表中是否存在目标已有报表的方法可以参见前述实施例,为了简便,在此不做赘述。
在步骤S440中,向用户终端发送目标已有报表,以便用户终端对目标已有报表进行显示。
在步骤S450中,确定多个数据集中是否存在目标数据集。若存在则执行步骤S460,若不存在则执行步骤S470。
确定多个数据集中是否存在目标数据集的方法可以参见前述实施例,为了简便,在此不做赘述。
在步骤S460中,生成查询语句,进行数据查询并将数据查询结果发送至用户终端。
生成查询语句的方法可以参见前述实施例,为了简便,在此不做赘述。
在步骤S470中,确定与自然语言问句对应的答复,并将确定的答复发送至用户终端。
确定与自然语言问句对应的答复的方法可以参见前述实施例,为了简便,在此不做赘述。
考虑到在某些应用场景中,可能仅需要将自然语言问句生成结构化查询语句,而不必再进行数据查找及向用户发送查找到的数据。因此,本申请的其它实施例还提供一种查询语句的生成方法。
图7所示为根据本申请一实施例的查询语句生成方法的示意性流程图。
如图7所示,查询语句生成方法S500包括步骤S510~S530。该方法可以由服务器端实现。
在步骤S510中,基于自然语言问句,利用深度学习模型确定第一查询语句片段集合。
在步骤S520中,基于自然语言问句,利用预设的句式模板确定第二查询语句片段集合。
在步骤S530中,基于第一查询语句片段集合和第二查询语句片段集合生成结构化查询语句。
本申请提供的查询语句生成方法能够基于自然语言问句,生成结构化查询语句,实现基于自然语言对数据库中的数据进行查询,从而降低了数据查询的难度,提高了数据查询的方便性。此外,分别基于深度学习模型和句法结构分析生成第一和第二查询语句片段集合,并根据第一和第二查询语句片段集合生成查询语句,能够提高生成的查询语句的准确性。
在一些实施例中,方法S500的步骤S510可以包括:对自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;将拼接结果输入深度学习模型,以获得第一查询语句片段集合。
在一些实施例中,方法S500还可以包括:确定多个数据集中的每个数据集相对于自然语言问句的相似度;根据每个数据集相对于自然语言问句的相似度,从多个数据集中确定目标数据集,其中,确定多个数据集中的每个数据集相对于自然语言问句的相似度,包括:从自然语言问句中确定多个关键词;将多个数据集中的每个数据集的字段名和字段成员与分别与多个关键词进行相似度比对,以获得每个数据集相对于多个关键词的多个相似度;针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
上文结合图2至图6,详细描述了本申请的数据查询方法的方法实施例,下文结合图8,详细描述本申请的数据查询方法的装置实施例。方法实施例和装置实施例的描述相互对应,为了简洁,适当省略重复的描述。
图8所示为根据本申请一实施例的数据查询装置的结构示意图。
如图8所示,该数据查询装置300包括接收模块310、第一确定模块320、第二确定模块330、生成模块340、查询模块350和发送模块360。
接收模块310可以用于接收用户通过用户终端输入的自然语言问句。
第一确定模块320可以用于基于自然语言问句,利用深度学习模型确定第一查询语句片段集合。
第二确定模块330可以用于基于自然语言问句,利用预设的句式模板确定第二查询语句片段集合。
生成模块340可以用于基于第一查询语句片段集合和第二查询语句片段集合生成结构化查询语句。
查询模块350可以用于根据结构化查询语句进行数据查询,以获得数据查询结果。
发送模块360可以用于将数据查询结果发送至用户终端。
本申请提供的数据查询方法能够基于自然语言问句,生成结构化查询语句,实现基于自然语言对数据库中的数据进行查询,从而降低了数据查询的难度,提高了数据查询的方便性。此外,分别基于深度学习模型和预设的句式摸版生成第一和第二查询语句片段集合,并根据第一和第二查询语句片段集合生成查询语句,能够提高生成的查询语句的准确性。
在一些实施例中,第一确定模块320可以用于对自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;将拼接结果输入深度学习模型,以获得第一查询语句片段集合。
在一些实施例中,数据查询装置300还可以包括目标数据集确定模块。目标数据集确定模块可以包括相似度确定单元和数据集确定单元。
相似度确定单元可以用于确定多个数据集中的每个数据集相对于自然语言问句的相似度。
具体地,相似度确定单元可以用于从自然语言问句中确定多个关键词;将多个数据集中的每个数据集的字段名和字段成员与分别与多个关键词进行相似度比对,以获得每个数据集相对于多个关键词的多个相似度;针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
数据集确定单元可以用于根据每个数据集相对于自然语言问句的相似度,从多个数据集中确定目标数据集。
在一些实施例中,数据查询装置300还可以包括意图确定模块。
意图确定模块可以用于基于自然语言问句确定用户的意图。
第一确定模块320可以用于在用户的意图为查询数据的情况下,基于自然语言问句和目标数据集,利用深度学习模型确定第一查询语句片段集合。
在一些实施例中,数据查询装置300还可以包括已有报表确定模块和/或闲聊模块。
已有报表确定模块用于在用户的意图为查找已有报表的情况下,确定与自然语言问句对应的目标已有报表,并将目标已有报表发送至用户终端。
闲聊模块用于在用户的意图为闲聊的情况下,确定与自然语言问句对应的答复,并将答复发送至用户终端。
在一些实施例中,意图确定模块可以用于确定自然语言问句中是否存在预设的指示词;在自然语言问句中存在指示词的情况下,根据多个已有报表中的每个已有报表相对于自然语言问句的相似度,确定多个已有报表中是否存在目标已有报表,其中目标已有报表相对于自然语言问句的相似度大于第一阈值;在多个报表中存在目标已有报表的情况下,将用户的意图确定为查找已有报表;在自然语言问句中不存在指示词的情况下,或在多个报表中不存在目标已有报表的情况下,根据多个数据集中每个数据集相对于自然语言问句的相似度,确定多个数据集中是否存在目标数据集,其中目标数据集相对于自然语言问句的相似度大于第二阈值;在多个数据集中存在目标数据集的情况下,将用户的意图确定为查询数据;在多个数据集中不存在目标数据集的情况下,将用户的意图确定为闲聊。
上文结合图7,详细描述了本申请的查询语句生成方法的方法实施例,下文结合图9,详细描述本申请的查询语句生成方法的装置实施例。方法实施例和装置实施例的描述相互对应,为了简洁,适当省略重复的描述。
图9所示为根据本申请一实施例的查询语句生成装置的结构示意图。
如图9所示,查询语句生成装置400包括第一确定模块410、第二确定模块420和生成模块430。
第一确定模块410可以用于基于自然语言问句,利用深度学习模型确定第一查询语句片段集合。
第二确定模块420可以用于基于自然语言问句,利用预设的句式模板确定第二查询语句片段集合。
生成模块430可以用于基于第一查询语句片段集合和第二查询语句片段集合生成结构化查询语句。
本申请提供的查询语句生成装置能够基于自然语言问句,生成结构化查询语句,实现基于自然语言对数据库中的数据进行查询,从而降低了数据查询的难度,提高了数据查询的方便性。此外,分别基于深度学习模型和预设句式模板生成第一和第二查询语句片段集合,并根据第一和第二查询语句片段集合生成查询语句,能够提高生成的查询语句的准确性。
在一些实施例中,第一确定模块410可以用于对自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;将拼接结果输入深度学习模型,以获得第一查询语句片段集合。
在一些实施例中,查询语句生成装置400还可以包括目标数据集确定模块。目标数据集确定模块可以包括相似度确定单元和数据集确定单元。
相似度确定单元可以用于确定多个数据集中的每个数据集相对于自然语言问句的相似度。
具体地,相似度确定单元可以用于从自然语言问句中确定多个关键词;将多个数据集中的每个数据集的字段名和字段成员与分别与多个关键词进行相似度比对,以获得每个数据集相对于多个关键词的多个相似度;针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
数据集确定单元可以用于根据每个数据集相对于自然语言问句的相似度,从多个数据集中确定目标数据集。
图10所示为本申请一实施例提供的电子设备的结构示意图。
如图10所示,电子设备500包括:与存储器510耦合的处理器520,被配置为基于存储器510中存储的指令,执行前述实施例中的数据查询方法或查询语句生成方法。
本申请的其它实施例,还提供一种计算机可读可存储介质,其上存储有用于执行前述实施例中的数据查询方法或查询语句生成方法的指令。
本申请的其它实施例,还提供一种计算机程序产品。该计算机产品包括用于执行前述实施例中的数据查询方法或查询语句生成方法的代码。
应当理解,虽然术语“第一”或“第二”等可能在本申请中用来描述各种元素(如查询语句片段集合),但这些元素不被这些术语所限定,这些术语只是用来将一个元素与另一个元素区分开。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器端或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器端或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器端、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid statedisk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
接收用户通过用户终端输入的自然语言问句;
基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;
基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;
基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句;
根据所述结构化查询语言的语句进行数据查询,以获得查询结果;以及
将所述查询结果发送至所述用户终端,其中
所述基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句,包括:
合并所述第一查询语句片段集合和所述第二查询语句片段集合,以获得合并后的查询语句片段集合;以及
基于预设模板,对所述合并后的查询语句片段集合进行拼接,以获得所述结构化查询语言的语句,
其中所述合并所述第一查询语句片段集合和所述第二查询语句片段集合,包括:
对于所述第一查询语句片段集合和所述第二查询语句片段集合独有的部分,予以保留;
对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且相同的部分,进行去重处理;以及
对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且不同的部分,以所述第二查询语句片段集合的相应部分为准删除来自所述第一查询语句片段集合的相应部分,
其中所述基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,包括:
对所述自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;
将所述拼接结果输入所述深度学习模型,以获得所述第一查询语句片段集合。
2.根据权利要求1所述的数据查询方法,其特征在于,还包括:
确定多个数据集中的每个数据集相对于所述自然语言问句的相似度;
根据每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集,其中,
所述确定多个数据集中的每个数据集相对于所述自然语言问句的相似度,包括:
从所述自然语言问句中确定多个关键词;
将所述多个数据集中的每个数据集的字段名和字段成员与分别与所述多个关键词进行相似度比对,以获得每个数据集相对于所述多个关键词的多个相似度;
针对每个数据集,将其相对于多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;
将所述加权平均相似度作为每个数据集相对于所述自然语言问句的相似度。
3.根据权利要求1所述的数据查询方法,其特征在于,还包括:基于所述自然语言问句确定用户的意图,其中,所述基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,包括:
在所述用户的意图为查询数据的情况下,基于所述自然语言问句,利用所述深度学习模型确定所述第一查询语句片段集合。
4.根据权利要求3所述的数据查询方法,其特征在于,还包括:
在所述用户的意图为查找已有报表的情况下,确定与所述自然语言问句对应的目标已有报表,并将所述目标已有报表发送至所述用户终端;和/或
在所述用户的意图为闲聊的情况下,确定与所述自然语言问句对应的答复,并将所述答复发送至所述用户终端。
5.根据权利要求3所述的数据查询方法,其特征在于,所述基于所述自然语言问句确定用户的意图,包括:
确定所述自然语言问句中是否存在预设的指示词;
在所述自然语言问句中存在所述指示词的情况下,根据多个已有报表中的每个已有报表相对于所述自然语言问句的相似度,确定所述多个已有报表中是否存在目标已有报表,其中所述目标已有报表相对于所述自然语言问句的相似度大于第一阈值;
在所述多个报表中存在所述目标已有报表的情况下,将所述用户的意图确定为查找已有报表;
在所述自然语言问句中不存在所述指示词的情况下,或在所述多个报表中不存在所述目标已有报表的情况下,根据多个数据集中每个数据集相对于所述自然语言问句的相似度,确定所述多个数据集中是否存在目标数据集,其中所述目标数据集相对于所述自然语言问句的相似度大于第二阈值;
在所述多个数据集中存在所述目标数据集的情况下,将所述用户的意图确定为查询数据;
在所述多个数据集中不存在所述目标数据集的情况下,将所述用户的意图确定为闲聊。
6.根据权利要求1所述的数据查询方法,其特征在于,所述深度学习模型以BERT模型作为编码层。
7.一种查询语句生成方法,其特征在于,包括:
基于自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;
基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;以及
基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句,其中
所述基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句,包括:
合并所述第一查询语句片段集合和所述第二查询语句片段集合,以获得合并后的查询语句片段集合;以及
基于预设模板,对所述合并后的查询语句片段集合进行拼接,以获得所述结构化查询语言的语句,
其中所述合并所述第一查询语句片段集合和所述第二查询语句片段集合,包括:
对于所述第一查询语句片段集合和所述第二查询语句片段集合独有的部分,予以保留;
对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且相同的部分,进行去重处理;以及
对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且不同的部分,以所述第二查询语句片段集合的相应部分为准删除来自所述第一查询语句片段集合的相应部分,
其中所述基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,包括:
对所述自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;
将所述拼接结果输入所述深度学习模型,以获得所述第一查询语句片段集合。
8.一种数据查询装置,其特征在于,包括:
接收模块,用于接收用户通过用户终端输入的自然语言问句;
第一确定模块,用于基于所述自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;
第二确定模块,用于基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;
生成模块,用于基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句;
查询模块,用于根据所述结构化查询语言的语句进行数据查询,以获得查询结果;以及
发送模块,用于将所述查询结果发送至所述用户终端,其中
所述生成模块用于合并所述第一查询语句片段集合和所述第二查询语句片段集合,以获得合并后的查询语句片段集合,以及基于预设模板对所述合并后的查询语句片段集合进行拼接,以获得所述结构化查询语言的语句,
其中所述生成模块通过如下方式合并所述第一查询语句片段集合和所述第二查询语句片段集合:对于所述第一查询语句片段集合和所述第二查询语句片段集合独有的部分,予以保留;对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且相同的部分,进行去重处理;以及对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且不同的部分,以所述第二查询语句片段集合的相应部分为准删除来自所述第一查询语句片段集合的相应部分,
其中所述第一确定模块通过如下方式获得所述第一查询语句片段集合:对所述自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;以及将所述拼接结果输入所述深度学习模型,以获得所述第一查询语句片段集合。
9.一种查询语句生成装置,其特征在于,包括:
第一确定模块,用于基于自然语言问句,利用深度学习模型确定第一查询语句片段集合,其中所述第一查询语句片段集合包括结构化查询语言的语句的片段;
第二确定模块,用于基于所述自然语言问句,利用预设的句式模板确定第二查询语句片段集合,其中所述第二查询语句片段集合包括结构化查询语言的语句的片段;
生成模块,用于基于所述第一查询语句片段集合和所述第二查询语句片段集合生成结构化查询语言的语句,其中
所述生成模块用于合并所述第一查询语句片段集合和所述第二查询语句片段集合,以获得合并后的查询语句片段集合,以及基于预设模板对所述合并后的查询语句片段集合进行拼接,以获得所述结构化查询语言的语句,
其中所述生成模块通过如下方式合并所述第一查询语句片段集合和所述第二查询语句片段集合:对于所述第一查询语句片段集合和所述第二查询语句片段集合独有的部分,予以保留;对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且相同的部分,进行去重处理;以及对于所述第一查询语句片段集合和所述第二查询语句片段集合均具有且不同的部分,以所述第二查询语句片段集合的相应部分为准删除来自所述第一查询语句片段集合的相应部分,
其中所述第一确定模块通过如下方式获得所述第一查询语句片段集合:对所述自然语言问句、目标数据集的字段数据类型和字段名进行拼接处理,以获得拼接结果;以及将所述拼接结果输入所述深度学习模型,以获得所述第一查询语句片段集合。
10.一种电子设备,其特征在于,包括:与存储器耦合的处理器,被配置为基于所述存储器中存储的指令,执行如权利要求1~6中任一项所述的数据查询方法或权利要求7所述的查询语句生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450910.XA CN112988784B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、查询语句生成方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450910.XA CN112988784B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、查询语句生成方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988784A CN112988784A (zh) | 2021-06-18 |
CN112988784B true CN112988784B (zh) | 2021-09-24 |
Family
ID=76340124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110450910.XA Active CN112988784B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、查询语句生成方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988784B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168726B (zh) * | 2022-02-11 | 2022-05-31 | 阿里巴巴达摩院(杭州)科技有限公司 | 语句处理方法、装置、存储介质及系统 |
CN117056351B (zh) * | 2023-10-07 | 2024-02-09 | 腾讯科技(深圳)有限公司 | Sql语句生成方法、装置及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063221B (zh) * | 2018-11-02 | 2021-04-09 | 北京百度网讯科技有限公司 | 基于混合策略的查询意图识别方法和装置 |
CN109284363B (zh) * | 2018-12-03 | 2023-03-14 | 北京羽扇智信息科技有限公司 | 一种问答方法、装置、电子设备及存储介质 |
CN109977294B (zh) * | 2019-04-03 | 2020-04-28 | 三角兽(北京)科技有限公司 | 信息/查询处理装置、查询处理/文本查询方法、存储介质 |
CN112035730B (zh) * | 2020-11-05 | 2021-02-02 | 北京智源人工智能研究院 | 一种语义检索方法、装置及电子设备 |
CN112270182B (zh) * | 2020-11-12 | 2022-11-08 | 佰聆数据股份有限公司 | 一种基于多轮对话问答式的分析思路衍生方法、系统及存储介质 |
CN112507135B (zh) * | 2020-12-17 | 2021-11-16 | 深圳市一号互联科技有限公司 | 知识图谱查询模板构建方法、装置、系统、以及存储介质 |
-
2021
- 2021-04-26 CN CN202110450910.XA patent/CN112988784B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112988784A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107256267B (zh) | 查询方法和装置 | |
CN106897428B (zh) | 文本分类特征提取方法、文本分类方法及装置 | |
US9754021B2 (en) | Method for deducing entity relationships across corpora using cluster based dictionary vocabulary lexicon | |
CN110929125B (zh) | 搜索召回方法、装置、设备及其存储介质 | |
CN102262641B (zh) | 网络查询中的在线手写识别系统和方法 | |
US20130060769A1 (en) | System and method for identifying social media interactions | |
CN112989010A (zh) | 数据查询方法、数据查询装置和电子设备 | |
US11797593B2 (en) | Mapping of topics within a domain based on terms associated with the topics | |
US20220414137A1 (en) | Automatic labeling of text data | |
US11436446B2 (en) | Image analysis enhanced related item decision | |
CN112988784B (zh) | 数据查询方法、查询语句生成方法及其装置 | |
CN110737774A (zh) | 图书知识图谱的构建、图书推荐方法、装置、设备及介质 | |
US20220121668A1 (en) | Method for recommending document, electronic device and storage medium | |
CN112100396A (zh) | 一种数据处理方法和装置 | |
Mehrbod et al. | Tender calls search using a procurement product named entity recogniser | |
WO2023278070A1 (en) | Automatic labeling of text data | |
JP2020173779A (ja) | 文書における見出しのシーケンスの識別 | |
Wei et al. | Online education recommendation model based on user behavior data analysis | |
CN112989011B (zh) | 数据查询方法、数据查询装置和电子设备 | |
US20210271637A1 (en) | Creating descriptors for business analytics applications | |
US11886809B1 (en) | Identifying templates based on fonts | |
JP7172187B2 (ja) | 情報表示方法、情報表示プログラムおよび情報表示装置 | |
CN112883218A (zh) | 一种图文联合表征的搜索方法、系统、服务器和存储介质 | |
CN112000495B (zh) | 用于兴趣点信息管理的方法、电子设备和存储介质 | |
CN107220249A (zh) | 基于分类的全文搜索 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |