CN113392124B - 一种基于结构化语言的数据查询方法及装置 - Google Patents

一种基于结构化语言的数据查询方法及装置 Download PDF

Info

Publication number
CN113392124B
CN113392124B CN202110659609.XA CN202110659609A CN113392124B CN 113392124 B CN113392124 B CN 113392124B CN 202110659609 A CN202110659609 A CN 202110659609A CN 113392124 B CN113392124 B CN 113392124B
Authority
CN
China
Prior art keywords
query
data table
templates
template
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110659609.XA
Other languages
English (en)
Other versions
CN113392124A (zh
Inventor
高炘
梁杰
陈洋洋
王梦竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110659609.XA priority Critical patent/CN113392124B/zh
Publication of CN113392124A publication Critical patent/CN113392124A/zh
Application granted granted Critical
Publication of CN113392124B publication Critical patent/CN113392124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于结构化语言的数据查询方法及装置,涉及大数据技术领域。所述方法包括:接收客户端发送的查询请求;对查询描述语句进行分词,获得对应的词向量;根据词向量和查询分类模型,获得查询描述语句与各个查询模版对应的概率值;根据查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;获得出现次数最多的M个数据表名称;根据M个数据表名称、Q个查询模版以及拼接规则,获得查询描述语句对应的查询模版;根据查询描述语句对应的查询模版进行数据查询,获得查询描述语句对应的查询结果。所述装置用于执行上述方法。本发明实施例提供的基于结构化语言的数据查询方法及装置,提高了查询效率。

Description

一种基于结构化语言的数据查询方法及装置
技术领域
本发明涉及大数据技术领域,具体涉及一种基于结构化语言的数据查询方法及装置。
背景技术
目前,企业数据仓库、数据湖等系统中储存着大量的数据资源,通过结构化查询语言(Structured Query Language,简称SQL)语句在相应的数据库里检索目标表中的信息,从而实现数据挖掘、特色批量等多层次的数据分析和挖掘服务。
现有技术中,为了从数据资源中查询数据,需要编写SQL语句。但是,由于数据库中表的数量众多,种类丰富以及表中的数据信息彼此有联系,在查询时往往需要比较复杂的查询语句实现表的相互关联以及条件筛选才能得到想要的目标数据,这就会使得前期在目标表的选取以及SQL语句编写上花费大量的时间和精力,导致目标数据的获取效率低。
发明内容
针对现有技术中的问题,本发明实施例提供一种基于结构化语言的数据查询方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种基于结构化语言的数据查询方法,包括:
接收客户端发送的查询请求,所述查询请求包括查询描述语句;
对所述查询描述语句进行分词,获得对应的词向量;
根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;
根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;
统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;
根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;
根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
另一方面,本发明提供一种基于结构化语言的数据查询装置,包括:
接收模块,用于接收客户端发送的查询请求,所述查询请求包括查询描述语句;
分词模块,用于对所述查询描述语句进行分词,获得对应的词向量;
分类模块,用于根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;
第一获得模块,用于根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;
统计模块,用于统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;
第二获得模块,用于根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;
查询模块,用于根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述基于结构化语言的数据查询方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于结构化语言的数据查询方法的步骤。
本发明实施例提供的基于结构化语言的数据查询方法及装置,能够接收客户端发送的查询请求,查询请求包括查询描述语句,对查询描述语句进行分词,获得对应的词向量,根据词向量和查询分类模型,获得查询描述语句与各个查询模版对应的概率值,根据查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版,统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称,根据M个数据表名称、Q个查询模版以及拼接规则,获得查询描述语句对应的查询模版,根据查询描述语句对应的查询模版进行数据查询,获得查询描述语句对应的查询结果,提高了查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的基于结构化语言的数据查询方法的流程示意图。
图2是本发明另一实施例提供的基于结构化语言的数据查询方法的流程示意图。
图3是本发明又一实施例提供的基于结构化语言的数据查询方法的流程示意图。
图4是本发明一实施例提供的基于结构化语言的数据查询装置的结构示意图。
图5是本发明另一实施例提供的基于结构化语言的数据查询装置的结构示意图。
图6是本发明又一实施例提供的基于结构化语言的数据查询装置的结构示意图。
图7是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。通过长期的查询会积累一定数量级的查询模板,这些查询模板构成了一个庞大的资源库。所述查询模版具有模版名称,模版名称是用户的查询需求的自然语言描述,例如查找张三各类银行账号中的资产余额。所述查询模版包括查询语句,所述查询语句是采用SQL编写的SQL语句,执行查询模版包括的SQL语句可以获得用户的查询需求对应的查询结果。本发明实施例中,通过预设数量的查询模版的模版名称构建查询分类模型,利用查询分类模型对于客户新的查询需求进行分类,再生成对应的查询模版,执行生成的查询模版包括的查询语句获得查询结果,从而避免编写查询所需SQL语句的过程,提高了查询效率。
图1是本发明一实施例提供的基于结构化语言的数据查询方法的流程示意图,如图1所示,本发明实施例提供的基于结构化语言的数据查询方法,包括:
S101、接收客户端发送的查询请求,所述查询请求包括查询描述语句;
具体地,用户可以通过客户端向服务器发送查询请求,所述服务器会接收所述查询请求。其中,所述查询请求包括查询描述语言,所述查询描述语言是用户的查询需求的自然语言描述,可以为一句话。其中,所述客户端包括但不限于台式机、笔记本电脑、平板电脑等设备。本发明实施例提供的基于结构化语言的数据查询方法的执行主体包括但不限于服务器。
S102、对所述查询描述语句进行分词,获得对应的词向量;
具体地,所述服务器在接收到所述查询请求之后,会对所述查询描述语句进行分词,获得所述查询描述语句对应的词向量。其中,对所述查询描述语句进行分词可以采用Word2vec。
S103、根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;
具体地,所述服务器将所述词向量输入到所述查询分类模型中,经过所述查询分类模型的处理,获得所述查询描述语句与各个查询模版对应的概率值,所述概率值表示所述查询描述语句与对应的查询模版的模版名称的相似度,概率值越大表明所述查询描述语句与对应的查询模版的模版名称的相似度越高。其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的,所述预设数量根据实际需要进行设置,本发明实施例不做限定。所述查询模版包括查询语句,所述查询语句包括数据表名称和查询字段。
S104、根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;
具体地,所述服务器在获得所述查询描述语句与各个查询模版对应的概率值之后,比较所述查询描述语句与各个查询模版对应的概率值的大小,可以获得概率值最大的N个查询模版。其中,N的具体取值根据是实际经验进行设置,例如设置为10,本发明实施例不做限定。可理解的是N为大于等于2的正整数。
例如,可以将所述查询描述语句与各个查询模版对应的概率值按照从大到小的顺序进行排列,然后取排名前10的概率值对应的查询模版。
S105、统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;
具体地,所述服务器统计N个查询模版中各个数据表名称的出现次数,然后比较各个数据表名称的出现次数的大小,获得出现次数最多的M个数据表名称。其中,M的具体取值根据实际需要进行设置,本发明实施例不做限定。可理解的是,M应为大于等于2的正整数。
例如,可以将各个数据表名称的出现次数按照从大到小的顺序进行排列,然后取排名前2名的出现次数对应的查询模版。
S106、根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;
具体地,所述服务器从上述N个查询模版中获取概率值最大的Q个查询模版,然后根据M个数据表名称、Q个查询模版以及拼接规则,将Q个查询模版中的每个查询模版中的数据表名称替换为M个数据表名称,并相应地对Q个查询模版中的查询字段进行更新,获得的新的查询模版作为所述查询描述语句对应的查询模版。其中,Q小于N,Q的具体取值根据实际需要进行设置,比如为3,本发明实施例不做限定。
S107、根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
具体地,所述服务器在获得所述查询描述语句对应的查询模版之后,执行所述查询描述语句对应的查询模版中每个查询模版的查询语句,可以获得所述查询描述语句对应的查询结果。
本发明实施例提供的基于结构化语言的数据查询方法,能够接收客户端发送的查询请求,查询请求包括查询描述语句,对查询描述语句进行分词,获得对应的词向量,根据词向量和查询分类模型,获得查询描述语句与各个查询模版对应的概率值,根据查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版,统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称,根据M个数据表名称、Q个查询模版以及拼接规则,获得查询描述语句对应的查询模版,根据查询描述语句对应的查询模版进行数据查询,获得查询描述语句对应的查询结果,提高了查询效率。
在上述各实施例的基础上,进一步地,所述拼接规则包括:
用M个数据表名称替换Q个查询模版中的数据表名称,并根据字段匹配规则从M个数据表名称对应的数据表中获取字段,替换Q个查询模版中对应的查询字段。
具体地,所述服务器用M个数据表名称替换Q个查询模版中的每个数据表名称。对于Q个查询模版中的任何一个查询模版,如果查询模版的查询语句包括的数据表的数量q等于1,那么用M个数据表名称进行M次替换,每次用M个数据表名称中的一个数据表名称替换上述查询语句中的数据表名称,并根据字段匹配规则从一个数据表名称对应的数据表中获取字段,替换上述查询语句中的字段,可以获得M个新的查询模版;如果查询模版的查询语句包括的数据表的数量q大于1且小于M,那么从M个数据表名称中获取出现次数最多的q个数据表名称替换上述查询语句中的q个数据表名称,并根据字段匹配规则从出现次数最多的q个数据表名称对应的数据表中获取字段,替换上述查询语句中的查询字段,可以获得一个新的查询模版;如果查询模版的查询语句包括的数据表的数量q等于M,那么直接使用M个数据表名称替换上述查询语句中的q个数据表名称,并根据字段匹配规则从M个数据表名称对应的数据表中获取字段,替换上述查询语句中的查询字段,可以获得一个新的查询模版;如果查询模版的查询语句包括的数据表的数量q大于M,那么基于上述查询语句中的q个数据表名称各自的出现次数,确定出现次数最多的M个数据表,使用M个数据表名称替换上述查询语句中出现次数最多的M个数据表的数据表名称,并根据字段匹配规则从出现次数最多的M个数据表名称对应的数据表中获取字段,替换上述查询语句中的查询字段,可以获得一个新的查询模版。所述服务器对Q个查询模版中的每个查询模版重复上述过程,即可获得所述查询描述语句对应的查询模版。
在上述各实施例的基础上,进一步地,所述字段匹配规则包括:
若替换数据表中的字段与对应的查询字段具有相同的关键字,则用所述替换数据表中的字段替换对应的查询字段;和/或
若所述替换数据表中不存在与对应的查询字段匹配的字段,则用所述替换数据表中的所有字段替换对应的查询字段;
其中,所述替换数据表为M个数据表名称对应的数据表中的一个或者多个。
具体地,若替换数据表中的字段与对应的查询字段具有相同的关键字,则用所述替换数据表中的字段替换对应的查询字段包括如下情况:
如果替换数据表为M个数据表名称中的一个数据表名称对应的数据表,那么从一个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从一个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找到包括上述关键字的字段,那么从一个数据表名称对应的数据表获取该字段,替换对应的查询字段。
如果替换数据表为M个数据表名称中的出现次数最多的q个数据表名称对应的数据表,那么从出现次数最多的q个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从出现次数最多的q个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找到包括上述关键字的字段,那么从出现次数最多的q个数据表名称对应的数据表获取该字段,替换对应的查询字段。
如果替换数据表为M个数据表名称对应的数据表,那么从M个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从M个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找到包括上述关键字的字段,那么从M个数据表名称对应的数据表获取该字段,替换对应的查询字段。
若所述替换数据表中不存在与对应的查询字段匹配的字段,则用所述替换数据表中的所有字段替换对应的查询字段包括如下情况:
如果替换数据表为M个数据表名称中的一个数据表名称对应的数据表,那么从一个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从一个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找不到包括上述关键字的字段,那么一个数据表名称对应的数据表中不存在与对应的查询字段匹配的字段,用一个数据表名称对应的数据表中的所有字段替换对应的查询字段。
如果替换数据表为M个数据表名称中的出现次数最多的q个数据表名称对应的数据表,那么从出现次数最多的q个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从出现次数最多的q个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找不到包括上述关键字的字段,那么出现次数最多的q个数据表名称对应的数据表中不存在与对应的查询字段匹配的字段,用出现次数最多的q个数据表名称对应的数据表中的所有字段替换对应的查询字段。
如果替换数据表为M个数据表名称对应的数据表,那么从M个数据表名称对应的数据表替换的数据表所在的查询语句中获取对应的查询字段,从对应的查询字段中获取关键字,根据上述关键字从M个数据表名称对应的数据表中查询是否存在包括上述关键字的字段,如果查找不到包括上述关键字的字段,那么M个数据表名称对应的数据表中不存在与对应的查询字段匹配的字段,用M个数据表名称对应的数据表中的所有字段替换对应的查询字段。
其中,关键字是基于查询字段获得的。由于数据表中的字段通常遵循字段命名规范,可以通过字段命名规范确定查询字段中的关键词作为关键字,比如查询字段由多个词构成,为user_id、user_name等,可以将第二词id和name作为关键字,比如查询字段只有一个词构成,为性别、职业等,可以将整个查询字段作为关键词。此外,还可以设置关键字候选库,关键字候选库包括的每个词都可以作为关键字,在关键字候选库中查询是否存在与查询字段包括的各个词语匹配的词,如果存在,那么将将获得的匹配的词作为关键字。
图2是本发明另一实施例提供的基于结构化语言的数据查询方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,基于预设数量的查询模版的模版名称训练获得所述查询分类模型的步骤包括:
S201、对所述预设数量的查询模版中的每个查询模版的模版名称进行分词,获得每个查询模版对应的词向量;
具体地,所述服务器获取所述预设数量的查询模版,然后对每个查询模版进行分词,获得每个查询模版对应的词向量。其中,可以采用Word2vec进行分词。
需要说明的是,根据词向量是否随着训练发生变化有两中分词方式,分别是固定的(static)词向量和非固定(non-static)的词向量。非固定的词向量会随着模型训练而产生变化,优点在于词向量可以根据数据集做适当调整。而当数据集较小时不推荐此操作,否则容易出现过拟合现象。采用固定的词向量还是非固定的词向量,根据实际需要进行设置,本发明实施例不做限定。
S202、基于所述预设数量、各个查询模版对应的词向量对原始模型进行训练,获得所述查询分类模型。
具体地,每个查询模版都作为一个类型,对于所述预设数量的查询模版,就有所述预设数量个类型。基于所述预设数量、各个查询模版对应的词向量对原始模型进行训练,可以训练获得所述查询分类模型。其中,所述原始模型可以采用朴素贝叶斯模型,支持向量机模型或者卷积神经网络模型,根据实际需要进行设置,本发明实施例不做限定。
在上述各实施例的基础上,进一步地,所述查询模版名称包括的词的数量小于等于数量阈值。
具体地,所述查询模版名称包括的词的数量小于等于数量阈值,例如,可以设置所述预设数量的查询模版中的每个查询模版的模版名称包括20个词,如果查询模版的模版名称包括的词的数量少于20个,可以采用空词填充。所述空词例如为空格。
在上述各实施例的基础上,进一步地,所述原始模型采用卷积神经网络模型。
具体地,采用卷积神经网络模型作为初始模型进行训练,相比于其他机器学习方法如朴素贝叶斯,支持向量机等会有更好的效果,并且卷积神经网络模型在训练时不需要手动去提取特征,极大地简化了前期在数据处理上的繁琐步骤。
卷积神经网络模型包括输入层、卷积层、池化层和全连接层。输入层输入的是词向量,输入层将所有的词向量进行拼接形成一个矩阵,每行代表一个词,假设句子有n个词,词向量的维数为k,那么这个矩阵就为n×k的,每个词的词向量可以是随机初始化的,如果词已经有训练好的词向量可以直接用训练好的词向量来表示,对于未训练过的词,可以用0或者随机小的正数来填充其词向量。
卷积层,每个卷积核大小为滤波器的大小(filter_size)乘以词向量的维数(embedding_size),滤波器的大小代表卷积核纵向上包含单词个数,即认为相邻几个词之间有词序关系。例如,filter_size选取了[2,3,4],即认为每两个词,三个词,四个词之间存在着词序关系。每个卷积核计算完成得到了一个列向量,代表着该卷积核从句子提取出来的特征,称为特征地图(feature map),有多少卷积核就能提取多少种特征。
池化层(pooling)操作是将卷积得到的列向量的最大值提取出来。pooling操作之后就会获得连接了每个卷积核的最大值的m维行向量,m为滤波器的个数。
全连接层,通过池化层得到了m维的特征向量后,需要将其转化为想要的预测结果,W是全连接层的参数,我称为权值,X是全连接层的输入,也就是特征,这个特征就是通过卷积层和池化层处理后得到的,特征X是N×1的向量。在卷积神经网络模型的训练过程中,对于全连接层而言就是寻找最合适的W矩阵。因此全连接层就是得到一个T×1的向量,这个向量里面的每个数都没有大小限制的,范围为负无穷大到正无穷大。对于多分类问题会在全连接层后面再接一个softmax层,softmax层为一个T×1的向量,输出也是T×1的向量,这个向量的每个值表示对应的样本属于每个类的概率,每个概率值的大小范围为0到1。
图3是本发明又一实施例提供的基于结构化语言的数据查询方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果包括:
S301、基于所述查询描述语句对应的每个查询模版进行数据查询,获得所述查询描述语句对应的每个查询模版的查询结果;
具体地,所述服务器可以根据查询描述语句对应的每个查询模版,获得每个查询模版的包括的查询语句,然后执行每个查询模版包括的查询语句,可以获得所述查询描述语句对应的每个查询模版的查询结果。
S302、对所述查询描述语句对应的各个查询模版的查询结果取并集,获得所述查询描述语句对应的查询结果。
具体地,所述服务器在获得所述查询描述语句对应的每个查询模版的查询结果之后,对各个查询结果取并集,合并查询结果中的重复数据,可以获得所述查询描述语句对应的查询结果。
图4是本发明一实施例提供的基于结构化语言的数据查询装置的结构示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的基于结构化语言的数据查询装置包括接收模块401、分词模块402、分类模块403、第一获得模块404、统计模块405、第二获得模块406和查询模块407,其中:
接收模块401用于接收客户端发送的查询请求,所述查询请求包括查询描述语句;分词模块402用于对所述查询描述语句进行分词,获得对应的词向量;分类模块403用于根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;第一获得模块404用于根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;统计模块405用于统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;第二获得模块406用于根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;查询模块407用于根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
具体地,用户可以通过客户端向接收模块401发送查询请求,接收模块401会接收所述查询请求。其中,所述查询请求包括查询描述语言,所述查询描述语言是用户的查询需求的自然语言描述,可以为一句话。其中,所述客户端包括但不限于台式机、笔记本电脑、平板电脑等设备。
在接收到所述查询请求之后,分词模块402会对所述查询描述语句进行分词,获得所述查询描述语句对应的词向量。其中,对所述查询描述语句进行分词可以采用Word2vec。
分类模块403将所述词向量输入到所述查询分类模型中,经过所述查询分类模型的处理,获得所述查询描述语句与各个查询模版对应的概率值,所述概率值表示所述查询描述语句与对应的查询模版的模版名称的相似度,概率值越大表明所述查询描述语句与对应的查询模版的模版名称的相似度越高。其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的,所述预设数量根据实际需要进行设置,本发明实施例不做限定。所述查询模版包括查询语句,所述查询语句包括数据表名称和查询字段。
在获得所述查询描述语句与各个查询模版对应的概率值之后,第一获得模块404比较所述查询描述语句与各个查询模版对应的概率值的大小,可以获得概率值最大的N个查询模版。其中,N的具体取值根据是实际经验进行设置,例如设置为10,本发明实施例不做限定。可理解的是N为大于等于2的正整数。
统计模块405统计N个查询模版中各个数据表名称的出现次数,然后比较各个数据表名称的出现次数的大小,获得出现次数最多的M个数据表名称。其中,M的具体取值根据实际需要进行设置,本发明实施例不做限定。可理解的是,M应为大于等于2的正整数。
第二获得模块406从上述N个查询模版中获取概率值最大的Q个查询模版,然后根据M个数据表名称、Q个查询模版以及拼接规则,将Q个查询模版中的每个查询模版中的数据表名称替换为M个数据表名称,并相应地对Q个查询模版中的查询字段进行更新,获得的新的查询模版作为所述查询描述语句对应的查询模版。其中,Q小于N。
在获得所述查询描述语句对应的查询模版之后,查询模块407执行所述查询描述语句对应的查询模版中每个查询模版的查询语句,可以获得所述查询描述语句对应的查询结果。
本发明实施例提供的基于结构化语言的数据查询装置,能够接收客户端发送的查询请求,查询请求包括查询描述语句,对查询描述语句进行分词,获得对应的词向量,根据词向量和查询分类模型,获得查询描述语句与各个查询模版对应的概率值,根据查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版,统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称,根据M个数据表名称、Q个查询模版以及拼接规则,获得查询描述语句对应的查询模版,根据查询描述语句对应的查询模版进行数据查询,获得查询描述语句对应的查询结果,提高了查询效率。
在上述各实施例的基础上,进一步地,所述拼接规则包括:
用M个数据表名称替换Q个查询模版中的数据表名称,并根据字段匹配规则从M个数据表名称对应的数据表中获取字段,替换Q个查询模版中对应的查询字段。
在上述各实施例的基础上,进一步地,所述字段匹配规则包括:
若替换数据表中的字段与对应的查询字段具有相同的关键字,则用所述替换数据表中的字段替换对应的查询字段;和/或
若所述替换数据表中不存在与对应的查询字段匹配的字段,则用所述替换数据表中的所有字段替换对应的查询字段;
其中,所述替换数据表为M个数据表名称对应的数据表中的一个或者多个。
图5是本发明另一实施例提供的基于结构化语言的数据查询装置的结构示意图,如图5所示,在上述各实施例的基础上,进一步地,本发明实施例提供的基于结构化语言的数据查询装置还包括第三获得模块408和训练模块409,其中:
第三获得模块408用于对每个查询模版的模版名称进行分词,获得每个查询模版对应的词向量;训练模块409用于基于所述预设数量、各个查询模版对应的词向量对原始模型进行训练,获得所述查询分类模型。
具体地,第三获得模块408获取所述预设数量的查询模版,然后对每个查询模版进行分词,获得每个查询模版对应的词向量。其中,可以采用Word2vec进行分词。
每个查询模版都作为一个类型,对于所述预设数量的查询模版,就有所述预设数量个类型。训练模块409基于所述预设数量、各个查询模版对应的词向量对原始模型进行训练,可以训练获得所述查询分类模型。其中,所述原始模型可以采用朴素贝叶斯模型,支持向量机模型或者卷积神经网络模型,根据实际需要进行设置,本发明实施例不做限定。
在上述各实施例的基础上,进一步地,所述查询模版名称包括的词的数量小于等于数量阈值。
在上述各实施例的基础上,进一步地,所述原始模型采用卷积神经网络模型。
图6是本发明又一实施例提供的基于结构化语言的数据查询装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地于,查询模块407包括:
查询单元4071基于所述查询描述语句对应的每个查询模版进行数据查询,获得所述查询描述语句对应的每个查询模版的查询结果;获得单元4072对所述查询描述语句对应的各个查询模版的查询结果取并集,获得所述查询描述语句对应的查询结果。
具体地,查询单元4071以根据查询描述语句对应的每个查询模版,获得每个查询模版的包括的查询语句,然后执行每个查询模版包括的查询语句,可以获得所述查询描述语句对应的每个查询模版的查询结果。
在获得所述查询描述语句对应的每个查询模版的查询结果之后,获得单元4072对各个查询结果取并集,合并查询结果中的重复数据,可以获得所述查询描述语句对应的查询结果。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图7是本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:接收客户端发送的查询请求,所述查询请求包括查询描述语句;对所述查询描述语句进行分词,获得对应的词向量;根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的查询请求,所述查询请求包括查询描述语句;对所述查询描述语句进行分词,获得对应的词向量;根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的查询请求,所述查询请求包括查询描述语句;对所述查询描述语句进行分词,获得对应的词向量;根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (10)

1.一种基于结构化语言的数据查询方法,其特征在于,包括:
接收客户端发送的查询请求,所述查询请求包括查询描述语句;
对所述查询描述语句进行分词,获得对应的词向量;
根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;
统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;
根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;
根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述拼接规则包括:
用M个数据表名称替换Q个查询模版中的数据表名称,并根据字段匹配规则从M个数据表名称对应的数据表中获取字段,替换Q个查询模版中对应的查询字段。
3.根据权利要求2所述的方法,其特征在于,所述字段匹配规则包括:
若替换数据表中的字段与对应的查询字段具有相同的关键字,则用所述替换数据表中的字段替换对应的查询字段;和/或
若所述替换数据表中不存在与对应的查询字段匹配的字段,则用所述替换数据表中的所有字段替换对应的查询字段;
其中,所述替换数据表为M个数据表名称对应的数据表中的一个或者多个。
4.根据权利要求1所述的方法,其特征在于,基于预设数量的查询模版的模版名称训练获得所述查询分类模型的步骤包括:
对每个查询模版的模版名称进行分词,获得每个查询模版对应的词向量;
基于所述预设数量、各个查询模版对应的词向量对原始模型进行训练,获得所述查询分类模型。
5.根据权利要求4所述的方法,其特征在于,所述查询模版名称包括的词的数量小于等于数量阈值。
6.根据权利要求4所述的方法,其特征在于,所述原始模型采用卷积神经网络模型。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果包括:
基于所述查询描述语句对应的每个查询模版进行数据查询,获得所述查询描述语句对应的每个查询模版的查询结果;
对所述查询描述语句对应的各个查询模版的查询结果取并集,获得所述查询描述语句对应的查询结果。
8.一种基于结构化语言的数据查询装置,其特征在于,包括:
接收模块,用于接收客户端发送的查询请求,所述查询请求包括查询描述语句;
分词模块,用于对所述查询描述语句进行分词,获得对应的词向量;
分类模块,用于根据所述词向量和查询分类模型,获得所述查询描述语句与各个查询模版对应的概率值;其中,所述查询分类模型是基于预设数量的查询模版的模版名称训练获得的;所述查询模版包括查询语句,所述查询语句包括数据表名称;
第一获得模块,用于根据所述查询描述语句与各个查询模版对应的概率值,获得概率值最大的N个查询模版;
统计模块,用于统计N个查询模版中各个数据表名称的出现次数,并获得出现次数最多的M个数据表名称;
第二获得模块,用于根据M个数据表名称、Q个查询模版以及拼接规则,获得所述查询描述语句对应的查询模版;其中,Q小于N;Q个查询模版是N个查询模版中概率值最大的Q个查询模版;
查询模块,用于根据所述查询描述语句对应的查询模版进行数据查询,获得所述查询描述语句对应的查询结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202110659609.XA 2021-06-15 2021-06-15 一种基于结构化语言的数据查询方法及装置 Active CN113392124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110659609.XA CN113392124B (zh) 2021-06-15 2021-06-15 一种基于结构化语言的数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110659609.XA CN113392124B (zh) 2021-06-15 2021-06-15 一种基于结构化语言的数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN113392124A CN113392124A (zh) 2021-09-14
CN113392124B true CN113392124B (zh) 2024-03-22

Family

ID=77621038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110659609.XA Active CN113392124B (zh) 2021-06-15 2021-06-15 一种基于结构化语言的数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN113392124B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177180A (zh) * 2019-12-11 2020-05-19 北京百分点信息科技有限公司 一种数据查询方法、装置以及电子设备
CN112182022A (zh) * 2020-11-04 2021-01-05 北京安博通科技股份有限公司 基于自然语言的数据查询方法、装置及翻译模型
CN112835927A (zh) * 2021-03-25 2021-05-25 中国工商银行股份有限公司 一种结构化查询语句的生成方法、装置和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078062A1 (en) * 2010-09-24 2012-03-29 International Business Machines Corporation Decision-support application and system for medical differential-diagnosis and treatment using a question-answering system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177180A (zh) * 2019-12-11 2020-05-19 北京百分点信息科技有限公司 一种数据查询方法、装置以及电子设备
CN112182022A (zh) * 2020-11-04 2021-01-05 北京安博通科技股份有限公司 基于自然语言的数据查询方法、装置及翻译模型
CN112835927A (zh) * 2021-03-25 2021-05-25 中国工商银行股份有限公司 一种结构化查询语句的生成方法、装置和设备

Also Published As

Publication number Publication date
CN113392124A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN114416927B (zh) 智能问答方法、装置、设备及存储介质
US8407164B2 (en) Data classification and hierarchical clustering
WO2017097231A1 (zh) 话题处理方法及装置
CN111460798A (zh) 近义词推送方法、装置、电子设备及介质
US20190311194A1 (en) Character recognition using hierarchical classification
CN112035599B (zh) 基于垂直搜索的查询方法、装置、计算机设备及存储介质
CN108875065B (zh) 一种基于内容的印尼新闻网页推荐方法
CN110134777B (zh) 问题去重方法、装置、电子设备和计算机可读存储介质
CN111984792A (zh) 网站分类方法、装置、计算机设备及存储介质
CN109791570B (zh) 高效且精确的命名实体识别方法和装置
CN113722438A (zh) 基于句向量模型的句向量生成方法、装置及计算机设备
CN114398473A (zh) 企业画像生成方法、装置、服务器及存储介质
WO2018213783A1 (en) Computerized methods of data compression and analysis
CN110413757B (zh) 一种词语释义确定方法、装置及系统
CN113569018A (zh) 问答对挖掘方法及装置
CN113392124B (zh) 一种基于结构化语言的数据查询方法及装置
CN116957041A (zh) 压缩神经网络模型的方法、装置和计算设备
CN111831819A (zh) 一种文本更新方法及装置
US11709798B2 (en) Hash suppression
CN112528021B (zh) 一种模型训练方法、模型训练装置及智能设备
CN113722431A (zh) 命名实体关系识别方法、装置、电子设备及存储介质
CN115495636A (zh) 网页搜索方法、装置及存储介质
CN111737461A (zh) 文本的处理方法、装置、电子设备及计算机可读存储介质
CN110532384A (zh) 一种多任务字典单分类方法、系统、装置及存储介质
CN111625579A (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