掌桥专利:专业的专利平台
掌桥专利
首页

结构化查询语言语句生成方法和装置

文献发布时间:2023-06-19 11:35:49


结构化查询语言语句生成方法和装置

技术领域

本公开涉及人工智能技术领域,特别是一种SQL(Structured Query Language,结构化查询语言)语句生成方法和装置。

背景技术

当前,大量数据存储于数据库,进行数据库查询时需要利用专业的查询语言SQL语句进行查询,而非专业人员查询数据库比较困难。相关技术中基于用户提供的信息,利用分词技术提取关键字,进而利用这些关键字从预设数据库中的SQL语句中查询最相似的SQL查询语句。

发明内容

发明人发现,相关技术中的方法需要预先构建SQL语句数据库,会耗费大量人力物力。并且该方法仅支持固定查询句式,通用性差,扩展性差。

本公开的一个目的在于提高SQL语言生成的可扩展性。

根据本公开的一些实施例的一个方面,提出一种SQL语句生成方法,包括:获取用户在对话中的表达信息;基于增加BERT(动态词向量)模型的Bi-LSTM(双向长短时记忆网络)和CRT(条件随机场)模型,从表达信息中抽取有效信息,有效信息包括时间、实体或指标中的一项或多项;根据有效信息,基于SQL语句的语法生成结构化查询语言SQL语句。

在一些实施例中,基于增加BERT的Bi-LSTM和CRT模型从表达信息中抽取有效信息包括:拼接动态词向量和预训练产生的词向量,作为模型文本特征提取结果;将模型文本特征提取结果输入Bi-LSTM+CRT模型,提取字和句子级别的有效信息。

在一些实施例中,SQL语句生成方法还包括:在从表达信息中抽取有效信息后,判断有效信息中是否包含实体和指标;若有效信息中包含实体和指标,则判断数据库中是否存在实体和指标,在数据库中存在实体和指标的情况下,执行生成SQL语句的操作。

在一些实施例中,SQL语句生成方法还包括:若数据库中不存在有效信息中的实体和指标,则向用户提供数据库中存在的与有效信息的实体和指标在预定相似度范围内的推荐实体和指标,以便用户选择;根据用户选择的实体和指标执行生成SQL语句的操作。

在一些实施例中,SQL语句生成方法还包括:若有效信息中包含实体或指标中的一种,则基于预定脚本输出引导信息,以便引导用户输入实体或指标中缺失的一种。

在一些实施例中,SQL语句生成方法还包括:若有效信息中不包含实体,且不包含指标,则利用聊天机器人与用户对话。

在一些实施例中,SQL语句生成方法还包括:在利用聊天机器人与用户对话的过程中,执行获取用户在对话中的表达信息的操作,以便生成SQL语句。

在一些实施例中,SQL语句生成方法还包括:将生成的SQL语句在数据库中查询,并反馈查询结果。

通过这样的方法,能够基于BERT+Bi-LSTM+CRT的模型处理用户在对话中提供的信息,根据提取到的信息,根据SQL语法生成SQL语句,从而降低了对用户使用数据库能力的要求,也提高了有效信息提取的效率和准确度,无需预先生成固定查询句式,提高了SQL语句生成的可扩展性。

根据本公开的一些实施例的一个方面,提出一种SQL语句生成装置,包括:对话获取单元,被配置为获取用户在对话中的表达信息;信息抽取单元,被配置为基于增加BERT模型的Bi-LSTM和CRT模型,从表达信息中抽取有效信息,有效信息包括时间、实体或指标中的一项或多项;语句生成单元,被配置为根据有效信息,基于SQL语句的语法生成结构化查询语言SQL语句。

在一些实施例中,SQL语句生成装置还包括:判断单元,被配置为在从表达信息中抽取有效信息后,判断有效信息中是否包含实体和指标;若有效信息中包含实体和指标,则判断数据库中是否存在实体和指标,在存在实体和指标的情况下,激活语句生成单元执行生成SQL语句的操作。

在一些实施例中,SQL语句生成装置还包括:模糊推荐单元,被配置为在数据库中不存在有效信息中的实体和指标的情况下,向用户提供数据库中存在的与有效信息的实体和指标在预定相似度范围内的推荐实体和指标,以便用户选择;语句生成单元被配置为根据用户选择的实体和指标执行生成SQL语句的操作。

在一些实施例中,SQL语句生成装置还包括:引导单元,被配置为在有效信息中包含实体或指标中的一种的情况下,基于预定脚本输出引导信息,以便引导用户输入实体或指标中缺失的一种。

在一些实施例中,SQL语句生成装置还包括:聊天机器人,被配置为在有效信息中不包含实体,且不包含指标的情况下,与用户对话;对话获取单元还被配置为在聊天机器人与用户对话的过程中,执行获取用户在对话中的表达信息的操作,以便语句生成单元生成SQL语句。

