CN114860910A - 智能对话方法及系统 - Google Patents
智能对话方法及系统 Download PDFInfo
- Publication number
- CN114860910A CN114860910A CN202210515926.9A CN202210515926A CN114860910A CN 114860910 A CN114860910 A CN 114860910A CN 202210515926 A CN202210515926 A CN 202210515926A CN 114860910 A CN114860910 A CN 114860910A
- Authority
- CN
- China
- Prior art keywords
- user
- dialog
- conversation
- reply
- content
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012163 sequencing technique Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 38
- 239000013598 vector Substances 0.000 claims description 24
- 238000007781 pre-processing Methods 0.000 claims description 15
- 238000005352 clarification Methods 0.000 claims description 12
- 230000008451 emotion Effects 0.000 claims description 12
- 238000012805 post-processing Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000002996 emotional effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008909 emotion recognition Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100034761 Cilia- and flagella-associated protein 418 Human genes 0.000 description 2
- 101100439214 Homo sapiens CFAP418 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000029087 digestion Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本申请实施例公开了一种智能对话方法及系统。主要技术方案包括:获取用户本轮对话输入的内容和对话上下文;将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,所述N为大于1的正整数;对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本;利用所述第一回复文本生成本轮向所述用户返回的内容。本申请能够实现多种对话引擎的协同工作,使得产生的对话更加合理。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种智能对话方法及系统。
背景技术
随着科技的不断发展,智能设备逐渐深入我们的生活中。其中智能对话系统越来越多的应用于各种智能设备中,例如智能音箱、智能电视、智能车载导航、智能手机等等。在各种产品中应用智能对话系统时,往往针对不同的服务类型和知识类型需要不同的对话引擎来支持。例如,任务型对话引擎支持针对查天气、订酒店、流量充值等任务型问答场景;FAQ(FrequentlyAsked Questions,常见问题解答)对话引擎支持基于问答对的对话场景。图谱问答引擎支持基于知识图谱数据的对话场景;表格问答引擎支持基于表格数据的对话场景;文档问答引擎支持基于文档阅读理解的对话场景;闲聊对话引擎支持基于寒暄、闲聊等服务相关性不强的开放域对话场景。
在人机对话的过程中经常需要多种对话引擎配合,对于用户而言是感知不到智能对话系统中多种对话引擎的存在的。甚至在对话过程中经常会出现多对话引擎来回穿插使用的情况,例如如下场景,用户在多轮对话中依次输入以下语音:
“中国移动北京朝阳区有哪些网点?”——适合表格问答引擎来支持;
“什么是大流量套餐?”——适合知识问答引擎来支持;
“5G套餐有哪些?”——适合图谱问答引擎来支持;
“帮我办一下5G畅享套餐?”——适合任务型对话引擎来支持。
因此,多种对话引擎如何协同工作以使得对话过程更加合理成为智能对话系统中的技术难点。
发明内容
有鉴于此,本申请提供了一种智能对话方法及系统,以实现多种对话引擎的协同工作,使得产生的对话更加合理。
本申请提供了如下方案:
根据第一方面,提供了一种智能对话方法,包括:
获取用户本轮对话输入的内容和对话上下文;
将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,所述N为大于1的正整数;
对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本;
利用所述第一回复文本生成本轮向所述用户返回的内容。
根据本申请实施例中一可实现的方式,在将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎之前,还包括:
判断所述用户本轮对话输入的内容是否命中预设的前置对话策略,如果是,执行命中的前置对话策略;否则,继续执行将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎的步骤。
根据本申请实施例中一可实现的方式,所述前置对话策略包括以下至少一种:
重听策略:若所述用户本轮对话输入的内容具有重听意图,则再次向所述用户返回上一轮对话向所述用户返回的内容;
情绪策略:若所述用户本轮对话输入的内容被识别为预设的情绪类型,则执行被识别出情绪类型对应的前置处理;
敏感词策略:若所述用户本轮对话输入的内容被识别出预设的敏感词,则利用预设的第一话术生成第二回复文本,向所述用户返回所述第二回复文本;
转人工策略:若所述用户本轮对话输入的内容被识别出转人工意图,则针对所述用户连通人工处理系统。
根据本申请实施例中一可实现的方式,将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎包括:并行调度所述N个不同的对话引擎的自然语言理解NLU接口,将所述用户本轮对话输入的内容和对话上下文作为参数传递给各对话引擎;
利用所述第一回复文本生成本轮向所述用户返回的内容包括:将所述N个不同的对话引擎中第一回复文本对应的对话引擎作为本轮对话的目标对话引擎;调用所述目标对话引擎的执行接口以触发所述目标对话引擎执行所述第一回复文本。
根据本申请实施例中一可实现的方式,对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本包括:
将所述N个不同的对话引擎得到的回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本,所述M为正整数;
其中,各对话引擎的优先级依据对话引擎的类型预先设置。
根据本申请实施例中一可实现的方式,将所述N个不同的对话引擎得到的回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本包括:
若所述N个不同的对话引擎得到的回复文本的最大置信度大于或等于预设第一置信度阈值的回复文本,则从置信度大于或等于预设第一置信度阈值的回复文本中选择对应对话引擎的优先级排序最高的回复文本作为第一回复文本;或者,
若所述N个不同的对话引擎得到的回复文本的最大置信度小于预设第一置信度阈值且大于预设第二置信度阈值,则将置信度小于预设第一置信度阈值且大于预设第二置信度阈值的回复文本进行基于置信度和对话引擎权重的评分,选择评分最高的回复文本作为第一回复文本;或者,
若所述N个不同的对话引擎得到的回复文本为澄清反问话术,则依据各对话引擎的优先级选择M个回复文本作为第一回复文本,其中所述澄清反问话术为对话引擎无法产生置信度大于或等于预设第三置信度阈值的回复文本时产生的;
其中,所述第一置信度阈值大于所述第二置信度阈值,所述第二置信度阈值大于或等于所述第三置信度阈值。
根据本申请实施例中一可实现的方式,利用所述第一回复文本生成本轮向所述用户返回的内容包括:
若所述第一回复文本与上一轮向用户返回的内容来自不同对话引擎且上一轮向用户返回的内容为澄清反问话术,则利用上一轮用户对话的内容生成第三回复文本,利用所述第一回复文本和所述第三回复文本生成向所述用户返回的内容;否则,利用所述第一回复文本生成本轮向所述用户返回的内容。
根据本申请实施例中一可实现的方式,该方法还包括:若所述N个不同的对话引擎均未得到回复文本,则执行以下后置处理:
基于预设的第二话术和历史对话内容生成用以引导用户进入历史对话场景的第四回复文本,利用所述第四回复文本生成本轮向所述用户返回的内容;或者,
基于预设的第三话术和热点问题信息生成用以提示用户咨询热点问题的第五回复文本,利用所述第五回复文本生成本轮向所述用户返回的内容;或者,
基于预设的第四话术和热点服务信息生成用以告知用户热点服务的第六回复文本,利用所述第六回复文本生成本轮向所述用户返回的内容;或者,
若所述N个不同的对话引擎均未得到回复文本的轮数达到预设轮数阈值,则针对所述用户连通人工处理系统。
根据本申请实施例中一可实现的方式,该方法还包括:
各对话引擎利用所述用户本轮对话输入的内容的句向量在干预策略集合中进行匹配,所述干预策略集合包括预先配置的输入语句及其对应的回复文本或意图类型;
若所述句向量命中所述干预策略集合中的输入语句,则将命中的输入语句对应的回复文本作为所述对话引擎得到的回复文本,或者将命中的意图类型提供给对话引擎中的模型以得到回复文本;否则,将所述用户本轮对话输入的内容和对话上下文输入对话引擎中的模型以得到回复文本。
根据本申请实施例中一可实现的方式,所述干预策略集合中的输入语句包括高频问句或坏例语句;
其中若针对用户输入的内容得到的第一回复文本无法满足预期,则判定该用户输入的内容为坏例语句。
根据本申请实施例中一可实现的方式,该方法还包括:
记录所述用户本轮对话输入的内容和本轮向所述用户返回的内容,并更新记录的对话上下文。
根据第二方面,提供了一种智能对话系统,包括:
内容获取单元,被配置为获取用户本轮对话输入的内容和对话上下文;
引擎调度单元,被配置为将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,所述N为大于1的正整数;对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本;
内容生成单元,被配置为利用所述第一回复文本生成本轮向所述用户返回的内容。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
1)本申请对多个不同的对话引擎进行统一的调度,将用户本轮对话输入的内容和对话上下文提供给各对话引擎,并在获取到多个不同的对话引擎的回复文本后进行统一排序来获取本轮向用户返回的内容,实现了多种对话引擎的上下文复用和协同工作,使得产生的对话更加合理。
2)在调度对话引擎之前执行前置对话策略,在调度对话引擎得到第一回复文本之后执行后置处理,可以统一实现一些通用的对话能力,很好地提升了对话效果。前置对话策略和后置策略也方便对智能对话系统的对话策略进行灵活扩展,且对各对话引擎不会产生影响,各对话引擎只用关注本引擎的对话能力即可。
3)本申请提供的基于回复文本的置信度结合对话引擎优先级和/或权重的排序方式,保证了管理人员只需要维护各对话引擎的知识即可,无需针对统一排序额外进行数据标注,很好地降低了系统运营和管理成本。另外也方便对各对话引擎进行升级、扩展等。
4)本申请中对对话引擎采用两阶段的调度方式,首先调用各对话引擎的NLU接口触发各对话引擎针对用户本轮对话输入的内容和对话上下文得到回复文本,在对各回复文本进行统一排序得到第一回复文本后,再调度第一回复文本所来源的对话引擎的执行接口,以使得对话引擎发起与服务层的交互,输出第一回复文本。这种方式能够有效避免其他对话引擎误执行的情况发生。
5)本申请中通过在对话引擎中设置干预策略的方式,使得各对话引擎能够利用用户本轮对话输入的内容的句向量快速匹配干预策略得到回复文本,从而有效提升对话引擎的处理效率,也方便管理用户针对bad case(坏例)进行有效干预。
当然,实施本申请的任一技术方案或产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的示例性系统架构图;
图2为本申请实施例提供的一主要方法流程图;
图3为本申请实施例提供的一优选方法流程图;
图4示出根据一个实施例的该智能对话系统的示意性框图;
图5为本申请实施例提供的电子设备的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1示出了可以应用本申请实施例的示例性系统架构。如图1中所示,该系统架构主要包括:用户端设备、中控单元和多个对话引擎,其中多个指的是多于一个。
用户端设备可以是能够获取用户输入的各种终端设备,其中用户输入可以是文本,也可以是语音等形式。用户端设备可以是有屏设备,也可以是具备语音交互功能的设备。包括但不限于:智能移动终端、智能家居设备、可穿戴式设备、PC(个人计算机)等。其中,智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、PDA(个人数字助理)、互联网汽车等。智能家居设备可以包括智能家电设备,诸如智能电视、智能空调、智能冰箱等等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。用户可以通过用户端设备获取用户输入的内容,将用户输入的内容发送给中控单元。
中控单元即中间控制设备的简称,本申请实施例提供的智能对话方法主要由中控单元执行,负责获取用户输入的内容后,采用本申请实施例所提供的方式调度多个对话引擎,得到合适的回复文本用以产生返回给用户的内容。
多个对话引擎是针对不同的服务场景和不同的知识类型而研发出来的,均能够在输入文本时,利用预先建立的模板或模型针对输入文本输出对应的回复文本。其中,多个对话引擎可以包括但不限于:任务型对话引擎、FAQ对话引擎、图谱问答引擎、表格问答引擎、文档问答引擎、闲聊对话引擎等等。其中,任务型对话引擎支持针对查天气、订酒店、流量充值等任务型问答场景;FAQ对话引擎支持基于问答对的对话场景。图谱问答引擎支持基于知识图谱数据的对话场景;表格问答引擎支持基于表格数据的对话场景;文档问答引擎支持基于文档阅读理解的对话场景;闲聊对话引擎支持基于寒暄、闲聊等服务相关性不强的开放域对话场景。
上述中控单元、对话引擎等可以设置于单一服务器,也可以设置于多个服务器构成的服务器群组,还可以是云服务器。云服务器又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual PrivateServer)服务中存在的管理难度大,服务扩展性弱的缺陷。
应该理解,图1中的用户端设备、中控单元和对话引擎的数目仅仅是示意性的。根据实现需要,可以具有任意数目的用户端设备、中控单元和对话引擎。
图2为本申请实施例提供的智能对话方法的主要流程图,该方法可以由图1所示系统架构中的中控单元执行。如图2中所示,该方法可以包括以下步骤:
步骤202:获取用户本轮对话输入的内容和对话上下文。
步骤204:将用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,N为大于1的正整数。
步骤206:对N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本。
步骤208:利用第一回复文本生成本轮向用户返回的内容。
可以看出,本申请实施例提供的上述方式中,对多个不同的对话引擎进行统一的调度,将用户本轮对话输入的内容和对话上下文提供给各对话引擎,并在获取到多个不同的对话引擎的回复文本后进行统一排序来获取本轮向用户返回的内容,实现了多种对话引擎的上下文复用和协同工作,使得产生的对话更加合理。
下面结合实施例对上述各步骤进行详细描述。首先对上述步骤202即“获取用户本轮对话输入的内容和对话上下文”进行详细描述。
本步骤中,用户本轮对话输入的内容可以是通过文本形式进行的输入,也可以是通过语音形式进行的输入,该语音形式进行的输入经过语音识别处理后同样可以获取到对应的文本供后续中控单元和对话引擎进行处理。鉴于语音识别处理为本领域较为成熟的技术,在此不做详述,图1所示系统中也并未就语音识别设备进行特别示出。
对话上下文指的是在本轮对话之前,在同一连接下与该用户的历史对话内容,历史对话内容包括之前轮次中用户输入的内容以及向用户返回的内容。中控单元对于每轮用户输入的内容以及向用户返回的内容均会进行记录,并在下一轮用户输入时作为对话上下文连同用户输入的内容一起提供给各对话引擎,这种对话上下文的跨引擎复用的方式,使得各对话引擎能够参考对话上下文给出更为准确合理的回复文本。若用户本轮对话是第一轮,则对话上下文可以为空。
举个例子,假设用户进行了如下轮次的对话:
第一轮:用户输入文本A,向用户返回的内容是由FAQ对话引擎生成的回复文本a得到的;
第二轮:用户输入文本B,向用户返回的内容是由任务型对话引擎生成的回复文本b得到的;
第三轮:用户输入文本C。
这种情况下,用户本轮输入的内容为文本C,那么对话上下文由文本A、回复文本a、文本B和回复文本b构成。
作为一种更为优选的实施方式,如图3中所示,在步骤204之前,可以进一步包括步骤302即“对用户本轮对话输入的内容进行预处理”。
其中上述预处理可以包括但不限于以下几种处理中的至少一种:
第一种预处理:去口语化处理。
往往人们在进行输入的过程中,因为表达习惯、表达方式等等原因往往会有一些口语化的表达,特别是在语音输入的过程中。这些口语化的表达可能会对对话引擎的理解产生不利影响,从而影响对话引擎生成回复文本的准确度。因此可以首先对用户输入的内容进行去口语化处理。
例如用户输入“你是不是能够告诉我今天天气怎么样?”,去口语化处理后得到“今天天气怎么样”。再例如,“嗯嗯嗯,你晓得不今天好多度?”,去口语化处理后得到“今天气温是多少”,等等。
在去口语化处理时,可以基于词典、模板或者预先训练得到的模型等方式来实现。例如,预先设置包括口语化词语的词典,将用户输入的内容与词典进行匹配,将匹配得到的口语化词语删除。再例如,预先基于标注的文本训练端到端模型,将用户输入的内容输入预先训练得到的端到端模型,由端到端模型对用户输入的内容进行去口语化预测,得到去口语化后的内容。该部分内容可以采用已有技术实现,在此不做详述。
第二种预处理:指代消解处理。
指代消解处理是自然语言处理的重要内容,是确定文本中代词指向那个名词或者短语。用户通常在表达时,由于表达习惯或者为了表达更简练,常常使用代词在指代某个名词或短语等,这往往会带来对话引擎无法准确理解用户的指代含义,影响对话引擎生成回复文本的准确度。因此可以在预处理过程中对用户输入的内容进行指代消解处理。
例如用户输入“我已经去过营业厅了,但那儿不开门,你知道那儿几点开门吗?”,其中,“那儿”指代“营业厅”。再例如用户输入“我联系客服,但他并没有给我回应”,其中“他”指代“客服”,等等。
在指代消解处理时,可以采用基于句法分析的方式,也可以基于预先训练得到的机器学习模型的方式。鉴于该部分内容可以采用已有技术实现,在此不做详述。
第三种预处理:句向量计算。
对于用户本轮对话输入的内容,可以对其进行分词后得到各词语的词向量,然后对各词语的词向量进行诸如基于词袋(bag ofwords)的处理、基于TF-IDF(词频-倒文档率)的处理等,得到用户本轮对话输入的内容对应的句向量。
也可以基于预先训练得到的句向量计算模型来获取用户本轮对话输入的内容对应的句向量。其中,句向量计算模型可以基于编码器(Encoder)、BERT(BidirectionalEncoder Representation from Transformers)等来实现。
得到的句向量主要用于各对话引擎在使用模型生成回复文本之前,可以利用句向量直接匹配预先设置的干预策略集合,快速命中干预策略得到回复文本,有效提升对话引擎的处理效率,也方便管理用户针对bad case(坏例)进行有效干预。这部分内容将在后续实施例中详述。
在进行上述预处理后,可以在后续步骤204中将预处理后的结果提供给各对话引擎。例如,可以将去口语化处理和/或指代消解处理后的内容提供给各对话引擎,也可以将得到的句向量连同用户本轮对话输入的内容一并提供给各对话引擎,还可以将得到的句向量连同去口语化处理和/或指代消解处理后的内容一并提供给各对话引擎,等等。
作为一种更为优选的实施方式,如图3中所示,在步骤204之前,还可以进一步包括步骤304即“判断用户本轮对话输入的内容是否命中预设的前置对话策略”,如果是,则执行命中的前置对话策略,否则继续执行步骤204。
另外需要说明的是,上述步骤302和步骤304可以择一执行,也可以先后执行。在图3所示实施例中,步骤302和步骤304采用先后执行的方式。
多对话引擎的系统中,不同对话引擎是为了适用于不同的服务场景和不同的知识类型而研发出来的。而有一些通用的对话策略是与知识类型无关的,可以抽象出通用的系统级对话策略由中控单元统一提供,这样各对话引擎只需要重点解决自身领域的对话效果即可。其中抽象出的通用的系统级对话策略作为了调度对话引擎之前的前置对话策略。
其中,前置对话策略可以包括以下策略中的至少一种:
第一种策略:重听策略。
在人机对话场景中,常常因为噪音、外部环境等因素导致用户没有听清楚机器人在讲什么,此时用户可能会输入“对不起,没听清楚”等类似内容。这些内容代表用户是希望重新再听一遍,即具有重听意图。针对于此,本申请实施例中可以对用户本轮对话输入的内容进行重听意图的识别,如果识别出重听意图,则可以再次向用户返回上一轮对话向用户返回的内容,无需进行对话引擎的调用,即直接进行了前置处理。
其中,关于重听意图的识别可以基于预设的词典、话术模板或者预先训练得到的机器学习模型等来实现,在此不做详述。
第二种策略:情绪策略。
在对话过程中,用户的情绪往往对智能对话服务的效果起到了至关重要的作用,具备针对用户不同情绪的处理能力,是衡量智能对话系统效果的重要维度。在本申请实施例中可以对用户本轮对话输入的内容进行情绪识别,若识别得到预设的情绪类型,则可以执行被识别出情绪类型对应的前置处理。
例如,若从用户本轮对话输入的内容识别出负面情绪,则可以利用预先设置的安抚话术对用户返回安抚的内容,例如“非常理解您的处境”、“您别激动”等等。也可以对该用户连通人工处理系统,转由人工处理。
再例如,若从用户本轮对话输入的内容中识别出用户的积极情绪时,可以向用户返回预设的营销内容,等等。
增加了上述情绪识别和对应前置处理后,大大提高了智能对话服务的拟人性和融洽性。
上述情绪识别同样可以基于预设的词典、话术模板或者预先训练得到的机器学习模型来实现,在此不做详述。
第三种策略:敏感词策略。
在人机对话中为了保证服务过程中的合规性,可以对用户本轮对话输入的内容进行敏感词识别,若识别出敏感词,则可以利用预设的第一话术生成第二回复文本,向用户返回第二回复文本。这种情况无需进行后续多对话引擎的调度,直接在前置环节进行了处理。
例如,若用户本轮对话输入的内容中包含不文明的词语,则可以向用户返回第二回复文本“请使用文明用语”。
再例如,若用户本轮对话输入的内容中包含隐私、违法内容等,可以向用户返回第二回复文本“此问题不方便回答”等。
上述敏感词识别主要基于预设的词典实现,也可以通过词典结合话术模板的方式来实现,等等,在此不做详述。
在此需要说明的是,本申请实施例中涉及的“第一”、“第二”等表述不具备顺序、大小和数量等限制,仅仅用以在名称上进行区分。例如,“第一回复文本”、“第二回复文本”、“第三回复文本”等用以在名称上对回复文本进行区分。
第四种策略:转人工策略。
若用户本轮对话输入的内容被识别出转人工意图,则针对用户连通人工处理系统。例如,用户本轮输入的内容为“真是说不明白,给我转人工处理”,或者“太不像话了,我要投诉”等,则可以转人工处理。
上述转人工意图可以基于预设的词典、话术模板或者预先训练得到的机器学习模型来实现,在此不做详述。
上述前置对话策略可以采用pipeline模式,可以方便地对前置对话策略进行扩展,以满足不同服务的定制化需求,具备良好的扩展性。
下面结合实施例对上述步骤204即“将用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎”以及步骤206即“对N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本”进行详细描述。
本步骤是中控单元的核心能力,即如何合理地将多个对话引擎进行结合,使其协同工作产生优选的结果。在本申请实施例中,中控单元对多个对话引擎采用并行调度的方式,并行调度N个不同的对话引擎,将用户本轮对话输入的内容和对话上下文输入各对话引擎,使得各对话引擎能够基于统一的对话上下文得到回复文本。
作为其中一种较为优选的实施方式,中控单元对对话引擎的调度可以采用两阶段的方式:
第一阶段首先并行调度N个不同的对话引擎的NLU(Natural LanguageUnderstanding,自然语言理解)接口,将用户本轮对话输入的内容和对话上下文作为参数传递给各对话引擎。针对各对话引擎返回的回复文本进行统一排序,基于排序结果选择第一回复文本。
各对话引擎接收到本轮对话输入的内容和对话上下文后,可以利用本引擎所采用的模型产生回复文本。对于各对话引擎所采用的模型本申请实施例并加以详述和限制。但在对话引擎中,管理用户可以配置干预策略集合,干预策略集合包括预先配置的输入语句及其对应的回复文本或意图类型。
在利用模型得到回复文本之前,首先可以利用步骤302预处理得到的句向量在干预策略集合中进行匹配,即将用户本轮对话输入的内容对应的句向量与干预策略集合中输入语句对应的句向量进行基于距离的相似度计算,若确定出相似度大于或等于预设相似度阈值的输入语句,则将该输入语句作为匹配得到的输入语句。可以将该输入语句对应的回复文本直接作为本对话引擎得到的回复文本,而无需进一步基于模型来得到回复文本。或者,将输入语句对应的意图类型提供给该对话引擎中的模型来得到回复文本。若没有匹配得到输入语句,则将用户本轮对话输入的内容和对话上下文输入对话引擎中的模型以得到回复文本。
作为其中一种可实现的方式,可以将高频出现的问句作为输入语句对其对应的回复文本进行配置,这样能够通过句向量快速得到对应的回复文本。
作为另一种可实现的方式,可以将出现的bad case(坏例)作为输入语句,对其对应的回复文本进行配置。举个例子,假设对于问题“请问卡里还有多少钱”,实际最适合的应该是任务型对话引擎,来进行查余额的处理,但任务型对话引擎并没有识别出其查余额的意图,反而由FAQ引擎给出了置信度高的回复文本,也就是说,针对用户输入的内容得到的第一回复文本无法满足预期,这就出现了bad case,即判定该用户输入的内容为bad case。针对这种情况,可以由管理用户在任务型对话引擎中配置干预策略集合,将“请问卡里还有多少钱”作为输入文本,将查余额作为对应的意图类型。当用户本轮对话输入“请问卡里还有多少钱”类似的表述时,依据句向量匹配得到该输入文本,从而确定查余额意图并触发模型进行查余额处理。
各对话引擎在得到回复文本的同时会得到该回复文本对应的置信度,作为其中一种可实现的方式,中控单元可以将各回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本,M为正整数。
例如,若N个不同的对话引擎得到的回复文本的最大置信度大于或等于预设第一置信度阈值的回复文本,则从置信度大于或等于预设第一置信度阈值的回复文本中选择对应对话引擎的优先级排序最高的回复文本作为第一回复文本。也就是说,如果存在高置信度的回复文本,则从高置信度的回复文本中优先选择高优先级的对话引擎所产生的回复文本作为第一回复文本。其中,各对话引擎的优先级可以依据对话引擎的类型预先设置。例如可以设置任务型对话引擎的优先级最高,知识问答引擎的优先级次之,表格问答引擎的优先级再次之,等等。除此之外,各对话引擎的优先级的设置还可以根据实际场景、智能对话系统所属服务领域、用户对各对话引擎优先级的预先配置、用户对各对话引擎的使用偏好等来设置。
若N个不同的对话引擎得到的回复文本的最大置信度小于预设第一置信度阈值且大于预设第二置信度阈值,则将置信度小于预设第一置信度阈值且大于预设第二置信度阈值的回复文本进行基于置信度和对话引擎权重的评分,选择评分最高的回复文本作为第一回复文本。其中,第一置信度阈值大于第二置信度阈值。也就是说,如果没有高置信度的回复文本,但有较高置信度的回复文本,则可以结合回复文本的置信度以及对应对话引擎的权重对这些较高置信度的回复文本进行评分,例如将回复文本的置信度乘以对话引擎的权重得到的值作为评分,然后选择评分最高的回复文本作为第一回复文本。
若N个不同的对话引擎得到的回复文本为澄清反问话术,则依据各对话引擎的优先级选择M个回复文本作为第一回复文本,其中澄清反问话术为对话引擎无法产生置信度大于或等于预设第三置信度阈值的回复文本时产生的,第二置信度阈值大于或等于第三置信度阈值。也就是说,如果不存在高置信度、较高置信度的回复文本,对于对话引擎而言,若回复文本均为中置信度,则会产生澄清反问话术作为回复文本。
举个例子,当用户本轮对话输入的内容为“理财?”,各对话引擎并不能准确理解该内容的意图,任务型对话引擎可能会给出澄清反问话术“您是要办理理财服务吗?”,图谱性对话引擎可能会给出澄清反问话术“您是要了解理财类的产品吗?”,这种情况下可以依据对话引擎的优先级,将高优先级的任务型对话引擎的澄清反问话术作为第一回复文本。
这种排序机制保证了管理人员只需要维护各对话引擎的知识即可,无需针对统一排序额外进行数据标注,很好地降低了系统运营和管理成本。另外也方便对各对话引擎进行升级、扩展等。
除了上述排序的方式之外,还可以基于回复文本的置信度、对话引擎的优先级和权重采用其他排序方式。例如,利用回复文本的置信度、对话引擎的优先级和权重对各回复文本计算评分值,依据各回复文本的评分值进行排序。
第二阶段将第一回复文本对应的对话引擎作为本轮对话的目标对话引擎;调用目标对话引擎的执行接口以触发目标对话引擎执行第一回复文本。
在上述第一阶段中仅仅调用各对话引擎的NLU接口,并不会触发各对话引擎与服务层的交互。在经过对各对话引擎的回复文本进行统一排序并从中选择第一回复文本后,在第二阶段再调用第一回复文本对应的对话引擎的执行接口,以使得该对话引擎发起与服务层的交互,输出第一回复文本。
为了体现出上述优选实施例中分两个阶段处理的优势,下面分别针对一个阶段处理和两个阶段处理举一个例子进行比较:
一个阶段处理的方式:用户本轮对话输入的内容以及对话上下文在发送给各对话引擎后,任务型对话引擎识别出用户办理某服务的意图,通过与服务层的交互向用户发送办理服务相关的短信。然而经过对各对话引擎的回复文本进行排序后,置信度最高的回复文本是FAQ对话引擎产生的,最终确定FAQ对话引擎的回复文本返回给用户。这样用户可能在接收到短信后,又接收到FAQ返回的答案,就会产生疑惑,用户体验较差。
两个阶段处理的方式:将NLU接口和执行接口分离,执行接口单独由中控单元进行调用。用户本轮对话输入的内容以及对话上下文通过调用各对话引擎的NLU接口发送给各对话引擎,各对话引擎返回回复文本但并不与服务层交互。经过对各对话引擎的回复文本进行排序后,置信度最高的回复文本是FAQ对话引擎产生的,中控单元调用FAQ对话引擎的执行接口触发FAQ对话引擎输出回复文本作为第一回复文本。这种情况下,用户并不会接收到其他冗余的消息。
下面结合实施例对上述步骤208即“利用第一回复文本生成本轮向用户返回的内容”进行详细描述。
作为其中一种可实现的方式,可以直接利用第一回复文本生成可读性好的内容返回给用户。其中生成可读性好的内容时可以基于模版或者预先训练得到的生成式模型等实现,在此不做详述。
作为另一种可实现的方式,如图3中所示,可以在步骤308中执行进行以下后置处理中的至少一种。
第一种后置处理:跨引擎对话引导。
若第一回复文本与上一轮向用户返回的内容来自不同对话引擎且上一轮向用户返回的内容为澄清反问话术,则利用上一轮用户对话的内容生成第三回复文本,利用第一回复文本和第三回复文本生成向所述用户返回的内容;否则,利用第一回复文本生成本轮向用户返回的内容。
也就是说,连续两轮的对话发生了跨引擎的实现,并且上一轮对话向用户返回的内容为澄清反问话术,说明上一轮对话在对应的对话引擎尚未处理完毕仍处于澄清阶段。因此,作为一种优选的实施方式,可以在本轮对话向用户返回第一回复文本的同时,引导用户继续返回上一轮对话,这种方式会缩短满足用户需求的对话成本,给用户更好的体验。
举个例子:
在第一轮对话中,用户输入“帮我定一个北京的酒店”,返回任务型对话引擎的回复文本“请问你定什么酒店?”。
在第二轮对话中,用户输入“北京天气怎么样”,经过排序后确定第一回复文本为FAQ对话引擎的回复文本“北京天气晴朗”,但由于跨引擎且第一轮对话中向用户返回的内容问澄清反问话术,因此可以利用上一轮对话的内容生成第三回复文本“请问是继续帮您预订酒店吗”,然后利用第一回复文本和第三回复文本生成向用户返回的内容“北京天气晴朗,请问是继续帮您预订酒店吗?”,从而引导用户返回上一轮对话。
第二种后置处理:个性化拒识处理。
在一些情况下,由于用户表达的问题,或者一些环境因素等等,可能会发生N个不同的对话引擎均未得到回复文本的情况,这种情况称为“拒绝识别”简称为“拒识”,本申请实施例中可以针对这种情况由中控单元进行统一的后置处理,可以包括但不限于以下几种方式:
方式1、基于预设的第二话术和历史对话内容生成用以引导用户进入历史对话场景的第四回复文本,利用第四回复文本生成本轮向用户返回的内容。
例如,用户在第一轮对话中输入“我要注册”,向用户返回任务型对话引擎生成的回复文本“您要注册什么”。用户在第二轮对话输入的内容含糊不清,所有对话引擎均未得到回复文本,则可以基于预设的第二话术和历史对话内容生成第四回复文本“没听清您说什么,请问您要注册什么?”
方式2、基于预设的第三话术和热点问题信息生成用以提示用户咨询热点问题的第五回复文本,利用第五回复文本生成本轮向用户返回的内容。
例如,用户在第一轮对话中输入的内容含糊不清,所有对话引擎均未得到回复文本,则可以基于预设的第三话术和热点问题信息,生成第五回复文本“没听清您说什么,您是要问如何查询余额吗?
方式3、基于预设的第四话术和热点服务信息生成用以告知用户热点服务的第六回复文本,利用第六回复文本生成本轮向用户返回的内容。
例如,用户在第一轮对话中输入的内容含糊不清,所有对话引擎均未得到回复文本,则可以基于预设的第四话术和热点服务信息,生成第六回复文本“没听清您说什么,您要查询余额吗?
方式4、若N个不同的对话引擎均未得到回复文本的轮数达到预设轮数阈值,则针对用户连通人工处理系统。
例如,连续3轮对话引擎均未得到回复文本,则可以针对用户连通人工处理系统,转由人工处理,以避免用户长时间无法被理解需求而产生不好的体验。
针对上述后置处理得到的回复文本,也可以生成可读性好的内容返回给用户。
另外需要说明的是,在向用户返回内容时,可以以文本形式返回,也可以将文本进行语音合成后,将对应的语音返回给用户,等等。
更进一步地,如图3中所示,还可以包括步骤310,更新对话状态,包括记录用户本轮对话输入的内容和本轮向用户返回的内容,并更新记录的对话上下文。
通过本步骤能够记录每一轮人机对话的内容,并更新对话上下文,以便在后续轮次的对话中能够统一将对话上下文发送给各对话引擎,从而实现跨引擎的上下文复用,以实现复杂的对话场景,提升对话效果。另外,对话状态的记录也可以对后续轮次的指代消解、对话引导、澄清反问等产生参考作用。
另外,还可以将本轮对话的上下文、各对话引擎的回复文本、用户本轮对话输入的内容、本轮向用户返回的内容等通过异步消息队列,发送给对话分析报表平台和标注平台。通过对话分析报表平台可以对智能对话系统的效果进行分析,运营人员也可以通过标注平台持续优化智能对话系统的对话效果。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种智能对话。图4示出根据一个实施例的该智能对话系统的示意性框图,该系统设置于图1所示系统架构中的中控单元。该系统可以为位于服务器端的应用,或者还可以为位于服务器端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,也可以部署于云端服务器或者终端设备,本申请不做限制。如图4所示,该系统400可以包括:内容获取单元402、引擎调度单元404和内容生成单元406,还可以进一步包括:预处理单元408、前置策略处理单元410、后置处理单元412和对话记录单元414。其中各组成单元的主要功能如下:
内容获取单元402,被配置为获取用户本轮对话输入的内容和对话上下文。
引擎调度单元404,被配置为将用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,N为大于1的正整数;对N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本。
内容生成单元406,利用第一回复文本生成本轮向用户返回的内容。
更进一步地,预处理单元408,被配置为对用户本轮对话输入的内容进行预处理,其中预处理包括去口语化处理、指代消解处理和句向量计算中的至少一种。
相应地,引擎调度单元404可以将对用户本轮对话输入的内容进行预处理后的结果和对话上下文提供给N个不同的对话引擎。
更进一步地,前置策略处理单元410,被配置为判断用户本轮对话输入的内容是否命中预设的前置对话策略,如果是,执行命中的前置对话策略;否则,触发引擎调度单元404继续执行将用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎的处理。
其中,上述前置对话策略可以包括以下至少一种:
重听策略:若用户本轮对话输入的内容具有重听意图,则再次向用户返回上一轮对话向用户返回的内容;
情绪策略:若用户本轮对话输入的内容被识别为预设的情绪类型,则执行被识别出情绪类型对应的前置处理;
敏感词策略:若用户本轮对话输入的内容被识别出预设的敏感词,则利用预设的第一话术生成第二回复文本,向用户返回第二回复文本;
转人工策略:若用户本轮对话输入的内容被识别出转人工意图,则针对用户连通人工处理系统。
作为其中一种可实现的方式,引擎调度单元404可以具体被配置为:并行调度N个不同的对话引擎的自然语言理解NLU接口,将用户本轮对话输入的内容和对话上下文作为参数传递给各对话引擎;
相应地,内容生成单元406将第一回复文本对应的对话引擎作为本轮对话的目标对话引擎;调用目标对话引擎的执行接口以触发目标对话引擎执行第一回复文本。
作为其中一种可实现的方式,对引擎调度单元404可以具体被配置为:将N个不同的对话引擎得到的回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本,M为正整数。
其中,各对话引擎的优先级可以依据对话引擎的类型预先设置。
例如:若N个不同的对话引擎得到的回复文本的最大置信度大于或等于预设第一置信度阈值的回复文本,则从置信度大于或等于预设第一置信度阈值的回复文本中选择对应对话引擎的优先级排序最高的回复文本作为第一回复文本;或者,
若N个不同的对话引擎得到的回复文本的最大置信度小于预设第一置信度阈值且大于预设第二置信度阈值,则将置信度小于预设第一置信度阈值且大于预设第二置信度阈值的回复文本进行基于置信度和对话引擎权重的评分,选择评分最高的回复文本作为第一回复文本;或者,
若N个不同的对话引擎得到的回复文本为澄清反问话术,则依据各对话引擎的优先级选择M个回复文本作为第一回复文本,其中澄清反问话术为对话引擎无法产生置信度大于或等于预设第三置信度阈值的回复文本时产生的;
其中,第一置信度阈值大于第二置信度阈值,第二置信度阈值大于或等于第三置信度阈值。
作为其中一种可实现的方式,内容生成单元406可以被配置为:若第一回复文本与上一轮向用户返回的内容来自不同对话引擎且上一轮向用户返回的内容为澄清反问话术,则利用上一轮用户对话的内容生成第三回复文本,利用第一回复文本和第三回复文本生成向用户返回的内容;否则,利用第一回复文本生成本轮向用户返回的内容。
更进一步地,后置处理单元412可以被配置为:若N个不同的对话引擎均未得到回复文本,则执行以下后置处理:
基于预设的第二话术和历史对话内容生成用以引导用户进入历史对话场景的第四回复文本,利用第四回复文本生成本轮向用户返回的内容;或者,
基于预设的第三话术和热点问题信息生成用以提示用户咨询热点问题的第五回复文本,利用第五回复文本生成本轮向用户返回的内容;或者,
基于预设的第四话术和热点服务信息生成用以告知用户热点服务的第六回复文本,利用第六回复文本生成本轮向用户返回的内容;或者,
若N个不同的对话引擎均未得到回复文本的轮数达到预设轮数阈值,则针对用户连通人工处理系统。
作为其中一种可实现的方式,各对话引擎可以利用预处理单元408句向量计算得到的句向量,在干预策略集合中进行匹配,干预策略集合包括预先配置的输入语句及其对应的回复文本或意图类型。若句向量命中干预策略集合中的输入语句,则将命中的输入语句对应的回复文本作为对话引擎得到的回复文本,或者将命中的意图类型提供给对话引擎中的模型以得到回复文本;否则,将用户本轮对话输入的内容和对话上下文输入对话引擎中的模型以得到回复文本。
作为其中一种可实现的方式,上述干预策略集合中的输入语句可以包括高频问句或坏例语句;其中若针对用户输入的内容得到的第一回复文本无法满足预期,则该用户输入的内容为坏例语句。
更进一步地,对话记录单元414可以被配置为:记录用户本轮对话输入的内容和本轮向用户返回的内容,并更新记录的对话上下文。
需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如用户明确同意,对用户切实通知等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
另外,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
本申请实施例还提供了一种电子设备,包括:一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
其中,图5示例性的展示出了电子设备的架构,具体可以包括处理器510,视频显示适配器511,磁盘驱动器512,输入/输出接口513,网络接口514,以及存储器520。上述处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520之间可以通过通信总线530进行通信连接。
其中,处理器510可以采用通用的CPU、微处理器、应用专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(RandomAccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储用于控制电子设备500运行的操作系统521,用于控制电子设备500的低级别操作的基本输入输出系统(BIOS)522。另外,还可以存储网页浏览器523,数据存储管理系统524,以及智能对话系统525等等。上述智能对话系统525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线530包括一通路,在设备的各个组件(例如处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,与存储器520)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、视频显示适配器511、磁盘驱动器512、输入/输出接口513、网络接口514,存储器520,总线530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种智能对话方法,包括:
获取用户本轮对话输入的内容和对话上下文;
将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,所述N为大于1的正整数;
对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本;
利用所述第一回复文本生成本轮向所述用户返回的内容。
2.根据权利要求1所述的方法,在将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎之前,还包括:
判断所述用户本轮对话输入的内容是否命中预设的前置对话策略,如果是,执行命中的前置对话策略;否则,继续执行将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎的步骤。
3.根据权利要求2所述的方法,其中,所述前置对话策略包括以下至少一种:
重听策略:若所述用户本轮对话输入的内容具有重听意图,则再次向所述用户返回上一轮对话向所述用户返回的内容;
情绪策略:若所述用户本轮对话输入的内容被识别为预设的情绪类型,则执行被识别出情绪类型对应的前置处理;
敏感词策略:若所述用户本轮对话输入的内容被识别出预设的敏感词,则利用预设的第一话术生成第二回复文本,向所述用户返回所述第二回复文本;
转人工策略:若所述用户本轮对话输入的内容被识别出转人工意图,则针对所述用户连通人工处理系统。
4.根据权利要求1所述的方法,其中,将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎包括:并行调度所述N个不同的对话引擎的自然语言理解NLU接口,将所述用户本轮对话输入的内容和对话上下文作为参数传递给各对话引擎;
利用所述第一回复文本生成本轮向所述用户返回的内容包括:将所述N个不同的对话引擎中所述第一回复文本对应的对话引擎作为本轮对话的目标对话引擎;调用所述目标对话引擎的执行接口以触发所述目标对话引擎执行所述第一回复文本。
5.根据权利要求1所述的方法,其中,对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本包括:
将所述N个不同的对话引擎得到的回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本,所述M为正整数;
其中,各对话引擎的优先级依据对话引擎的类型预先设置。
6.根据权利要求5所述的方法,其中,将所述N个不同的对话引擎得到的回复文本的置信度结合各对话引擎的权重或优先级进行排序,选择排序最高的M个回复文本作为第一回复文本包括:
若所述N个不同的对话引擎得到的回复文本的最大置信度大于或等于预设第一置信度阈值的回复文本,则从置信度大于或等于预设第一置信度阈值的回复文本中选择对应对话引擎的优先级排序最高的回复文本作为第一回复文本;或者,
若所述N个不同的对话引擎得到的回复文本的最大置信度小于预设第一置信度阈值且大于预设第二置信度阈值,则将置信度小于预设第一置信度阈值且大于预设第二置信度阈值的回复文本进行基于置信度和对话引擎权重的评分,选择评分最高的回复文本作为第一回复文本;或者,
若所述N个不同的对话引擎得到的回复文本为澄清反问话术,则依据各对话引擎的优先级选择M个回复文本作为第一回复文本,其中所述澄清反问话术为对话引擎无法产生置信度大于或等于预设第三置信度阈值的回复文本时产生的;
其中,所述第一置信度阈值大于所述第二置信度阈值,所述第二置信度阈值大于或等于所述第三置信度阈值。
7.根据权利要求1所述的方法,其中,利用所述第一回复文本生成本轮向所述用户返回的内容包括:
若所述第一回复文本与上一轮向用户返回的内容来自不同对话引擎且上一轮向用户返回的内容为澄清反问话术,则利用上一轮用户对话的内容生成第三回复文本,利用所述第一回复文本和所述第三回复文本生成向所述用户返回的内容;否则,利用所述第一回复文本生成本轮向所述用户返回的内容。
8.根据权利要求1所述的方法,该方法还包括:若所述N个不同的对话引擎均未得到回复文本,则执行以下后置处理:
基于预设的第二话术和历史对话内容生成用以引导用户进入历史对话场景的第四回复文本,利用所述第四回复文本生成本轮向所述用户返回的内容;或者,
基于预设的第三话术和热点问题信息生成用以提示用户咨询热点问题的第五回复文本,利用所述第五回复文本生成本轮向所述用户返回的内容;或者,
基于预设的第四话术和热点服务信息生成用以告知用户热点服务的第六回复文本,利用所述第六回复文本生成本轮向所述用户返回的内容;或者,
若所述N个不同的对话引擎均未得到回复文本的轮数达到预设轮数阈值,则针对所述用户连通人工处理系统。
9.根据权利要求1所述的方法,该方法还包括:
各对话引擎利用所述用户本轮对话输入的内容的句向量在干预策略集合中进行匹配,所述干预策略集合包括预先配置的输入语句及其对应的回复文本或意图类型;
若所述句向量命中所述干预策略集合中的输入语句,则将命中的输入语句对应的回复文本作为所述对话引擎得到的回复文本,或者将命中的意图类型提供给对话引擎中的模型以得到回复文本;否则,将所述用户本轮对话输入的内容和对话上下文输入对话引擎中的模型以得到回复文本。
10.根据权利要求9所述的方法,其中,所述干预策略集合中的输入语句包括高频问句或坏例语句;
其中若针对用户输入的内容得到的第一回复文本无法满足预期,则判定该用户输入的内容为坏例语句。
11.根据权利要求1至10中任一项所述的方法,该方法还包括:
记录所述用户本轮对话输入的内容和本轮向所述用户返回的内容,并更新记录的对话上下文。
12.一种智能对话系统,包括:
内容获取单元,被配置为获取用户本轮对话输入的内容和对话上下文;
引擎调度单元,被配置为将所述用户本轮对话输入的内容和对话上下文提供给N个不同的对话引擎,所述N为大于1的正整数;对所述N个不同的对话引擎得到的回复文本进行基于置信度的排序,选择排序满足预设要求的回复文本作为第一回复文本;
内容生成单元,被配置为利用所述第一回复文本生成本轮向所述用户返回的内容。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210515926.9A CN114860910A (zh) | 2022-05-12 | 2022-05-12 | 智能对话方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210515926.9A CN114860910A (zh) | 2022-05-12 | 2022-05-12 | 智能对话方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860910A true CN114860910A (zh) | 2022-08-05 |
Family
ID=82636562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210515926.9A Pending CN114860910A (zh) | 2022-05-12 | 2022-05-12 | 智能对话方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860910A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996433A (zh) * | 2022-08-08 | 2022-09-02 | 北京聆心智能科技有限公司 | 一种对话生成方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068661A (zh) * | 2015-09-07 | 2015-11-18 | 百度在线网络技术(北京)有限公司 | 基于人工智能的人机交互方法和系统 |
CN111444329A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 智能对话方法、装置和电子设备 |
CN113515613A (zh) * | 2021-06-25 | 2021-10-19 | 华中科技大学 | 一种集成闲聊、知识和任务问答的智能机器人 |
CN114117024A (zh) * | 2022-01-27 | 2022-03-01 | 永鼎行远(南京)信息科技有限公司 | 一种多轮对话功能场景的平台构建方法 |
-
2022
- 2022-05-12 CN CN202210515926.9A patent/CN114860910A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068661A (zh) * | 2015-09-07 | 2015-11-18 | 百度在线网络技术(北京)有限公司 | 基于人工智能的人机交互方法和系统 |
CN111444329A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 智能对话方法、装置和电子设备 |
CN113515613A (zh) * | 2021-06-25 | 2021-10-19 | 华中科技大学 | 一种集成闲聊、知识和任务问答的智能机器人 |
CN114117024A (zh) * | 2022-01-27 | 2022-03-01 | 永鼎行远(南京)信息科技有限公司 | 一种多轮对话功能场景的平台构建方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996433A (zh) * | 2022-08-08 | 2022-09-02 | 北京聆心智能科技有限公司 | 一种对话生成方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102178738B1 (ko) | 적절한 에이전트의 자동화된 어시스턴트 호출 | |
JP7498149B2 (ja) | ユーザプログラマブル自動アシスタント | |
US20230206940A1 (en) | Method of and system for real time feedback in an incremental speech input interface | |
KR102461920B1 (ko) | 컨퍼런스 기능을 갖는 자동화된 어시스턴트 | |
CN110730953B (zh) | 基于创建者提供的内容定制交互式对话应用的方法、系统 | |
CN110741364A (zh) | 确定自动化助理对话的状态 | |
KR102170088B1 (ko) | 인공지능 기반 자동 응답 방법 및 시스템 | |
CN112154465A (zh) | 一种意图识别模型的学习方法、装置及设备 | |
US12087298B2 (en) | Electronic device and method of controlling thereof | |
CN113486170B (zh) | 基于人机交互的自然语言处理方法、装置、设备及介质 | |
JP6625772B2 (ja) | 検索方法及びそれを用いた電子機器 | |
KR20190074508A (ko) | 챗봇을 위한 대화 모델의 데이터 크라우드소싱 방법 | |
US11817093B2 (en) | Method and system for processing user spoken utterance | |
CN114860910A (zh) | 智能对话方法及系统 | |
JP4000828B2 (ja) | 情報システム、電子機器、プログラム | |
CN109002498B (zh) | 人机对话方法、装置、设备及存储介质 | |
RU2818036C1 (ru) | Способ и система управления диалоговым агентом в канале взаимодействия с пользователем | |
CN117198289B (zh) | 语音交互方法、装置、设备、介质及产品 | |
CN114168706A (zh) | 智能对话能力测试方法、介质和测试设备 | |
CN111596833A (zh) | 一种技能话术缠绕处理方法和装置 | |
CN118522274A (zh) | 用于助理系统的对话设计流的交互编辑器 | |
WO2021096382A2 (ru) | Способ и система управления диалоговым агентом в канале взаимодействия с пользователем | |
CN118694735A (zh) | 用于助理系统的为覆盖范围外请求生成上下文响应 | |
CN115438186A (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 |