CN107451153B - 输出结构化查询语句的方法和装置 - Google Patents
输出结构化查询语句的方法和装置 Download PDFInfo
- Publication number
- CN107451153B CN107451153B CN201610377791.9A CN201610377791A CN107451153B CN 107451153 B CN107451153 B CN 107451153B CN 201610377791 A CN201610377791 A CN 201610377791A CN 107451153 B CN107451153 B CN 107451153B
- Authority
- CN
- China
- Prior art keywords
- structured query
- node
- name
- node content
- information item
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了输出结构化查询语句的方法和装置。所述方法的一具体实施方式包括:接收用户输入的自然语言信息;将所述自然语言信息转换为依存句法树;在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;输出所述依存句法树转换得到的结构化查询语句。该实施方式提高了输出结构化查询语句的精确度。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及输出结构化查询语句的方法和装置。
背景技术
信息时代,各行各业的数据都呈爆炸式的增长,数据已经成为了重要的生产力。而数据库作为数据的载体,得到了越来越广泛的应用。人们需要从数据库中查询各种数据,需要掌握标准的结构化查询语言(Structured Query Language,SQL)。但是对于许多非专业人员来说,掌握SQL比较困难,需要学习SQL的各种语法,所以急切需要一种将自然语言转换为结构化查询语句的方法以供非专业人员使用数据库。
现有的生成结构化查询语句的方法通常是将自然语言查询语句与查询模板进行匹配,得到与自然语言查询语句匹配的查询模板,再根据与自然语言查询语句匹配的查询模板,得到结构化查询语句。然而,这种方法需要事先由人工配置查询模板,并为每个查询模板编写结构化查询语句,成本很高,效率低下。并且由于自然语言的表达方式不同,以及自然语言是嵌套问句的形式时,查询模板匹配的准确性不高,无法满足大规模工业化应用的要求。
发明内容
本申请的目的在于提出一种改进的输出结构化查询语句的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种输出结构化查询语句的方法,所述方法包括:接收用户输入的自然语言信息;将所述自然语言信息转换为依存句法树;在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;输出所述依存句法树转换得到的结构化查询语句。
在一些实施例中,所述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及所述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句,包括:若所述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树子树包括的节点内容转换为结构化查询语句的格式;若所述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取所述节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
在一些实施例中,所述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句,还包括:判断所述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;如果否,则查询所述第一表名所在表与所述第二表名所在表的关联语句;将所述关联语句加入所述结构化查询语句。
在一些实施例中,所述若所述子树包括的节点内容的信息项类型为表名、字段名或属性,获取所述节点内容所在表的表名,包括:若所述子树包括的节点内容的信息项类型为表名,则所述节点内容所在表的表名为所述信息项的内容;若所述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找所述节点内容所在表的表名,若未查找所述节点内容所在表的表名,则输出用于询问所述节点内容所在表的表名,以获取用户输入的所述节点内容所在表的表名。
在一些实施例中,所述信息项集合中的信息项包括:预定数据库的中包括的各个表的表名,所述各个表包括的字段的字段名,所述字段的属性的枚举值,所述表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
第二方面,本申请提供了一种输出结构化查询语句装置,所述装置包括:接收单元,配置用于接收用户输入的自然语言信息;依存句法树转换单元,配置用于将所述自然语言信息转换为依存句法树;确定单元,配置用于在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;获取单元,配置用于以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;结构化查询语句转换单元,配置用于按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;输出单元,配置用于输出所述依存句法树转换得到的结构化查询语句。
在一些实施例中,所述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及所述结构化查询语句转换单元进一步配置用于:若所述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树子树包括的节点内容转换为结构化查询语句的格式;若所述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取所述节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
在一些实施例中,结构化查询语句转换单元进一步配置用于:判断所述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;如果否,则查询所述第一表名所在表与所述第二表名所在表的关联语句;将所述关联语句加入所述结构化查询语句。
在一些实施例中,其特征在于,结构化查询语句转换单元进一步配置用于:若所述子树包括的节点内容的信息项类型为表名,则所述节点内容所在表的表名为所述信息项的内容;若所述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找所述节点内容所在表的表名,若未查找所述节点内容所在表的表名,则输出用于询问所述节点内容所在表的表名,以获取用户输入的所述节点内容所在表的表名。
在一些实施例中,所述信息项集合中的信息项包括:预定数据库的中包括的各个表的表名,所述各个表包括的字段的字段名,所述字段的属性的枚举值,所述表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
本申请提供的输出结构化查询语句的方法和装置,通过接收用户输入的自然语言信息,将自然语言信息转换为依存句法树,并在预先获取的自然语言形式的各个信息项的集合中查询依存句法树中每个节点的节点内容,以确定节点内容的信息项类型,而后以依存句法树中的各个节点为子节点,获取依存句法树的各个子树,并按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将各个子树包括的节点内容依次转换为结构化查询语句,最后输出依存句法树转换得到的结构化查询语句,提高了输出结构化查询语句的精确度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的输出结构化查询语句的方法的一个实施例的流程图;
图3是根据本申请的输出结构化查询语句的方法的一个应用场景的示意图;
图4是根据本申请的输出结构化查询语句的方法的又一个实施例的流程图;
图5是根据本申请的输出结构化查询语句装置的一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的输出结构化查询语句的方法或装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种软件,例如,信息查询类软件、数据库类软件、自然语言处理类软件,可以接收用户输入的自然语言信息,而后输出上述自然语言信息转换的结构化查询语句。终端设备101、102、103包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是对终端设备101、102、103上运行的程序提供支持的服务器,服务器105接收用户通过终端设备101、102、103输入的自然语言信息,将自然语言信息转换为SQL语句,并向终端发送所述SQL语句。
服务器105也可以是数据库服务器,终端设备101、102、103可以向服务器105发送数据查找请求,服务器105响应于数据查找请求向终端设备101、102、103提供相应的数据。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在没有专门的数据库服务器和网络的情况下,数据库也可以存储在终端设备101、102、103上。
需要说明的是,本申请实施例所提供的输出结构化查询语句的方法可以由终端设备101、102、103执行,也可以由服务器105执行,相应地,输出结构化查询语句的装置可以设置于终端设备101、102、103中,也可以设置于服务器105中。
继续参考图2,其示出了根据本申请的输出结构化查询语句的方法的一个实施例的流程200。上述输出结构化查询语句的方法,包括以下步骤:
步骤201,接收用户输入的自然语言信息。
在本实施例中,输出结构化查询语句的方法运行于其上的电子设备(例如图1所示的终端或服务器)可以接收用户输入的文字、图像或语音形式的自然语言信息。若自然语言信息为图像或语音形式,则通过图像识别或语音识别技术将其转换为文字形式。
步骤202,将自然语言信息转换为依存句法树。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以通过常用的句法分析器,将步骤201中接收的自然语言信息转换为依存句法树。依存语法通过分析语言单位内成分之间的依存关系揭示其句法结构,主张句子中核心动词是支配其它成分的中心成分,而它本身却不受其它任何成分的支配,所有受支配成分都以某种依存关系从属于支配者。依存语法有五条公理:一个句子中只有一个成分是独立的;其它成分直接依存于某一成分;任何一个成分都不能依存于两个或两个以上的成分;如果A成分直接依存于B成分,而C成分在句中位于A和B之间,那么C或者直接依存于B,或者直接依存处于A和B之间的某一成分;中心成分左右两边的其它成分相互不发生关系。比如自然语言为:查找小明的年龄。这句话经过依存语法分析会得到如表1所示结果,生成的依存句法树为:查找←年龄←小明。其中,箭头方向表明了词与词之间的依存关系。
表1
序号 | 词 | 词性 | 中心词 | 句法关系 |
0 | 查找 | 动词 | -1 | 核心词 |
1 | 小明 | 人名 | 2 | 定语 |
2 | 年龄 | 名词 | 0 | 宾语 |
在本实施例中,上述电子设备可以解析用户输入的自然语言(分词,去掉停用词,实体识别,词性标注等),结合预先训练的模型,生成句法依存树,可以使用宾夕法尼亚大学中文树库(Penn Chinese Treebank),使用Penn2Malt工具将宾夕法尼亚大学中文树库的短语文法树库转换成依存文法树库,而后可以采用开源句法分析器Maltparser来训练将自然语言信息转换为依存句法树的模型。
在本实施例的一些可选的实现方式中,可以首先提取数据库语义模型,例如,数据库语义模型G=(T,C,R,A,S,D),其中,T代表数据库的表名的集合,初始状态需要将数据库的每个表名放到集合T中;C代表数据库中每个表的字段集合,如果数据存储结果为哈希表,键key为字段名,值value为表名和字段类型;R代表数据库中表与表之间的自然语言关联关系的集合,R=(word,table,desc),word为表示关联关系的自然语言词语(表关联词),table为关联表的名字,desc为表关联细节,存储关联表与之外键关联的表的所有关系(包括传递性),例如,可以是
关联表+关联外键表1:关联表的外键+关联外键表1的主键
关联表+关联外键表2:关联表的外键+关联外键表2的主键
关联外键表1+关联外键表2:关联表+关联外键表1,关联表+关联外键表2;
A代表字段属性值的枚举,如果一个表的字段具体的属性值的取值范围有限,可以将具体的属性值转化为枚举类型,数据存储结果为哈希表,key为字段名,value为枚举类型;S代表数据库中包括的表的表名,字段名,字段属性枚举值的同义词,相似词,输出存储格式为哈希表,key为同义词,value为表名、字段名等的标准的表达方式,这样可以更大限度的匹配用户输入的自然语言,提高准确率;D代表词典:包含表关联词,连词,聚合词,比较词等,对应SQL中的各种运算及函数。例如,逻辑运算对应词语有:“and”代表并且、以及、和、同时,“or”代表或者、或,“not exist”代表不存在、没有;关系代词对应词语或符号有:“>”代表大于,“=”代表等于,“<”代表小于,“>=”代表大于等于,“<=”代表小于等于,“!=”代表不等于;聚合函数对应词语有:“Count”代表总数、个数、数量,“Sum”代表和,“Avg”代表平均,“Max”代表最大,“Min”代表最小,“group by”代表每,每个;还有其他的一些词语:“like”代表包含,“between....and”代表在…之间。
在本实施例的一些可选的实现方式中,可以首先对用户输入的自然语言进行分词、删除停用词、实体识别、词性标注。实体识别是指基于数据库语义模型,至少包含表名实体识别,字段实体识别,字段属性枚举实体识别,此外包括但不限于商品名实体识别,人名实体识别,地名实体识别等。其次,可以将分词、删除停用词、实体识别、词性标注的结果通过maltparser解析器得到依存句法树。每个依存句法树的节点node=(word,pos,index,entity_type,entity_word),其中,word代表节点内容,pos代表节点内容的词性,index代表父节点索引,entit_type代表对节点内容实体识别类型,entity_word代表节点内容实体识别的结果,如表名或字段名。
步骤203,在预先获取的自然语言形式的各个信息项的集合中查询依存句法树中每个节点的节点内容,以确定节点内容的信息项类型。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以在预先获取的自然语言形式的各个信息项的集合中查询步骤202中得到的依存句法树中每个节点的节点内容,以确定节点内容的信息项类型。其中,上述各个信息项的集合是对预定数据库进行分析得到的。预定数据库为SQL语句的查询对象。确定节点内容的信息项类型后可将节点作为节点类型,例如,节点内容的信息项类型为表名,那么,节点即为表名节点。
在本实施例的一些可选的实现方式中,上述信息项集合中的信息项包括:预定数据库的中包括的各个表的表名,上述各个表包括的字段的字段名,上述字段的属性的枚举值,上述表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
在本实施例的一些可选的实现方式中,上述信息项集合中的信息项还可以包括用于表示预定数据库中表与表之间的关联关系的自然语言。
在本实施例的一些可选的实现方式中,在查询依存句法树中每个节点的节点内容时,如果查询到节点内容为表名、字段名、枚举值的同义词或近义词,则将其替换为标准的表名、字段名、枚举值。
在本实施例的一些可选的实现方式中,如果未查询到节点的节点内容,可默认其信息项类型为属性值,或向用户询问其信息项类型。
步骤204,以依存句法树中的各个节点为子节点,获取依存句法树的各个子树。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以以步骤202中得到的依存句法树中的各个节点为子节点,获取依存句法树的各个子树,依存句法树本身可以理解为最大的子树。可以从叶子节点起,以各个节点为子节点,自底向上,获取各个子树,可将子树理解为语义块,语义块对应依存树中的以某个节点(X)为根节点的一颗子树。根据X节点内容的信息项类型的不同,可将X节点分为表名节点、字段名节点、连接节点、关联节点。X节点的子节点可以为字段属性值节点、关联节点,或者X节点可以连接着语义块。其中,表名节点对应数据库的表名;字段名节点对应数据库的字段名;关联节点对应表关联词;连接节点对应连接词(并且,或者等)或比较关系词(大于等于,不大于等);值节点对应表字段具体的属性值。可以将语义块Block可定义为:Block=(N,T,D),N代表语义块内的节点数组,T代表语义块涉及的表名,初始为空,D代表该语义块对应的SQL,初始为空。
步骤205,按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将各个子树包括的节点内容依次转换为结构化查询语句。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将步骤204中获取的各个子树包括的节点内容依次转换为结构化查询语句。
在本实施例的一些可选的实现方式中,上述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及上述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将上述各个子树包括的节点内容依次转换为结构化查询语句,包括:若上述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树依次转换为结构化查询语句的格式;若上述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取上述节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及上述结构化查询语句的格式,将上述表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
作为示例,叶子节点leaf,父节点parent,兄弟节点sibling(如果存在)构成一个语义块Block,可以首先解析叶子节点leaf,兄弟节点sibling。如果节点为值节点,那么扫描语义模型G,得到对应的字段column,解析为column=node.word,同时把字段涉及的表加入到Block.T中。如果字段同时属于多个表,则查看叶子节点。通常情况下,叶子节点为表节点,将表节点对应的表加入到Block.T中。如果没有叶子节点,无法确定表,可以采用交互式问答,向用户提问值节点对应的字段指的是哪一张表。如果节点为表节点,扫描语义模型G,得到对应的表名table_name,加入到Block.T中。如果节点为关联节点,扫描语义模型G,得到对应的表名table_name,加入到Block.T中。
随后,扫描父节点,如果父节点parent为连接节点,扫描语义模型G,得到对应的连接关系,然后扫描叶子节点。然后按照连接关系,合并左、右子节点,将左、右子节点解析结果按照连接关系加入到Block.D中,将左,右子节点涉及的表加入到Block.T中。
如果父节点parent为值节点,那么扫描语义模型G,得到对应的字段column,解析为column=node.word,同时分析值节点的子节点,此时子节点应为字段节点,将字段节点对应的表加入到Block.T中。如果子节点不为字段节点或者该字段同时属于多个表,将column-?加入到Block.T中,“?”代表待后续添加的信息。
如果父节点parent为表节点,且父节点为整个语义依存树的根节点,那么对应的SQL语句格式为select*,同时扫描语义模型G,得到对应的表名table_name,加入到Block.T中。如果子节点为包含聚合节点的语义块,查找聚合函数的字段对应的表A是否和表节点对应的表B一致,如果不一致,需要扫描语义模型G中的关联关系集合R,将A,B表的关联关系加入到Block.D中。同时解析为B.主键(in select fun(column)from A)加入到Block.D中。
如果父节点parent为字段节点,且父节点为整个语义依存树的根节点,找到字段节点对应的字段column,那么把解析结果select column加入到Block.D中,同时扫描语义模型G,得到对应的表名table_name,加入到Block.T。
如果父节点parent为聚合节点,扫描语义模型G,得到对应的聚合函数fun,如果子节点为字段节点,解析子节点对应的字段column及表table_name,将column作为聚合函数的参数,解析为fun(column)加入到Block.D中将table_name加入到Block.T中,如果子节点不为字段节点,解析为fun(?)加入到Block.D中,同时记录该聚合节点的位置,待后续处理。
如果节点为语义块,查找Block.D中是否存在未解析的部分,如聚合函数fun(?),查找语义块中聚合节点的父节点,父节点此时应该是字段节点对应字段column,将fun(?)替换为fun(column),同时将column对应的表加入到Block.T中。
如果节点为语义块,查找Block.T中是否存在未解析的部分,如column-?,查找Block.T中的其余已经确定的表是否包含字段column,如果包含则删除column-?,否则保留,继续解析。
如果节点为语义块,扫描Block.T中的表,分析语义模型G中的R,将表与表之间的关联关系加入Block.D中。
判断语义块Block中涉及的字段是否在同一个表中,如果在同一个表中,继续向上合并。如果不在同一个表中,分析bolck.D中是否存在冲突,如同一个字段等于不同的值,这时候就要嵌套查询。首先找出不相同的表,扫描语义模型G中的R,得到表的关联语句R(Block.T),同时找出父节点parent对应的表的主键key。找出冲突字段,将SQL改为parent.key in(select a.key from(select*from Block.T where column=value1and R(Block.T))a,(select*from Block.T where column=value2and R(Block.T))b wherea.key=b.key)
解析语义块完成后,将语义块作为叶子节点leaf,继续向上解析,重复解析步骤,向上递归解析直到根节点,最终输出完整的SQL语句。如果最后SQL还有未解析的部分(未确定的字段名,或者表名),可以采用交互式问题,向用户提问,以便继续解析。
在本实施例的一些可选的实现方式中,上述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将上述各个子树包括的节点内容依次转换为结构化查询语句,还包括:判断上述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;如果否,则查询上述第一表名所在表与上述第二表名所在表的关联语句;将上述关联语句加入上述结构化查询语句。
在本实施例的一些可选的实现方式中,上述若上述子树包括的节点内容的信息项类型为表名、字段名或属性,获取上述节点内容所在表的表名,包括:若上述子树包括的节点内容的信息项类型为表名,则上述节点内容所在表的表名为上述信息项的内容;若上述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找上述节点内容所在表的表名,若未查找上述节点内容所在表的表名,则输出用于询问上述节点内容所在表的表名,以获取用户输入的上述节点内容所在表的表名。由于节点内容可能是表名、字段名或属性的同义词或近似词,因此需要将其替换为上述信息项的内容,即标准的表名、字段名或属性。通过标准的字段名或属性可以查找其所在表的表名。
步骤206,输出依存句法树转换得到的结构化查询语句。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以输出步骤205中依存句法树转换得到的结构化查询语句,可以是直接向数据库输出结构化查询语句,以获得查询结果,也可以仅显示结构化查询语句,供用户进一步操作。
继续参见图3,图3是根据本实施例的输出结构化查询语句的方法的应用场景的一个示意图。在图3的应用场景中,数据库包括学生表student(sno,sname,age,sex)、课程表course(cno,cname,description)和选修表choose(sno,cno),其中:sno表示学生编号,sname表示姓名,age表示年龄,sex表示性别,cno表示课程编号,cname表示课程名称,description表示课程描述。数据库语义模型G=(T,C,R1,R2,A,S,R,D),其中,表名集合T包括:学生-student,课程-course,选修-choose。每个表的字段集合C包括:学生编号-student,姓名-student,年龄-student,性别-student,课程编号-course,课程名称-course,课程描述-course。表与表之间的关联关系集合R=(word,table,desc),表示关联关系的关联词word=选修,关联表的名字table=choose,表与表之间具体的关联关系desc=(student+choose:sno+sno,course+choose:cno+cno,student+course:student+choose,course+choose)。字段属性的枚举值A={‘性别’->’男,女’,’课程名’->’心理课,美术课’}。表名,字段名,字段属性枚举值的同义词,相似词的集合S=(‘名字’->‘姓名’,’年纪’->’年龄’),D为词典。
作为示例,用户输入的自然语言信息为“性别为男并且选修心理课的学生姓名”,生成的语义依存树如3所示,首先从叶子节点扫描,得到子树301、子树302、子树303、子树304和子树305,它们分别对应语义块1、语义块2、语义块3、语义块4和语义块5。
解析语义块1,“性别”节点通过扫描G,得知是数据库student表的一个字段sex,性别的父节点的节点内容是关系代词“为”,查看“为”节点的另一个子节点“男”节点,扫描G,得到“男”节点是字段属性的枚举值,语义块1:Block1=(D->student.sex=’男’,T->’student’)。
解析语义块2,“选修”节点通过扫描G,得知是关联关系或表名节点,涉及的表为course。在G中查询“心理课”节点,得到“心理课”节点是表course字段cname属性的枚举值,“心理课”节点对应的SQL为course.cname=’心理课’,语义块2:Block2=(D->course.cname=’心理课’,T->’choose,course’)。
解析语义块3,扫描G,得到“并且”节点为连接代词,对应and,则语义块3:Block3=(D->Student.sex=’男’and course.cname=’心理课’,T->’student,choose,course’)。
解析语义块4,扫描G,得到“学生”节点为表名节点,对应student表,表明与语义块3中的表有外键关联关系,表student与语义块3涉及的表集合需要关联起来。
对于student->student为同一个表,不需要关联;
对于student->choose,扫描语义模型G,得知关联语句为student.sno=choose.sno;
对于student->course,扫描语义模型G,得知关联语句为student.sno=choose.sno and course.cno=choose.cno;
将关联语句用and关键字连接,然后去掉重复的关联语句得到最终关联SQL语句为:student.sno=choose.sno and course.cno=choose.cno,语义块4:Block4=(Student.sex=’男’and course.cname=’心理课’and student.sno=choose.sno andcourse.cno=choose.cno,T->’student,choose,course’)。
解析语义块5,“姓名”节点通过扫描G,得知是数据库student的一个字段name,由于“姓名”节点为根节点,则name就是最终的查询字段,语义块5:Block5=(D->’student.sex=’男’and course.cname=’心理课’and student.sno=choose.sno andcourse.cno=choose.cno’,T->’student,choose,course’)。
最终的SQL语句为:select student.name from Block.T where Block.D selectstudent.name from student,course,choose where Student.sex=’男’andcourse.cname=’心理课’and student.sno=choose.sno and course.cno=choose.cno
本申请的上述实施例提供的方法通过接收用户输入的自然语言信息,将自然语言信息转换为依存句法树,并在预先获取的自然语言形式的各个信息项的集合中查询依存句法树中每个节点的节点内容,以确定节点内容的信息项类型,而后以依存句法树中的各个节点为子节点,获取依存句法树的各个子树,并按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将各个子树包括的节点内容依次转换为结构化查询语句,最后输出依存句法树转换得到的结构化查询语句,提高了输出结构化查询语句的精确度。
进一步参考图4,其示出了输出结构化查询语句的方法的又一个实施例的流程400。该输出结构化查询语句的方法的流程400,包括以下步骤:
步骤401,接收用户输入的自然语言信息。
在本实施例中,输出结构化查询语句的方法运行于其上的电子设备(例如图1所示的终端或服务器)可以接收用户输入的文字、图像或语音形式的自然语言信息。若自然语言信息为图像或语音形式,则通过图像识别或语音识别技术将其转换为文字形式。
步骤402,将自然语言信息转换为依存句法树。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以通过常用的句法分析器,将步骤401中接收的自然语言信息转换为依存句法树。
步骤403,在预先获取的自然语言形式的各个信息项的集合中查询依存句法树中每个节点的节点内容,以确定节点内容的信息项类型。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以在预先获取的自然语言形式的各个信息项的集合中查询步骤402中得到的依存句法树中每个节点的节点内容,以确定节点内容的信息项类型。
在本实施例的一些可选的实现方式中,上述信息项集合中的信息项包括:预定数据库的中包括的各个表的表名,上述各个表包括的字段的字段名,上述字段的属性的枚举值,上述表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
步骤404,以依存句法树中的各个节点为子节点,获取依存句法树的各个子树。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以以步骤402中得到的依存句法树中的各个节点为子节点,获取依存句法树的各个子树,依存句法树本身可以理解为最大的子树。
步骤405,若子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树子树包括的节点内容转换为结构化查询语句的格式。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以判断步骤404中获取的各个子树包括的节点内容的信息项类型,若子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树子树包括的节点内容转换为结构化查询语句的格式。将节点内容依次转换为结构化查询语句。上述用于表示结构化查询语言中运算和函数的词语在理解时也可以理解为包括连接代词,例如,“为”,“并且”。“为”转换为SQL时对应符号“=”,格式就是等号两边是相等的内容,“并且”。转换为SQL时对应“and”,“and”前后为并列的内容。
步骤406,若子树包括的节点内容的信息项类型为表名、字段名或属性,则获取节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及结构化查询语句的格式,将表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。例如,自然语言表名“学生”预先设置的对应的SQL为“student”。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以判断步骤404中获取的各个子树包括的节点内容的信息项类型,若子树包括的节点内容的信息项类型为表名、字段名或属性,则获取节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及结构化查询语句的格式,将表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
步骤407,输出依存句法树转换得到的结构化查询语句。
在本实施例中,上述电子设备(例如图1所示的终端或服务器)可以输出步骤405中或步骤406中得到的结构化查询语句,可以是直接向数据库输出结构化查询语句,已获得查询结果,也可以仅显示结构化查询语句,供用户进一步操作。
从图4中可以看出,与图2对应的实施例相比,本实施例中的输出结构化查询语句的方法的流程400多出了步骤405和步骤406。由此,本实施例描述的方案可以更快速的输出的结构化查询语句。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种输出结构化查询语句装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例上述的输出结构化查询语句装置500包括:请求接收单元501、依存句法树转换单元502、确定单元503、获取单元504、结构化查询语句转换单元505和输出单元506。其中,接收单元501,配置用于接收用户输入的自然语言信息;依存句法树转换单元502,配置用于将上述自然语言信息转换为依存句法树;确定单元503,配置用于在预先获取的自然语言形式的各个信息项的集合中查询上述依存句法树中每个节点的节点内容,以确定上述节点内容的信息项类型;获取单元504,配置用于以上述依存句法树中的各个节点为子节点,获取上述依存句法树的各个子树;结构化查询语句转换单元505,配置用于按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将上述各个子树包括的节点内容依次转换为结构化查询语句;输出单元506,配置用于输出上述依存句法树转换得到的结构化查询语句。
在本实施例中,输出结构化查询语句装置500中请求接收单元501、依存句法树转换单元502、确定单元503、获取单元504、结构化查询语句转换单元505和输出单元506的具体处理可参看图2对应实施例中的步骤201、步骤202、步骤203、步骤204、步骤205和步骤206的实现方式的相关描述,在此不再赘述。
在本实施例的一些可选的实现方式中,上述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及上述结构化查询语句转换单元505进一步配置用于:若上述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树子树包括的节点内容转换为结构化查询语句的格式;若上述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取上述节点内容所在表的表名,并按照预先设置的自然语言与结构化查询语言的对应关系以及上述结构化查询语句的格式,将上述表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
在本实施例的一些可选的实现方式中,结构化查询语句转换单元505进一步配置用于:判断上述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;如果否,则查询上述第一表名所在表与上述第二表名所在表的关联语句;将上述关联语句加入上述结构化查询语句。
在本实施例的一些可选的实现方式中,其特征在于,结构化查询语句转换单元505进一步配置用于:若上述子树包括的节点内容的信息项类型为表名,则上述节点内容所在表的表名为上述信息项的内容;若上述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找上述节点内容所在表的表名,若未查找上述节点内容所在表的表名,则输出用于询问上述节点内容所在表的表名,以获取用户输入的上述节点内容所在表的表名。
在本实施例的一些可选的实现方式中,上述信息项集合中的信息项包括:预定数据库的中包括的各个表的表名,上述各个表包括的字段的字段名,上述字段的属性的枚举值,上述表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
下面参考图6,其示出了适于用来实现本申请实施例的服务器的计算机系统600的结构示意图。
如图5所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分606加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括硬盘等的存储部分606;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器608也根据需要连接至I/O接口605。可拆卸介质609,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器608上,以便于从其上读出的计算机程序根据需要被安装入存储部分606。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分607从网络上被下载和安装,和/或从可拆卸介质609被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括请求接收单元、依存句法树转换单元、确定单元、获取单元、结构化查询语句转换单元和输出单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收用户输入的自然语言信息的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收用户输入的自然语言信息;将所述自然语言信息转换为依存句法树;在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;输出所述依存句法树转换得到的结构化查询语句。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种输出结构化查询语句的方法,其特征在于,所述方法包括:
接收用户输入的自然语言信息;
将所述自然语言信息转换为依存句法树;
根据数据库语义模型,在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;
以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;
按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;
输出所述依存句法树转换得到的结构化查询语句。
2.根据权利要求1所述的方法,其特征在于,所述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及
所述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句,包括:
若所述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树包括的节点内容转换为结构化查询语句的格式;
若所述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取所述节点内容所在表的表名、字段名或属性,并按照预先设置的自然语言与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述所在表的表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
3.根据权利要求2所述的方法,其特征在于,所述按照预先设置的信息项类型与结构化查询语句格式以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句,还包括:
判断所述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;
如果否,则查询所述第一表名所在表与所述第二表名所在表的关联语句;
将所述关联语句加入所述结构化查询语句。
4.根据权利要求2所述的方法,其特征在于,所述若所述子树包括的节点内容的信息项类型为表名、字段名或属性,获取所述节点内容所在表的表名,包括:
若所述子树包括的节点内容的信息项类型为表名,则所述节点内容所在表的表名为所述信息项的内容;
若所述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找所述节点内容所在表的表名,若未查找到所述节点内容所在表的表名,则输出用于询问所述节点内容所在表的表名,以获取用户输入的所述节点内容所在表的表名。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述信息项集合中的信息项包括:预定数据库包括的各个表的表名,所述各个表包括的字段的字段名,所述字段的属性的枚举值,所述各个表的表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
6.一种输出结构化查询语句的装置,其特征在于,所述装置包括:
接收单元,配置用于接收用户输入的自然语言信息;
依存句法树转换单元,配置用于将所述自然语言信息转换为依存句法树;
确定单元,配置用于根据数据库语义模型,在预先获取的自然语言形式的各个信息项的集合中查询所述依存句法树中每个节点的节点内容,以确定所述节点内容的信息项类型;
获取单元,配置用于以所述依存句法树中的各个节点为子节点,获取所述依存句法树的各个子树;
结构化查询语句转换单元,配置用于按照预先设置的信息项类型与结构化查询语句的格式的对应关系以及自然语言与结构化查询语言的对应关系,自底向上将所述各个子树包括的节点内容依次转换为结构化查询语句;
输出单元,配置用于输出所述依存句法树转换得到的结构化查询语句。
7.根据权利要求6所述的装置,其特征在于,所述信息项类型包括以下至少一项:表名、字段名、属性、用于表示结构化查询语言中运算和函数的词语;以及
所述结构化查询语句转换单元进一步配置用于:
若所述子树包括的节点内容的信息项类型为用于表示结构化查询语言中运算和函数的词语,则按照预先设置的用于表示结构化查询语言中运算和函数的词语与结构化查询语句格式的对应关系,确定子树包括的节点内容转换为结构化查询语句的格式;
若所述子树包括的节点内容的信息项类型为表名、字段名或属性,则获取所述节点内容所在表的表名、字段名或属性,并按照预先设置的自然语言与结构化查询语言的对应关系以及所述结构化查询语句的格式,将所述所在表的表名、字段名或属性转换为结构化查询语言填入结构化查询语句的预定位置。
8.根据权利要求7所述的装置,其特征在于,结构化查询语句转换单元进一步配置用于:
判断所述节点内容所在表的第一表名与已转换为结构化查询语句的子树包括的节点内容所在表的第二表名是否一致;
如果否,则查询所述第一表名所在表与所述第二表名所在表的关联语句;
将所述关联语句加入所述结构化查询语句。
9.根据权利要求7所述的装置,其特征在于,其特征在于,结构化查询语句转换单元进一步配置用于:
若所述子树包括的节点内容的信息项类型为表名,则所述节点内容所在表的表名为所述信息项的内容;
若所述子树包括的节点内容的信息项类型为字段名或属性,则通过信息项查找所述节点内容所在表的表名,若未查找到所述节点内容所在表的表名,则输出用于询问所述节点内容所在表的表名,以获取用户输入的所述节点内容所在表的表名。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述信息项集合中的信息项包括:预定数据库包括的各个表的表名,所述各个表包括的字段的字段名,所述字段的属性的枚举值,所述各个表的表名、字段名、枚举值的同义词或近义词,以及用于表示结构化查询语言中运算和函数的词语。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377791.9A CN107451153B (zh) | 2016-05-31 | 2016-05-31 | 输出结构化查询语句的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377791.9A CN107451153B (zh) | 2016-05-31 | 2016-05-31 | 输出结构化查询语句的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451153A CN107451153A (zh) | 2017-12-08 |
CN107451153B true CN107451153B (zh) | 2020-03-31 |
Family
ID=60485149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610377791.9A Active CN107451153B (zh) | 2016-05-31 | 2016-05-31 | 输出结构化查询语句的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451153B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090351B (zh) * | 2017-12-14 | 2022-03-08 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN110147544A (zh) * | 2018-05-24 | 2019-08-20 | 清华大学 | 一种基于自然语言的指令生成方法、装置以及相关设备 |
US10846288B2 (en) | 2018-07-02 | 2020-11-24 | Babylon Partners Limited | Computer implemented method for extracting and reasoning with meaning from text |
CN110874367B (zh) * | 2018-09-03 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN109408614B (zh) * | 2018-09-11 | 2021-10-29 | 全球能源互联网研究院有限公司 | 一种句法依存树动态可视化方法及系统 |
CN109408526B (zh) * | 2018-10-12 | 2023-10-31 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、计算机设备及存储介质 |
CN109446221B (zh) * | 2018-10-29 | 2021-04-30 | 北京百分点科技集团股份有限公司 | 一种基于语义分析的交互式数据探查方法 |
CN111159330B (zh) * | 2018-11-06 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 一种数据库查询语句的生成方法及装置 |
CN109670033B (zh) * | 2019-02-01 | 2021-01-12 | 海信视像科技股份有限公司 | 内容的检索方法、装置、设备及存储介质 |
CN109933672B (zh) * | 2019-02-12 | 2021-09-07 | 北京百度网讯科技有限公司 | 处理查询的方法、装置、电子设备和计算机可读存储介质 |
US11966389B2 (en) | 2019-02-13 | 2024-04-23 | International Business Machines Corporation | Natural language to structured query generation via paraphrasing |
CN109933602B (zh) * | 2019-02-28 | 2021-05-04 | 武汉大学 | 一种自然语言与结构化查询语言的转换方法及装置 |
CN110162538B (zh) * | 2019-04-19 | 2024-03-01 | 平安科技(深圳)有限公司 | 自动生成通用查询语言cql的方法、装置和计算机设备 |
CN110532280B (zh) * | 2019-07-18 | 2023-06-20 | 创新先进技术有限公司 | Sql语句可视化方法以及装置 |
CN112650766B (zh) * | 2019-10-10 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 数据库数据操作的方法、系统及服务器 |
CN111027325B (zh) * | 2019-12-09 | 2023-11-28 | 北京知道创宇信息技术股份有限公司 | 一种模型生成方法、实体识别方法、装置及电子设备 |
CN111104423B (zh) * | 2019-12-18 | 2023-01-31 | 北京百度网讯科技有限公司 | Sql语句生成方法、装置、电子设备和存储介质 |
CN111078729B (zh) * | 2019-12-19 | 2023-04-28 | 医渡云(北京)技术有限公司 | 医疗数据溯源方法、装置、系统、存储介质以及电子设备 |
CN111159220B (zh) * | 2019-12-31 | 2023-06-23 | 北京百度网讯科技有限公司 | 用于输出结构化查询语句的方法和装置 |
CN111125154B (zh) * | 2019-12-31 | 2021-04-02 | 北京百度网讯科技有限公司 | 用于输出结构化查询语句的方法和装置 |
CN111324631B (zh) * | 2020-03-19 | 2022-04-22 | 成都海天数联科技有限公司 | 一种将查询数据的人类自然语言自动生成sql语句的方法 |
CN111651474B (zh) * | 2020-06-02 | 2023-07-25 | 东云睿连(武汉)计算技术有限公司 | 一种自然语言至结构化查询语言的转换方法及系统 |
CN111783465B (zh) * | 2020-07-03 | 2024-04-30 | 深圳追一科技有限公司 | 一种命名实体归一化方法、系统及相关装置 |
CN111625554B (zh) * | 2020-07-30 | 2020-11-03 | 武大吉奥信息技术有限公司 | 一种基于深度学习语义理解的数据查询方法及装置 |
CN111897832B (zh) * | 2020-07-31 | 2024-04-12 | 深圳前海微众银行股份有限公司 | 模型部署方法、设备及可读存储介质 |
CN111984778B (zh) * | 2020-09-08 | 2022-06-03 | 四川长虹电器股份有限公司 | 基于依存句法分析和汉语语法的多轮语义分析方法 |
CN112328757B (zh) * | 2020-10-27 | 2022-05-03 | 电子科技大学 | 一种用于业务机器人问答系统的相似文本检索方法 |
CN112001188B (zh) * | 2020-10-30 | 2021-03-16 | 北京智源人工智能研究院 | 基于向量化语义规则快速实现nl2sql的方法和装置 |
CN112347121B (zh) * | 2020-11-02 | 2024-05-28 | 中科曙光南京研究院有限公司 | 一种可配置的自然语言转sql的方法及系统 |
CN112835927A (zh) * | 2021-03-25 | 2021-05-25 | 中国工商银行股份有限公司 | 一种结构化查询语句的生成方法、装置和设备 |
CN113821533B (zh) * | 2021-09-30 | 2023-09-08 | 北京鲸鹳科技有限公司 | 数据查询的方法、装置、设备以及存储介质 |
CN114281823B (zh) | 2021-12-17 | 2023-08-29 | 北京百度网讯科技有限公司 | 表格处理方法、装置、设备、存储介质及产品 |
CN115687397A (zh) * | 2022-01-19 | 2023-02-03 | 支付宝(杭州)信息技术有限公司 | 自然语言的查询处理方法及装置 |
CN115221198A (zh) * | 2022-01-19 | 2022-10-21 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法及装置 |
CN114168619B (zh) * | 2022-02-09 | 2022-05-10 | 阿里巴巴达摩院(杭州)科技有限公司 | 语言转换模型的训练方法及装置 |
CN114201602B (zh) * | 2022-02-15 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 为可视化数据分析生成自然语言语句的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN104346383A (zh) * | 2013-07-31 | 2015-02-11 | 上海云端广告有限公司 | 一种数据权限控制方法和系统 |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成系统及方法 |
-
2016
- 2016-05-31 CN CN201610377791.9A patent/CN107451153B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN104346383A (zh) * | 2013-07-31 | 2015-02-11 | 上海云端广告有限公司 | 一种数据权限控制方法和系统 |
CN104657439A (zh) * | 2015-01-30 | 2015-05-27 | 欧阳江 | 用于自然语言精准检索的结构化查询语句生成系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107451153A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451153B (zh) | 输出结构化查询语句的方法和装置 | |
CN107315737B (zh) | 一种语义逻辑处理方法及系统 | |
US11080295B2 (en) | Collecting, organizing, and searching knowledge about a dataset | |
KR101678787B1 (ko) | 자동질의응답 방법 및 그 장치 | |
CN104252533B (zh) | 搜索方法和搜索装置 | |
US10515125B1 (en) | Structured text segment indexing techniques | |
US8775433B2 (en) | Self-indexing data structure | |
US20180095946A1 (en) | Intelligent system that dynamically improves its knowledge and code-base for natural language understanding | |
US20140351228A1 (en) | Dialog system, redundant message removal method and redundant message removal program | |
US10824816B2 (en) | Semantic parsing method and apparatus | |
CN109947952B (zh) | 基于英语知识图谱的检索方法、装置、设备及存储介质 | |
CN112417102A (zh) | 一种语音查询方法、装置、服务器和可读存储介质 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
EP4035024A1 (en) | Semantic parsing of natural language query | |
WO2017166626A1 (zh) | 归一化方法、装置和电子设备 | |
CN114462384B (zh) | 一种面向数字对象建模的元数据自动生成装置 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及系统 | |
KR101654717B1 (ko) | 지식 데이터베이스 기반 구조화된 질의 생성 방법 및 장치 | |
CN112507089A (zh) | 一种基于知识图谱的智能问答引擎及其实现方法 | |
KR20230005797A (ko) | 질의어를 처리하는 장치, 방법 및 컴퓨터 프로그램 | |
CN115497477A (zh) | 语音交互方法、语音交互装置、电子设备、存储介质 | |
CN111859858A (zh) | 从文本中提取关系的方法及装置 | |
Sakor et al. | FALCON: an entity and relation linking framework over dbpedia | |
CN113157888A (zh) | 支持多知识来源的询问答复方法、装置和电子设备 | |
CN116304231A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |