一种查询文本自动生成制造技术

技术编号:39650158 阅读:4 留言:0更新日期:2023-12-09 11:18
本发明专利技术涉及自然语言处理技术领域,具体为一种查询文本自动生成

【技术实现步骤摘要】
一种查询文本自动生成SQL模板的方法


[0001]本专利技术涉及自然语言处理
,具体为一种查询文本自动生成
SQL
模板的方法


技术介绍

[0002]通过文本自动生成
SQL
语句是无数从事表格问答

从事繁琐数据库查询统计运维工作人员的美好愿望

但是在具体实现过程中需要针对不同的表格制作针对性的训练语料,对于训练语料的标注成本极其高昂,对于标注人员的专业能力要求极高,通过人工智能模型训练,往往会出现不可控性

[0003]本专利技术基于谷歌大脑提出的
gMLP
模型进行改进提出
CMLP
,通过引入对角矩阵,将
gMLP
改造成适用于文本生成任务,同时将
Transformer
中拟合数据强的前馈神经网络融入
gMLP
模型,提高
gMLP
模型对于数据的拟合能力

在实现层面,通过分词算法,将用户查询文本内容采用以字符的形式输入模型,
SQL
语句模板采用以关键字段表示,提高生成
SQL
模板可控性


技术实现思路

[0004]本专利技术的目的在于提供一种查询文本自动生成
SQL
模板的方法,降低了文本生成任务的难度

[0005]本专利技术一种查询文本自动生成
SQL
模板的方法包括有如下步骤:
S1.
在开源数据集基础上制作文本和
SQL
模板平衡语料对作为训练集:收集开源的
Text2SQL
任务的相关文本和
SQL
语句匹配对,其中文本和
SQL
语句之间用
<sep>
作为分隔符
,
其中
SQL
语句中的关键字变为大写,保留
NOT、AND、AVG、AS、BY、COUNT、DISTINCT、EXCEPT、FROM、GROUP、IN、INTERSECT、JOIN、LIKE、LIMIT、MIN、MAX、OR、ORDER、SUM、SELECT、UNION、WHERE、(、*、)、>、<

=

29

SQL
模板关键字符,将和查询表格相关的连续片段采用
‑‑‑
进行替换;
S2.
制作模型映射词表:统计训练集中的字符进行去重排序作为字典集合,针对开源的
3500
最常用字和字典集合合并,词典中添加文本起始符
[CLS]、
文本填充符
[PAD]、
文本异常符
[UNK]、
文本和
SQL
的分隔符
[SEP]四个模型训练所需符号,添加
SQL
文本的关键字和部分逻辑运算符到词典中,它们是:
NOT、AND、AVG、AS、BY、COUNT、DISTINCT、EXCEPT、FROM、GROUP、IN、INTERSECT、JOIN、LIKE、LIMIT、MIN、MAX、OR、ORDER、SUM、SELECT、UNION、WHERE,、(、*、)、>、<、=

‑‑‑
,将
dict
映射为编号和字符的表,即
Dict={0:

[CLS]’
,1:“[PAD]”,2:“[SEP]“,3:”,3:
“‑‑‑”
,4:“国”....... }
,同时不带索引的字符通过换行的形式存到
vocab.txt
中用于后面分词算法中;
S3.
数据和模型适配:针对查询文本和
SQL
模板平行训练语料中的每条文本,基于
vocab.txt
采用最大逆向匹配分词算法,将每条文本变成字

‑‑‑
、SQL
关键字
、SQL
逻辑运算符的序列,将查询文本和
SQL
模板平行训练数据集中的某条样本
X
通过基于
vocab.txt
中的
词典的最大前向匹配分词算法进行转化记为列表
X
,文本不够最大长度
100
,则将列表
X
通过
[PAD]填充到该文本最大长度
100
,然后通过字典
Dict
,映射成索引编号列表,进而变成张量,喂入
CMLP
模型,对应的优化目标为
Y
,通过字典映射的张量,将查询文本和
SQL
语句平行训练数据集中的所有文本执行同样的操作,得到整个训练数据集,作为模型输入;
S4.
构建
CMLP
网络模型结构:针对人工智能语料中某文本
X
通过
S3
步骤的
Dict
变为索引列表,通过
Dict
依次找到每个字的数字索引,从而将该样本变成数字序列,进而变成张量,通过大小为
【6745

256】
的嵌入层,
256
为每个字符表示维度,得到嵌入表示的矩阵大小为
【64

