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

语言查询模型构建方法、查询语言获取方法及相关装置

文献发布时间:2024-04-18 19:58:53


语言查询模型构建方法、查询语言获取方法及相关装置

技术领域

本申请涉及人工智能领域及金融领域,具体涉及一种语言查询模型构建方法、查询语言获取方法及相关装置。

背景技术

在现代软件开发中,数据库已经成为了必不可少的一部分。而对于数据库的管理,SQL语言(Structured Query Language,结构化查询语言)是最为常用的一种方式。然而,SQL语句的编写需要使用人员具备一定的专业知识和经验。一方面,人工开发容易出现不易发现的手误、语法错误和逻辑错误;另一方面,一些业务人员查看机密业务数据报文的场景需要开发人员的协助,在开发人员不允许接触数据的情况下,SQL语句的处理和沟通有一定困难,对于初学者的业务人员来说开发SQL也有一定的门槛,难度较大。

因此,如何提供一种语言查询模型,从而辅助开发人员不查看数据详情得到SQL语句,以此提高业务人员的查询和验收效率,是本领域技术人员急需解决的技术问题。

发明内容

基于上述问题,本申请提供了语言查询模型构建方法、查询语言获取方法及相关装置,从而辅助开发人员不查看数据详情得到SQL语句,以此提高业务人员的查询和验收效率。

本申请实施例公开了如下技术方案:

一种语言查询模型构建方法,所述方法包括:

获取历史结构化查询语言;

对所述历史结构化查询语言进行预处理得到第一预处理数据;

将所述第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。

在一些可能的实现方式中,所述对所述历史结构化查询语言进行预处理得到第一预处理数据,包括:

去除所述历史结构化查询语言中的数据值和列名信息得到第一数据模版;

对所述第一数据模版进行聚类得到多个中间模板,并去除中间模板中的目标模板得到多个第二数据模版;

根据模版出现频率从第二数据模版中挑选预设数量个所述第二数据模版作为第三数据模版;

当所述第三数据模版与所述第三数据模版的中文描述一致时,将所述中文描述作为语言描述模版;

获取与所述第三数据模版和所述语言描述模版类型相同的第二数据值和第二列名信息填入到所述第三数据模版和所述语言描述模版中得到模版集合;

将所述模版集合划分为训练集和测试集,并将所述训练集作为所述第一预处理数据。

在一些可能的实现方式中,所述方法还包括:

获取所述测试集对应的真实语句的目标答复,并获取所述目标答复对应的目标字符,其中,所述真实语句为用户输入的语句;

将所述测试集输入到所述语言查询模型中得到输出结构化查询语言;

当所述输出结构化查询语言的输出答复与所述目标答复不一致和/或所述输出结构化查询语言的输出字符与所述目标字符不一致时,根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正。

一种查询语言获取方法,所述方法包括:

获取待处理需求;

对所述待处理需求进行预处理得到第二预处理数据;

当数据库中不存在所述待处理需求的查询记录时,将所述第二预处理数据输入到语言查询模型中得到目标结构化查询语言,并将所述目标结构化查询语言输出给客户端,其中,所述语言查询模型是根据如上所述的语言查询模型构建方法构建得到的;

当数据库中存在所述待处理需求的查询记录时,将所述查询记录对应所述的目标结构化查询语言输出给客户端。

在一些可能的实现方式中,所述对所述待处理需求进行预处理得到第二预处理数据,包括:

去除所述待处理需求中特殊字符和标点符号得到清洁文本;

对所述清洁文本进行分词处理得到分词文本;

对所述分词文本进行语义解析得到所述第二预处理数据。

一种语言查询模型的构建装置,所述装置包括:

第一获取单元,用于获取历史结构化查询语言;

第一预处理单元,用于对所述历史结构化查询语言进行预处理得到第一预处理数据;

模型训练单元,用于将所述第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。

一种查询语言获取装置,所述装置包括:

第三获取单元,用于获取待处理需求;

第二预处理单元,用于对所述待处理需求进行预处理得到第二预处理数据;

输入输出单元,用于当数据库中不存在所述待处理需求的查询记录时,将所述第二预处理数据输入到语言查询模型中得到目标结构化查询语言,并将所述目标结构化查询语言输出给客户端,其中,所述语言查询模型是根据如上所述的语言查询模型构建方法构建得到的;

输出单元,用于当数据库中存在所述待处理需求的查询记录时,将所述查询记录对应所述的目标结构化查询语言输出给客户端。

一种查询语言获取模型的构建设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的语言查询模型构建方法。

