首页> 中国专利> 闲聊机器人多轮对话生成方法、装置和闲聊机器人

闲聊机器人多轮对话生成方法、装置和闲聊机器人

摘要

本申请涉及一种闲聊机器人多轮对话生成方法、装置及闲聊机器人,其中,该闲聊机器人多轮对话生成方法包括:对话内容获取步骤,用于获取对话文本并过滤所述对话文本中的敏感词汇;关键词提取步骤,用于基于互信息提取所述对话文本中的对话关键词;重写候选句生成步骤,用于提取所述对话关键词的相邻词,所述相邻词与所述关键词组成关键短语,并将所述关键短语与所述对话文本中的对话尾句组成重写候选句;重写句子生成步骤,经一上下文重写网络将所述重写候选句经编码和解码转换为一重写句子并输出;对话生成步骤,将所述重写句子输入到一对话模型中得到对话回答。通过本申请,实现在多轮场景中使用单轮框架,实现更高的响应精度。

著录项

  • 公开/公告号CN112231457A

    专利类型发明专利

  • 公开/公告日2021-01-15

    原文格式PDF

  • 申请/专利权人 北京明略昭辉科技有限公司;

    申请/专利号CN202011117440.7

  • 发明设计人 陈倩倩;景艳山;蔡怡蕾;

    申请日2020-10-19

  • 分类号G06F16/332(20190101);G06F16/335(20190101);G06F40/166(20200101);

  • 代理机构37256 青岛清泰联信知识产权代理有限公司;

  • 代理人李红岩

  • 地址 100089 北京市海淀区北三环西路25号27号楼二层2020室

  • 入库时间 2023-06-19 09:35:27

说明书

技术领域

本申请涉及对话机器人领域,特别是涉及闲聊机器人多轮对话生成方法、装置、闲聊机器人及计算机可读存储介质。

背景技术

聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序,能够模拟人类对话,通过图灵测试。在聊天机器人中,多轮对话经常会出现前后相互参照和信息遗漏的问题,多轮对话理解一直是一个非常困难的问题。

目前,对于单轮对话的建模相对已经比较成熟一些,模型往往可以生成较好的回复,然而如果输入是多轮对话,仍然存在比较大的挑战,由于多轮对话中往往存在共指关系和信息缺失现象,聊天机器人所给出的回复往往不尽如人意。现有的多轮对话聊天机器人主要有基于检索的聊天机器人、基于生成的聊天机器人,其中,基于检索的聊天机器人早期对于多轮对话的处理只考虑最后一句话,忽略之前的话语,也被称为短文本会话(STC);而近期基于检索的聊天机器人使用启发式的文本重写方法从大文本索引中进行检索,在多轮对话的最后一轮问句添加关键词,重新定义语境;基于生成的聊天机器人对于多轮对话利用历史信息进行编码表示上下文,加上了不同层次的注意力机制。

但是,上述现有技术中,基于检索的聊天机器人使用启发式的文本重写方法,存在不可解释性的缺陷,不利于发现错误;其中,文本重写方法在重写过程中,需要人工标注数据,增加人工成本。基于生成的多轮对话聊天机器人经常生成无意义回复的问题。比如,“我不知道”、“我也是”等无意义回复。这种无意义回复的生成主要是因为在语料库中这种回复所占的比例较高,使得训练的模型倾向于生成较为普遍的无意义回复。以上,使得现有模型不能满足需求。

发明内容

本申请实施例提供了闲聊机器人多轮对话生成方法、装置、闲聊机器人及计算机可读存储介质,将多轮对话模型改写为单轮对话模型,实现在多轮场景中使用单轮框架,实现更高的响应精度。

第一方面,本申请实施例提供了一种闲聊机器人多轮对话生成方法,包括:

对话内容获取步骤,用于获取对话文本并过滤所述对话文本中的敏感词汇,将对话文本中有可能包含的政治、迷信邪教、黄赌毒、枪支弹药、讽刺诽谤等相关的敏感词汇过滤,避免这些敏感词汇在对话内容中而产生不良的影响;

