CN114020768A - 中文自然语言的sql语句生成模型的构建方法及应用 - Google Patents
中文自然语言的sql语句生成模型的构建方法及应用 Download PDFInfo
- Publication number
- CN114020768A CN114020768A CN202111191677.4A CN202111191677A CN114020768A CN 114020768 A CN114020768 A CN 114020768A CN 202111191677 A CN202111191677 A CN 202111191677A CN 114020768 A CN114020768 A CN 114020768A
- Authority
- CN
- China
- Prior art keywords
- natural language
- word segmentation
- chinese natural
- data
- vertex
- 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.)
- Granted
Links
- 238000010276 construction Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000012549 training Methods 0.000 claims abstract description 21
- 230000011218 segmentation Effects 0.000 claims description 202
- 239000013598 vector Substances 0.000 claims description 72
- 230000009466 transformation Effects 0.000 claims description 24
- 239000002131 composite material Substances 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 19
- 230000004927 fusion Effects 0.000 claims description 18
- 239000013604 expression vector Substances 0.000 claims description 16
- 238000010606 normalization Methods 0.000 claims description 13
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000000126 substance Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种中文自然语言的SQL语句生成模型的构建方法及应用,包括:S1、搭建SQL语句生成模型;S2、将采集到训练集中的中文自然语言问题和相关数据库模式作为输入,对应的正确SQL语句作为输出,通过最小化SQL语句生成模型生成的SQL语句与正确SQL语句之间的差异,训练SQL语句生成模型。本发明通过结合不同数据列的类型信息,捕捉中文自然语言问题与数据库模式之间的对齐关系、隐含的指代关系,并通过有向图的方式对数据库模式显式定义的关系和自然语言问题与数据库模式间的链接关系进行了表示;并通过综合考虑非结构化数据和结构化数据之间的特点,将语义特征和关系特征结合起来联合编码,大大提高了SQL语句生成模型的准确率。
Description
技术领域
本发明属于自然语言处理的语义解析技术领域,更具体地,涉及一种中文自然语言的SQL语句生成模型的构建方法及应用。
背景技术
随着数据库技术、信息技术的高速发展,在各行各业,每时每刻都在产生海量的数字化数据,数据之间可能是彼此独立的,也可能存在一定的依赖关系。因此为了方便数据的查询和更新、统一进行管理和维护,这些数据通常结构化存储于数据库中,从数据库中检索符合特定要求的数据就需要用到统一数据库查询语言SQL。结构化的数据库查询语言SQL有严格的语法约束,对于不具备数据库和SQL相关知识的非专业用户,有一定的学习和使用门槛。随着近年来深度学习技术和自然语言技术发展,通过自然语言直接进行数据库查询以实现更便捷、高效的检索信息方式得到了人们的广泛关注。
早期的研究是针对特定领域的数据库通过人工制定规则的方法实现,不具备通用性,且需要大量人力维护成本。为了解决上述问题,近年来,复杂的SQL生成方法大多使用相对独立的编码方法分别对自然语言和数据库模式编码,很少考虑已有的数据库模式与用户提问之间的联系,忽略了自然语言和数据库模式之间的联系,模型的准确率较低。另外,在实际场景中,数据库中的数据表和数据列往往十分复杂,常出现不同表中同名数据列的情况,容易存在歧义,但目前的研究很少考虑该问题,在最终生成SQL语句时,多数研究直接将特征向量解码为SQL语句,忽略了复杂SQL语句的语法规则。因此直接解码过程常因语法约束的复杂性导致准确率较低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种中文自然语言的SQL语句生成模型的构建方法及应用,用以解决现有技术生成SQL语句的准确率较低的技术问题。
为了实现上述目的,第一方面,本发明提供了一种中文自然语言的SQL语句生成模型的构建方法,包括以下步骤:
S1、搭建SQL语句生成模型;其中,SQL语句生成模型包括:
分词拼接模块,用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名进行分词操作后,结合数据列类型信息进行拼接,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量,并输出至语义编码模块中;
语义编码模块,用于采用自然语言预训练模型提取融合表示向量中的语义特征,得到中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量,构成联合编码张量后,输出至关系编码模块中;
关系表示模块,用于将数据库模式中已定义的关系以及自然语言问题与数据库模式之间的链接关系表示为关系有向图;其中,关系有向图中的顶点包括数据表命名、数据列命名和中文自然语言问题的分词结果;关系有向图中的边表示顶点间所存在的关系,包括顶点间存在的数据库定义关系、以及中文自然语言问题的分词结果与数据表命名或数据列命名之间的同义和相关关系,并输出至关系编码模块中;
关系编码模块,用于对联合编码张量和关系有向图的对齐关系进行联合编码,提取联合编码张量和关系有向图中的关系特征,得到关系编码张量,并输出至SQL解码模块;
SOL解码模块,用于基于语法树结构将关系编码张量解码成SQL语句;
S2、将采集到训练集中的中文自然语言问题和相关数据库模式作为输入,对应的正确SQL语句作为输出,通过最小化SQL语句生成模型生成的SQL语句与正确SQL语句之间的差异,训练SQL语句生成模型。
进一步优选地,上述分词拼接模块用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名中的停用词和标点符号进行过滤后,进行分词操作,并恢复中文自然语言问题中出现的误分词项,得到中文自然语言问题及相关数据库模式中的数据表命名和数据列命名的分词结果后进行拼接,并在拼接的过程中对每个数据列命名的分词结果连接上其对应的数据列类型信息,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量;
其中,误分词项包括***数字、单位符号、算术表达式和英文单词;数据列类型信息包括数字类型、时间日期类型和文本类型。
进一步优选地,上述语义编码模块采用多语言的BERT预训练模型提取融合表示向量中的语义特征。
进一步优选地,记关系有向图中的任意两个不同的顶点为顶点A和顶点B,当顶点A和顶点B均为数据列命名时,上述顶点间存在的数据库定义关系包括:顶点A和顶点B属于同一张数据表、顶点A外键关联顶点B和顶点B外键关联顶点A;
当顶点A为数据列命名、顶点B为数据表命名时,上述顶点间存在的数据库定义关系包括:顶点A是顶点B的主键和顶点A是顶点B的列,但不是顶点B的主键;
当顶点A为数据表命名、顶点B为数据列命名时,上述顶点间存在的数据库定义关系包括:顶点B是顶点A的主键和顶点B是顶点A的列,但不是顶点A的主键;
当顶点A为数据表命名、顶点B为数据表命名时,上述顶点间存在的数据库定义关系包括:顶点A中有一个列外键关联顶点B、顶点B中有一个列外键关联顶点A和顶点A和顶点B互相外键关联。
进一步优选地,自然语言问题与数据库模式之间的链接关系包括:中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系,以及中文自然语言问题的分词结果与数据库模式中的数据值的链接关系;
其中,中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系包括:匹配优先级从高到低的TEM_S、TEM_R、TPM_S、TPM_R、CEM_S、CEM_R、CPM_S和CPM_R;
TEM_S表示中文自然语言问题的分词结果与数据表名同义且完全匹配;TEM_R表示中文自然语言问题的分词结果与数据表名相关且完全匹配;TPM_S中文自然语言问题的分词结果与数据表名同义且部分匹配;TPM_R表示中文自然语言问题的分词结果与数据表名相关且部分匹配;CEM_S表示中文自然语言问题的分词结果与数据列名同义且完全匹配;CEM_R表示中文自然语言问题的分词结果与数据列名相关且完全匹配;CPM_S表示中文自然语言问题的分词结果与数据列名同义且部分匹配;CPM_R表示中文自然语言问题的分词结果与数据列名相关且部分匹配;
中文自然语言问题的分词结果与数据库模式中的数据值的链接关系包括:匹配优先级从高到低的VEM和VRM;
VEM表示中文自然语言问题的分词结果出现在数据列中;VRM表示中文自然语言问题的分词结果与数据列名相关。
进一步优选地,分别将中文自然语言问题的分词结果与分词后的数据表名进行n-gram匹配,得到中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系;
分别对中文自然语言问题的分词结果,判断其是否存在于数据库中相同类型的列所存储的数据值中,以将中文自然语言问题的分词结果与数据库中相同类型的列所存储的数据值进行链接;并当中文自然语言问题的分词结果未出现在数据列中时,采用知识图谱ConceptNet对中文自然语言问题的分词结果与数据列名进行链接,从而得到中文自然语言问题的分词结果与数据库模式中的数据值的链接关系。
进一步优选地,关系编码模块包括:依次级联的位置编码单元、多头注意力单元、第一加和归一化单元、前馈神经网络和第二加和归一化单元;
位置编码单元用于对联合编码张量中的中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量进行位置编码,得到各分词结果的位置编码向量后,与对应的语义编码向量相加,得到各分词结果的复合语义编码向量,并输出至多头注意力单元中;
多头注意力单元包括多个注意力子单元,注意力子单元用于对第i个分词结果的复合语义编码向量进行第一线性变换、对第j个分词结果的复合语义编码向量分别进行第二线性变换和第三线性变换,并在第二线性变换和第三线性变换中分别引入第i个分词结果和第j个分词结果在关系有向图中的链接关系作为偏置,分别得到查询向量、键向量和值向量,并结合注意力机制得到第i个分词结果和第j个分词结果之间的注意力值,其中,j=1,2,…,n,n为分词结果的个数;将所得注意力值进行加和,得到第i个分词结果的注意力值;多头注意力单元用于将各注意力子单元所得的第i个分词结果的注意力值进行拼接后进行维度转换,使其维度与第i个分词结果的复合语义编码向量的维度相同,得到第i个分词结果的多头注意力值;
第一加和归一化单元将第i个分词结果的多头注意力值与第i个分词结果的复合语义编码向量相加后进行归一化后,输入到前馈神经网络中进行处理;
第二加和归一化单元将前馈神经网络所得的结果与第一加和归一化单元所得的结果进行相加,得到第i个分词结果的关系编码向量;其中,i=1,2,…,n。
第二方面,本发明提出了一种中文自然语言的SQL语句生成方法,包括:将中文自然语言问题及相关数据库模式输入到采用上述中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句。
第三方面,本发明提出了一种基于中文自然语言的数据库检索方法,包括:将中文自然语言问题及相关数据库模式输入到采用上述中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句后,由数据库执行引擎执行SQL语句进行信息检索。
第四方面,本发明还提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述中文自然语言的SQL语句生成模型的构建方法、上述中文自然语言的SQL语句生成方法和上述基于中文自然语言的数据库检索方法中的一种或多种方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
1、本发明提供了一种中文自然语言的SQL语句生成模型的构建方法,结合不同数据列的类型信息,捕捉中文自然语言问题与数据库模式之间的对齐关系、隐含的指代关系,并通过有向图的方式对数据库模式显式定义的关系和自然语言问题与数据库模式间的链接关系进行了表示;本发明在模型的构建过程中考虑到了自然语言和数据库模式之间的联系,并合理、有效地将中文自然语言问题与数据库模式之间的关系表示了出来,通过综合考虑非结构化数据和结构化数据之间的特点,将语义特征和关系特征结合起来联合编码,大大提高了SQL语句生成模型的准确率。
2、本发明所提供的中文自然语言的SQL语句生成模型的构建方法,提供了一种中文自然语言问题和英文数据库模式的跨语言语义编码表示方法;首先采用多语言的BERT预训练模型提取融合表示向量中的语义特征;其次,对于自然语言问题与数据库模式间的链接关系,将其分为数据表和数据列的链接、数据值的链接两大类,前者在链接时利用n-gram统计语言模型对分词后的各个数据表名和数据列名进行链接,用到ConceptNet常识语义网络中的同义、相关等关系边,来帮助模型解决跨语言的问题并通过常识来增强关系判断;后者在链接时分为直接在数据库有关数据列中检索数据值、利用ConceptNet的相关关系边两种方式进行链接。在链接过程中给不同途径链接得到的关系分配不同的关系标签,在训练中给不同途径获得的信息不同的重要程度权重,大大提高了中文自然语言的SQL语句生成模型的准确度,解决了中文自然语言问题与英文数据库模式之间的跨语言语义编码障碍。
3、本发明所提供的中文自然语言的SQL语句生成模型的构建方法,细化了自然语言生成SQL语句的流程,在进行语义编码和关系表示的基础上,基于多头注意力机制进行关系编码,编码过程中对有向图中的不同关系标签训练不同的注意力偏置权重,得到自然语言问题、数据库模式之间的关系向量输出,提高了模型的准确度。
4、本发明所提供的中文自然语言的SQL语句生成模型的构建方法,通过语法树的解码方法,按照深度优先顺序生成SQL语句,将解码过程分为生成语法关键字和生成数据库模式两类,根据当前结点类型、父结点类型来决定可能出现的候选项,再经过LSTM计算概率分布,选取概率值最高的候选项。这种解码方式符合SQL语句结构和结构化数据的特点,能规避语法错误,支持生成包括表连接、嵌套查询在内的复杂结构的SQL语句,模型的准确度较高。
附图说明
图1为本发明实施例1提供的中文自然语言的SQL语句生成模型的构建方法流程图;
图2为本发明实施例1提供的语义编码流程示意图;
图3为本发明实施例1提供的自然语言问题的分词过程示意图;
图4为本发明实施例1提供的数据表和数据列的分词过程示意图;
图5为本发明实施例1提供的模式链接的详细实例图;
图6为本发明实施例1提供的模式链接结果示意图;
图7为本发明实施例1提供的关系编码模块中的关系编码过程示意图;
图8为本发明实施例1提供的注意力计算过程示意图;
图9为本发明实施例1提供的基于语法树的SQL语句解码过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1、
一种中文自然语言的SQL语句生成模型的构建方法,如图1所示,包括以下步骤:
S1、搭建SQL语句生成模型;其中,SQL语句生成模型包括:分词拼接模块、语义编码模块、关系表示模块、关系编码模块和SOL解码模块。
分词拼接模块:
分词拼接模块用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名进行分词操作后,结合数据列类型信息进行拼接,拼接数据列类型信息能在编码过程中添加上列类型信息,更详细地表达出该列的性质,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量,并输出至语义编码模块中;
具体地,上述分词拼接模块用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名中的中英文无意义的停用词和标点符号进行过滤后,进行分词操作,并恢复中文自然语言问题中出现的误分词项,得到中文自然语言问题及相关数据库模式中的数据表命名和数据列命名的分词结果后进行拼接,并在拼接的过程中对每个数据列命名的分词结果连接上其对应的数据列类型信息,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量;其中,误分词项包括***数字、单位符号、算术表达式和英文单词;数据列类型信息包括数字类型、时间日期类型和文本类型。
如图2所示,本实施例中,记自然语言问题为Qorigin,经过分词处理后得到子串,经分词处理后的自然语言问题为Q=(q1,q2,...,q|Q|);其中,|Q|为自然语言问题经分词处理后所得字或词的个数;
对于相关数据库模式中的数据表命名Torigin和数据列命名Corigin,是由带下划线分词符的英文组成的,根据下划线进行分词,得到经过分词处理后的数据表名T=(t1,t2,...,t|T|),以及经过分词处理后的数据列名C=(c1,c2,...,c|C|);其中,|T|为数据表名经分词处理后所得单词的个数;|C|为数据列名经分词处理后所得单词的个数。具体地,在一种可选实施方式下,如图3所示,使用目前精度较高的中文分词工具Jieba。Jieba分词工具能够对中文自然语言问题进行处理,返回概率最大的分词组合,但由于自然语言问题中除了汉字以外,还常包含***数字、单位符号、标点符号等,因此对Jieba分词工具的输出需将上述情况分隔的子串进行组合,保持其原意不被修改。对于数据库的列名和表名,结合工程实践的需求,是由带下划线分词符的英文组成的,因此如图4所示,以下划线作为分隔符进行分词。
完成分词工作后,将得到的自然语言问题、数据表以及数据列拼接起来,同时对每个数据列连接上其对应的类型,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量其中,表示第i个数据列的类型,数据列的类型包括数字类型(包括整数和浮点数)、时间日期类型和文本类型。
语义编码模块:
语义编码模块用于采用自然语言预训练模型提取融合表示向量中的语义特征,该语义特征以语义向量的形式体现,是对中文自然语言问题和数据表、数据列命名的联合编码,最后得到中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量,构成联合编码张量后,输出至关系编码模块中;
具体地,为了捕捉用户提出的自然语言问题与数据库模式之间的对齐关系,需要对它们同时进行语义编码;融合表示向量X由中文和英文两种语言构成,本实施例采用多语言的BERT预训练模型(Multilingual-Bert)进行编码。
经过分词、数据拼接后,得到适合语义编码的序列;BERT模型的输入需要再拼接上特殊符号[CLS]和[SEP],故拼接上特殊符号[CLS]和[SEP],得到输入到多语言的BERT预训练模型中,得到中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量后,构成联合编码张量Xbert。
关系表示模块:
关系表示模块用于将数据库模式中已定义的关系以及自然语言问题与数据库模式之间的链接关系表示为关系有向图;其中,关系有向图中的顶点包括数据表命名、数据列命名和中文自然语言问题的分词结果;关系有向图中的边表示顶点间所存在的关系,包括顶点间存在的数据库定义关系、以及中文自然语言问题的分词结果与数据表命名或数据列命名之间的同义和相关关系,并输出至关系编码模块中;
其中,上述关系表示包括数据库模式关系表示和模式链接;
1)数据库模式关系:
在数据库模式中存在大量已知的关系,这些关系在数据表和数据列定义时就显式指定。数据库模式中的关系符合有向图的定义,以数据表和数据列作为顶点,边表示两顶点之间的关系。具体地,用有向图的方式构建相关数据库模式的关系表示,有向图中,顶点包括数据表名和数据列名,边是顶点间存在的数据库定义关系。
具体地,如表1所示为数据库模式关系有向图中的关系标签类型,其中,记关系有向图中的任意两个不同的顶点为顶点A和顶点B,当顶点A和顶点B均为数据列命名时,上述顶点间存在的数据库定义关系包括:顶点A和顶点B属于同一张数据表、顶点A外键关联顶点B和顶点B外键关联顶点A;
当顶点A为数据列命名、顶点B为数据表命名时,上述顶点间存在的数据库定义关系包括:顶点A是顶点B的主键和顶点A是顶点B的列,但不是顶点B的主键;
当顶点A为数据表命名、顶点B为数据列命名时,上述顶点间存在的数据库定义关系包括:顶点B是顶点A的主键和顶点B是顶点A的列,但不是顶点A的主键;
当顶点A为数据表命名、顶点B为数据表命名时,上述顶点间存在的数据库定义关系包括:顶点A中有一个列外键关联顶点B、顶点B中有一个列外键关联顶点A和顶点A和顶点B互相外键关联。
表1
2)模式链接:
模式链接用于发现中文自然语言问题和相关数据库模式之间的对齐关系,综合利用字符串匹配、统计语言模型、语义网络、常识网络的方法,得到跨语言的词和短语之间的同义和相关关系,用有向图表示,以发现自然语言问题中所提及的数据表、数据列或数据值信息;有向图的顶点包括自然语言问题中的词和数据表、数据列和数据值。模式链接融合自然语言问题和数据库模式之间的文本特征、数值特征、语义特征以及常识特征关系,并在所述的有向图中给不同的特征关系分配不同的关系标签。具体地,模式链接包括中文自然语言问题的分词结果(字、词或短语)与数据库模式中的数据表和数据列的链接关系,以及中文自然语言问题的分词结果(字、词或短语)与数据库模式中的数据值的链接关系;模式链接是链接自然语言问题中的分词结果与数据库模式中的数据表、数据列或数据值的过程,发现提问者需要查询的目标表和目标列并发现组成SQL语句的约束条件。
表2为数据表名和数据列名链接的关系标签类型;其中,中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系包括:匹配优先级从高到低的TEM_S、TEM_R、TPM_S、TPM_R、CEM_S、CEM_R、CPM_S和CPM_R;
TEM_S表示中文自然语言问题的分词结果与数据表名同义且完全匹配;TEM_R表示中文自然语言问题的分词结果与数据表名相关且完全匹配;TPM_S中文自然语言问题的分词结果与数据表名同义且部分匹配;TPM_R表示中文自然语言问题的分词结果与数据表名相关且部分匹配;CEM_S表示中文自然语言问题的分词结果与数据列名同义且完全匹配;CEM_R表示中文自然语言问题的分词结果与数据列名相关且完全匹配;CPM_S表示中文自然语言问题的分词结果与数据列名同义且部分匹配;CPM_R表示中文自然语言问题的分词结果与数据列名相关且部分匹配;
表2
关系标签 | 描述 |
TEM_S | 与表名同义且完全匹配 |
TEM_R | 与表名相关且完全匹配 |
TPM_S | 与表名同义且部分匹配 |
TPM_R | 与表名相关且部分匹配 |
CEM_S | 与列名同义且完全匹配 |
CEM_R | 与列名相关且完全匹配 |
CPM_S | 与列名同义且部分匹配 |
CPM_R | 与列名相关且部分匹配 |
本实施例中,分别将中文自然语言问题的分词结果与分词后的数据表名进行n-gram匹配,得到中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系;n-gram算法基于统计语言模型,通过滑动窗口的方法对数据表名或数据列名进行滑窗得到长度为m的片段序列,然后这些序列分别与中文自然语言问题的分词结果进行匹配。在进行匹配时,匹配优先级为:同义完全匹配>相关完全匹配>同义部分匹配>相关部分匹配。
表3为数据值链接的关系标签类型;其中,中文自然语言问题的分词结果与数据库模式中的数据值的链接关系包括:匹配优先级从高到低的VEM和VRM;
VEM表示中文自然语言问题的分词结果出现在数据列中;VRM表示中文自然语言问题的分词结果与数据列名相关。
表3
关系标签 | 描述 |
VEM | 值出现在数据列中 |
VRM | 值与数据列名相关 |
分别对中文自然语言问题的分词结果,判断其是否存在于数据库中相同类型的列所存储的数据值中,以将中文自然语言问题的分词结果与数据库中相同类型的列所存储的数据值进行链接;并当中文自然语言问题的分词结果未出现在数据列中时,采用知识图谱ConceptNet对中文自然语言问题的分词结果与数据列名进行链接,从而得到中文自然语言问题的分词结果与数据库模式中的数据值的链接关系。
具体地,在进行关系标签为VEM的链接时,首先根据自然语言问题中字或词的类型选择出与之相同的数据列,类型包括数字型number、日期型date和文本型text,然后检查该词是否作为数据值出现在数据列中,如果出现则将自然语言问题中对应的字或词与出现的数据列之间用VEM关系标签链接。
在进行关系标签为VRM的链接时,由于链接的对象分别是中文的字或词与英文的数据列名,因此在ConceptNet中允许两条关系边的链接,其中一条为同义关系边,另一条为相关关系边。根据关系边得到相关联的词,与数据列进行链接,VRM链接要求关联词与数据列完全匹配。
如图5所示,在一个完整的自然语言问题、相关数据库模式、对应SQL语句的实施例中,自然语言问题和相关数据库模式已经过分词模块处理。其中“部门”一词与数据库模式中的数据表名department_head的分词后结果department相关联,该表出现在生成SQL的FROM子句中,说明提问者提出的问题答案需要在department_head这张数据表中检索;“年龄”一词与数据库模式中department_head数据表下的age数据列相关联,该列出现在WHERE子句中作为限制条件的列;“56”(绿色标出)属于整型数值,符合department_head数据表中head_ID和age这两个数据列的数据类型,此外根据数据值匹配和常识网络判断,与age数据列相关联,因此该值作为WHERE子句中age的限制值出现。如图6是该示例的模式链接结果,其中椭圆框表示自然语言问题中的词,矩形框表示数据库模式的名称。
关系编码模块:
关系编码模块用于对联合编码张量和关系有向图的对齐关系进行联合编码,提取联合编码张量和关系有向图中的关系特征,得到关系编码张量,并输出至SQL解码模块;具体地,关系编码提取联合编码张量中语义编码向量和关系有向图中的关系特征,关系特征以关系向量的形式体现,是对语义编码向量、数据库模式关系、中文自然语言问题和相关数据库模式的对齐关系的联合编码。
其中,关系编码模块基于改进的Transformer模型实现,如图7所示,Xbert为关系编码模块的输入,进行位置编码后计算多头注意力,进行加和与层归一化后输入到一个前馈神经网络中,最后再经加和与层归一化得到关系编码的输出Xencode。
具体地,关系编码模块包括:依次级联的位置编码单元、多头注意力单元、第一加和归一化单元、前馈神经网络和第二加和归一化单元;
位置编码单元用于对联合编码张量中的中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量进行位置编码,得到各分词结果的位置编码向量后,与对应的语义编码向量相加,得到各分词结果的复合语义编码向量,并输出至多头注意力单元中;
具体地,本实施例中,第i个分词结果的位置编码向量为:
其中,k=0,1,…,d/2;d为第i个分词结果的语义编码向量的维度;dmodel为常数,即预设的注意力机制中K、Q、V的维度,本实施例中取值为10000。
第i个分词结果的复合语义编码向量为:xpos,i=Pi+xbert,i;其中,xbert,i为联合编码张量Xbert中第i个分词结果的语义编码向量;其中,i=1,2,…,n;n为分词结果的个数。
多头注意力单元包括多个注意力子单元,第h个注意力子单元用于对第i个分词结果的复合语义编码向量进行第一线性变换、对第j个分词结果的复合语义编码向量分别进行第二线性变换和第三线性变换,并在第二线性变换和第三线性变换中分别引入第i个分词结果和第j个分词结果在关系有向图中的链接关系作为偏置,分别得到查询向量、键向量和值向量,并结合注意力机制得到第i个分词结果和第j个分词结果之间的注意力值,其中,j=1,2,…,n,n为分词结果的个数;将所得注意力值进行加和,得到第i个分词结果的注意力值;多头注意力单元用于将各注意力子单元所得的第i个分词结果的注意力值进行拼接后进行维度转换,使其维度与第i个分词结果的复合语义编码向量的维度相同,得到第i个分词结果的多头注意力值;
具体地,Transformer的核心是多头注意力机制,多头注意力由多个独立的注意力层组成,这些层的输出共同组成最终的注意力输出,用于对输入中的关键信息给予更多“关注”。本发明中定义第i个分词结果和第j个分词结果之间的关系向量为rij,其由多个关系向量αij拼接而成;具体为:其中,R为关系有向图中关系标签类型的数量,本实施例中取值为20,每一种关系标签类型均采用一个对应的向量表示;当第i个分词结果和第j个分词结果之间不存在关系时,αij用相应维度的0向量代替。
通过第h个注意力子单元对第i个分词结果的复合语义编码向量进行第二线性变换,并在第二线性变换引入第i个分词结果和第j个分词结果在关系有向图中的链接关系作为偏置所得的键向量为:其中,为第h个注意力子单元中第二线性变换的系数矩阵;为第i个分词结果和第j个分词结果之间的关系向量维度变换到与相同维度后的结果。
通过第h个注意力子单元对第i个分词结果的复合语义编码向量进行第三线性变换,并在第三线性变换引入第i个分词结果和第j个分词结果在关系有向图中的链接关系作为偏置所得的键向量为:其中,为第h个注意力子单元中第三线性变换的系数矩阵;为第i个分词结果和第j个分词结果之间的关系向量维度变换到与相同维度后的结果。
本实施例中第i个分词结果和第j个分词结果之间的注意力值采用点积注意力计算得到,具体为:其中,H为注意力子单元的个数,即多头注意力的头数;dmodel/H为键向量的维度;与点积除以是为了让梯度更加稳定。进一步地,第i个分词结果的注意力值为:
需要说明的是,注意力的思想是将一个查询映射到一组键值对上;如图8所示,计算方法流程如下:首先计算查询与每个键的相关性得到对值的权重;然后将权重进行softmax归一化处理得到每个值的权重系数;最后将值与对应权重系数相乘累加后得到注意力计算结果。通过注意力机制中对关系有向图中的不同关系标签给予了不同的注意力偏置,从而计算得到代表关系特征的关系向量。
第一加和归一化单元将第i个分词结果的多头注意力值与第i个分词结果的复合语义编码向量相加后进行归一化后,输入到前馈神经网络中进行处理;
在完成多头注意力的计算后,将多头注意力结果输入到第一加和归一化单元中,与第i个分词结果的复合语义编码向量相加后进行归一化得到yi=LayerNorm(xpos,i+Oi)。
将yi输入至前馈神经网络中,在前馈神经网络中,yi经过线性层后经ReLU激活函数处理,再经过一线性层得到输出zi;具体为:zi=Linear(ReLU(Linear(yi)))。
第二加和归一化单元将前馈神经网络所得的结果与第一加和归一化单元所得的结果进行相加,得到第i个分词结果的关系编码向量,具体为:Xi=LayerNorm(yi+zi)。
SOL解码模块:
SOL解码模块用于基于语法树结构将关系编码张量解码成SQL语句;
具体地,SQL解码是由关系编码张量Xencode生成SQL语句的过程。SQL的语法是树形结构,因此使用基于语法树的解码方式。SOL解码模块利用语法树结构将关系编码张量解码成SQL语句;语法树结构的特征是按照SQL语法规则,从根节点root开始以深度优先顺序生成结点序列,融合上一时刻的特征、父结点特征、上下文特征、结点类型特征,最大化自然语言问题所对应正确SQL语句的概率值;其中,结点的类型包括对SQL关键字和结束符的生成以及对数据表名或数据列名的生成。
语法树的根节点为root,按照深度优先的顺序生成结点,生成的结点可能有两大类:(1)生成SQL语法关键字或结束符,称为GenGrammar;(2)生成数据表名、数据列名,分别称为GenTable和GenCol。每个结点的后继结点可能的类型由SQL语法决定,在解码时,通过长短期记忆神经网络LSTM来生成解码序列。
在LSTM的t时刻,模型对细胞状态st和输出ot的更新公式为:
st,ot=LSTM([actiont-1,actionpt,zt,opt,typet],st-1,ot-1)
其中,action表示结点行为,即GenGrammar、GenTable或GenCol;actionpt表示当前结点的父结点的行为;zt是上下文向量,由上一时刻输出ot-1经过多头注意力计算而得;opt表示当前结点的父结点时刻的输出,typet表示当前结点的类型向量。
模型的目标是最大化正确SQL语句的概率值,即:
其中,actionpre表示所有之前的行为序列。
语法树的每个分支都最终以[END]结束,当所有分支都结束时,按照深度优先的顺序遍历语法树,生成符合语法规则的SQL语句。
在一种实施例中,生成如下SQL语句:
SELECT COUNT(*)
FROM tbl_students
WHERE name....
生成过程如图9所示。从语法树的根节点root开始,按照深度优先的顺序生成结点,tbl_students是一个数据表名,name为该表中的一个列名。图中生成SQL语法关键字或结束符[END]的动作,称为GenGrammar;生成数据表名、数据列名的动作,分别称为GenTable和GenCol。每个结点的后继结点可能的类型由SQL语法决定。所有分支都最终以[END]结束时,就完成了SQL解码过程,这时按照深度优先的顺序遍历语法树,就能得到唯一的SQL语句,将SQL语句交由数据库执行引擎返回SQL查询结果。
S2、将采集到训练集中的中文自然语言问题和相关数据库模式作为输入,对应的正确SQL语句作为输出,通过最小化SQL语句生成模型生成的SQL语句与正确SQL语句之间的差异,训练SQL语句生成模型。
本实施例预先收集了大量中文自然语言问题、相关数据库模式、对应的正确SQL语句。一个中文自然语言问题的表述、所有在SQL语句中出现的数据库模式、一个对应的正确SQL语句,组成的三元组构成一个训练样本,所有训练样本构成上述训练集。
本发明中的SQL语句生成模型提取了非结构化数据的自然语言问题中语义特征以及结构化数据的数据库模式中语义特征、关系特征,并将语义特征和关系特征进行融合,得到融合特征;然后将融合特征生成为自然语言问题对应的数据库执行引擎可识别和执行的SQL语句;并计算生成的SQL语句和自然语言问题对应的正确SQL语句之间的误差作为损失,通过不断迭代训练,缩小该损失,以对SQL语句生成模型进行训练。
实施例2、
一种中文自然语言的SQL语句生成方法,包括:将中文自然语言问题及相关数据库模式输入到采用实施例1所提供的中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句。
相关技术方案同实施例1,这里不做赘述。
实施例3、
一种基于中文自然语言的数据库检索方法,包括:将中文自然语言问题及相关数据库模式输入到采用实施例1所提供的中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句后,由数据库执行引擎执行SQL语句进行信息检索。
具体地,应用上述训练好的SQL语句生成模型,接受用户的中文自然语言提问以及与提问相关的数据库模式,提取文本特征和关系特征后,利用所述的语法树结构解码成对应的SQL语句,数据库执行引擎执行所述的SQL语句,得到用户所提问的SQL查询结果,最后返回所述的SQL查询结果。本发明将用户提出的自然语言问题转换为SQL语句,然后由数据库执行引擎执行SQL语句进行信息检索,最后将结果返回给用户,可以大大降低数据库的使用门槛及用户的学习成本、提高信息检索的效率。
相关技术方案同实施例1,这里不做赘述。
实施例4、
一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现实施例1所提供的中文自然语言的SQL语句生成模型的构建方法、实施例2所提供的中文自然语言的SQL语句生成方法以及实施例3所提供的基于中文自然语言的数据库检索方法中的一种或多种。
相关技术方案同实施例1、实施例2和实施例3,这里不做赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种中文自然语言的SQL语句生成模型的构建方法,其特征在于,包括以下步骤:
S1、搭建SQL语句生成模型;其中,所述SQL语句生成模型包括:分词拼接模块、语义编码模块、关系表示模块、关系编码模块和SOL解码模块;
所述分词拼接模块用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名进行分词操作后,结合数据列类型信息进行拼接,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量,并输出至所述语义编码模块中;
所述语义编码模块用于采用自然语言预训练模型提取所述融合表示向量中的语义特征,得到中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量,构成联合编码张量后,输出至所述关系编码模块中;
所述关系表示模块用于将数据库模式中已定义的关系以及自然语言问题与数据库模式之间的链接关系表示为关系有向图;所述关系有向图中的顶点包括数据表命名、数据列命名和中文自然语言问题的分词结果;所述关系有向图中的边表示顶点间所存在的关系,包括顶点间存在的数据库定义关系、以及中文自然语言问题的分词结果与数据表命名或数据列命名之间的同义和相关关系,并输出至所述关系编码模块中;
所述关系编码模块用于对所述联合编码张量和所述关系有向图的对齐关系进行联合编码,提取所述联合编码张量和所述关系有向图中的关系特征,得到关系编码张量,并输出至所述SQL解码模块;
所述SOL解码模块用于基于语法树结构将所述关系编码张量解码成SQL语句;
S2、将采集到训练集中的中文自然语言问题和相关数据库模式作为输入,对应的正确SQL语句作为输出,通过最小化所述SQL语句生成模型生成的SQL语句与正确SQL语句之间的差异,训练所述SQL语句生成模型。
2.根据权利要求1所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,所述分词拼接模块用于对中文自然语言问题及相关数据库模式中的数据表命名和数据列命名中的停用词和标点符号进行过滤后,进行分词操作,并恢复中文自然语言问题中出现的误分词项,得到中文自然语言问题及相关数据库模式中的数据表命名和数据列命名的分词结果后进行拼接,并在拼接的过程中对每个数据列命名的分词结果连接上其对应的数据列类型信息,得到非结构化数据的中文自然语言问题与结构化数据的数据库模式的融合表示向量;
其中,所述误分词项包括***数字、单位符号、算术表达式和英文单词;所述数据列类型信息包括数字类型、时间日期类型和文本类型。
3.根据权利要求1所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,所述语义编码模块采用多语言的BERT预训练模型提取融合表示向量中的语义特征。
4.根据权利要求1-3任意一项所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,记关系有向图中的任意两个不同的顶点为顶点A和顶点B,当顶点A和顶点B均为数据列命名时,所述顶点间存在的数据库定义关系包括:顶点A和顶点B属于同一张数据表、顶点A外键关联顶点B和顶点B外键关联顶点A;
当顶点A为数据列命名、顶点B为数据表命名时,所述顶点间存在的数据库定义关系包括:顶点A是顶点B的主键和顶点A是顶点B的列,但不是顶点B的主键;
当顶点A为数据表命名、顶点B为数据列命名时,所述顶点间存在的数据库定义关系包括:顶点B是顶点A的主键和顶点B是顶点A的列,但不是顶点A的主键;
当顶点A为数据表命名、顶点B为数据表命名时,所述顶点间存在的数据库定义关系包括:顶点A中有一个列外键关联顶点B、顶点B中有一个列外键关联顶点A和顶点A和顶点B互相外键关联。
5.根据权利要求1-3任意一项所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,所述自然语言问题与数据库模式之间的链接关系包括:中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系,以及中文自然语言问题的分词结果与数据库模式中的数据值的链接关系;
其中,所述中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系包括:匹配优先级从高到低的TEM_S、TEM_R、TPM_S、TPM_R、CEM_S、CEM_R、CPM_S和CPM_R;
所述TEM_S表示中文自然语言问题的分词结果与数据表名同义且完全匹配;所述TEM_R表示中文自然语言问题的分词结果与数据表名相关且完全匹配;所述TPM_S中文自然语言问题的分词结果与数据表名同义且部分匹配;所述TPM_R表示中文自然语言问题的分词结果与数据表名相关且部分匹配;所述CEM_S表示中文自然语言问题的分词结果与数据列名同义且完全匹配;所述CEM_R表示中文自然语言问题的分词结果与数据列名相关且完全匹配;所述CPM_S表示中文自然语言问题的分词结果与数据列名同义且部分匹配;所述CPM_R表示中文自然语言问题的分词结果与数据列名相关且部分匹配;
所述中文自然语言问题的分词结果与数据库模式中的数据值的链接关系包括:匹配优先级从高到低的VEM和VRM;
所述VEM表示中文自然语言问题的分词结果出现在数据列中;所述VRM表示中文自然语言问题的分词结果与数据列名相关。
6.根据权利要求5所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,分别将中文自然语言问题的分词结果与分词后的数据表名进行n-gram匹配,得到所述中文自然语言问题的分词结果与数据库模式中的数据表和数据列的链接关系;
分别对中文自然语言问题的分词结果,判断其是否存在于数据库中相同类型的列所存储的数据值中,以将中文自然语言问题的分词结果与数据库中相同类型的列所存储的数据值进行链接;并当中文自然语言问题的分词结果未出现在数据列中时,采用知识图谱ConceptNet对中文自然语言问题的分词结果与数据列名进行链接,从而得到所述中文自然语言问题的分词结果与数据库模式中的数据值的链接关系。
7.根据权利要求1所述的中文自然语言的SQL语句生成模型的构建方法,其特征在于,所述关系编码模块包括:依次级联的位置编码单元、多头注意力单元、第一加和归一化单元、前馈神经网络和第二加和归一化单元;
所述位置编码单元用于对所述联合编码张量中的中文自然语言问题及相关数据库模式中数据表命名和数据列命名的分词结果的语义编码向量进行位置编码,得到各分词结果的位置编码向量后,与对应的语义编码向量相加,得到各分词结果的复合语义编码向量,并输出至所述多头注意力单元中;
所述多头注意力单元包括多个注意力子单元,注意力子单元用于对第i个分词结果的复合语义编码向量进行第一线性变换、对第j个分词结果的复合语义编码向量分别进行第二线性变换和第三线性变换,并在第二线性变换和第三线性变换中分别引入第i个分词结果和第j个分词结果在关系有向图中的链接关系作为偏置,分别得到查询向量、键向量和值向量,并结合注意力机制得到第i个分词结果和第j个分词结果之间的注意力值,其中,j=1,2,…,n,n为分词结果的个数;将所得注意力值进行加和,得到第i个分词结果的注意力值;所述多头注意力单元用于将各注意力子单元所得的第i个分词结果的注意力值进行拼接后进行维度转换,使其维度与第i个分词结果的复合语义编码向量的维度相同,得到第i个分词结果的多头注意力值;
所述第一加和归一化单元将所述第i个分词结果的多头注意力值与所述第i个分词结果的复合语义编码向量相加后进行归一化后,输入到所述前馈神经网络中进行处理;
所述第二加和归一化单元将所述前馈神经网络所得的结果与所述第一加和归一化单元所得的结果进行相加,得到第i个分词结果的关系编码向量;其中,i=1,2,…,n。
8.一种中文自然语言的SQL语句生成方法,其特征在于,包括:将中文自然语言问题及相关数据库模式输入到采用权利要求1-7任意一项所述的中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句。
9.一种基于中文自然语言的数据库检索方法,其特征在于,包括:将中文自然语言问题及相关数据库模式输入到采用权利要求1-7任意一项所述的中文自然语言的SQL语句生成模型的构建方法所构建的SQL语句生成模型中,得到SQL语句后,由数据库执行引擎执行SQL语句进行信息检索。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-7任意一项所述的中文自然语言的SQL语句生成模型的构建方法、权利要求8所述的中文自然语言的SQL语句生成方法和权利要求9所述的基于中文自然语言的数据库检索方法中的一种或多种方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111191677.4A CN114020768B (zh) | 2021-10-13 | 2021-10-13 | 中文自然语言的sql语句生成模型的构建方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111191677.4A CN114020768B (zh) | 2021-10-13 | 2021-10-13 | 中文自然语言的sql语句生成模型的构建方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114020768A true CN114020768A (zh) | 2022-02-08 |
CN114020768B CN114020768B (zh) | 2024-07-05 |
Family
ID=80055923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111191677.4A Active CN114020768B (zh) | 2021-10-13 | 2021-10-13 | 中文自然语言的sql语句生成模型的构建方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020768B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579608A (zh) * | 2022-04-26 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 基于表格数据的人机交互方法、装置及设备 |
CN114579605A (zh) * | 2022-04-26 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 表格问答数据处理方法、电子设备及计算机存储介质 |
CN115269627A (zh) * | 2022-05-27 | 2022-11-01 | 上海迈伺通健康科技有限公司 | 使用中文指令操作数据库的方法、***、设备及存储介质 |
CN115497477A (zh) * | 2022-09-09 | 2022-12-20 | 平安科技(深圳)有限公司 | 语音交互方法、语音交互装置、电子设备、存储介质 |
CN116186067A (zh) * | 2023-04-27 | 2023-05-30 | 浪潮云洲(山东)工业互联网有限公司 | 一种工业数据表存储查询方法及设备 |
CN116701437A (zh) * | 2023-08-07 | 2023-09-05 | 上海爱可生信息技术股份有限公司 | 数据转化方法、数据转化***、电子设备及可读存储介质 |
CN116910086A (zh) * | 2023-09-13 | 2023-10-20 | 北京理工大学 | 一种基于自注意力句法感知的数据库查询方法和*** |
CN116992888A (zh) * | 2023-09-25 | 2023-11-03 | 天津华来科技股份有限公司 | 基于自然语义的数据分析方法及*** |
CN117591543A (zh) * | 2024-01-19 | 2024-02-23 | 成都工业学院 | 一种中文自然语言的sql语句生成方法和装置 |
CN117667978A (zh) * | 2023-12-07 | 2024-03-08 | 上海迈伺通健康科技有限公司 | 一种使用中文指令操作数据库的计算机*** |
CN118210818A (zh) * | 2024-05-16 | 2024-06-18 | 武汉人工智能研究院 | Sql语句生成方法、装置、电子设备和存储介质 |
CN115497477B (zh) * | 2022-09-09 | 2024-07-16 | 平安科技(深圳)有限公司 | 语音交互方法、语音交互装置、电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200133952A1 (en) * | 2018-10-31 | 2020-04-30 | International Business Machines Corporation | Natural language generation system using graph-to-sequence model |
CN111813802A (zh) * | 2020-09-11 | 2020-10-23 | 杭州量之智能科技有限公司 | 一种基于自然语言生成结构化查询语句的方法 |
EP3767516A1 (en) * | 2019-07-18 | 2021-01-20 | Ricoh Company, Ltd. | Named entity recognition method, apparatus, and computer-readable recording medium |
CN113111158A (zh) * | 2021-04-14 | 2021-07-13 | 杭州电子科技大学 | 一种面向智能数据可视化的对话式问答实现方法 |
-
2021
- 2021-10-13 CN CN202111191677.4A patent/CN114020768B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200133952A1 (en) * | 2018-10-31 | 2020-04-30 | International Business Machines Corporation | Natural language generation system using graph-to-sequence model |
EP3767516A1 (en) * | 2019-07-18 | 2021-01-20 | Ricoh Company, Ltd. | Named entity recognition method, apparatus, and computer-readable recording medium |
CN111813802A (zh) * | 2020-09-11 | 2020-10-23 | 杭州量之智能科技有限公司 | 一种基于自然语言生成结构化查询语句的方法 |
CN113111158A (zh) * | 2021-04-14 | 2021-07-13 | 杭州电子科技大学 | 一种面向智能数据可视化的对话式问答实现方法 |
Non-Patent Citations (1)
Title |
---|
周明;段楠;刘树杰;沈向洋;: "神经自然语言处理最新进展――模型、训练和推理", ENGINEERING, no. 03, 15 March 2020 (2020-03-15) * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579608A (zh) * | 2022-04-26 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 基于表格数据的人机交互方法、装置及设备 |
CN114579605A (zh) * | 2022-04-26 | 2022-06-03 | 阿里巴巴达摩院(杭州)科技有限公司 | 表格问答数据处理方法、电子设备及计算机存储介质 |
CN114579608B (zh) * | 2022-04-26 | 2022-08-02 | 阿里巴巴达摩院(杭州)科技有限公司 | 基于表格数据的人机交互方法、装置及设备 |
CN114579605B (zh) * | 2022-04-26 | 2022-08-09 | 阿里巴巴达摩院(杭州)科技有限公司 | 表格问答数据处理方法、电子设备及计算机存储介质 |
CN115269627A (zh) * | 2022-05-27 | 2022-11-01 | 上海迈伺通健康科技有限公司 | 使用中文指令操作数据库的方法、***、设备及存储介质 |
CN115497477A (zh) * | 2022-09-09 | 2022-12-20 | 平安科技(深圳)有限公司 | 语音交互方法、语音交互装置、电子设备、存储介质 |
CN115497477B (zh) * | 2022-09-09 | 2024-07-16 | 平安科技(深圳)有限公司 | 语音交互方法、语音交互装置、电子设备、存储介质 |
CN116186067A (zh) * | 2023-04-27 | 2023-05-30 | 浪潮云洲(山东)工业互联网有限公司 | 一种工业数据表存储查询方法及设备 |
CN116701437B (zh) * | 2023-08-07 | 2023-10-20 | 上海爱可生信息技术股份有限公司 | 数据转化方法、数据转化***、电子设备及可读存储介质 |
CN116701437A (zh) * | 2023-08-07 | 2023-09-05 | 上海爱可生信息技术股份有限公司 | 数据转化方法、数据转化***、电子设备及可读存储介质 |
CN116910086A (zh) * | 2023-09-13 | 2023-10-20 | 北京理工大学 | 一种基于自注意力句法感知的数据库查询方法和*** |
CN116910086B (zh) * | 2023-09-13 | 2023-12-01 | 北京理工大学 | 一种基于自注意力句法感知的数据库查询方法和*** |
CN116992888A (zh) * | 2023-09-25 | 2023-11-03 | 天津华来科技股份有限公司 | 基于自然语义的数据分析方法及*** |
CN117667978A (zh) * | 2023-12-07 | 2024-03-08 | 上海迈伺通健康科技有限公司 | 一种使用中文指令操作数据库的计算机*** |
CN117591543A (zh) * | 2024-01-19 | 2024-02-23 | 成都工业学院 | 一种中文自然语言的sql语句生成方法和装置 |
CN117591543B (zh) * | 2024-01-19 | 2024-04-02 | 成都工业学院 | 一种中文自然语言的sql语句生成方法和装置 |
CN118210818A (zh) * | 2024-05-16 | 2024-06-18 | 武汉人工智能研究院 | Sql语句生成方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114020768B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114020768B (zh) | 中文自然语言的sql语句生成模型的构建方法及应用 | |
CN109284352B (zh) | 一种基于倒排索引的评估类文档不定长词句的查询方法 | |
CN111737496A (zh) | 一种电力设备故障知识图谱构建方法 | |
CN112732934B (zh) | 电网设备分词词典和故障案例库构建方法 | |
CN111931506B (zh) | 一种基于图信息增强的实体关系抽取方法 | |
CN110705296A (zh) | 一种基于机器学习和深度学习的中文自然语言处理工具*** | |
CN111353306B (zh) | 基于实体关系和依存Tree-LSTM的联合事件抽取的方法 | |
CN110597998A (zh) | 一种结合句法分析的军事想定实体关系抽取方法及装置 | |
CN112765952A (zh) | 一种图卷积注意力机制下的条件概率联合事件抽取方法 | |
US20220004545A1 (en) | Method of searching patent documents | |
CN111061882A (zh) | 一种知识图谱构建方法 | |
US20210350125A1 (en) | System for searching natural language documents | |
CN113221559B (zh) | 利用语义特征的科技创新领域中文关键短语抽取方法及*** | |
CN114943230A (zh) | 一种融合常识知识的中文特定领域实体链接方法 | |
CN113312922B (zh) | 一种改进的篇章级三元组信息抽取方法 | |
CN111949774A (zh) | 一种智能问答方法和*** | |
JPH0816620A (ja) | データ分類装置/方法、データ分類木生成装置/方法、派生語抽出装置/方法、シソーラス構築装置/方法、データ処理システム | |
CN116910086B (zh) | 一种基于自注意力句法感知的数据库查询方法和*** | |
CN116049422A (zh) | 基于联合抽取模型的包虫病知识图谱构建方法及其应用 | |
CN114580639A (zh) | 一种基于政务三元组自动抽取对齐的知识图谱构建的方法 | |
Tapsai | Information processing and retrieval from CSV file by natural language | |
CN116127090A (zh) | 基于融合和半监督信息抽取的航空***知识图谱构建方法 | |
CN112883172B (zh) | 一种基于双重知识选择的生物医学问答方法 | |
CN112417170A (zh) | 面向不完备知识图谱的关系链接方法 | |
CN117033423A (zh) | 一种注入最优模式项和历史交互信息的sql生成方法 |
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 | ||
GR01 | Patent grant |