在一些实施例中,SQL语句生成装置还包括:查询单元,被配置为将语句生成单元生成的SQL语句在数据库中查询,并反馈查询结果。

根据本公开的一些实施例的一个方面,提出一种SQL语句生成装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种SQL语句生成方法。

这样的装置能够基于BERT+Bi-LSTM+CRT的模型处理用户在对话中提供的信息,根据提取到的信息,根据SQL语法生成SQL语句,从而降低了对用户使用数据库能力的要求,也提高了有效信息提取的效率和准确度,无需预先生成固定查询句式,提高了SQL语句生成的可扩展性。

根据本公开的一些实施例的一个方面,提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种SQL语句生成方法的步骤。

通过执行这样的计算机可读存储介质上的指令,能够基于BERT+Bi-LSTM+CRT的模型处理用户在对话中提供的信息,根据提取到的信息,根据SQL语法生成SQL语句,从而降低了对用户使用数据库能力的要求,也提高了有效信息提取的效率和准确度,无需预先生成固定查询句式,提高了SQL语句生成的可扩展性。

附图说明

此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:

图1为本公开的SQL语句生成方法的一些实施例的流程图。

图2为本公开的SQL语句生成方法中BERT+Bi-LSTM+CRT模型的一些实施例的示意图。

图3为本公开的SQL语句生成方法中动态词向量模型的一些实施例的示意图。

图4为本公开的SQL语句生成方法的另一些实施例的流程图。

图5为本公开的SQL语句生成装置的一些实施例的示意图。

图6为本公开的SQL语句生成装置的另一些实施例的示意图。

图7为本公开的SQL语句生成装置的又一些实施例的示意图。

具体实施方式

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

本公开的SQL语句生成方法的一些实施例的流程图如图1所示。

在步骤101中,获取用户在对话中的表达信息。

在步骤102中,基于增加BERT模型的Bi-LSTM和CRT模型,从表达信息中抽取有效信息,有效信息包括时间、实体或指标中的一项或多项。在一些实施例中,时间可以包括年、月、季度等信息中的一种或多种。

在步骤103中,根据有效信息,基于SQL语句的语法生成结构化查询语言SQL语句。在一些实施例中,可以将生成的SQL语句在数据库中查询,并反馈查询结果。

通过这样的方法,能够基于BERT+Bi-LSTM+CRT的模型处理用户在对话中提供的信息,根据提取到的信息,根据SQL语法生成SQL语句,从而降低了对用户使用数据库能力的要求,也提高了有效信息提取的效率和准确度,无需预先生成固定查询句式,提高了SQL语句生成的可扩展性。

在一些实施例中,BERT+Bi-LSTM+CRT模型可以如图2所示,动态词向量模型可以如图3所示。将动态词向量BERT和预训练产生的词向量GloVe一起作为模型文本特征提取结果,输入到Bi-LSTM+CRF模型中,提取字以及句子级别的文本特征。通过这样的方法,能够提升自然语言抽取实体的准确度与效率,在测试中,准确度能够由91.2%提升到96.8%,100条数据的转换时间由84s缩短为52s。

本公开的SQL语句生成方法的另一些实施例的流程图如图4所示。

在步骤401中,获取用户在对话中的表达信息。在一些实施例中,可以提取用户在与聊天机器人或他人对话过程中说出的或输入的句子、词语等。

在步骤402中,基于增加动态词向量BERT模型的Bi-LSTM和CRT模型,从表达信息中抽取有效信息。在一些实施例中,有效信息可以包括字、词语以及句子级别的自然语言文本。

在步骤403中,判断有效信息中是否包含实体和指标。若有效信息中包含实体和指标,则执行步骤404。

在步骤404中,判断当前查询是否为模糊查询。在一些实施例中,可以通过将实体、指标在数据库中匹配的方式判断是否为模糊查询。若数据库中存在有效信息中的实体和指标,则非模糊查询,执行步骤407;若数据库中不存在有效信息中的实体和指标,则当前有效信息中的实体和指标不够准确,为模糊查询,执行步骤405。

在步骤405中,向用户提供数据库中存在的与有效信息的实体和指标在预定相似度范围内的推荐实体和指标。在一些实施例中,可以基于语义分析确定数据库中存在的实体和指标与有效信息中的实体和指标的相似度。

在步骤406中,获取用户选择实体和指标,该实体和指标即为数据库中存在的,进而执行步骤407。

在步骤407中,基于SQL语句的语法生成SQL语句。

通过这样的方法,能够在用户对话中提取的信息模糊、不够准确的情况下,通过推理、猜测并供用户选择的方式得到准确的信息,进而生成SQL语句,降低了对用户表达的要求,提高了查询成功的概率。

在一些实施例中,图4的步骤403中,若有效信息中包含实体或指标中的一种,缺失另一种,则执行步骤414。