关键词提取步骤,用于基于互信息提取所述对话文本中的对话关键词;

重写候选句生成步骤,用于提取所述对话关键词的相邻词,所述相邻词与所述关键词组成关键短语,并将所述关键短语与所述对话文本中的对话尾句组成重写候选句;

重写句子生成步骤,经一上下文重写网络将所述重写候选句经编码和解码转换为一重写句子并输出;

对话生成步骤,将所述重写句子输入到一对话模型中得到对话回答。

通过上述步骤,将多轮对话利用上下文改写转换为单轮对话模型,只需根据重写句子生成一个回复即可,简化缩短了对话上下文的长度,实现更高的响应精度,同时无需人工标注,降低工作成本。

在其中一些实施例中,所述重写候选句生成步骤进一步包括:

关键短语提取步骤,用于提取所述对话关键词的相邻词,结合所述对话关键词及其相邻词以组成语义完整的关键短语;

重写候选句获取步骤,用于利用一LSTM语言模型将所述关键短语插入到所述对话文本中的对话尾句中得到多个备选重写候选句,并将所述多个备选重写候选句经一重新排序模型选取得到一重写候选句。

在其中一些实施例中,所述重写句子生成步骤进一步包括:

重写编码步骤,用于采用二由双向GRU网络组成的编码器分别对所述重写候选句中的上下文信息和尾句信息进行编码,其中,二所述编码器分别用于学习所述上下文信息表示及尾句信息表示;

重写解码步骤,用于采用一由GRU网络组成的解码器生成重写句子,所述解码器基于注意力机制(Attention Mechanism)及复制机制(Copy Mechanism),所述注意力机制用于从所述上下文信息和尾句信息中获取信息;所述复制机制用于在所述上下文信息中复制重要单词。

基于上述步骤,实现了使用规则的文本重写方法,使得重写过程可解释。

在其中一些实施例中,该闲聊机器人多轮对话生成方法还包括:

一上下文重写网络优化步骤,用于利用强化学习方法(Reinforcement Learning,RL)调整所述上下文重写网络的网络参数。

在其中一些实施例中,所述强化学习方法进一步包括:

用一预先训练的模型生成重写多个候选句子;

计算最大化的奖励值,采用该奖励值reward优化所述上下文重写网络。

通过上述步骤,本申请实施例基于所述强化学习方法,建立上下文重写模型与不同任务之间的直接联系,从而解决由于生成的重写句子的包含错误和噪声限制了预先训练模型的性能的问题,优化上下文重写模型的参数,提高重写的精度。

在其中一些实施例中,所述对话模型为基于注意力模型的Seq2Seq模型,Seq2Seq是一种循环神经网络的变种,包括编码器(Encoder)和解码器(Decoder)两部分,其中,Encoder用于将输入的句子编码为一上下文变量C,在解码时每一个输出都会不加区分的使用所述上下文变量C进行解码,注意力模型用于根据序列的每个时间步将编码器编码为不同的上下文变量C,Decoder用于结合每个不同的C进行解码输出,有效提高对话生成结果的准确性。

第二方面,本申请实施例提供了一种多轮对话生成装置,包括:

对话内容获取模块,用于获取对话文本并过滤所述对话文本中的敏感词汇;

关键词提取模块,用于基于互信息提取所述对话文本中的对话关键词;

重写候选句生成模块,用于提取所述对话关键词的相邻词,所述相邻词与所述关键词组成关键短语,并将所述关键短语与所述对话文本中的对话尾句组成重写候选句;

重写句子生成模块,经一上下文重写网络将所述重写候选句经编码和解码转换为一重写句子并输出;

对话生成模块,将所述重写句子输入到一对话模型中得到对话回答。

通过上述装置,将多轮对话利用上下文改写转换为单轮对话模型,只需根据重写句子生成一个回复即可,简化缩短了对话上下文的长度,实现更高的响应精度,同时无需人工标注,降低工作成本。

在其中一些实施例中,所述重写候选句生成模块进一步包括:

关键短语提取模块,用于提取所述对话关键词的相邻词,结合所述对话关键词及其相邻词以组成语义完整的关键短语;

