System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于规则和相似度匹配的SQL正负样本生成方法技术_技高网

一种基于规则和相似度匹配的SQL正负样本生成方法技术

技术编号:40213192 阅读:5 留言:0更新日期:2024-02-02 22:22
本发明专利技术提供一种基于规则和相似度匹配的SQL正负样本生成方法。所述基于规则和相似度匹配的SQL正负样本生成方法包括SQL语法解析,对输入的SQL语句进行解析,得到SQL抽象语法树结构;基于SQL语法规则的样本生成,提取数据库的结构信息,主要包括数据库的表信息和列信息,根据解析出的SQL抽象语法树结构和提取的数据库结构信息,选择合适的样本生成模式,生成对应的正负样本数据;样本增强,根据已得到正负样本的数据。本发明专利技术提供的基于规则和相似度匹配的SQL正负样本生成方法具有增强模型的泛化能力和鲁棒性、提高模型的准确性和效率、利用已有数据进行数据增强、提高模型的灵活性和适应性的优点。

【技术实现步骤摘要】

本专利技术涉及自然语言处理,尤其涉及一种基于规则和相似度匹配的sql正负样本生成方法。


技术介绍

1、sql语句是一种用于操作数据库的标准语言,它可以用来定义、查询、更新和删除数据。sql查询语句的生成是nlp领域的一个重要研究方向,它可以用来实现自然语言到sql语句的转换,从而提高数据库的可用性和易用性。

2、为了实现sql语句的生成,通常需要使用深度学习模型,这些模型需要大量标注的训练数据样本,即自然语言问题和对应的sql语句对,用来帮助模型学习到sql语句与自然语句之间的对应关系。然而,在实际使用中,人们不仅仅希望模型能够输出正确的sql语句,也希望模型输出的sql语句能够尽可能多样化。因为sql语句本身是一种结构化查询语言,语法风格多样,这就要求模型能够理解不同形式的sql语句,可以返回不同风格的sql语句。

3、但是,现有技术中的几种主要构建sql语句数据集的方法仍存在很多不足:

4、基于人工编写或标注的方法:这种方法是由人工编写或标注自然语言问题和对应的sql语句对,从而构建数据集。这种方法的优点是可以保证数据集的准确性和一致性,但缺点是耗时耗力,成本高昂,不够灵活且难以覆盖多样化和复杂化的sql语句。

5、基于规则或模板的方法:这种方法是由预先定义一些规则或模板来生成自然语言问题和对应的sql语句对,从而构建数据集。这种方法的优点是可以快速地生成大量的数据集,但缺点是生成的数据集缺乏多样性和灵活性,且难以适应不同数据库结构和领域知识。

6、基于爬虫或搜索引擎的方法:这种方法是由利用爬虫或搜索引擎来收集网络上已有的自然语言问题和对应的sql语句对,从而构建数据集。这种方法的优点是可以获取真实且多样化的数据集,但缺点是获取的数据集质量不可控,且可能存在版权或隐私等法律风险。

7、因此,如何提供一种基于规则和相似度匹配的sql正负样本生成方法是本领域技术人员亟需解决的问题。


技术实现思路

1、本专利技术解决的技术问题是提供一种具有增强模型的泛化能力和鲁棒性、提高模型的准确性和效率、利用已有数据进行数据增强、提高模型的灵活性和适应性的基于规则和相似度匹配的sql正负样本生成方法。

2、为达到上述目的,本专利技术的技术方案具体是这样实现的:

3、本专利技术的提供了一种基于规则和相似度匹配的sql正负样本生成方法,包括:sql语法解析,对输入的sql语句进行解析,得到sql抽象语法树结构;基于sql语法规则的样本生成,提取数据库的结构信息,主要包括数据库的表信息和列信息,根据解析出的sql抽象语法树结构和提取的数据库结构信息,选择合适的样本生成模式,生成对应的正负样本数据;样本增强,根据已得到正负样本的数据,进行数据增强,输出生成和增强后的负样本集合,作为方法的结果。

4、作为本专利技术进一步的方案,所述sql语法解析基于所述sql语法规则,能够将sql语句解析成sql语法树结构,包括词法解析和语法解析两个过程。

5、作为本专利技术进一步的方案,所述基于sql语法规则的样本生成,能够根据已有的sql语句,结合sql语法结构,批量地生成多样化的可执行的sql语句正负样本。

6、作为本专利技术进一步的方案,所述正负样本数据包括正样本数据和负样本数据,所述正样本数据生成包括三种技术手段:

7、列的顺序置换:将所选中的列名顺序打乱,不影响sql语句的执行结果;

8、条件表达式顺序的置换:将条件表达式语句中的条件顺序打乱,不影响sql语句的执行结果;

9、函数的表达式替换:将条件表达式语句进行条件替换。

10、作为本专利技术进一步的方案,所述负样本数据生成包括七种技术手段:

