发明内容
本发明实施例提供一种对话系统间的知识分享方法、对话方法、装置、电子设备及存储介质,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种对话系统间的知识分享方法,包括:
第一对话系统接收外部对话系统所发送的知识分享请求,所述知识分享请求至少包括所述外部对话系统的待分享知识点的特征信息;
解析所述知识分享请求以确定所述待分享知识点的特征信息;
将所述待分享知识点的特征信息增加至所述第一对话系统的知识库中以形成分享知识库。
第二方面,本发明实施例提供一种对话方法,用于第一对话系统,所述第一对话系统共享有至少一个外部对话系统的知识点,所述第一对话系统的知识库与所述第一对话系统所共享的至少一个外部对话系统的知识点构成共享知识库,所述方法包括:
解析用户所提交的问题;
根据所述解析结果在所述共享知识库中检索对应于所述问题的答案;
当检索结果表明所述共享知识库中不存在答案时,通知用户不存在对应于所述问题的答案;
当检索结果表明所述共享知识库中存在唯一答案时,将所述唯一答案呈现给用户;
当检索结果表明所述共享知识库中存在多个答案时,确定所述多个答案各自的优先级等级,并将优先级最高的答案呈现给用户。
第三方面,本发明实施例提供一种对话系统间的知识分享装置,包括:
信息接收程序模块,用于接收外部对话系统所发送的知识分享请求,所述知识分享请求至少包括所述外部对话系统的待分享知识点的特征信息;
信息解析程序模块,用于解析所述知识分享请求以确定所述待分享知识点的特征信息;
库更新程序模块,用于将所述待分享知识点的特征信息增加至所述第一对话系统的知识库中以形成分享知识库。
第四方面,本发明实施例提供一种对话装置,用于第一对话系统,所述第一对话系统共享有至少一个外部对话系统的知识点,所述第一对话系统的知识库与所述第一对话系统所共享的至少一个外部对话系统的知识点构成共享知识库,所述装置包括:
语义解析程序模块,用于解析用户所提交的问题;
答案检索程序模块,用于根据所述解析结果在所述共享知识库中检索对应于所述问题的答案;
第一应答程序模块,用于当检索结果表明所述共享知识库中不存在答案时,通知用户不存在对应于所述问题的答案;
第二应答程序模块,用于当检索结果表明所述共享知识库中存在唯一答案时,将所述唯一答案呈现给用户;
第三应答程序模块,用于当检索结果表明所述共享知识库中存在多个答案时,确定所述多个答案各自的优先级等级,并将优先级最高的答案呈现给用户。
第五方面,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项对话系统间的知识分享方法(或者对话方法)。
第六方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项对话系统间的知识分享方法(或者对话方法)。
第七方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话系统间的知识分享方法(或者对话方法)。
本发明实施例通过对话系统之间分享知识点的方式实现了不同对话系统之间的知识的共享,在成本最小化的情况下,最大程度的满足了用户对于对话机器人的跨领域的对话需求。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,本发明的实施例提供一种对话系统间的知识分享方法,包括:
S11、第一对话系统接收外部对话系统所发送的知识分享请求,所述知识分享请求至少包括所述外部对话系统的待分享知识点的特征信息。
对话系统的知识分享可以在一定群组范围内进行,也可以分享给所有人,一个公司范围的对话系统X,公司的成员有各自的对话系统A,B,C等,对话系统A,B,C把自己的知识分享给X后,在X中的对话就可以包含X,A,B,C等角色。
本实施例中,第一对话系统可以为对话系统X,外部对话系统可以包括对话系统A、对话系统B、对话系统C。其中,
对话系统X有自己的知识集合Kx={qx1,qx2,…qxn}
对话系统A有自己的知识集合Ka={qa1,qa2,…qar}
对话系统B有自己的知识集合Kb={qb1,qb2,…qbs}
对话系统C有自己的知识集合Kc={qc1,qc2,…qct}
每一个知识集合由一组知识点q构成,一个知识点可以是一个问答对或一个知识图谱中的三元组。
对话系统A,对话系统B,对话系统C可以分别把自己的部分知识点作为待分享知识点分享给对话系统X。例如,对话系统A,对话系统B,对话系统C分别把自己的知识子集合Pa,Pb,Pc分享给对话系统X,对话系统X的知识集合变成Kx'={Kx,Pa,Pb,Pc},每个知识点关联自己所属的原始对话系统(例如,知识子集合Pa中的知识点关联至对话系统A),这样对话系统X就可以回答所有知识集合Kx'中的知识点所对应的问题。
待分享知识点的特征信息可以是对应于待分享知识点的特征向量或者ID信息,本发明对此不作限定。
根据知识的使用频率给分享该知识点的对话系统对应的奖励,奖励是该对话系统的一个分值,可以表现为该对话系统的积分、等级或对应的物质奖励。
S12、解析所述知识分享请求以确定所述待分享知识点的特征信息。
S13、将所述待分享知识点的特征信息增加至所述第一对话系统的知识库中以形成分享知识库。
本发明实施例通过对话系统之间分享知识点的方式实现了不同对话系统之间的知识的共享,在成本最小化的情况下,最大程度的满足了用户对于对话机器人的跨领域的对话需求。本发明实施例中所涉及到的对话系统可以是以微信公众号、实体机器人、网页对话机器人、电脑、手机或其它移动设备的应用程序中的一种或者多种。
基于本发明实施例的方法可以在对话系统之间分享知识,知识的形式可以是问答对、知识库或知识图谱、用机器学习方法学习得到的对话生成算法。例如,对话系统A有自己的知识集合,对话系统A可以把自己的知识分享给对话系统B,对话系统B就可以回答对话系统A和对话系统B中所有的知识对应的问题。
分享后的知识可以以不同角色的对话进行,例如,对话系统A可以把自己的知识分享给对话系统B,这样在B中的对话就可以有对话系统A,对话系统B两个角色(还有一个终端用户角色),在实际的对话界面中显示为三个角色,其中,两个是对话系统角色,一个时用户角色。
在一些实施例中,第一对话系统还接收外部对话系统的配置信息,所述配置信息至少包括外部对话系统的头像设置信息,以用于当第一对话系统回答属于外部对话系统的知识点的问题时在对话界面显示该外部对话系统的头像。本实施例中,在进行知识点分享时,相应的将外部对话系统的配置信息分享给第一对话系统,从而能够在实际对话中当出现超出了第一对话系统知识点范畴的问题时,不仅能够从外部分享的知识点中获取答案,而且还可以以第三方的形式呈现出提供该答案的外部对话系统的头像信息,在一定程度上能够起到指导用户当前所提及的问题实际上已经是另一个业务方向的知识范畴了,这对于规范用户对知识所述领域的认知也能够起到一定的指导及规范作用。
在一些实施例中,所述知识分享请求中还包括所述待分享知识点的关联信息,用于确定所述待分享知识点的优先级等级,所述关联信息包括:所述待分享知识点被采纳的次数a,和/或
所述待分享知识点多对应的外部对话系统的积分b,和/或
所述关联信息还包括所述待分享知识点的被分享类型,所述被分享类型包括:分享给特定对话系统类型(c1)、分享给特定对话系统群类型(c2)和分享给所有外部对话系统类型(c3)。
本实施例中可以基于参数a、b和c1-c3各自的函数值的加权和作为待分享知识点的综合得分w,以用于确定待分享知识点的优先级等级,w越大待分享知识点的优先级等级越高,例如,
w=n1f1(a)+n2f2(b)+n3f3(m1*c1+m2*c2+m3*c3),其中,n1-n3分别取值为0或1,m1-m3中一个取值为1,其它两个取值为0。或者
w的取值通过逻辑回归、神经网络等机器学习算法获得,比如
w=1/(1+e-z),其中z=n1a+n2b+m1c1+m2c2+m3c3。其中的参数n1,n2,m1,m2,m3的取值可以通过大量用户数据来训练拟合得到。
其中,答案(即,待分享知识点)被采纳的次数:答案被是否被采纳可以通过对话过程中推荐了这个答案后后续对话是否继续或针对这个答案或答案提供者有进一步的对话行为发生来确定,每一次被采纳计数增加1,被采纳次数越多,表明该大概被用户所接收采纳的概率越大,因此,相应的确定被采纳次数越大,该答案的优先级越高。
答案被采纳的对话系统的积分,每一个对话系统根据服务于用户的历史表现都存在积分,历史表现越好,所得到的积分越多,本实施例中设定积分多,相应的属于该对话系统的答案的优先级越高。
根据知识点的来源确定知识点的优先级等级,优先级从高到低依次为:第一对话系统自己的知识点,定向分享给特定对话系统的知识点,定向分享给特定对话系统群的知识点,分享给所有外部对话系统的知识点。知识点的分享范围越大,优先级权重越低。
在本发明的实施例中,由于存在多个外部对话系统同时向一个第一对话系统分享知识点的情况,这就导致用户所提的一个问题,可能会有多个答案命中,并且该多个答案对应于多个对话系统(第一对话系统和/或外部对话系统)多个知识点,这时基于本实施例中的方法就能够对多个答案按照优先级进行排序,以实现向用户择优推荐答案的操作。具体的可以直接将优先级最高的答案呈现在对话界面中,或者将优先级较高的几个答案同时呈现在对话界面中供用户选择。设置优先级的目的主要是为了解决重复知识的使用问题,避免盲目分享,提升了用户体验。
对话系统提供分享功能相当于让原来私有的知识可以分享,降低建立对话系统的门槛,提高对话系统的能力。给对话系统提供一定的社交能力,知识分享之后当该知识点再被问到后就可以已多人对话的形式展示。
在一些实施例中本发明还提供一种对话方法,用于第一对话系统,所述第一对话系统共享有至少一个外部对话系统的知识点,所述第一对话系统的知识库与所述第一对话系统所共享的至少一个外部对话系统的知识点构成共享知识库。
如图2所示,本发明的对话方法的一个实施例包括:
S21、解析用户所提交的问题;具体地,对用户所提交的问题进行语义理解,确定用户问题的意图,以用于搜索相应的答案。
S22、根据所述解析结果在所述共享知识库中检索对应于所述问题的答案;
S23、当检索结果表明所述共享知识库中不存在答案时,通知用户不存在对应于所述问题的答案;
S24当检索结果表明所述共享知识库中存在唯一答案时,将所述唯一答案呈现给用户;
S25、当检索结果表明所述共享知识库中存在多个答案时,确定所述多个答案各自的优先级等级,并将优先级最高的答案呈现给用户。其中,所述确定所述多个答案各自的优先级等级包括:
确定所述多个答案中的每一个答案所对应的知识点;
获取所述每一个答案所对应的知识点的关联信息,所述关联信息包括:所述每一个答案所对应的知识点被采纳的次数,和/或
所述每一个答案所对应的知识点对应的外部对话系统的积分,和/或
所述每一个答案所对应的知识点的属性,所述属性包括本地知识点类型和被分享类型,所述被分享类型包括:分享给特定对话系统类型、分享给特定对话系统群类型和分享给所有外部对话系统类型;
根据所述关联信息确定所述多个答案各自的优先级等级。
本发明实施例的对话方法以第一对话系统与外部对话系统之间的共享知识库为基础,实现了对话系统间知识点的相互补充,使得用户使用一个对话系统即可跨业务领域获取知识点,在最小化对话系统构建成本,避免资源浪费的情况下,在一个对话系统之下就满足了用户对不同业务领域知识的需求。
如图3所示,在一些实施例中,所述根据所述解析结果在所述共享知识库中检索对应于所述问题的答案包括:
S221、根据所述第一对话系统与所述至少一个外部对话系统所分别对应的领域确定所述至少一个外部对话系统分别与所述第一对话系统之间的至少一个相似度;
S222、确定所述共享知识库中属于所述至少一个外部对话系统的知识点的知识点优先级等级,所述至少一个相似度中的值越大的相似度所对应的外部系统的知识点的知识点优先级等级越高
S223、确定所述共享知识库中的对应于所述第一对话系统的知识点的知识点优先级等级高于所述至少一个外部系统的知识点的知识点优先级等级;
S224、按照知识点优先级等级从高到低的顺序在所述共享知识库中检索对应于所述问题的答案。
通过比较外部对话系统与第一对话系统分别所述领域之间的相似度,确定了出了外部对话系统与第一对话系统的领域之间的远近关系,界定了用于搜索对应于用户所提问题的答案的标准,避免了在共享数据库中盲目搜索所导致的计算资源的浪费,同时也提高了搜索效率,能够在最短时间内为用户的提问提供参考答案,保证了这个对话过程的流畅性,提升了用户体验。
在一些实施例中,本发明的对话方法还包括:更新对应于所述唯一答案的知识点的关联信息,具体地:
更新对应于所述唯一答案的知识点被采纳的次数,和/或
更新对应于所述唯一答案的知识点对应的对话系统的积分。
通过实时的根据实际使用情况更新知识点被采纳的次数以及相应的对对话系统的评分,保证了数据的准确性,从而为评价知识点的优先级等级提供了可靠的数据源,有助于提升为用户推荐答案的准确性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图4所示,本发明的实施例还提供一种对话系统间的知识分享装置400,用于任意一种对话系统以用于实现对话系统进行知识分享,包括:
信息接收程序模块410,用于接收外部对话系统所发送的知识分享请求,所述知识分享请求至少包括所述外部对话系统的待分享知识点的特征信息;
信息解析程序模块420,用于解析所述知识分享请求以确定所述待分享知识点的特征信息;
库更新程序模块430,用于将所述待分享知识点的特征信息增加至所述第一对话系统的知识库中以形成分享知识库。
如图5所示,本发明的实施例还提供一种对话装置500,用于第一对话系统,所述第一对话系统共享有至少一个外部对话系统的知识点,所述第一对话系统的知识库与所述第一对话系统所共享的至少一个外部对话系统的知识点构成共享知识库,所述装置包括:
语义解析程序模块510,用于解析用户所提交的问题;
答案检索程序模块520,用于根据所述解析结果在所述共享知识库中检索对应于所述问题的答案;
第一应答程序模块530,用于当检索结果表明所述共享知识库中不存在答案时,通知用户不存在对应于所述问题的答案;
第二应答程序模块540,用于当检索结果表明所述共享知识库中存在唯一答案时,将所述唯一答案呈现给用户;
第三应答程序模块550,用于当检索结果表明所述共享知识库中存在多个答案时,确定所述多个答案各自的优先级等级,并将优先级最高的答案呈现给用户。
如图6所示,本发明的一些实施例中,所述答案检索程序模块520包括:
相似度确定单元521,用于根据所述第一对话系统与所述至少一个外部对话系统所分别对应的领域确定所述至少一个外部对话系统分别与所述第一对话系统之间的至少一个相似度;
第一优先级确定单元522,用于确定所述共享知识库中属于所述至少一个外部对话系统的知识点的知识点优先级等级,所述至少一个相似度中的值越大的相似度所对应的外部系统的知识点的知识点优先级等级越高;
第二优先级确定单元523,用于确定所述共享知识库中的对应于所述第一对话系统的知识点的知识点优先级等级高于所述至少一个外部系统的知识点的知识点优先级等级;
答案检索单元524,用于按照知识点优先级等级从高到低的顺序在所述共享知识库中检索对应于所述问题的答案。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项对话系统间的知识分享方法(或者对话方法)。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行对话系统间的知识分享方法(或者对话方法)。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,使所述计算机执行上述任一项对话系统间的知识分享方法(或者对话方法)。
上述本发明实施例中的装置可用于执行本发明实施例中的方法,并相应的达到上述本发明实施例的方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图7是本申请另一实施例提供的执行对话系统间的知识分享方法(或者对话方法)的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器710以及存储器720,图7中以一个处理器710为例。
执行对话系统间的知识分享方法(或者对话方法)的设备还可以包括:输入装置730和输出装置740。
处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器720作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的对话系统间的知识分享方法(或者对话方法)对应的程序指令/模块。处理器710通过运行存储在存储器720中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例对话系统间的知识分享方法(或者对话方法)。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据对话系统间的知识分享装置(或者对话装置)的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至对话系统间的知识分享装置(或者对话装置)。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可接收输入的数字或字符信息,以及产生与对话系统间的知识分享装置(或者对话装置)的用户设置以及功能控制有关的信号。输出装置740可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器720中,当被所述一个或者多个处理器710执行时,执行上述任意方法实施例中的对话系统间的知识分享方法(或者对话方法)。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。