CN113553411B - 查询语句的生成方法、装置、电子设备和存储介质 - Google Patents

查询语句的生成方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113553411B
CN113553411B CN202110733923.8A CN202110733923A CN113553411B CN 113553411 B CN113553411 B CN 113553411B CN 202110733923 A CN202110733923 A CN 202110733923A CN 113553411 B CN113553411 B CN 113553411B
Authority
CN
China
Prior art keywords
node
vector representation
vector
target
query 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
CN202110733923.8A
Other languages
English (en)
Other versions
CN113553411A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110733923.8A priority Critical patent/CN113553411B/zh
Publication of CN113553411A publication Critical patent/CN113553411A/zh
Priority to US17/652,314 priority patent/US20220179889A1/en
Priority to JP2022078448A priority patent/JP2022106980A/ja
Application granted granted Critical
Publication of CN113553411B publication Critical patent/CN113553411B/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开公开了一种查询语句的生成方法、装置、电子设备和存储介质,尤其涉及自然语言处理、深度学习等人工智能技术领域。其中,具体方案为:根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示;根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略;执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,其中,第二向量表示为待生成的查询语句相邻的前一个查询语句对应的向量表示;在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,在生成查询语句的过程中,充分考虑到了上下文的语义信息,从而提高了生成的查询语句的准确性和可靠性。

Description

