CN111984674A - 结构化查询语言的生成方法及*** - Google Patents
结构化查询语言的生成方法及*** Download PDFInfo
- Publication number
- CN111984674A CN111984674A CN202010907609.2A CN202010907609A CN111984674A CN 111984674 A CN111984674 A CN 111984674A CN 202010907609 A CN202010907609 A CN 202010907609A CN 111984674 A CN111984674 A CN 111984674A
- Authority
- CN
- China
- Prior art keywords
- index
- target
- condition
- expression
- structured query
- 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
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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种结构化查询语言的生成方法,包括:获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;遍历所述树节点,生成与所述查询条件对应的结构化查询语言。提高了结构化查询语言的生成效率和拓展性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种结构化查询语言的生成方法及***。
背景技术
现有的基于结构化查询语言对数据库进行操作的方法及装置的基本原理如下:根据需求,由相关人员人工地编写结构化查询语言,随后根据所述结构化查询语言对数据库进行所需的操作。然而,由于随着业务种类的日益丰富,所述针对数据库的操作也越来越频繁,从而与数据库之间的交互数量显著增长。因此,上述现有的技术方案存在如下问题:使用人工编写结构化查询语言效率较低。
发明内容
有鉴于此,本发明实施例提供了一种结构化查询语言的生成方法、***、计算机设备及计算机可读存储介质,用于解决使用人工编写结构化查询语言效率较低的问题。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种结构化查询语言的生成方法,包括:
获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;
根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;
根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;
遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
进一步地,获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件包括:
对所述自然语言文本进行分词处理,得到由若干个自然语言分词;
确定所述文本序列若干个自然语言分词中包含的实体;
判断所述实体是否存在指标表达式标识;
当所述实体存在指标表达式标识时,根据所述指标表达式标识从所述指标集市中获取目标指标表达式;以及
当所述实体不存在指标表达式标识时,确定所述实体为目标条件。
进一步地,预先建立实体与指标表达式标识的映射关系,所述判断所述实体是否存在指标表达式标识还包括:
当所述实体与所述指标表达式标识存在映射关系时,则确定所述实体存在指标表达式标识,否则当所述实体不存在指标表达式标识。
进一步地,预先建立多种指标类型的指标体系,所述根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式之前,所述方法还包括:
根据所述目标条件确定所述目标指标表达式所在的指标体系的指标类型。
进一步地,所述根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点包括:
解析所述目标指标表达式,得到所述目标指标表达式对应的字符串组;
将所述字符串组转为后缀表达式;
解析所述后缀表达式,根据后缀表达式和所述目标条件生成所述查询条件对应的指标树。
进一步地,所述遍历所述树节点,生成与所述查询条件对应的结构化查询语言包括:
获取所述树节点的节点内容,根据所述节点内容判断所述树节点的节点类型,所述节点类型包括计算类型和属性类型;
当所述节点类型为计算类型时,则按照预先设置的用于表示结构化查询语言中计算的词语与结构化查询语句格式的对应关系,确定树节点转换为结构化查询语句的格式;以及
当所述节点类型为属性类型时,则获取所述树节点的属性,根据预先设置的属性与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述属性转换为结构化查询语言填入所述结构化查询语句的格式的预定位置。
进一步地,将生成的所述结构化查询语言与所述自然语言文本对应存储于区块链中。
为了实现上述目的,本发明实施例还提供一种结构化查询语言的生成***,包括:
查询条件获取模块,用于获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;
目标指标表达式获取模块,用于根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;
指标树生成模块,用于根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;
结构化查询语言生成模块,语言遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
为了实现上述目的,本发明实施例还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述结构化查询语言的生成方法的步骤。
为了实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的结构化查询语言的生成方法的步骤。
本发明实施例提供的结构化查询语言的生成方法、***、计算机设备及计算机可读存储介质,本方案通过获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件,再根据目标指标表达式条件和目标条件,生成结构化查询语言,提高了结构化查询语言的生成效率和拓展性。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明实施例一之结构化查询语言的生成方法的步骤流程图;
图2为本发明实施例一之获取自然语言文本,根据所述自然语言文本获取查询条件的步骤流程图;
图3为本发明实施例一之根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树的步骤流程图;
图4为本发明实施例一之遍历所述树节点,生成与所述查询条件对应的结构化查询语言方法的步骤流程图;
图5为本发明实施例二之结构化查询语言的生成***的程序模块示意图;
图6为本发明实施例三之计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之结构化查询语言的生成方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
如图1所示,所述结构化查询语言的生成方法可以包括步骤S100~S400。其中:
步骤S100:获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件。
具体的,自然语言文本可以是由用户实时通过用户端输入获得,也可以是由用户预先通过用户端编辑并存储于数据库中,从数据库中获得。
在示例性的实施例中,如图2所示,步骤S100还可以进一步包括:
步骤S101:对所述自然语言文本进行分词处理,得到由若干个自然语言分词。
步骤S102:确定所述若干个自然语言分词中包含的实体。
具体的,实体是指现实世界中具有区别性,可以独立存在的事务或者抽象概念。例如,“违约率”、“2019年”等等都可以被认为是一个实体。在示例性的实施例中,在确定若干个自然语言分词中包含的实体还包括:识别并删除自然语言分词中的停用词,“停用词”是一些没有实际含义,普遍存在于语句中的词语。
步骤S103:判断所述实体是否存在指标表达式标识。
在示例性的实施例中,预先建立实体与指标表达式标识的映射关系,步骤S103还包括:
当所述实体与所述指标表达式标识存在映射关系时,则确定所述实体存在指标表达式标识,否则当所述实体不存在指标表达式标识。
具体的,由于指标体系通存在多个指标表达式,因此,设置指标表达式标识时用于区别指标表达式。同时,在本实施例中,一些实体存在其对应的指标表达式,例如,“违约率”“不良率”“立案率”,其中,立案率对应的指标表达式为“{立案量}/{报案量}”,另外一些实体不存在指标表达式,例如,“2019年”“最大”“学历”等。预先设置存在指标表达式的实体与其指标表达式对应的指标表达式标识的对应关系,当所述实体与所述指标表达式标识存在映射关系时,则确定所述实体存在指标表达式标识,否则当所述实体不存在指标表达式标识。
步骤S104:当所述实体存在指标表达式标识时,根据所述指标表达式标识从所述指标集市中获取目标指标表达式;以及
当所述实体不存在指标表达式标识时,确定所述实体为目标条件。
具体的,目标条件是指获取数据库中数据的约束条件。在示例性的实施例中,目标条件包括筛选条件、度量条件、维度条件和指标条件。例如,实体包括“2019年的不良率”,筛选条件为2019年,度量条件为最大、最小和平均等,维度条件为各地区、各学历等。当实体没有对应的指标表达式时,则将该实体确定为目标条件。
步骤S200:根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式。
在示例性的实施例中,预先建立多种指标类型的指标体系,所述根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式之前,所述方法还包括:
根据所述目标条件确定所述目标指标表达式所在的指标体系的指标类型。
具体的,指标体系是指存储有对应类型的多个指标表达式的数据库,其中指标表达式由开发人员基于业务需求预先写好存储于指标体系中,根据实际业务场景设置多种类型的指标体系,例如房贷违约指标体系,***违约指标体系,如果以“不良率”作为其中违约率的其中一个标准的话,不同违约指标体系中对应的“不良率”计算方法不同,从而对应不同的指标表达式,例如,在房贷违约指标体系中,不良率的指标表达式为sum([逾期本金])where([逾期天数]>90)/sum([贷款余额],而在***违约指标体系中,不良率的指标表达式为sum([逾期本金])where([逾期天数]>60)/sum([贷款余额],但是这两个指标表达式对应的实体都是“不良率”,因此,针对业务场景设置不同的指标体系,能够有效避免因为实体相同但是对应的指标表达式不相同导致指标表达式获取错误的问题,提高生成结构化查询语言的正确率。在示例性的实施例中,根据目标条件确定对应指标体系,例如,目标条件中包含“***”违约”时,则确定对应的指标体系为***违约指标体系。
步骤S300:根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点。
在示例性的实施例中,请参阅图3,步骤S300还可以进一步包括:
步骤S301:解析所述目标指标表达式,得到所述目标指标表达式对应的字符串组。
具体的,在本实施例中,指标表达式为中缀表达式,中缀表达式是指是一个通用的算术或逻辑公式表示方法,操作符是以中缀形式处于操作数的中间例如:"sum([逾期本金])where([逾期天数]>90)/sum([贷款余额])",“/”处于“sum([逾期本金])”和”sum([贷款余额])”之间。将中缀表达式进行切分,得到字符串,例如切分为"sum([逾期本金])where([逾期天数]>90)","/","sum([贷款余额])"。
步骤S302:将所述字符串组转为后缀表达式。
具体的,后缀表达式是将操作符写在操作数之后的逻辑公式表示方法,上述指标表达式的后缀表达式为"sum([逾期本金])where([逾期天数]>90)"、"sum([贷款余额])"、"/",即表达式中"/"位于"sum([逾期本金])where([逾期天数]>90)"、"sum([贷款余额])"之后。在示例性的实施例中,字符串组转换为后缀表达式的规则为:
如果遇到指标字符串,就直接将其输出。
如果遇到操作符,则将其放入到栈中,遇到左括号时我们也将其放入栈中。
如果遇到一个右括号,则将栈元素弹出,将弹出的操作符输出直到遇到左括号为止。注意,左括号只弹出并不输出。
如果遇到任何其他的操作符,如(“+”,“*”,“(”)等,从栈中弹出元素直到遇到发现更低优先级的元素(或者栈为空)为止。弹出完这些元素后,才将遇到的操作符压入到栈中,此外,只有在遇到")"的情况下才弹出"(",其他情况都不会弹出"("。
如果读到了输入的末尾,则将栈中所有元素依次弹出,得到后缀表达式。
步骤S303:解析所述后缀表达式,根据后缀表达式和所述目标条件生成所述查询条件对应的指标树。
具体的,遍历所述后缀表达式;若后缀表达式中的字符为非运算符,则将其转为sqlnode自定义指标树,查询条件同时填充到对应的select、where、group by组件中,并入栈;若为运算符,则将栈顶2个元素出栈与改运算符运算后,生成运算符父节点,将父节点入栈;栈顶最后只有一个root根节点sqlnode(结构化查询语言指标树)。
其中,指标树是指结构化的数据对象,里面有结构化查询语句的各个组件,每个组件都有生成该组件结构化查询语言的接口,各个子查询节点通过from节点相关联。目标条件和目标指标表达式分别被填充到where组件中、select和group by组件中,做为指标树的树节点。
步骤S400:遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
具体的,通过前面步骤将其转为只有一个根节点的sqlnode,从根节点出发遍历其select组件、from组件等组件部分,将树节点和sql组件转为对应的结构化查询语言,通过得到的结构化查询语言在数据库中进行相应数据的查询。
在示例性的实施例中,请参阅图4,步骤S400还可以进一步包括:
步骤S401:获取所述树节点的节点内容,根据所述节点内容判断所述树节点的节点类型,所述节点类型包括计算类型和属性类型;
具体的,节点内容是指节点对应的内容,根据节点内容判断节点类型。
步骤S402:当所述节点类型为计算类型时,则按照预先设置的用于表示结构化查询语言中计算的词语与结构化查询语句格式的对应关系,确定树节点转换为结构化查询语句的格式;以及
当所述节点类型为属性类型时,则获取所述树节点的属性,根据预先设置的属性与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述属性转换为结构化查询语言填入所述结构化查询语句的格式的预定位置。
具体的,计算类型是指该树节点表示要计算的函数,例如“SUM”求和函数,属性类型是指数据表的性质,例如,数据表的表名称,当节点内容为数据表的表名称或者表中的字段时,则确定节点类型为属性类型,当节点为计算类型时,则将该树节点转化为结构化查询语言对应的格式,当节点为属性节点时,则将属性节点转化为结构化语言的描述后,将属性对应的结构化原因填充至所述结构化查询语句的格式的预定位置。。
在示例性的实施例中,所述方法还包括:
将生成的所述结构化查询语言与所述自然语言文本对应存储于区块链中。
具体的,基于所述结构化查询语言与所述自然语言文本得到对应的摘要信息,具体来说,摘要信息由所述结构化查询语言与所述自然语言文本进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证所述结构化查询语言与所述自然语言文本是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明实施例通过获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;遍历所述树节点,生成与所述查询条件对应的结构化查询语言,提高了结构化查询语言的生成效率,通过指标表达式生成结构化表达式,提高了生成结构化查询语言的准确率。
实施例二
请继续参阅图5,示出了本发明结构化查询语言的生成***的程序模块示意图。在本实施例中,结构化查询语言的生成***20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述结构化查询语言的生成方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述结构化查询语言的生成***20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
查询条件获取模块200,用于获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件。
进一步地,查询条件获取模块200还用于:
对所述自然语言文本进行分词处理,得到由若干个自然语言分词。
确定所述文本序列若干个自然语言分词中包含的实体。
判断所述实体是否存在指标表达式标识。
进一步地,查询条件获取模块200还用于:
当所述实体与所述指标表达式标识存在映射关系时,则确定所述实体存在指标表达式标识,否则当所述实体不存在指标表达式标识。
当所述实体存在指标表达式标识时,根据所述指标表达式标识从所述指标集市中获取目标指标表达式;以及
当所述实体不存在指标表达式标识时,确定所述实体为目标条件。
目标指标表达式获取模块202,用于根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式。
进一步地,目标指标表达式获取模块202还用于:
根据所述目标条件确定所述目标指标表达式所在的指标体系的指标类型。
指标树生成模块204,用于根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点。
进一步地,指标树生成模块204还用于:
解析所述目标指标表达式,得到所述目标指标表达式对应的字符串组。
将所述字符串组转为后缀表达式。
解析所述后缀表达式,根据后缀表达式和所述目标条件生成所述查询条件对应的指标树。
结构化查询语言生成模块206,用于语言遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
进一步地,结构化查询语言生成模块206还用于:
判断所述树节点的节点类型,所述节点类型包括计算类型和属性类型;
当所述节点类型为计算类型时,则按照预先设置的用于表示结构化查询语言中计算的词语与结构化查询语句格式的对应关系,确定树节点转换为结构化查询语句的格式;以及
当所述节点类型为属性类型时,则获取所述树节点的属性,根据预先设置的属性与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述属性转换为结构化查询语言填入所述结构化查询语句的格式的预定位置。
进一步地,结构化查询语言生成模块206还用于:
将生成的所述结构化查询语言与所述自然语言文本对应存储于区块链中。
实施例三
参阅图6,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,所述计算机设备2至少包括,但不限于,可通过***总线相互通信连接存储器21、处理器22、网络接口23、以及结构化查询语言的生成***20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作***和各类应用软件,例如上述实施例的结构化查询语言的生成***20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行结构化查询语言的生成***20,以实现上述实施例的结构化查询语言的生成方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图6仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述结构化查询语言的生成***20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图5示出了所述实现结构化查询语言的生成***20实施例二的程序模块示意图,该实施例中,所述基于结构化查询语言的生成***20可以被划分为查询条件获取模块200、目标指标表达式获取模块202、指标树生成模块204和结构化查询语言生成模块206。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述结构化查询语言的生成***20在所述计算机设备2中的执行过程。所述程序模块查询条件获取模块200-结构化查询语言生成模块206的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储结构化查询语言的生成***20,被处理器执行时实现上述实施例的结构化查询语言的生成方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种结构化查询语言的生成方法,其特征在于,包括:
获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;
根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;
根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;
遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
2.根据权利要求1所述的结构化查询语言的生成方法,其特征在于,获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件包括:
对所述自然语言文本进行分词处理,得到由若干个自然语言分词;
确定所述文本序列若干个自然语言分词中包含的实体;
判断所述实体是否存在指标表达式标识;
当所述实体存在指标表达式标识时,根据所述指标表达式标识从所述指标集市中获取目标指标表达式;以及
当所述实体不存在指标表达式标识时,确定所述实体为目标条件。
3.根据权利要求2所述的结构化查询语言的生成方法,其特征在于,预先建立实体与指标表达式标识的映射关系,所述判断所述实体是否存在指标表达式标识还包括:
当所述实体与所述指标表达式标识存在映射关系时,则确定所述实体存在指标表达式标识,否则当所述实体不存在指标表达式标识。
4.根据权利要求3所述的结构化查询语言的生成方法,其特征在于,预先建立多种指标类型的指标体系,所述根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式之前,所述方法还包括:
根据所述目标条件确定所述目标指标表达式所在的指标体系的指标类型。
5.根据权利要求4所述的结构化查询语言的生成方法,其特征在于,所述根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点包括:
解析所述目标指标表达式,得到所述目标指标表达式对应的字符串组;
将所述字符串组转为后缀表达式;
解析所述后缀表达式,根据后缀表达式和所述目标条件生成所述查询条件对应的指标树。
6.根据权利要求5所述的结构化查询语言的生成方法,其特征在于,所述遍历所述树节点,生成与所述查询条件对应的结构化查询语言包括:
获取所述树节点的节点内容,根据所述节点内容判断所述树节点的节点类型,所述节点类型包括计算类型和属性类型;
当所述节点类型为计算类型时,则按照预先设置的用于表示结构化查询语言中计算的词语与结构化查询语句格式的对应关系,确定树节点转换为结构化查询语句的格式;以及
当所述节点类型为属性类型时,则获取所述树节点的属性,根据预先设置的属性与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述属性转换为结构化查询语言填入所述结构化查询语句的格式的预定位置。
7.根据权利要求6所述的结构化查询语言的生成方法,其特征在于,所述方法还包括:
将生成的所述结构化查询语言与所述自然语言文本对应存储于区块链中。
8.一种结构化查询语言的生成***,其特征在于,包括:
查询条件获取模块,用于获取自然语言文本,根据所述自然语言文本获取查询条件,所述查询条件包括目标指标表达式条件和目标条件;
目标指标表达式获取模块,用于根据所述目标指标表达式条件,从指标集市中获取与所述查询条件对应的目标指标表达式;
指标树生成模块,用于根据所述目标条件和所述目标指标表达式,生成与所述查询条件对应的指标树,所述指标树包括多个树节点;
结构化查询语言生成模块,语言遍历所述树节点,生成与所述查询条件对应的结构化查询语言。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的结构化查询语言的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至7中任一项所述的结构化查询语言的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010907609.2A CN111984674A (zh) | 2020-09-02 | 2020-09-02 | 结构化查询语言的生成方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010907609.2A CN111984674A (zh) | 2020-09-02 | 2020-09-02 | 结构化查询语言的生成方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984674A true CN111984674A (zh) | 2020-11-24 |
Family
ID=73447008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010907609.2A Pending CN111984674A (zh) | 2020-09-02 | 2020-09-02 | 结构化查询语言的生成方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984674A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490709A (zh) * | 2021-12-28 | 2022-05-13 | 北京百度网讯科技有限公司 | 文本生成方法、装置、电子设备及存储介质 |
CN116680444A (zh) * | 2023-08-03 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
-
2020
- 2020-09-02 CN CN202010907609.2A patent/CN111984674A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490709A (zh) * | 2021-12-28 | 2022-05-13 | 北京百度网讯科技有限公司 | 文本生成方法、装置、电子设备及存储介质 |
CN114490709B (zh) * | 2021-12-28 | 2023-03-24 | 北京百度网讯科技有限公司 | 文本生成方法、装置、电子设备及存储介质 |
CN116680444A (zh) * | 2023-08-03 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116680444B (zh) * | 2023-08-03 | 2024-01-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475513B (zh) | 表单生成方法、装置、电子设备及介质 | |
CN112329419A (zh) | 文档编辑方法、装置、服务器、终端和存储介质 | |
CN110263311B (zh) | 一种网络页面的生成方法及设备 | |
WO2020259141A1 (zh) | 一种文件处理方法、装置及计算机设备 | |
CN111581210A (zh) | 数据的导入方法及*** | |
CN112036145A (zh) | 财务报表的识别方法、装置、计算机设备与可读存储介质 | |
CN111984674A (zh) | 结构化查询语言的生成方法及*** | |
CN112598289A (zh) | 指标配置方法、***、计算机设备及计算机可读存储介质 | |
CN110990403A (zh) | 业务数据的存储方法、***、计算机设备及存储介质 | |
CN109146095A (zh) | 多业务***问题的处理方法和装置 | |
CN114416036A (zh) | 业务需求处理方法、***、设备及介质 | |
CN111666087A (zh) | 运算规则更新方法、装置、计算机***及可读存储介质 | |
CN111475494A (zh) | 一种海量数据处理方法、***、终端及存储介质 | |
CN112181430A (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
CN112000692A (zh) | 页面查询反馈方法、装置、计算机设备及可读存储介质 | |
CN110309496B (zh) | 数据汇总方法、电子装置及计算机可读存储介质 | |
CN112069808A (zh) | 融资风控方法、装置、计算机设备及存储介质 | |
CN112597023A (zh) | 基于导图的案例管理方法、装置、计算机设备及存储介质 | |
CN111159985B (zh) | 数据导出方法、装置、计算机设备和计算机可读存储介质 | |
CN112579608A (zh) | 案件数据查询方法、***、设备及计算机可读存储介质 | |
CN111324645B (zh) | 区块链的数据处理方法及装置 | |
CN109325167A (zh) | 特征分析方法、装置、设备、计算机可读存储介质 | |
CN112631719B (zh) | 数据预测模型调用方法、装置、设备和存储介质 | |
CN114140232A (zh) | 一种会计数据转换方法、装置及电子设备 | |
CN113190381A (zh) | 数据备份方法、***、设备及存储介质 |
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 |