发明内容
本说明书一个或多个实施例描述了一种针对用户问句输出反问问句的方法和装置,使得输出的反问问句能够明确提示用户需要补充的信息。
第一方面,提供了一种针对用户问句输出反问问句的方法,方法包括:
至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述业务导图包括按照树形结构组织的多个层级的多个语义节点,每个语义节点对应一个关键词及该关键词的关联表达,其中所述树形结构的叶节点挂载有对应的知识点标题;
当所述当前匹配节点集合包含的语义节点出现在所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致;
以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
在一种可能的实施方式中,所述至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,包括:
将当前用户问句作为所述匹配模型的第一输入,将历史匹配节点集合作为所述匹配模型的第二输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述历史匹配节点集合由预先建立的业务导图中与所述当前用户问句之前的历史问句匹配的语义节点所构成。
在一种可能的实施方式中,所述根据所述当前匹配节点集合生成反问树包括:
对所述多条路径上的公共节点进行合并。
在一种可能的实施方式中,所述反问问句包括通用问句和供用户选择的多个选项卡,所述多个选项卡包括所述多个子节点中每个子节点的文本表达。
进一步地,所述输出反问问句之后,所述方法还包括:
接收针对所述多个选项卡的选择指令,根据所述选择指令确定所述多个子节点中与所述当前用户问句相关的目标子节点。
在一种可能的实施方式中,所述反问问句具体为与所述多个子节点对应层级的语义角色相关的关联问句,所述业务导图的每个层级对应特定的语义角色,所述语义角色包括操作、属性、状态和问题类型中的至少一个。
进一步地,输出反问问句之后,所述方法还包括:
接收针对所述关联问句的输入文本信息,根据所述输入文本信息确定所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,所述方法还包括:
确定所述目标子节点的子节点个数小于或等于1;
根据所述当前匹配节点集合和所述目标子节点确定目标链路,将所述目标链路挂载的知识点,作为与所述当前用户问句匹配的知识点。
进一步地,所述方法还包括:
确定所述目标子节点的子节点个数大于1;
更新所述当前节点为所述目标子节点,执行所述根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,所述输出反问问句之前,所述方法还包括:
若所述当前节点所属的层级大于第一阈值,且所述当前节点具有的子节点的层级数目大于第二阈值,则确定所述至少一个层级为所有层级;
否则,确定所述至少一个层级为相邻的一个层级。
进一步地,所述输出反问问句之后,所述方法还包括:
在预设时间内未接收到针对所述多个选项卡的选择指令时,中止所述反问问句对应的反问流程。
第二方面,提供了一种针对用户问句输出反问问句的装置,装置包括:
匹配单元,用于至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述业务导图包括按照树形结构组织的多个层级的多个语义节点,每个语义节点对应一个关键词及该关键词的关联表达,其中所述树形结构的叶节点挂载有对应的知识点标题;
生成单元,用于当所述匹配单元得到的当前匹配节点集合包含的语义节点出现在所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致;
输出单元,以所述生成单元生成的反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先得到预先建立的业务导图中与当前用户问句匹配的语义节点所构成的当前匹配节点集合,接着若根据当前匹配节点集合确定需要用户补充信息时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致,最后以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点,使得输出的反问问句能够明确提示用户需要补充的信息。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及针对用户问句输出反问问句,具体地,基于预先建立的业务导图针对用户问句输出反问问句。通常地,问答机器人利用知识库中的问题(即问句)-答案(即知识点)对来回答用户问题(即用户问句)。知识库中包含大量问题-答案对,其中的问题称为标准问题(简称:标问),通过将用户问句与知识库中的标准问题进行匹配,如果找到匹配的标准问题,则将其对应的答案返回。为了拓展标准问题理解的泛化能力,一个标准问题对应多个字面不同的表达方式,称之为标问的问法,如果用户问句和某一问法匹配,就相当于用户问句和该问法对应的标问匹配。标问和问法的对应关系是1对多,问法和标问的对应关系是1对1。
通过业务人员梳理,将知识库中每个标问整理为一组标准语义要素,标问与语义要素组合一一对应。然后根据业务领域划分,结合标问对应的语义要素,构建一棵棵以业务要素为根节点的树。每棵树的根节点为业务要素,其子节点为业务细分领域的语义要素,比如操作、属性、状态,再下层是更细分领域的语义要素,比如子操作、子属性等,层次细分领域,叶子节点为问题类型语义要素,比如为什么、怎么、是什么等等。每个从根节点到叶子节点的路径上的全部要素组合对应了知识库里面的一条标问,标问也可称为知识点标题。
参照图1,业务导图100包括按照业务维度整理为树状层级结构的多个节点(例如,节点11、节点12、节点13、节点14),这些节点也可以称为“语义节点”。每个节点对应一个标准语义要素,该标准语义要素具有一个关键词以及该关键词的关联表达,例如,节点11对应的关键词为“余额宝”,节点11对应业务类型的语义要素;节点12对应的关键词为“退款”,节点12对应操作类型的语义要素;节点13对应的关键词为“查询”,节点13对应子操作类型的语义要素;节点14对应的关键词为“how”,节点14对应问题类型的语义要素。其中,每个关键词可以具有一个或多个关联表达,关联表达包含同义表达、蕴含表达、上下位词等,例如,关键词“how”可以具有关联表达“如何”。每个语义节点都可配置其关联表达,关键词及其关联表达的配置是根据用户问句识别到节点的匹配关键。所述业务导图的根节点代表具有特定业务类型的业务,例如,节点11为根节点,代表了一项具体的业务“余额宝”。所述业务导图的叶节点挂载与该叶节点的关键词相关联的知识点,例如,节点14为叶节点,该叶节点的关键词为“how”,该叶节点挂载了知识点15“如何查询余额宝退款”及答案,其中,每个知识点对应一个知识点标题,知识点标题也称为标准问句,例如知识点标题可以为“如何查询余额宝退款”。
业务导图是运营人员梳理出来的树状结构,以层级的形式组织知识库的各项知识点。可以看出,树的根节点是业务类型,经过层层分支,到树的叶子节点是知识库中的一个知识点,导图的结构,节点名称均可修改、调整,给了运营人员编辑调整知识库以很大的便利性。
通过将用户问句匹配到各个“语义节点”,推导出用户需要的答案。当所述匹配节点集合匹配到所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,就需要输出反问问句,该反问问句用于指示用户进一步补充信息,以便进一步明确用户述求,从而确定用户问句匹配的完整链路,并最终确定与用户问句匹配的知识点标题。
本说明书实施例中,首先识别用户问句中包含哪些导图知识库中预定义的要素,然后根据用户问句中(可以含上下文)已有要素和导图知识库构建反问树,再利用反问树有针对性的逐层提问,直至明确用户真实述求。
图2示出根据一个实施例的针对用户问句输出反问问句的方法流程图,该方法可以基于图1所示的应用场景。如图2所示,该实施例中针对用户问句输出反问问句的方法包括以下步骤:步骤21,至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述业务导图包括按照树形结构组织的多个层级的多个语义节点,每个语义节点对应一个关键词及该关键词的关联表达,其中所述树形结构的叶节点挂载有对应的知识点标题;步骤22,当所述当前匹配节点集合包含的语义节点出现在所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致;步骤23,以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。下面描述以上各个步骤的具体执行方式。
首先在步骤21,至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述业务导图包括按照树形结构组织的多个层级的多个语义节点,每个语义节点对应一个关键词及该关键词的关联表达,其中所述树形结构的叶节点挂载有对应的知识点标题。
本说明书实施例中,可以仅基于当前用户问句确定当前匹配节点集合,或者,还可以基于当前用户问句和上下文确定当前匹配节点集合。在一个示例中,将当前用户问句作为所述匹配模型的第一输入,将历史匹配节点集合作为所述匹配模型的第二输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述历史匹配节点集合由预先建立的业务导图中与所述当前用户问句之前的历史问句匹配的语义节点所构成。
本说明书实施例中,由于每个语义节点对应一个标准语义要素,因此确定当前匹配节点集合的过程实际上也是一个要素识别的过程。图3为本说明书实施例提供的针对用户问句输出反问问句的方法关键步骤示意图,参照图3,该方法主要包含两个关键处理步骤:针对用户问句(query)的要素识别和多轮反问,将多轮反问后获得的用户信息输出给问答(QA)引擎。
其中,要素识别的目的,就是判断用户问句中有什么,缺什么。
对于一般的用户提问,可以分为条件和述求两部分。其中条件部分表明当前用户所处的状态,已经完成了什么操作,被施以什么样的处理,或者账户的某种属性处于某种状态;述求是用户提问的中心,表明用户希望获取什么样的信息,或者做什么样的操作。
用户的述求描述又可以进一步细分为:业务/产品,属性,操作和问题类型。对于复杂业务,属性下面还包含属性的子属性或者子操作,操作下面也会包含子属性或者子操作。而问题类型则表明用户想了解核心属性/操作的哪一方面。通常情况下,对于属性相关的问题类型包含:是什么,有没有,在哪里,能用么,怎么用等等;对于操作相关的问题类型包含:可以么,为什么不可以,什么情况下可以,怎么做等等。此外,还有针对状态的直接提问。用户问句中的关键要素可以是一个词,也可以是一个词组,对于词组,其各个组成部分在句子中可以是连续出现的,也可以是中间有间隔的,可以是顺序出现的,也可以是逆序出现的,前提这些组成部分是在依存句法分析中形成紧密的依存关系。
图4为本说明书实施例提供的针对用户问句进行要素识别的方法流程图,参照图4,对于要素识别分为如下步骤:
a)对用户问句进行分词。
b)对分词结果进行句法分析。
c)根据知识库导图和句法分析结果识别句子中包含的各项基本要素,以及基本要素之间的修饰关系。
d)根据同义归一,将各个基本要素转换为标准要素;可以理解的是,业务导图中每个语义节点具有一个关键词和多个关联表达,步骤c)中识别出的基本要素有可能为关联表达,将关联表达转换为关键词,即将基本要素转换为标准要素。
e)要素识别完成后,一方面会传入上下文存储系统,为后续的对话提供上下文信息;另一方面会传入多轮反问模块,以便输出反问问句,反问问句用于指示用户补充信息,以便根据用户补充的信息进行要素补充。
可以理解的是,多轮反问仅是一种典型的情况,实际中也存在只有一轮反问就获得了需要补充的信息,从而构成了业务导图的一条完整链路的情况。
接着在步骤22,当所述当前匹配节点集合包含的语义节点出现在所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致。
可以理解的是,反问树的根节点可以代表所述当前匹配节点集合中的各节点,反问树的多条路径可以基于匹配到的所述多条链路生成,例如,将所述多条链路剔除所述当前匹配节点集合包含的节点,从而得到反问树的多条路径。
本说明书实施例中,当用户问句述求模糊的时候,其用户问句中的关键要素(含补充后的上下文)不能覆盖任何一条导图的完整路径,而且通常出现在导图的多条路径中。为了澄清用户的述求,需要通过反问确定用户提问中的隐含信息。首先,根据业务导图建立以用户问句中包含的要素为根节点的反问树。然后,根据反问树逐层反问用户,获取必要的信息,直到确定对应的标问,反问结束。
如图5所示为本说明书实施例提供的一种反问树构建方法流程图,该方法包括:
1)结合上下文判断用户提问(即用户问句)的关键要素集合。
2)将提问中全部关键要素提取出来形成一个节点作为根节点。
3)对于每一条包含全部提问要素的路径,将剔除提问要素后的节点按照原来路径的顺序连接起来形成一条新的链路,并把这个链路挂接在根节点上。
4)将各条链路上的公共节点合并形成一棵反问树。
反问树构建过程示意图如图6所示。
下面给出一个多轮反问的示例:
用户的提问是“钱不见了”。其关键要素集合为“钱”,“不见了”。假设在知识库中包含这些信息的有如下标问:
校园一卡通为什么我一卡通待圈存的钱不见了
为什么退款的钱不见了
我转入余利宝里面的钱不见了
我提现的钱不见了
支付宝提现失败钱不见了
存在余额宝里钱不见了
招财宝到期钱不见了
信用卡还款资金不见了
如图7所示为包含“钱不见了”的导图路径示意图。根据图7中的路径,可以生成如图8所示“钱不见了”的反问树。
最后在步骤23,以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
本说明书实施例中,反问问句的具体表现形式可以多样化,用户对反问问句作出回答的方式也可以多样化。
在一个示例中,所述反问问句包括通用问句和供用户选择的多个选项卡,所述多个选项卡包括所述多个子节点中每个子节点的文本表达。
基于前述示例,所述输出反问问句之后,所述方法还包括:接收针对所述多个选项卡的选择指令,根据所述选择指令确定所述多个子节点中与所述当前用户问句相关的目标子节点。
在另一个示例中,所述反问问句具体为与所述多个子节点对应层级的语义角色相关的关联问句,所述业务导图的每个层级对应特定的语义角色,所述语义角色包括操作、属性、状态和问题类型中的至少一个。
基于前述示例,输出反问问句之后,所述方法还包括:接收针对所述关联问句的输入文本信息,根据所述输入文本信息确定所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,当确定所述目标子节点的子节点个数小于或等于1时,根据所述当前匹配节点集合和所述目标子节点确定目标链路,将所述目标链路挂载的知识点,作为与所述当前用户问句匹配的知识点。
当确定所述目标子节点的子节点个数大于1时,更新所述当前节点为所述目标子节点,执行所述根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,所述输出反问问句之前,若所述当前节点所属的层级大于第一阈值,且所述当前节点具有的子节点的层级数目大于第二阈值,则确定所述至少一个层级为所有层级;否则,确定所述至少一个层级为相邻的一个层级。
进一步地,所述输出反问问句之后,在预设时间内未接收到针对所述多个选项卡的选择指令时,中止所述反问问句对应的反问流程。
如图9所示为本说明书实施例提供的一种针对“钱不见了”的反问流程示意图,其中,标记有五角星的选项卡表示用户点击选择的选项卡。参见图9,示例中并未采用节点语义角色相关的反问文案,而采用通用反问文案。当反问树中某一层节点的子节点既包含标问也包含导图概念节点,例如“提现”的子节点,这时候反问的展现要一方面展示标问供用户选择,另一方面显示反问文案和选项,供用户进一步明确述求。
本方案的要点在于先通过要素识别确定用户提问中有什么要素,再根据导图知识库确定通过反问让用户补充什么要素。在本方案中采用卡片选择方式获取反问对应的答案,采用直接文本输入的方式获取用户答案也应该包含在本方案中。在本方案给出的实例中,反问文案采用通用反问+卡片候选答案。通用反问也可以替换为节点相关文案,或者替换为节点类型相关文案。
每次反问,一方面给出问题(标注在导图对应的节点上,或者根据导图节点的语义标签提问),一方面利用反问树的节点给出对应的文案卡片供用户选择,用户只需要点击选择而无需输入文本信息。如果用户没有选择给出的候选节点,说明用户述求并不在标问库中,反问中止。如果预计第三轮反问不能完全确定用户述求,可以把后面需要确定的信息不同反问树路径集中在一轮卡片选择中给出。
如图10所示为本说明书实施例提供的一种多轮反问的方法流程图,主要包括如下步骤:
1)找到导图中包含提问中要素的全部路径,检查这些路径中是否存在完整的路径;
2)如果是,不开启反问流程,进入后面的匹配排序模块;
3)如果否,根据导图知识库生成反问树,并将其根节点设为当前节点;
4)提取当前节点全部子节点的文本表示生成反问卡片供用户选择;
5)如果用户没有点选4)中推荐的卡片,说明用户提问超出当前知识库反问,跳出反问流程;
6)如果用户选择某个卡片,检查对应节点的子节点个数是否不大于1;
7)如果否,将用户选择所对应的节点设置为当前节点,转步骤4)
8)如果是,将该节点所在的路径所对应标问的答案返回给用户,解答用户提问。
本方案先通过要素识别判断用户提问中包含哪些关键要素,再根据业务导图建立反问树确定用户可能缺失的信息,反问都是针对需要获取的信息的。本方案基于关键要素和业务导图,并不依赖意图识别。所以在没有意图分类体系,或者意图分类难度大、分类结果可信度低,或者用户提问横跨多意图的情况,都可以依赖导图知识库很好的构建反问树,逐步澄清用户的真实述求。即便用户提问超出当前知识库覆盖范围,也能够通过日志及时发现,进行知识库扩充。
通过本说明书实施例提供的方法,首先得到预先建立的业务导图中与当前用户问句匹配的语义节点所构成的当前匹配节点集合,接着若根据当前匹配节点集合确定需要用户补充信息时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致,最后以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点,使得输出的反问问句能够明确提示用户需要补充的信息。
根据另一方面的实施例,还提供一种针对用户问句输出反问问句的装置,该装置用于执行本说明书实施例提供的针对用户问句输出反问问句的方法。图11示出根据一个实施例的针对用户问句输出反问问句的装置的示意性框图。如图11所示,该装置1100包括:
匹配单元111,用于至少将当前用户问句作为匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述业务导图包括按照树形结构组织的多个层级的多个语义节点,每个语义节点对应一个关键词及该关键词的关联表达,其中所述树形结构的叶节点挂载有对应的知识点标题;
生成单元112,用于当所述匹配单元111得到的当前匹配节点集合包含的语义节点出现在所述业务导图的多条链路,且无法构成所述业务导图的一条完整链路时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致;
输出单元113,以所述生成单元112生成的反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
可选地,作为一个实施例,所述匹配单元111,具体用于将当前用户问句作为所述匹配模型的第一输入,将历史匹配节点集合作为所述匹配模型的第二输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,所述历史匹配节点集合由预先建立的业务导图中与所述当前用户问句之前的历史问句匹配的语义节点所构成。
可选地,作为一个实施例,所述生成单元112,具体用于对所述多条路径上的公共节点进行合并。
可选地,作为一个实施例,所述输出单元113输出的反问问句包括通用问句和供用户选择的多个选项卡,所述多个选项卡包括所述多个子节点中每个子节点的文本表达。
进一步地,所述装置还包括:
确定单元,用于在所述输出单元113输出反问问句之后,接收针对所述多个选项卡的选择指令,根据所述选择指令确定所述多个子节点中与所述当前用户问句相关的目标子节点。
可选地,作为一个实施例,所述输出单元113输出的反问问句具体为与所述多个子节点对应层级的语义角色相关的关联问句,所述业务导图的每个层级对应特定的语义角色,所述语义角色包括操作、属性、状态和问题类型中的至少一个。
进一步地,所述装置还包括:
确定单元,用于在所述输出单元113输出反问问句之后,接收针对所述关联问句的输入文本信息,根据所述输入文本信息确定所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,所述确定单元,还用于确定所述目标子节点的子节点个数小于或等于1;根据所述匹配单元111得到的当前匹配节点集合和所述目标子节点确定目标链路,将所述目标链路挂载的知识点,作为与所述当前用户问句匹配的知识点。
进一步地,所述确定单元,还用于确定所述目标子节点的子节点个数大于1;
所述装置还包括:
更新单元,用于指示所述输出单元113更新所述当前节点为所述目标子节点,执行所述根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点。
进一步地,所述确定单元,还用于在所述输出单元113输出反问问句之前,若所述当前节点所属的层级大于第一阈值,且所述当前节点具有的子节点的层级数目大于第二阈值,则确定所述至少一个层级为所有层级;否则,确定所述至少一个层级为相邻的一个层级。
进一步地,所述装置还包括:
中止单元,用于在所述输出单元113输出反问问句之后,在预设时间内未接收到针对所述多个选项卡的选择指令时,中止所述反问问句对应的反问流程。
通过本说明书实施例提供的装置,首先由匹配单元111得到预先建立的业务导图中与当前用户问句匹配的语义节点所构成的当前匹配节点集合,接着生成单元112若确定根据当前匹配节点集合确定需要用户补充信息时,根据所述当前匹配节点集合生成反问树,所述反问树包括根节点,所述根节点后挂载多条路径,所述多条路径包含的节点属于所述多条链路,并且,所述多条路径包含的节点不属于所述当前匹配节点集合,所述多条路径包含的节点层级与所述多条链路的节点层级一致,最后由输出单元113以所述反问树的根节点作为当前节点的初始节点,根据所述当前节点的至少一个层级的多个子节点,输出反问问句,所述反问问句用于询问所述多个子节点中与所述当前用户问句相关的目标子节点,使得输出的反问问句能够明确提示用户需要补充的信息。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2至图10所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2至图10所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。