查询语句的生成方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,具体涉及自然语言处理、深度学习等人工智能技术领域,尤其涉及一种查询语句的生成方法、装置、电子设备和存储介质。
背景技术
随着计算机技术的蓬勃发展,深度学习、自然语言处理、知识图谱等领域也得到了迅速发展,机器自动问答已经越来越多的被应用到真实的业务场景中。而在基于知识库的问答中,如何生成较为准确的查询语句,显得至关重要。
发明内容
本公开提供了一种查询语句的生成方法、装置、电子设备和存储介质。
本公开一方面,提供了一种查询语句的生成方法,包括:
根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示;
根据所述第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略;
执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,其中,所述第二向量表示为所述待生成的查询语句相邻的前一个查询语句对应的向量表示;
在所述目标节点为终止符的情况下,根据所述各个已知节点及所述终止符,生成所述查询语句。
本公开的另一方面,提供了一种查询语句的生成装置,包括:
第一确定模块,用于根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示;
第二确定模块,用于根据所述第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略;
第一生成模块,用于执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,其中,所述第二向量表示为所述待生成的查询语句相邻的前一个查询语句对应的向量表示;
第二生成模块,用于在所述目标节点为终止符的情况下,根据所述各个已知节点及所述终止符,生成所述查询语句。
本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的查询语句的生成方法。
本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的查询语句的生成方法。
本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述一方面实施例所述的查询语句的生成方法。
本公开提供的查询语句的生成方法、装置、电子设备和存储介质,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,之后可以通过执行目标生成策略,以基于所述第一向量表示或者第二向量表示,生成目标节点,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,在生成查询语句的过程中,充分考虑到了上下文的语义信息,从而提高了生成的查询语句的准确性和可靠性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开一实施例提供的一种查询语句的生成方法的流程示意图;
图2为本公开另一实施例提供的一种查询语句的生成方法的流程示意图;
图2a为本公开另一实施例提供的一种语法树的示意图;
图2b为本公开另一实施例提供的一种语法树的执行过程的示意图;
图3为本公开又一实施例提供的一种查询语句的生成方法的流程示意图;
图4为本公开另一实施例提供的一种查询语句的生成方法的流程示意图;
图5为本公开另一实施例提供的一种查询语句的生成装置的结构示意图;
图6为用来实现本公开实施例的查询语句的生成方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习、深度学习、大数据处理技术、知识图谱技术等几大方向。
自然语言处理是用计算机来处理、理解以及运用人类语言(如中文、英文等),它是计算机科学与语言学的交叉学科,又常被称为计算语言学。由于自然语言是人类区别于其他动物的根本标志。没有语言,人类的思维也就无从谈起,所以自然语言处理体现了人工智能的最高任务与境界,也就是说,只有当计算机具备了处理自然语言的能力时,机器才算实现了真正的智能。
深度学习是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
下面参考附图描述本公开实施例的查询语句的生成方法、装置、电子设备和存储介质。
本公开实施例的查询语句的生成方法,可由本公开实施例提供的查询语句的生成装置执行,该装置可配置于电子设备中。
为方便说明,本公开中的查询语句的生成装置,简称为“输入装置”。
图1为本公开实施例提供的一种查询语句的生成方法的流程示意图。
如图1所示,该查询语句的生成方法,可以包括以下步骤:
步骤101,根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示。
可以理解的是,语法树可以是句子结构的图形表示,它代表了句子的推导结果,从而有利于理解句子语法结构的层次,即语法树可以是按照某一规则进行推导时所形成的。从而,本公开中的第一语法树,可以为在确定待生成的查询语句的过程中所对应形成的,其可以代表该查询语句的推导结果。
另外,第一向量表示,可以为矩阵形式,或者也可以为向量形式等等,本公开对此不做限定。
另外,确定当前的第一向量表示时,可以有多种方式。
比如,可以将第一语法树中各个已知节点各自对应的向量进行拼接,以作为当前的第一向量表示。或者,也可以根据第一语法树中各个已知节点间的关系,将各个已知节点对应的向量进行融合,所得结果即为当前的第一向量表示等等,本公开对此不做限定。
步骤102,根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略。
其中,目标生成策略,用于指示目标节点的具体生成方式,比如可以为执行拷贝策略以及拷贝的内容,或者为不执行拷贝策略等等,本公开对此不做限定。
另外,在确定当前待生成的目标节点对应的目标生成策略时,可以有多种方式。
比如,可以将第一向量表示与预设的拷贝参考矩阵进行相乘,之后根据乘积结果,确定当前待生成的目标节点对应的目标生成策略。
举例来说,可以提前设定好阈值。若第一向量表示与预设的拷贝参考矩阵的乘积大于该阈值时,表示执行拷贝;若二者乘积小于该阈值时,则不执行拷贝。
或者,第一向量表示与预设的拷贝参考矩阵的乘积为向量(1,1,1)时,表示执行拷贝、且拷贝的内容为之前生成的语法树中的语法;二者乘积为其他向量时,则不执行拷贝。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中确定当前待生成的目标节点对应的目标生成策略的方式等的限定。
步骤103,执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,其中,第二向量表示为待生成的查询语句相邻的前一个查询语句对应的向量表示。
比如,目标生成策略为不执行拷贝。则可以直接基于第一向量表示,生成目标节点对应的向量,即生成目标节点。
或者,目标生成策略为执行拷贝、且拷贝的内容为已生成的相邻的前一个查询语句对应的语法树中的节点,则可以根据相邻的前一个查询语句对应的第二向量表示,生成目标节点。
由此,在生成目标节点时,充分考虑了相邻的前一个查询语句及当前待生成的查询语句中各已知节点的内容,即充分考虑了上下文语义信息等,从而提高了生成目标节点的准确性和可靠性,为后续处理提供了保障。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中生成目标节点的方式等的限定。
步骤104,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。
其中,终止符,可以表征查询语句的终结,即表明查询语句对应的语法树,至该节点已生成完成。
本公开实施例,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,之后可以通过执行目标生成策略,以基于所述第一向量表示或者第二向量表示,生成目标节点,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,在生成查询语句的过程中,充分考虑到了上下文的语义信息,从而提高了生成的查询语句的准确性和可靠性。
上述实施例,通过根据第一语法树中各个已知节点所确定的第一向量表示和预设的拷贝参考矩阵,可以确定对应的目标生成策略,之后通过执行目标生成策略,即可生成目标节点,并在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。在实际实现过程中,若目标节点为非终止符,此时可以根据目标节点及各个已知节点,更新第一向量表示,进而继续生成新的目标节点,下面结合图2对上述过程进行进一步说明。
图2为本公开实施例提供的一种查询语句的生成方法的流程示意图,如图2所示,该查询语句的生成方法,可以包括以下步骤:
步骤201,根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示。
其中,确定待生成的查询语句对应的第一语法树中根节点的方式可以有多种。
比如,可以对当前的问题语句中的关键词进行编码,以生成对应的向量,即生成根节点。
或者,也可以根据结合当前的问题语句的编码结果、待查询的知识库等等,确定根节点等等,本公开对此不做限定。
可以理解的是,问题语句,可以为文本形式,或者也可以为语音形式,经过处理转化为文本形式等等,本公开对此不做限定。
可选的,可以先对当前的问题语句进行编码,以确定问题语句对应的第三向量表示,之后根据第三向量表示、第二向量表示及待查询的知识库,确定参考向量表示,之后再根据参考向量表示及预设的拷贝参考矩阵,确定第一语法树中根节点对应的目标生成策略,之后通过执行目标生成策略,以基于参考向量表示或者第二向量表示,即可生成根节点。
其中,对当前的问题语句进行编码时,可以有多种方式。
比如可以将当前的问题语句作为一个文本序列,之后可以使用双向LSTM(longshort-term memory,长短期记忆网络)作为编码器,对其进行编码;或者,也可以使用RNN(recurrent neural network,循环神经网络)、多层LSTM等对其进行编码,所得编码结果即为问题语句对应的第三向量表示。本公开对此不做限定。
另外,待查询的知识库可以有多种形式,比如可以为知识图谱、关系型数据库、电子表格等等,本公开对此不做限定。
另外,在确定参考向量时,可以有多种方式。
比如,可以根据第三向量表示、第二向量表示及待查询的知识库各自对应的权重,将多个向量进行加权融合,所得结果即为参考向量表示。
或者,也可以将第三向量表示、第二向量表示及待查询的知识库对应的向量表示进行拼接,以得到参考向量表示等等,本公开对此不做限定。
另外,在通过执行目标生成策略,生成根节点时,也可以有多种情况。
比如,目标生成策略为不执行拷贝,则可以直接基于参考向量表示生成根节点。比如,将参考向量表示作为根节点等等。
或者,目标生成策略为执行拷贝且拷贝的内容为已生成的相邻的前一个查询语句对应的语法树中的节点,则可以根据相邻的前一个查询语句对应的第二向量表示,生成根节点。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中生成的根节点的方式等的限定。
可以理解的是,可以根据上述确定根节点的方式,确定第一语法树中的各个节点,进而确定出当前的第一向量表示,该过程此处不再赘述。
步骤202,根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略。
步骤203,执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,其中,第二向量表示为待生成的查询语句相邻的前一个查询语句对应的向量表示。
步骤204,在目标节点为非终止符的情况下,根据目标节点及各个已知节点,更新第一向量表示。
其中,非终结符可以表明查询语句对应的语法树,至该节点时还可以继续进行生成。
另外,更新第一向量表示的方式,可以有多种。
比如,可以根据目标节点及各个已知节点之间的关系,更新第一向量表示。或者,也可以将目标节点及各个已知节点进行拼接,以更新第一向量表示等等,本公开对此不做限定。
本公开实施例中,可以基于第一向量表示或者第二向量表示,以生成目标节点,从而可使得生成的目标节点充分考虑到了上下文的语义信息,从而提高了目标节点的准确性和可靠性。之后在目标节点为非终止符的情况下,根据目标节点及各个已知节点,更新第一向量表示。从而,可使得更新后的第一向量表示更为准确、可靠,为后续处理的可靠性和准确性提供了保障。
步骤205,基于更新后的第一向量表示,返回执行确定目标生成策略的步骤,直至生成的节点为终止符。
可以理解的是,更新后的第一向量表示,充分考虑到了上下文的语义信息。从而,基于更新后的第一向量表示,生成的目标节点,也更为准确、可靠。
本公开实施例中,在目标节点为非终止符的情况下,可以通过重复进行更新第一向量表示以及基于更新后的第一向量表示,生成目标节点的过程,使得第一向量表示的更新和目标节点的生成充分考虑了完整语义,从而提高了准确性和可靠性。
步骤206,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。
比如说,已生成的查询语句为:SELECT车型FROM汽车表WHERE能源类型=“燃油”AND销量>(SELECT AVG(销量)FROM汽车表),其对应的语法树可以如图2a所示。
可以理解的是,执行如图2a所示的语法树的过程,即对该语法树的深度优先遍历,并且在每一个时间步t,都有确定的语法限制,从而保证了语法的正确性。
另外,如图2a所示的语法树的执行过程的示意图可以如图2b所示。其中,图2b所示中的各个节点与图2a所示的语法树中的节点为对应关系,实线箭头表示执行过程,虚线箭头表示部分节点间的父子关系。
本公开实施例,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,之后可以通过执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,之后在目标节点为非终止符的情况下,根据目标节点及各个已知节点,更新第一向量表示,再返回执行确定目标生成策略的步骤,直至生成的节点为终止符,之后即可在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,通过多次更新第一向量表示,之后基于更新后的第一向量表示以生成目标节点,进而生成查询语句,可使得生成的查询语句,充分结合了上下文的完整语义,从而提高了生成的查询语句的准确性和可靠性。
上述实施例,在目标节点为非终止符的情况下,可以根据目标节点及各个已知节点,更新第一向量表示,之后继续生成新的目标节点,进而生成查询语句。在实际实现过程中,还可以对第二语法树中各个节点对应的基础向量表示进行更新,以获取前一个查询语句对应的第二向量表示。下面结合图3对上述过程进行详细说明。
图3为本公开实施例提供的一种查询语句的生成方法的流程示意图,如图3所示,该查询语句的生成方法,可以包括以下步骤:
步骤301,根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示。
步骤302,根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略。
步骤303,对前一个查询语句进行编码,以确定前一个查询语句对应的第二语法树中各个节点对应的基础向量表示。
其中,查询语句,可以有多种格式,比如可以为SQL(structured query language,结构化查询语句)等等,本公开对此不做限定。
其中,对前一个查询语句进行编码时,可以有多种方式。
比如可以将前一个查询语句作为一个文本序列,之后可以使用BiLSTM(双向LSTM)作为编码器,对其进行编码;或者,也可以使用RNN、多层LSTM等对查询语句进行编码,所得编码结果即为第二语法树中各个节点对应的基础向量表示等等。本公开对此不做限定。
或者,也可以使用如下所述的公式(1),对前一个查询语句进行编码:
Encbase=BiLSTM(SQL Tokens)(1)
其中,Encbase为前一个查询语句对应的第二语法树中各个节点对应的基础向量表示,BiLSTM为双向LSTM,SQL为前一个查询语句的格式,Tokens为前一个查询语句中包含的各个向量。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中,对前一个查询语句进行编码的方式等的限定。
步骤304,基于第二语法树中各个节点间的关系,对每个节点对应的基础向量表示进行更新,以获取前一个查询语句对应的第二向量表示。
其中,第二语法树中各个节点间的关系可以有多种,比如可以为并列、包含等等,本公开对此不做限定。
另外,在对每个节点对应的基础向量表示进行更新之后,可以将每个节点按照先后顺序进行拼接,从而得到前一个查询语句对应的第二向量表示。或者,在对每个节点对应的基础向量表示进行更新之后,也可以按照第二语法树中各个子树之间的关系,将每个节点对应的更新后的向量进行融合,以确定出前一个查询语句对应的第二向量表示等等,本公开对此不做限定。
另外,对每个节点对应的基础向量表示进行更新的方式有多种,比如可以根据第二语法树中每个节点对应的权重因子以及基础向量表示对其进行更新,或者也可以使用训练生成的注意力模型等等,本公开对此不做限定。
可选的,可以先根据第二语法树中每个节点对应的权重因子,利用每个节点关联的子节点的基础向量表示,对每个节点的基础向量表示进行更新,以获取每个节点更新后的向量表示,之后可以根据每个节点更新后的向量表示,确定前一个查询语句对应的第二向量表示。
其中,每个节点对应的权重因子,可以为用户根据需要自行设定的,或者也可以为通过训练得到的,本公开对此不做限定。
比如,第二语法树中的节点B对应的权重因子为0.5,其对应的基础向量为(001),与该节点B关联的子节点为B1、B2,其对应的基础向量分别为(0 1 0)、(1 0 0),将B1、B2对应的基础向量相加,可得向量(1 1 0),其对应的权重因子为0.5,之后将其进行加权融合,可得0.5*(0 0 1)+0.5(1 1 0),即为节点B更新后的向量表示。
或者,也可以使用如下所述的公式(2),对每个节点的基础向量进行更新:
其中,Encupdate为每个节点更新后的向量表示,α为每个节点对应的权重因子,为每个节点的基础向量表示,(1-α)为每个节点关联的子节点的权重因子,为每个节点关联的子节点的基础向量表示,其中,i为该节点关联的子节点。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中各节点、其对应的权重因子、以及对节点的向量表示进行更新的方式等的限定。
可以理解的是,可以根据上述更新节点B的向量表示的方式将第二语法树中各个节点依次进行更新,进而得到每个节点更新后的向量表示,该过程此处不再赘述。之后,可以将更新后的每个节点各自对应的向量表示进行拼接,以作为前一个查询语句对应的第二向量表示;或者,也可以根据第二语法树中各个节点间的关系,将各个节点更新后的向量表示进行融合,所得结果即为前一个查询语句对应的第二向量表示等等。本公开对此不做限定。
本公开实施例中,在对第二语法树中的各个节点对应的基础向量进行更新时,充分考虑到了第二语法树中各个节点间对应的权重,从而提高了确定的第二向量表示的准确性和可靠性。
可选的,还可以使用训练生成的第一注意力模型,获取每个节点更新后的向量表示。
具体的,先基于第二语法树中各个节点间的关系,确定每个节点对应的子节点,之后将每个节点的基础向量及对应的子节点的基础向量,输入训练生成的第一注意力模型中,以获取每个节点更新后的向量表示,再根据每个节点更新后的向量表示,确定前一个查询语句对应的第二向量表示。
其中,第一注意力模型,可以为已提前训练生成的注意力模型,将第二语法树中每个节点的基础向量及对应的子节点的基础向量输入其中,经过第一注意力模型的处理,即可输出每个节点更新后的向量表示。
可以理解的是,本公开中的第一注意力模型,可以先将输入其中的各向量编码成一个向量序列,之后在解码的过程中,可以选择性的从向量序列中挑选一个子集进行进一步处理,从而在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。由此,每个节点更新后的向量表示,充分结合了各节点的基础向量以及对应的子节点的基础向量等内容,即充分考虑了上下文语义信息,从而各个节点更新后的向量表示更加可靠、准确,进而可以提高第二向量表示的准确性和可靠性。
另外,在训练第一注意力模型时,可以提前设定,第一个输入向量为需要更新的节点;或者,也可以设定,最后一个输入的向量为需要更新的节点;或者,也可以根据需要自行设定输入顺序等等,本公开对此不做限定。
比如,根据第二语法树中各个节点间的关系,确定节点B对应的子节点为B1、B2,使用第一注意力模型时,第一个输入向量为需要更新的节点。从而,可以按照节点B、子节点B1、B2的基础向量节点的顺序,将其依次输入至该第一注意力模型中,之后经过处理,即可输出节点B更新后的向量表示。
或者,也可以使用如下所述的公式(3),对每个节点的基础向量进行更新:
其中,Encupdate为每个节点更新后的向量表示,ReLU为激活函数,Linear为线性映射函数,Concat为向量拼接算子,为每个节点的基础向量表示,Attention为计算注意力的算子,/>为每个节点对应的子节点的基础向量表示。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中使用第一注意力模型,确定每个节点更新后的向量表示的方法等的限定。
可以理解的是,可以根据上述更新节点B的向量表示的方式将第二语法树中各个节点依次进行更新,进而得到每个节点更新后的向量表示,该过程此处不再赘述。之后,可以将更新后的每个节点各自对应的向量表示进行拼接,以作为前一个查询语句对应的第二向量表示;或者,也可以根据第二语法树中各个节点间的关系,将各个节点更新后的向量表示进行融合,所得结果即为前一个查询语句对应的第二向量表示等等。本公开对此不做限定。
本公开实施例中,在对第二语法树中的各个节点对应的基础向量进行更新,充分考虑到了第二语法树中各个节点以及子节点间的关系,从而,利用第一注意力模型对其进行处理,所得到的第二向量表示也结合了第二语法树中各个节点间的关系,从而提高了确定的第二向量表示的准确性和可靠性。
可选的,还可以使用第二注意力模型,获取每个节点更新后的向量表示。
具体的,可以基于第二语法树中各个节点间的关系,确定每个节点对应的子节点,之后再获取当前的问题语句对应的第三向量表示,之后将第三向量表示、每个节点的基础向量及对应的子节点的基础向量,输入训练生成的第二注意力模型中,以获取每个节点更新后的向量表示,之后即可根据每个节点更新后的向量表示,确定前一个查询语句对应的第二向量表示。
其中,第二注意力模型,可以为已提前训练生成的注意力模型,将第三向量表示、每个节点的基础向量及对应的子节点的基础向量输入其中,经过第二注意力模型的处理,即可输出每个节点更新后的向量表示。
可以理解的是,本公开中的第二注意力模型,可以先将输入其中的各向量编码成一个向量序列,之后在解码的过程中,每一步都可以选择性的从向量序列中挑选一个子集进行进一步处理,从而在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。由此,每个节点更新后的向量表示,充分结合了问题语句的内容以及各节点及对应的子节点的基础向量等,即充分考虑了上下文语义信息,从而各个节点更新后的向量表示更加可靠、准确,进而可以提高第二向量表示的准确性和可靠性
另外,在训练第二注意力模型时,可以提前设定,第一个输入向量为需要更新的节点;或者,也可以设定,最后一个输入的向量为需要更新的节点;或者,也可以根据需要自行设定输入顺序等等,本公开对此不做限定。
比如,基于第二语法树中各个节点间的关系,确定节点B对应的子节点为B1、B2,且使用第二注意力模型时,第一个输入向量为需要更新的节点。从而,在可以将节点B、子节点B1、B2的基础向量节点以及第三向量表示,按照顺序依次输入该第一注意力模型中,之后经过处理,即可输出节点B更新后的向量表示。
或者,也可以使用如下所述的公式(4),对每个节点的基础向量进行更新:
其中,Encupdate为每个节点更新后的向量表示,ReLU为激活函数,Linear为线性映射函数,Concat为向量拼接算子,为每个节点的基础向量表示,Attention为计算注意力的算子,Encquestion为第三向量表示,/>为每个节点对应的子节点的基础向量表示。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中使用第二注意力模型,确定每个节点更新后的向量表示的方法等的限定。
可以理解的是,可以根据上述更新节点B的向量表示的方式将第二语法树中各个节点依次进行更新,进而得到每个节点更新后的向量表示,该过程此处不再赘述。之后,可以将更新后的每个节点各自对应的向量表示进行拼接,以作为前一个查询语句对应的第二向量表示;或者,也可以根据第二语法树中各个节点间的关系,将各个节点更新后的向量表示进行融合,所得结果即为前一个查询语句对应的第二向量表示等等。本公开对此不做限定。
本公开实施例中,在对第二语法树中的各个节点对应的基础向量进行更新,充分考虑到了第二语法树中各个节点间的关系、当前的问题语句,从而,利用第二注意力模型对其进行处理,所得到的第二向量表示也结合了第二语法树中各个节点间的关系以及当前的问题语句,即充分考虑了上下文的语义信息,从而提高了确定的第二向量表示的准确性和可靠性。
需要说明的是,本公开中,可以先执行步骤301、和步骤302,再执行步骤303和步骤304,或者也可以先执行步骤303和步骤304,再执行步骤301和步骤302,或者步骤301、步骤302与步骤303、步骤304也可以并行执行等等,本公开对此不做限定。
步骤305,执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,其中,第二向量表示为待生成的查询语句相邻的前一个查询语句对应的向量表示。
步骤306,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。
本公开实施例,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,对前一个查询语句进行编码,以确定前一个查询语句对应的第二语法树中各个节点对应的基础向量表示,之后基于第二语法树中各个节点间的关系,对每个节点对应的基础向量表示进行更新,以获取前一个查询语句对应的第二向量表示,再通过执行目标生成策略,以基于第一向量表示或者第二向量表示,生成目标节点,从而可以在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,通过对第二语法树中各个节点间对应的基础向量表示进行更新,以得到前一个查询语句对应的第二向量表示,之后基于该第二向量表示以生成目标节点,进而生成查询语句,可使得生成的查询语句,充分结合了上下文的完整语义,从而提高了生成的查询语句的准确性和可靠性。
上述实施例,通过对第二语法树中各个节点间对应的基础向量表示进行更新,以得到前一个查询语句对应的第二向量表示,之后基于该第二向量表示以生成目标节点,进而生成查询语句,提高了生成的查询语句的准确性和可靠性。在一种可能的实现方式中,目标节点也可以为非叶子节点,目标生成策略也可以用于指示在生成目标节点时是否执行拷贝的第一算子及是否执行文法拷贝动作的第二算子,下面结合图4对上述过程进行进一步说明。
图4为本公开实施例提供的一种查询语句的生成方法的流程示意图,如图4所示,该查询语句的生成方法,可以包括以下步骤:
步骤401,根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示。
步骤402,根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略。
比如,根据第一向量表示及预设的拷贝参考矩阵,可以确定当前待生成的目标节点对应的目标生成策略,该目标生成策略可以指示在生成目标节点时是否执行拷贝的第一算子及是否执行文法拷贝动作的第二算子。
其中,第一算子和第二算子,可以为经过训练生成的,或者,也可以为用户根据需要进行设定的等等,本公开对此不做限定。
其中,文法可以为描述语言的语法结构的形式规则,也即语法规则等等,本公开对此不做限定。
另外,可以根据第一算子、第二算子,确定在生成目标节点时是否执行拷贝及是否执行文法拷贝动作。
比如,可以提前设定好第一阈值、第二阈值。若第一算子大于第一阈值时,即表明执行拷贝。在执行拷贝的情况下,若第二算子大于第二阈值,即表明执行文法拷贝,若第二算子小于或等于第二阈值,则表明不执行文法拷贝等等。
或者,也可以根据门机制,确定是否执行拷贝以及是否执行文法拷贝动作等等。
举例来说,可以使用如下所述的公式(5),确定是否执行拷贝以及是否执行文法拷贝动作:
Prob=γ*ApplyRule+(1-γ)*(β*CopyRule+(1-β)*CopyTree) (5)
其中,Prob为门机制对应的概率值,ApplyRule为是否执行拷贝,γ为ApplyRule对应的概率,CopyRule为执行文法拷贝动作,β为CopyRule对应的概率,CopyTree为不执行拷贝动作,(1-γ)为CopyTree对应的概率。
比如,经过计算确定出门机制中,“执行拷贝且执行文法拷贝动作”对应的概率最大,即可确定当前待生成的目标节点对应的目标生成策略为:执行拷贝且执行文法拷贝动作。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中目标生成策略、第一算子、第二算子等的限定。
步骤403,在第一算子指示执行拷贝、且第二算子指示执行文法拷贝动作的情况下,获取前一个查询语句对应的第二语法树中包含的各候选文法向量。
其中,第二语法树中可以包含多种文法,比如可以为select、choose等等,各个文法对应有各自的文法向量,本公开对此不做限定。
另外,第二语法树中包含的候选文法向量,可以有一个,或者也可以有多个等等,本公开对此不做限定。
步骤404,根据每个候选文法向量与第一向量表示间的距离,确定目标文法向量。
可以理解的是,候选文法向量与第一向量表示间的距离值越大,表明该候选文法向量与第一向量表示间的匹配度就越低,候选文法向量与第一向量表示间的距离值越小,表明该候选文法向量与第一向量表示间的匹配度就越高。
从而,可以将各候选文法向量中,与第一向量表示间的距离值最小的候选文法向量,确定为目标文法向量。即,该候选文法向量与第一向量间的匹配度最高,从而提高了目标文法向量的准确性和可靠性。
其中,确定候选文法向量与第一向量表示间的距离可以有多种,比如可以使用欧氏距离公式、曼哈顿距离公式等等,本公开对此不做限定。
步骤405,根据目标文法向量,生成目标节点。
比如,可以根据目标文法向量对应的文法,生成目标节点。比如说,目标文法向量W对应的文法为:Where::=Condition1 And Condition2,从而可以根据该文法,生成目标节点等等,本公开对此不做限定。
或者,也可以根据目标文法向量,生成目标节点对应的向量,即生成目标节点等等。
需要说明的是,上述示例只是举例说明,不能作为对本公开实施例中生成目标节点的方式等的限定。
本公开实施例中,在确定目标文法向量时,充分考虑到了候选文法向量与第一向量表示间的距离,从而,可使得确定的目标问法向量更为准确、可靠。之后根据该目标文法向量,所生成的目标节点也更为准确和可靠。
步骤406,在第一算子指示执行拷贝、且第二算子指示不执行文法拷贝动作的情况下,获取第二语法树中包含的各个候选子树分别对应的各个子树向量。
其中,第二语法树中,可以包含一个子树,或者也可以包含多个子树等等,各个子树对应有各自的子树向量等等,本公开对此不做限定。
步骤407,根据每个候选子树向量与第一向量表示间的距离,确定目标子树向量。
可以理解的是,候选子树向量与第一向量表示间的距离值越大,表明该候选子树向量与第一向量表示间的匹配度就越低,候选子树向量与第一向量表示间的距离值越小,表明该候选子树向量与第一向量表示间的匹配度就越高。
从而,可以将各候选子树向量中,与第一向量表示间的距离值最小的候选子树向量,确定为目标子树向量。即,该候选子树向量与第一向量间的匹配度最高,从而提高了目标子树向量的准确性和可靠性。
其中,确定候选子树向量与第一向量表示间的距离可以有多种,比如可以使用欧氏距离公式、曼哈顿距离公式等等,本公开对此不做限定。
步骤408,将目标子树向量对应的子树,确定为目标节点。
本公开实施例中,在将目标子树向量对应的子树,确定为目标节点时,可以直接拷贝完整的子树,比如可以直接拷贝子树中包括的中间节点以及所有的叶子节点等等。从而,在根据目标子树向量对应的子树,确定目标节点时,充分考虑了子树的完整语义,从而实现了对片段的更好理解,为后续处理提供了保障。
可选的,目标节点为叶子节点,拷贝策略中还可以包括用于指示在生成目标节点时是否执行指定拷贝动作的第三算子,从而可以根据指定拷贝动作,生成目标节点。
具体的,可以在第三算子指示执行指定拷贝动作的情况下,获取第二语法树中包含的与指定拷贝动作对应的各候选节点向量,之后根据每个候选节点向量与第一向量表示间的距离,确定目标节点向量,再根据目标节点向量,生成目标节点。
其中,指定拷贝动作可以为表名拷贝、列名拷贝或者值拷贝等等,本公开对此不做限定。
比如,第三算子指示执行的指定拷贝动作为列拷贝,则可以获取第二语法树中包含的与列拷贝对应的各候选节点向量,比如为X1、X2、X3。之后可以根据各个候选节点向量X1、X2、X3与第一向量表示间的距离,确定目标节点向量,之后再根据目标节点向量,生成目标节点。
可以理解的是,各个候选节点向量与第一向量表示间的距离值越大,表明该候选节点向量与第一向量表示间的匹配度就越低,候选节点向量与第一向量表示间的距离值越小,表明该候选节点向量与第一向量表示间的匹配度就越高。
从而,可以将各候选节点向量中,与第一向量表示间的距离值最小的候选节点向量,确定为目标节点向量。即,该候选节点向量与第一向量间的匹配度最高,从而提高了目标节点向量的准确性和可靠性。
其中,确定候选节点向量与第一向量表示间的距离可以有多种,比如可以使用欧氏距离公式、曼哈顿距离公式等等,本公开对此不做限定。
本公开实施例中,对于叶子节点,可以根据第三算子指示的执行指定拷贝动作,获取第二语法树中包含的与指定拷贝动作对应的各候选节点向量,之后根据每个候选节点向量与第一向量表示间的距离,确定目标节点向量,再根据目标节点向量,生成目标节点。由此,在确定目标节点的过程中,充分考虑到了上下文之间的关系,从而提高了生成目标节点的准确性和可靠性。
步骤409,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。
本公开实施例中,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,在第一算子指示执行拷贝、且第二算子指示执行文法拷贝动作的情况下,获取前一个查询语句对应的第二语法树中包含的各候选文法向量,之后根据每个候选文法向量与第一向量表示间的距离,确定目标文法向量,并生成目标节点,或者在第一算子指示执行拷贝、且第二算子指示不执行文法拷贝动作的情况下,获取第二语法树中包含的各个候选子树分别对应的各个子树向量,之后根据每个候选子树向量与第一向量表示间的距离,确定目标子树向量,并将目标子树向量对应的子树,确定为目标节点,之后在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,根据不同的算子指示的不同动作,即可使用对应的方式即可确定出目标节点,之后再生成查询语句。由此,可使得确定的目标节点充分结合了上下文的完整语义,更为准确可靠,从而进一步提高了生成查询语句的准确性和可靠性。
为了实现上述实施例,本公开还提出一种查询语句的生成装置。
图5为本公开实施例提供的一种查询语句的生成装置的结构示意图。
如图5所示,该查询语句的生成装置500,包括:第一确定模块510、第二确定模块520、第一生成模块530、以及第二生成模块540。
其中,第一确定模块510,用于根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示。
第二确定模块520,用于根据所述第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略。
第一生成模块530,用于执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,其中,所述第二向量表示为所述待生成的查询语句相邻的前一个查询语句对应的向量表示。
第二生成模块540,用于在所述目标节点为终止符的情况下,根据所述各个已知节点及所述终止符,生成所述查询语句。
可选的,第一确定模块510,还用于对当前的问题语句进行编码,以确定所述问题语句对应的第三向量表示。
可选的,第一确定模块510,还用于根据所述第三向量表示、所述第二向量表示及待查询的知识库,确定参考向量表示。
可选的,第一确定模块510,还用于根据所述参考向量表示及所述预设的拷贝参考矩阵,确定所述第一语法树中根节点对应的目标生成策略。
可选的,第一生成模块530,还用于执行所述目标生成策略,以基于所述参考向量表示或者所述第二向量表示,生成所述根节点。
可选的,上述装置,还可以包括:
更新模块,用于在所述目标节点非终止符的情况下,根据所述目标节点及所述各个已知节点,更新所述第一向量表示。
执行模块,用于基于所述更新后的第一向量表示,返回执行所述确定目标生成策略的步骤,直至生成的节点为终止符。
可选的,上述装置,还可以包括:
编码模块,用于对所述前一个查询语句进行编码,以确定所述前一个查询语句对应的第二语法树中各个节点对应的基础向量表示。
获取模块,用于基于所述第二语法树中各个节点间的关系,对每个所述节点对应的基础向量表示进行更新,以获取所述前一个查询语句对应的第二向量表示。
可选的,所述获取模块,具体用于:
根据每个所述节点对应的权重因子,利用每个所述节点关联的子节点的基础向量表示,对每个所述节点的基础向量表示进行更新,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
可选的,所述获取模块,还具体用于:
基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点;
将每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第一注意力模型中,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
可选的,第一确定模块510,还用于基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点。
可选的,第一生成模块530,还用于获取当前的问题语句对应的第三向量表示。
可选的,第一生成模块530,还用于将所述第三向量表示、每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第二注意力模型中,以获取每个所述节点更新后的向量表示。
可选的,第一确定模块510,还用于根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
可选的,所述目标节点为非叶子节点,所述目标生成策略,包括用于指示在生成所述目标节点时是否执行拷贝的第一算子及是否执行文法拷贝动作的第二算子,所述第一生成模块530,具体用于:
在所述第一算子指示执行拷贝、且第二算子指示执行文法拷贝动作的情况下,获取所述前一个查询语句对应的第二语法树中包含的各候选文法向量;
根据每个所述候选文法向量与所述第一向量表示间的距离,确定目标文法向量;
根据所述目标文法向量,生成所述目标节点。
可选的,第一生成模块530,还用于:
在所述第一算子指示执行拷贝、且第二算子指示不执行文法拷贝动作的情况下,获取所述第二语法树中包含的各个候选子树分别对应的各个子树向量;
根据每个所述子树向量与所述第一向量表示间的距离,确定目标子树向量;
将所述目标子树向量对应的子树,确定为所述目标节点。
可选的,所述目标节点为叶子节点,所述拷贝策略中还包括用于指示在生成所述目标节点时是否执行指定拷贝动作的第三算子,所述第一生成模块530,还具体用于:
在所述第三算子指示执行所述指定拷贝动作的情况下,获取所述第二语法树中包含的与所述指定拷贝动作对应的各候选节点向量;
根据每个所述候选节点向量与所述第一向量表示间的距离,确定目标节点向量;
根据所述目标节点向量,生成所述目标节点。
本公开实施例中的上述各模块的功能及具体实现原理,可参照上述各方法实施例,此处不再赘述。
本公开实施例的查询语句的生成装置,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,之后可以通过执行目标生成策略,以基于所述第一向量表示或者第二向量表示,生成目标节点,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,在生成查询语句的过程中,充分考虑到了上下文的语义信息,从而提高了生成的查询语句的准确性和可靠性。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如查询语句的生成方法。例如,在一些实施例中,查询语句的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的查询语句的生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行查询语句的生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
本公开的技术方案,可以先根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示,之后根据第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略,之后可以通过执行目标生成策略,以基于所述第一向量表示或者第二向量表示,生成目标节点,在目标节点为终止符的情况下,根据各个已知节点及终止符,生成查询语句。由此,在生成查询语句的过程中,充分考虑到了上下文的语义信息,从而提高了生成的查询语句的准确性和可靠性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (19)