100

256】
,然后将
100
个字符的词嵌入表示输入本专利提出的
CMLP
模型;
S5.
模型训练:根据步骤
S4
中已设定好的模型结构,并加入现有的深度学习技术:
Adam
优化器和交叉熵损失函数进行模型训练;具体训练过程为:将步骤
S3
得到的模型输入数据,喂入步骤
S4
中得到的网络结构,模型最终目标即最小化损失函数,模型训练的最终目的:当优化目标
Y
的第
i
个位置的真正字的索引为
index
时,使得输入的
X
经过
GPT
神经网络模型的第
i
位置的字的索引为
index
的概率尽量最大;
S6.
模型预测:假如用户输入的文本内容为“统计不同地位的数量”,则将其变成序列
[“[CLS]”,“统”,“计”,“不”,“同”,“地”,“位”,“的”,“数”,“量”,“[SEP]”]记为
List_input
,其长度为
len_List
,然后通过

[PAD]’
填充到最大长度
100
,再通过字典变成数字张量,将其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种查询文本自动生成
SQL
模板的方法,其特征在于:包括有如下步骤:
S1.
在开源数据集基础上制作文本和
SQL
模板平衡语料对作为训练集:收集开源的
Text2SQL
任务的相关文本和
SQL
语句匹配对,其中文本和
SQL
语句之间用
<sep>
作为分隔符
,
其中
SQL
语句中的关键字变为大写,保留
NOT、AND、AVG、AS、BY、COUNT、DISTINCT、EXCEPT、FROM、GROUP、IN、INTERSECT、JOIN、LIKE、LIMIT、MIN、MAX、OR、ORDER、SUM、SELECT、UNION、WHERE、(、*、)、>、<

=

29

SQL
模板关键字符,将和查询表格相关的连续片段采用
‑‑‑
进行替换;
S2.
制作模型映射词表:统计训练集中的字符进行去重排序作为字典集合,针对开源的
3500
最常用字和字典集合合并,词典中添加文本起始符
[CLS]、
文本填充符
[PAD]、
文本异常符
[UNK]、
文本和
SQL
的分隔符
[SEP]
四个模型训练所需符号,添加
SQL
文本的关键字和部分逻辑运算符到词典中,它们是:
NOT、AND、AVG、AS、BY、COUNT、DISTINCT、EXCEPT、FROM、GROUP、IN、INTERSECT、JOIN、LIKE、LIMIT、MIN、MAX、OR、ORDER、SUM、SELECT、UNION、WHERE,、(、*、)、>、<、=

‑‑‑
,将
dict
映射为编号和字符的表,即
Dict={0:

[CLS]

,1:“[PAD]”,2:“[SEP]“,3:”,3:
“‑‑‑”
,4:“国”....... }
,同时不带索引的字符通过换行的形式存到
vocab.txt
中用于后面分词算法中;
S3.
数据和模型适配:针对查询文本和
SQL
模板平行训练语料中的每条文本,基于
vocab.txt
采用最大逆向匹配分词算法,将每条文本变成字

‑‑‑
、SQL
关键字
、SQL
逻辑运算符的序列,将查询文本和
SQL
模板平行训练数据集中的某条样本
X
通过基于
vocab.txt
中的词典的最大前向匹配分词算法进行转化记为列表
X
,文本不够最大长度
100
,则将列表
X
通过
[PAD]
填充到该文本最大长度
100
,然后通过字典
Dict
,映射成索引编号列表,进而变成张量,喂入
CMLP
模型,对应的优化目标为
Y
,通过字典映射的张量,将查询文本和
SQL
语句平行训练数据集中的所有文本执行同样的操作,得到整个训练数据集,作为模型输入;
S4.
构建
CMLP
网络模型结构:针对人工智能语料中某文本
X
通过
S3
步骤的
Dict
变为索引列表,通过
Dict
依次找到每个字的数字索引,从而将该样本变成数字序列,进而变成张量,通过大小为
【6745

256】
的嵌入层,
256
为每个字符表示维度,得到嵌入表示的矩阵大小为
【64

100

256】
,然后将
100
个字符的词嵌入表示输入本专利提出的
CMLP
...

【专利技术属性】
技术研发人员:曹肖攀谢俊春秦瑾吴磊花榕励
申请(专利权)人:中电万维信息技术有限责任公司
类型:发明
国别省市:

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

1