CN117149812A - 结构化查询语句生成方法及其装置、设备、介质 - Google Patents

结构化查询语句生成方法及其装置、设备、介质 Download PDF

Info

Publication number
CN117149812A
CN117149812A CN202311247511.9A CN202311247511A CN117149812A CN 117149812 A CN117149812 A CN 117149812A CN 202311247511 A CN202311247511 A CN 202311247511A CN 117149812 A CN117149812 A CN 117149812A
Authority
CN
China
Prior art keywords
query
statement
query statement
target
database
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.)
Pending
Application number
CN202311247511.9A
Other languages
English (en)
Inventor
吴智东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shangyan Network Technology Co ltd
Original Assignee
Guangzhou Shangyan Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Shangyan Network Technology Co ltd filed Critical Guangzhou Shangyan Network Technology Co ltd
Priority to CN202311247511.9A priority Critical patent/CN117149812A/zh
Publication of CN117149812A publication Critical patent/CN117149812A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据库信息处理技术领域中一种结构化查询语句生成方法及其装置、设备、介质,所述方法包括:获取以自然语言表述的查询语句;确定出所述查询语句的目标查询类型和目标结构元素;根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。本申请能够精准地转述以自然语言表述的查询语句,得出相应的结构化查询语句。

Description

结构化查询语句生成方法及其装置、设备、介质
技术领域
本申请涉及数据库信息处理技术领域,尤其涉及一种结构化查询语句生成方法及其相应的装置、计算机设备、计算机可读存储介质。
背景技术
在信息技术日趋成熟的今天,数据成为企业资产的一部分。数据库中存储着海量的数据,用户想要查询数据时,通常需要手工编写结构化查询语句,来与数据库进行数据交互。但是对于非计算机专业的用户,很难让其去手工编写出一段正确的结构化查询语句,而且即便是计算机专业的用户,在编写复杂的结构化查询语句时,也可能出错。基于种种原因,容易导致企业海量的数据没有得到充分的利用,数据价值没有得到更好的开发。
传统技术中,为了实现便捷编写结构化查询语句,通常为用户提供模板,用户在模板中填写具体的数据库名、表名、字段名、关联条件等来构造SQL。这样的实现方式泛化性较差,需要用户清楚了解数据库中的各种结构元素,以及关联关系和/或条件等细节,才能完成模板的填充。
鉴于传统技术的不足,本申请人长期从事相关领域的研究,为解决数据库信息处理领域业内难题,故另辟蹊径。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种结构化查询语句生成方法及其相应的装置、计算机设备、计算机可读存储介质。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种结构化查询语句生成方法,包括如下步骤:
获取以自然语言表述的查询语句;
确定出所述查询语句的目标查询类型和目标结构元素;
根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;
调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
另一方面,适应本申请的目的之一而提供的一种结构化查询语句生成装置,包括语句获取模块、要素确定模块、示例构造模块以及语句转述模块,其中,语句获取模块,用于获取以自然语言表述的查询语句;要素确定模块,用于确定出所述查询语句的目标查询类型和目标结构元素;示例构造模块,用于根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;语句转述模块,用于调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
又一方面,适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的结构化查询语句生成方法的步骤。
又一方面,适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的结构化查询语句生成方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
本申请的技术方案存在多方面优势,包括但不限于如下各方面:
本申请获取以自然语言表述的查询语句,确定出其对应的目标查询类型和目标结构元素,然后根据目标查询类型和目标结构元素构造出包含查询语句的第一上下文示例,调用预设的大语言模型根据第一上下文示例生成转述查询语句的结构化查询语句。一方面,能够根据查询语句挖掘出查询所需涉及到的组成数据库结构的元素作为目标结构元素,以及查询语句所属的目标查询类型,即得出查询语句与其对应的结构化查询语句之间转述的中转关键信息,降低转述难度,同时也提高转述准度,在此基础上,根据中转关键信息构造出第一上下文示例,使得大语言模型可以通过参考第一上下文示例中的举例转述示范,准确地转述查询语句得出相应的结构化查询语句。另一方面,能够免除用户自行根据自身查询需求直接编辑出结构化查询语句,只需提供以自然语言表述查询需求的查询语句,便可快捷地得到相应准确的结构化查询语句,有效满足用户的各种查询需求,避免用户自行编辑的失误,提升用户体验。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请的结构化查询语句生成方法的典型实施例的流程示意图;
图2为本申请的实施例中确定出查询语句的目标查询类型的流程示意图;
图3为本申请的实施例中确定出查询语句的目标结构元素的流程示意图;
图4为本申请的实施例中检测结构化查询语句的流程示意图;
图5为本申请的实施例中根据需求语句确定相应的查询语句的流程示意图;
图6为本申请的实施例中确定出查询语句的目标查询类型和目标结构元素的流程示意图;
图7为本申请的实施例中微调训练大语言模型的流程示意图;
图8为本申请的结构化查询语句生成装置的原理框图;
图9为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩充到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
本申请的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本申请的技术方案所调用即可。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种结构化查询语句生成方法,可被编程为计算机程序产品,部署于客户端或服务器中运行而实现,例如,本申请的示例性应用场景中,可以在电商平台的服务器中部署实现,藉此可以通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品的进程进行人机交互而执行该方法。
请参阅图1,本申请的结构化查询语句生成方法,在其典型实施例中,包括如下步骤:
步骤S1100、获取以自然语言表述的查询语句;
用户通常需要从数据库中查询一些特定信息,例如,在电商领域中,属于电商平台中卖家的用户在运营自身的在线店铺时,需要频繁地查询在数据库中存储的在线店铺的商品、订单、物流、客户、客单价、点击率、GMV等信息进行管理;属于电商平台中买家的用户在搜索时,需要频繁地查询在数据库中存储的商品、订单、物流等信息;互联网行业从业者如数据分析师、产品研发、产品经理、运营经理等用户在工作过程中,需要频繁地查询在数据库中存储的工作所需的信息。为此,用户需要与数据库进行交互,然而所述交互需要使用到结构化查询语句(SQL语句),对于计算机专业的用户是可以直接编写出描述自身查询需求的结构化查询语句,但是仍有可能会出现编写失误例如语法错误、错字、漏字等,甚至有些编写失误不易被该用户察觉而修正,导致使用不正确的查询语句查询数据库而查询失败;对于非计算机专业的用户,根据其自身查询需求是无法编写出描述自身查询需求的结构化查询语句。因此,本申请为用户提供根据该用户以自然语言表述查询需求的查询语句,生成转述该查询语句的结构化查询语句的服务,不难理解,用户通过启用所述服务便可以免除自行编写结构化查询语句。
所述用户启用所述服务,在预先构造出的图形用户界面中的输入框内编辑并输入以自然语言表述查询需求的语句即所述查询语句,然后,向服务器提交所述查询语句。然后,服务器响应生成结构化查询语句事件,获取该查询语句。进一步的实施例中,为了人性化地节省用户因所述编辑并输入所需花费的时间精力,提升效率,可在所述图形用户界面为所述用户推荐多个查询语句,以供所述用户选中所需的查询语句作为所述输入框内的输入文本。所述推荐的多个查询语句包括所述用户历史向服务器提交的查询语句、其他用户高频向服务器提交的查询语句中任意一种或两种。所述推荐的多个查询语句中,对于所述用户历史向服务器提交的查询语句,根据各个所述查询语句的提交时间和/或提交频次确定出排列顺序,根据所述排列顺序在所述图形用户界面上展示所述各个查询语句,所述排列顺序示范性举例以提交时间从先到后的顺序作为排序顺序、以提交频次从大到小的顺序作为排列顺序、以提交时间与当前时间之间的时间差加上提交频次所得的排序得分从大到小的顺序作为排列顺序。对于所述其他用户高频向服务器提交的查询语句,以各个所述查询语句的提交频次从大到小的顺序作为排列顺序,根据所述排列顺序在所述图像用户界面上展示所述各个查询语句。此外,所述用户历史向服务器提交的查询语句与其他用户高频向服务器提价的查询语句分开展示。
步骤S1200、确定出所述查询语句的目标查询类型和目标结构元素;
可以理解,归属于数据库名的库表名、表字段名这些都是数据库结构中的必要组成元素即结构元素,根据查询操作的难易程度预先划分出多个预设的查询类型,一种实施例中预设两个查询类型,第一查询类型为不需要嵌套查询和关联查询,第二查询类型为需要嵌套查询或关联查询。所述数据库名是一个用于标识和区分不同数据库的名称。所述库表名是数据库中的一个表格或数据表的名称。所述表字段名是表格中的列的名称,每个字段用于存储特定类型的数据。所述嵌套查询是用于在两个或多个表之间建立关系,以便从多个表中检索相关信息的查询操作。所述关联查询是将一个查询嵌套在另一个查询内部的查询操作。
一种实施例中,可采用预设的第一多分类模型以所述获取的查询语句作为输入文本,从所述预设两个查询类型中确定出所述查询语句所属的查询类型作为目标查询类型,所述多分类模型预先经过训练至收敛状态,习得确定出输入文本所属的查询类型的能力,具体训练过程由后续部分实施例进一步揭示,本步骤暂且按下不表。
一种实施例中,可以理解,用户以自然语言表述查询需求的查询语句中的关键词文本与数据库名、库表名、表字段名之间存在语义相关性,示范性举例:查询语句为“请查询昨天所有订单数量”其中的关键词文本为“昨天”、“所有”、“订单数量”,与关键词文本“订单数量”语义相关的数据库名“Order”、库表名“table_order”、与关键词文本“昨天”语义相关的表字段名“create_date”。
因此,可以根据查询语句中关键词文本与组成数据库结构的结构元素之间的语义相关性,确定出与关键词文本语义相关的结构元素作为目标结构元素,具体而言,首先,确定出所述获取的查询语句中的关键词文本,可通过规则匹配算法、命名实体识别算法、深度学习算法等实现。然后,采用预设的文本匹配模型确定出各个所述关键词文本与给定的所有数据库名之间语义的相关度,筛序出所述相关度最高的数据库名作为目标数据库名。所述给定的所有数据库名是实际业务所需编辑出的多个数据库的名称。以单个关键词文本和单个数据库名为例,以该关键词文本和该数据库名输入所述文本匹配模型,由文本匹配模型中的一个文本编码器提取出关键词文本的深层语义信息,编码出向量化表示该深层语义信息的文本特征向量,由另一个文本编码器提取出数据库名的深层语义信息,编码出向量化表示该深层语义信息的文本特征向量,采用向量距离算法计算出关键词文本的文本特征向量和数据库名的文本特征向量之间的向量距离,可以理解,所述向量距离便可量化表示关键词文本与数据库名之间的相关程度,故而将向量距离作为相关度。其次,获取归属于目标数据库名的所有库表名,继续采用所述文本匹配模型确定出各个关键词文本与所有库表名之间语义的相似度,筛选出所述相似度最高的库表名作为目标库表名。再次,获取归属于目标库表名的所有表字段名,继续采用所述文本匹配模型确定出各个关键词文本与所有表字段名之间语义的相似度,筛选出所述相似度最高的表字段名作为目标表字段名。最终,将所述目标库表名、目标表字段名构成目标结构元素。
所述向量距离算法可以采用诸如余弦相似度、内积、曼哈顿距离、欧氏距离等任意一种现成的算法。所述文本匹配模型通过训练习得根据输入的两个文本分别的语义,确定出两个文本之间的相关度的能力。
所述文本匹配模型适用于确定出两个文本之间的匹配关系的任务,模型结构上包括相同的两个文本编码器,所述文本编码器可采用自然语言处理领域中适用于提取文本特征的模型,推荐选型为BERT模型,亦可采用其他的例如Text Transfomer、RoBERTa、XLM-RoBERTa、MPNet等任意一种模型。鉴于所述文本匹配模型的训练过程为本领域所知晓,故而不做详述。
对于规则匹配算法,可采用TF-IDF、TextRank、LDA等算法从查询语句集中提取出各个查询语句中的关键词文本,以这些关键词文本构成关键词集。进一步,对所述获取的查询语句进行分词,获得查询语句中的各个分词文本,可采用搜索引擎将各个分词文本与所述关键词集进行模糊匹配和/或精准匹配,从而确定出关键词集中是否有匹配分词文本的关键词文本,当分词文本有与其相匹配的关键词文本时,确认该分词文本属于关键词,将该分词文本作为所述查询语句中的关键词文本;当分词文本没有与其相匹配的关键词文本,确认该分词文本不属于关键词文本。所述搜索引擎可以是Elasticsearch。所述查询语句集可通过采集多个用户向服务器提交的查询语句构成,也可以从开源的text2sql数据集中获取多个用户提供用于查询数据库的提问语句即查询语句构成,所述text2sql数据集包括ATIS、GeoQuery、Scholar、Academic、IMDB、Yelp、Advising、Restaurants、WikisQL、NL2SQL、Spider、CSpider、SParC、CosQL中任意一个或任意多个数据集,每个数据集中包含多个查询语句及其对应的结构化查询语句。
对于命名实体识别算法,可以对所述查询语句集中各个查询语句进行分词,从而确定出各个查询语句的所有分词文本,标注各个查询语句中是关键词文本的分词文本作为实体文本,不是关键词文本的分词文本作为非实体文本,然后,将各个查询语句分别作为训练样本,将训练样本的标注信息作为监督标签,以所有训练样本及其监督标签构成训练集,采用所述训练集训练命名实体识别模型,使得所述命名实体识别模型被训练至收敛状态后,习得确定出查询语句中的实体文本即关键词文本的能力。可以理解,采用所述训练至收敛的命名实体识别模型便可确定出所述获取的查询语句中的关键词文本。所述命名实体识别模型的选型可以是RoBERTa+CRF、BiLSTM+CRF、IDCNN+CRF、Bert+BiLSTM+CRF、FLAT等,可按需选择其中任意一种。
对于深度学习算法,可以采用大语言模型,构造出根据各个样例查询语句对应的关键词文本构造出包含所述获取的查询语句的少样本示例,将所述少样本示例输入至所述大语言模型,便可确定出所述查询语句中的关键词文本。示范性举例,少样本示例为“样例查询语句1:请查询昨天所有订单数量
样例查询语句1的关键词文本:昨天、订单数量
样例查询语句2:过去半年整个平台新增多少商家
样例查询语句2的关键词文本:过去半年、平台、商家
查询语句:所述查询语句
该查询语句的关键词文本:”
可将所述查询语句集中的查询语句作为所述样例查询语句,可由计算机专业的技术研发人员确定样例查询语句中对查询数据库起到关键性作用的部分文本作为关键词文本。所述大语言模型预先使用极其庞大的语料库训练至收敛,习得生成人类语言描述的文本的能力,具备准确的基本文本语义理解能力和基本逻辑推理能力。所述大语言模型选型可以是Bert、OPT、Chinchilla、PaLM、LLaMA、Alpaca、Vicuna、GPT3、GPT3.5、GPT4、ChatGPT等,可按需选取其中任意一种。
步骤S1300、根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;
可由计算机专业的技术研发人员从开源的text2sql数据集中确定并获取属于所述目标查询类型的多个结构化查询语句,以及每个所述结构化查询语句对应的查询语句,作为样例查询语句,从各个样例查询语句对应的结构化查询语句中确定出库表名和表字段名构成结构元素。本领域技术人员应当知晓,大语言模型具备角色扮演的能力,能够通过扮演的角色更好地代入相应的现实场景,从而提高生成文本的真实性和准确性,因此,为了提高转述所述获取的查询文本所得的结构化查询语句即生成文本的真实性和准确性,让所述大语言模型扮演结构化查询语句生成专家。
对于构造所述第一上下文示例,所述第一上下文示例包括任务描述、包含所述查询语句的少样本示例,所述任务描述用于指示大语言模型扮演结构化查询语句生成专家,根据给定的查询语句及其目标结构元素,生成相应的结构化查询语句,本领域技术人员可根据此处揭示再按需编辑出所述任务描述,示范性举例,任务描述为“你是一个结构化查询语句生成专家,根据给定的查询语句及其目标结构元素,请生成查询语句对应的结构化查询语句,注意生成的结构化查询语句需要与查询语句中的信息一一对应,不需要生成查询语句中没有提及的信息”。以属于所述目标查询类型的多个结构化查询语句、每个所述结构化查询语句对应的样例查询语句、每个样例查询语句对应的结构元素、所述查询语句,构造出少样本示例,示范性举例,少样本示例为“数据库结构元素:[库表名:table_order,表字段名:create_date]
样例查询语句1:请查询昨天所有订单数量
结构化查询语句:SELECT COUNT(*)FROM table_order WHERE table_order.create_date='2023-06-01'
数据库结构元素:[库表名:table_merchant,表字段名:merchant_id,regs_date]
样例查询语句2:过去半年全个平台新增多少商家
结构化查询语句:SELECT COUNT(DISTINCT table_merchant.merchant_id)FROMtable_merchant WHERE table_merchant.regs_date>='2023-01-02'
数据库结构元素:[所述目标结构元素]
查询语句:所述查询语句
结构化查询语句:”
将所述任务描述与所述少样本示例拼接一起构成第一上下文示例。
步骤S1400、调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
所述大语言模型预先经过预先构造出的训练集微调训练至收敛,使其习得根据查询语句生成相应的结构化查询语句的能力,具体构造所述训练集和微调训练的过程由后续部分实施例进一步揭示,本步骤暂且按下不表。
一种实施例中,所述大语言模型为GPT4,将所述第一上下文示例作为大语言模型的输入,对所述输入文本进行分词,获得输入文本中所有分词构成分词序列,将其输入至模型中的编码端,通过堆叠多层多头注意力层和全连接层,对分词序列进行编码,具体而言,对所述分词序列,经过多头注意力层时对其进行多头注意力计算,从而对分词序列进行不同维度的自注意力加权,获得相应的加权的向量表示,再经过全连接层后,得到分词序列的编码向量表示,进一步,将所述编码向量表示输入至模型中的解码端,对所述编码向量表示进行解码,具体而言,解码过程中根据已生成的单词和当前单词位置和单词对应的编码向量表示,计算每次生成单词的生成概率,采用温度控制策略根据预设为0的温度系数和每次生成单词的生成概率,生成结构化查询语句。
服务器将所述结构化查询语句作为响应所述生成结构化查询语句事件的返回结果,将该返回结果在所述图形用户界面的另一输入框内显示,以供用户进一步编辑和/或复制后使用。
根据本申请的典型实施例可以知晓,本申请的技术方案存在多方面优势,包括但不限于如下各方面:
本申请获取以自然语言表述的查询语句,确定出其对应的目标查询类型和目标结构元素,然后根据目标查询类型和目标结构元素构造出包含查询语句的第一上下文示例,调用预设的大语言模型根据第一上下文示例生成转述查询语句的结构化查询语句。一方面,能够根据查询语句挖掘出查询所需涉及到的组成数据库结构的元素作为目标结构元素,以及查询语句所属的目标查询类型,即得出查询语句与其对应的结构化查询语句之间转述的中转关键信息,降低转述难度,同时也提高转述准度,在此基础上,根据中转关键信息构造出第一上下文示例,使得大语言模型可以通过参考第一上下文示例中的举例转述示范,准确地转述查询语句得出相应的结构化查询语句。另一方面,能够免除用户自行根据自身查询需求直接编辑出结构化查询语句,只需提供以自然语言表述查询需求的查询语句,便可快捷地得到相应准确的结构化查询语句,有效满足用户的各种查询需求,避免用户自行编辑的失误,提升用户体验。
请参阅图2,进一步的实施例中,步骤S1200、确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
步骤S1210、根据预设的各个样例查询语句所属的查询类型构造出包含所述查询语句的第二上下文示例;
根据查询操作的难易程度预先划分出多个预设的查询类型,一种实施例中预设两个查询类型,第一查询类型为不需要嵌套查询和关联查询,第二查询类型为需要嵌套查询或关联查询。
可由计算机专业的技术研发人员从开源的text2sql数据集中确定并获取不需要嵌套查询和关联查询的结构化查询语句对应的查询语句,作为属于第一查询类型的样例查询语句,以及从该结构化查询语句中确定出库表名和表字段名构成结构元素;从开源的text2sql数据集中确定并获取需要嵌套查询的结构化查询语句对应的查询语句,作为属于第二查询类型的样例查询语句,以及从该结构化查询语句中确定出库表名和表字段名构成结构元素;从开源的text2sql数据集中确定并获取包含关联查询的结构化查询语句对应的查询语句,作为属于第二查询类型的样例查询语句,从该结构化查询语句中确定出库表名和表字段名构成结构元素。
本领域技术人员应当知晓,大语言模型具备角色扮演的能力,能够通过扮演的角色更好地代入相应的现实场景,从而提高生成文本的真实性和准确性,因此,为了提高根据各个样例查询语句所属的查询类型,确定出所述查询语句所属的查询类型即生成文本的真实性和准确性,让所述大语言模型扮演文档信息分类专家。
对于构造所述第二上下文示例,所述第二上下文示例包括任务描述、包含所述查询语句的少样本示例,所述任务描述用于指示大语言模型扮演文档信息分类专家,根据给定的结构元素以及是否需要嵌套查询、关联查询等查询操作,分类出多个查询类型中给定的查询语句所属的查询类型,所述多个查询类型分别为所述第一查询类型、所述第二查询类型,本领域技术人员可根据此处揭示再按需编辑出所述任务描述,示范性举例,任务描述为“你是一个文档信息分类专家,根据查询语句的数据库结构元素和判断查询语句是否需要嵌套查询、关联查询等查询操作,对给定的查询语句进行分类,类别为二者之一:类别1,类别2,类别1为不需要嵌套查询和关联查询,类别2为需要嵌套查询或关联查询”,以所述多个样例查询语句及其对应的结构元素和所属的查询类型、所述获取的查询语句及其目标结构元素,构造少样本示例,示范性举例,少样本示例为“数据库结构元素:[库表名:table_order,表字段名:create_date]
样例查询语句1:请查询昨天所有订单数量
分类结果:类别1
数据库结构元素:[库表名:orders、order_details,表字段名:customer_id、product_name、order_id]
样例查询语句2:请查询所有购买了商品a的客户的订单数量
分类结果:类别2
数据库结构元素:[库表名:customers、orders,表字段名:order_id、customer_name]
样例查询语句2:请查询所有客户的姓名和他们的订单数量
分类结果:类别2
数据库结构元素:[所述目标结构元素]
查询语句:所述查询语句
分类结果:”
将所述任务描述与所述少样本示例拼接一起构成第二上下文示例。
步骤S1220、调用预设的大语言模型根据所述第二上下文示例确定出所述查询语句所属的目标查询类型。
所述大语言模型通过微调训练习得根据查询语句生成相应的结构化查询语句的能力,除此之外,大语言模型隐式地学习到了查询语句与各种查询操作之间的关系,从而能够准确地分类出查询语句是否需要嵌套查询和/或关联查询,即得出相对应所属的查询类型,由此,将所述第二上下文示例输入至所述大语言模型,便可获得由大语言模型相应生成的文本,文本中便是所述查询语句的分类结果即该查询语句所属的查询类型,作为所述目标查询类型。
本实施例中,通过根据各个样例查询语句所属的查询类型构造出包含查询语句的第二上下文示例,从而由大语言模型根据第二上下文示例确定出查询语句所属的目标查询类型,使得借助示例的分类结果能够更准确地理解多种查询类型与其对应的查询语句之间的关系,从而确保分类确定出的目标查询类型的准确性。
请参阅图3,进一步的实施例中,步骤S1200、确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
步骤S1201、根据预设的各个样例查询语句指向的数据库名构造出包含所述查询语句的第三上下文示例;
由于所述数据库名是根据业务所需人为进行命名,为了适应实际业务,获取根据该实际业务所需人为进行命名的所有数据库名,以消除歧义,从而保证数据库名的真实性、实用性、准确性。此外,同样是为了适应所述实际业务,采集在所述实际业务执行时产生的查询需求,以自然语言表述该查询需求的查询语句,作为样例查询语句,以保证样例查询语句来源于所述实际业务,从而保证样例查询语句的真实性、实用性。可以理解,所述实际业务例如电商领域的独立站的卖家用户管理自身店铺的业务,相应的数据库名便是根据独立站存储的数据种类进行命名,相应的查询语句便是所述管理过程中产生的查询需求,以自然语言描述该查询需求的查询语句,如查询所有客户的详细信息、所有商品的销售量等等。进一步,可由计算机专业的技术研发人员从所述所有数据库名中,确定出所述各个样例查询语句指向的数据库名。
本领域技术人员应当知晓,大语言模型具备角色扮演的能力,能够通过扮演的角色更好地代入相应的现实场景,从而提高生成文本的真实性和准确性,因此,为了提高根据各个样例查询语句指向的数据库名,确定出所述查询语句指向的数据库名即生成文本的真实性和准确性,让所述大语言模型扮演文档分类专家。
对于构造所述第三上下文示例,所述第三上下文示例包括任务描述、包含所述查询语句的少样本示例,所述任务描述用于指示大语言模型扮演文档分类专家,从所述所有数据库名中分类出给定的查询语句指向的数据库名,本领域技术人员可根据此处揭示再按需编辑出所述任务描述,示范性举例,任务描述为“你是一个文档分类专家,请将给定的查询语句分类到以下的类别中:[数据库名1、数据库名2、...、数据库名N]”,以所述多个样例查询语句及其指向的数据库名,以及所述查询语句构造少样本示例,示范性举例,少样本示例为“样例查询语句1:请查询昨天所有订单数量
分类结果:数据库名1
样例查询语句2:过去半年全个平台新增多少商家
分类结果:数据库名2
查询语句:所述查询语句
分类结果:”
将所述任务描述与所述少样本示例拼接一起构成第三上下文示例。
步骤S1202、调用预设的大语言模型根据所述第三上下文示例确定出所述查询语句指向的目标数据库名;
所述大语言模型通过微调训练习得根据查询语句生成相应的结构化查询语句的能力,除此之外,大语言模型隐式地学习到了查询语句与各种组成数据库结构的元素之间的关系,从而能够准确地分类出查询语句需要查询的数据库名称,即得出相对应指向的数据库名,由此,将所述第三上下文示例输入至所述大语言模型,便可获得由大语言模型相应生成的文本,文本中便是所述查询语句的分类结果即该查询语句指向的数据库名,作为所述目标数据库名。
步骤S1203、根据所述目标数据库名对应的各个数据库元素,以及所述各个样例查询语句指向的数据库名对应的目标数据库元素,构造出所述查询语句的第四上下文示例;
所述数据库元素为归属于数据库名的库表名及其对应的表字段名。对每个样例查询语句,获取归属于样例查询语句指向的数据库名的每个的库表名及其表字段名构成单个数据库元素,可由计算机专业的技术研发人员从所有数据库元素中确定出样例查询语句需要查询的单个库表名及其表字段名作为目标数据库元素。获取归属于所述目标数据库名的每个的库表名及其表字段作为单个数据库元素,为便于理解,示范性举例,单个数据库元素为[库表名:table_order,表字段名:order_seq,order_amount,create_date]。
本领域技术人员应当知晓,大语言模型具备角色扮演的能力,能够通过扮演的角色更好地代入相应的现实场景,从而提高生成文本的真实性和准确性,因此,为了提高根据各个样例查询语句指向的数据库名对应的目标数据库元素,确定出所述查询语句指向的目标数据库元素即生成文本的真实性和准确性,让所述大语言模型扮演文档信息抽取专家。
对于构造所述第四上下文示例,所述第四上下文示例包括任务描述、包含所述查询语句的少样本示例,所述任务描述用户指示大语言模型扮演文档信息抽取专家,从所述各个数据库元素中分类出给定的查询语句指向的数据库元素,本领域技术人员可此处揭示再按需编辑出所述任务描述,示范性举例,任务描述为“你是一个文档信息抽取专家,根据给出的多个库表名及其对应的表字段名,为给定的查询语句找出目标数据库元素”,以所述各个样例查询语句指向的数据库名对应的所有数据库元素和目标数据库元素,以及所述查询语句及其目标数据库名对应的所有数据库元素构造出少样本示例,示范性举例,少样本示例为“
[库表名:table_order,表字段名:order_seq,order_amount,create_date]
[库表名:table_store,表字段名:store_id,create_date,status]
样例查询语句1:请查询昨天所有订单数量
目标数据库元素:[库表名:table_order,表字段名:create_date]
[库表名:table_merchant,表字段名:merchant_id,regs_date,status]
样例查询语句2:过去半年全个平台新增多少商家
目标数据库元素:[库表名:table_merchant,表字段名:merchant_id,regs_date]
[库表名:table_order,表字段名:order_seq,order_amount,create_date]
[库表名:table_store,表字段名:store_id,create_date,status]
查询语句:所述查询语句
目标数据库元素:”
将所述任务描述与所述少样本示例拼接一起构成第四上下文示例。
步骤S1204、调用预设的大语言模型根据所述第四上下文示例确定出所述查询语句指向的目标数据库元素;
所述大语言模型通过微调训练习得根据查询语句生成相应的结构化查询语句的能力,除此之外,大语言模型隐式地学习到了查询语句与各种组成数据库结构的元素之间的关系,从而能够准确地确定出查询语句需要查询的库表名及其表字段名,即得出相对应指向的目标数据库元素,由此,将所述第四上下文示例输入至所述大语言模型,便可获得由大语言模型相应生成的文本,文本中便是所述查询语句指向的目标数据库元素。
步骤S1205、将所述查询语句指向的目标数据库元素构成目标结构元素。
不难理解,所述目标数据库元素便是组合数据库的结构元素,因此,将所述目标数据库元素作为目标结构元素。
本实施例中,根据各个样例查询语句指向的数据库名及其对应的目标数据库元素,构造出包含查询语句的第三上下文示例、第四上下文示例,从而先是由大语言模型根据第三上下文示例确定出查询语句指向的目标数据库名,然后再由根据第四上下文示例确定出查询语句指向的目标数据库名对应的目标数据库元素作为目标结构元素,使得借助示例的指向的数据库名及其对应的目标数据库元素,能够更准确地理解各个数据库名及其对应的数据库元素与查询语句之间的关系,从而确保确定出的目标数据库名和目标结构元素的准确性。
请参阅图4,进一步的实施例中,步骤S1400、调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句之后,包括如下步骤:
步骤S1500、调用预设的句法检测器确定出所述结构化查询语句是否准确;
预先采集多个句法上准确和不准确的结构化查询语句,所述句法上不准确包括相应的结构化查询语句中存在错字、漏字、语法错误等句法错误的情况,推荐尽可能采集各种句法错误情况对应的足量个数的结构化查询,所述足量个数可由本领域技术人员根据先验知识或实验数据设定,从而为后续供句法检测器训练,以学习辨识出各种句法错误,确保句法检测器的鲁棒性和可靠性。进一步,将句法上准确的结构化查询语句作为属于正类的训练样本,标注表征所述训练样本是准确的监督标签,示范性举例,该监督标签为1;将句法上不准确的结构化查询语句作为属于负类的训练样本,标注表征所述训练样本是不准确的监督标签,示范性举例,该监督标签为0。以各个训练样本及其监督标签构成训练集。
所述句法检测器可以是文本特征提取模型后接分类器的模型结构,所述文本特征提取模型可采用自然语言处理领域中适用于提取文本特征的模型,推荐选型为BERT模型,亦可采用其他的例如Text Transfomer、RoBERTa、XLM-RoBERTa、MPNet等任意一种模型。所述分类器可为全连接层或MLP(多层感知机)。
所述句法检测器预先经过训练至收敛,使其习得确定出结构化查询语句的准确度的能力。具体训练过程,获取所述训练集的单个训练样本,将所述训练样本输入至句法检测器,由句法检测器中的文本特征提取模型提取出该训练样本的深层语义信息,确定出向量化表示该深层语义信息的文本特征向量,由句法检测器中的分类器将该文本特征向量映射到预设的二分类别,预测出映射到所述二分类别中正类的分类概率作为准确度,所述二分类别包括表征输入文本是正确的正类,表征输入文本是不正确的负类。调用预设的交叉熵损失函数或者均方差损失函数,此处可由本领域技术人员根据先验知识或实验经验灵活变通设置,根据所述训练样本的监督标签计算所述预测准确度的损失值,当所述损失值达到预设阈值时,表明句法检测器已被训练至收敛状态,从而可以终止句法检测器训练;当所述损失值未达到预设阈值时,表明句法检测器未收敛,于是根据所述损失值对句法检测器实施梯度更新,通常通过反向传播修正句法检测器各个环节的权重参数以使句法检测器进一步逼近收敛,然后,继续调用其他训练样本对该句法检测器实施迭代训练,直至该句法检测器被训练至收敛状态为止。
将所述结构化查询语句输入至所述句法检测器,由句法检测器中的文本特征提取模型提取出该结构化查询语句的深层语义信息,确定出向量化表示该深层语义信息的文本特征向量,由句法检测器中的分类器将该文本特征向量映射到预设的二分类别,确定出映射到所述二分类别中正类的分类概率,作为准确度。进一步,当所述准确度超过预设阈值时,确认所述结构化查询语句准确,否则,确认所述结构化查询语句不准确。所述预设阈值可由本领域技术人员根据此处揭示再按需设定,例如预设阈值为0.9。
步骤S1510、当所述结构化查询语句不准确时,根据所述第一上下文示例继续迭代生成新的结构化查询语句,直至确定出该结构化查询语句准确时终止迭代。
对于每次迭代,调整所述大语言模型的温度系数至指定阈值,以增加大语言模型的生成结果的随机性,使得尽可能地生成可能正确的结构化查询语句,然后,调用所述大语言模型根据所述第一上下文示例,并采用温度控制策略根据所述温度系数,重新生成相应多个新的结构化查询语句,调用所述句法检测器确定出所述各个结构化查询语句对应的准确度。当确认出所述准确度超过所述预设阈值的结构化查询语句时,获得相对应的准确的结构化查询语句而终止迭代,否则,继续上述迭代过程。所述指定阈值可由本领域技术人员根据先验知识或实验阈值设定。
本实施例中,通过句法检测器确定大语言模型生成的结构化查询语句是否准确,当不准确时通过持续迭代生成新的结构化查询语句,直至确定出准确的结构化查询语句时终止迭代,使得能够确保结构化查询语句的准确性,保障用户实用体验。
请参阅图5,进一步的实施例中,步骤S1100、获取以自然语言表述的查询语句,包括如下步骤:
步骤S1110、获取以自然语言表述的需求语句;
用户通常需要从数据库中查询一些特定信息,为此,用户需要与数据库进行交互,然而所述交互需要使用到结构化查询语句(SQL语句),因此,本申请提供转述用户以自然语言表述的语句得出相应的结构化查询语句的服务。可以理解,所述语句可能由于用户表述自身查询需求不清楚、缺漏、错误,也可能由于用户并不是表述自身查询需求而是其他需求,即无法表示出查询意图,导致无法以该语句进行所述转述。对此,获取用户向服务器提交的语句,为了明确所述语句是否清楚地表述用户的查询需求,将所述语句作为需求语句。
步骤S1120、根据预设的各个样例需求语句是否存在查询意图构造出包含所述需求语句的第五上下文示例;
为了适应实际业务,采集在所述实际业务执行时产生的需求,以自然语言表述该需求的需求语句,作为样例需求语句,以保证样例需求语句来源于所述实际业务,从而保证样例需求语句的真实性、实用性。进一步,可由计算机专业的技术研发人员确定各个所述样例需求语句是否存在查询意图。
本领域技术人员应当知晓,大语言模型具备角色扮演的能力,能够通过扮演的角色更好地代入相应的现实场景,从而提高生成文本的真实性和准确性,因此,为了提高根据各个样例需求语句是否存在查询意图,确定出所述需求语句是否存在查询意图即生成文本的真实性和准确性,让所述大语言模型扮演文档分类专家。
对于构造所述第三上下文示例,所述第三上下文示例包括任务描述、包含所述查询语句的少样本示例,所述任务描述用于指示大语言模型扮演文档分类专家,分类出给定的查询语句是否存在查询意图,本领域技术人员可根据此处揭示再按需编辑出所述任务描述,示范性举例,任务描述为“你是一个文档分类专家,请将给定的查询语句分类到以下的类别中:[存在查询意图、不存在查询意图]”,以所述多个样例需求语句是否存在查询意图,以及所述需求语句构造少样本示例,示范性举例,少样本示例为“样例需求语句1:请查询昨天所有订单数量
分类结果:存在查询意图
样例需求语句2:客服在哪里设置
分类结果:不存在查询意图
样例需求语句3:请查询关于平时经常被人买的上架商品的信息
分类结果:不存在查询意图
需求语句:所述需求语句
分类结果:”
将所述任务描述与所述少样本示例拼接一起构成第五上下文示例。
步骤S1130、调用预设的大语言模型根据所述第五上下文示例确定出所述需求语句是否存在查询意图,当存在查询意图时,将所述需求语句作为查询语句;
所述大语言模型通过微调训练习得根据查询语句生成相应的结构化查询语句的能力,除此之外,大语言模型隐式地学习到了查询语句如何表述查询需求,从而能够准确地确定出需求语句是否明确表述查询需求,即是否存在查询意图,由此,将所述第五上下文示例输入至所述大语言模型,便可获得由大语言模型相应生成的文本,文本中便是所述需求语句的分类结果即存在或不存在查询意图。
步骤S1140、当不存在查询意图时,确定出与所述需求语句相匹配且存在查询意图的改写语句作为查询语句。
一种实施例中,可确定出所述采集的所有需求语句中的查询语句,以所述所有查询语句构成查询语句集,采用所述文本匹配模型确定出所述查询语句集中各个查询语句与所述需求语句之间的相关度,筛选出所述相关度超过预设阈值的查询语句作为该需求语句的备选改写语句,将各个备选改写语句推送给用户选取,并可选地对选中的备选改写语句进行编辑,获得最终所得的改写语句,作为查询语句。所述预设阈值可由本领域技术人员根据此处揭示再按需设定。
另一种实施例中,可以通过与用户进行轮询的客服交互方式,告知用户所述需求语句表述的查询需求不够清楚,或者不是表述查询需求,请用户相应改写当前需求语句后,再将其提交至服务器。
本实施例中,通过根据各个样例需求语句是否存在查询意图,构造出包含需求语句的第五上下文示例,从而由大语言模型根据第五上下文示例确定出需求语句是否存在查询意图,当存在查询意图时,将需求语句作为查询语句,当不存在查询意图时,匹配出需求语句的改写语句作为查询语句。使得借助示例的分类结果,能够更准确地确定需求语句是否明确表述查询需求,确保需求语句的分类结果的准确性和可靠性。
请参阅图6,进一步的实施例中,步骤S1200、确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
步骤S2200、采用预设的第一多分类模型从预设的多个查询类型中确定出所述查询语句所属的目标查询类型;
根据查询操作的难易程度预先划分出多个预设的查询类型,一种实施例中预设两个查询类型,第一查询类型为不需要嵌套查询和关联查询,第二查询类型为需要嵌套查询或关联查询。
为了适应实际业务,采集在所述实际业务执行时产生的查询需求,以自然语言表述该查询需求的查询语句,以保证查询语句来源于所述实际业务,从而保证查询语句的真实性、实用性。进一步,可由计算机专业的技术研发人员确定各个所述查询语句所属的查询类型。将所述查询语句作为训练样本,将所述训练样本的查询语句所属的查询类型标注为该训练样本的监督标签。以所有训练样本及其监督标签构成训练集。
所述第一多分类模型可以是文本特征提取模型后接分类器的模型结构,所述文本特征提取模型可采用自然语言处理领域中适用于提取文本特征的模型,推荐选型为BERT模型,亦可采用其他的例如Text Transfomer、RoBERTa、XLM-RoBERTa、MPNet等任意一种模型。所述分类器可为全连接层或MLP(多层感知机)。
所述第一多分类模型预先经过训练至收敛,使其习得确定出查询语句所属的查询类型的能力。具体训练过程,获取所述训练集的单个训练样本,将所述训练样本输入至第一多分类模型,由第一多分类模型中的文本特征提取模型提取出该训练样本的深层语义信息,确定出向量化表示该深层语义信息的文本特征向量,由第一多分类模型中的分类器将该文本特征向量映射到预设的二分类别,预测出映射到所述二分类别中最高分类概率的类别即训练样本的查询语句所属的查询类型,所述二分类别包括表征不需要嵌套查询和关联查询的第一查询类型,以及需要嵌套查询或关联查询的第二查询类型。调用预设的交叉熵损失函数或者均方差损失函数,此处可由本领域技术人员根据先验知识或实验经验灵活变通设置,根据所述训练样本的监督标签计算所述预测类别的损失值,当所述损失值达到预设阈值时,表明第一多分类模型已被训练至收敛状态,从而可以终止第一多分类模型训练;当所述损失值未达到预设阈值时,表明第一多分类模型未收敛,于是根据所述损失值对第一多分类模型实施梯度更新,通常通过反向传播修正第一多分类模型各个环节的权重参数以使第一多分类模型进一步逼近收敛,然后,继续调用其他训练样本对该第一多分类模型实施迭代训练,直至该第一多分类模型被训练至收敛状态为止。所述预设阈值可由本领域技术人员根据此处揭示再按需设定。
将所述查询语句输入至所述第一多分类模型,由第一多分类模型中的文本特征提取模型提取出该查询语句的深层语义信息,确定出向量化表示该深层语义信息的文本特征向量,由第一多分类模型中的分类器将该文本特征向量映射到预设的二分类别,确定出映射到所述二分类别中最高分类概率的类别即所述查询语句所属的查询类型,作为目标查询类型。
步骤S2210、采用预设的第二多分类模型从预设的各个数据库名及其对应的数据库元素中,确定出所述查询语句所属的目标数据库名对应的目标数据库元素构成目标结构元素。
所述第二多分类模型可以基于机器学习的决策树模型来实施,例如LightGBM模型,当然,对于常见的其他决策树算法、gbdt、xgboost、随机森林、神经网络等算法,均可采用。
由于所述数据库名及其对应的数据库元素是根据业务所需人为进行命名,为了适应实际业务,获取根据该实际业务所需人为进行命名的所有数据库名及其对应的数据库元素,以消除歧义,从而保证数据库名及其对应的数据库元素的真实性、实用性、准确性。所述数据库元素为归属于数据库名的库表名及其对应的表字段名。示范性举例,单个数据库元素为[库表名:table_order,表字段名:order_seq,order_amount,create_date]。
同样为了适应所述实际业务,采集在所述实际业务执行时产生的查询需求,以自然语言表述该查询需求的查询语句,以保证查询语句来源于所述实际业务,从而保证查询语句的真实性、实用性。进一步,可由计算机专业的技术研发人员确定出所述各个查询语句所属的数据库名及其对应的数据库元素,将所述查询语句作为训练样本,将所述训练样本的查询语句所属的数据库名及其对应的库表名和表字段名作为该训练样本的监督标签,以所述所有训练样本及其监督标签构成训练集。示范性举例,所述训练样本的监督标签为[Order(数据库名)、table order(库表名)、create_date(表字段名)]。可以理解,此处的数据库名、库表名、表字段名是根据训练样本的查询语句的查询所需从所有数据库名及其对应的所有库表名和表字段名中确定出的。
不难理解,数据库名、库表名、表字段名中各个之间存在明确的上下级关系,故而将各个数据库名、库表名、表字段名可分别作为决策树中的节点时,各个数据库名的节点之间、各个库表名的节点之间、各个表字段名均是同层级关系,数据库名的节点是库表名的节点的上层节点,库表名的节点是表字段名节点的上层节点,此外,库表名的节点与其归属的数据库名的节点相连形成可可从上层节点到达下层节点的分支,表字段名的节点与其归属的库表名的节点相连形成可从上层节点到达下层节点的分支,由此,构成决策树。
所述第二多分类模型预先经过训练至收敛,习得确定出查询语句所属的数据库名及其对应的库表名和表字段名的能力。对于采用所述训练集对采用决策树模型实现的第二多分类模型进行训练,获取训练集中的单个训练样本,由决策树模型预测出该训练样本在所述决策树的一条经过各层级单个节点的决策路径,得出该决策路径上的各个节点对应的数据库名、库表名、表字段名作为预测结果,可采用交叉熵函数或均方差损失函数计算出所述预测结果与所述训练样本的监督标签之间的损失值,当所述损失值达到预设阈值时,表明第二多分类模型已被训练至收敛状态,从而可以终止第二多分类模型训练;当所述损失值未达到预设阈值时,表明第二多分类模型未收敛,于是根据所述损失值对第二多分类模型实施梯度更新,通常通过反向传播修正第二多分类模型各个环节的权重参数以使第二多分类模型进一步逼近收敛,然后,继续调用其他训练样本对该第二多分类模型实施迭代训练,直至该第二多分类模型被训练至收敛状态为止。所述预设阈值可由本领域技术人员根据此处揭示再按需设定。
将所述查询语句输入至所述第二多分类模型,确定出查询语句在所述决策树的一条经过各层级单个节点的决策路径,得出该决策路径上的各个节点对应的数据库名、库表名、表字段名,将所述数据库名作为目标数据库名,将所述库表名和表字段名构成数据库元素作为目标数据库元素。
不难理解,所述目标数据库元素便是组合数据库的结构元素,因此,将所述目标数据库元素作为目标结构元素。
本实施例中,通过对查询语句分别采用第一多分类模型和第二多分类模型,对应得出查询语句所属的目标查询类型和查询语句所属的目标数据库名对应的目标结构元素。能够确保各个分类模型的高可解释性,以及各个分类模型的输出结果的准确性和可靠性。
请参阅图7,进一步的实施例中,步骤S1100、获取以自然语言表述的查询语句之前,包括如下步骤:
步骤S1000、构造出训练集,所述训练集包括多个训练样本及其监督标签,所述训练样本为查询语句,所述监督标签为转述相应的查询语句的结构化查询语句;
为了适应所述实际业务,采集在所述实际业务执行时产生的查询需求,以自然语言表述该查询需求的查询语句,以保证查询语句来源于所述实际业务,从而保证查询语句的真实性、实用性。进一步,可由计算机专业的技术研发人员确定出转述所述各个查询语句对应的结构化查询语句。将所述查询语句作为训练样本,将所述训练样本的查询语句对应的结构化查询语句作为该训练样本的监督标签,以所述所有训练样本及其监督标签构成训练集,并且将所述开源的text2sql数据集中的查询语句作为训练样本,以所述训练样本的的查询语句对应的结构化查询语句作为该训练样本的监督标签,将这些训练样本及其监督标签增加至所述训练集。
步骤S1010、采用所述训练集对大语言模型进行微调训练,使其习得根据查询语句生成相应的结构化查询语句的能力。
获取所述训练集中的单个训练样本,所述大语言模型为GPT4,将所述训练样本作为大语言模型的输入,对所述输入文本进行分词,获得输入文本中所有分词构成分词序列,将其输入至模型中的编码端,通过堆叠多层多头注意力层和全连接层,对分词序列进行编码,具体而言,对所述分词序列,经过多头注意力层时对其进行多头注意力计算,从而对分词序列进行不同维度的自注意力加权,获得相应的加权的向量表示,再经过全连接层后,得到分词序列的编码向量表示,进一步,将所述编码向量表示输入至模型中的解码端,对所述编码向量表示进行解码,具体而言,解码过程中根据已生成的单词和当前单词位置和单词对应的编码向量表示,计算每次生成单词的生成概率,采用温度控制策略根据预设为0的温度系数和每次生成单词的生成概率,生成预测结构化查询语句。
调用预设的交叉熵损失函数或均方差损失函数,此处可由本领域技术人员根据先验知识或实验经验灵活变通设置,根据所述训练样本的监督标签计算所述预测结构化查询语句对应的损失值,当所述损失值达到预设阈值时,表明大语言模型已被训练至收敛状态,从而可以终止大语言模型的训练;当所述损失值未达到预设阈值时,采用LoRA(Low-RankAdaptation of Large Language Models)方式对所述大语言模型进行微调训练,从而对权重矩阵进行隐式的低秩转换,固定模型的权重矩阵的原有参数,根据所述损失值确定出模型的权重矩阵的权重变化参数,根据权重变化参数对权重矩阵进行相应的调整,然后,继续调用其他第二训练样本对大语言模型进行迭代训练,直至该模型被训练至收敛状态为止。所述预设阈值可由本领域技术人员根据此处揭示再按需设定。
本实施例中,通过对大语言模型进行微调训练,使其习得根据查询语句生成相应的结构化查询语句的能力,除此之外,大语言模型隐式地学习到了查询语句与各种查询操作之间的关系、查询与各种组成数据库结构的元素之间的关系、查询语句如何表述查询需求。
请参阅图8,适应本申请的目的之一而提供的一种结构化查询语句生成装置,是对本申请的结构化查询语句生成方法的功能化体现,该装置另一方面,适应本申请的目的之一而提供的一种结构化查询语句生成装置,包括语句获取模块1100、要素确定模块1200、示例构造模块1300以及语句转述模块1400,其中,语句获取模块1100,用于获取以自然语言表述的查询语句;要素确定模块1200,用于确定出所述查询语句的目标查询类型和目标结构元素;示例构造模块1300,用于根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;语句转述模块1400,用于调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
进一步的实施例中,所述要素确定模块1200,包括:第二示例构造子模块,用于根据预设的各个样例查询语句所属的查询类型构造出包含所述查询语句的第二上下文示例;类型确定子模块,用于调用预设的大语言模型根据所述第二上下文示例确定出所述查询语句所属的目标查询类型。
进一步的实施例中,所述要素确定模块1200,包括:第三示例构造子模块,用于根据预设的各个样例查询语句指向的数据库名构造出包含所述查询语句的第三上下文示例;库名确定子模块,用于调用预设的大语言模型根据所述第三上下文示例确定出所述查询语句指向的目标数据库名;第四示例构造子模块,用于根据所述目标数据库名对应的各个数据库元素,以及所述各个样例查询语句指向的数据库名对应的目标数据库元素,构造出所述查询语句的第四上下文示例;对象确定子模块,用于调用预设的大语言模型根据所述第四上下文示例确定出所述查询语句指向的目标数据库元素;元素构成子模块,用于将所述查询语句指向的目标数据库元素构成目标结构元素。
进一步的实施例中,所述语句转述模块1400之后,包括:准确检测子模块,用于调用预设的句法检测器确定出所述结构化查询语句是否准确;迭代生成子模块,用于当所述结构化查询语句不准确时,根据所述第一上下文示例继续迭代生成新的结构化查询语句,直至确定出该结构化查询语句准确时终止迭代。
进一步的实施例中,所述语句获取模块1100,包括:语句获取子模块,用于获取以自然语言表述的需求语句;第五示例构造子模块,用于根据预设的各个样例需求语句是否存在查询意图构造出包含所述需求语句的第五上下文示例;意图确定子模块,用于调用预设的大语言模型根据所述第五上下文示例确定出所述需求语句是否存在查询意图,当存在查询意图时,将所述需求语句作为查询语句;语句改写子模块,用于当不存在查询意图时,确定出与所述需求语句相匹配且存在查询意图的改写语句作为查询语句。
进一步的实施例中,所述要素确定模块1200,包括:第一多分类子模块,用于采用预设的第一多分类模型从预设的多个查询类型中确定出所述查询语句所属的目标查询类型;第二多分类子模块,用于采用预设的第二多分类模型从预设的各个数据库名及其对应的数据库元素中,确定出所述查询语句所属的目标数据库名对应的目标数据库元素构成目标结构元素。
进一步的实施例中,所述语句获取模块1100之前,包括:训练集构造子模块,用于构造出训练集,所述训练集包括多个训练样本及其监督标签,所述训练样本为查询语句,所述监督标签为转述相应的查询语句的结构化查询语句;微调训练子模块,用于采用所述训练集对大语言模型进行微调训练,使其习得根据查询语句生成相应的结构化查询语句的能力。
为解决上述技术问题,本申请实施例还提供计算机设备。如图9所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种结构化查询语句生成方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的结构化查询语句生成方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图8中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的结构化查询语句生成装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的结构化查询语句生成方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请能够精准地转述以自然语言表述的查询语句,得出相应的结构化查询语句。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中开源的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种结构化查询语句生成方法,其特征在于,包括如下步骤:
获取以自然语言表述的查询语句;
确定出所述查询语句的目标查询类型和目标结构元素;
根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;
调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
2.根据权利要求1所述的结构化查询语句生成方法,其特征在于,确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
根据预设的各个样例查询语句所属的查询类型构造出包含所述查询语句的第二上下文示例;
调用预设的大语言模型根据所述第二上下文示例确定出所述查询语句所属的目标查询类型。
3.根据权利要求1所述的结构化查询语句生成方法,其特征在于,确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
根据预设的各个样例查询语句指向的数据库名构造出包含所述查询语句的第三上下文示例;
调用预设的大语言模型根据所述第三上下文示例确定出所述查询语句指向的目标数据库名;
根据所述目标数据库名对应的各个数据库元素,以及所述各个样例查询语句指向的数据库名对应的目标数据库元素,构造出所述查询语句的第四上下文示例;
调用预设的大语言模型根据所述第四上下文示例确定出所述查询语句指向的目标数据库元素;
将所述查询语句指向的目标数据库元素构成目标结构元素。
4.根据权利要求1所述的结构化查询语句生成方法,其特征在于,调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句之后,包括如下步骤:
调用预设的句法检测器确定出所述结构化查询语句是否准确;
当所述结构化查询语句不准确时,根据所述第一上下文示例继续迭代生成新的结构化查询语句,直至确定出该结构化查询语句准确时终止迭代。
5.根据权利要求1所述的结构化查询语句生成方法,其特征在于,获取以自然语言表述的查询语句,包括如下步骤:
获取以自然语言表述的需求语句;
根据预设的各个样例需求语句是否存在查询意图构造出包含所述需求语句的第五上下文示例;
调用预设的大语言模型根据所述第五上下文示例确定出所述需求语句是否存在查询意图,当存在查询意图时,将所述需求语句作为查询语句;
当不存在查询意图时,确定出与所述需求语句相匹配且存在查询意图的改写语句作为查询语句。
6.根据权利要求1所述的结构化查询语句生成方法,其特征在于,确定出所述查询语句的目标查询类型和目标结构元素,包括如下步骤:
采用预设的第一多分类模型从预设的多个查询类型中确定出所述查询语句所属的目标查询类型;
采用预设的第二多分类模型从预设的各个数据库名及其对应的数据库元素中,确定出所述查询语句所属的目标数据库名对应的目标数据库元素构成目标结构元素。
7.根据权利要求1所述的结构化查询语句生成方法,其特征在于,获取以自然语言表述的查询语句之前,包括如下步骤:
构造出训练集,所述训练集包括多个训练样本及其监督标签,所述训练样本为查询语句,所述监督标签为转述相应的查询语句的结构化查询语句;
采用所述训练集对大语言模型进行微调训练,使其习得根据查询语句生成相应的结构化查询语句的能力。
8.一种结构化查询语句生成装置,其特征在于,包括:
语句获取模块,用于获取以自然语言表述的查询语句;
要素确定模块,用于确定出所述查询语句的目标查询类型和目标结构元素;
示例构造模块,用于根据所述目标查询类型和目标结构元素构造出包含所述查询语句的第一上下文示例;
语句转述模块,用于调用预设的大语言模型根据所述第一上下文示例生成转述所述查询语句的结构化查询语句。
9.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任意一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
CN202311247511.9A 2023-09-25 2023-09-25 结构化查询语句生成方法及其装置、设备、介质 Pending CN117149812A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311247511.9A CN117149812A (zh) 2023-09-25 2023-09-25 结构化查询语句生成方法及其装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311247511.9A CN117149812A (zh) 2023-09-25 2023-09-25 结构化查询语句生成方法及其装置、设备、介质