一种查询语言获取设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的查询语言获取方法。

一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的语言查询模型构建方法,或者执行如上所述的查询语言获取方法。

相较于现有技术,本申请具有以下有益效果:

本申请提供了一种语言查询模型构建方法、查询语言获取方法及相关装置。具体地,在执行本申请实施例提供的语言查询模型构建方法时,首先可以获取历史结构化查询语言。接着,对历史结构化查询语言进行预处理得到第一预处理数据。然后将第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。本申请基于卷积神经网络利用处理好的历史结构化查询语言进行模型训练生成可以自动化生成SQL语句的语言查询模型。本申请的语言查询模型可以使得开发人员在不查看数据详情得到SQL语句,从而提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

附图说明

为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种语言查询模型构建方法的方法流程图;

图2为本申请实施例提供的一种查询语言获取方法的方法流程图;

图3为本申请实施例提供的一种语言查询模型的构建装置的结构示意图;

图4为本申请实施例提供的一种查询语言获取装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为便于理解本申请实施例提供的技术方案,下面将先对本申请实施例涉及的背景技术进行说明。

在现代软件开发中,数据库已经成为了必不可少的一部分。而对于数据库的管理,SQL语言(Structured Query Language,结构化查询语言)是最为常用的一种方式。然而,SQL语句的编写需要使用人员具备一定的专业知识和经验。一方面,人工开发容易出现不易发现的手误、语法错误和逻辑错误;另一方面,一些业务人员查看机密业务数据报文的场景需要开发人员的协助,在开发人员不允许接触数据的情况下,SQL语句的处理和沟通有一定困难,对于初学者的业务人员来说开发SQL也有一定的门槛,难度较大。

其中,SQL语言是一种用于管理和操作关系型数据库的标准化语言。它允许用户通过简单的语法提出查询、插入、更新和删除数据库中的数据。

为了解决这一问题,在本申请实施例提供了一种语言查询模型构建方法、查询语言获取方法及相关装置,先获取历史结构化查询语言。然后对历史结构化查询语言进行预处理得到第一预处理数据。最后,将第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。本申请基于卷积神经网络利用处理好的历史结构化查询语言进行模型训练生成可以自动化生成SQL语句的语言查询模型。本申请的语言查询模型可以使得开发人员在不查看数据详情得到SQL语句,从而提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,该图为本申请实施例提供的一种语言查询模型构建方法的方法流程图,如图1所示,该语言查询模型构建方法可以包括步骤S101-S103:

S101:获取历史结构化查询语言。

为了构建语言查询模型,语言查询模型的构建系统首先需要获取历史结构化查询语言。

在一些可能的实现方式中,所述历史结构化查询语言的来源1是可以是外部SQL(Structured Query Language,结构化查询语言)语句库:爬虫侠CSpider里面包含语言语句及对应的SQL信息;来源2是银行开发系统内部SQL语句及对应中文。其中,CSpider是一个基于Python的开源网络爬虫框架,用于抓取互联网上的数据。它提供了强大的功能和灵活的配置选项,可以用于各种网络爬虫任务,如数据采集、搜索引擎索引、网页分析等。

S102:对所述历史结构化查询语言进行预处理得到第一预处理数据。

在获取到历史结构化查询语言之后,语言查询模型构建则可以对历史结构化查询语言进行预处理得到第一预处理数据。

在一些可能的实现方式中,所述对所述历史结构化查询语言进行预处理得到第一预处理数据,包括A1-A6:

A1:去除所述历史结构化查询语言中的数据值和列名信息得到第一数据模版。

为实现对历史结构化查询语言进行预处理得到第一预处理数据,语言查询模型构建系统首先需要去除历史结构化查询语言中的数据值和列名信息得到第一数据模版,将历史结构化查询语言转化为通用的形式(即将历史结构化查询语言中的数据值和列名信息进行去除),便于后续的聚类和模型训练。

在一些可能的实现方式中,数据值(Data Values):数据值是指存储在数据库表中的具体数据。它们可以是文本、数字、日期、布尔值等不同类型的数据。在SQL语句中,数据值用于执行插入、更新和筛选等操作。

例如,在INSERT INTO语句中,VALUES子句指定了要插入的具体数据值。

例如,在插入语句中,我们使用VALUES关键字来指定要插入的具体数值。这些数值可以是文本、数字、日期等不同类型的数据。例如,INSERT INTO表名(列1,列2,列3)VALUES(值1,值2,值3)。