重写候选句获取模块,用于利用一LSTM语言模型将所述关键短语插入到所述对话文本中的对话尾句中得到多个备选重写候选句,并将所述多个备选重写候选句经一重新排序模型选取得到一重写候选句。

在其中一些实施例中,所述重写句子生成模块进一步包括:

重写编码模块,用于采用二由双向GRU网络组成的编码器分别对所述重写候选句中的上下文信息和尾句信息进行编码,其中,二所述编码器分别用于学习所述上下文信息表示及尾句信息表示;

重写解码模块,用于采用一由GRU网络组成解码器生成重写句子,所述解码器基于注意力机制及复制机制。所述注意力机制用于从所述上下文信息和尾句信息中获取信息;所述复制机制用于在所述上下文信息中复制重要单词。

基于上述结构,实现了使用规则的文本重写方法,使得重写过程可解释。

在其中一些实施例中,该多轮对话生成装置还包括:

一上下文重写网络优化模块,用于利用强化学习方法调整所述上下文重写网络的网络参数。

在其中一些实施例中,所述强化学习方法进一步包括:

用一预先训练的模型生成重写多个候选句子;

计算最大化的奖励值,采用该奖励值reward优化所述上下文重写网络。

通过上述步骤,本申请实施例基于所述强化学习方法,建立上下文重写模型与不同任务之间的直接联系,从而解决由于生成的重写句子的包含错误和噪声限制了预先训练模型的性能的问题,优化上下文重写模型的参数,提高重写的精度。

在其中一些实施例中,所述对话模型为基于注意力模型的Seq2Seq模型,有效提高对话生成结果的准确性。

第三方面,本申请实施例提供闲聊机器人,所述对话闲聊机器人基于如上述第一方面所述的闲聊机器人多轮对话生成方法进行应答。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的闲聊机器人多轮对话生成方法。

相比于相关技术,本申请实施例提供的闲聊机器人多轮对话生成方法、装置、闲聊机器人及计算机可读存储介质,将多轮对话改写为单轮对话,使用单轮对话的框架即可实现对话生成,提高响应精度;基于互信息实现对话关键词提取,使得重写过程不需要人工标注数据;基于所述LSTM语言模型、重新排序模型及上下文重写网络构建规则的文本重写方式,使得重写过程可解释;本申请实施例还使用强化学习不断调整重重写网络的参数,提高重写的精度。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的闲聊机器人多轮对话生成方法的流程示意图;

图2是根据本申请实施例的闲聊机器人多轮对话生成方法的另一流程示意图;

图3是根据本申请实施例的多轮对话生成装置的结构示意框图;

图4是根据本申请实施例的多轮对话生成装置的另一结构示意框图;

图5是根据本申请实施例的闲聊机器人多轮对话生成方法中重写句子生成步骤示意图;

图6是根据本申请实施例的闲聊机器人多轮对话生成方法中对话生成步骤示意图。

附图说明:

1、多轮对话生成装置;11、对话内容获取模块;12、关键词提取模块;13、重写候选句生成模块;14、重写句子生成模块;15、对话生成模块;16、上下文重写网络优化模块;131、关键短语提取模块;132、重写候选句获取模块;141、重写编码模块;142、重写解码模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供了一种闲聊机器人多轮对话生成方法,图1是根据本申请实施例的闲聊机器人多轮对话生成方法的流程示意图,参考图1所示,该流程包括如下步骤:

对话内容获取步骤S1,用于获取对话文本并过滤对话文本中的敏感词汇,将对话文本中有可能包含的政治、迷信邪教、黄赌毒、枪支弹药、讽刺诽谤等相关的敏感词汇过滤,避免这些敏感词汇在对话内容中而产生不良的影响;

关键词提取步骤S2,用于将对话文本经分词、词频统计、常用词和低频词惩罚等预处理操作后,基于互信息提取对话文本中的对话关键词;

重写候选句生成步骤S3,用于提取对话关键词的相邻词,相邻词与关键词组成关键短语,并将关键短语与对话文本中的对话尾句组成重写候选句;

