CN111813802B - 一种基于自然语言生成结构化查询语句的方法 - Google Patents
一种基于自然语言生成结构化查询语句的方法 Download PDFInfo
- Publication number
- CN111813802B CN111813802B CN202010950260.0A CN202010950260A CN111813802B CN 111813802 B CN111813802 B CN 111813802B CN 202010950260 A CN202010950260 A CN 202010950260A CN 111813802 B CN111813802 B CN 111813802B
- Authority
- CN
- China
- Prior art keywords
- word
- structured query
- natural language
- type
- vector
- 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.)
- Active
Links
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/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- 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/243—Natural language query formulation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于自然语言生成结构化查询语句的方法,用户输入自然语言问题和选择希望查询的数据库;将自然语言问句和数据库信息映射到向量空间,将得到的三组输入向量输入预先训练的第一模型中获得结构化查询语言语法块序列,按照设定的语法块生成式生成各个语法块代表的结构化查询语句,涉及数值比较会填入一个默认占位值,通过主外键关系组合合并成完整的结果;判断生成的结构化查询语句中是否存在占位值,如不存在占位值则直接输出合并成的完整的结果作为最终的生成结果;如存在占位值则枚举不同的条件值填入结构化查询语句,并输入到第二模型计算与自然语言问句的相似度,输出相似度最高的结构化查询语句作为最终结果。
Description
技术领域
本发明涉及数据库查询技术领域,特别涉及一种基于自然语言生成结构化查询语句的方法。
背景技术
关系型数据库作为一种在商业、金融等各大领域通用的数据存储方式,在实际应用场景中应用得十分广泛,但查询数据库所需要的技术语言对于非专业人员来说具有较大的学习门槛,同时在日常使用中需要不断与技术人员沟通,降低了工作效率。因此,能够通过自然语言对关系型数据库的内容进行获取成为了各行各业数据处理人员当前最迫切的需求。相比于用结构化查询语言,使用自然语言查询数据库能够使非技术人员不必掌握相关技术知识,不需要与技术人员频繁沟通,也不用了解数据的具体关联情况,能够极大提高数据处理工作的效率。
在当前领域中,也存在一些基于深度学习的自然语言查询数据库的方法,能够对不包含排序、分组、子查询等复杂操作的简单的结构化查询语言,利用序列-集合的模型结构来识别和转换。但在实际使用场景中,用户的提问通常涉及到更为复杂的结构化查询语言,这些简单的查询无法满足相应的需求,因此具有很大的局限性。也有基于此类思想构建更复杂的语法结构来应对该问题的方法,但是解析时无法很好地获取句子表示的逻辑结构,因此准确率也无法保证。还有一些针对更复杂数据情况的方案,大多集中在对结构化查询语言的框架以及涉及的表名和列名的预测,而对语句中的条件值和具体数据值并不关注,这与实际使用场景不符,实际查询时很多情况都是基于条件和数据值对查询进行约束的;并且现有的方法均不包含行计算、列计算及常数计算等常见的数据查询结构,也因此大大限制了这些方法在生产环境中的使用。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种基于自然语言生成结构化查询语句的方法。
本发明的上述技术目的是通过以下技术方案得以实现的:
一种基于自然语言生成结构化查询语句的方法,包括以下步骤:
A,输入自然语言问题:
使用者输入询问的问题,并且选择希望查询的数据库,在该步骤需要判断自然语言问句是否符合输入要求,具体根据输入的句子长度、各个词的词性情况来判断输入的是否是正常的自然语言句子,如果输入的只是一些无意义的短语或符号则提示错误并要求重新输入,否则执行步骤B;
B,将自然语言问句输入至预先训练的第一模型,得到问句对应的结构化查询语言语法块序列,语法块不涉及具体的条件值:
首先将自然语言问句和数据库信息映射到向量空间,对于自然语言问句,需要对其中出现的、属于数据库信息的词进行标记,不同的标记类型映射到不同的类型向量,同时需要使用词向量模型获取每个词的词向量,将两个向量拼接作为每个词的最终词向量;对于数据库列名和表名信息,需要对其出现在自然语言问句中的情况进行标记,不同的标记类型映射到不同的类型向量,同时需要使用词向量模型获取每个词的词向量,将两个向量拼接作为每个词的最终词向量,处理后总共得到三组输入向量:代表自然语言问句的向量、代表数据库列名信息的向量以及代表数据库表名信息的向量,然后将三组向量输入到第一模型中,以序列-序列的模型结构输出结构化查询语言语法块序列;
C,根据结构化查询语言语法块的展开情况生成对应的结构化查询语句:
处理结构化查询语言语法块序列,按照设定的语法块生成式生成各个语法块代表的结构化查询语句,最终通过主外键关系组合合并成完整的结果;由于语法块序列中不包含具体的条件值,生成的结构化查询语句中涉及数值比较时会填入一个默认占位值;在该步骤需要判断生成的结构化查询语句中是否存在占位值,如果不存在则直接输出作为最终的生成结果,否则执行步骤D;
D,枚举不同的条件值填入结构化查询语句,输入到第二模型,计算与自然语言问句的相似度,输出相似度最高的结构化查询语句:
首先通过各个占位值的上下文判断各个占位值所代表的数值类型,类型包括数字型、文本型和时间型;然后根据不同的数值类型枚举不同的条件值替换占位值,数字型和时间型的条件值来源于问题文本,文本型的条件值来源于数据库和问题文本,重复多次后得到一系列结构化查询语句;最后将自然语言问句分别与结构化查询语句组合,组合后输入到第二模型中计算两个句子的相似度;按照相似度进行排序,输出与自然语言问句相似度最高的结构化查询语句作为最终结果。
综上所述,本发明对比于现有技术的有益效果为:
1、本发明提供了一种数据查询方法,能够完成自然语言向结构化查询语句的转换,使用户既不需要掌握结构化查询语言语法的相关专业知识,也不需要了解数据的具体存储情况,极大地提高了查询效率和便利性;
2、本发明提出的数据查询方法扩充了适用的结构化查询语言语法,使该方法生成结构化查询语句时不仅能够有效处理选择、筛选等简单结构化查询语言功能,还能处理包括排序、分组、子查询、行计算、列计算、常数计算在内的复杂操作,生成更接近生产环境中实际使用的结构化查询语言语句;通过扩充适用的结构化查询语言语法,能够有效减小通过自然语言问句来查询数据库的局限性,使用户能够查询到更多数据,适用于更多情况,提高了查询的性能;
3、本发明提出的方法针对数值比较的情况进行了优化,能够很好地匹配条件数据值;在匹配的过程中,通过计算自然语言问句和目标结构化查询语句之间的相似度来判断结构化查询语句的合理性,一方面能通过枚举条件值生成大量负样本扩充训练数据,使模型学习到更多的语义信息,降低获取数据的成本,提高对已有数据的使用效率;另一方面能够充分利用文本和结构化查询语言语句两者句子级别的语义关系,提高模型预测的准确率。
附图说明
图1为实施例的整体流程图;
图2为实施例中第一模型的结构示意图;
图3为实施例中第二模型的结构示意图。
具体实施方式
以下结合附图对发明作进一步详细说明。
一种基于自然语言生成结构化查询语句的方法,包括以下步骤:
步骤1,用户输入自然语言问题和选择希望查询的数据库,并判断自然语言问句是否符合输入要求,不符合输入要求则提示错误并要求重新输入;
步骤2,将自然语言问句和数据库信息映射到向量空间,对自然语言问句、数据库列名信息、数据库表名信息处理得到代表自然语言问句的向量、代表数据库列名信息的向量、代表数据库表名信息的向量的三组输入向量,将得到的三组输入向量输入预先训练的第一模型中,以序列-序列的模型结构输出结构化查询语言语法块序列,语法块不涉及具体的条件值;
步骤3,根据输出的结构化查询语言语法块序列,按照设定的语法块生成式生成各个语法块代表的结构化查询语句,生成的结构化查询语句中涉及数值会填入一个默认占位值,并通过主外键关系组合合并成完整的结果;
步骤4,判断生成的结构化查询语句中是否存在占位值,如不存在占位值则直接输出通过主外键关系合并成的完整的结果作为最终的生成结果;如存在占位值则枚举不同的条件值填入结构化查询语句,并输入到第二模型计算与自然语言问句的相似度,输出相似度最高的结构化查询语句作为最终结果。
将自然语言问题输入到第一模型之前,首先要将自然语言问句文本和数据库信息文本进行嵌入操作,将其映射到高维向量空间。
对于自然语言问句文本,最终语义信息包括每个词的词向量和类型向量,通过以下步骤进行获取:
a),首先利用分词工具对自然语言问句进行分词,获得词语序列
b),然后标记词语序列中每个词的类型信息,类型信息有5种:如果该词语能完全匹配数据库中某一个列名,则类型为‘column’;如果该词语能完全匹配数据库中某一个表名,则类型为‘table’;如果该词语是一个具体的数字或时间,则类型为‘value’;如果该词语是数据库中某一个列名下所属的数值,则类型为这个列的列名;对于其他情况,词语类型都是‘none’;
c),在进行b)的过程中,采取的匹配方式为最长匹配,即每次都是用最长的词语子序列去进行匹配,词语子序列的长度设定最大为5;如果能匹配到,则将词语子序列合并作为新的词语用于后续的嵌入处理,否则减小词语组合的长度重新进行匹配;例如,存在一个词语序列为【“没有”,“比赛”,“记录”,“的”,“运动员”,“有”,“哪些”】,待匹配的列名为‘比赛记录’。在匹配时,“没有比赛记录的运动员”首先与“比赛记录”进行完全匹配,无法匹配后将减小子序列的长度,使用“没有比赛记录的”进行匹配,重复多次操作直至使用“没有”和“比赛记录”进行匹配,由于此时依然无法匹配,“比赛”这个词语将成为后续匹配的起点;通过这种匹配方式能够匹配到文本中存在的所有列名和表名;
d),对于a)步骤得到的每个词语,能够通过预训练的语言模型获得每个词的词向量,对于不在语言模型词汇表中的词语组合,可以取每个词词向量的平均值作为词语组合的词向量;
e),对于b)步骤得到的每个类型信息,能够通过一个可训练参数矩阵获得代表每个类型的向量,该向量模型在训练过程中不断更新,很好地代表了各个类型信息;
f),将d)和e)中得到的词向量和类型向量前后拼接作为每个词最终的向量表示。
对于数据库信息文本,最终语义信息包括每个词的词向量和类型向量,通过以下步骤进行获取,由于对于数据库列名及表名采取的是同样的操作,以下步骤仅以处理列名为例:
a),首先利用分词工具对数据库列名进行分词操作,获得词语序列;
b),然后标注数据库每个列的类型信息,类型信息有3种:如果该列名和部分自然语言问题文本能完全匹配,则类型为完全匹配,类型序号为0;如果该列名分词后得到的某个词能和部分自然语言问题文本完全匹配,则类型为部分匹配,类型序号为1;如果数据库中该列名下的值出现在问题文本中,则类型序号为2;
c),对于a)步骤得到的每个词语,能够通过预训练的语言模型获得每个词的词向量,对于不在语言模型词汇表中的词语组合,可以取每个词词向量的平均值作为词语组合的词向量;
d),对于b)步骤得到的每个类型信息,能够通过一个可训练参数矩阵获得代表每个类型的向量,该向量模型在训练过程中不断更新,很好地代表了各个类型信息;
e),将c)和d)中得到的词向量和类型向量前后拼接作为每个列名最终的向量表示。
通过上述步骤,获得了代表自然语言问句的向量、代表数据库列名信息的向量、代表数据库表名信息的向量的三组输入向量,将这三组输入向量输入到第一模型中,以序列-序列的模型结构输出结构化查询语言语法块序列。
上述序列-序列的模型结构中前一个序列结构为编码模块,用于充分获取输入数列的语义特征;在该步骤中,将三组向量分别输入到三个不同的长短期记忆模型中进行编码,获得融合了文本上下文信息的向量表示。
上述序列-序列的模型结构中后一个序列结构为解码模块,用于生成结构化查询语言语法块序列;结构化查询语言语法块指的是代表结构化查询语言语法的上下文无关文法的产生式,通过预先编写的上下文无关文法,可以将一个结构化查询语句转换为多个结构化查询语言语法块。
例如,一个结构化查询语句“SELECT 姓名,性别 FROM 学生 WHERE 学号=‘001’”可以转换为结构化查询语言语法块序列“SQLs(7)SQL(3)SELECT(0)NumA(1)Agg(0)NormAgg(0)noneColumn(1)Table(0)Agg(0)NormAgg(0)Column(2)Table(0)Filter(2)Agg(0)NormAgg(0)Column(2)Table(0)Value(0)”,其中“SQLs”,“SQL”等是开始变量,括号中的数字代表的是产生式的序号,如“Filter(2)”代表的是“Filter::=Filter=Agg Value”这一产生式。
在该步骤中,将解码模块步骤获得的三个向量编码输入到一个长短期记忆模型中进行解码,解码生成的是3种动作,分别是产生结构化查询语言语法块、选择结构化查询语言语法块涉及的列名、选择结构化查询语言语法块涉及的表名;通过依次执行这三种动作可以获得结构化查询语句对应的结构化查询语言语法块序列,由于这一部分没有处理涉及具体数值的情况,生成的结构化查询语言语法块中的Value块只是一个占位符,不代表数值。
上述中,如存在占位值则枚举不同的条件值填入结构化查询语句,具体处理步骤如下所述。
获取生成的结构化查询语句,通过其中各个占位值的上下文判断各个占位值所代表的数值类型,数值类型有三种:数字型、文本型和时间型;首先判断上下文中是否存在加减乘除的运算操作,如果存在则数值类型为数字;然后判断上下文中是否涉及Count、Sum、Avg等聚合函数,如果存在则数值类型为数字;如果上下文中不存在数值计算或聚合函数,则占位值的数值类型和对应的列在数据库中的数值类型保持一致。
根据上述步骤获取到的占位值数值类型枚举不同的条件值替换占位值,数值型和时间型的条件值来源于自然语言问题文本,文本型的条件值来源于数据库和问题文本,重复多次后得到一系列结构化查询语句。
例如,存在一个自然语言问句“2018年12月的收入高于8000且订单最多的5个员工”,通过步骤C可以获得含占位值的结构化查询语句“SELECT 姓名 FROM 员工 WHERE 收入>Value AND时间=Value ORDER BY订单数LIMIT Value”,通过步骤D1可以获得三个占位值的类型分别为数字、时间、数字。根据预先设定的正则规则可以获得文本中的数字型条件值:8000和5以及时间型条件值:2018-12,然后可以枚举生成2*1*2=4种替换方案,最终得到4条结构化查询语句。
当处理文本型的条件值时,如果数据库中的数据较少,则直接枚举对应列的所有值作为条件值,否则需要进行预查询操作,利用Solr等搜索服务器查询自然语言问句中存在的对应列中的文本型条件值。
上述中,将结构化查询语句输入到第二模型计算与自然语言问句的相似度,输出相似度最高的结构化查询语句作为最终结果,具体处理步骤如下所述。
步骤a,输入到第二模型之前,首先要将自然语言问句文本和结构化查询语句文本进行嵌入操作,将其映射到向量空间;在该步骤中,使用的词向量模型为基于Transformer结构的预训练语言模型Bert,将自然语言问句文本和结构化查询语句文本前后拼接后输入到Bert中,输出得到代表整体语义的向量表示;
步骤b,将步骤a,得到的整体语义向量输入到一个二分类模型(第二模型的组成),输出得到两个句子匹配的置信度和不匹配的置信度,取匹配的置信度作为最终的相似度;
步骤c,重复多次步骤b,得到自然语言问句与所有结构化查询语句间的相似度,按相似度大小进行排序,输出与自然语言问句相似度最高的结构化查询语句作为最终的生成结果。
现针对上述出现的第一模型和第二模型进行展开描述,
一、第一模型
用途:用于将输入的自然语言问句转换为对应的结构化查询语言的语法块序列,通过规则能将语法块序列展开生成目标结构化查询语句;如果该模型生成的语法块序列中涉及到具体数据库数值,则先用默认值占位,后续进行完整填充。
组成:采用序列-序列的模型结构,参照图2所示,由编码和解码模块组成;
前一个序列结构为编码模块,用于充分获取输入数列的语义特征;在该步骤中,将三组向量分别输入到三个不同的长短期记忆模型中进行编码,获得融合了文本上下文信息的向量表示;
后一个序列结构为解码模块,用于生成结构化查询语言语法块序列;结构化查询语言语法块指的是代表结构化查询语言语法的上下文无关文法的产生式,通过预先编写的上下文无关文法,可以将一个结构化查询语句转换为多个结构化查询语言语法块;在该步骤中,使用一个长短期记忆模型来输出可能的语法块序列。
实现技术:这一部分主要使用了基于语法块的中间形式来进行解析的语义解析方法,将解析目标由直接生成结构化查询语句转换为生成一系列语法块,通过自顶向下解析语法块来获取目标语句;这种解析方式更关注结构化查询语句的逻辑结构,使解析生成的结果更为准确。
二、第二模型
用途:由于第一模型生成的结构化查询语句是缺少具体数据库数值的语句,获得完整的结构化查询语句需要枚举不同的数值进行填充;第二模型的作用是计算自然语言问句和枚举填充生成的结构化查询语句之间的相似度,找出相似度最高的语句作为目标结构化查询语句。
组成:第二模型是一个二分类分类器,参照图3所示,接受代表自然语言问句文本和结构化查询语句文本整体语义的向量表示,再通过logistic回归处理该向量,获得语句对的相似度。
实现技术:这一部分主要使用了基于句子相似度的匹配方法。由于枚举会生成大量的备选语句,模型需要从中选出与输入的自然语言问句最为匹配的语句作为目标语句,将语句对的语义向量输入到二分类分类器中能够快速准确地提取句子级别的信息,并以数值的形式量化两个句子的相似度,更易进行比较。
以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。
Claims (8)
1.一种基于自然语言生成结构化查询语句的方法,其特征在于,包括以下步骤:
步骤1,用户输入自然语言问题和选择希望查询的数据库,并判断自然语言问句是否符合输入要求,不符合输入要求则提示错误并要求重新输入;
步骤2,将自然语言问句和数据库信息映射到向量空间,对自然语言问句、数据库列名信息、数据库表名信息处理得到代表自然语言问句的向量、代表数据库列名信息的向量、代表数据库表名信息的向量的三组输入向量,预先训练出具有编码和解码两个模块的第一模型,将得到的三组输入向量输入预先训练的第一模型中,以序列-序列的模型结构输出结构化查询语言语法块序列,语法块不涉及具体的条件值;
步骤3,根据输出的结构化查询语言语法块序列,按照设定的语法块生成式生成各个语法块代表的结构化查询语句,生成的结构化查询语句中涉及数值比较会填入一个默认占位值,并通过主外键关系组合合并成完整的结果;
步骤4,判断生成的结构化查询语句中是否存在占位值,如不存在占位值则直接输出通过主外键关系合并成的完整的结果作为最终的生成结果;如存在占位值则首先通过各个占位值的上下文判断各个占位值所代表的数值类型,再根据不同的数值类型枚举不同的条件值填入结构化查询语句替换占位值,并输入到用于计算语句相似度的第二模型中,计算与自然语言问句的相似度,输出相似度最高的结构化查询语句作为最终结果。
2.根据权利要求1所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述步骤1中,判断自然语言问句是否符合输入要求具体根据输入的自然语言问句长度、各个词的词性情况来判断是否为正常的自然语言句子。
3.根据权利要求1所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,代表自然语言问句的向量、代表数据库列名信息的向量、代表数据库表名信息的向量的三组输入向量均由每个词的词向量和类型向量前后拼接组成。
4.根据权利要求2所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述代表自然语言问句的向量具体处理步骤为:
步骤2.1.1,首先用分词工具对自然语言问句进行分词,获得词语序列;
步骤2.1.2,标记词语序列中每个词语的类型信息,类型信息有5种:如果该词语能完全匹配数据库中某一个列名,则类型为“column”;如果该词语能完全匹配数据库中某一个表名,则类型为“table”;如果该词语是一个具体的数字或时间,则类型为“value”;如果该词语是数据库中某一个列名下所属的数值,则类型为这个列的列名;对于其他情况,词语类型都是“none”;
步骤2.1.3,对于步骤2.1.1得到的每个词语,通过预训练的语言模型获得每个词语的词向量,对于不在语言模型词汇表中的词语组合,取每个词语的词向量的平均值作为词语组合的词向量;
步骤2.1.4,对于步骤2.1.2得到的每个类型信息,通过一个训练参数矩阵获得代表每个类型的向量,训练参数矩阵是一个向量模型,该向量模型在训练过程中不断更新;
步骤2.1.5,将步骤2.1.3和步骤2.1.3中得到的词向量和类型向量前后拼接作为每个词语最终的向量。
5.根据权利要求2所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述代表数据库列名信息的向量具体处理步骤为:
步骤2.2.1,首先用分词工具对数据库列名进行分词,获得词语序列;
步骤2.2.2,标注数据库每个列名的类型信息,类型信息有3种:如果该列名和部分自然语言问题文本能完全匹配,则类型为完全匹配,类型序号为0;如果该列名分词后得到的某个词能和部分自然语言问题文本完全匹配,则类型为部分匹配,类型序号为1;如果数据库中该列名下的值出现在问题文本中,则类型序号为2;
步骤2.2.3,对于步骤2.2.1中对数据库列名分词得到的词语,通过预训练的语言模型获得每个词语的词向量,对于不在语言模型词汇表中的词语组合,取每个词语的词向量的平均值作为词语组合的词向量;
步骤2.2.4,对于步骤2.2.2中得到的每个类型信息,通过一个训练参数矩阵获得代表每个类型的向量,训练参数矩阵是一个向量模型,该向量模型在训练过程中不断更新;
步骤2.2.5,将步骤2.2.3和步骤2.2.4中得到的词向量和类型向量前后拼接作为每个列名最终的向量。
6.根据权利要求1所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述步骤2中以序列-序列的模型结构的第一模型包括:
前一个序列结构为编码模块,用于充分获取输入数列的语义特征,在该步骤中,将三组向量分别输入到三个不同的长短期记忆模型中进行编码,获得融合了文本上下文信息的向量表示;
后一个序列结构为解码模块,用于生成结构化查询语言语法块序列,在该步骤中,将编码模块获得的三个向量编码输入到一个长短期记忆模型中进行解码,解码生成的是3种动作,分别是产生结构化查询语言语法块、选择结构化查询语言语法块涉及的列名、选择结构化查询语言语法块涉及的表名;通过依次执行这三种动作获得结构化查询语句对应的结构化查询语言语法块序列,语法块不涉及具体的条件值。
7.根据权利要求1所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述步骤4中枚举不同的条件值填入结构化查询语句具体步骤为:
步骤4.1,首先通过各个占位值的上下文判断各个占位值所代表的数值类型,类型包括数字型、文本型和时间型;
步骤4.2,根据不同的数值类型枚举不同的条件值替换占位值,数字型和时间型的条件值来源于问题文本,文本型的条件值来源于数据库和问题文本,重复多次后得到一系列结构化查询语句。
8.根据权利要求1所述的一种基于自然语言生成结构化查询语句的方法,其特征在于,所述步骤4中将结构化查询语句输入到第二模型计算与自然语言问句的相似度具体步骤为:
步骤4.3.1,输入到第二模型之前,首先要将自然语言问句文本和结构化查询语句文本进行嵌入操作,将其映射到向量空间;
步骤4.3.2,将步骤4.3.1得到的整体语义向量输入到一个二分类模型,输出得到两个句子匹配的置信度和不匹配的置信度,取匹配的置信度作为最终的相似度;
步骤4.3.3,重复多次步骤4.3.2,得到自然语言问句与所有结构化查询语句间的相似度,按相似度大小进行排序,输出与自然语言问句相似度最高的结构化查询语句作为最终的生成结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950260.0A CN111813802B (zh) | 2020-09-11 | 2020-09-11 | 一种基于自然语言生成结构化查询语句的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950260.0A CN111813802B (zh) | 2020-09-11 | 2020-09-11 | 一种基于自然语言生成结构化查询语句的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813802A CN111813802A (zh) | 2020-10-23 |
CN111813802B true CN111813802B (zh) | 2021-06-29 |
Family
ID=72859244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010950260.0A Active CN111813802B (zh) | 2020-09-11 | 2020-09-11 | 一种基于自然语言生成结构化查询语句的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813802B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182022B (zh) * | 2020-11-04 | 2024-04-16 | 北京安博通科技股份有限公司 | 基于自然语言的数据查询方法、装置及翻译模型 |
CN112270182B (zh) * | 2020-11-12 | 2022-11-08 | 佰聆数据股份有限公司 | 一种基于多轮对话问答式的分析思路衍生方法、系统及存储介质 |
CN112487135B (zh) * | 2020-12-18 | 2022-07-15 | 思必驰科技股份有限公司 | 将文本转化为结构化查询语言的方法及装置 |
CN112507098B (zh) * | 2020-12-18 | 2022-01-28 | 北京百度网讯科技有限公司 | 问题处理方法、装置、电子设备、存储介质及程序产品 |
CN112800201B (zh) * | 2021-01-28 | 2023-06-09 | 杭州汇数智通科技有限公司 | 自然语言的处理方法、装置及电子设备 |
CN113177123B (zh) * | 2021-04-29 | 2023-11-17 | 思必驰科技股份有限公司 | 文本转sql模型的优化方法及系统 |
CN112988785B (zh) * | 2021-05-10 | 2021-08-20 | 浙江大学 | 基于语言模型编码和多任务解码的sql转换方法及系统 |
CN113282724B (zh) * | 2021-05-21 | 2024-05-28 | 北京京东振世信息技术有限公司 | 一种智能客服的交互方法和装置 |
CN114003229B (zh) * | 2021-09-28 | 2022-10-18 | 厦门国际银行股份有限公司 | 一种sql代码相似度分析方法及系统 |
US20230161948A1 (en) * | 2021-11-24 | 2023-05-25 | International Business Machines Corporation | Iteratively updating a document structure to resolve disconnected text in element blocks |
CN114021573B (zh) * | 2022-01-05 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种自然语言处理方法、装置、设备及可读存储介质 |
CN114168619B (zh) * | 2022-02-09 | 2022-05-10 | 阿里巴巴达摩院(杭州)科技有限公司 | 语言转换模型的训练方法及装置 |
CN115168435A (zh) * | 2022-02-15 | 2022-10-11 | 支付宝(杭州)信息技术有限公司 | 查询数据的方法及装置 |
CN115964471B (zh) * | 2023-03-16 | 2023-06-02 | 成都安哲斯生物医药科技有限公司 | 医疗数据近似查询方法 |
CN116821168B (zh) * | 2023-08-24 | 2024-01-23 | 吉奥时空信息技术股份有限公司 | 一种改进的基于生成式大语言模型的nl2sql方法 |
CN116910105A (zh) * | 2023-09-12 | 2023-10-20 | 成都瑞华康源科技有限公司 | 一种基于预训练大模型的医疗信息查询系统及方法 |
CN116955366B (zh) * | 2023-09-21 | 2023-12-22 | 宝略科技(浙江)有限公司 | 一种数据导入处理方法、系统、装置及存储介质 |
CN116991877B (zh) * | 2023-09-25 | 2024-01-02 | 城云科技(中国)有限公司 | 一种结构化查询语句的生成方法、装置及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522393A (zh) * | 2018-10-11 | 2019-03-26 | 平安科技(深圳)有限公司 | 智能问答方法、装置、计算机设备和存储介质 |
CN110945495A (zh) * | 2017-05-18 | 2020-03-31 | 易享信息技术有限公司 | 基于神经网络的自然语言查询到数据库查询的转换 |
CN111274267A (zh) * | 2019-12-31 | 2020-06-12 | 杭州量之智能科技有限公司 | 一种数据库查询方法、装置及计算机可读取存储介质 |
CN111639254A (zh) * | 2020-05-28 | 2020-09-08 | 华中科技大学 | 一种医疗领域的sparql查询语句的生成系统和方法 |
-
2020
- 2020-09-11 CN CN202010950260.0A patent/CN111813802B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110945495A (zh) * | 2017-05-18 | 2020-03-31 | 易享信息技术有限公司 | 基于神经网络的自然语言查询到数据库查询的转换 |
CN109522393A (zh) * | 2018-10-11 | 2019-03-26 | 平安科技(深圳)有限公司 | 智能问答方法、装置、计算机设备和存储介质 |
CN111274267A (zh) * | 2019-12-31 | 2020-06-12 | 杭州量之智能科技有限公司 | 一种数据库查询方法、装置及计算机可读取存储介质 |
CN111639254A (zh) * | 2020-05-28 | 2020-09-08 | 华中科技大学 | 一种医疗领域的sparql查询语句的生成系统和方法 |
Non-Patent Citations (2)
Title |
---|
一种双向长短时记忆循环神经网络的问句语义关系识别方法;姜华 等;《福州大学学报》;20180118;第52-58页 * |
基于字段嵌入的数据库自然语言查询接口;田野 等;《计算机科学》;20200702;第60-66页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111813802A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813802B (zh) | 一种基于自然语言生成结构化查询语句的方法 | |
CN109359293B (zh) | 基于神经网络的蒙古文命名实体识别方法及其识别系统 | |
CN110968699B (zh) | 一种基于事理推荐的逻辑图谱构建及预警方法和装置 | |
CN104361127B (zh) | 基于领域本体和模板逻辑的多语种问答接口快速构成方法 | |
CN101539907B (zh) | 词性标注模型训练装置、词性标注系统及其方法 | |
CN109471929B (zh) | 一种基于图谱匹配进行设备维修记录语义搜索的方法 | |
CN111274267A (zh) | 一种数据库查询方法、装置及计算机可读取存储介质 | |
CN113032418B (zh) | 一种基于树状模型的复杂自然语言查询转sql方法 | |
CN116719520B (zh) | 代码生成方法及装置 | |
CN113987199B (zh) | 一种规范自动解译的bim智能审图方法、系统和介质 | |
CN112100413A (zh) | 一种跨模态的哈希检索方法 | |
CN114625748A (zh) | Sql查询语句的生成方法、装置、电子设备及可读存储介质 | |
CN116340530A (zh) | 基于机械知识图谱的智能设计方法 | |
CN114780582A (zh) | 基于表格问答的自然答案生成系统及其方法 | |
CN112287093A (zh) | 基于半监督学习和Text-to-SQL模型的自动问答系统 | |
CN115062070A (zh) | 一种基于问答的文本表格数据查询方法 | |
CN113836271A (zh) | 自然语言处理的方法和产品 | |
CN116910086A (zh) | 一种基于自注意力句法感知的数据库查询方法和系统 | |
CN116861269A (zh) | 工程领域的多源异构数据融合及分析方法 | |
CN116881470A (zh) | 一种生成问答对的方法及装置 | |
CN111666374A (zh) | 一种在深度语言模型中融入额外知识信息的方法 | |
CN113377844A (zh) | 面向大型关系型数据库的对话式数据模糊检索方法及装置 | |
CN112183110A (zh) | 一种基于数据中心的人工智能数据应用系统及应用方法 | |
CN117290376A (zh) | 基于大语言模型的两阶段Text2SQL模型、方法与系统 | |
CN112347121B (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 | ||
GR01 | Patent grant |