列名信息(Column Names):列名信息是指数据库表中的列的名称。每个表由一组列组成,每列都具有唯一的名称。列名用于标识特定的列以进行查询、更新或删除等操作。在SELECT语句中,列名用于指定要检索的特定列。例如,SELECT column1,column2 FROMtable_name。

A2:对所述第一数据模版进行聚类得到多个中间模板,并去除中间模板中的目标模板得到多个第二数据模版。

在去除历史结构化查询语言中的数据值和列名信息得到第一数据模版之后,语言查询模型构建系统还需要对第一数据模版进行聚类得到多个中间模板,并去除中间模板中的目标模板得到多个第二数据模版。对第一数据模版进行聚类,将相似的模板归为一类。这可以帮助去除比较简单的模板,确保选取的模板具有一定的复杂性和多样性。

在一些可能的实现方式中,目标模板可以理解为查询需求较为基础和常见的模板,它们可能包含了比较常用的查询操作,如简单的筛选条件、排序方式、查询字段等。这些模板往往非常直接和容易理解,不涉及复杂的数据库关联或嵌套查询等高级操作。与目标模板相对应的复杂的模板(即第二数据模版)可能包含更多复杂的查询需求,例如多表关联、子查询、聚合函数、窗口函数、连接条件等。这些模板通常需要更深入的数据库知识和高级查询技巧才能理解和使用。因此,在选择复杂模板时,可以考虑模板的复杂程度、包含的查询操作种类、涉及的数据库特性以及对应查询需求的普遍性和广泛性。通过精心挑选复杂模板,可以更好地训练模型以解决更具挑战性的查询问题。

A3:根据模版出现频率从第二数据模版中挑选预设数量个所述第二数据模版作为第三数据模版。

在对第一数据模版进行聚类得到多个中间模板,并去除中间模板中的目标模板得到多个第二数据模版之后,语言查询模型构建系统则可以根据模版出现频率将出现频率较低的第二数据模版中挑选预设数量个第二数据模版作为第三数据模版。

其中,频率较高的模板往往表示了常见的查询需求,而较低频的模板则可能包含了更加复杂和特殊的查询需求因此需要挑选出现较低频的模板。

在一些可能的实现方式中,预设数量可以是但不限于50个,本申请对预设数量不做具体限制。

A4:当所述第三数据模版与所述第三数据模版的中文描述一致时,将所述中文描述作为语言描述模版。

当第三数据模版与其中文描述一致时,语言查询模型构建系统则可以将中文描述作为语言描述模版。

在一些可能的实现方式中,第三数据模版与其中文描述是否一致可以通过人工校验的方式进行核对。

A5:获取与所述第三数据模版和所述语言描述模版类型相同的第二数据值和第二列名信息填入到所述第三数据模版和所述语言描述模版中得到模版集合。

在得到语言描述模版之后,语言查询模型构建系统还需要获取与第三数据模版和语言描述模版类型相同的第二数据值和第二列名信息填入到第三数据模版和语言描述模版中得到模版集合。

A6:将所述模版集合划分为训练集和测试集,并将所述训练集作为所述第一预处理数据。

在得到得到模版集合之后,语言查询模型构建系统将模版集合划分为训练集和测试集,并将训练集作为所述第一预处理数据。

通过去除第一数据值和第一列名信息,可以将原始查询语言中的噪声和无关信息过滤掉,提取出纯净的数据模版。同时,通过对第一数据模版进行聚类,可以将相似的数据模版归为一类,从而得到多个中间模板。这有助于减少数据模版的冗余性和复杂性。综上所述,该预处理方法能够有效地去除噪声和无关信息,提炼出有用的数据模版,并生成可读性强的语言描述模版,为后续任务提供了高质量的训练数据。

S103:将所述第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。

在对历史结构化查询语言进行预处理得到第一预处理数据之后,语言查询模型构建系统则可以将第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。

其中,CNN(Convolutional Neural Network,卷积神经网络)是一种广泛应用于计算机视觉和图像识别任务的深度学习模型。它基于人类对视觉信息处理的认知方式,通过多层卷积和池化操作来提取图像中的特征,并将这些特征输入到全连接层进行分类和识别。CNN的核心思想是利用卷积操作来捕捉输入数据的局部空间结构信息。通过使用一系列的卷积层和激活函数,CNN可以自动学习输入图像的低级特征(如边缘、纹理等),然后逐渐组合这些特征以获取更高级别的特征(如形状、目标等)。

在一些可能的实现方式中,语言查询模型包括以下模块:

嵌套查询模块(预测unionexcept):该模块用于生成嵌套查询语句中的联合和差集操作,能够预测并生成相应的语法。

