CN113515955A - 基于语义理解的从文本序列到指令序列的在线翻译***及方法 - Google Patents

基于语义理解的从文本序列到指令序列的在线翻译***及方法 Download PDF

Info

Publication number
CN113515955A
CN113515955A CN202110453842.2A CN202110453842A CN113515955A CN 113515955 A CN113515955 A CN 113515955A CN 202110453842 A CN202110453842 A CN 202110453842A CN 113515955 A CN113515955 A CN 113515955A
Authority
CN
China
Prior art keywords
sql
columns
column
clause
statement
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
CN202110453842.2A
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.)
Taiji Computer Corp Ltd
Original Assignee
Taiji Computer Corp 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 Taiji Computer Corp Ltd filed Critical Taiji Computer Corp Ltd
Priority to CN202110453842.2A priority Critical patent/CN113515955A/zh
Publication of CN113515955A publication Critical patent/CN113515955A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出基于语义理解的从文本序列到指令序列的在线翻译,尤其涉及研究利用语言预训练模型和深度学习来进行文本序列到指令序列的翻译,属于自然语言处理领域;为解决现有技术中无法将人工文本和json语言进行直接转换以及文本转换过程中复杂语句无法翻译的问题;本发明引入模板生成层,可以根据训练数据中的SQL语句,抽取出SQL模板,让模型可以根据输入问句不同,选择不同的模板,依据模板进而可以划分出不同的SQL子任务,在此基础上生成结构复杂的SQL语句;拓展了填充SQL子语句的方法,可以生成复杂的SQL语句;并且不需要额外的编码器和解码器,除此之外,也不需要引入额外的中间表示层,这些特点降低了模型复杂度,并且能提高模型泛化能力。

Description