重写句子生成步骤S4,经一上下文重写网络将重写候选句经编码和解码转换为一重写句子并输出;

对话生成步骤S5,将重写句子输入到一对话模型中得到对话回答,具体的,将重写句子以问答形式输入到Seq2Seq对话模型,经Seq2Seq对话模型的Encoder将输入的句子编码为一上下文变量C,在解码时每一个输出都会不加区分的使用上下文变量C进行解码,同时基于注意力模型根据序列的每个时间步将编码器编码为不同的上下文变量C,再经Seq2Seq对话模型的Decoder用于结合每个不同的C进行解码输出,完成对话。

其中,重写候选句生成步骤S3进一步包括:

关键短语提取步骤S301,用于提取对话关键词的相邻词,结合对话关键词及其相邻词以组成语义完整的关键短语;

重写候选句获取步骤S302,用于利用一LSTM语言模型将关键短语插入到对话文本中的对话尾句中得到多个备选重写候选句,并将多个备选重写候选句经一重新排序模型选取得到一重写候选句。

重写句子生成步骤S4进一步包括:

重写编码步骤S401,用于采用二由双向GRU网络组成的编码器分别对重写候选句中的上下文信息和尾句信息进行编码,其中,二编码器分别用于学习上下文信息表示及尾句信息表示,步骤S401具体原理为利用双向GRU网络将句子中左右两个GRU网络的隐形状态按正时间方向和负时间方向连接,从而将重写候选句的左右两个单词进行合并;

重写解码步骤S402,用于采用一由GRU网络组成解码器生成重写句子,解码器基于注意力机制及复制机制,注意力机制用于从上下文信息和尾句信息中获取信息;复制机制用于在上下文信息中复制重要单词,具体的,利用Copy mode从上下文中直接复制重要的单词,使用Predict mode预测词汇的分布。

通过上述步骤,将多轮对话利用上下文改写转换为单轮对话模型,只需根据重写句子生成一个回复即可,简化缩短了对话上下文的长度,实现更高的响应精度;同时无需人工标注,降低工作成本;实现了使用规则的文本重写方法,使得重写过程可解释;利用带注意力机制的对话模型,进一步有效提高对话生成结果的准确性。

本申请还提供了一种闲聊机器人多轮对话生成方法,图2是根据本申请实施例的闲聊机器人多轮对话生成方法的另一流程示意图,参考图2所示,该流程与上述闲聊机器人多轮对话生成方法中的步骤相同之处不再赘述,不同之处在于,还包括如下步骤:

上下文重写网络优化步骤S6,用于利用强化学习方法调整上下文重写网络的网络参数,其中,强化学习方法进一步包括:用一预先训练的模型生成重写多个候选句子;计算最大化的奖励值,采用该奖励值reward优化上下文重写网络。

通过上述步骤,本申请实施例基于强化学习方法,建立上下文重写模型与不同任务之间的直接联系,从而解决由于生成的重写句子的包含错误和噪声限制了预先训练模型的性能的问题,优化上下文重写模型的参数,提高重写的精度。

下面通过优选实施例对本申请实施例重写过程及对话过程进行描述和说明。图5是根据本申请实施例的闲聊机器人多轮对话生成方法中重写句子生成步骤示意图、图6是根据本申请实施例的闲聊机器人多轮对话生成方法中对话生成步骤示意图,参考图5、6所示,

步骤S302利用一LSTM语言模型将关键短语插入到对话文本中的对话尾句中,在LSTM语言模型中选择模型得分较高的3个句子作为备选重写候选句,并利用对话文本中的回答将多个备选重写候选句经一重新排序模型选取得到一重写候选句。

由步骤S4进行重写句子生成,首先经步骤S401由两个编码器学习重写候选句中的上下文表示“我讨厌蛋糕”和尾句表示“为什么?很好吃”,再经步骤S402根据注意力机制和复制机制将“讨厌蛋糕”复制插入到尾句中,输出的重写句子为“为什么讨厌蛋糕?很好吃。”。