11、列顺序的增加删除以及替换:对列顺序的增加删除以及替换,需要说明的是,为了保证sql语句的可行性,所替换的值应为同一个表中的其他列;

12、条件表达式的增加删除:从解析后的抽象语法树中能够得到sql语句的条件表达式,可以对其进行增删改等操作;

13、group by语句的增加删除以及置换:group by是sql语句中的一个子句,它用于将查询结果中具有相同值的行分组在一起,常常结合聚合函数来使用,这里可以对其进行增加删除以及顺序的改变,并尽可能不影响模型的可执行性;

14、order by语句的增加删除以及替换:order by是sql语句中的一个子句,它用于对查询结果集中的行进行排序,可以使用order by子句根据一个或多个列对结果集进行升序或降序排序,可以对其进行增加、删除以及升降序替换等操作;

15、limit语句的增加删除以及替换:limit是sql语句中的一个子句,它用于限制查询结果集中返回的行数,可以通过增加删除limit语句或修改返回的行数值,来生成负样本;

16、distinct语句的增加删除以及替换:distinct是sql语句中的一个关键字,它用于从查询结果集中返回唯一不同的值,可以通过增加或者删除distinct语句,来生成负样本;

17、聚合函数的替换:聚合函数是sql语句中的一类函数,它们用于对一组值执行计算,并返回单个值,sql支持多种聚合函数,包括count()、sum()、avg()、max()、min()等,可以将sql语句中出现的聚合函数替换为其他函数。

18、作为本专利技术进一步的方案,所述数据增强下的负样本扩充方法,能够根据已有的负样本数据,与已构造的数据进行相似度匹配,找到与本条sql语句相似的例子,作为负例。

19、作为本专利技术进一步的方案,所述数据增强包括两种相似度匹配技术:

20、n-gram相似度匹配:将负样本和已有负样本分割成n个连续的单词或符号(n-gram),并计算它们之间的n-gram相似度,即两个样本中共有的n-gram的数量除以两个样本中总共的n-gram的数量,选择相似度最高的若干个已有负样本作为数据增强的结果;

21、基于transfomer的语句嵌入向量的余弦相似度匹配:将负样本和已有负样本通过一个预训练好的transformer模型如bert、gpt等,转换成一个固定长度的向量,即语句嵌入向量,并计算它们之间的余弦相似度,即两个向量之间夹角的余弦值,选择相似度最高的若干个已有负样本作为数据增强的结果。

22、本专利技术提供了一种基于规则和相似度匹配的sql正负样本生成方法,有益效果在于:可以根据已有的sql语句快速地生成大量且多样化的正负样本,从而提高数据集的规模和覆盖率,能够为sql语句的生成模型提供更多的训练数据,增强模型的泛化能力和鲁棒性。可以保证生成样本的可执行性和正确性,从而提高数据集的质量和可靠性,避免模型学习到错误或无效的sql语句,提高模型的准确性和效率。可以利用已有数据进行数据增强,从而提高数据集的多样性和全面性,使模型能够处理更复杂和多变的sql语句,提高模型的灵活性和适应性本文档来自技高网...

【技术保护点】

1.一种基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,包括:

2.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述SQL语法解析基于所述SQL语法规则将SQL语句解析成SQL语法树结构,包括词法解析和语法解析两个过程。

3.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述基于SQL语法规则的样本生成根据已有的SQL语句,结合SQL语法结构,批量地生成多样化的可执行的SQL语句正负样本。

4.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述正负样本数据包括正样本数据和负样本数据,所述正样本数据生成包括三种技术手段:

5.根据权利要求2所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述负样本数据生成包括七种技术手段:

6.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述数据增强下的负样本扩充方法,能够根据已有的负样本数据,与已构造的数据进行相似度匹配,找到与本条SQL语句相似的例子作为负例。

7.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,所述数据增强包括两种相似度匹配技术:

8.根据权利要求1所述的基于规则和相似度匹配的SQL正负样本生成方法,其特征在于,具体包括以下步骤:

...

【技术特征摘要】

1.一种基于规则和相似度匹配的sql正负样本生成方法,其特征在于,包括:

2.根据权利要求1所述的基于规则和相似度匹配的sql正负样本生成方法,其特征在于,所述sql语法解析基于所述sql语法规则将sql语句解析成sql语法树结构,包括词法解析和语法解析两个过程。

3.根据权利要求1所述的基于规则和相似度匹配的sql正负样本生成方法,其特征在于,所述基于sql语法规则的样本生成根据已有的sql语句,结合sql语法结构,批量地生成多样化的可执行的sql语句正负样本。

4.根据权利要求1所述的基于规则和相似度匹配的sql正负样本生成方法,其特征在于,所述正负样本数据包括正样本数据和负样本数据,所述...

【专利技术属性】
技术研发人员:邱阳江宇晨陆晓静龙相廷柯芝锦周锐王佐成
申请(专利权)人:数据空间研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1