基于语义理解的从文本序列到指令序列的在线翻译***及 方法
技术领域
本发明涉及从文本序列到指令序列的在线翻译,尤其涉及研究利用语言预训练模型和深度学习来进行文本序列到指令序列的翻译,属于自然语言处理领域。
背景技术
在传统的以业务流为基础的软件中,用户会根据业务类型,调用业务对应的程序接口,完成业务需求。但是随着业务需求的多样化,业务对应的程序接口也会变得愈加繁杂,这时候用户为完成一项业务所需的操作步骤就会增多,这会导致工作效率下降和增加出错概率。
业务需求基本上都可以映射为对数据库的增,删,改,查;指令与SQL语句类似,可将指令转换成类似于SQL语句的表达方式,进而用Text2SQL和NL2SQL相关技术完成自然语言到指令的转换。
在Text2SQL这个问题上,主要存在三个挑战:第一个是信息融合,如何将问句与数据库表进行联合表示;第二个是失配,失配指的是自然语言表示的意图与SQL语句细节之间的不匹配,其主要原因是SQL语句是被设计用于关系数据库的高效查询,而不是用于表达语义信息;第三个是泛化问题,泛化问题是指能否针对未知表(out-of-domain schema)生成正确SQL语句,其中未知表指的是未在模型训练数据集中出现的表。
针对这三个技术问题,并且结合近年来有关Text2SQL的工作,改进了以往的模型,并提出一个模型,称为混合排序填充网络(Hybrid Ranking Filling Network,H-Net)。模型可以概括为以下五步,第一步,利用语言预训练模型BERT对一个列与问句进行联合编码,用以获取列与问句之间的关系;第二步,选择SQL模板,根据SQL模板,将生成完整的SQL语句任务划分为若干个生成子SQL语句任务;第三步,计算列与问句在不同子SQL语句中的相似度,并对计算的结果进行排序;第四步,针对不同的子SQL语句的生成任务,利用排序结果和其对应的解码方式进行解码,生成子SQL语句。第五步,利用子SQL语句填充SQL模板,生成完整的SQL语句。
混合排序填充模型与传统端到端模型不同,混合排序填充模型不需要额外的编码器和解码器,除此之外,也不需要引入额外的中间表示层,这些特点降低了模型复杂度,并且能提高模型泛化能力。为了验证提出方法的有效性,构建了文本序列到指令序列的数据集,在这一数据集上的实验结果显示了本方法提出的H-NET方法的有效性。
发明内容
为解决现有技术中无法将人工文本和json语言进行直接转换以及文本转换过程中复杂语句无法翻译的问题,本发明提出基于语义理解的从文本序列到指令序列的在线翻译***、方法及存储介质,方案如下:
方案一:基于语义理解的文本序列到指令序列的在线翻译***,该***包括JSON序列转换、模板生成,在线翻译和SQL后处理四个子***;通过JSON到SQL语句转换和模板抽取完成数据集的构建;通过对文本序列进行编码、在线翻译和SQL语句剪枝完成基于语义理解的从文本序列到指令序列的在线翻译过程;
其中JSON序列转换子***包括构建SQL语句模块和构建数据表模块,负责将JSON格式的指令序列转换成SQL语句,并且根据指令序列构建数据表,用于将SQL初始数据进行整合;
模板生成子***包括模板聚类模块,模板抽取模块,用于指导翻译***生成指令序列;
在线翻译子***包括训练与预测模块,用于完成从文本序列到指令序列的在线翻译过程;
SQL后处理子***包括执行指导模块,SQL语句剪枝模块和指令还原模块,负责去除SQL语句中冗余部分和SQL语句综合处理,并将SQL语句还原成JSON格式的指令序列。
方案二:基于语义理解的从文本序列到指令序列的在线翻译方法,是根据所述的***为基础而实现的该方法利用所述模板生成子***,通过模板抽取、SQL语句输入表示以及模型建立,定义翻译规则并初始化语句数据;
所述的语句数据包括两部分,其中一部分包含SQL引用数据集中的列的类型、表名、列名、表注释、列注释和连接操作;另一部分引入问句切分成的词序列。
进一步地,针对在线翻译过程,所述拓展SQL子语句子***和所述指令序列转换子***为方法承载的核心***构件,该方法的具体步骤如下:
步骤一,对输入数据进行编码;
步骤二,通过定义翻译规则建立SQL模型;
步骤三,针对SQL列的计算与结构的子任务划分,完成初始化模板的过程;
步骤四,通过步骤一至三的初始化过程,进而完成所述SQL模型的训练与预测;
步骤五,结合算法将各子句进行指导,以及完成语句剪枝;
步骤六,结合SQL数据库中的SQL数据集完成指令序列转换;
步骤七,通过JSON和SQL数据整合,完成从文本序列到指令序列的在线翻译过程。
进一步地,在步骤三中,关于列的计算所述的子任务划分,包括列独立任务、列相关任务和结构相关任务;
其中所述列独立任务指预测选择子句的所涉及的列、条件子句中所涉及的列、排序子句中所涉及的列和完整SQL语句中所涉及的列;
所述列相关任务指预测函数运算符、条件操作符、条件对应的值和条件对应值得个数;
所述结构相关任务包括预测集合运算符和连接运算符。
进一步地,所述的列计算,具体步骤细化为:
步骤三一,分析列与问句相似度进行计算,计算列与问句在不同SQL子句中的相似度,进而判断列在对应的SQL子句中是否出现;
步骤三二,处理列独立任务,具体指对于列无关任务,预测不同SQL子句中所涉及的列从而独立筛选列;
步骤三三,处理列相关任务,具体指预测选择子句中的列对应的函数运算符、条件子句中的列对应的条件操作符、条件子句中的列对应的值;
步骤三四,处理结构相关任务,具体指预测SQL语句的集合运算符和连接运算符,完成结构相关任务。
进一步地,在步骤四中,包括训练阶段和预测阶段,所述训练阶段首先进行训练输入;其次生成与问句对应的SQL语句标签,最后最小化每一类子任务的交叉熵损失,完成训练目标的优化;
步骤四一,对输入的问句进行编码;
步骤四二,在SQL数据集中选择模板,然后进行SQL语句子任务划分;
步骤四三,分析列与问句相似度进行计算,计算列与问句在不同SQL子句中的相似度,进而判断列在对应的SQL子句中是否出现;
步骤四四,处理列独立任务,具体指对于列无关任务,预测不同SQL子句中所涉及的列从而独立筛选列;
步骤四五,处理列相关任务,具体指预测选择子句中的列对应的函数运算符、条件子句中的列对应的条件操作符、条件子句中的列对应的值;
步骤四六,处理结构相关任务,具体指预测SQL语句的集合运算符和连接运算符,完成结构相关任务。
步骤四七,问句对应的SQL语句标签与步骤四二到步骤四六的处理结果进行对比,计算每一个步骤的交叉熵损失,最后每一个步骤的交叉熵损失,完成训练目标。
进一步地,所述预测阶段,具体细化步骤如下:
步骤五一,对输入的问句进行编码;
步骤五二,在SQL数据集中选择模板,然后进行SQL语句子任务划分;
步骤五三,计算列与问句在选择子句中的相似度并排序;通过预测选择子句中的列的数量取前若干列,最后根据计算每个列对应的函数运算符,得到选择子句;
步骤五四,计算列与问句在选择子句中的相似度并排序;通过预测条件子句中的列的数量取前若干列,根据计算每个列对应的条件操作符,得到条件子句:
步骤五五,计算列与问句在选择子句中的相似度并排序;通过预测排序子句中的列的数量取前若干列,最后根据计算每个列对应的排序操作符,得到排序子句;
步骤五六,通过结合步骤五一至步骤五五,预测SQL语句的结构信息,得到集合运算符和连接运算符;
步骤五七,根据上述子句所选择出的列,在SQL数据集中检索出该列所对应的表,得到from子句;
步骤五八,根据步骤五五检索出的表的链接,以及表之间的外键和主键的关系,找到表之间的最短路径,将最短路径上的表之间的连接条件加入到条件子句中;
经过上述步骤,得到不同SQL的子句并根据SQL子句类型,将SQL子句填充到模板中对应的位置,最后得到完整的SQL语句。
进一步地,在步骤五中,所述执行指导判断与SQL语句剪枝过程,包括在SQL语句的预测阶段,执行部分生成的SQL语句,根据部分生成的SQL语句在SQL数据集上执行结果调整SQL语句的生成,进而完成SQL语句剪枝,限制模型在解空间中的搜索范围,去除不满足要求搜索路径;所述的搜索路径,采用四种执行指导方式,包括选择子句执行指导、条件子句执行指导、排序子句执行指导和结构执行指导。
进一步地,在步骤六中,所述指令序列转换指转换为JSON语句格式,所述数据集中的问句类型为基于条件查询匹配的答案检索。
进一步地,经过从JSON语句抽取并构建表得到至少80个表组成的数据库表集合,同时,通过所述数据整合模块将JSON语句转换为SQL语句作为新数据集,用于模型训练,验证和测试。
本发明有益效果体现在:
本发明引入模板生成层,可以根据训练数据中的SQL语句,抽取出SQL模板,让模型可以根据输入问句不同,选择不同的模板,依据模板进而可以划分出不同的SQL子任务,在此基础上生成结构复杂的SQL语句;拓展了填充SQL子语句的方法,可以生成复杂的SQL语句;并且不需要额外的编码器和解码器,除此之外,也不需要引入额外的中间表示层,这些特点降低了模型复杂度,并且能提高模型泛化能力;
另外本发明执行指导与SQL语句剪枝过程:将JSON中的参数分为直接参数和间接参数,根据直接参数和间接参数的属性,设计相应的转换规则;进而提出了根据JSON语句构建数据表的规则,从而可以从JSON语句中自动构建数据表,最后将JSON语句转换为SQL语句的规则,从而可以应用Text2SQL技术实现Text2JSON;
本发明所研究的指令序列转换是指把用户用自然语言表述的业务需求转换为可供***执行的指令,通过执行指令完成用户所表达的业务需求,这可以有效缩短操作步骤,提高工作效率和降低出错概率。
附图说明
图1为基于语义理解的从文本序列到指令序列的在线翻译总体结构图;
图2为SQL语句的上下文无关文法示意图
图3为SQL语句模板;
图4为SQL语句模板样例示意图;
图5为本发明关于问句及JSON语句示例图;
图6为针对图5中JSON对应的SQL语句示意图;
图7为关于问句、JSON语句实验结果示例图;
图8为针对图6中JSON对应的SQL语句示意图;
图9为SQL语句的上下文无关文法实验结果示例图;
图10为SQL语句的语法结构示意图;
图11为基于语义理解的从文本序列到指令序列的在线翻译模块图。
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
具体实施方式一:本实施例针对基于语义理解的文本序列与指令序列的在线翻译***的具体构成及简化逻辑顺序如图11所示,详细模块构成如下:该***包括引入模板生成、拓展SQL子语句和指令序列转换三个子***;通过将文本语言建立序列-SQL语句拓展-指令序列转换完成基于语义理解的从文本序列到指令序列的在线翻译过程;其中引入模板生成子***包括模板抽取模块、输入表示模块和模型建立模块,负责将SQL初始数据进行整合;拓展SQL子语句子***包括训练与预测模块、执行指导模块和SQL语句剪枝模块,用于SQL语句综合处理;指令序列转换子***包括数据及数据集参数模块、指令转换模块和数据整合模块,负责将SQL语句转换为指令序列,完成从文本序列到指令序列的在线翻译过程。
具体实施方式二:本实施例结合部分现有语言翻译技术中的缺陷,针对基于语义理解的从文本序列到指令序列的在线翻译方法,进一步结合具体实施方式一中的***流程进行详细阐述:
近年来有关Text2SQL的工作主要可以分为以下四类:
端到端翻译:主要思想是通过端到端模型生成具有SQL语法结构的草图(Sketch),然后利用问句中的内容填充该草图。方法可以简单概括为以下两步:第一步,将输入问句和数据库表分别进行编码,计算问句对数据库表的注意力,生成注意力表示作为模型输入,然后通过解码器生成一张粗略的草图;第二步,通过对齐问句与草图,填充草图中丢失的细节。端对端模型对语句顺序敏感,但SQL语句对顺序不敏感。例如条件语句中交换两个条件顺序对SQL语句并没有影响,但却会影响端对端模型的生成过程。
中间语义表示:主要思想是将问句和所有列拼接,进行编码获取输入,然后通过基于语法(Grammar Based)的解码器,生成树状结构的中间语义表示,最后基于中间表示再进行一次解码,生成完整的SQL语句。方法可以简单概括为以下三步:第一步,将问句与数据库进行链接(Schema Linking),找出问句中的与数据库对应的表,列和值序列,然后将数据库表中所有列与问句各自进行编码并且拼接作为输入;第二步,利用基于语法的解码器,通过ApplyRule,GenToken两类规则,生成树状结构的中间语义表示;第三部,对中间语义表示再进行一次解码,生成完整的SQL。中间语义表示方法需要专门的基于语法的解码器;引入专门的中间语义表示层,增加模型复杂度。此外,引入中间语义不能完全表示表示问句内容,会造成语义损失。
SQL子任务预测:主要思想是将SQL语句拆解成若干个子SQL语句,然后分别生成子SQL语句,最后组合成一个完整的SQL语句。这类方法可以简单概括为以下两步:第一步,将SQL语句拆分为SELECT-column,SELECT-aggregation,WHERE-number,WHERE-column,WHERE-operator,WHERE-value等子SQL语句;第二步,每一个子SQL语句都对应着一个子任务,每一个子任务相当于一个分类任务。子任务之间各自独立,各自生成对应的子SQL语句,最后组合成一条完整的SQL语句。
这类方法的缺点包括:1)SQL子任务的划分,是通过人工定义规则完成的;2)没有充分利用子任务之间的依赖关系。
语言预训练模型:主要思想是用语言预练习模型BERT捕捉问句与列之间的关系,然后利用问句与列之间的关系去生成SQL语句。方法可以简单概括为以下两步:第一步,将问句和所有列拼接,或者将问题与单个列进行拼接,作为输入,利用语言预训练模型获取编码,得到输出,获取问句和列之间的关系;第二步,用类似SQL子任务预测的方法,将完整SQL分成若干个子SQL语句;第三步,对于每一个子SQL语句,通过对语言预处理模型的输出,用LSTM(Long Short-Term Memory)进行解码,或者用线性神经网络进行解码,填充子SQL语句,最后合并子SQL语句,得到完整的子SQL语句。这类方法的缺点主要有:1)SQL子任务的划分,是通过人工定义规则完成;2)无法拓展到复杂的SQL语句;3)需要额外的LSTM解码器完成SQL语句生成。
混合排序填充网络模型(H-Net)的方法与类似,采用了语言预训练模型和SQL语句子任务划分。但主要有两点不同:第一,引入模板生成层,可以根据训练数据中的SQL语句,抽取出SQL模板,让模型可以根据输入问句不同,生成不同的模板,依据模板进而可以划分出不同的SQL子任务,在此基础上生成结构复杂的SQL语句。第二,拓展了填充SQL子语句的方法,可以生成复杂的SQL语句。
混合排序填充网络模型的H-Net模型总体结构如图1所示,模型各部分功能和计算方式在后面各个小节中会进行详细描述。
1.模板抽取:首先,为SQL语句定义上下文无关文法,如图2所示;
对于训练集中SQL语句s,利用上下文无关文法对其进行解析。对于每一条SQL语句s,都会得到一个SQL语句的语法结构。
例如,对于SQL语句:
select class_type from cource where id>=100order by class_type asc
union
select class_type from cource_opened where id>=100order id desc
利用上下文无关文法进行解析后,会得到如图3所示的模板;
根据得到的SQL语法结构,进行聚类。对于聚类结果中的每一类,取能够覆盖该类所有SQL语句的语法结构作为一个模板Template,将所有模板记为一个模板集合Τ。
2.输入表示:
定义问句可以表示为:q;
数据库中的一列可以表示为:
Figure BDA0003039838160000081
其中:type——表示列的类型,type∈{string,number,date,...};
t——表示表名;
c——表示列名;
Figure BDA0003039838160000082
——表示表注释;
Figure BDA0003039838160000083
——表示列注释;
Concat(·)——表示连接操作;
将问句q和列ci组合起来,得到输入对(ci,q);输入对经过分词后,得到一个词序
列:
[CLS],x1,x2,...,xm,[SEP],y1,y2,...,yn,[SEP]
其中x1,x2,...,xm——表示列ci的词序列;
y1,y2,...,yn——表示问句q的词序列;
把[CLS],x1,x2,...,xm,[SEP],y1,y2,...,yn,[SEP]作为模型输入,记为input。
具体实施方式三:根据具体实施方式二中描述的转换规则,本实施例介绍编码以及完成序列任务的具体过程:
A.编码:
利用BERT语言预训练模型对输入进行编码,用于捕捉问句与列之间的关系,编码之后将获得一个隐藏状态序列:
Figure BDA0003039838160000085
B.SQL模型建立相关:
1.模板选择:
模板选择可以认为是一种分类任务,对于给定问句q,其对应模板记为τ;
Figure BDA0003039838160000084
P(τ=k|ci,q)=softmax(Wtemplate[k,:]·h[CLS]) (3)
P(ci∈Rc|q)是问句q与列ci在完整SQL语句中相似度。
2.子任务划分:假设一个SQL语句模板如图4所示:
根据SQL语句模板,可以将预测SQL语句拆分为三类子任务:
(a)列独立任务:预测选择子句的所涉及的列Sc,条件子句中所涉及的列Wc,排序子句中所涉及的列Oc和完整SQL语句中所涉及的列Rc
(b)列相关任务:预测函数运算符aggregation,条件操作符operator,条件对应的值value,条件对应值得个数value_num等。
(c)结构相关任务:预测集合运算符rel,连接运算符link等。
C.关于列:
1.列与问句相似度计算:
对于问句q,假定记Sc是在选择子句select_clause中所涉及的列,Wc是在条件子句where_clause中所涉及的列,Oc是在排序子句order_clause中所涉及的列,Rc是在完整的SQL语句中所涉及的列,Rc=Sc∪Wc∪Oc
对于列ci,需要计算列ci与问句q在不同SQL子句中的相似度,进而确定列ci在对应的SQL子句中是否出现。
以下是四种不同相似度的计算方式:
在选择子句select_clause中,列ci与问句q相似度记为P(ci∈Sc|q):
P(ci∈Sc|q)=sigmod(Wsc·h[CLS]) (4)
在条件子句where_clause中,列ci与问句q相似度记为P(ci∈Wc|q):
P(ci∈Wc|q)=sigmod(Wwc·h[CLS]) (5)
在排序子句order_clause中,列ci与问句q相似度记为P(ci∈Oc|q):
P(ci∈Oc|q)=sigmod(Woc·h[CLS]) (6)
在完整的SQL语句中,列ci与问句q相似度记为P(ci∈Rc|q):
P(ci∈Rc|q)=sigmod(Wrc·h[CLS]) (7)
2.列独立任务:
对于列无关任务,指的是预测不同SQL子句中所涉及的列,例如Sc,Wc和Oc,有两种预测方式:
第一种,设置一个阈值,对于每一类子句,只保留与问句相似度超过阈值的列。
第二种,对于每一类子句,预测一个n值,只保留与问句相似度排名前n的列。
对于第二种方法,n的计算方式如下:
对于选择子句中的列数量select_num,记为
Figure BDA0003039838160000101
Figure BDA0003039838160000102
P(ns=k|ci,q)=softmax(Wns[k,:]·h[CLS]) (9)
其中P(ns=k|ci,q)相当于一个分类任务。
对于条件子句中的列数量where_num,记为
Figure BDA0003039838160000103
Figure BDA0003039838160000104
P(nw=k|ci,q)=softmax(Wnw[k,:]·h[CLS]) (11)
其中P(nw=k|ci,q)相当于一个分类任务。
对于排序子句中的列数量order_num,记为
Figure BDA0003039838160000105
Figure BDA0003039838160000106
P(no=k|ci,q)=softmax(Wno[k,:]·h[CLS]) (13)
其中P(no=k|ci,q)相当于一个分类任务。
3.列相关任务:
对于列相关任务,可以认为是一种分类任务:
对于选择子句中的函数运算符aj
P(aj|ci,q)=softmax(Wagg[j,:]·h[CLS]) (14)
对于条件子句中的条件操作符oj
P(oj|ci,q)=softmax(Wop[j,:]·h[CLS]) (15)
对于条件子句中的列对应的值value:
首先需要预测条件对应值得个数value_num记为nv
P(nv=j|ci,q)=softmax(Wnv[j,:]·h[CLS]) (16)
对于条件对应的第k个值valuek,只需要指出valuek在问句中开始位置和结束位置:
开始位置:
Figure BDA0003039838160000111
结束位置:
Figure BDA0003039838160000112
对于排序子句中的运算符orj
P(orj|ci,q)=softmax(Worder[j,:]·h[CLS]) (19)
4.结构相关任务:
对于集合运算符rel:
Figure BDA0003039838160000113
P(rel=k|ci,q)=softmax(Wrel[k,:]·h[CLS]) (21)
其中P(rel=k|ci,q)相当于一个分类任务。
对于连接运算符link:
Figure BDA0003039838160000114
P(link=k|ci,q)=softmax(Wlink[k,:]·h[CLS]) (23)
其中P(link=k|ci,q)相当于一个分类任务。
D.训练与预测:
1.训练阶段:
输入:(qi,cj)。其中qi是第i个问句,UC={c1,c2,...,cL}是数据库表中所有列,cj∈UC
标签:与qi对应的SQL语句
优化目标:最小化每一类子任务的交叉熵损失:
min∑CrossEntropy(sub_task) (24)
2.预测阶段:
第一步,通过公式(2)选择模板,然后进行SQL语句子任务划分。
第二步,根据公式(4)计算列与问句在选择子句中的相似度,排序;通过公式(8)预测选择子句中的列的数量
Figure BDA0003039838160000121
然后取相似度前
Figure BDA0003039838160000122
的列
Figure BDA0003039838160000123
最后根据公式(14)计算每个列对应的函数运算符,得到选择子句select_clause:
Figure BDA0003039838160000124
第三步,根据公式(5)计算列与问句在条件子句中的相似度,排序;通过公式(10)预测条件子句中的列的数量
Figure BDA0003039838160000125
然后取相似度前
Figure BDA0003039838160000126
的列
Figure BDA0003039838160000127
最后根据公式(15)计算每个列对应的条件操作符,根据公式(16),(17)和(18)计算每个列对应的值,得到条件子句where_clause:
Figure BDA0003039838160000128
第四步,根据公式(6)计算列与问句在排序子句中的相似度,排序;通过公式(12)预测排序子句中的列的数量
Figure BDA0003039838160000129
然后取相似度前
Figure BDA00030398381600001210
的列
Figure BDA00030398381600001211
最后根据公式(19)计算每个列对应的操作符,得到排序子句order_clause:
Figure BDA00030398381600001212
第五步,通过公式(20)和(22)预测SQL语句的结构信息,可以得到
Figure BDA00030398381600001213
Figure BDA00030398381600001214
第六步,结合附图5和6所示模板抽取样例,并根据上述子句所选择出的列,可以知道这些列所对应的表,记S是上述子句所对应的表,
Figure BDA00030398381600001215
就可以得到from子句:
Figure BDA00030398381600001216
第七步,表连接,根据表S之间的外键和主键的关系,找到表S之间的最短路径,将最短路径上的表之间的连接条件加入到条件子句中。
第八步,经过上述步骤,可以得到不同SQL的子句。根据SQL子句类型,将SQL子句填充到模板中对应的位置,最后得到完整的SQL语句。
E.执行指导判断与SQL语句剪枝:
在SQL语句的预测阶段,部分生成的SQL语句也可以被执行,可以根据部分生成的SQL语句在数据库上执行结果调整SQL语句的生成,这被称为执行指导(Execution Guided,EG)。执行指导起到的作用相当于剪枝,限制模型在解空间中的搜索范围,去除不满足要求搜索路径。
以下是本实施例采用的四种不同的执行指导方式,分别针对不同的子任务:
选择子句执行指导:如算法1所示
Figure BDA0003039838160000131
条件子句执行指导:如算法2所示:
Figure BDA0003039838160000141
排序子句执行指导:与条件子句执行指导算法类似;
结构执行指导:针对集合运算符rel和连接运算符link进行,两者执行指导算法相似,其中针对集合运算符rel的执行指导算法如算法3所示:
Figure BDA0003039838160000151
F.指令序列转换:
首先,关于数据集说明:构建的文本到指令序列数据集为JSON格式,采用JSON格式主要是为了方便的表示指令序列。数据集包含2312条(问句,JSON语句)对。
其中有1923条数据是一个问句对应一条JSON语句,389条数据是一个问题对应两条JSON语句。问句类型多为基于多条件查询匹配的答案检索。
JSON语句由method,url,params三部分构成,params内包含多个参数param,每一个参数param由name,option,value三部分组成。
其中一个(问句,JSON语句)对如图5所示;
对于参数param,有两种类型:
直接参数:value值直接出现在问句中,例如图5中的参数create_time和create_org;
间接参数:value值不直接出现在问句中,例如图5中的参数columns;
对于这两种参数,在指令转换中有各自的处理函数。
关于处理函数,首先,指令转换,为了使用Text2SQL技术,需要将JSON语句转换成SQL语句;其次,构建表,构建规则如下所示:
url→表名
param.name→列名,if param∈直接参数
param.name&param.value→列名,if param∈间接参数
根据图5中的JSON语句,可以构建出如表1所示的表结构:
表1为附图5中JSON对应的数据表:表名:“/api/v2/contract/query/export”
Figure BDA0003039838160000161
具体地,JSON语句转换为SQL语句:
转换规则如下所示:
url→table name
param→(name,option,value),if param∈直接参数
param→(option,name&value),if param∈间接参数
对于直接参数,转换过后参数被放置在条件子句where_clause中;对于间接参数,转换过后的参数被放置在选择子句select_clause中;url被放置在from子句中。根据图5中的JSON语句可以转换成如图6所示的SQL语句。
G.数据整合:
经过从JSON抽取并构建表,可以得到80个表组成的数据库表集合;
经过将JSON语句转换为SQL语句,可以得到新的2312条(问句,SQL语句)对;
将2312条(问句,SQL语句)对和数据库表集合,作为新数据集,用于模型训练,验证和测试。
具体地,实验结果为将2312条(问句,SQL语句)数据进行划分,其中1800个数据对用于训练集,100个数据对用于验证集,412个数据对用于测试集。
表2展示模型使用不同语言预训练模型,以及在使用执行指导和不使用执行指导的情况下,模型在验证集和测试集上逻辑准确率。逻辑准确率指的是预测的SQL语句和标签SQL语句完全一致的比例。
表2不同模型在数据验证集和测试集上的逻辑准确率
模型 语言预训练模型 验证集 测试集
H-Net RoBERTa-wwm-ext,Chinese 84.0 83.5
H-Net RoBERTa-wwm-ext-large,Chinese 85.0 84.7
H-Net+EG RoBERTa-wwm-ext,Chinese 88.0 87.6
H-Net+EG RoBERTa-wwm-ext-large,Chinese 89.0 89.1
参考WikiSQL数据集的评价方式,将SQL语句划分为不同子SQL语句,分别评测模型在每类子SQL语句对应的子任务上的准确率。表3展示模型在每类子任务上,在使用和不使用执行指导的情况下,模型在验证集和测试集上逻辑准确率。
表3不同模型在数据验证集和测试集上每类子任务的逻辑准确率
子任务\模型 H-Net+EG(验证集,测试集) H-Net(验证集,测试集)
S-COL 98.7,98.5 97.9,97.6
S-AGG 98.7,98.5 98.3,98.0
W-COL 98.3,97.9 98.1,97.6
W-OP 99.2,98.8 97.6,96.8
VAL_NUM 98.7,98.5 96.2,95.7
VAL 96.2,96.0 95.7,93.7
O-COL 99.2,98.8 98.9,98.6
O-OR 99.4,99.3 99.2,98.7
Rel 99.8,99.6 99.4,99.1
Link 99.8,99.6 99.4,99.1
Tem 99.8,99.6 99.4,99.1
综合上述实施例,结论如下:
研究利用语言预训练模型和深度学习来进行文本到指令序列的翻译,提出了一种混合排序填充网络模型,该模型可以很好地利用语言预训练模型的特点,并且能处理复杂的SQL语句。在自己构建的文本到指令序列数据集上取得了很好的实验结果,翻译结果的逻辑准确率可以达到89.1%。
JSON序列转换为SQL序列以及JSON语句结构说明:
JSON语句由method,url,params三部分构成,params内包含多个参数param,每一个参数param由name,option,value三部分组成。其中一个(问句,JSON语句)对如图7所示:
对于参数param,有两种类型:
直接参数:value值直接出现在问句中,例如图7中的参数create_time和create_org;
间接参数:value值不直接出现在问句中,例如图7中的参数columns;
对于这两种参数,在指令转换中有各自的处理方式。
具体地,构建表的构建规则如下所示:
url→表名
param.name→列名,if param∈直接参数
param.name&param.value→列名,if param∈间接参数
根据图7中的JSON语句,可以构建出如表1所示的表结构:
表4附图7中JSON对应的数据表表名:“/api/v2/contract/query/export”
create_time create_org columns&contract_name columns&contract_amount
具体地,JSON语句转换为SQL语句;
转换规则如下所示:
url→table name
param→(name,option,value),if param∈直接参数
param→(option,name&value),if param∈间接参数
对于直接参数,转换过后参数被放置在条件子句where_clause中;对于间接参数,转换过后的参数被放置在选择子句select_clause中;url被放置在from子句中。根据图7中的JSON语句可以转换成如图8所示的SQL语句。
创新点a:
第一,将JSON中的参数分为直接参数和间接参数,根据直接参数和间接参数的属性,设计相应的转换规则;
第二,提出了根据JSON语句构建数据表的规则,从而可以从JSON语句中自动构建数据表。
第三,提出了将JSON语句转换为SQL语句的规则,从而可以应用Text2SQL技术实现Text2JSON。
具体地,模板抽取
SQL语句解析
首先为SQL语句定义上下文无关文法,如图9所示;
对于数据集中SQL语句s,用上下文无关文法对其进行解析。对于每一条SQL语句s,都会得到一个SQL语句的语法结构。
例如,对于SQL语句:
select class_type from cource where id>=100order by class_type asc
union
select class_type from cource_opened where id>=100order id desc
利用上下文无关文法进行解析后,会得到如图10所示的SQL语句的语法结构。
关于模板抽取:根据得到的SQL语法结构,进行聚类。对于聚类结果中的每一类,取该类覆盖率最高的SQL语句的语法结构作为一个模板Template,将所有模板记为一个模板集合Τ。
创新点:
根据数据集中的SQL语句,自动生成模板,而不需要人工定义模板。
不同的数据集可以导出不同的模板,泛化能力强。
生成的模板粒度可控,可以根据不同的粒度进行聚类,从而可以数据集的特点,调整生成的模板的粒度。
具体地,模型概述:
模型可以概括为以下五步,第一步,利用语言预训练模型BERT对一个列与问句进行联合编码,用以获取列与问句之间的关系;第二步,选择SQL模板,根据SQL模板,将生成完整的SQL语句任务划分为若干个生成子SQL语句任务;第三步,计算列与问句在不同子SQL语句中的相似度,并对计算的结果进行排序;第四步,针对不同的子SQL语句的生成任务,利用排序结果和其对应的解码方式进行解码,生成子SQL语句。第五步,利用子SQL语句填充SQL模板,生成完整的SQL语句。
创新点b:
第一,引入模板生成层,可以根据训练数据中的SQL语句,抽取出SQL模板,让模型可以根据输入问句不同,选择不同的模板,依据模板进而可以划分出不同的SQL子任务,在此基础上生成结构复杂的SQL语句。
第二,拓展了填充SQL子语句的方法,可以生成复杂的SQL语句。
第三,不需要额外的编码器和解码器,除此之外,也不需要引入额外的中间表示层,这些特点降低了模型复杂度,并且能提高模型泛化能力。
具体地,执行指导与SQL语句剪枝:
在SQL语句的预测阶段,部分生成的SQL语句也可以被执行,可以根据部分生成的SQL语句在数据库上执行结果调整SQL语句的生成,这被称为执行指导。执行指导起到的作用相当于剪枝,限制模型在解空间中的搜索范围,去除不满足要求搜索路径。
以下是本实施方式采用的四种不同的执行指导方式,分别针对不同的子任务:
选择子句执行指导:如算法1所示:
Figure BDA0003039838160000201
条件子句执行指导:如算法2所示:
Figure BDA0003039838160000211
排序子句执行指导:与条件子句执行指导算法类似
结构执行指导:针对集合运算符和连接运算符进行,两者执行指导算法相似,其中针对集合运算符的执行指导算法如算法3所示:
Figure BDA0003039838160000212
创新点c:
第一点,为每一类子SQL语句设计了执行指导算法,在生成子SQL语句时,可以根据执行结果,动态调整子SQL语句的生成。
第二点,选择子句,条件子句和排序子句之间相互独立,每一类子句的执行指导算法互不影响。
第三点,结构执行指导算法考虑了SQL子句间的结构关系,结构执行指导算法根据SQL子句间的结构关系去除冗余SQL子句。
本发明实施例可以根据上述方法示例可根据说明书附图11所示框图进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
具体地,该***所用装置包括处理器、存储器、总线和通信设备;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,所述处理器执行所述存储器存储的所述计算机执行指令,所述的通信设备负责与外界网络连接,进行数据的收发过程;所述处理器与存储器相连,数据存储在计算机可读存储介质中;所述处理器与存储器包含的若干指令用以使得个人计算机或服务器或网络设备执行本方法全部或部分步骤;所述处理器所用类型包括中央处理器、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合;所述存储介质包括U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘。
具体地,上述软件***部分承载于中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。相关人员及用户通信的通信设备则可以利用收发器、收发电路或通信接口等。
(1)硬件环境:处理器Nvidia GPU:显存10G或以上、硬盘空间:20G或以上、内存空间:16G或以上;
(2)软件环境:操作***:Windows,Linux、语言Python:3.6或以上版本、PyTorch:1.7.0或以上版本、Cuda:9.2或以上版本、Numpy:1.14.3或以上版本、Transformers:2.5.1或以上版本、Chinese2digits:4.0.2或以上版本。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
由此可见,本发明只是对方法及***的示例性说明,并不限定它的保护范围,本发明有许多变形和变化而不脱离本发明的精神本领域技术人员还可以对其局部进行改变,只要没有超出本专利的精神实质,都在本发明的保护范围内。