步骤S5将上述重写句子输入到对话模型Seq2Seq中,输出对话结果“腻了。”

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种多轮对话生成装置,图3是根据本申请实施例的多轮对话生成装置的结构示意框图。参考图3所示,该多轮对话生成装置1包括:对话内容获取模块11、关键词提取模块12、重写候选句生成模块13、重写句子生成模块14、对话生成模块15等结构。本领域技术人员可以理解,图3中示出的多轮对话生成装置并不构成对多轮对话生成装置的限定,可以包括比图示更多或更少的结构,或者组合某些结构,或者不同的结构布置。

下面结合图3对用户终端的各个构成结构进行具体的介绍:

对话内容获取模块11,用于获取对话文本并过滤对话文本中的敏感词汇;

关键词提取模块12,用于基于互信息提取对话文本中的对话关键词;

重写候选句生成模块13,用于提取对话关键词的相邻词,相邻词与关键词组成关键短语,并将关键短语与对话文本中的对话尾句组成重写候选句;

重写句子生成模块14,经一上下文重写网络将重写候选句经编码和解码转换为一重写句子并输出;

对话生成模块15,将重写句子输入到一对话模型中得到对话回答,具体的,该对话模型采用基于注意力模型的Seq2Seq模型,以有效提高对话生成结果的准确性。

其中,重写候选句生成模块13进一步包括:

关键短语提取模块131,用于提取对话关键词的相邻词,结合对话关键词及其相邻词以组成语义完整的关键短语;

重写候选句获取模块132,用于利用一LSTM语言模型将关键短语插入到对话文本中的对话尾句中得到多个备选重写候选句,并将多个备选重写候选句经一重新排序模型选取得到一重写候选句。

重写句子生成模块14进一步包括:

重写编码模块141,用于采用二由双向GRU网络组成的编码器分别对重写候选句中的上下文信息和尾句信息进行编码,其中,二编码器分别用于学习上下文信息表示及尾句信息表示;

重写解码模块142,用于采用一由GRU网络组成解码器生成重写句子,解码器基于注意力机制及复制机制。注意力机制用于从上下文信息和尾句信息中获取信息;复制机制用于在上下文信息中复制重要单词。

通过上述装置,将多轮对话利用上下文改写转换为单轮对话模型,只需根据重写句子生成一个回复即可,简化缩短了对话上下文的长度,实现更高的响应精度,同时无需人工标注,降低工作成本;实现了使用规则的文本重写方法,使得重写过程可解释。

本实施例还提供了一种多轮对话生成装置,图4是根据本申请实施例的多轮对话生成装置的另一结构示意框图;参考图4所示,该装置与上述多轮对话生成装置的相同之处不再赘述,不同之处在于,该装置还包括:

一上下文重写网络优化模块16,用于利用强化学习方法调整上下文重写网络的网络参数。

在其中一些实施例中,强化学习方法进一步包括:

用一预先训练的模型生成重写多个候选句子;

计算最大化的奖励值,采用该奖励值reward优化上下文重写网络。

通过上述步骤,本申请实施例基于强化学习方法,建立上下文重写模型与不同任务之间的直接联系,从而解决由于生成的重写句子的包含错误和噪声限制了预先训练模型的性能的问题,优化上下文重写模型的参数,提高重写的精度。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

本申请实施例还提供了一种闲聊机器人,该对话闲聊机器人基于如上述实施例中任意一种闲聊机器人多轮对话生成方法进行应答。

另外,结合上述实施例中的闲聊机器人多轮对话生成方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种闲聊机器人多轮对话生成方法。

综上所述,本申请实施例提供的闲聊机器人多轮对话生成方法、装置、闲聊机器人及计算机可读存储介质,将多轮对话改写为单轮对话,使用单轮对话的框架即可实现对话生成,提高响应精度;基于互信息实现对话关键词提取,使得重写过程不需要人工标注数据;基于LSTM语言模型、重新排序模型及上下文重写网络构建规则的文本重写方式,使得重写过程可解释;本申请实施例还使用强化学习不断调整上下文重写网络的参数,提高重写的精度。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号