1.一种查询语句的生成方法,包括:
根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示;
根据所述第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略;
执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,其中,所述第二向量表示为所述待生成的查询语句相邻的前一个查询语句对应的向量表示;
在所述目标节点为终止符的情况下,根据所述各个已知节点及所述终止符,生成所述查询语句;
所述方法还包括:
对当前的问题语句进行编码,以确定所述问题语句对应的第三向量表示;
根据所述第三向量表示、所述第二向量表示及待查询的知识库,确定参考向量表示;
根据所述参考向量表示及所述预设的拷贝参考矩阵,确定所述第一语法树中根节点对应的目标生成策略;
执行所述目标生成策略,以基于所述参考向量表示或者所述第二向量表示,生成所述根节点;
其中,所述目标节点为非叶子节点,所述目标生成策略,包括用于指示在生成所述目标节点时是否执行拷贝的第一算子及是否执行文法拷贝动作的第二算子,所述执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,包括:
在所述第一算子指示执行拷贝、且第二算子指示执行文法拷贝动作的情况下,获取所述前一个查询语句对应的第二语法树中包含的各候选文法向量;
根据每个所述候选文法向量与所述第一向量表示间的距离,确定目标文法向量;
根据所述目标文法向量,生成所述目标节点。
2.如权利要求1所述的方法,其中,在所述生成所述目标节点之后,还包括:
在所述目标节点非终止符的情况下,根据所述目标节点及所述各个已知节点,更新所述第一向量表示;
基于所述更新后的第一向量表示,返回执行确定目标生成策略的步骤,直至生成的节点为终止符。
3.如权利要求1所述的方法,其中,还包括:
对所述前一个查询语句进行编码,以确定所述前一个查询语句对应的第二语法树中各个节点对应的基础向量表示;
基于所述第二语法树中各个节点间的关系,对每个所述节点对应的基础向量表示进行更新,以获取所述前一个查询语句对应的第二向量表示。
4.如权利要求3所述的方法,其中,所述基于所述第二语法树中各个节点间的关系,对每个所述节点对应的基础向量表示进行更新,以获取所述前一个查询语句对应的第二向量表示,包括:
根据每个所述节点对应的权重因子,利用每个所述节点关联的子节点的基础向量表示,对每个所述节点的基础向量表示进行更新,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
5.如权利要求3所述的方法,其中,所述基于所述第二语法树中各个节点间的关系,对每个所述节点对应的基础向量表示进行更新,以获取所述前一个查询语句对应的第二向量表示,包括:
基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点;
将每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第一注意力模型中,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
6.如权利要求3所述的方法,其中,在所述确定所述前一个查询语句中各个节点对应的基础向量表示之后,还包括:
基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点;
获取当前的问题语句对应的第三向量表示;
将所述第三向量表示、每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第二注意力模型中,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
7.如权利要求1所述的方法,其中,还包括:
在所述第一算子指示执行拷贝、且第二算子指示不执行文法拷贝动作的情况下,获取所述第二语法树中包含的各个候选子树分别对应的各个子树向量;
根据每个所述子树向量与所述第一向量表示间的距离,确定目标子树向量;
将所述目标子树向量对应的子树,确定为所述目标节点。
8.如权利要求3-6任一所述的方法,其中,所述目标节点为叶子节点,所述目标生成策略中还包括用于指示在生成所述目标节点时是否执行指定拷贝动作的第三算子,所述执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,包括:
在所述第三算子指示执行所述指定拷贝动作的情况下,获取所述第二语法树中包含的与所述指定拷贝动作对应的各候选节点向量;
根据每个所述候选节点向量与所述第一向量表示间的距离,确定目标节点向量;
根据所述目标节点向量,生成所述目标节点。
9.一种查询语句的生成装置,包括:
第一确定模块,用于根据待生成的查询语句对应的第一语法树中各个已知节点,确定当前的第一向量表示;
第二确定模块,用于根据所述第一向量表示及预设的拷贝参考矩阵,确定当前待生成的目标节点对应的目标生成策略;
第一生成模块,用于执行所述目标生成策略,以基于所述第一向量表示或者第二向量表示,生成所述目标节点,其中,所述第二向量表示为所述待生成的查询语句相邻的前一个查询语句对应的向量表示;
第二生成模块,用于在所述目标节点为终止符的情况下,根据所述各个已知节点及所述终止符,生成所述查询语句;
所述装置,还包括:
所述第一确定模块,还用于对当前的问题语句进行编码,以确定所述问题语句对应的第三向量表示;
所述第一确定模块,还用于根据所述第三向量表示、所述第二向量表示及待查询的知识库,确定参考向量表示;
所述第一确定模块,还用于根据所述参考向量表示及所述预设的拷贝参考矩阵,确定所述第一语法树中根节点对应的目标生成策略;
所述第一生成模块,还用于执行所述目标生成策略,以基于所述参考向量表示或者所述第二向量表示,生成所述根节点,其中,根据生成所述根节点的方式,生成所述第一语法树中的各个节点;
其中,所述目标节点为非叶子节点,所述目标生成策略,包括用于指示在生成所述目标节点时是否执行拷贝的第一算子及是否执行文法拷贝动作的第二算子,所述第一生成模块,具体用于:
在所述第一算子指示执行拷贝、且第二算子指示执行文法拷贝动作的情况下,获取所述前一个查询语句对应的第二语法树中包含的各候选文法向量;
根据每个所述候选文法向量与所述第一向量表示间的距离,确定目标文法向量;
根据所述目标文法向量,生成所述目标节点。
10.如权利要求9所述的装置,其中,还包括:
更新模块,用于在所述目标节点非终止符的情况下,根据所述目标节点及所述各个已知节点,更新所述第一向量表示;
执行模块,用于基于所述更新后的第一向量表示,返回执行确定目标生成策略的步骤,直至生成的节点为终止符。
11.如权利要求9所述的装置,其中,还包括:
编码模块,用于对所述前一个查询语句进行编码,以确定所述前一个查询语句对应的第二语法树中各个节点对应的基础向量表示;
获取模块,用于基于所述第二语法树中各个节点间的关系,对每个所述节点对应的基础向量表示进行更新,以获取所述前一个查询语句对应的第二向量表示。
12.如权利要求11所述的装置,其中,所述获取模块,具体用于:
根据每个所述节点对应的权重因子,利用每个所述节点关联的子节点的基础向量表示,对每个所述节点的基础向量表示进行更新,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
13.如权利要求11所述的装置,其中,所述获取模块,还具体用于:
基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点;
将每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第一注意力模型中,以获取每个所述节点更新后的向量表示;
根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
14.如权利要求11所述的装置,其中,
所述第一确定模块,还用于基于所述第二语法树中各个节点间的关系,确定每个节点对应的子节点;
所述第一生成模块,还用于获取当前的问题语句对应的第三向量表示;
所述第一生成模块,还用于将所述第三向量表示、每个所述节点的基础向量及对应的子节点的基础向量,输入训练生成的第二注意力模型中,以获取每个所述节点更新后的向量表示;
所述第一确定模块,还用于根据每个所述节点更新后的向量表示,确定所述前一个查询语句对应的第二向量表示。
15.如权利要求9所述的装置,其中,所述第一生成模块,还用于:
在所述第一算子指示执行拷贝、且第二算子指示不执行文法拷贝动作的情况下,获取所述第二语法树中包含的各个候选子树分别对应的各个子树向量;
根据每个所述子树向量与所述第一向量表示间的距离,确定目标子树向量;
将所述目标子树向量对应的子树,确定为所述目标节点。
16.如权利要求11-14任一所述的装置,其中,所述目标节点为叶子节点,所述目标生成策略中还包括用于指示在生成所述目标节点时是否执行指定拷贝动作的第三算子,所述第一生成模块,还具体用于:
在所述第三算子指示执行所述指定拷贝动作的情况下,获取所述第二语法树中包含的与所述指定拷贝动作对应的各候选节点向量;
根据每个所述候选节点向量与所述第一向量表示间的距离,确定目标节点向量;
根据所述目标节点向量,生成所述目标节点。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
CN202110733923.8A 2021-06-30 2021-06-30 查询语句的生成方法、装置、电子设备和存储介质 Active CN113553411B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110733923.8A CN113553411B (zh) 2021-06-30 2021-06-30 查询语句的生成方法、装置、电子设备和存储介质
US17/652,314 US20220179889A1 (en) 2021-06-30 2022-02-24 Method for generating query statement, electronic device and storage medium
JP2022078448A JP2022106980A (ja) 2021-06-30 2022-05-11 クエリ文の生成方法、装置、電子機器及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110733923.8A CN113553411B (zh) 2021-06-30 2021-06-30 查询语句的生成方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113553411A CN113553411A (zh) 2021-10-26
CN113553411B true CN113553411B (zh) 2023-08-29