在步骤414中,基于预定脚本输出引导信息,以便引导用户输入实体或指标中缺失的一种。在一些实施例中,可以通过多轮对话的引导,使得用户输入缺失的信息,并在每次用户补充信息后跳转到执行步骤402,直至实体、指标信息均不缺失。

通过这样的方法,能够在有效信息不完全的情况下,通过对话引导的方式提高用户补充缺失信息的效率,从而提高查询语句生成、以及查询的效率。

在一些实施例中,图4的步骤403中,若有效信息中不包含实体,且不包含指标,则执行步骤424。

在步骤424中,如果用户输入的对话信息不包含指标也不包含实体,则利用聊天机器人(如基于seq2seq的聊天机器人模型)生成对应的对话,进入闲聊模式。在一些实施例中,也可以在每次用户输入信息后执行步骤401,及时获取用户提供的信息以便生成SQL语句。

通过这样的方法,能够增加多场景交互模块,改善原有的单调交互方式,提高用户体验。

本公开的SQL语句生成装置的一些实施例的示意图如图5所示。

对话获取单元501能够获取用户在对话中的表达信息。

信息抽取单元502能够基于增加动态词向量BERT模型的双向长短时记忆网络Bi-LSTM和条件随机场CRT模型,从表达信息中抽取有效信息,有效信息包括时间、实体或指标中的一项或多项。在一些实施例中,时间可以包括年、月、季度等信息中的一种或多种。

语句生成单元503能够根据有效信息,基于SQL语句的语法生成结构化查询语言SQL语句。

这样的SQL语句生成装置能够基于BERT+Bi-LSTM+CRT的模型处理用户在对话中提供的信息,根据提取到的信息,根据SQL语法生成SQL语句,从而降低了对用户使用数据库能力的要求,也提高了有效信息提取的效率和准确度,无需预先生成固定查询句式,提高了SQL语句生成的可扩展性。

在一些实施例中,如图5所示,SQL语句生成装置还可以包括查询单元504,能够可以将生成的SQL语句在数据库中查询,并反馈查询结果,以便用户及时获取查询结果。

在一些实施例中,如图5所示,SQL语句生成装置还可以包括判断单元505,能够判断有效信息中是否包含实体和指标。

在一些实施例中,SQL语句生成装置还可以包括模糊推荐单元506。若判断单元505确定有效信息中包含实体和指标,则在当前查询为模糊查询的情况下,模糊推荐单元506向用户提供数据库中存在的与有效信息的实体和指标在预定相似度范围内的推荐实体和指标,以便用户用户选择清楚的实体和指标,并将用户选择的实体和指标,以及有效信息中的时间交由语句生成单元503生成SQL语句;在当前查询不为模糊查询的情况下,判断单元505将有效信息交由语句生成单元503生成SQL语句。

这样的装置能够在用户对话中提取的信息模糊、不够准确的情况下,通过推理、猜测并供用户选择的方式得到准确的信息,进而生成SQL语句,降低了对用户表达的要求,提高了查询成功的概率。

在一些实施例中,SQL语句生成装置还可以包括引导单元507。若判断单元505确定有效信息中包含实体或指标中的一种,缺失另一种,则引导单元507基于预定脚本输出引导信息,以便引导用户输入实体或指标中缺失的一种,每次获取用户提供的信息后,激活信息抽取单元502提取有效信息,直至语句生成单元503能够得到完整的时间、实体和指标信息,从而提高查询语句生成和查询的效率。

在一些实施例中,SQL语句生成装置还可以包括聊天机器人508。若判断单元505确定有效信息中不包含实体,且不包含指标,则聊天机器人508利用生成对应的对话,进入闲聊模式,提高可交互度,丰富用户体验。在一些实施例中,聊天机器人508也可以在每次用户输入信息后激活对话获取单元501,及时获取用户提供的信息以便语句生成单元503生成SQL语句,从而避免遗漏有效信息,进一步提高查询语句生成、以及查询的效率。

本公开SQL语句生成装置的一个实施例的结构示意图如图6所示。SQL语句生成装置包括存储器601和处理器602。其中:存储器601可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中SQL语句生成方法的对应实施例中的指令。处理器602耦接至存储器601,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器602用于执行存储器中存储的指令,能够降低对用户使用数据库能力的要求,提高有效信息提取的效率和准确度,提高SQL语句生成的可扩展性。

在一个实施例中,还可以如图7所示,SQL语句生成装置700包括存储器701和处理器702。处理器702通过BUS总线703耦合至存储器701。该SQL语句生成装置700还可以通过存储接口704连接至外部存储装置705以便调用外部数据,还可以通过网络接口706连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够降低对用户使用数据库能力的要求,提高有效信息提取的效率和准确度,提高SQL语句生成的可扩展性。

在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现SQL语句生成方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。

相关技术
  • 结构化查询语言语句生成方法和装置
  • 基于自然语言的结构化查询语言语句获取方法及装置
技术分类

06120112986312