Claims (10)

1.基于语义理解的文本序列到指令序列的在线翻译***,其特征在于:该***包括JSON序列转换、模板生成,在线翻译和SQL后处理四个子***;通过JSON到SQL语句转换和模板抽取完成数据集的构建;通过对文本序列进行编码、在线翻译和SQL语句剪枝完成基于语义理解的从文本序列到指令序列的在线翻译过程;
其中JSON序列转换子***包括构建SQL语句模块和构建数据表模块,负责将JSON格式的指令序列转换成SQL语句,并且根据指令序列构建数据表,用于将SQL初始数据进行整合;
模板生成子***包括模板聚类模块,模板抽取模块,用于指导翻译***生成指令序列;
在线翻译子***包括训练与预测模块,用于完成从文本序列到指令序列的在线翻译过程;
SQL后处理子***包括执行指导模块,SQL语句剪枝模块和指令还原模块,负责去除SQL语句中冗余部分和SQL语句综合处理,并将SQL语句还原成JSON格式的指令序列。
2.基于语义理解的从文本序列到指令序列的在线翻译方法,是根据权利要求1所述的***为基础而实现的,其特征在于:该方法利用所述模板生成子***,通过模板抽取、SQL语句输入表示以及模型建立,定义翻译规则并初始化语句数据;
所述的语句数据包括两部分,其中一部分包含SQL引用数据集中的列的类型、表名、列名、表注释、列注释和连接操作;另一部分引入问句切分成的词序列。
3.根据权利要求2所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:针对在线翻译过程,所述拓展SQL子语句子***和所述指令序列转换子***为方法承载的核心***构件,该方法的具体步骤如下:
步骤一,对输入数据进行编码;
步骤二,通过定义翻译规则建立SQL模型;
步骤三,针对SQL列的计算与结构的子任务划分,完成初始化模板的过程;
步骤四,通过步骤一至三的初始化过程,进而完成所述SQL模型的训练与预测;
步骤五,结合算法将各子句进行指导,以及完成语句剪枝;
步骤六,结合SQL数据库中的SQL数据集完成指令序列转换;
步骤七,通过JSON和SQL数据整合,完成从文本序列到指令序列的在线翻译过程。
4.根据权利要求3所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:在步骤三中,关于列的计算所述的子任务划分,包括列独立任务、列相关任务和结构相关任务;
其中所述列独立任务指预测选择子句的所涉及的列、条件子句中所涉及的列、排序子句中所涉及的列和完整SQL语句中所涉及的列;
所述列相关任务指预测函数运算符、条件操作符、条件对应的值和条件对应值得个数;
所述结构相关任务包括预测集合运算符和连接运算符。
5.根据权利要求4所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:所述的列计算,具体步骤细化为:
步骤三一,分析列与问句相似度进行计算,计算列与问句在不同SQL子句中的相似度,进而判断列在对应的SQL子句中是否出现;
步骤三二,处理列独立任务,具体指对于列无关任务,预测不同SQL子句中所涉及的列从而独立筛选列;
步骤三三,处理列相关任务,具体指预测选择子句中的列对应的函数运算符、条件子句中的列对应的条件操作符、条件子句中的列对应的值;
步骤三四,处理结构相关任务,具体指预测SQL语句的集合运算符和连接运算符,完成结构相关任务。
6.根据权利要求3所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:在步骤四中,包括训练阶段和预测阶段,所述训练阶段首先进行训练输入;其次生成与问句对应的SQL语句标签,最后最小化每一类子任务的交叉熵损失,完成训练目标的优化;所述训练阶段,具体细化步骤如下:
步骤四一,对输入的问句进行编码;
步骤四二,在SQL数据集中选择模板,然后进行SQL语句子任务划分;
步骤四三,分析列与问句相似度进行计算,计算列与问句在不同SQL子句中的相似度,进而判断列在对应的SQL子句中是否出现;
步骤四四,处理列独立任务,具体指对于列无关任务,预测不同SQL子句中所涉及的列从而独立筛选列;
步骤四五,处理列相关任务,具体指预测选择子句中的列对应的函数运算符、条件子句中的列对应的条件操作符、条件子句中的列对应的值;
步骤四六,处理结构相关任务,具体指预测SQL语句的集合运算符和连接运算符,完成结构相关任务。
步骤四七,问句对应的SQL语句标签与步骤四二到步骤四六的处理结果进行对比,计算每一个步骤的交叉熵损失,最后每一个步骤的交叉熵损失,完成训练目标。
7.根据权利要求6所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:
所述预测阶段,具体细化步骤如下:
步骤五一,对输入的问句进行编码;
步骤五二,在SQL数据集中选择模板,然后进行SQL语句子任务划分;
步骤五三,计算列与问句在选择子句中的相似度并排序;通过预测选择子句中的列的数量取前若干列,最后根据计算每个列对应的函数运算符,得到选择子句;
步骤五四,计算列与问句在选择子句中的相似度并排序;通过预测条件子句中的列的数量取前若干列,根据计算每个列对应的条件操作符,得到条件子句:
步骤五五,计算列与问句在选择子句中的相似度并排序;通过预测排序子句中的列的数量取前若干列,最后根据计算每个列对应的排序操作符,得到排序子句;
步骤五六,通过结合步骤五一至步骤五五,预测SQL语句的结构信息,得到集合运算符和连接运算符;
步骤五七,根据上述子句所选择出的列,在SQL数据集中检索出该列所对应的表,得到from子句;
步骤五八,根据步骤五五检索出的表的链接,以及表之间的外键和主键的关系,找到表之间的最短路径,将最短路径上的表之间的连接条件加入到条件子句中;
经过上述步骤,得到不同SQL的子句并根据SQL子句类型,将SQL子句填充到模板中对应的位置,最后得到完整的SQL语句。
8.根据权利要求7所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:在步骤五中,所述执行指导判断与SQL语句剪枝过程,包括在SQL语句的预测阶段,执行部分生成的SQL语句,根据部分生成的SQL语句在SQL数据集上执行结果调整SQL语句的生成,进而完成SQL语句剪枝,限制模型在解空间中的搜索范围,去除不满足要求搜索路径;所述的搜索路径,采用四种执行指导方式,包括选择子句执行指导、条件子句执行指导、排序子句执行指导和结构执行指导。
9.根据权利要求8所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:在步骤六中,所述指令序列转换指转换为JSON语句格式,所述数据集中的问句类型为基于条件查询匹配的答案检索。
10.根据权利要求9所述的基于语义理解的从文本序列到指令序列的在线翻译方法,其特征在于:经过从JSON语句抽取并构建表得到至少80个表组成的数据库表集合,同时,通过所述数据整合模块将JSON语句转换为SQL语句作为新数据集,用于模型训练,验证和测试。
CN202110453842.2A 2021-04-26 2021-04-26 基于语义理解的从文本序列到指令序列的在线翻译***及方法 Pending CN113515955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110453842.2A CN113515955A (zh) 2021-04-26 2021-04-26 基于语义理解的从文本序列到指令序列的在线翻译***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110453842.2A CN113515955A (zh) 2021-04-26 2021-04-26 基于语义理解的从文本序列到指令序列的在线翻译***及方法