Family

ID=78131133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110733923.8A Active CN113553411B (zh) 2021-06-30 2021-06-30 查询语句的生成方法、装置、电子设备和存储介质

Country Status (3)

Country Link
US (1) US20220179889A1 (zh)
JP (1) JP2022106980A (zh)
CN (1) CN113553411B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115497477A (zh) * 2022-09-09 2022-12-20 平安科技(深圳)有限公司 语音交互方法、语音交互装置、电子设备、存储介质
CN117609288B (zh) * 2024-01-17 2024-04-30 矩阵起源(深圳)信息科技有限公司 数据查询策略优化方法、装置、终端设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788992A (zh) * 2009-05-06 2010-07-28 厦门东南融通系统工程有限公司 一种数据库查询语句的转换方法和转换系统
CN106610999A (zh) * 2015-10-26 2017-05-03 北大方正集团有限公司 查询处理方法和装置
CN110334179A (zh) * 2019-05-22 2019-10-15 深圳追一科技有限公司 问答处理方法、装置、计算机设备和存储介质
CN110609849A (zh) * 2019-08-27 2019-12-24 广东工业大学 一种基于sql语法树节点类型的自然语言生成方法
CN111459967A (zh) * 2020-03-03 2020-07-28 深圳壹账通智能科技有限公司 结构化查询语句生成方法、装置、电子设备及介质
CN112559552A (zh) * 2020-12-03 2021-03-26 北京百度网讯科技有限公司 数据对生成方法、装置、电子设备及存储介质
CN113032465A (zh) * 2021-05-31 2021-06-25 北京谷数科技股份有限公司 数据查询方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594802B2 (en) * 2014-09-25 2017-03-14 Sap Se Graphical modeling of database query statements
CN106033466A (zh) * 2015-03-20 2016-10-19 华为技术有限公司 数据库查询的方法和设备
US10289615B2 (en) * 2017-05-15 2019-05-14 OpenGov, Inc. Natural language query resolution for high dimensionality data
CN107491534B (zh) * 2017-08-22 2020-11-20 北京百度网讯科技有限公司 信息处理方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101788992A (zh) * 2009-05-06 2010-07-28 厦门东南融通系统工程有限公司 一种数据库查询语句的转换方法和转换系统
CN106610999A (zh) * 2015-10-26 2017-05-03 北大方正集团有限公司 查询处理方法和装置
CN110334179A (zh) * 2019-05-22 2019-10-15 深圳追一科技有限公司 问答处理方法、装置、计算机设备和存储介质
CN110609849A (zh) * 2019-08-27 2019-12-24 广东工业大学 一种基于sql语法树节点类型的自然语言生成方法
CN111459967A (zh) * 2020-03-03 2020-07-28 深圳壹账通智能科技有限公司 结构化查询语句生成方法、装置、电子设备及介质
CN112559552A (zh) * 2020-12-03 2021-03-26 北京百度网讯科技有限公司 数据对生成方法、装置、电子设备及存储介质
CN113032465A (zh) * 2021-05-31 2021-06-25 北京谷数科技股份有限公司 数据查询方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Siyu Chen.et al.Improve Neural Machine Translation by Syntax Tree.ISCSIC '18: Proceedings of the 2nd International Symposium on Computer Science and Intelligent Control.2018,第1-6页. *