Publications (1)

Publication Number Publication Date
CN117149812A true CN117149812A (zh) 2023-12-01

Family

ID=88908101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311247511.9A Pending CN117149812A (zh) 2023-09-25 2023-09-25 结构化查询语句生成方法及其装置、设备、介质

Country Status (1)

Country Link
CN (1) CN117149812A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117992791A (zh) * 2024-04-02 2024-05-07 浙江口碑网络技术有限公司 语句生成模型的训练方法、语句生成方法、系统以及设备
CN118296035A (zh) * 2024-06-03 2024-07-05 浙江大华技术股份有限公司 语句生成方法、语句生成装置以及计算机存储介质
CN118312529A (zh) * 2024-06-11 2024-07-09 浪潮云信息技术股份公司 一种任务处理方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117992791A (zh) * 2024-04-02 2024-05-07 浙江口碑网络技术有限公司 语句生成模型的训练方法、语句生成方法、系统以及设备
CN117992791B (zh) * 2024-04-02 2024-07-26 浙江口碑网络技术有限公司 语句生成模型的训练方法、语句生成方法、系统以及设备
CN118296035A (zh) * 2024-06-03 2024-07-05 浙江大华技术股份有限公司 语句生成方法、语句生成装置以及计算机存储介质
CN118312529A (zh) * 2024-06-11 2024-07-09 浪潮云信息技术股份公司 一种任务处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11734717B2 (en) Dynamic predictive similarity grouping based on vectorization of merchant data
US12124959B2 (en) Method and system for processing data records
US20230169267A1 (en) Multi-layer graph-based categorization
US11074253B2 (en) Method and system for supporting inductive reasoning queries over multi-modal data from relational databases
US10831811B2 (en) Resolution of ambiguous and implicit references using contextual information
CN117149812A (zh) 结构化查询语句生成方法及其装置、设备、介质
US20220100772A1 (en) Context-sensitive linking of entities to private databases
Quinto Next-generation machine learning with spark: Covers XGBoost, LightGBM, Spark NLP, distributed deep learning with keras, and more
US20190340503A1 (en) Search system for providing free-text problem-solution searching
US20190286978A1 (en) Using natural language processing and deep learning for mapping any schema data to a hierarchical standard data model (xdm)
US20220100967A1 (en) Lifecycle management for customized natural language processing
US12008047B2 (en) Providing an object-based response to a natural language query
US20210200821A1 (en) Search system for providing web crawling query prioritization based on classification operation performance
CN114186013A (zh) 实体识别模型热更新方法及其装置、设备、介质、产品
EP4222635A1 (en) Lifecycle management for customized natural language processing
CN116976920A (zh) 商品导购方法及其装置、设备、介质
CN113792786A (zh) 商品对象自动分类方法及其装置、设备、介质、产品
CN116933774A (zh) 长文本摘要方法及其装置、设备、介质
EP4339803A1 (en) Deep navigation via a multimodal vector model
CN116823404A (zh) 商品组合推荐方法及其装置、设备、介质
US20230177581A1 (en) Product metadata suggestion using embeddings
US20230297965A1 (en) Automated credential processing system
US12008409B1 (en) Apparatus and a method for determining resource distribution
US20240054290A1 (en) Deep technology innovation management by cross-pollinating innovations dataset
US20240256581A1 (en) Systems and methods for real-time document recommendation

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