CN112989011A - 数据查询方法、数据查询装置和电子设备 - Google Patents
数据查询方法、数据查询装置和电子设备 Download PDFInfo
- Publication number
- CN112989011A CN112989011A CN202110450944.9A CN202110450944A CN112989011A CN 112989011 A CN112989011 A CN 112989011A CN 202110450944 A CN202110450944 A CN 202110450944A CN 112989011 A CN112989011 A CN 112989011A
- Authority
- CN
- China
- Prior art keywords
- query
- natural language
- data
- language question
- determined
- 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.)
- Granted
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
-
- 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/3325—Reformulation based on results of preceding query
-
- 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/334—Query execution
- G06F16/3344—Query execution using natural language analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据查询方法、数据查询装置和电子设备。该数据查询方法包括:接收用户通过用户终端输入的自然语言问句;基于所述自然语言问句确定查询语句片段集合,所述查询语句片段集合包括数据库查询语言的语句的片段;基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合,其中所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果;以及向所述用户终端发送所述第一查询结果。本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据查询方法、数据查询装置和电子设备。
背景技术
随着数据时代的来临,数据的高效应用变的愈加重要。数据通常存储在数据库中,当需要时,相关人员可以通过编写查询语句从数据库中查询数据。然而,这种数据查询方式不够方便,尤其是对于不具备数据查询知识的业务人员来说,数据查询的难度较大。
自然语言处理技术的发展使得基于自然语言的数据查询成为可能。用户输入自然语言问句后,计算机可以对其进行解析,从而理解用户的意图,为用户提供相应的数据查询结果。相较于传统的数据查询方式,基于自然语言的数据查询方式更加方便、快捷。
发明内容
本申请实施例提供了数据查询方法、数据查询装置和电子设备。
第一方面,提供一种数据查询方法。该数据查询方法包括:接收用户通过用户终端输入的自然语言问句;基于所述自然语言问句确定查询语句片段集合,所述查询语句片段集合包括数据库查询语言的语句的片段;基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合,其中所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果;以及向所述用户终端发送所述第一查询结果。
结合第一方面,在一些实施例中,该数据查询方法还包括:基于所述自然语言问句确定目标数据集;确定所述目标数据集与上一次确定的目标数据集是否相同,所述上一次确定的目标数据集是基于所述用户之前输入的自然语言问句确定的,其中,所述基于所述自然语言问句确定查询语句片段集合,包括:基于所述自然语言问句和所述目标数据集确定所述查询语句片段集合;所述基于所述修改后的查询语句片段集合进行数据查询,包括:在确定所述目标数据集与所述上一次确定的目标数据集相同的情况下,基于所述修改后的查询语句片段集合,从所述目标数据集中进行数据查询,以获得所述第一查询结果,其中,所述数据查询方法还包括:在确定所述目标数据集与所述上一次确定的目标数据集不相同的情况下,基于所述查询语句片段集合,从所述目标数据集中进行数据查询,以获得第二查询结果;向所述用户终端发送所述第二查询结果。
结合第一方面,在一些实施例中,所基于所述自然语言问句确定目标数据集,包括:确定多个数据集中的每个数据集相对于所述自然语言问句的相似度;基于所述多个数据集中的每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集。
结合第一方面,在一些实施例中,所述确定多个数据集中的每个数据集相对于所述自然语言问句的相似度,包括:从所述自然语言问句中确定多个关键词;将所述多个数据集中的每个数据集的字段名和字段成员分别与所述多个关键词进行相似度比对,以获得每个数据集相对于所述多个关键词的多个相似度;针对每个数据集,将其相对于所述多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将所述加权平均相似度确定为每个数据集相对于所述自然语言问句的相似度。
结合第一方面,在一些实施例中,所述基于所述多个数据集中的每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集,包括:确定所述多个数据集中的潜在目标数据集的数量,所述潜在目标数据集为所述多个数据集中相对于所述自然语言问句的相似度大于第一阈值的数据集;在确定所述潜在目标数据集的数量仅为一个的情况下,将所述潜在目标数据集确定为所述目标数据集;在确定所述潜在目标数据集的数量为多个的情况下,向所述用户终端发送第一反问信息,以便所述用户根据所述第一反问信息提供第一补充信息;接收来自所述用户终端的所述第一补充信息;基于所述第一补充信息从所述多个潜在目标数据集中确定所述目标数据集。
结合第一方面,在一些实施例中,该数据查询方法还包括:基于所述自然语言问句确定所述用户的意图,所述意图包括查询数据和查找报表,其中,所述基于所述自然语言问句确定查询语句片段集合,包括:在确定所述用户的意图为查询数据的情况下,基于所述自然语言问句确定所述查询语句片段集合,其中,所述数据查询方法还包括:在确定所述用户的意图为查找报表的情况下,从多个报表中确定目标报表,并向所述用户终端发送所述目标报表,其中,所述从多个报表中确定目标报表,包括:确定所述多个报表中的潜在目标报表的数量,所述潜在目标报表为所述多个报表中相对于所述自然语言问句的相似度大于第二阈值的报表;在确定所述潜在目标报表的数量仅为一个的情况下,将所述潜在目标报表确定为所述目标报表;在确定所述潜在目标报表的数量为多个的情况下,向所述用户终端发送第二反问信息,以便所述用户根据所述第二反问信息提供第二补充信息;接收来自所述用户终端所述第二补充信息;基于所述第二补充信息从所述多个潜在目标报表中确定所述目标报表。
第二方面,提供一种数据查询方法。该数据查询方法包括:向服务器端发送用户输入的自然语言问句,以便服务器端基于所述自然语言问句确定查询语句片段集合,并基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段,并基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果,其中所述查询语句片段集合包括数据库查询语言的语句的片段,所述上一次确定的查询语句片段集合是所述服务器端基于所述用户之前输入的自然语言问句确定的;接收来自所述服务器端的所述第一查询结果。
第三方面,提供一种数据查询装置。该数据查询装置包括:接收模块,用于接收用户通过用户终端输入的自然语言问句;确定模块,用于基于所述自然语言问句确定查询语句片段集合,所述查询语句片段集合包括数据库查询语言的语句的片段;修改模块,用于基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合,其中所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;查询模块,用于基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果;以及发送模块,用于向所述用户终端发送所述第一查询结果。
第四方面,提供一种数据查询装置。该数据查询装置包括:发送模块,用于向服务器端发送用户输入的自然语言问句,以便服务器端基于所述自然语言问句确定查询语句片段集合,并基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段,并基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果,其中所述查询语句片段集合包括数据库查询语言的语句的片段,所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;接收模块,用于接收来自所述服务器端的所述第一查询结果。
第五方面,提供一种电子设备。该电子设备包括:与存储器耦合的处理器,被配置为基于所述存储器中存储的指令,执行如上述第一方面或第二方面提供的的数据查询方法。
本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
附图说明
图1所示为根据本申请一实施例的数据查询方法的应用环境的示意图。
图2所示为根据本申请一实施例的数据查询方法的示意性流程图。
图3所示为根据本申请另一实施例的数据查询方法的示意性流程图。
图4所示为根据本申请一实施例的确定目标数据集的方法的示意性流程图。
图5为根据本申请一实施例的确定数据集与自然语言问句的相似度的方法的示意性流程图。
图6所示为根据本申请一实施例的从多个潜在目标数据集中确定目标数据集的方法的流程示意图。
图7所示为根据本申请一实施例的确定用户的意图的方法的流程示意图。
图8所示为根据本申请一实施例的确定目标报表的方法的示意性流程图。
图9所示为根据本申请另一实施例的数据查询方法的流程示意图。
图10所示为本申请一实施例提供的数据查询装置的结构示意图。
图11所示为根据本申请另一实施例的数据查询装置的结构示意图。
图12所示为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
现有的基于自然语言的数据查询方式,通常是基于用户单次输入的自然语言问句,或者说基于单个自然语言问句。然而,对于复杂的数据查询请求,人们通常难以通过单次输入的自然语言问句将其描述清楚。
在日常对话中,对于复杂话题,人们习惯于在对话中分次地、逐渐深入地进行描述。对话的双方需要结合对话中的上下文,才能准确、全面地理解对话中语句的含义。
由于现有的数据查询方式仅能基于单个自然语言问句来实现,无法结合对话中的上下文,因此,现有数据查询方法无法准确地理解用户的意图,难以实现复杂的数据查询请求,数据查询结果的准确性和有效性也难以保证。
为了解决这一问题,本申请实施例提供了一种数据查询方式,其可以结合对话中的上下文,从而能够更加准确地理解用户的意图,实现复杂数据查询请求的处理,提高数据查询结果的准确性和有效性。
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
图1所示为根据本申请一实施例的数据查询方法的应用环境的示意图。本申请提供的数据查询方法,可以应用于如图1所示的应用环境中。
如图1所示,本申请实施例提供的数据查询方法涉及服务器端100和用户终端200。服务器端100和用户终端200通信连接。
服务器端100例如可以由本地服务器设备或云端服务器来实现。用户终端200例如可以但不限于是台式电脑、笔记本电脑、平板电脑和智能手机等用户终端设备。
应当理解,图1所示出的应用环境仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
图2所示为根据本申请一实施例的数据查询方法的示意性流程图。
如图2所示,该方法包括步骤S110~S150。该方法可以由服务器端实现。
在步骤S110中,接收用户通过用户终端输入的自然语言问句。
示例性地,用户终端可以显示交互界面,以供用户输入自然语言问句。用户输入自然语言问句后,用户终端可以将自然语言问句发送至服务器端。
用户输入的自然语言问句可以是文字形式,也可以是语音形式。若用户输入的自然语言问句为语音形式,则将其转换为文字形式。
在步骤S120中,基于该自然语言问句确定查询语句片段集合。该查询语句片段集合包括数据库查询语言的语句的片段。
对于数据库查询语言,本申请实施例不做具体限定。在某些实施例中,其可以是结构化查询语言(Structured Query Language, SQL)。在某些实施例中,也可以是多维查表达式(Multi-Dimensional Expressions, MDX),即多维数据库的查询语言。在某些实施例中,也可以是其它类型的数据库查询语言。
查询语句片段集合包括数据库查询语言的语句的片段,一个查询语句片段集合可以包括一个或多个片段。这些片段可以被拼接成完整的数据库查询语言的语句。或者可以说,这些片段是构成完整的数据库查询语言的语句的代码片段。
结构化查询语言为例,一条完整的SQL语句通常包括多个子句,例如,Select子句、where子句以及having子句等等。在某些实施例中,SQL语句中的一个子句便为的一个片段,一个查询语句片段集合可以包括一个或多个子句。
基于自然语言问句获得查询语句片段集合的方法有多种,对此,本申请实施例不作具体限定。例如,可以利用具有自然语言处理功能的深度学习模型对自然语言问句进行处理,从而获得查询语句片段集合。例如,也可以通过人工撰写句式模板(或称句式规则),建立句式模板库,然后利用句式模板库来对自然语言问句进行语义分析,从而获得查询语句片段集合。
在步骤S130中,基于该查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合。
上一次确定的查询语句片段集合是指基于用户之前输入的自然语言问句确定的查询语句片段集合。
需要说明的是,在某些实施例中,并非每次用户输入的自然语言问句都能确定出查询语句片段集合,因此,上一次确定的查询语句片段集合并不一定是指基于用户上一次输入的自然语言问句确定的查询语句片段集合,也可以是指基于用户更早之前输入的自然语言问句确定的查询语句片段集合。
举例来说,假设用户先后两次输入用于查询数据的自然语言问句。第一次输入时,服务器端基于第一次输入的自然语言问句得到了相应的查询语句片段集合A。第二次输入时,服务器端基于第二次输入的自然语言问句得到了相应的查询语句片段集合B。这时,服务器端可以基于查询语句片段集合B,对查询语句片段集合A进行修改,以获得修改后的查询语句片段集合C。这里,相对于查询语句片段集合B(或称为当前的查询语句片段集合),查询语句片段集合A就是上一次获得的查询语句片段集合。
再例如,假设用户再次(即第三次)输入用于查询数据的自然语言问句,服务器端同样基于第三次输入的自然语言问句得到了相应的查询语句片段集合D。这里,相对于查询语句片段集合D,上一次得到的修改后的查询语句片段集合C便为上一次确定的查询语句片段集。这时,服务器端可以基于查询语句片段集合D对查询语句片段集合C进行修改,以得到修改后的查询语句片段集合E。
应当理解,用户输入自然语言问句的次数并不限定于两次或三次,也可以是更多次,对此,本申请实施例不做具体限定。
示例性地,修改的方式例如可以是:对于当前的查询语句片段集合和上一次确定的查询语句片段集合独有的部分,予以保留;对于当前的查询语句片段集合和上一次确定的查询语句片段集合均具有且相同的部分,进行去重处理;对于当前的查询语句片段集合和上一次确定的查询语句片段集合均具有且不同的部分,则可以以当前的查询语句片段集合为准,删除上一次确定的查询语句片段集合的该部分。
以结构化查询语言为例,若当前的查询语句片段集合包括:Select子句(S1)、Where子句(W1),上一次确定的查询语句片段集合包括:Where子句(W2)、ORDER BY子句(O1)。这里,S1和O1分别为当前的查询语句片段集合和上一次确定的查询语句片段集合独有的部分。若W1和W2的内容相同,则W1和W2为当前的查询语句片段集合和上一次确定的查询语句片段集合均具有且相同的部分;若W1和W2的内容不同,则W1和W2为当前的查询语句片段集合和上一次确定的查询语句片段集合均具有且不同的部分。
通过基于在后得到的查询语句片集合修改上一次得到的查询语句片集合,使得获得的修改后的查询语句片集合能够充分地结合对话中的上下文。
在步骤S140中,基于该修改后的查询语句片段集合进行数据查询,以获得第一查询结果。
示例性地,得到修改后的查询语句片段后,服务器端例如可以将修改后查询语句片段集进行拼接,从而得到数据查询语句。然后,可以基于该数据查询语句进行数据查询,以得到数据查询结果。
在步骤S150中,向用户终端发送第一查询结果。
完成数据查询后,服务器端可以将查询结果发送至用户终端,以便用户终端对查询结果进行显示。
本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
基于自然语言问句确定查询语句片段集合的实现方式有多种,下面,进行举例说明。
在一些实施例中,可以基于自然语言问句,利用深度学习模型确定查询语句片段集合。
具体来说,服务器端接收到自然语言问句后,可以将自然语言问句和目标数据集的字段名进行拼接处理,以获得拼接结果,然后,将拼接结果输入到深度学习模型中,从而得到深度学习模型输出的查询语句片段集合。
数据集是指存储在数据库中的数据表。一个数据集可以仅包括一张数据表,也可以包括多张数据表。数据表可以是物理表,也可以是逻辑表。目标数据集是指与用户输入的自然语言问句对应的数据集。换句话说,用户输入自然语言问句的目的是查找目标数据,而目标数据存储在目标数据集中。
大多数情况下数据库中的数据表较多,此时,需要从数据库中确定出目标数据集。
目标数据集的确定方式有多种,对此,本申请实施例不作具体限定。
在某些实施例中,可以基于自然语言问句确定目标数据集。在某些实施例中,也可以也可以在用户终端上显示交互界面,显示可供选择的多个数据集,以便用户手动选择目标数据集。
在某些实施例中,可以仅在用户第一次输入自然语言问句时,确定目标数据集。在此之后,无论用户输入多少次自然语言问句,均不再确定目标数据集,而是沿用第一次输入自然语言问句时确定的目标数据集。在某些实施例中,也可以在用户每次输入自然语言问句时都确定目标数据集。
应当理解,在某些实施例中,也可以不确定目标数据集。例如,数据库中可能仅有一张数据表,或仅有少量的几张数据表。这种情况下,无需确定目标数据集,仅需要将数据库中的全部的字段名与自然语言问句拼接,并将拼接结果输入到深度学习模型即可。
服务器端可以将自然语言问句与目标数据集的所有字段的字段名进行拼接。拼接结果的形式例如可以为:[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语句。
深度学习模型的训练方法为现有技术,本申请实施例对此不做具体限定。示例性地,可以建立包括多个训练样本的训练集,利用训练集中的训练样本训练深度学习模型。每个训练样本可以包括输入数据和输出结果。输入数据可以为自然语言问句和目标数据集的字段名和字段的数据类型的拼接结果,输出结果可以为查询语句片段集合。
虽然,在该实施例中,在拼接自然语言问句和字段名时加入了字段的数据类型。但是,在本申请的其它实施例中,也可以仅拼接自然语言问句和字段名,而不拼接字段的数据类型。通过实践研究发现,在拼接自然语句和字段名时,加入字段的数据类型,能够显著地提高深度学习模型输出的查询语句元素的准确性。
基于自然语言问句确定查询语句片段集合的的方式,并不限于这一种。
在一些实施例中,可以基于自然语言问句,利用预设的句式模板确定查询语句片段集合。
句式模板可以由占位符和空位组成。举例来说,在句式模板“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子句,这样便可以得到相应的查询语句片段。
应当理解,对于第二类模板以及与之对应的处理规则,本申请实施例不做具体限定,本领域技术人员可以根据实际需求进行设置。
在一些实施例中,也可以分别利用深度学习模型和句式模板来获得两套查询语句片段集合,然后,再将两套查询语句片段集合进行合并,得到合并后的查询语句片段集合。然后,再利用合并后的查询语句片段集合进行数据查询。
结合深度学习模型和句式模板,能够提高查询语句片段集合的准确性和全面性,从而提高数据查询结果的准确性和有效性。
示例性地,可以利用深度学习模型获得第一查询语句片段集合,并利用句式模板获得第二查询语句片段集合。然后,对第一查询语句片段集合和第二查询语句片段集合进行合并。合并的方式例如可以是:对于第一查询语句片段集合或第二查询语句片段集合独有的部分,予以保留;对于第一查询语句片段集合和第二查询语句片段集合均具有且相同的部分,进行去重处理;对于第一查询语句片段集合和第二查询语句片段集合均具有且不同的部分,则可以以第一查询语句片段集合或第二查询条件中的一个为准,删除来自另外一个的该部分。
通过实践发现,相较于深度学习模型,利用句式模板获取的查询语句片段集合的准确性更高。因此,在某些优选的实施例中,在合并第一查询语句片段集合和第二查询语句片段集合时,对于第一查询语句片段集合和第二查询语句片段集合均具有且不同的部分,可以以第二查询语句片段集合为准,即:保留第二查询语句片段集合的该部分,删除第一查询语句片段集合的该部分。
在某些应用场景下,用户多次输入的自然语言问句可能会对应不同的查询意图。若无法准确地判断用户的查询意图,则无法为用户提供其真正想要得到的数据查询结果。
例如,用户第一次输入的自然语言问句是为了查询热销车的相关数据,而第二次输入的自然语言问句是为了查询热销手机的相关数据。这种情况下,若仍旧基于第二次确定的查询语句片段集合对第一次确定的查询语句片段集合进行修改,并利用修改后的查询语句片段进行数据查询,那么得到的数据查询结果将不是用户真正想要得到的数据查询结果。
为了解决这一问题,在一些实施例中,可以在用户每次输入自然语言问句后,都基于相应的自然语言问句确定目标数据集。并且,将每次确定的目标数据集与上一次确定的目标数据集进行对比,以判断目标数据集是否发生变化。并据此来判断用户的查询意图是否发生了变化。
下面结合附图,对该实施例进行详细描述。
图3所示为根据本申请另一实施例的数据查询方法的示意性流程图。如图3所示,该方法包括步骤S210至S280。该方法可以由服务器端实现。
数据查询方法S200与数据查询方法S100大体相同,为了简便,相同之处不再赘述。
在步骤S210中,接收用户通过用户终端输入的自然语言问句。
在步骤S220中,基于该自然语言问句确定目标数据集。
在步骤S230中,基于该自然语言问句和该目标数据集确定查询语句片段集合。
在步骤S240中,确定该目标数据集是否与上一次确定的目标数据集相同。
这里,上一次确定的目标数据集是指基于用户之前输入的自然语言问句确定的目标数据集。
需要说明的是,在某些实施例中,并非每次用户输入的自然语言问句都能确定出目标数据集,因此,上一次确定的目标数据集并不一定是指基于用户上一次输入的自然语言问句确定的目标数据集,也可以是指基于用户更早之前输入的自然语言问句确定的目标数据集。
若该目标数据集与上一次确定的目标数据集相同,则执行步骤S250,反之,则执行步骤S280。
在步骤S250中,基于该查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合。
在步骤S260中,基于该修改后的查询语句片段集合,从目标数据集中进行数据查询,以获得第一查询结果。
在步骤S270中,向用户终端发送第一查询结果。
在步骤S280中,基于该查询语句片段集合,从目标数据集中进行数据查询,以获得第二查询结果。
在步骤S290中,向用户终端发送第二查询结果。
每次用户输入自然语言问句后,服务器端均会重新确定目标数据集。并且将每次确定的目标数据集与上一次确定的目标数据集进行对比,若相同,则可以判断出用户的查询意图未发生变化,从而基于此次获得的查询语句片段集合修改上一次获得的查询语句片段集合,并基于修改后查询语句片段集合进行数据查询;若不同,则可以判断出用户的查询意图发生了变化,从而不再修改上一次的查询语句片段集合,而是利用新获得查询语句片段集合进行数据查询。
以此方式,可以准确地判断出用户的查询意图,并根据用户的查询意图进行数据查询,从而保证了数据查询结果的准确性。
基于自然语言问句确定目标数据集的方法有多种,对此,本申请实施例不作具体限定。
下面结合附图,对基于自然语言问句确定目标数据集的方法进行举例说明。
图4所示为根据本申请一实施例的确定目标数据集的方法的示意性流程图。
如图4所示,该方法可以包括步骤S221和S222。方法S220可以由服务器端实现。
在步骤S221中,确定多个数据集中的每个数据集相对于自然语言问句的相似度。
具体来说,服务器端可以将数据库中的多个数据集分别与自然语言问句进行相似度比对,从而确定每个数据集相对于自然语言问句的相似度。
确定每个数据集相对于自然语言问句的相似度的方法可以有多种,本申请实施例对此不作具体限定。下面结合附图,给出一种示例性的实现方式。
图5为根据本申请一实施例的确定数据集与自然语言问句的相似度的方法的示意性流程图。
如图5所示,该方法包括步骤S2211~S2214。该方法可以由服务器端实现。
在步骤S2211中,从自然语言问句中确定多个关键词。
例如,若自然语言问句为“查看2020年上海的销售额”,则可以从中确定出关键词“2020年”、“上海”和“销售额”。
确定关键词的方式可以有多种,本申请实施例对此不做具体限定。示例性地,可以采用TF-IDF(Term Frequency-Inverse Document Frequency)算法从自然语言问句中提取关键词。
在步骤S2212中,将多个数据集中的每个数据集的字段名和字段成员与分别与多个关键词进行相似度比对,以获得每个数据集相对于多个关键词的多个相似度。
具体来说,可以将每个数据集所包含的所有字段名和所有字段成员与分别与多个关键字中的每个关键词进行相似度比对。字段名是指数据表中每一列的标识,或称为每一列的列名。字段成员是指数据表中每一列所包含的数据项。
举例来说,若某一数据集仅包含字段名为“年份”的字段和字段名为“城市”的字段。字段名为“年份”的字段下仅包含“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为多个关键词的数量。
在步骤S2213中,针对每个数据集,将其相对于多个关键词的多个相似度进行加权平均,以获得每个数据集的加权平均相似度。
具体来说,若某一数据集相对于多个关键词中每个关键词的相似度分别为R1、R2……Rn,则可以对R1、R2……Rn加权平均,以得到该数据集的加权平均相似度R。
在步骤S2214中,将得到的加权平均相似度作为每个数据集相对于自然语言问句的相似度。
服务器端确定每个数据集的加权平均相似度后,可以将加权平均相似度作为每个数据集相对于自然语言问句的相似度。
可选地,在某些实施例中,步骤S2212和S2213可以通过SIM-BERT模型实现。具体来说,可以将每个数据集所包含的字段名称和字段成员之间的对应关系梳理成知识图谱,并将知识图谱输入到训练好的SIM-BERT模型,以得到每个数据集对应的向量。然后,可以将从自然语言问句中确定的多个关键词输入到该SIM-BERT模型中,以得到每个关键词对应的向量。然后,利用SIM-BERT模型对每个数据集的对应的向量和每个关键词对应的向量分别进行匹配,匹配规则可以为将每个关键词分别与每个数据集的字段名和字段成员进行相似度计算,从而将每个数据集相对于多个关键词的多个相似度进行加权平均,以得到每个数据集的加权平均相似度。
通过将每个数据集的所有字段名和所有字段成员与每个关键词进行相似度比对,能够准确地确定每个数据集与自然语言问句的相似度,进而能够提高确定目标数据集的准确性。
在步骤S222中,根据每个数据集相对于自然语言问句的相似度,从多个数据集中确定所述目标数据集。
示例性地,可以设置相似度阈值,将多个数据集中相对于自然语言问句的相似度大于相似度阈值的数据集确定为目标数据集。
通过确定多个数据集相对于自然语言问句的相似度,实现了基于自然语言问句从多个数据集中确定目标数据集。
在某些应用场景下,数据库中可能存在多个与自然语言问句的相似度大于相似度阈值的数据集,此时,若将这些数据集全部作为目标数据集,则无法保证数据查询结果的准确性。
为了解决这一问题,在一些实施例中,参考图6,图4所示的实施例中的步骤S222可以具体包括步骤S2221至S2225。
在步骤S2221中,确定多个数据集中潜在目标数据集的数量。
潜在目标数据集是指多个数据集中相对于自然语言问句的相似度大于第一阈值的数据集。
若潜在目标数据集的数量为一个,则执行步骤S2222;若潜在目标数据集的数量为多个,在执行步骤S2223。
在步骤S2222中,将该潜在目标数据集确定为目标数据集。
也就是说,若仅有一个潜在目标数据集,则可以将这个仅有的潜在目标数据集作为目标数据集。
在步骤S2223中,向用户终端发送第一反问信息,以便用户根据该第一反问信息提供第一补充信息。
对于第一反问信息的具体内容,本申请实施例不做具体限定。
在某些实施例中,第一反问信息可以是与潜在目标数据集无关的信息。例如,第一反问信息可以是“请重新输入”,可以是“请再说清楚一点”。
在某些实施例中,第一反问信息可以是与潜在目标数据集相关联的信息。例如,假设潜在目标数据集包括“热销车销量表”和“热销手机销量表”,则第一反问信息可以包括这两个潜在数据集的表名,即“热销车销量表”和“热销手机销量表”。这样,用户便可以基于此,提供补充信息。
在步骤S2224中,接收来自用户终端的第一补充信息。
在步骤S2225中,基于第一补充信息从多个潜在目标数据集中确定目标数据集。
通过确定潜在目标数据集的数量,并在潜在目标数据集的数量多于一个时向用户终端发送反问信息,以便用户终端提供补充信息,并根据补充信息确定目标数据集。以此方式,可以准确地确定出目标数据集,进而提高数据查询结果的准确性。
考虑到在某些应用场景下,用户的意图并不是查询数据,此时如果直接将自然语言问句按照查询数据的方式进行处理,则很有可能无法得到数据查询结果。由于用户的意图并非查询数据,因此,即使侥幸得到某一数据查询结果,也仍旧无法满足用户的实际需求。
用户的意图可能有多种,仔细研究发现,在数据查询的应用场景下,用户的意图通常为可能包括查询数据和打开报表。
报表是指当前用户或其他用户已经制作好的报表。不同于查询数据,确定目标报表仅需要从多个报表中找到目标报表即可,无需生成查询语句。
为了解决这一问题,在一些实施例中,在上述实施例的数据查询方法中,进行数据查询之前,还需要确定用户的查询意图。
例如,再次参考图2,图2所示的数据查询方法还可以包括步骤:基于该自然语言问句确定用户的意图。用户的意图例如可以包括查找数据和打开报表。
步骤S120可以包括:在确定用户的意图为查询数据的情况下,基于自然语言问句确定查询语句片段集合。
也就是说在确定用户的意图为查询数据的情况下,可以执行步骤S120到S150,以实现数据查询。
同时,图2所示的数据查询方法还可以包括步骤:在确定用户的意图为查找报表的情况下,从多个报表中确定目标报表,并向用户终端发送该目标报表。
也就是说,在确定用户的意图为打开报表的情况下,不再执行步骤S120到S150,而是进行报表查找,并将查找到的报表发送至用户终端。
再例如,再次参考图3,图3所示的数据查询方也可以包括步骤:基于该自然语言问句确定用户的意图。用户的意图例如可以包括查找数据和打开报表。
步骤S220可以包括:在确定用户的意图为查询数据的情况下,基于自然语言问句确定目标数据集。
也就是说在确定用户的意图为查询数据的情况下,可以执行步骤S220到S290,以实现数据查询。
同时,图3所示的数据查询方法还可以包括步骤:在确定用户的意图为查找报表的情况下,从多个报表中确定目标报表,并向用户终端发送该目标报表。
也就是说,在确定用户的意图为打开报表的情况下,不再执行步骤S220到S290,而是进行报表查找,并将查找到的报表发送至用户终端。
通过确定用户的意图并针对不同的意图进行相应的处理,能够更好地满足了用户的实际需求,提高了用户体验。
确定用户的意图的方式可以有多种,对此,本申请实施例不作具体限定。下面结合附图给出一种示例性的实现方式。
图7所示为根据本申请一实施例的确定用户的意图的方法的流程示意图。
如图7所示,该方法可以包括步骤S310~S340。该可以由服务器端实现。
在步骤S310中,确定自然语言问句中是否存在预设的指示词。
示例性地,服务器端可以从自然语言问句中抽取多个关键词,然后确定多个关键词中是否存在预设的指示词。
预设的指示词用于表示用户的意图为查找报表。
对于预设的指示词,本申请实施例不做具体限定。例如,预设的指示词可以包括“打开”。例如,预设的指示词也可以包括“报表”。
若自然语言问句中存在预设的指示词则执行步骤S320,若不存在,则执行步骤S340。
在步骤S320中,确定多个报表中是否存在目标报表。
示例性地,若自然语言问句中存在预设的指示词,则服务器端可以根据多个报表中的每个报表相对于自然语言问句的相似度,确定多个报表中是否存在目标报表。
目标报表相对于自然语言问句的相似度大于预设的相似度阈值。
具体来说,服务器端可以先确定每个报表相对于自然语言问句的相似度,然后将每个报表相对于自然语言问句的相似度与预设的相似度阈值对比,从而确定出多个报表中是否存在目标报表。
确定每个报表相对于自然语言问句的相似度的方法可以参考前述实施例中确定数据集与自然语言问句的相似度的方法。
也就是说,可以将每个报表的字段名和字段成员分别与从多个关键词进行相似度比对,以确定每个报表相对于多个关键词的多个相似度。然后,对针对每个报表,将其相对于多个关键词的多个相似度加权平均,以获得每个报表的加权平均相似度。最终,将每个报表的加权平均相似度作为每个报表相对于自然语言问句的相似度。
若多个报表中存在目标报表,则执行步骤S330,若不存在,则执行步骤S340。
在步骤S330中,将用户的意图确定为查找报表。
在步骤S340中,将用户的意图确定为查询数据。
该实施例提供的确定用户意图的方法,能够准确地确定用户的意图,满足了实际使用需求,提高了用户体验。
虽然,通过将多个报表相对于自然语言问句的相似度与预设的相似度阈值对比,可以从多个报表中确定出目标报表。但是,在某些应用场景下,多个报表中可能存在多个相对于自然语言问句的相似度大于预设阈值的报表。这种情况下,仅通过与预设的阈值对比的方式,便无法再准确地确定出目标报表。
图8所示为根据本申请一实施例的确定目标报表的方法的示意性流程图。图8所示的确定目标报表的方法可以应用在上述实施例中的数据查询方法中。
如图8所示,该方法可以包括步骤S410至S450。
在步骤S410中,确定多个报表中的潜在目标报表的数量。
潜在目标报表是指多个报表中相对于自然语言问句的相似度大于第二阈值的报表。
若潜在目标报表的数量为一个,则执行步骤S420;若潜在目标报表的数量为多个,在执行步骤S430。
在步骤S420中,将潜在目标报表确定为目标报表。
在步骤S430中,向用户终端发送第二反问信息,以便用户根据该第二反问信息提供第二补充信息。
对于第二反问信息的具体内容,本申请实施例不做具体限定。
在某些实施例中,第二反问信息可以是与潜在目标报表无关的信息。例如,反问信息可以是“请重新输入”,可以是“请再说清楚一点”。
在某些实施例中,第二反问信息可以是与潜在目标报表相关的信息。例如,假设潜在目标报表包括“热销车销量表”和“热销手机销量表”,则第二反问信息可以包括这两个潜在报表的表名,即“热销车销量表”和“热销手机销量表”。这样,用户便可以基于此提供第二补充信息。
在步骤S440中,接收来自用户终端的第二补充信息。
在步骤S450中,基于第二补充信息从多个潜在目标报表中确定目标报表。
通过确定潜在目标报表的数量,并在潜在目标报表的数量多于一个时向用户终端发送反问信息,以便用户终端提供补充信息,并根据补充信息确定目标报表。以此方式,可以准确地确定出目标报表,进而提高数据查询结果的准确性。
上文结合图2至图8,详细描述了本申请的服务器端侧的方法实施例。下文结合图9,详细描述本申请的用户终端侧的方法实施例。用户终端侧和服务器端侧的描述相互对应,为了简洁,适当省略重复的描述。
图9所示为根据本申请另一实施例的数据查询方法的流程示意图。该方法可以由用户终端实现。
如图9所示,该方法可以包括步骤S510和步骤S520。该方法可以由用户终端实现。
在步骤S510中,向服务器端发送用户输入的自然语言问句。
服务器端可以基于该自然语言问句确定查询语句片段集合。然后,服务器端可以基于该查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段。这里所指的上一次确定的查询语句片段集合是指基于用户之前输入的自然语言问句确定的查询语句片段集合。然后,服务器端可以基于该修改后的查询语句片段集合进行数据查询,以获得第一查询结果。
在步骤S520中,接收来自服务器端的第一查询结果。
用户终端可以接收来自服务器端的第一查询结果,并对第一查询结果进行显示。
本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
在一些实施例中,服务器端在确定查询语句片段集合前,可以先基于用户输入的自然语言问句确定目标数据集。
服务器端可以判断该目标数据集与上一次确定的目标数据集是否相同。这里,上一次确定的目标数据集是指基于用户之前输入的自然语言问句确定的目标数据集。
同时,服务器端可以基于该自然语言问句和该目标数据集确定查询语句片段集合。
在确定该目标数据集与上一次确定的目标数据集相同的情况下,服务器端可以基于修改后的查询语句片段集合,从目标数据集中进行数据查询,获得第一查询结果,并向用户终端发送。这种情况下,用户终端接收来自服务器端的第一查询结果。
在确定该目标数据集与上一次确定的目标数据集不相同的情况下,服务器端基于该查询语句片段集合,从目标数据集中进行数据查询,以获得第二查询结果,并将第二查询结果发送至用户终端。这种情况下,用户终端接收来自服务器端的第二查询结果。
在一些实施例中,图9所示的数据查询方法还可以包括步骤:接收来自服务器端的第一反问信息,以便用户根据该第一反问信息提供第一补充信息;向服务器端发送该第一补充信息,以便服务器端根据该第一补充信息,从多个潜在目标数据集中确定目标数据集。
在一些实施例中,服务器端在接收到用户终端发送的自然语言问句后,可以先基于该自然语言问句确定用户的意图。用户的意图可以包括查询数据和查找报表。
在确定用户的意图为查询数据的情况下,服务器端向用户终端发送数据查询结果,即前述实施例中的第一查询结果或第二查询结果。
在确定用户的意图为查找报表的情况下,服务器端向用户终端发送查找到的报表。
在一些实施例中,图9所示的数据查询方法还可以包括步骤:接收来自服务器端的第二反问信息,以便用户根据该第二反问信息提供第二补充信息;向服务器端发送该第二补充信息,以便服务器端根据该第二补充信息,从多个潜在目标报表中确定目标报表。
上文结合图2至图8,详细描述了本申请的服务器端侧的方法实施例。下文结合图10,详细描述本申请的服务器端侧的装置实施例。方法实施例和装置实施例的描述相互对应,为了简洁,适当省略重复的描述。
图10所示为本申请一实施例提供的数据查询装置的结构示意图。
如图10所示,该数据查询装置包括接收模块110、确定模块120、修改模块130、查询模块140和发送模块150。
接收模块110用于接收来用户通过用户终端输入的自然语言问句。
确定模块120用于基于该自然语言问句确定查询语句片段集合。
修改模块130用于基于该查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合。
这里,上一次确定的查询语句片段集合是基于用户之前输入的自然语言问句确定的查询语句片段集合。
查询模块140用于基于该修改后的查询语句片段集合进行数据查询,以获得第一查询结果。
发送模块150用于向该用户终端发送第一查询结果。
本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
在一些实施例中,上述实施例的数据查询装置还包括目标数据集确定模块和目标数据集判断模块。
目标数据集确定模块用于基于自然语言问句确定目标数据集。
目标数据集判断模块用于确定该目标数据集与上一次确定的目标数据集是否相同。这里,上一次确定的目标数据集是基于用户之前输入的自然语言问句确定的目标数据集。
确定模块120用于基于该自然语言问句和该目标数据集确定查询语句片段集合。
查询模块140用于在确定目标数据集与上一次确定的目标数据集相同的情况下,基于该修改后的查询语句片段集合,从目标数据集中进行数据查询,已获得第一查询结果;并用于在确定该目标数据集与上一次确定的目标数据集不相同的情况下,基于该查询语句片段集合,从目标数据集中进行数据查询,以获得第二查询结果。
发送模块150用于在确定该目标数据集与上一次确定的目标数据集相同的情况下,向用户终端发送第一查询结果;在确定该目标数据集与上一次确定的目标数据集不相同的情况下,向用户终端发送第二查询结果。
在一些实施例中,目标数据集确定模块包括第一确定单元和第二确定单元。
第一确定单元用于确定多个数据集中的每个数据集相对于自然语言问句的相似度。
第二确定单元用于基于多个数据集中的每个数据集相对于自然语言问句的相似度,从多个数据集中确定目标数据集。
在一些实施例中,第一确定单元可以用于从自然语言问句中确定多个关键词;将多个数据集中的每个数据集的字段名和字段成员分别与这多个关键词进行相似度比对,以获得每个数据集相对于这多个关键词的多个相似度;针对每个数据集,将其相对于这多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;将该加权平均相似度确定为每个数据集相对于该自然语言问句的相似度。
在一些实施例中,第二确定单元用于确定多个数据集中的潜在目标数据集的数量。这里,潜在目标数据集为多个数据集中相对于自然语言问句的相似度大于第一阈值的数据集。
第二确定单元还用于在确定潜在目标数据集的数量仅为一个的情况下,将该潜在目标数据集确定为所述目标数据集。
发送模块150还用于在确定潜在目标数据集的数量为多个的情况下,向用户终端发送第一反问信息,以便用户根据该第一反问信息提供第一补充信息。
接收单元110还用于接收来自用户终端的第一补充信息。
第二确定单元还用于基于该第一补充信息从多个潜在目标数据集中确定目标数据集。
在一些实施例中,上述实施例的数据查询装置还可以包括意图确定模块。
意图确定模块用于基于自然语言问句确定用户的意图。用户的意图例如可以包括查询数据和查找报表。
确定模块120可以用于在确定用户的意图为查询数据的情况下,基于该自然语言问句确定查询语句片段集合。
该数据查询装置还可以包括目标报表确定模块。目标报表确定模块用于在确定用户的意图为查找报表的情况下,从多个报表中确定目标报表。发送模块150还可以用于向用户终端发送目标报表。
在一些实施例中,目标报表确定模块可以包括第三确定单元。
第三确定单元用于确定多个报表中的潜在目标报表的数量。这里潜在目标报表为所述多个报表中相对于自然语言问句的相似度大于第二阈值的报表。
第三单元还用于在确定潜在目标报表的数量仅为一个的情况下,将该潜在目标报表确定为目标报表。
发送模块150还用于在确定潜在目标报表的数量为多个的情况下,向用户终端发送第二反问信息,以便用户根据所述第二反问信息提供第二补充信息。
接收单元110还用于接收来自用户终端所述第二补充信息。
第三单元还用于基于第二补充信息从多个潜在目标报表中确定目标报表。
上文结合图9,详细描述了本申请的用户终端侧的方法实施例。下文结合图11,详细描述本申请的用户终端侧的装置实施例。方法实施例和装置实施例的描述相互对应,为了简洁,适当省略重复的描述。
图11所示为根据本申请另一实施例的数据查询装置的结构示意图。
如图11所示,该数据查询装置包括发送模块210和接收模块220。
发送模块210用于向服务器端发送用户输入的自然语言问句。
服务器端可以基于该自然语言问句确定查询语句片段集合。然后,服务器端可以基于该查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段。这里所指的上一次确定的查询语句片段集合是指基于用户之前输入的自然语言问句确定的查询语句片段集合。然后,服务器端可以基于该修改后的查询语句片段集合进行数据查询,以获得第一查询结果。
接收模块220用于接收来自服务器端的第一查询结果。
本申请提供的数据查询方式,结合了对话中的上下文,实现了复杂数据查询请求的处理,提高了数据查询结果的准确性和有效性。
在一些实施例中,服务器端在确定查询语句片段集合前,可以先基于用户输入的自然语言问句确定目标数据集。
服务器端可以判断该目标数据集与上一次确定的目标数据集是否相同。这里,上一次确定的目标数据集是指基于用户之前输入的自然语言问句确定的目标数据集。
同时,服务器端可以基于该自然语言问句和该目标数据集确定查询语句片段集合。
在确定该目标数据集与上一次确定的目标数据集相同的情况下,服务器端可以基于修改后的查询语句片段集合,从目标数据集中进行数据查询,获得第一查询结果,并向用户终端发送。这种情况下,接收模块220可以用于接收来自服务器端的第一查询结果。
在确定该目标数据集与上一次确定的目标数据集不相同的情况下,服务器端基于该查询语句片段集合,从目标数据集中进行数据查询,以获得第二查询结果,并将第二查询结果发送至用户终端。这种情况下,接收模块220可以用于接收来自服务器端的第二查询结果。
在一些实施例中,接收模块220还可以用于接收来自服务器端的第一反问信息,以便用户根据该第一反问信息提供第一补充信息。
发送模块210可以用于向服务器端发送该第一补充信息,以便服务器端根据该第一补充信息,从多个潜在目标数据集中确定目标数据集。
在一些实施例中,服务器端在接收到用户终端发送的自然语言问句后,可以先基于该自然语言问句确定用户的意图。用户的意图可以包括查询数据和查找报表。
在确定用户的意图为查询数据的情况下,服务器端向用户终端发送数据查询结果,即前述实施例中的第一查询结果或第二查询结果,接收模块220可以用于接收来自服务器端的数据查询结果。
在确定用户的意图为查找报表的情况下,服务器端向用户终端发送查找到的报表,接收模块220可以用于接收来自服务器端的报表。
在一些实施例中,接收模块210还可以用于接收来自服务器端的第二反问信息,以便用户根据该第二反问信息提供第二补充信息。
接收模块220向服务器端发送该第二补充信息,以便服务器端根据该第二补充信息,从多个潜在目标报表中确定目标报表。
图12所示为本申请一实施例提供的电子设备的结构示意图。
如图12所示,电子设备300包括:与存储器310耦合的处理器320,被配置为基于存储器310中存储的指令,执行前述实施例中的数据查询方法或查询语句生成方法。
本申请的其它实施例,还提供一种计算机可读可存储介质,其上存储有用于执行前述实施例中的数据查询方法的指令。
本申请的其它实施例,还提供一种计算机程序产品。该计算机产品包括用于执行前述实施例中的数据查询方法或查询语句生成方法的代码。
应当理解,虽然术语“第一”或“第二”等可能在本申请中用来描述各种元素(如查询语句片段集合),但这些元素不被这些术语所限定,这些术语只是用来将一个元素与另一个元素区分开。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器端或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器端或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器端、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid statedisk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
接收用户通过用户终端输入的自然语言问句;
基于所述自然语言问句确定查询语句片段集合,所述查询语句片段集合包括数据库查询语言的语句的片段;
基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合,其中所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;
基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果;以及
向所述用户终端发送所述第一查询结果。
2.根据权利要求1所述的数据查询方法,其特征在于,还包括:
基于所述自然语言问句确定目标数据集;
确定所述目标数据集与上一次确定的目标数据集是否相同,所述上一次确定的目标数据集是基于所述用户之前输入的自然语言问句确定的,其中,
所述基于所述自然语言问句确定查询语句片段集合,包括:基于所述自然语言问句和所述目标数据集确定所述查询语句片段集合;
所述基于所述修改后的查询语句片段集合进行数据查询,包括:在确定所述目标数据集与所述上一次确定的目标数据集相同的情况下,基于所述修改后的查询语句片段集合,从所述目标数据集中进行数据查询,以获得所述第一查询结果,其中,
所述数据查询方法还包括:
在确定所述目标数据集与所述上一次确定的目标数据集不相同的情况下,基于所述查询语句片段集合,从所述目标数据集中进行数据查询,以获得第二查询结果;
向所述用户终端发送所述第二查询结果。
3.根据权利要求2所述的数据查询方法,其特征在于,所基于所述自然语言问句确定目标数据集,包括:
确定多个数据集中的每个数据集相对于所述自然语言问句的相似度;
基于所述多个数据集中的每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集。
4.根据权利要求3所述的数据查询方法,其特征在于,所述确定多个数据集中的每个数据集相对于所述自然语言问句的相似度,包括:
从所述自然语言问句中确定多个关键词;
将所述多个数据集中的每个数据集的字段名和字段成员分别与所述多个关键词进行相似度比对,以获得每个数据集相对于所述多个关键词的多个相似度;
针对每个数据集,将其相对于所述多个关键词的多个相似度加权平均,以获得每个数据集的加权平均相似度;
将所述加权平均相似度确定为每个数据集相对于所述自然语言问句的相似度。
5.根据权利要求3所述的数据查询方法,其特征在于,所述基于所述多个数据集中的每个数据集相对于所述自然语言问句的相似度,从所述多个数据集中确定所述目标数据集,包括:
确定所述多个数据集中的潜在目标数据集的数量,所述潜在目标数据集为所述多个数据集中相对于所述自然语言问句的相似度大于第一阈值的数据集;
在确定所述潜在目标数据集的数量仅为一个的情况下,将所述潜在目标数据集确定为所述目标数据集;
在确定所述潜在目标数据集的数量为多个的情况下,向所述用户终端发送第一反问信息,以便所述用户根据所述第一反问信息提供第一补充信息;
接收来自所述用户终端的所述第一补充信息;
基于所述第一补充信息从所述多个潜在目标数据集中确定所述目标数据集。
6.根据权利要求1所述的数据查询方法,其特征在于,还包括:基于所述自然语言问句确定所述用户的意图,所述意图包括查询数据和查找报表,其中,
所述基于所述自然语言问句确定查询语句片段集合,包括:在确定所述用户的意图为查询数据的情况下,基于所述自然语言问句确定所述查询语句片段集合,其中,
所述数据查询方法还包括:在确定所述用户的意图为查找报表的情况下,从多个报表中确定目标报表,并向所述用户终端发送所述目标报表,其中,
所述从多个报表中确定目标报表,包括:
确定所述多个报表中的潜在目标报表的数量,所述潜在目标报表为所述多个报表中相对于所述自然语言问句的相似度大于第二阈值的报表;
在确定所述潜在目标报表的数量仅为一个的情况下,将所述潜在目标报表确定为所述目标报表;
在确定所述潜在目标报表的数量为多个的情况下,向所述用户终端发送第二反问信息,以便所述用户根据所述第二反问信息提供第二补充信息;
接收来自所述用户终端所述第二补充信息;
基于所述第二补充信息从所述多个潜在目标报表中确定所述目标报表。
7.一种数据查询方法,其特征在于,包括:
向服务器端发送用户输入的自然语言问句,以便服务器端基于所述自然语言问句确定查询语句片段集合,并基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段,并基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果,其中所述查询语句片段集合包括数据库查询语言的语句的片段,所述上一次确定的查询语句片段集合是所述服务器端基于所述用户之前输入的自然语言问句确定的;
接收来自所述服务器端的所述第一查询结果。
8.一种数据查询装置,其特征在于,包括:
接收模块,用于接收用户通过用户终端输入的自然语言问句;
确定模块,用于基于所述自然语言问句确定查询语句片段集合,所述查询语句片段集合包括数据库查询语言的语句的片段;
修改模块,用于基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段集合,其中所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;
查询模块,用于基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果;以及
发送模块,用于向所述用户终端发送所述第一查询结果。
9.一种数据查询装置,其特征在于,包括:
发送模块,用于向服务器端发送用户输入的自然语言问句,以便服务器端基于所述自然语言问句确定查询语句片段集合,并基于所述查询语句片段集合修改上一次确定的查询语句片段集合,以获得修改后的查询语句片段,并基于所述修改后的查询语句片段集合进行数据查询,以获得第一查询结果,其中所述查询语句片段集合包括数据库查询语言的语句的片段,所述上一次确定的查询语句片段集合是基于所述用户之前输入的自然语言问句确定的;
接收模块,用于接收来自所述服务器端的所述第一查询结果。
10.一种电子设备,其特征在于,包括:
与存储器耦合的处理器,被配置为基于所述存储器中存储的指令,执行与权利要求1至7中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450944.9A CN112989011B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、数据查询装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110450944.9A CN112989011B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、数据查询装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989011A true CN112989011A (zh) | 2021-06-18 |
CN112989011B CN112989011B (zh) | 2021-08-24 |
Family
ID=76340140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110450944.9A Active CN112989011B (zh) | 2021-04-26 | 2021-04-26 | 数据查询方法、数据查询装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989011B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535931A (zh) * | 2021-09-17 | 2021-10-22 | 北京明略软件系统有限公司 | 一种信息处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026330A1 (en) * | 2017-07-24 | 2019-01-24 | Jpmorgan Chase Bank, N.A. | System and method for implementing query tagging |
CN109408526A (zh) * | 2018-10-12 | 2019-03-01 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、计算机设备及存储介质 |
CN111177355A (zh) * | 2019-12-30 | 2020-05-19 | 北京百度网讯科技有限公司 | 基于搜索数据的人机对话交互方法、装置和电子设备 |
CN111274267A (zh) * | 2019-12-31 | 2020-06-12 | 杭州量之智能科技有限公司 | 一种数据库查询方法、装置及计算机可读取存储介质 |
CN111798279A (zh) * | 2020-07-17 | 2020-10-20 | 苏州思必驰信息科技有限公司 | 基于对话的用户画像生成方法和装置 |
CN112035506A (zh) * | 2019-10-28 | 2020-12-04 | 竹间智能科技(上海)有限公司 | 一种语义识别方法及其设备 |
-
2021
- 2021-04-26 CN CN202110450944.9A patent/CN112989011B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026330A1 (en) * | 2017-07-24 | 2019-01-24 | Jpmorgan Chase Bank, N.A. | System and method for implementing query tagging |
CN109408526A (zh) * | 2018-10-12 | 2019-03-01 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、计算机设备及存储介质 |
CN112035506A (zh) * | 2019-10-28 | 2020-12-04 | 竹间智能科技(上海)有限公司 | 一种语义识别方法及其设备 |
CN111177355A (zh) * | 2019-12-30 | 2020-05-19 | 北京百度网讯科技有限公司 | 基于搜索数据的人机对话交互方法、装置和电子设备 |
CN111274267A (zh) * | 2019-12-31 | 2020-06-12 | 杭州量之智能科技有限公司 | 一种数据库查询方法、装置及计算机可读取存储介质 |
CN111798279A (zh) * | 2020-07-17 | 2020-10-20 | 苏州思必驰信息科技有限公司 | 基于对话的用户画像生成方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535931A (zh) * | 2021-09-17 | 2021-10-22 | 北京明略软件系统有限公司 | 一种信息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112989011B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107256267B (zh) | 查询方法和装置 | |
CN106897428B (zh) | 文本分类特征提取方法、文本分类方法及装置 | |
US11521603B2 (en) | Automatically generating conference minutes | |
US9971967B2 (en) | Generating a superset of question/answer action paths based on dynamically generated type sets | |
CN110929125B (zh) | 搜索召回方法、装置、设备及其存储介质 | |
CN112988784B (zh) | 数据查询方法、查询语句生成方法及其装置 | |
KR101723862B1 (ko) | 텍스트를 포함하는 문서 분류 및 분석 방법 및 이를 수행하는 문서 분류 및 분석 장치 | |
CN110647614A (zh) | 智能问答方法、装置、介质及电子设备 | |
US20130060769A1 (en) | System and method for identifying social media interactions | |
CN109804364A (zh) | 知识图谱构建系统及方法 | |
US20180075013A1 (en) | Method and system for automating training of named entity recognition in natural language processing | |
CN111324771B (zh) | 视频标签的确定方法、装置、电子设备及存储介质 | |
CN112989010A (zh) | 数据查询方法、数据查询装置和电子设备 | |
US9940355B2 (en) | Providing answers to questions having both rankable and probabilistic components | |
US20090112845A1 (en) | System and method for language sensitive contextual searching | |
US20180089335A1 (en) | Indication of search result | |
EP3762876A1 (en) | Intelligent knowledge-learning and question-answering | |
KR20220134695A (ko) | 인공지능 학습 모델을 이용한 저자 식별 시스템 및 그 방법 | |
US20170242907A1 (en) | Processing a data set that is not organized according to a schema being used for organizing data | |
CN116402166B (zh) | 一种预测模型的训练方法、装置、电子设备及存储介质 | |
CN101689198A (zh) | 使用规格化串的语音搜索 | |
CN112182150A (zh) | 基于多元数据的聚合检索方法、装置、设备及存储介质 | |
CN111814481A (zh) | 购物意图识别方法、装置、终端设备及存储介质 | |
CN111602129B (zh) | 针对注释和墨迹的智能搜索 | |
US20130103388A1 (en) | Document analyzing apparatus |
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 |