Also Published As

Publication number Publication date
CN113553411A (zh) 2021-10-26
US20220179889A1 (en) 2022-06-09
JP2022106980A (ja) 2022-07-20

Similar Documents

Publication Publication Date Title
EP4060565A1 (en) Method and apparatus for acquiring pre-trained model
US20220350965A1 (en) Method for generating pre-trained language model, electronic device and storage medium
US10496749B2 (en) Unified semantics-focused language processing and zero base knowledge building system
CN112131366B (zh) 训练文本分类模型及文本分类的方法、装置及存储介质
CN112507040B (zh) 多元关系生成模型的训练方法、装置、电子设备及介质
US20210342549A1 (en) Method for training semantic analysis model, electronic device and storage medium
US20220004714A1 (en) Event extraction method and apparatus, and storage medium
US20230004721A1 (en) Method for training semantic representation model, device and storage medium
JP7301922B2 (ja) 意味検索方法、装置、電子機器、記憶媒体およびコンピュータプログラム
CN113220836B (zh) 序列标注模型的训练方法、装置、电子设备和存储介质
CN110298019A (zh) 命名实体识别方法、装置、设备及计算机可读存储介质
US20220092252A1 (en) Method for generating summary, electronic device and storage medium thereof
JP7335300B2 (ja) 知識事前訓練モデルの訓練方法、装置及び電子機器
EP4113357A1 (en) Method and apparatus for recognizing entity, electronic device and storage medium
CN113553411B (zh) 查询语句的生成方法、装置、电子设备和存储介质
CN114281968A (zh) 一种模型训练及语料生成方法、装置、设备和存储介质
CN113641830A (zh) 模型预训练方法、装置、电子设备和存储介质
JP2022088540A (ja) ユーザ興味画像の生成方法、装置、電子機器及び記憶媒体
CN112507705B (zh) 一种位置编码的生成方法、装置及电子设备
CN115357710B (zh) 表格描述文本生成模型的训练方法、装置及电子设备
WO2023137903A1 (zh) 基于粗糙语义的回复语句确定方法、装置及电子设备
US20230111052A1 (en) Self-learning annotations to generate rules to be utilized by rule-based system
CN113392220B (zh) 一种知识图谱生成方法、装置、计算机设备及存储介质
CN114416941A (zh) 融合知识图谱的对话知识点确定模型的生成方法及装置
US11989516B2 (en) Method and apparatus for acquiring pre-trained model, electronic device and storage medium

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