关键字模块(预测where/select/insert/update):该模块用于预测和生成SQL语句中的关键字,包括WHERE、SELECT、INSERT和UPDATE等。

列名模块:该模块用于生成SQL语句中的列名,可以根据上下文预测并生成相应的列名。

运算符模块(>/

聚合函数模块(max/min/sum):该模块用于生成聚合函数,如MAX、MIN和SUM等。

预测子查询或终止符模块:该模块用于预测和生成子查询或终止符,可以根据需要生成相应的语句结构。

预测条件表达式关系模块(and/or):该模块用于预测和生成条件表达式之间的关系,包括AND和OR。

ORDER BY模块(decs/asc/limit):该模块用于生成ORDER BY子句,包括降序、升序和限制结果数量等。

GROUP BY模块(having):该模块用于生成GROUP BY子句和HAVING子句,用于对查询结果进行分组和过滤。

通过训练确定调用顺序,可以根据模型的需要和语法规则来确定每个模块的调用顺序,以生成符合语法和语义要求的SQL查询语句。这样的模块化结构使得模型能够灵活生成各种复杂的SQL查询语句。

在一些可能的实现方式中,所述方法还包括B1-B3:

B1:获取所述测试集对应的真实语句的目标答复,并获取所述目标答复对应的目标字符,其中,所述真实语句为用户输入的语句。

为提高模型的准确性、一致性和可靠性,语言查询模型构建系统首先需要获取测试集对应的由用户输入的真实语句的目标答复,并获取目标答复对应的目标字符。

在一些可能的实现方式中,真实语句可以是问句或陈述句等。

在一些可能的实现方式中,目标答复即历史结构化查询语言。目标答复是人工标注的正确答案,目标字符则是从目标答复中提取的关键信息。

B2:将所述测试集输入到所述语言查询模型中得到输出结构化查询语言。

在获取到目标答复和目标字符之后,语言查询模型构建系统还需要将测试集输入到语言查询模型中得到输出结构化查询语言。

B3:当所述输出结构化查询语言的输出答复与所述目标答复不一致和/或所述输出结构化查询语言的输出字符与所述目标字符不一致时,根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正。

当输出结构化查询语言的输出答复与目标答复不一致和/或输出结构化查询语言的输出字符与目标字符不一致时,语言查询模型构建则可以根据目标答复和/或目标字符对语言查询模型进行修正。

其中,输出答复指的是语言查询模型生成的结构化查询语言中携带的回答文本,而输出字符指的是该回答文本所包含的具体字符。

在一些可能的实现方式中,根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正可以通过定义新的一一对齐映射特征,利用重排序技术,对得到的多条候选结果进行正确答案的优先挑选;或数据增强方法等。

根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正包括以下几个方面:

特征工程:这是指根据真实语句的目标答复和目标字符对真实语句进行一系列处理,提取出有用的、代表数据特征的新特征。通过定义新的一一对齐映射特征,可以更好地挖掘数据中隐藏的规律和信息。

超参数调优:超参数是指机器学习模型中需要手动设置的参数,如权重衰减系数、学习率等。通过合理的调整,可以使模型在训练集和测试集上的泛化性能得到优化。

重排序技术:这是指通过对得到的多条候选结果进行正确答案的优先挑选。在问答系统中,可以根据答案的相关性和可信度对结果进行排序,从而提高系统的准确率。

数据增强方法:数据增强是指根据真实语句的目标答复和目标字符对真实语句进行变换、扩充等操作,生成更多的训练数据。这样可以有效地缓解数据不足的问题,提高模型的泛化能力。

通过使用真实数据进行模型修正,可以提高模型的准确性、一致性和可靠性,从而提升语言查询模型的性能。

基于S101-S103的内容可知,先获取历史结构化查询语言。接着,对历史结构化查询语言进行预处理得到第一预处理数据。最后,将第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。本申请基于卷积神经网络利用处理好的历史结构化查询语言进行模型训练生成可以自动化生成SQL语句的语言查询模型。本申请的语言查询模型可以使得开发人员在不查看数据详情得到SQL语句,从而提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

基于上述提供的查询语言获取模型的训练方法的实施例,本申请实施例还提供了一种查询语言获取方法。参见图2,图2为本申请实施例提供的一种查询语言获取方法的方法流程图。如图2所示,该方法包括S201-S204:

S201:获取待处理需求。

在利用语言查询模型进行语言查询时,查询语言获取系统首先需要获取用户提出的待处理需求。

S202:对所述待处理需求进行预处理得到第二预处理数据。

在获取到用户提出的待处理需求之后,查询语言获取系统还需要对待处理需求进行预处理得到第二预处理数据。

在一些可能的实现方式中,所述对所述待处理需求进行预处理得到第二预处理数据,包括C1-C3:

C1:去除所述待处理需求中特殊字符和标点符号得到清洁文本。

为实现对待处理需求进行预处理得到第二预处理数据,查询语言获取系统首先需要去除待处理需求中的特殊字符、标点符号以确保文本的清洁和一致性。

其中,特殊字符和标点符号是指在文本中具有特殊含义或功能的符号。它们通常不包含实际的语义信息,而是用于表示文本结构、标点、引号、括号、连接符等。

C2:对所述清洁文本进行分词处理得到分词文本。

在去除掉待处理需求中特殊字符和标点符号得到清洁文本之后,查询语言获取系统还需对清洁文本进行分词处理得到分词文本。

在一些可能的实现方式中,对清洁文本进行分词处理通常可以采用以下方法:使用分词工具库:可以使用一些中文分词工具库,如jieba、pkuseg等,这些工具库能够自动将文本按照词语进行切分。

调用分词API:如果有可用的分词API,可以将清洁文本通过API调用并获取返回的分词结果。

自定义规则:根据特定的需求和文本结构,可以自定义规则对清洁文本进行分词处理。例如,可以将文本按照空格、标点符号等进行切分。

混合方法:结合多种方法进行分词处理,如先使用分词工具库进行初步的分词,然后根据特定规则对结果进行进一步调整和修正。

中文文本的分词处理相对英文来说更为复杂,因为中文没有明确的词语间隔。在分词过程中,需要考虑语义和上下文的信息,以获得更准确的分词结果。同时,对于特定领域或任务,可能需要进行领域专业化的分词处理。

C3:对所述分词文本进行语义解析得到所述第二预处理数据。

在对清洁文本进行分词处理得到分词文本之后,查询语言获取系统则可以对分词文本进行语义解析得到所述第二预处理数据。

在一些可能的实现方式中,对分词文本进行语义解析可以使用以下方法:

命名实体识别(NER):通过使用命名实体识别算法,可以从分词文本中识别出人名、地名、组织机构名等特定实体,并将其标注出来。这有助于更好地理解文本的语义信息。

关键词提取:可以使用关键词提取算法,从分词文本中提取出最具代表性和重要性的词语作为关键词。这些关键词可以提供文本的主题和核心概念。

语法解析:使用语法解析技术,可以分析分词文本中词语之间的语法关系,如主谓关系、定状补关系等。这样可以进一步理解文本的语法结构,有助于获取更深层次的语义信息。

词义消歧:在分词文本中,有些词语可能存在多个含义,通过词义消歧算法,可以确定每个词语在上下文中的确切含义,从而更准确地理解文本的语义。

构建语义图谱:通过对分词文本进行语义解析,可以构建一个语义图谱,将词语之间的语义关系进行编码表示。这有助于更好地理解文本的语义,并进行后续的语义分析和推理。

对待处理需求进行预处理,包括清洁文本的生成、分词处理和语义解析,可以提高文本处理的准确性、效率和可靠性。

S203:当数据库中不存在所述待处理需求的查询记录时,将所述第二预处理数据输入到语言查询模型中得到目标结构化查询语言,并将所述目标结构化查询语言输出给客户端,其中,所述语言查询模型是根据如上所述的语言查询模型构建方法构建得到的。

当数据库中不存在待处理需求的查询记录时,查询语言获取系统则可以将第二预处理数据输入到语言查询模型中,从而得到目标结构化查询语言,并将目标结构化查询语言输出给客户端。

S204:当数据库中存在所述待处理需求的查询记录时,将所述查询记录对应所述的目标结构化查询语言输出给客户端。

当数据库中存在待处理需求的查询记录时,查询语言获取系统则可以直接将查询记录对应的目标结构化查询语言输出给客户端。

基于上述S201-S204的内容可知,当数据库中不存在所述待处理需求的查询记录时,可利用训练完成的语言查询模型对经过预处理的待处理需求进行语言查询得到目标结构化查询语言。当数据库中存在待处理需求的查询记录时,可以直接将查询记录对应的目标结构化查询语言输出给客户端。利用语言查询模型对经过预处理的待处理需求进行语言查询得到目标结构化查询语言,可以提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

参见图3,图3为本申请实施例提供的一种语言查询模型的构建装置的结构示意图。如图3所示,该语言查询模型的构建装置包括:

第一获取单元301,用于获取历史结构化查询语言。

在一些可能的实现方式中,所述历史结构化查询语言的来源1是可以是外部SQL(Structured Query Language,结构化查询语言)语句库:爬虫侠CSpider里面包含语言语句及对应的SQL信息;来源2是银行开发系统内部SQL语句及对应中文。其中,CSpider是一个基于Python的开源网络爬虫框架,用于抓取互联网上的数据。它提供了强大的功能和灵活的配置选项,可以用于各种网络爬虫任务,如数据采集、搜索引擎索引、网页分析等。

第一预处理单元302,用于对所述历史结构化查询语言进行预处理得到第一预处理数据。

模型训练单元303,用于将所述第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。

其中,CNN(Convolutional Neural Network,卷积神经网络)是一种广泛应用于计算机视觉和图像识别任务的深度学习模型。它基于人类对视觉信息处理的认知方式,通过多层卷积和池化操作来提取图像中的特征,并将这些特征输入到全连接层进行分类和识别。CNN的核心思想是利用卷积操作来捕捉输入数据的局部空间结构信息。通过使用一系列的卷积层和激活函数,CNN可以自动学习输入图像的低级特征(如边缘、纹理等),然后逐渐组合这些特征以获取更高级别的特征(如形状、目标等)。

在一些可能的实现方式中,语言查询模型包括以下模块:

嵌套查询模块(预测unionexcept):该模块用于生成嵌套查询语句中的联合和差集操作,能够预测并生成相应的语法。

关键字模块(预测where/select/insert/update):该模块用于预测和生成SQL语句中的关键字,包括WHERE、SELECT、INSERT和UPDATE等。

列名模块:该模块用于生成SQL语句中的列名,可以根据上下文预测并生成相应的列名。

运算符模块(>/

聚合函数模块(max/min/sum):该模块用于生成聚合函数,如MAX、MIN和SUM等。

预测子查询或终止符模块:该模块用于预测和生成子查询或终止符,可以根据需要生成相应的语句结构。

预测条件表达式关系模块(and/or):该模块用于预测和生成条件表达式之间的关系,包括AND和OR。

ORDER BY模块(decs/asc/limit):该模块用于生成ORDER BY子句,包括降序、升序和限制结果数量等。

GROUP BY模块(having):该模块用于生成GROUP BY子句和HAVING子句,用于对查询结果进行分组和过滤。

通过训练确定调用顺序,可以根据模型的需要和语法规则来确定每个模块的调用顺序,以生成符合语法和语义要求的SQL查询语句。这样的模块化结构使得模型能够灵活生成各种复杂的SQL查询语句。

在一些可能的实现方式中,所述装置还包括:

第一去除单元,用于去除所述历史结构化查询语言中的数据值和列名信息得到第一数据模版。

在一些可能的实现方式中,数据值(Data Values):数据值是指存储在数据库表中的具体数据。它们可以是文本、数字、日期、布尔值等不同类型的数据。在SQL语句中,数据值用于执行插入、更新和筛选等操作。

例如,在INSERT INTO语句中,VALUES子句指定了要插入的具体数据值。

例如,在插入语句中,我们使用VALUES关键字来指定要插入的具体数值。这些数值可以是文本、数字、日期等不同类型的数据。例如,INSERT INTO表名(列1,列2,列3)VALUES(值1,值2,值3)。

列名信息(Column Names):列名信息是指数据库表中的列的名称。每个表由一组列组成,每列都具有唯一的名称。列名用于标识特定的列以进行查询、更新或删除等操作。在SELECT语句中,列名用于指定要检索的特定列。例如,SELECT column1,column2 FROMtable_name。

聚类单元,用于对所述第一数据模版进行聚类得到多个中间模板,并去除中间模板中的目标模板得到多个第二数据模版。

在一些可能的实现方式中,目标模板可以理解为查询需求较为基础和常见的模板,它们可能包含了比较常用的查询操作,如简单的筛选条件、排序方式、查询字段等。这些模板往往非常直接和容易理解,不涉及复杂的数据库关联或嵌套查询等高级操作。与目标模板相对应的复杂的模板(即第二数据模版)可能包含更多复杂的查询需求,例如多表关联、子查询、聚合函数、窗口函数、连接条件等。这些模板通常需要更深入的数据库知识和高级查询技巧才能理解和使用。因此,在选择复杂模板时,可以考虑模板的复杂程度、包含的查询操作种类、涉及的数据库特性以及对应查询需求的普遍性和广泛性。通过精心挑选复杂模板,可以更好地训练模型以解决更具挑战性的查询问题。

挑选单元,用于根据模版出现频率从第二数据模版中挑选预设数量个所述第二数据模版作为第三数据模版。

其中,频率较高的模板往往表示了常见的查询需求,而较低频的模板则可能包含了更加复杂和特殊的查询需求因此需要挑选出现较低频的模板。

在一些可能的实现方式中,预设数量可以是但不限于50个,本申请对预设数量不做具体限制。

设置单元,当所述第三数据模版与所述第三数据模版的中文描述一致时,用于将所述中文描述作为语言描述模版。

在一些可能的实现方式中,第三数据模版与其中文描述是否一致可以通过人工校验的方式进行核对。

获取填入单元,用于获取与所述第三数据模版和所述语言描述模版类型相同的第二数据值和第二列名信息填入到所述第三数据模版和所述语言描述模版中得到模版集合。

划分设置单元,用于将所述模版集合划分为训练集和测试集,并将所述训练集作为所述第一预处理数据。

通过去除第一数据值和第一列名信息,可以将原始查询语言中的噪声和无关信息过滤掉,提取出纯净的数据模版。同时,通过对第一数据模版进行聚类,可以将相似的数据模版归为一类,从而得到多个中间模板。这有助于减少数据模版的冗余性和复杂性。综上所述,该预处理方法能够有效地去除噪声和无关信息,提炼出有用的数据模版,并生成可读性强的语言描述模版,为后续任务提供了高质量的训练数据。

在一些可能的实现方式中,所述装置还包括:

第二获取单元,用于获取所述测试集对应的真实语句的目标答复,并获取所述目标答复对应的目标字符,其中,所述真实语句为用户输入的语句。

在一些可能的实现方式中,真实语句可以是问句或陈述句等。

在一些可能的实现方式中,目标答复即历史结构化查询语言。目标答复是人工标注的正确答案,目标字符则是从目标答复中提取的关键信息。

输入单元,用于将所述测试集输入到所述语言查询模型中得到输出结构化查询语言。

修正单元,当所述输出结构化查询语言的输出答复与所述目标答复不一致和/或所述输出结构化查询语言的输出字符与所述目标字符不一致时,用于根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正。

其中,输出答复指的是语言查询模型生成的结构化查询语言中携带的回答文本,而输出字符指的是该回答文本所包含的具体字符。

在一些可能的实现方式中,根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正可以通过定义新的一一对齐映射特征,利用重排序技术,对得到的多条候选结果进行正确答案的优先挑选;或数据增强方法等。

根据所述目标答复和/或所述目标字符对所述语言查询模型进行修正包括以下几个方面:

特征工程:这是指根据真实语句的目标答复和目标字符对真实语句进行一系列处理,提取出有用的、代表数据特征的新特征。通过定义新的一一对齐映射特征,可以更好地挖掘数据中隐藏的规律和信息。

超参数调优:超参数是指机器学习模型中需要手动设置的参数,如权重衰减系数、学习率等。通过合理的调整,可以使模型在训练集和测试集上的泛化性能得到优化。

重排序技术:这是指通过对得到的多条候选结果进行正确答案的优先挑选。在问答系统中,可以根据答案的相关性和可信度对结果进行排序,从而提高系统的准确率。

数据增强方法:数据增强是指根据真实语句的目标答复和目标字符对真实语句进行变换、扩充等操作,生成更多的训练数据。这样可以有效地缓解数据不足的问题,提高模型的泛化能力。

通过使用真实数据进行模型修正,可以提高模型的准确性、一致性和可靠性,从而提升语言查询模型的性能。

本申请实施例提供了一种语言查询模型的构建装置,在第一获取单元301获取到历史结构化查询语言之后,第一预处理单元302则可以对历史结构化查询语言进行预处理得到第一预处理数据,以使模型训练单元303可以将第一预处理数据输入到卷积神经网络中进行模型训练得到语言查询模型。本申请基于卷积神经网络利用处理好的历史结构化查询语言进行模型训练生成可以自动化生成SQL语句的语言查询模型。本申请的语言查询模型可以使得开发人员在不查看数据详情得到SQL语句,从而提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

参见图4,图4为本申请实施例提供的一种查询语言获取装置的结构示意图。如图4所示,该查询语言获取装置包括:

第三获取单元401,用于获取待处理需求。

第二预处理单元402,用于对所述待处理需求进行预处理得到第二预处理数据。

输入输出单元403,用于当数据库中不存在所述待处理需求的查询记录时,将所述第二预处理数据输入到语言查询模型中得到目标结构化查询语言,并将所述目标结构化查询语言输出给客户端,其中,所述语言查询模型是根据如上所述的语言查询模型构建方法构建得到的。

输出单元404,用于当数据库中存在所述待处理需求的查询记录时,将所述查询记录对应所述的目标结构化查询语言输出给客户端。

在一些可能的实现方式中,所述装置还包括:

第二去除单元,用于去除所述待处理需求中特殊字符和标点符号得到清洁文本。

其中,特殊字符和标点符号是指在文本中具有特殊含义或功能的符号。它们通常不包含实际的语义信息,而是用于表示文本结构、标点、引号、括号、连接符等。

分词单元,用于对所述清洁文本进行分词处理得到分词文本。

在一些可能的实现方式中,对清洁文本进行分词处理通常可以采用以下方法:使用分词工具库:可以使用一些中文分词工具库,如jieba、pkuseg等,这些工具库能够自动将文本按照词语进行切分。

调用分词API:如果有可用的分词API,可以将清洁文本通过API调用并获取返回的分词结果。

自定义规则:根据特定的需求和文本结构,可以自定义规则对清洁文本进行分词处理。例如,可以将文本按照空格、标点符号等进行切分。

混合方法:结合多种方法进行分词处理,如先使用分词工具库进行初步的分词,然后根据特定规则对结果进行进一步调整和修正。

中文文本的分词处理相对英文来说更为复杂,因为中文没有明确的词语间隔。在分词过程中,需要考虑语义和上下文的信息,以获得更准确的分词结果。同时,对于特定领域或任务,可能需要进行领域专业化的分词处理。

语义解析单元,用于对所述分词文本进行语义解析得到所述第二预处理数据。

在一些可能的实现方式中,对分词文本进行语义解析可以使用以下方法:

命名实体识别(NER):通过使用命名实体识别算法,可以从分词文本中识别出人名、地名、组织机构名等特定实体,并将其标注出来。这有助于更好地理解文本的语义信息。

关键词提取:可以使用关键词提取算法,从分词文本中提取出最具代表性和重要性的词语作为关键词。这些关键词可以提供文本的主题和核心概念。

语法解析:使用语法解析技术,可以分析分词文本中词语之间的语法关系,如主谓关系、定状补关系等。这样可以进一步理解文本的语法结构,有助于获取更深层次的语义信息。

词义消歧:在分词文本中,有些词语可能存在多个含义,通过词义消歧算法,可以确定每个词语在上下文中的确切含义,从而更准确地理解文本的语义。

构建语义图谱:通过对分词文本进行语义解析,可以构建一个语义图谱,将词语之间的语义关系进行编码表示。这有助于更好地理解文本的语义,并进行后续的语义分析和推理。

对待处理需求进行预处理,包括清洁文本的生成、分词处理和语义解析,可以提高文本处理的准确性、效率和可靠性。

另外,本申请实施例还提供了一种查询语言获取模型的构建设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的语言查询模型的构建方法。

另外,本申请实施例还提供了一种查询语言获取设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的查询语言获取方法。

另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的语言查询模型的构建方法,或者执行如上所述的查询语言获取方法。

本申请实施例提供了一种查询语言获取装置,在第三获取单元401获取到待处理需求之后,第二预处理单元402则可以对待处理需求进行预处理得到第二预处理数据。当数据库中存在待处理需求的查询记录时,输入输出单元403将第二预处理数据输入到语言查询模型中得到目标结构化查询语言,并将目标结构化查询语言输出给客户端。当数据库中存在待处理需求的查询记录时,输出单元404将查询记录对应的目标结构化查询语言输出给客户端。本申请利用语言查询模型对经过预处理的待处理需求进行语言查询得到目标结构化查询语言,可以提高业务人员查询和验收效率。同时,避免了手动编写SQL语句的繁琐和错误,提高了开发效率和代码质量。

以上对本申请所提供的一种语言查询模型构建方法、查询语言获取方法及相关装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

需要说明的是,本发明提供的语言查询模型构建方法、查询语言获取方法及相关装置可用于人工智能领域或金融领域,上述仅为示例,并不对本发明提供的语言查询模型构建方法、查询语言获取方法及相关装置的应用领域进行限定。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种目标CLI的查询方法、查询系统及相关装置
  • 自然语言的数据查询意图确定方法、装置和计算机设备
  • 自然语言的数据查询方法、装置、计算机设备及存储介质
  • 一种基于自然语言处理的空间查询主题的归类方法及装置
  • 查询语句处理方法、查询语句分类模型的构建方法、装置
  • 基于自然语言的结构化查询语言转换方法、及其相关设备
技术分类

06120116513387