【技术实现步骤摘要】
本专利技术涉及信息处理,尤其涉及面向开放数据库的自然语言转数据库查询语言方法和装置。
技术介绍
1、在当前nl2sql/text2sql(自然语言转数据库查询语言技术)是nlp(自然语言处理)领域的重要方向,旨在帮助不了解结构化查询语言(sql,structured query language)语言和业务库表的人员快速的通过自然语言进行结构化数据查询的方法,在当前schema-linking较多的使用了基于关键字或者模糊匹配的方法,用于锚定字段和用户提问间的关系,但是在中文语料的场景下,数据库库表命名一般为英文,而查询语言一般为中文,因此在大部分使用场景下,将会要求用户指定数据库表进行提问,用户需要进行建表语句筛选,在面向开放数据库的情况下,用户在不了解数据库结构和结构化查询语言的情况下,难以指定特定的数据库中存储表格进行提问,从而无法实现实现用户提问(query)到数据库数据定义语言(ddl,data definition language)建表语句的映射,进而难以实现自然语言转数据库查询语言。
技术实现思路
1、本专利技术提供了面向开放数据库的自然语言转数据库查询语言方法和装置,旨在帮助不了解sql语言和业务库表的人员快速的通过自然语言进行结构化数据查询的方法。
2、本专利技术第一方面提供了面向开放数据库的自然语言转数据库查询语言方法,包括以下步骤:
3、获取用户数据,其中,所述用户数据包括提问语句和引入数据库结构的声明;
4、基于预训练好
5、基于所述向量化提问,利用最小导航算法在所述向量数据库中进行检索,获得与所述向量化提问相关的数据库表建表数据定义语言的语句;
6、将所述用户提问语句与所述数据库表建表数据定义语言的语句拼装,得到拼装语句;
7、将所述拼装语句输入预训练好的sql coder模型,得到数据库查询语言。
8、在第一方面的一些实施例中,所述schema linking模型的预训练过程,具体为:
9、以第一预设的数据形式对待训练的数据进行数据组织;
10、基于bert模型,对输入的语句进行向量编码映射,得到向量数据组,所述向量数据组包含有多个向量和向量的模;
11、将所述数据组输入分类目标函数进行分类处理;
12、利用交叉熵损失函数优化更新对所述bert模型的权重进行更新,迭代训练直至达到预设条件为止,得到预训练好的schema linking模型。
13、在第一方面的一些实施例中,在以第一预设的数据形式对待训练的数据进行数据组织,这一步骤中,具体为:
14、按照用户提问、数据库查询语言和数据库结构作为基准数据对;
15、将所述基准数据对中的数据库结构转化为数据定义语言,形成用户提问、数据定义语言和数据库查询语言的数据三元组;
16、将所述数据三元组进行拆分,形成用户提问和数据定义语言的预设的数据形式。
17、在第一方面的一些实施例中,在基于bert模型,对输入的语句进行向量编码映射,得到向量数据组,所述向量数据组包含有多个向量和向量的模,这一步骤中,具体为:
18、将第一句子和第二句子分别输入bert模型,分别获得第一分类标记的向量表征和第二分类标记的向量表征;
19、将所述第一分类标记的向量表征和所述第二分类标记的向量表征分别输入池化池,得到第一向量和第二向量;
20、基于所述第一向量和所述第二向量,得到所述第一向量和所述第二向量的差值向量的模;
21、将所述第一向量、所述第二向量和所述差值向量的模进行拼接,得到所述数据组。
22、在第一方面的一些实施例中,所述分类目标函数的表达式为:
23、o=softmax(wt(u,v,|u-v|))
24、上式中,o为分类目标,wt为训练好的模型权重,u为第一向量,v为第二向量,|u-v|为差值向量的模;
25、所述交叉熵损失函数的表达式为:
26、
27、上式中,p为训练集中的样本,q为生成样本,pk为第k个训练集中的样本p对应的独热编码,qk为第k个生成样本q对应的独热编码。
28、在第一方面的一些实施例中,所述sql coder模型的预训练过程,具体为:
29、以第二预设的数据形式对待训练的数据进行数据组织;
30、基于大型语言模型,进行lora训练微调,得到训练好的sql coder模型。
31、在第一方面的一些实施例中,在以第二预设的数据形式对待训练的数据进行数据组织,这一步骤中,具体为:按照用户提问、数据库查询语言和数据库结构作为基准数据对;
32、将所述基准数据对中的数据库结构转化为数据定义语言,形成用户提问、数据定义语言和数据库查询语言的数据三元组,所述数据三元组为第二预设的数据形式。
33、在第一方面的一些实施例中,所述lora训练微调的更新目标函数,具体为:
34、
35、φ=φ+△φ(θ)
36、上式中,pφ(y|x)为参数矩阵为φ的plm针对问题x做出回复y,θ为lora的训练参数集。
37、在第一方面的一些实施例中,在得到拼装语句的步骤中,还包括以下步骤:
38、将所述用户提问语句输入预设的用户提问改写模型,生成伪数据库查询逻辑语言;
39、将所述伪数据库查询逻辑语言与所述数据库表建表数据定义语言的语句拼装,得到所述拼装语句。
40、本专利技术的第二方面提供了面向开放数据库的自然语言转数据库查询语言装置,应用了第一方面所述的自然语言转数据库查询语言方法,包括:
41、获取模块,用于获取用户数据,其中,所述用户数据包括提问语句和引入数据库结构的声明;
42、向量模块,用于基于预训练好的schema linking模型,对所述用户提问语句和所述数据库结构进行向量化处理,得到向量化提问和向量数据库;
43、检索模块,用于基于所述向量化提问,利用最小导航算法在所述向量数据库中进行检索,获得与所述向量化提问相关的数据库表建表数据定义语言的语句;
44、拼装模块,用于将所述用户提问语句与所述数据库表建表数据定义语言的语句拼装,得到拼装语句;
45、处理模块,将所述拼装语句输入预训练好的sql coder模型,得到数据库查询语言。
46、从以上技术方案可以看出,本专利技术至少具有以下优点:
47、本专利技术的实施例提供了面向开放数据库的自然语言转数据库查询语言方法,由于利用预训练好的schema linking模型,对所述用户提问语句和所述数据库结构进行向量化处理,得到向量化提问和向量数据库,因此,用户本文档来自技高网...
【技术保护点】
1.面向开放数据库的自然语言转数据库查询语言方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的自然语言转数据库查询语言方法,其特征在于,所述SchemaLinking模型的预训练过程,具体为:
3.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于,在以第一预设的数据形式对待训练的数据进行数据组织,这一步骤中,具体为:
4.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于,在基于BERT模型,对输入的语句进行向量编码映射,得到向量数据组,所述向量数据组包含有多个向量和向量的模,这一步骤中,具体为:
5.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于:
6.根据权利要求1所述的自然语言转数据库查询语言方法,其特征在于,所述SQLCoder模型的预训练过程,具体为:
7.根据权利要求6所述的自然语言转数据库查询语言方法,其特征在于,在以第二预设的数据形式对待训练的数据进行数据组织,这一步骤中,具体为:
8.根据权利要求6所述的自然语言转数据库查询语言方法,其
9.根据权利要求1所述的自然语言转数据库查询语言方法,其特征在于,在得到拼装语句的步骤中,还包括以下步骤:
10.面向开放数据库的自然语言转数据库查询语言装置,其特征在于,应用了权利要求1至权利要求9任一项所述的自然语言转数据库查询语言方法,包括:
...【技术特征摘要】
1.面向开放数据库的自然语言转数据库查询语言方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的自然语言转数据库查询语言方法,其特征在于,所述schemalinking模型的预训练过程,具体为:
3.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于,在以第一预设的数据形式对待训练的数据进行数据组织,这一步骤中,具体为:
4.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于,在基于bert模型,对输入的语句进行向量编码映射,得到向量数据组,所述向量数据组包含有多个向量和向量的模,这一步骤中,具体为:
5.根据权利要求2所述的自然语言转数据库查询语言方法,其特征在于:
...
【专利技术属性】
技术研发人员:郭利荣,李金漳,倪若昕,江瑾耀,
申请(专利权)人:中数通信息有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。