CN111090733A - 人机交互方法、装置、设备及可读存储介质 - Google Patents
人机交互方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111090733A CN111090733A CN201911347217.9A CN201911347217A CN111090733A CN 111090733 A CN111090733 A CN 111090733A CN 201911347217 A CN201911347217 A CN 201911347217A CN 111090733 A CN111090733 A CN 111090733A
- Authority
- CN
- China
- Prior art keywords
- sub
- target
- information
- intention
- input
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 348
- 230000003993 interaction Effects 0.000 title claims abstract description 121
- 230000006870 function Effects 0.000 claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 35
- 230000010365 information processing Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 25
- 238000004891 communication Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 101100126166 Escherichia coli (strain K12) intB gene Proteins 0.000 description 5
- 101100126168 Escherichia coli (strain K12) intE gene Proteins 0.000 description 4
- 101100126180 Escherichia coli (strain K12) intS gene Proteins 0.000 description 4
- 101100126167 Escherichia coli (strain K12) intD gene Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100378953 Emericella nidulans (strain FGSC A4 / ATCC 38163 / CBS 112.46 / NRRL 194 / M139) amdR gene Proteins 0.000 description 2
- 101100126165 Escherichia coli (strain K12) intA gene Proteins 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100170444 Bacillus subtilis (strain 168) dhbA gene Proteins 0.000 description 1
- 210000001015 abdomen Anatomy 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 235000008429 bread Nutrition 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 101150032495 entA gene Proteins 0.000 description 1
- 101150094817 entB gene Proteins 0.000 description 1
- 101150037447 entC gene Proteins 0.000 description 1
- 101150099753 entD gene Proteins 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 101150017274 menF gene Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Acoustics & Sound (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例公开了一种人机交互方法、装置、设备及可读存储介质,在获取输入信息后,对输入信息进行多意图理解,得到多个意图理解结果;根据多个意图理解结果确定目标意图;调用目标意图对应的目标子流程,以响应输入信息;其中,目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。本申请实施例中,按意图将一个对话流程划分为多个子流程,每个子流程仅负责对应意图相关的业务逻辑,这样开发者在进行开发时只需要关注子流程相关的业务逻辑即可,而且可以多个开发人员同时对不同的子流程进行开发,大大降低了开发者的开发难度,简化了调试和设计难度。同时,所开发的子流程还可以复用,避免开发者重复创建类似的功能。
Description
技术领域
本申请涉及人机交互技术领域,更具体地说,涉及一种人机交互方法、装置、设备及可读存储介质。
背景技术
人机交互过程是基于对话流程实现预定功能的。对话流程是由开发者在人机交互开放平台上定义的,开发者可以在平台上,通过添加节点并对节点进行配置来处理用户输入的信息,通过添加节点间的连线来表示对话流的走向。
然而,发明人研究发现,在实现一个功能时,目前的人机交互过程都是基于一个对话流程来实现所有的业务逻辑。在实际人机交互过程中,有些功能需要收集的信息比较少,这类功能的业务逻辑通常比较简单,可能只需要进行一轮人机对话,或较少轮数的人机对话就可以收集到所需要的所有信息进而根据收集到的信息实现相应的功能,因此需要定义的对话流程比较简单,而有些功能需要收集的信息较多,这类功能的业务逻辑通常比较复杂,此时通常需要进行多轮人机对话才能收集到所需要的所有信息进而根据收集到的信息实现相应的功能,针对复杂的业务逻辑,所定义的对话流中的节点会非常多,难以调试和设计,对开发者的要求很高,如果对话流中的不同节点之间需要交互,会进一步增加对话流程的复杂性,也进一步增加了开发者的开发难度。
发明内容
有鉴于此,本申请提供了一种人机交互方法、装置、设备及可读存储介质,以降低开发者的开发难度。
为了实现上述目的,现提出的方案如下:
一种人机交互方法,包括:
获取输入信息;
对所述输入信息进行意图理解,以确定目标意图;
调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
上述方法,优选的,所述对所述输入信息进行意图理解,以确定目标意图,包括:
对所述输入信息进行多意图理解,得到多个意图理解结果;
根据所述多个意图理解结果,确定目标意图。
上述方法,优选的,所述对所述输入信息进行多意图理解,包括:
在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
调用至少部分目标输入节点分别对所述输入信息进行意图理解,得到所述至少部分目标输入节点的意图理解结果;或者,
在各个目标输入节点进行意图理解所调用的功能模型中,确定用于实现同一功能的互不相同的功能模型,调用所述用于实现同一功能的互不相同的功能模型进行意图理解,得到多个意图理解结果。
上述方法,优选的,所述调用至少部分目标输入节点分别对所述输入信息进行意图理解,包括:
调用每一个目标输入节点分别对所述输入信息进行意图理解,得到每一个目标输入节点的意图理解结果;
或者,
调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解。
上述方法,优选的,每个输入节点均由至少一个子输入节点构成,每个子输入节点位于一个信息处理环节;所述调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解,包括:
对于所述互不相同的目标输入节点中位于同一信息处理环节的子输入节点,调用所述位于同一信息处理环节的子输入节点中的互不相同的目标子输入节点进行信息处理。
上述方法,优选的,若所述输入信息为用户首次输入的信息,在对所述输入信息进行意图理解之前,还包括:
将前景描述信息初始化为空;所述前景描述信息用于在人机交互过程中记录历史输入信息被响应时获得的目标上下文信息,以及被调用子流程的标识,所述被调用子流程响应输入信息后所述被调用子流程中下一个需要调用的输入节点的信息;
将后景描述信息初始化为:所述多个子流程中各个子流程的标识,以及每个子流程首次被调用时需要调用的输入节点的信息;所述后景描述信息用于在人机交互过程中记录所述多个子流程中未被调用的每一个子流程的标识,以及该子流程被调用时该子流程中需要调用的输入节点的信息。
上述方法,优选的,所述在所述多个子流程中的每一个子流程中分别确定一目标输入节点,包括:
将所述前景描述信息中记录的被调用子流程中下一个需要调用的输入节点确定为所述被调用子流程中的目标输入节点;
将所述后景描述信息中记录的每一个未被调用的子流程被调用时该子流程中需要调用的输入节点确定为该子流程中的目标输入节点。
上述方法,优选的,所述根据所述多个意图理解结果确定目标意图,包括:
若所述多个意图理解结果表征仅有一个目标输入节点理解出意图,将该目标输入节点理解出的意图确定为目标意图;
若所述多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,则将所述当前调用的子流程中的目标输入节点理解出的意图确当为目标意图;
若所述多个意图理解结果表征至少两个目标输入节点均理解出了意图,且当前调用的子流程中的目标输入节点未理解出的意图,则从所述至少两个目标输入节点理解出的意图中选择优先级最高的意图作为目标意图;其中,所述优先级根据所述输入信息属于各个意图的概率确定。
上述方法,优选的,所述调用所述目标意图对应的目标子流程,以响应所述输入信息包括:
调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;
输出所述反馈信息。
上述方法,优选的,所述调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;输出所述反馈信息,包括:
调用所述目标子流程中与所述目标意图关联的至少一个目标处理节点,以执行预置操作;
调用所述目标子流程中与所述至少一个目标处理节点关联的目标输出节点,以根据所述预置操作的执行结果,确定并输出反馈信息。
上述方法,优选的,若所述输入信息为用户首次输入的信息,在对所述输入信息进行意图理解之前,还包括:
提取所述输入信息中携带的业务标识信息;
提取所述业务标识信息对应的所有子流程的配置信息;
根据每一个子流程的配置信息,对每一个子流程初始化。
一种人机交互装置,包括:
获取模块,用于获取输入信息;
意图理解模块,用于对所述输入信息进行意图理解,以确定目标意图;
响应模块,用于调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
上述装置,优选的,所述意图理解模块包括:
多意图理解模块,对所述输入信息进行多意图理解,得到多个意图理解结果;
目标意图确定模块,用于根据所述多个意图理解结果,确定目标意图。
上述装置,优选的,所述多意图理解模块包括:
目标输入节点确定模块,用于在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
第一调用模块,用于调用至少部分目标输入节点分别对所述输入信息进行意图理解,得到所述至少部分目标输入节点的意图理解结果。
上述装置,优选的,所述第一调用模块具体用于:
调用每一个目标输入节点分别对所述输入信息进行意图理解,得到每一个目标输入节点的意图理解结果;
或者,
调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解。
上述装置,优选的,每个输入节点均由至少一个子输入节点构成,每个子输入节点位于一个信息处理环节;所述第一调用模块调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解时,具体用于:
对于所述互不相同的目标输入节点中位于同一信息处理环节的子输入节点,调用所述位于同一信息处理环节的子输入节点中的互不相同的目标子输入节点进行信息处理。
上述装置,优选的,所述多意图理解模块包括:
目标输入节点确定模块,用于在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
第二调用模块,用于在各个目标输入节点进行意图理解所调用的功能模型中,确定用于实现同一功能的互不相同的功能模型,调用所述用于实现同一功能的互不相同的功能模型进行意图理解,得到多个意图理解结果。
上述装置,优选的,所述人机交互装置还可以包括第一初始化模块,用于:
将前景描述信息初始化为空;所述前景描述信息用于在人机交互过程中记录历史输入信息被响应时获得的目标上下文信息,以及被调用子流程的标识,所述被调用子流程响应输入信息后所述被调用子流程中下一个需要调用的输入节点的信息;
将后景描述信息初始化为:所述多个子流程中各个子流程的标识,以及每个子流程首次被调用时需要调用的输入节点的信息;所述后景描述信息用于在人机交互过程中记录所述多个子流程中未被调用的每一个子流程的标识,以及该子流程被调用时该子流程中需要调用的输入节点的信息。
上述装置,优选的,所述目标输入节点确定模块具体用于:
将所述前景描述信息中记录的被调用子流程中下一个需要调用的输入节点确定为所述被调用子流程中的目标输入节点;
将所述后景描述信息中记录的每一个未被调用的子流程被调用时该子流程中需要调用的输入节点确定为该子流程中的目标输入节点。
上述装置,优选的,所述目标意图确定模块具体用于:
若所述多个意图理解结果表征仅有一个目标输入节点理解出意图,将该目标输入节点理解出的意图确定为目标意图;
若所述多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,则将所述当前调用的子流程中的目标输入节点理解出的意图确当为目标意图;
若所述多个意图理解结果表征至少两个目标输入节点均理解出了意图,且当前调用的子流程中的目标输入节点未理解出的意图,则从所述至少两个目标输入节点理解出的意图中选择优先级最高的意图作为目标意图;其中,所述优先级根据所述输入信息属于各个意图的概率确定。
上述装置,优选的,所述响应模块包括:
调用模块,用于调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;
输出模块,用于输出所述反馈信息。
上述装置,优选的,所述调用模块具体用于,调用所述目标子流程中与所述目标意图关联的至少一个目标处理节点,以执行预置操作;
所述输出模块具体用于,调用所述目标子流程中与所述至少一个目标处理节点关联的目标输出节点,以根据所述预置操作的执行结果,确定并输出反馈信息。
上述装置,优选的,还可以包括第二初始化模块,用于:
提取所述输入信息中携带的业务标识信息;
提取所述业务标识信息对应的所有子流程的配置信息;
根据每一个子流程的配置信息,对每一个子流程初始化。
一种人机交互设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上任一项所述的人机交互方法的各个步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的人机交互方法的各个步骤。
从上述的技术方案可以看出,本申请实施例提供的人机交互方法、装置、设备及可读存储介质,在获取输入信息后,对输入信息进行多意图理解,得到多个意图理解结果;根据多个意图理解结果确定目标意图;调用目标意图对应的目标子流程,以响应输入信息;其中,目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。也就是说,本申请实施例中,按意图将一个对话流程划分为多个子流程,每个子流程仅负责对应意图相关的业务逻辑,这样开发者在进行开发时只需要关注子流程相关的业务逻辑即可,而且可以多个开发人员同时对不同的子流程进行开发,大大降低了开发者的开发难度,简化了调试和设计难度。同时,所开发的子流程还可以复用,避免开发者重复创建类似的功能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的人机交互方法的一种实现流程图;
图2为本申请实施例公开的对输入信息进行多意图理解的一种实现方式流程图;
图3为本申请实施例公开的两种调用链图的示例图;
图4为本申请实施例公开的调用链图的一种示例图;
图5为本申请实施例公开的三个输入节点的子调用链图的示例图;
图6为本申请实施例公开的基于图5所示三个子调用链图生成的总的调用链图的示意图;
图7为本申请实施例公开的另外三个输入节点对应的子调用链图的示意图;
图8为本申请实施例公开的基于图7所示三个子调用链图生成的总的调用链图的示意图;
图9为本申请实施例公开的人机交互装置的一种结构示意图;
图10为本申请实施例公开的人机交互设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
深度学习和机器学习的发展,推动人工智能技术迅速发展,加上移动智能终端和信息网络技术的发展,人机交互类相关应用已经广泛应用于日常生活和工作中,比如智能音箱,用户可以通过与智能音箱进行交互获取天气、音乐等信息;比如手机,用户也可以通过与手机进行交互,完成发信息或打电话等功能;比如智能机器人,用户可以通过如智能机器人交互完成业务咨询等目的。
目前,人机交互主要包括以下三种类型:咨询类,闲聊类和任务类。其中,
咨询类和闲聊类通常只进行一轮对话就可以结束了。例如,咨询类,用户:“还有多长时间元旦”,机器:“还有一个半月”;闲聊类,用户:“讲个笑话”,机器:“有一个面包,走着走着肚子饿了,于是就把自己吃了”。
而任务类对话,往往需要多轮以上的对话才能完成任务。例如订酒店,用户:“我要预定明晚北京的酒店”,机器:“请问具体位置呢?”,用户:“天安门广场附近”,机器:“请问需要预定几晚呢?”,用户:“三晚”,机器:“需要大床房还是标间呢”……。该示例中,用户想预定酒店,给出了时间和城市信息,但满足条件的酒店数量太多了,机器需要询问用户,以进一步确定需要的信息,比如,更精确的位置,房间的型号,住多久,入住人数,房间数量等信息,直到收集到全部信息才会查询满足需要的酒店,然后帮助用户预订酒店,预订酒店的过程中,机器还会与用户交互,以便获取用户身份信息,联系方式等相关信息,最后还需要用户支付、确认等。
机器是基于对话流程实现人机交互功能的。开发人员可以在人机交互开放平台上定义对话流程。本申请的发明人发现,目前,不管要实现什么功能,机器都是基于一个对话流程来实现,即所有的对话流节点均集成在一个对话流程中。但如前述举例所示,在实际人机交互过程中,有些功能(比如咨询类,闲聊类功能)需要收集的信息比较少,这类功能的业务逻辑通常比较简单,可能只需要进行一轮人机对话,或较少轮数的人机对话就可以收集到所需要的所有信息进而根据收集到的信息实现相应的功能,因此需要定义的对话流程比较简单,而有些功能(比如任务类功能)需要收集的信息较多,这类功能的业务逻辑通常比较复杂,此时通常需要进行多轮人机对话才能收集到所需要的所有信息进而根据收集到的信息实现相应的功能,针对复杂的业务逻辑,所定义的对话流中的节点会非常多,难以调试和设计,对开发者的要求很高,如果对话流中的不同节点之间需要交互,会进一步增加对话流程的复杂性,也进一步增加了开发者的开发难度。
为了降低开发者的开发难度,本申请的基本思想是,按意图将一个对话流程划分为多个子流程,每个子流程仅负责对应意图相关的业务逻辑,这样开发者在进行开发时只需要关注子流程相关的业务逻辑即可,而且可以多个开发人员同时对不同的子流程进行开发,大大降低了开发者的开发难度,简化了调试和设计难度。同时,所开发的子流程还可以复用,避免开发者重复创建类似的功能。
下面对本申请实施例进行解释说明。
请参看图1,图1为本申请实施例提供的人机交互方法的一种实现流程图,可以包括:
步骤S11:获取输入信息。
输入信息是指用户输入的信息,用户输入信息的方式可以是语音输入方式,当然,本申请中并不限定是语音输入方式,还可以是其它输入方式,比如,用户可以以输入文本的方式与机器进行交互;或者,用户可以以输入图片的方式与机器进行交互等等。
步骤S12:对输入信息进行意图理解,以确定目标意图。
用户输入的信息可能只表达了一个意图,也可能表达了多个意图。若输入信息只表达了一个意图,则将该意图做作为目标意图即可,若输入信息表达了多个意图,则需要从这多个意图中确定一个意图作为目标意图。
另外,机器获得输入信息时,并不清楚该输入信息所要表达的意图是什么,如果对输入信息进行单一的意图理解,并不能准确确定用户意图,因而,在获得输入信息后,机器可以对该输入信息进行多种意图理解,得到多个意图理解结果,然后根据该多个意图理解结果确定目标意图。
步骤S13:调用目标意图对应的目标子流程,以响应输入信息;其中,目标子流程为多个(为便于叙述,记为N个)子流程中的一个子流程;不同的子流程对应的意图不同。
本申请实施例中,在设计对话流程时,将实现一个功能所需要的对话流程按照意图划分为了多个子流程,每个子流程可以对应至少一个意图,不同的子流程对应的意图不同。这样,在确定目标意图后,只需要调用对应的子流程响应输入信息即可。
比如,对于订酒店这一功能,可以将对话流程划分为四个子流程,分别为:对应时空意图(比如,时间、城市、具体位置等)的子流程,对应入住详情意图(比如,入住时长、房型、房间数、人数等)的子流程,对应身份相关意图(比如,身份证号,联系方式等)的子流程,对应支付意图(比如,支付方式,支付时间,支付金额确认等)的子流程。
另外,需要说明的是,由于一个子流程中,除了业务相关的意图,可能还有非业务相关的意图,比如流程相关的意图,不同的子流程中业务相关的意图肯定是不同的,但流程相关的意图可能是相同的,也可能是不同的,因而,这里的所说的不同的子流程对应的意图不同是指不同的子流程对应的至少部分意图不同。
本申请实施例提供的人机交互方法,实现一个功能时并不是基于一个对话流程实现,而是基于对应不同意图的多个子流程实现,这样开发人员在进行开发时只需要关注子流程相关的业务逻辑即可,而且可以多个开发人员同时对不同的子流程进行开发,大大降低了开发者的开发难度,简化了调试和设计难度。同时,所开发的子流程还可以复用,避免开发者重复创建类似或相同的功能。
在一可选的实施例中,本申请的每个子流程均可以定义至少一轮交互过程,每一轮交互过程均包含输入节点、处理节点和输出节点。其中,
输入节点是每一轮交互的起始节点,每一轮交互,子流程都会在该轮交互的输入节点等待用户的输入,然后对用户输入进行处理,以确定用户意图。通常,各轮交互所要确定的意图不同(比如,第一轮交互要确定时间,第二轮交互要确定城市,第三轮交互要确定位置等等),因而,不同轮的交互过程的输入节点通常是不同的。
处理节点是每一轮交互的中间节点,用于根据输入节点理解出的意图进行业务相关的操作。每一轮交互过程可以包含至少一个处理节点。具体需要多少处理节点,以及处理节点需要实现哪些功能,是由开发人员根据业务需求确定的。
输出节点是每一轮交互的结束节点,用于根据处理节点的处理结果,向用户反馈由开发人员预先配置好的内容。
开发人员在开发过程中,可以根据实际的业务场景从人机交互开放平台提供的操作节点库中选择需要的节点来构建各个子流程中每一轮交互流程。
在操作节点库中,输入节点有很多种。比如,语音识别节点,用于将用户输入的语音转换为文本;语义理解节点,用于对文本(用户输入的文本,或者是由语音转换得到的文本)进行意图理解,以确定用户意图;语音语义节点,则是集成了语音识别和意图理解功能的节点,该类节点先将用户输入的语音转换为文本,然后对转换得到文本进行意图理解,得到用户意图;字符识别节点,用于对用户输入的包含字符的图像进行字符识别,得到文本。本申请实施例中,操作节点库中除了包含上述人机交互开放平台内置的输入节点外,还支持用户自定义输入节点,比如,支持用户将不同的基础输入节点组合为一个新的输入节点,例如,将字符识别节点和语义理解节点组合为一个字符语义节点。
不管是基础输入节点,还是用户自定义的输入节点,每一种输入节点均需要配置功能模型,来实现相应的功能,每一种输入节点可以配置的功能模型有多种,开发人员可以根据需要从多种功能模型中选择一个或多个作为该输入节点的最终配置。比如,对应语音识别节点,开发人员可以根据设计需要从人机交互开放平台提供的多种可选的语音识别模型中选择一个语音识别模型配置给语音识别节点以进行语音识别;对应语义理解节点,开发人员可以根据设计需要从人机交互开放平台提供的多种可选的意图理解模型中选择一个或多个意图理解模型配置给语义理解节点以进行意图理解,每个意图理解模型可以进行一种意图的理解;对应语音语义节点,开发人员可以根据设计需要从人机交互开放平台提供的多种可选的语音识别模型中选择一个语音识别模型,并从人机交互开放平台提供的多种可选的意图理解模型中选择一个或多个意图理解模型配置给语音语义节点以进行语音识别和意图理解;对应字符识别节点,开发人员可以根据设计需要从人机交互开放平台提供的多种可选的字符识别模型中选择一个字符识别模型配置给字符识别节点以进行字符识别。具体在进行模型配置时,配置信息可以为模型的地址,当需要使用模型时,直接从模型所在的地址对模型进行调用。
在操作节点库中,处理节点有很多种。比如,http处理节点,通过配置远程服务的链接和请求参数,可以获取外部的数据源;云函数节点,支持开发人员选择特定的编程语言,然后开发业务逻辑处理脚本;判断节点支持开发人员根据上下文的某个字段和某种判断条件(比如,大于、小于、是否为空等),选择下一个要进入的节点(下一个要进入的节点通常为另一个处理节点,或是输出节点),除了这里列举的处理节点,操作节点库中还有实现其它功能的处理节点,这里不再一一说明。
在操作节点库中,输出节点也有很多种。输出节点根据向用户进行信息反馈的方式进行分类,比如,支持语音反馈的输出节点,支持文本反馈的输出节点,支持Html5网页反馈的输出节点等等。
具体在开发子流程时,开发人员根据子流程的业务逻辑和上述三种节点的属性和要求,在人机交互开放平台提供的子流程编辑页面,将需要的节点拖拽进编辑页面,并对各节点进行模型配置和/或其它参数配置,在配置完成后,将有上下文关系的节点使用箭头连线,即可完成一个子流程的开发,之后用户可以触发子流程保存指令(比如,用户点击子流程保存按钮),人机交互开放平台可以响应于该子流程保存指令,将子流程保存为一个配置文件,比如,json配置文件,该配置文件中保存了子流程中各个节点的配置信息和子流程中节点的关系信息。在完成实现一个功能(为便于叙述,即为功能A)所需要的所有子流程的开发以后,触发发布指令,将子流程进行发布,就完成了实现该功能A的整个业务流程的开发,用户就可以在客户端使用开发好的业务流程进行人机交互,使用该功能A了。
由于每个子流程中可能会包含多轮交互过程,每一轮交互都包含输入节点,处理节点和输出节点,因而,每个子流程中可能会包含多个输入节点。基于此,上述对输入信息进行多意图理解的一种实现方式流程图如图2所示,可以包括:
步骤S21:在上述N个子流程中的每一个子流程中分别确定一目标输入节点。
每一个子流程中的目标输入节点是指该子流程中待调用的输入节点。每个子流程中,一轮交互流程完成之后才会调用下一轮交互流程,而各轮交互流程之间的调用逻辑是预先配置好的,因此,根据该子流程中各轮交互流程之间的调用逻辑来确定待调用的交互流程,该待调用的交互流程的输入节点即为该子流程中的目标输入节点。
步骤S22:调用至少部分目标输入节点分别对输入信息进行意图理解,得到至少部分目标输入节点的意图理解结果。
每个子流程中均确定一个目标节点,则N个子流程一共确定N个目标节点。本申请实施例中,在各个子流程中均确定目标输入节点后,可以利用N个目标输入节点中的每一个目标输入节点分别对输入信息进行意图理解,得到N个意图理解结果;或者,可以利用部分(为便于叙述,记为M个,则M<N)目标输入节点对输入信息进行理解,得到M个意图理解结果。
在实现本申请的过程中,发明人发现,不同的子流程中的目标输入节点的配置可能是相同的,如果每个目标输入节点均调用,会存在重复调用的情况,导致资源浪费。为了避免资源浪费,在本申请的一优选实施例中,可以仅调用N个目标输入节点中互不相同的目标输入节点分别对输入信息进行意图理解。
比如,假设用户输入信息为文本,N=3,则在接收用户输入文本后,需要调用三个子流程中的目标输入节点(语义理解节点)分别进行意图理解,这三个输入节点中,有两个第一语义理解节点,一个第二语义理解节点,则在对语义理解节点进行调用时,本申请的一种实现方案是各个子流程中的语义理解节点均调用,即第一语义理解节点调用2次,第二语义理解节点调用1次;另一种实现方案是,仅调用三个子流程中不同的语义理解节点,即第一语义理解节点调用1次,第二语义理解节点调用1次。
可选的,在一些情况下,每个输入节点可能由多个子输入节点构成,比如,一个语音语义节点,由一个语音识别节点和一个语义理解节点构成,其中,语音识别节点位于语音识别环节,而语义理解节点位于语义理解环节。则所调用的M个互不相同的目标输入节点中,有可能仅是其中的一个子输入节点不同,因而,在调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解时,对于上述互不相同的目标输入节点中位于同一信息处理环节的子输入节点,可以仅调用位于同一信息处理环节的子输入节点中的互不相同的目标子输入节点进行信息处理。比如,假设三个语音语义节点中位于语音识别环节的3个语音识别节点中,有两个第一语音识别节点,一个第二语音识别节点,则,在调用语音识别节点时仅调用一次第一语音识别节点,调用一次第二语音识别节点即可。
可选的,为了方便调用,可以生成一个调用链图,基于该调用链图进行目标输入节点的调用。具体的,
本申请实施例中,对于每一个输入节点,定义一个调用链图(为了与最后合成的调用链图区分,这里将每个输入节点的调用链图称为子调用链图)。然后利用多个子调用链图合成一个调用链图。如图3所示,为本申请实施例提供的两种调用链图的示例图。
调用链图可以包括以下几种属性:
(1)节点,用来控制数据的流向和处理。主要定义了三种类型的节点:flow类型的节点为一个输入,一个输出,负责数据流一对一的传递,如图3-b所示,这个flow类型的节点负责将语音(audio)数据分发给语音识别节点asr进行语音识别;broadcast类型的节点为要给输入,多个输出,负责数据流的一对多的分发,如图3-a所示,该示例中broadcast类型的节点将用户输入的文本分发给两个语义理解节点(intentA和intentB),而图3-b所示的broadcast类型的节点将语音识别得到的文本分发给两个语义理解节点(intentC和intentD);zipWith类型的节点为多个输入,一个输出,负责多个输入数据流的合并输出,如图3-a所示的zipWith类型的节点输出的是所有语义理解节点的意图理解结果(图中allintent即是指intentA的意图理解结果和intentB的意图理解结果),图3-b所示的zipWith类型的节点输出的是所有语义理解节点的意图理解结果(图中all intent即是指intentC的意图理解结果和intentD的意图理解结果)。
(2)关系,用来连接节点,并且在关系上定义了各种数据请求服务。比如,可以在关系上定义语音识别服务的调用或者意图理解服务器的调用。如图3-a所示,broadcast类型的节点和zipWith类型的节点之间的关系上定义的数据请求服务为调用语义理解节点intentA和intentB分别进行意图理解;图3-b中,flow类型的节点和broadcast类型的节点之间的关系上定义的数据服务请求为调用语音识别节点asr进行语音识别,broadcast类型的节点和zipWith类型的节点之间的关系上定义的数据请求服务为调用语义理解节点intentC和intentD分别进行意图理解。
关系主要包括以下属性:from属性记录关系连接的开始节点,to属性记录关系连接的结束节点,request属性记录的是关系上承载的服务的地址和请求类型等信息,inputType属性记录的是关系从开始节点获取的数据流的类型,可以是音频流,文本或图片等,outputType记录的是关系输出到结束节点的数据流类型。
(3)输入,用来表示整个子调用链图的输入节点,该节点接收用户请求数据开始整个子调用链图的执行。
(4)输出,用来表示整个子调用链图的输出节点,该节点输出调用链图的执行结果。
需要说明的是,图3所示调用链图中,仅示出了调用链图的部分属性,而非所有的属性。除了这两种调用链图,还可以有其它类型,只要符合上述4种属性即可,这里不再一一列举说明。
每个调用链图均可以用预置格式的数据进行描述,比如,可以利用json格式的数据来描述调用链图。例如图4所示的调用链图,可以用如下json数据进行描述:
下面以根据三个输入节点的子调用链图生成调用链图为例说明调用链图的生成过程。
如图5所示,为三个输入节点的子调用链图的示例图,该示例中,每个输入节点均由语音识别节点和语义理解节点这两个子输入节点构成,其中,有两个输入节点使用的语音识别节点均为Common_asr,一个输入节点使用的语音识别节点为num_asr,三个输入节点使用的语义理解节点各不相同(分别为intA,intB,intC),则基于这三个输入节点的子调用链图生成调用链图的过程可以为:
(1)合并输入节点,使所有的子调用链图共用一个输入节点,并将输入节点的类型改为broadcast类型。
(2)如果多个(为便于叙述,记为K,K为大于1的整数)子调用链图同一层节点(如图5中前两个子调用链图中的flow11节点和flow21节点)的输出连线上的属性相同(均为Common_asr),则将该K个子调用链图同一层节点的输出连线合并,并将K个子调用链图同一层节点的输出连线上的结束节点(如图5中前两个子调用链图中的flow12节点和flow22节点)也进行合并,并将节点改为broadcast类型。
(3)合并输出节点,使所有子调用链图共用同一个输出节点,并将输出节点的类型设置为zipWith类型,将所有的执行结果进行合并,返回给三个输入节点的调用者。
合成的调用链图如图6所示。基于图6所示调用链图,在进行输入节点进行调用时,Common_asr节点仅需要调用一次即可,而如果每个输入节点分别进行调用,则Common_asr节点需要调用两次,造成重复调用。
由前述记载可知,各个输入节点实现意图理解可以通过访问功能模型所在地址直接对功能模型进行调用,此时,对输入节点的调用的实质是对功能模型的调用。基于上述对输入节点进行合并调用的思想,本申请实施例中,也可以直接对功能模型的调用进行合并。具体的,可以在各个目标输入节点进行意图理解所调用的功能模型中,确定用于实现同一功能的互不相同的功能模型,调用所确定的用于实现同一功能的互不相同的功能模型进行意图理解,得到多个意图理解结果。
比如,假设有三个输入节点,输入均为语音信号,每个输入节点均包含语音识别子输入节点和语义理解子输入节点,其中,第一个输入节点的语音识别子输入节点调用的语音识别模型为Common_asr模型,语义理解子输入节点调用的意图理解模型为intA和intB,输出为intA的意图理解结果intentA和intB的意图理解结果intentB;第二个输入节点的语音识别子输入节点调用的语音识别模型也为Common_asr模型,语义理解子输入节点调用的意图理解模型为intC,输出为intC的意图理解结果intentC;第三个输入节点的语音识别子输入节点调用的语音识别模型为num_asr模型,语义理解子输入节点调用的意图理解模型为intD和intE,输出为intD的意图理解结果intentD和intE的意图理解结果intentE。这三个输入节点对应的子调用链图的示意图如图7所示。该示例中,在实现语音识别功能的模型中,互不相同的功能模型是Common_asr模型和num_asr模型,在实现意图理解功能的模型中,任意两个意图理解模型都是不同的,因此,在调用该三个输入节点时,Common_asr模型和num_asr模型需要各调用一次,而intA、intB、intC、intD和intE也需要各调用一次。基于该三个子调用链图生成的总的调用链图的示意图如图8所示。基于图8所示调用链图对三个输入节点进行调用时,Common_asr模型只需调用一次即可,避免了对Common_asr模型的重复调用。
基于功能模型直接进行合并,可以避免不同的目标输入节点(所调用的功能模型部分相同,部分不同)调用相同的功能模型导致的功能模型的重复调用,从而进一步节省资源。
在确定多个意图理解结果后,根据该多个意图理解结果确定目标意图的一种实现方式可以为:
若多个意图理解结果表征任意一个目标输入节点均为理解出意图,则可以输出提示内容,比如,我没听明白,请您在说一遍。
若多个意图理解结果表征仅有一个目标输入节点理解出意图,将该目标输入节点理解出的意图确定为目标意图。
若多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,则将当前调用的子流程中的目标输入节点理解出的意图确当为目标意图。也就是说,不管多意图理解结果表征有几个目标输入节点理解出意图,只要多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,就将当前调用的子流程中的目标输入节点理解出的意图确定为目标意图。即当前调用的子流程中的输入节点理解出的意图的优先级最高。
若多个意图理解结果表征至少两个(为便于叙述,记为H个)目标输入节点均理解出了意图,且当前调用的子流程中的目标输入节点未理解出的意图,则从H个目标输入节点理解出的意图中选择优先级最高的意图作为目标意图;其中,优先级是根据输入信息属于各个意图的概率确定的。
可选的,上述从H个目标输入节点理解出的意图中选择优先级最高的意图的一种实现方式可以为:
确定输入信息属于上述H个目标输入节点理解出的各个意图的概率。具体可以将输入信息输入预先训练好的意图确定模型,得到意图确定模型输出的输入信息属于上述H个目标输入节点理解出的各个意图的概率。意图确定模型可以为机器学习中的支持向量机或者卷积神经网络模型或深度神经网络模型。
对输入信息属于上述H个目标输入节点理解出的各个意图的概率进行排序,得到排序后的意图-概率;每个意图-概率是指输入信息属于该意图的概率。可选的,可以将输入信息属于上述H个目标输入节点理解出的各个意图的概率输入预先训练好的意图排序模型,得到该意图排序模型输出的排序后的意图-概率。意图排序模型可以为卷积神经网络模型或深度神经网络模型。
将排序最靠前的意图-概率对应的意图作为优先级最高意图。
在一可选的实施例中,上述调用目标意图对应的目标子流程,以响应输入信息,可以包括:
调用目标意图对应的目标子流程,以确定与目标意图对应的反馈信息,输出该反馈信息。具体可以包括:
调用目标子流程中与目标意图关联的至少一个目标处理节点,以执行预置操作。意图处理节点的关联关系是预先配置好的,可以根据该关联关系确定与目标意图关联的至少一个目标处理节点。而处理节点之间的调用逻辑也是预先配置好的,根据预置的至少一个目标处理节点之间的调用逻辑对该至少一个目标处理节点进行调用。
调用目标子流程中与至少一个目标处理节点关联的目标输出节点,以根据预置操作的执行结果,确定并输出反馈信息。处理节点与输出节点的关联关系,以及执行结果与反馈信息的关联关系都是预先配置好的,可以根据处理节点与输出节点的关联关系确定与至少一个目标处理节点关联的目标输出节点,根据执行结果与反馈信息的关联关系确定预置操作的执行结果对应的反馈信息,通过输出节点输出反馈信息。
在一可选的实施例中,若输入信息为用户首次输入的信息,在对输入信息进行意图理解之前,还可以包括初始化的过程:
提取输入信息中携带的业务标识信息。该业务标识信息用于确定用户想要实现什么业务。比如,对于预订酒店的业务,业务标识信息可以为“订酒店“,或“预订酒店”。
提取业务标识信息对应的所有子流程的配置信息。子流程的配置信息以json配置文件的形式保存,可以通过读取各个子流程的json配置文件提取子流程的配置信息。
根据每一个子流程的配置信息,对每一个子流程初始化。
除了对子流程进行初始化,还可以对应输入信息的用户创建一个子流程管理器,该子流程管理器用于协调各子流程的选择和切换执行。子流程管理器中主要包含前景描述信息和后景描述信息,其中,
前景描述信息用于在人机交互过程中保存当前人机交互流程所在的子流程信息和全局的上下文信息。其中,当前人机交互所在的子流程信息包括当前人机交互所在的子流程的标识和当前人机交互所在的子流程中下一轮交互的输入节点的配置信息。换句话说,前景描述信息用于在人机交互过程中记录历史输入信息被响应时获得的目标上下文信息(即全局上下文信息),以及被调用子流程的标识(即当前人机交互所在的子流程的标识),被调用子流程响应输入信息后被调用子流程中下一个需要调用的输入节点的信息(即当前人机交互所在的子流程中下一轮交互的输入节点的配置信息)。比如,用户买火车票时,前几轮交互得到的时间和城市信息都会作为目标上下文信息进行保存,供下一轮交互使用,前几轮交互可能是当前被调用子流程中的人机交互流程获得的,也可能是在当前被调用子流程被调用之前,当前未被调用子流程被调用时其中的人机交互流程获得的。若输入信息为用户首次输入的信息,即首轮交互时,前景描述信息初始化为空。以后每轮交互都会更新前景描述信息。
后景描述信息用于在人机交互过程中保存当前人机交互不在的所有子流程的信息,包括:当前人机交不在的每个子流程的标识和跳出该子流程时的下一个输出节点的配置信息。换句话说,后景描述信息用于在人机交互过程中记录N个子流程中未被调用的每一个子流程的标识,以及该子流程被调用时该子流程中需要调用的输入节点的信息。首轮交互时,后景描述信息初始化为:上述N个子流程中各个子流程的标识,以及每个子流程首次被调用时需要调用的输入节点的信息;此后,当后景描述信息中描述的某个子流程被调用时,更新后景描述信息。
相应的,N个子流程中的每一个子流程中分别确定一目标输入节点,可以包括:
将前景描述信息中记录的被调用子流程中下一个需要调用的输入节点确定为被调用子流程中的目标输入节点;
将后景描述信息中记录的每一个未被调用的子流程被调用时该子流程中需要调用的输入节点确定为该子流程中的目标输入节点。
当然,如果是首轮交互,因前景描述信息为空,因而只需要将后景描述信息中记录的N个子流程首次被调用时需要调用的输入节点确定作为目标输入节点即可。
比如,假设一个业务对应有四个子流程,分别为1号子流程,2号子流程,3号子流程和4号子流程,该业务通过语音进行人机交互。如果用户Y想调用该业务了,则输入包含业务标识信息的语音信息1,则机器根据业务标识信息提取上述四个子流程的配置信息,根据每一个子流程的配置信息,对每一个子流程初始化。
除了对子流程进行初始化,还可以对应用户Y创建一个子流程管理器,该子流程管理器中的前景描述信息初始化为空,后景描述信息初始化为:1号子流程首次被调用时需要调用的输入节点11的信息,2号子流程首次被调用时需要调用的输入节点21的信息,3号子流程首次被调用时需要调用的输入节点31的信息,4号子流程首次被调用时需要调用的输入节点41的信息。首次被调用时需要调用哪个输入节点是预先配置好的。
在获得语音信息1后,调用后景描述信息中记录的四个子流程被首次调用时各个子流程中需要调用的输入节点(即输入节点11,输入节点21,输入节点31和输入节点41)分别对语音信息1进行语音识别和意图理解,假设根据意图理解的结果确定目标子流程为2号子流程,则会调用2号子流程,并在完成一轮人机交互(即针对语音信息1给出反馈信息)后,对前景描述信息进行更新,即将本轮人机交互获得的目标上下文信息T1,2号子流程的标识信息,以及2号子流程中下一轮交互需要被调用的输入节点(假设为输入节点22)的信息保存到前景描述信息中,同时会对后景描述信息进行更新,即将后景描述信息中关于1号子流程的信息删除,仅保留1号、3号和4号子流程的信息。
假设机器针对用户输入的语音信息1给出反馈信息后,用户又输入了语音信息2,则调用前景描述信息中记录中2号子流程中下一轮交互需要被调用的输入节点22,以及后景描述信息中记录的1号、3号和4号子流程被调用时的输入节点(即输入节点11,输入节点31和输入节点41)分别对语音信号2进行语音识别和意图理解,假设根据意图理解的结果确定目标子流程仍为2号子流程,则在完成一轮人机交互(即针对语音信息2给出反馈信息)后,会对前景描述信息进行更新,即将本轮人机交互获得的目标上下文信息T2添加到前景描述信息中(此时的上下文信息包括T1和T2),2号子流程的标识信息,以及更新2号子流程中下一轮交互需要被调用的输入节点(假设为输入节点23)的信息保存到前景描述信息中,此时后景描述信息保持不变。
假设机器针对用户输入的语音信息2给出反馈信息后,用户又输入了语音信息3,则调用前景描述信息中记录中2号子流程中下一轮交互需要被调用的输入节点23,以及后景描述信息中记录的1号、3号和4号子流程被调用时的输入节点(即输入节点11,输入节点31和输入节点41)分别对语音信号3进行语音识别和意图理解,假设根据意图理解的结果确定目标子流程为3号子流程,则调用3号子流程,并在完成一轮人机交互(即针对语音信息3给出反馈信息)后,会对前景描述信息进行更新,即将本轮人机交互获得的上下文信息T3添加到前景描述信息中(此时的上下文信息包括T1、T2和T3),并记录3号子流程的标识信息,以及3号子流程中下一轮交互需要被调用的输入节点(假设为输入节点32)的信息,同时对后景描述信息进行更新,具体更新为:1号子流程的标识,以及1号子流程被调用时需要调用的输入节点11的信息,2号子流程的标识,以及2号子流程被调用时需要调用的输入节点23的信息,4号子流程的标识,以及4号子流程被调用时需要调用的输入节点41的信息。
后续用户输入语音信息时的处理过程与前边过程相似,这里不再详述。
与方法实施例相对应,本申请实施例还提供一种人机交互装置,本申请实施例提供的人机交互装置的一种结构示意图如图9所示,可以包括:
获取模块91,意图理解模块92和响应模块93;其中,
获取模块91用于获取输入信息;
意图理解模块92用于对所述输入信息进行意图理解,以确定目标意图;
响应模块93用于调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
本申请实施例提供的人机交互装置,实现一个功能时并不是基于一个对话流程实现,而是基于对应不同意图的多个子流程实现,这样开发人员在进行开发时只需要关注子流程相关的业务逻辑即可,而且可以多个开发人员同时对不同的子流程进行开发,大大降低了开发者的开发难度,简化了调试和设计难度。同时,所开发的子流程还可以复用,避免开发者重复创建类似或相同的功能。
在一可选的实施例中,意图理解模块92可以包括:
多意图理解模块,对所述输入信息进行多意图理解,得到多个意图理解结果;
目标意图确定模块,用于根据所述多个意图理解结果,确定目标意图。
在一可选的实施例中,所述多意图理解模块可以包括:
目标输入节点确定模块,用于在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
第一调用模块,用于调用至少部分目标输入节点分别对所述输入信息进行意图理解,得到所述至少部分目标输入节点的意图理解结果。
可选的,第一调用模块具体用于:
调用每一个目标输入节点分别对所述输入信息进行意图理解,得到每一个目标输入节点的意图理解结果;
或者,
调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解。
可选的,每个输入节点均由至少一个子输入节点构成,每个子输入节点位于一个信息处理环节;所述第一调用模块调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解时,具体用于:
对于所述互不相同的目标输入节点中位于同一信息处理环节的子输入节点,调用所述位于同一信息处理环节的子输入节点中的互不相同的目标子输入节点进行信息处理。
在一可选的实施例中,所述多意图理解模块可以包括:
目标输入节点确定模块,用于在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
第二调用模块,用于在各个目标输入节点进行意图理解所调用的功能模型中,确定用于实现同一功能的互不相同的功能模型,调用所述用于实现同一功能的互不相同的功能模型进行意图理解,得到多个意图理解结果。
在一可选的实施例中,所述人机交互装置还可以包括第一初始化模块,用于:
将前景描述信息初始化为空;所述前景描述信息用于在人机交互过程中记录历史输入信息被响应时获得的目标上下文信息,以及被调用子流程的标识,所述被调用子流程响应输入信息后所述被调用子流程中下一个需要调用的输入节点的信息;
将后景描述信息初始化为:所述多个子流程中各个子流程的标识,以及每个子流程首次被调用时需要调用的输入节点的信息;所述后景描述信息用于在人机交互过程中记录所述多个子流程中未被调用的每一个子流程的标识,以及该子流程被调用时该子流程中需要调用的输入节点的信息。
在一可选的实施例中,上述目标输入节点确定模块具体用于:
将所述前景描述信息中记录的被调用子流程中下一个需要调用的输入节点确定为所述被调用子流程中的目标输入节点;
将所述后景描述信息中记录的每一个未被调用的子流程被调用时该子流程中需要调用的输入节点确定为该子流程中的目标输入节点。
在一可选的实施例中,目标意图确定模块具体用于:
若所述多个意图理解结果表征仅有一个目标输入节点理解出意图,将该目标输入节点理解出的意图确定为目标意图;
若所述多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,则将所述当前调用的子流程中的目标输入节点理解出的意图确当为目标意图;
若所述多个意图理解结果表征至少两个目标输入节点均理解出了意图,且当前调用的子流程中的目标输入节点未理解出的意图,则从所述至少两个目标输入节点理解出的意图中选择优先级最高的意图作为目标意图;其中,所述优先级根据所述输入信息属于各个意图的概率确定。
在一可选的实施例中,响应模块93可以包括:
调用模块,用于调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;
输出模块,用于输出所述反馈信息。
在一可选的实施例中,调用模块,具体用于调用所述目标子流程中与所述目标意图关联的至少一个目标处理节点,以执行预置操作;
输出模块具体用于,调用所述目标子流程中与所述至少一个目标处理节点关联的目标输出节点,以根据所述预置操作的执行结果,确定并输出反馈信息。
在一可选的实施例中,还可以包括第二初始化模块,用于:
提取所述输入信息中携带的业务标识信息;
提取所述业务标识信息对应的所有子流程的配置信息;
根据每一个子流程的配置信息,对每一个子流程初始化。
本申请实施例提供的人机交互装置可应用于人机交互设备,如PC终端、云平台、服务器及服务器集群等。可选的,图10示出了人机交互设备的硬件结构框图,参照图10,人机交互设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;通信接口2可以与输入部件连接,用于获取用户输入的信息,输入部件可以包括但不限于以下至少一种:语音采集部件、图像采集部件、字符输入部件(如物理键盘),触控屏等。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取输入信息;
对所述输入信息进行意图理解,以确定目标意图;
调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
获取输入信息;
对所述输入信息进行意图理解,以确定目标意图;
调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种人机交互方法,其特征在于,包括:
获取输入信息;
对所述输入信息进行意图理解,以确定目标意图;
调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
2.根据所述权利要求1所述的方法,所述对所述输入信息进行意图理解,以确定目标意图,包括:
对所述输入信息进行多意图理解,得到多个意图理解结果;
根据所述多个意图理解结果,确定目标意图。
3.根据权利要求2所述的方法,其特征在于,所述对所述输入信息进行多意图理解,包括:
在所述多个子流程中的每一个子流程中分别确定一目标输入节点;
调用至少部分目标输入节点分别对所述输入信息进行意图理解,得到所述至少部分目标输入节点的意图理解结果;或者,
在各个目标输入节点进行意图理解所调用的功能模型中,确定用于实现同一功能的互不相同的功能模型,调用所述用于实现同一功能的互不相同的功能模型进行意图理解,得到多个意图理解结果。
4.根据权利要求3所述的方法,其特征在于,所述调用至少部分目标输入节点分别对所述输入信息进行意图理解,包括:
调用每一个目标输入节点分别对所述输入信息进行意图理解,得到每一个目标输入节点的意图理解结果;
或者,
调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解。
5.根据权利要求4所述的方法,其特征在于,每个输入节点均由至少一个子输入节点构成,每个子输入节点位于一个信息处理环节;所述调用所有目标输入节点中互不相同的目标输入节点分别对所述输入信息进行意图理解,包括:
对于所述互不相同的目标输入节点中位于同一信息处理环节的子输入节点,调用所述位于同一信息处理环节的子输入节点中的互不相同的目标子输入节点进行信息处理。
6.根据权利要求3所述的方法,其特征在于,若所述输入信息为用户首次输入的信息,在对所述输入信息进行意图理解之前,还包括:
将前景描述信息初始化为空;所述前景描述信息用于在人机交互过程中记录历史输入信息被响应时获得的目标上下文信息,以及被调用子流程的标识,所述被调用子流程响应输入信息后所述被调用子流程中下一个需要调用的输入节点的信息;
将后景描述信息初始化为:所述多个子流程中各个子流程的标识,以及每个子流程首次被调用时需要调用的输入节点的信息;所述后景描述信息用于在人机交互过程中记录所述多个子流程中未被调用的每一个子流程的标识,以及该子流程被调用时该子流程中需要调用的输入节点的信息。
7.根据权利要求6所述的方法,其特征在于,所述在所述多个子流程中的每一个子流程中分别确定一目标输入节点,包括:
将所述前景描述信息中记录的被调用子流程中下一个需要调用的输入节点确定为所述被调用子流程中的目标输入节点;
将所述后景描述信息中记录的每一个未被调用的子流程被调用时该子流程中需要调用的输入节点确定为该子流程中的目标输入节点。
8.根据权利要求3所述的方法,其特征在于,所述根据所述多个意图理解结果确定目标意图,包括:
若所述多个意图理解结果表征仅有一个目标输入节点理解出意图,将该目标输入节点理解出的意图确定为目标意图;
若所述多个意图理解结果表征当前调用的子流程中的目标输入节点理解出了意图,则将所述当前调用的子流程中的目标输入节点理解出的意图确当为目标意图;
若所述多个意图理解结果表征至少两个目标输入节点均理解出了意图,且当前调用的子流程中的目标输入节点未理解出的意图,则从所述至少两个目标输入节点理解出的意图中选择优先级最高的意图作为目标意图;其中,所述优先级根据所述输入信息属于各个意图的概率确定。
9.根据权利要求1-8任意一项所述的方法,其特征在于,所述调用所述目标意图对应的目标子流程,以响应所述输入信息包括:
调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;
输出所述反馈信息。
10.根据权利要求9所述的方法,其特征在于,所述调用所述目标意图对应的目标子流程,以确定与所述目标意图对应的反馈信息;输出所述反馈信息,包括:
调用所述目标子流程中与所述目标意图关联的至少一个目标处理节点,以执行预置操作;
调用所述目标子流程中与所述至少一个目标处理节点关联的目标输出节点,以根据所述预置操作的执行结果,确定并输出反馈信息。
11.根据权利要求1-8任意一项所述的方法,其特征在于,若所述输入信息为用户首次输入的信息,在对所述输入信息进行意图理解之前,还包括:
提取所述输入信息中携带的业务标识信息;
提取所述业务标识信息对应的所有子流程的配置信息;
根据每一个子流程的配置信息,对每一个子流程初始化。
12.一种人机交互装置,其特征在于,包括:
获取模块,用于获取输入信息;
意图理解模块,用于对所述输入信息进行意图理解,以确定目标意图;
响应模块,用于调用所述目标意图对应的目标子流程,以响应所述输入信息;所述目标子流程为多个子流程中的一个子流程;不同的子流程对应的意图不同。
13.一种人机交互设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-11中任一项所述的人机交互方法的各个步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-11中任一项所述的人机交互方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347217.9A CN111090733B (zh) | 2019-12-24 | 2019-12-24 | 人机交互方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347217.9A CN111090733B (zh) | 2019-12-24 | 2019-12-24 | 人机交互方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090733A true CN111090733A (zh) | 2020-05-01 |
CN111090733B CN111090733B (zh) | 2022-12-06 |
Family
ID=70397067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911347217.9A Active CN111090733B (zh) | 2019-12-24 | 2019-12-24 | 人机交互方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090733B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650489A (zh) * | 2020-12-31 | 2021-04-13 | 北京猎户星空科技有限公司 | 业务控制方法、装置、计算机设备以及存储介质 |
CN113158641A (zh) * | 2021-03-26 | 2021-07-23 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN114095330A (zh) * | 2020-07-29 | 2022-02-25 | 华为技术有限公司 | 一种意图协商方法及装置 |
CN114117009A (zh) * | 2021-11-30 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 基于对话机器人的子流程配置方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011121884A1 (ja) * | 2010-03-30 | 2011-10-06 | 日本電気株式会社 | 外国語会話支援装置、そのコンピュータプログラムおよびデータ処理方法 |
US9996531B1 (en) * | 2016-03-29 | 2018-06-12 | Facebook, Inc. | Conversational understanding |
CN108804643A (zh) * | 2018-06-05 | 2018-11-13 | 北京玄科技有限公司 | 多轮会话的流程配置单元、方法及智能机器人交互系统 |
CN109739961A (zh) * | 2018-12-24 | 2019-05-10 | 科大讯飞股份有限公司 | 一种人机语言交互方法及装置 |
CN109840111A (zh) * | 2019-02-26 | 2019-06-04 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
US20190197181A1 (en) * | 2017-12-21 | 2019-06-27 | Shanghai Xiaoi Robot Technology Co., Ltd. | Questioning and answering method, method for generating questioning and answering system, and method for modifying questioning and answering system |
CN110188185A (zh) * | 2019-06-05 | 2019-08-30 | 网易(杭州)网络有限公司 | 多轮对话的处理方法、装置、设备和存储介质 |
-
2019
- 2019-12-24 CN CN201911347217.9A patent/CN111090733B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011121884A1 (ja) * | 2010-03-30 | 2011-10-06 | 日本電気株式会社 | 外国語会話支援装置、そのコンピュータプログラムおよびデータ処理方法 |
US9996531B1 (en) * | 2016-03-29 | 2018-06-12 | Facebook, Inc. | Conversational understanding |
US20190197181A1 (en) * | 2017-12-21 | 2019-06-27 | Shanghai Xiaoi Robot Technology Co., Ltd. | Questioning and answering method, method for generating questioning and answering system, and method for modifying questioning and answering system |
CN108804643A (zh) * | 2018-06-05 | 2018-11-13 | 北京玄科技有限公司 | 多轮会话的流程配置单元、方法及智能机器人交互系统 |
CN109739961A (zh) * | 2018-12-24 | 2019-05-10 | 科大讯飞股份有限公司 | 一种人机语言交互方法及装置 |
CN109840111A (zh) * | 2019-02-26 | 2019-06-04 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
CN110188185A (zh) * | 2019-06-05 | 2019-08-30 | 网易(杭州)网络有限公司 | 多轮对话的处理方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
郑彬彬等: "基于多模态信息融合的语音意图理解方法", 《中国科技论文在线》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095330A (zh) * | 2020-07-29 | 2022-02-25 | 华为技术有限公司 | 一种意图协商方法及装置 |
US11909600B2 (en) | 2020-07-29 | 2024-02-20 | Huawei Technologies Co., Ltd. | Intent negotiation method and apparatus |
CN112650489A (zh) * | 2020-12-31 | 2021-04-13 | 北京猎户星空科技有限公司 | 业务控制方法、装置、计算机设备以及存储介质 |
CN113158641A (zh) * | 2021-03-26 | 2021-07-23 | 联想(北京)有限公司 | 一种信息处理方法和装置 |
CN114117009A (zh) * | 2021-11-30 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 基于对话机器人的子流程配置方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111090733B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090733B (zh) | 人机交互方法、装置、设备及可读存储介质 | |
US11295221B2 (en) | Learning user preferences in a conversational system | |
CN107977236B (zh) | 问答系统的生成方法、终端设备、存储介质及问答系统 | |
JP6884183B2 (ja) | グループコンテキストにおける個人制御コンテンツの条件付き開示 | |
CN111400518B (zh) | 作品生成和编辑方法、装置、终端、服务器和系统 | |
CN109637548A (zh) | 基于声纹识别的语音交互方法及装置 | |
KR20200129191A (ko) | 선택적으로 조종 가능한 상태 머신을 갖는 개인 보조 모듈 제공 | |
MXPA05001477A (es) | Comando a base de sms de grupo con receptor de mensaje removible y servidor. | |
CN111639503B (zh) | 会议数据处理方法、装置、存储介质及设备 | |
WO2023093414A1 (zh) | 微应用的开发方法、装置、设备、存储介质及程序产品 | |
CN112152913B (zh) | 一种服务控制方法、装置及系统 | |
CN107480766B (zh) | 多模态虚拟机器人的内容生成的方法和系统 | |
JP2020518905A (ja) | 選択可能なグラフィック要素を介する自動化されたエージェントとの会話の初期化 | |
CN110019723A (zh) | 基于问答系统的问答方法、终端设备及存储介质 | |
WO2024160041A1 (zh) | 多模态对话方法、装置、设备及存储介质 | |
CN115982331A (zh) | 会话场景中的信息交互方法、装置及设备 | |
JP2019040602A (ja) | 人工知能機器における連続会話機能 | |
US20170286755A1 (en) | Facebot | |
CN111063348B (zh) | 一种信息处理方法、装置、设备及计算机存储介质 | |
CN111739541A (zh) | 一种基于语音的会议协助方法及系统、存储介质及终端 | |
JP2019047493A (ja) | 個人スケジュールおよびライフスタイルを反映した人工知能のコンタクト制御 | |
CN111984355A (zh) | 实现人机多轮对话的方法和装置 | |
CN114969299A (zh) | 一种对话管理方法、装置、计算机设备和存储介质 | |
CN110019724B (zh) | 修改问答系统的装置 | |
CN111639167A (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 |