本公开涉及自然语言处理,尤其涉及一种文本转结构化查询语言的语句生成方法、系统、设备、介质和程序产品。
背景技术:
1、text2sql(text-to-sql,文本转结构化查询语言)技术能够降低从业者的门槛,非技术人员无需了解sql(structured query language,结构化查询语言)语法,能够直接通过日常询问,以常规的自然语言从数据库中获取数据,并进行自动分析。
2、该项技术的发展可以分为三个阶段:早期,主要是基于手工设计的语法规则以及可控的自然语言问题构建的生成方法,可控性较强,但灵活性很差,且各个不同的数据库表结构之间泛化能力很弱;自深度学习发展以来,有监督的编码器-解码器模型快速地应用到了各项序列到序列的任务中,编码器通常采用bert(一种语言表示模型)来编码自然语言问题以及数据库schema(数据库结构信息:表名、列名等),解码器又可以分为序列解码器和基于语法的树型解码器;2023年,随着chatgpt(chat generative pre-trainedtransformer,一款聊天机器人程序)的问世,nlp(natural language processing,自然语言处理)研究进入了大模型时代,超大参数体量的模型能力更加全面,能够无需微调直接在prompt(提示词)中提示任务描述即可完美地完成各项nlp任务,如文本摘要、信息提取等,text2sql任务能够直接zero-shot(零样本)获取生成的sql语句,或者使用在prompt中给出几个示例的few-shot(少样本)方法获取更好的效果。此外,sql语言语法复杂,尤其是嵌套结构以及数据库中复杂的外键,对于生成任务来说保证语法准确性是一个不小的挑战,semql(一种特定于领域的语言)、natsql(一种特定于领域的语言)等类sql语言简化了sql的语法规则,能够通过大模型先生成这种类sql语句,再通过固定的转换规则,将其重新转化为sql查询语句,这样在一定程度上能够提升任务的转换准确率。
3、实际应用中的数据库表多拥有复杂的结构,包含很多列或者很多外键,而列名的命名规范也大不相同,而模型在生成相关列名时容易发生错误,导致生成的查询语句的准确率低。
技术实现思路
1、本公开要解决的技术问题是为了克服现有技术中数据库表结构复杂,模型在生成相关列名时容易发生错误,导致生成的查询语句的准确率低等缺陷,提供一种文本转结构化查询语言的语句生成方法、系统、设备、介质和程序产品。
2、本公开是通过下述技术方案来解决上述技术问题:
3、本公开提供一种文本转结构化查询语言的语句生成方法,所述语句生成方法包括:
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、较佳地,所述基于所述第一问答数据和所述第二问答数据,得到所述目标问答数据的步骤包括:
29、获取所述第一问答数据与所述目标查询问题、所述第二查询语句的第一相似度,以及所述第二问答数据与所述目标查询问题、所述第二查询语句的第二相似度;
30、基于所述第一相似度和所述第二相似度,从所述第一问答数据和所述第二问答数据中选取出所述目标问答数据;
31、或者,
32、确定所述第一问答数据或所述第二问答数据为所述目标问答数据。
33、本公开还提供一种文本转结构化查询语言的语句生成系统,所述语句生成系统包括:
34、数据关键词确定模块,用于基于目标查询问题,确定目标查询语句中的数据关键词;
35、其中,所述数据关键词包括与所述目标查询问题对应的表名、字段名和字段值中的至少一种;
36、初始语句获取模块,用于基于所述目标查询问题,得到初始查询语句;
37、其中,所述初始查询语句为带有占位符和语法结构关键词的查询语句,所述占位符用于代替所述数据关键词;
38、目标语句生成模块,用于基于所述初始查询语句和所述数据关键词,生成目标查询语句。
39、较佳地,所述数据关键词确定模块包括:
40、信息提取单元,用于采用大语言模型从所述目标查询问题中提取关键词信息;
41、关键词获取单元,用于根据所述关键词信息,采用相似度匹配的方法从预设数据库获取所述数据关键词;
42、其中,所述预设数据库用于存储若干表名、若干字段名和若干字段值。
43、较佳地,所述初始语句获取模块包括:
44、查询关键词获取单元,用于基于所述目标查询问题,采用大语言模型获取查询关键词;
45、其中,所述查询关键词为所述结构化查询语言中的所述语法结构关键词;
46、初始语句获取单元,用于基于所述查询关键词,得到所述初始查询语句。
47、较佳地,所述初始语句获取单元包括:
48、目标数据获取子单元,用于基于所述目标查询问题,采用相似度匹配的方法从预设问答库中获取目标问答数据;
49、其中,所述预设问答库包括若干组相互对应的历史查询问题和历史查询语句,所述目标问答数据包括与所述目标查询问题对应的历史查询问题和历史查询语句;
50、初始语句获取子单元,用于基于所述目标问答数据和所述查询关键词,采用所述大语言模型获取所述初始查询语句。
51、较佳地,所述目标数据获取子单元,还用于基于所述目标查询问题,从所述预设问答库中获取第一问答数据;
52、其中,所述第一问答数据包括第一查询问题和与所述第一查询问题对应的第一查询语句,所述第一查询问题为所述预设问答库中与所述目标查询问题相似度最高的历史查询问题;
53、基于所述目标查询问题,采用所述大语言模型获取第二查询语句;
54、基于所述第二查询语句,从所述预设问答库中获取第二问答数据;
55、其中,所述第二问答数据包括第三查询语句和与所述第三查询语句对应的第二查询问题,所述第三查询语句为所述预设问答库中与所述第二查询语句相似度最高的历史查询语句;
56、基于所述第一问答数据和所述第二问答数据,得到所述目标问答数据。
57、较佳地,所述目标数据获取子单元,还用于获取所述第一问答数据与所述目标查询问题、所述第二查询语句的第一相似度,以及所述第二问答数据与所述目标查询问题、所述第二查询语句的第二相似度;
58、基于所述第一相似度和所述第二相似度,从所述第一问答数据和所述第二问答数据中选取出所述目标问答数据;
59、或者,
60、所述目标数据获取子单元,还用于确定所述第一问答数据或所述第二问答数据为所述目标问答数据。
61、本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的文本转结构化查询语言的语句生成方法。
62、本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的文本转结构化查询语言的语句生成方法。
63、本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述所述的文本转结构化查询语言的语句生成方法。
64、在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本公开各较佳实例。
65、本公开的积极进步效果在于:
66、本公开根据目标查询问题确定目标查询语句中的数据关键词,数据关键词包括与目标查询问题对应的表名、字段名和字段值中的至少一种;根据目标查询问题得到初始查询语句,初始查询语句为带有占位符和语法结构关键词的查询语句,占位符用于代替所述数据关键词;进而根据初始查询语句和数据关键词,生成目标查询语句,克服了通过模型生成相关列名时容易发生错误的问题,提升了生成的目标查询语句的准确率。
1.一种文本转结构化查询语言的语句生成方法,其特征在于,所述语句生成方法包括:
2.如权利要求1所述的文本转结构化查询语言的语句生成方法,其特征在于,所述基于目标查询问题,确定目标查询语句中的数据关键词的步骤包括:
3.如权利要求1所述的文本转结构化查询语言的语句生成方法,其特征在于,所述基于所述目标查询问题,得到初始查询语句的步骤包括:
4.如权利要求3所述的文本转结构化查询语言的语句生成方法,其特征在于,所述基于所述查询关键词,得到所述初始查询语句的步骤包括:
5.如权利要求4所述的文本转结构化查询语言的语句生成方法,其特征在于,所述基于所述目标查询问题,采用相似度匹配的方法从预设问答库中获取目标问答数据的步骤包括:
6.如权利要求5所述的文本转结构化查询语言的语句生成方法,其特征在于,所述基于所述第一问答数据和所述第二问答数据,得到所述目标问答数据的步骤包括:
7.一种文本转结构化查询语言的语句生成系统,其特征在于,所述语句生成系统包括:
8.一种电子设备,包括存储器、处理器及存储在存储器上并用于在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的文本转结构化查询语言的语句生成方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的文本转结构化查询语言的语句生成方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的文本转结构化查询语言的语句生成方法。