Publications (1)

Publication Number Publication Date
CN113515955A true CN113515955A (zh) 2021-10-19

Family

ID=78063496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110453842.2A Pending CN113515955A (zh) 2021-04-26 2021-04-26 基于语义理解的从文本序列到指令序列的在线翻译***及方法

Country Status (1)

Country Link
CN (1) CN113515955A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640499A (zh) * 2022-02-11 2022-06-17 深圳昂楷科技有限公司 一种对用户行为进行异常识别的方法及其装置
CN117034968A (zh) * 2023-10-10 2023-11-10 中国科学院自动化研究所 神经机器翻译方法、装置、电子设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292242A1 (en) * 2015-04-06 2016-10-06 Adp, Llc Automatic verification of json data
CN110888897A (zh) * 2019-11-12 2020-03-17 杭州世平信息科技有限公司 一种根据自然语言生成sql语句的方法及装置
CN111104423A (zh) * 2019-12-18 2020-05-05 北京百度网讯科技有限公司 Sql语句生成方法、装置、电子设备和存储介质
US20200210524A1 (en) * 2018-12-28 2020-07-02 Microsoft Technology Licensing, Llc Analytical processing system supporting natural language analytic questions
CN111414380A (zh) * 2020-03-20 2020-07-14 华泰证券股份有限公司 一种中文数据库sql语句生成方法、设备及存储介质
US20200334252A1 (en) * 2019-04-18 2020-10-22 Sap Se Clause-wise text-to-sql generation
US20200334233A1 (en) * 2019-04-18 2020-10-22 Sap Se One-shot learning for text-to-sql

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160292242A1 (en) * 2015-04-06 2016-10-06 Adp, Llc Automatic verification of json data
US20200210524A1 (en) * 2018-12-28 2020-07-02 Microsoft Technology Licensing, Llc Analytical processing system supporting natural language analytic questions
US20200334252A1 (en) * 2019-04-18 2020-10-22 Sap Se Clause-wise text-to-sql generation
US20200334233A1 (en) * 2019-04-18 2020-10-22 Sap Se One-shot learning for text-to-sql
CN110888897A (zh) * 2019-11-12 2020-03-17 杭州世平信息科技有限公司 一种根据自然语言生成sql语句的方法及装置
CN111104423A (zh) * 2019-12-18 2020-05-05 北京百度网讯科技有限公司 Sql语句生成方法、装置、电子设备和存储介质
CN111414380A (zh) * 2020-03-20 2020-07-14 华泰证券股份有限公司 一种中文数据库sql语句生成方法、设备及存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
QIN LYU等: "Hybrid Ranking Network for Text-to-SQL", ARXIV PREPRINT ARXIV, pages 1 - 12 *
XIAOJUN XU等: "SQLNet: GENERATING STRUCTURED QUERIES FROM NATURAL LANGUAGE WITHOUT REINFORCEMENT LEARNING", ARXIV PREPRINT ARXIV, pages 1 - 13 *
卫凤林: "SQL 标准对JSON 的支持性研究", 标准化研究, pages 68 - 71 *
张俊驰;胡婕;刘梦赤;: "基于复述的中文自然语言接口", 计算机应用, no. 05, pages 1290 - 1301 *
曹金超;黄滔;陈刚;吴晓凡;陈珂;: "自然语言生成多表SQL查询语句技术研究", 计算机科学与探索, no. 07, pages 57 - 65 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640499A (zh) * 2022-02-11 2022-06-17 深圳昂楷科技有限公司 一种对用户行为进行异常识别的方法及其装置
CN117034968A (zh) * 2023-10-10 2023-11-10 中国科学院自动化研究所 神经机器翻译方法、装置、电子设备及介质
CN117034968B (zh) * 2023-10-10 2024-02-02 中国科学院自动化研究所 神经机器翻译方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
CN109145294B (zh) 文本实体识别方法及装置、电子设备、存储介质
Chen et al. Semantically conditioned dialog response generation via hierarchical disentangled self-attention
CN109408526B (zh) Sql语句生成方法、装置、计算机设备及存储介质
CN109214003B (zh) 基于多层注意力机制的循环神经网络生成标题的方法
CN103189860B (zh) 组合句法转换模型与词汇转换模型的机器翻译装置和机器翻译方法
CN113239700A (zh) 改进bert的文本语义匹配设备、***、方法及存储介质
CN111858932A (zh) 基于Transformer的多重特征中英文情感分类方法及***
CN111832293B (zh) 基于头实体预测的实体和关系联合抽取方法
CN109857846B (zh) 用户问句与知识点的匹配方法和装置
CN111611814B (zh) 一种基于相似度感知的神经机器翻译方法
CN110717341B (zh) 一种以泰语为枢轴的老-汉双语语料库构建方法及装置
CN116991869A (zh) 一种基于nlp语言模型自动生成数据库查询语句的方法
CN113515955A (zh) 基于语义理解的从文本序列到指令序列的在线翻译***及方法
CN114091450B (zh) 一种基于图卷积网络的司法领域关系抽取方法和***
CN110874535B (zh) 依存关系对齐组件、依存关系对齐训练方法、设备及介质
CN112966097A (zh) 一种基于nlp的上市公司财务快讯自动生成方法及***
CN114818717A (zh) 融合词汇和句法信息的中文命名实体识别方法及***
CN114168754A (zh) 一种基于句法依赖和融合信息的关系抽取方法
CN113779062A (zh) Sql语句生成方法、装置、存储介质及电子设备
CN110929476B (zh) 一种基于混合粒度注意力机制的任务型多轮对话模型构建方法
CN116910086A (zh) 一种基于自注意力句法感知的数据库查询方法和***
CN114218921A (zh) 一种优化bert的问题语义匹配方法
CN111382333B (zh) 基于案件相关性联合学习与图卷积的新闻文本句中案件要素抽取方法
CN117349311A (zh) 一种基于改进RetNet的数据库自然语言查询方法
CN115408506B (zh) 联合语义解析和语义成分匹配的nl2sql的方法

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211019