一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型的训练方法、情感消息生成方法和装置、设备、介质与流程

2022-05-21 05:11:43 来源:中国专利 TAG:


1.本公开实施例涉及人工智能技术领域,尤其涉及一种模型的训练方法、情感消息生成方法和装置、设备、介质。


背景技术:

2.随着人工智能技术的发展,聊天机器人的使用率也逐渐提升,其中聊天机器人能够根据用户输入的问题消息自动生成相应的应答消息。目前的聊天机器人主要是通过参照上一轮对话的情感特征,生成与之对应情感的情感消息。但是,由于只能固定的情感特征,这一方式往往使得生成的情感消息的情感比较单一。


技术实现要素:

3.本公开实施例的主要目的在于提出一种模型的训练方法、情感消息生成方法和装置、设备、介质,通过训练神经网络模型,能够使神经网络模型生成多种情感的情感消息。
4.为实现上述目的,本公开实施例的第一方面提出了一种模型的训练方法,用于训练情感消息生成模型,训练方法包括:
5.获取对话数据集;
6.对所述对话数据集进行预处理,得到初步数据集;
7.通过预设的情感分类器对所述初步数据集进行情感标注处理,得到初步情感标签;
8.将所述初步数据集和所述初步情感标签输入至预设的神经网络模型;其中,所述神经网络模型包括第一神经网络和第二神经网络;
9.通过所述第一神经网络对所述初步数据集和所述初步情感标签进行初步编码处理,得到初步编码向量;
10.通过所述第二神经网络对所述初步编码向量进行解码处理,得到目标情感消息;
11.根据所述目标情感消息对所述神经网络模型进行训练处理,得到情感消息生成模型。
12.在一些实施例,所述初步编码向量包括分词编码向量和情感标签向量;所述通过所述第一神经网络对所述初步数据集和所述初步情感标签进行初步编码处理,得到初步编码向量,包括:
13.对所述初步数据集进行分词处理,得到至少两个分词数据;
14.将每一所述多个分词数据输入至所述第一神经网络进行第一编码处理,得到至少两个所述分词编码向量;
15.将所述初步情感标签输入至所述第一神经网络进行第二编码处理,得到所述情感标签向量。
16.在一些实施例,所述通过所述第二神经网络对所述初步编码向量进行解码处理,得到目标情感消息,包括:
17.获取预先训练好的多个参考情感标签;
18.将所述分词编码向量和所述情感标签向量输入至所述第二神经网络,以使所述第二神经网络根据所述参考情感标签对所述分词编码向量进行解码处理及对所述情感标签向量进行解码处理,得到对应所述参考情感标签的多个初步分词;
19.根据所述多个初步分词,得到所述目标情感消息。
20.在一些实施例,所述根据所述多个初步分词,得到所述目标情感消息,包括:
21.获取预设分词类别;
22.根据所述预设分词类别对所述初步分词进行类别划分,得到所述初步分词的词类别和标量权重;
23.将所述初步分词输入至预设的分词分类器进行分类处理,得到分词概率;
24.根据所述标量权重和所述分词概率进行概率计算,得到生成概率;
25.获取最大的生成概率所对应的所述初步分词,作为目标分词;
26.根据所述目标分词,得到所述目标情感消息。
27.在一些实施例,所述第二神经网络包括多层门控循环单元,所述根据所述目标情感消息对所述神经网络模型进行训练处理,得到情感消息生成模型,包括:
28.根据所述情感标签向量、所述目标情感消息和预设的注意力机制向量,对每一层的所述门控循环单元的隐藏状态向量进行情感约束处理,得到多个目标情感向量;
29.根据所述多个目标情感向量对所述神经网络模型的损失函数进行计算,得到目标损失值;
30.使用反向传播算法最小化所述目标损失值,以更新所述神经网络模型的模型参数,得到所述情感消息生成模型。
31.本公开实施例的第二方面提出了一种情感消息生成方法,用于生成目标情感消息,包括:
32.获取原始问题消息;
33.将所述原始问题消息输入至情感消息生成模型进行消息生成处理,得到目标情感消息;其中,所述目标情感消息为应答情感消息,所述情感消息生成模型如本公开实施例第一方面实施例任一项所述的训练方法训练得到。
34.本公开实施例的第三方面提出了一种模型的训练装置,用于训练情感消息生成模型,包括:
35.第一获取模块:用于获取对话数据集;
36.预处理模块:用于对所述对话数据集进行预处理,得到初步数据集;
37.标注模块:用于通过预设的情感分类器对所述初步数据集进行情感标注处理,得到初步情感标签;
38.输入模块:用于将所述初步数据集和所述初步情感标签输入至预设的神经网络模型;其中,所述神经网络模型包括第一神经网络和第二神经网络;
39.编码模块:用于通过所述第一神经网络对所述初步数据集和所述初步情感标签进行初步编码处理,得到初步编码向量;
40.解码模块:用于通过所述第二神经网络对所述初步编码向量进行解码处理,得到目标情感消息;
41.训练模块:用于根据所述目标情感消息对所述神经网络模型进行训练处理,得到情感消息生成模型。
42.本公开实施例的第四方面提出了一种情感消息生成装置,用于生成目标情感消息,包括:
43.第二获取模块:用于获取原始问题消息;
44.消息生成模块:用于将所述原始问题消息输入至情感消息生成模型进行消息生成处理,得到目标情感消息;所述情感消息生成模型如本公开实施例第一方面实施例任一项所述的训练方法训练得到。
45.本公开实施例的第五方面提出了一种计算机设备,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本公开实施例第一方面实施例任一项所述的方法或如本公开实施例第二方面实施例任一项所述的方法。
46.本公开实施例的第六方面提出了一种存储介质,该存储介质为计算机可读存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本公开实施例第一方面实施例任一项所述的方法或如本公开实施例第二方面实施例任一项所述的方法。
47.本公开实施例提出的模型的训练方法、情感消息生成方法和装置、设备、介质,通过获取对话数据集;对对话数据集进行预处理,得到初步数据集;通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;将初步数据集和初步情感标签输入至预设的神经网络模型;其中,神经网络模型包括第一神经网络和第二神经网络;通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量;通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。本公开实施例通过进行情感标注处理的数据集训练初步情感标签,并通过情感回复的多样性需求对神经网络模型进行初步编码和解码处理,以训练得到情感生成模型,使情感生成模型能够针对问题消息生成不同情感的目标情感消息。
附图说明
48.图1是本公开实施例提供的模型的训练方法的流程图;
49.图2是图1中的步骤s150的流程图;
50.图3是图1中的步骤s160的流程图;
51.图4是图3中的步骤s163的流程图;
52.图5是图1中的步骤s170的流程图;
53.图6是本公开实施例提供的情感消息生成方法的流程图;
54.图7是本公开实施例提供的模型的训练装置的模块结构框图;
55.图8是本公开实施例提供的情感消息生成装置的模块结构框图;
56.图9是本公开实施例提供的计算机设备的硬件结构示意图。
具体实施方式
57.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
58.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
59.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
60.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
61.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
62.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
63.首先,对本技术中涉及的若干名词进行解析:
64.人工智能(artificial intelligence,ai):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
65.循环神经网络(recurrent neural network,rnn):rnn是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network),其中双向循环神经网络(bidirectional rnn,bi-rnn)和长短期记忆网络(long short-term memory networks,lstm)是常见的循环神经网络。循环神经网络具有记忆性、参数共享并且图灵完备(turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。循环神经网络在自然语言处理(natural language processing,nlp),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(convolutional neural network,cnn)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
66.门控循环单元(gate recurrent unit,gru):gru是循环神经网络(rnn)中的一种门控机制,与其他门控机制相似,其旨在解决标准rnn中的梯度消失/爆炸问题并同时保留序列的长期信息。gru在许多诸如语音识别的序列任务上与lstm同样出色,不过它的参数比lstm少,仅包含一个重置门(reset gate)和一个更新门(update gate)。
67.编码(encoder):编码,就是将输入序列转化成一个固定长度的向量;解码(decoder),就是将之前生成的固定向量再转化成输出序列;其中,输入序列可以是文字、语音、图像、视频;输出序列可以是文字、图像。
68.编码器-解码器(encoder-decoder):encoder-decoder是深度学习中常见的模型框架,很多常见的应用都是利用编码-解码框架设计的,encoder和decoder部分可以是任意文字、语音、图像和视频数据等,基于encoder-decoder可以设计出各种各样的模型。
69.hanlp:是一系列模型与算法组成的nlp工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。hanlp主要功能包括分词、词性标注、关键词提取、自动摘要、依存句法分析、命名实体识别、短语提取、拼音转换、简繁转换等等。
70.jieba分词器:jieba分词器也叫结巴分词器,是一种开源分词器;中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自然语言处理时,通常需要先进行分词,其中,常用jieba分词器进行分词;jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(dag),再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的hmm模型,使用了viterbi算法。jieba分词支持三种分词模式:第一种是精确模式,该精确模式试图将句子最精确地切开,适合文本分析:第二种是全模式,该全模式是把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;第三种是搜索引擎模式,该搜索引擎模式是在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
71.analyzer分词器:analyzer分词器是专门处理分词的组件,一般包括三部分:character filters、tokenizer(按照规则切分为单词)、token filters;其中,character filters主要用于处理原始文本,例如去除html、特殊字符;tokenizer用于按照规则切分为单词;token filters用于将切分的单词加工,包括小写、删除stopwords(停用词),增加同义词等。
72.bert(bidirectional encoder representation from transformers)模型:bert模型进一步增加词向量模型泛化能力,充分描述字符级、词级、句子级甚至句间关系特征,基于transformer构建而成。bert中有三种embedding,即token embedding,segment embedding,position embedding;其中token embeddings是词向量,第一个单词是cls标志,可以用于之后的分类任务;segment embeddings用来区别两种句子,因为预训练不光做lm还要做以两个句子为输入的分类任务;position embeddings,这里的位置词向量不是transfor中的三角函数,而是bert经过训练学到的。但bert直接训练一个position embedding来保留位置信息,每个位置随机初始化一个向量,加入模型训练,最后就得到一个包含位置信息的embedding,最后这个position embedding和word embedding的结合方式上,bert选择直接拼接。
73.softmax分类器:softmax分类器为逻辑回归分类器面对多个分类的一般化归纳,
输出的是属于不同类别的概率值。
74.反向传播:反向传播的大致原理为,将训练集数据输入到神经网络的输入层,经过神经网络的隐藏层,最后达到神经网络的输出层并输出结果;由于神经网络的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
75.梯度下降(gradient descent):gradient descent是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果需要求解损失函数的最大值,这时就需要用梯度上升法来迭代。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
76.激活函数(activation functions):激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中,在神经元中,输入的inputs通过加权,求和后,还被作用了一个函数,这个函数就是激活函数,引入激活函数是为了增加神经网络模型的非线性。
77.随着人工智能技术的发展,聊天机器人的使用率也逐渐提升,其中聊天机器人能够根据用户输入的问题消息自动生成相应的应答消息。目前的聊天机器人主要是通过参照上一轮对话的情感特征,生成与之对应情感的情感消息。但是,由于聊天机器人只能固定的情感特征,这一方式往往使得生成的情感消息始终只有一种情感。
78.基于此,本公开实施例提出一种模型的训练方法、情感消息生成方法和装置、设备、介质,通过获取对话数据集;对对话数据集进行预处理,得到初步数据集;通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;将初步数据集和初步情感标签输入至预设的神经网络模型;其中,神经网络模型包括第一神经网络和第二神经网络;通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量;通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。本公开实施例通过进行情感标注处理的数据集训练初步情感标签,并通过情感回复的多样性需求对神经网络模型进行初步编码和解码处理,以训练得到情感生成模型,使情感生成模型能够针对问题消息生成不同情感的目标情感消息。
79.本公开实施例提供模型的训练方法、情感消息生成方法和装置、计算机设备、存储介质,具体通过如下实施例进行说明,首先描述本公开实施例中的模型的训练方法。
80.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
81.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机
视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
82.本公开实施例提供的模型的训练方法,涉及人工智能领域。本公开实施例提供的模型的训练方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现模型的训练方法的应用等,但并不局限于以上形式。
83.本公开实施例可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
84.参照图1,根据本公开实施例第一方面实施例的模型的训练方法,包括但不限于包括步骤s110至步骤s170。
85.步骤s110,获取对话数据集;
86.步骤s120,对对话数据集进行预处理,得到初步数据集;
87.步骤s130,通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;
88.步骤s140,将初步数据集和初步情感标签输入至预设的神经网络模型;
89.步骤s150,通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量;
90.步骤s160,通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;
91.步骤s170,根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。
92.在一些实施例的步骤s110中,获取对话数据集,在实际应用中,对话数据集可通过对各类社交网络中进行收集得到,其中,对话数据集可包含中英文,对话数据集包括多句对话。
93.在一些实施例的步骤s120中,将对话数据集进行预处理,得到初步数据集,由于一开始收集到的对话数据集还不符合模型训练的要求,所以在将对话数据集输入至神经网络模型之前,需要将对话数据集进行数据清洗,得到符合模型训练要求的初步数据集。
94.在一些实施例中,将对话数据集进行预处理的过程如下,需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
95.步骤一:将对话数据集中的繁体字转换成简体字。
96.步骤二:通过预设的正则表达式过滤掉对话数据集中的一些特殊字符,例如“#”、“¥”、“@”和“&”等。
97.步骤三:将对话数据集中的全角标点符号转换成半角标点符号。
98.步骤四:将对话数据中超过预设个数的重叠字进行折叠,例如将“哈哈哈哈哈哈”折叠成“哈哈”。
99.步骤五:过滤掉对话数据集中的表情以及颜文字符号。
100.其中,步骤二、步骤三、步骤四和步骤五最好按照以上顺序执行,如果顺序打乱,则可能影响对话数据集的表达程度。对话数据集经过预处理之后,形成初步数据集,其中,初步数据集包括多条对话,每一条对话都包含问题(post)和回复(response),以形成pair对。
101.在一些实施例的步骤s130中,通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签。其中,预设的情感分类器是已经训练好的多类别分类器,用于对初步数据集进行情感分类,并根据情感分类的类型对初步数据集进行标注处理,得到初步情感标签。例如,初步数据集中某条对话数据为“保持微笑,事情总会变得越来越好的”,通过初步情感标签可将其分类为“开心”,也即该对话数据的初步情感标签,并对该对话数据进行情感标注,用于后续对神经网络模型进行训练。经过情感分类器对初步数据进行情感标注处理后,初步数据集的每一条对话都包含post、response以及对应的初步情感标签,以形成pair对。
102.在一些实施例中,情感分类器对初步数据集进行情感分类的的过程如下,需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
103.步骤一:对初步数据集进行分词,得到多个分词数据。
104.步骤二:将分词数据输入至bert模型进行编码得到对应的分词向量。其中,该bert模型并不是传统的bert模型,而是经过预先训练后得到的,并且使用nlpcc2013情感分类语料集和nlpcc2014情感分类语料集对数据进行微调,以此对bert模型进行进一步的训练。
105.步骤三:将所有的分词向量进行向量拼接,得到一个拼接向量。
106.步骤四:将拼接向量输入至一个前馈神经网络后,使用softmax激活函数进行多类别分类,得到对应的初步情感标签。
107.在一些实施例的步骤s140中,将初步数据集和初步情感标签输入至预设的神经网络模型。其中,神经网络模型包括第一神经网络和第二神经网络。
108.在一些实施例的步骤s150中,通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量。
109.在一些实施例的步骤s160中,通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息,其中,目标情感消息为多条不同情感类型的应答消息。
110.在一些实施例的步骤s170中,根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型,训练好的情感消息生成模型能够在给定问题时,生成多种情感的应答消息。
111.在一些实施例中,初步编码向量包括分词编码向量和情感标签向量,如图2所示,步骤s150具体包括但不限于步骤s151至步骤s153。
112.步骤s151,对初步数据集进行分词处理,得到至少两个分词数据;
113.步骤s152,将每一分词数据输入至第一神经网络进行第一编码处理,得到至少两
个分词编码向量;
114.步骤s153,将初步情感标签输入至第一神经网络进行第二编码处理,得到情感标签向量。
115.在一些实施例的步骤s151中,对初步数据集进行分词处理,得到多个分词数据。换句话说,需要将初步数据集的句子准确切割为一个个词语,即句子的自动分词。在实际应用中,可以利用hanlp分词工具、analyzer分词器和jieba分词器等分词工具给初步数据集,更进一步地,是对初步数据集中的post进行分词。具体地,利用jieba分词器对原始文本数据进行分词的原理为:首先,加载预先存储的字典,生成树。接着,给定待分词的句子(原始文本数据中的每个句子),使用正则表达式获取连续的中文字符和英文字符,切分成短语列表,对每个短语使用dag(查字典)和动态规划,得到最大概率路径,对dag中那些没有在字典中查到的字,组合成一个新的片段短语,使用hmm模型(隐马尔科夫模型)进行分词,即识别字典外的新词。例如,对“保持微笑,事情总会变得越来越好的”进行分词而得到的多个分词数据,可以为“保持/微笑/事情/总会/变得/越来越好/的”。
116.在一些实施例的步骤s152中,将多个分词数据输入至第一神经网络进行第一编码处理,得到多个分词编码向量。具体地,将每个分词数据按照顺序逐一输入第一神经网络进行编码。需要说明的是,在实际应用中,第一神经网络即编码器使用的是gru。
117.在一些实施例的步骤s153中,为了能够在解码过程中生成不同情感的目标情感消息,在编码过程中还需要将初步情感标签输入到第一神经网络进行编码。
118.在一些实施例中,如图3所示,步骤s160具体包括但不限于步骤s161至步骤s163。
119.步骤s161,获取预先训练好的多个参考情感标签;
120.步骤s162,将分词编码向量和情感标签向量输入至第二神经网络,以使第二神经网络根据参考情感标签对分词编码向量进行解码处理及对情感标签向量进行解码处理,得到对应参考情感标签的多个初步分词;
121.步骤s163,根据多个初步分词,得到目标情感消息。
122.在一些实施例的步骤s161中,获取预先训练好的多个参考情感标签。其中,参考情感标签包括但不限于生气、厌恶、开心、喜欢和难过。
123.在实际应用中,为了训练初步情感标签,可以随机初始化一个情感矩阵,例如6
×
256的情感矩阵,其中,6代表了6个不同情感类别,256是每一个情感类别的特征向量维度。在初始化情感矩阵之后,使用梯度下降和误差反转的方法对情感矩阵中的参数进行训练,在情感消息生成模型生成的时候,会根据训练好的6个情感特征分别生成对应的情感回复,所以达到了输入一句话,输出六句不同情感回复的目的。
124.在一些实施例的步骤s162中,将分词编码向量和情感标签向量输入至第二神经网络,以使第二神经网络根据参考情感标签对分词编码向量进行解码,并对情感标签向量进行解码,得到对应参考情感标签的多个初步分词。需要说明的是,在实际应用中,第二神经网络即解码器使用的是gru。
125.具体地,第二神经网络的输入有:第一神经网络编码后的得到的分词编码向量(或者第二神经网络在隐藏层的状态输出)、预设的注意力机制向量和上一时刻生成的初步分词的词向量和第一神经网络编码后得到的情感标签向量,通过获取第二神经网络输出的动态的情感标签向量,即动态情感向量,能够生成不同情感的目标情感消息。其中,在第二神
经网络中,每一层得到的隐藏层状态输出如公式(1)所示,用于传递动态情感向量:
126.s
t
=gru(s
t-1
,[c
t
;e(y
t-1
);ve])
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0127]
其中,s
t-1
为解码时第一时刻t为编码器的输出,s
t
为第二时刻t 1及之后所有时刻时为解码器前一时刻的隐藏层状态输出。中括号代表了情感信息向量ve,注意力机制的特征(自注意力机制向量)c
t
,以及上一时刻生成的词向量e(y
t-1
)。
[0128]
在一些实施例中,动量门控是第二神经网络在解码时使用的,本公开实施例的动量门控使用sigmoid激活函数,包括重置门和更新门两个门,其中重置门可表示为gr:read gate,更新门可表示为gw:write gate。重置门的计算过程是把上一时刻生成的词向量,上一时刻隐藏层的状态向量s
t-1
,当前注意力机制向量三者拼接起来,和w进行相乘,再经过sigmoid激活函数,得到重置门的值。将重置门的值与动态情感向量矩阵进行同位相乘,算出当前时刻的动态情感向量。再拼接上注意力机制向量c
t
,上一时刻生成词的词向量e(y
t-1
)形成新的向量,与上一时刻隐藏层的状态向量s
t-1
一起输入进gru,得到当前时刻隐藏层状态向量s
t
。把s
t
与另一个w相乘,算出更新门的值。再把更新门的值与上一时刻的动态情感向量同位相乘得到下一时刻的动态情感向量,由此完成解码而生成多个初步分词的过程,也完成情感动量在生成词的过程中每一时刻的传递。
[0129]
需要说明的是,w为可训练的参数权重矩阵,上述提到的两个w性质相同,但是包含的数值不同。w泛指所有的学习矩阵,该矩阵里全是浮点数,刚开始的数值都是随机的,通过训练神经网络模型,使用剃度下降误差反向传播的方法去更新里面的数值,达到训练的效果。
[0130]
具体地,t时刻的重置门的值由下列公式(2)进行求解得到:
[0131][0132]
其中,表示t时刻重置门的值,表示可训练的参数权重矩阵,s
t
表示t时刻的gru单元中隐藏层的状态输出。
[0133]
具体地,t 1时刻的情感动态向量通过公式(3)得到:
[0134][0135]
其中,表示t 1时刻的情感动态向量,表示t时刻的情感动态向量,表示t时刻重置门的值。
[0136]
具体地,t时刻的gru单元中隐藏层的状态输出通过公式(4)得到:
[0137][0138]
其中,s
t
表示t时刻的gru单元中隐藏层的状态输出,c
t
表示注意力机制向量,e(y
t-1
)表示t-1时刻生成分词的词向量,表示t时刻的情感动态向量。
[0139]
需要说明的是,本技术实施例在情感标签信息中使用了动量门控技术。一般技术都是在每次回复句子中词语生成的时候,使用固定的情感信息特征。但句子表达中,词与词之间包含的情感信息是不同的,所以动量门控能够达到区分情感的特点。同时,每个情感类别e都有一个内部情绪状态。在每一步,情绪状态都会衰减一定量。一旦解码完成,情绪状态量应该衰减到0,表示情感是被完全表达的。
[0140]
在一些实施例的步骤s163中,根据多个初步分词,得到目标情感消息。具体地,对
每一参考情感标签对应的多个初步分词进行组合,得到目标情感消息。
[0141]
在一些实施例中,如图4所示,步骤s163具体包括但不限于步骤s1631至步骤s1636。
[0142]
步骤s1631,获取预设分词类别;
[0143]
步骤s1632,根据预设分词类别对初步分词进行类别划分,得到初步分词的词类别和标量权重;
[0144]
步骤s1633,将初步分词输入至预设的分词分类器进行分类处理,得到分词概率;
[0145]
步骤s1634,根据标量权重和分词概率进行概率计算,得到生成概率;
[0146]
步骤s1635,获取最大的生成概率所对应的初步分词,作为目标分词;
[0147]
步骤s1636,根据目标分词,得到目标情感消息。
[0148]
在一些实施例的步骤s1631中,获取预设分词类别。预设分词类别包括情绪词和普通词,其中,情绪词包括形容词和副词等,普通词包括名词和助词等。本公开实施例通过给情绪词和普通词分配不同的产生概率,使神经网络模型能够产生更明确的情感表达。其中,对于每个预设分词类别,都设置有不同的标量权重α,其中标量权重α∈[0,1],对于情绪词的标量权重会设置得高一些,对于普通词的标量权重会设置得低一些,目的是为了使神经网络模型生成的目标情感消息更加具备浓厚的情绪或者陈述表达。通过设置标量权重能够均衡考虑初步分词中的情感词和普通词,以生成最终的目标分词。
[0149]
在一些实施例的步骤s1632中,根据预设分词类别对初步分词进行类别划分,得到初步分词的词类别和标量权重,换句话说,要判断初步分词是情绪词还是普通词,以此给初步分词分配对应的标量权重。
[0150]
在一些实施例的步骤s1633中,将初步分词输入至预设的分词分类器进行分类处理,得到分词概率。具体地,在通过第二神经网络生成初步分词时,会同时对两个不同类型的初步分词使用softmax分类器或者softmax函数,计算这两个初步分词的分词概率。
[0151]
在一些实施例的步骤s1634中,根据标量权重和分词概率进行概率计算,得到生成概率。具体地,将步骤s1635中计算得到的每个分词概率与对应的标量权重α相乘,最终计算得出初步分词的生成概率。
[0152]
在一些实施例的步骤s1635和步骤s1636中,选取生成概率最大的初步分词,作为目标分词。确定同一类情感对应的目标分词之后,将所有的目标分词进行组合,生成目标情感消息。
[0153]
在一些实施例中,第二神经网络包括多层门控循环单元,如图5所示,步骤s170具体包括但不限于步骤s171至步骤s173。
[0154]
步骤s171,根据情感标签向量、目标情感消息和预设的注意力机制向量,对每一层的门控循环单元的隐藏状态向量进行情感约束处理,得到多个目标情感向量;
[0155]
步骤s172,根据多个目标情感向量对神经网络模型的损失函数进行计算,得到目标损失值;
[0156]
步骤s173,使用反向传播算法最小化目标损失值,以更新神经网络模型的模型参数,得到情感消息生成模型。
[0157]
在一些实施例的步骤s171中,根据情感标签向量、目标情感消息和预设的注意力机制向量,对每一层的gru单元的隐藏状态向量进行情感约束处理,得到多个目标情感向
量,具体地,在第二神经网络进行解码的得到初步分词的过程中,还能够利用gru的特性,求出每一层的gru单元每个时刻的目标情感向量,即动态情感向量(可通过上述第二神经网络进行解码的步骤s162得到),依据这多个目标情感向量和初步数据集对应的情感信息作为参考信息,就能够在解码过程中生成不同情感的目标情感消息。
[0158]
在一些实施例的步骤s172和步骤s173中,根据多个目标情感向量对神经网络模型的损失函数,例如交叉熵损失函数等进行计算,得到目标损失值,并使用反向传播算法最小化目标损失值,以更新神经网络模型的模型参数,得到情感消息生成模型。
[0159]
本公开实施例提出的模型的训练方法,通过获取对话数据集;对对话数据集进行预处理,得到初步数据集;通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;将初步数据集和初步情感标签输入至预设的神经网络模型;其中,神经网络模型包括第一神经网络和第二神经网络;通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量;通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。本公开实施例通过进行情感标注处理的数据集训练初步情感标签,并通过情感回复的多样性需求对神经网络模型进行初步编码和解码处理,以训练得到情感生成模型,使情感生成模型能够针对问题消息生成不同情感的目标情感消息。
[0160]
参照图6,本公开实施例还提供一种情感消息生成方法,用于生成目标情感消息,包括:
[0161]
步骤s210,获取原始问题消息;
[0162]
步骤s220,将原始问题消息输入至情感消息生成模型进行消息生成处理,得到目标情感消息。
[0163]
在一些实施例的步骤s210中,获取原始问题消息,即需要进行应答的消息,例如“糟糕的一天,因为交通情况我迟到了”。
[0164]
在一些实施例的步骤s220中,将原始问题消息输入至情感消息生成模型进行消息生成处理,消息生成模型可根据不同情感生成不同的目标情感消息。其中,目标情感消息为应答情感消息,情感消息生成模型根据如本公开第一方面实施例任一项的训练方法训练得到。在实际应用中,根据原始问题消息“糟糕的一天,因为交通情况我迟到了”可生成的应答情感消息如下,喜欢类型的应答情感消息为:“我会永远支持你”,开心类型的应答情感消息为“保持微笑!事情将会变得越来越好”,伤心类型的应答情感消息为:“这真是太难过了”,厌恶类型的应答情感消息为:“有时候生活就是烂透了”,生气类型的应答消息为:“这交通真是太糟糕了”,能够实现输入一句话,生成不同情感的应答情感消息,满足情感回复的多样性需求。
[0165]
本公开实施例还提供一种模型的训练装置,用于训练情感消息生成模型,如图7所示,可以实现上述模型的训练方法,该训练装置包括:第一获取模块、预处理模块320、标注模块330、输入模块340、编码模块350、解码模块360和训练模块370,第一获取模块用于获取对话数据集;预处理模块320用于对对话数据集进行预处理,得到初步数据集;标注模块330用于通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;输入模块340用于将初步数据集和初步情感标签输入至预设的神经网络模型;其中,神经网络模型包括第一神经网络和第二神经网络;编码模块350用于通过第一神经网络对初步数据集和
初步情感标签进行初步编码处理,得到初步编码向量;解码模块360用于通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;训练模块370用于根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。
[0166]
本公开实施例的模型的训练装置用于执行上述实施例中的模型的训练方法,其具体处理过程与上述实施例中的模型的训练方法相同,此处不再一一赘述。
[0167]
本公开实施例还提供一种情感消息生成装置,用于生成目标情感消息,如图8所示,可以实现上述情感消息生成方法,该情感消息生成装置包括:第二获取模块410和消息生成模块420,其中,第二获取模块410用于获取原始问题消息;消息生成模块420用于将原始问题消息输入至情感消息生成模型进行消息生成处理,得到目标情感消息;情感消息生成模型根据如本公开第一方面实施例的训练方法训练得到。
[0168]
本公开实施例的情感消息生成装置用于执行上述实施例中的情感消息生成方法,其具体处理过程与上述实施例中的情感消息生成方法相同,此处不再一一赘述。
[0169]
本公开实施例还提供了一种计算机设备,包括:
[0170]
至少一个处理器,以及,
[0171]
与至少一个处理器通信连接的存储器;其中,
[0172]
存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如本公开实施例第一方面实施例的训练方法或如本公开实施例第二方面实施例中的情感消息生成方法。
[0173]
下面结合图9对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。
[0174]
处理器510,可以采用通用的cpu(central processin unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
[0175]
存储器520,可以采用rom(read only memory,只读存储器)、静态存储设备、动态存储设备或者ram(random access memory,随机存取存储器)等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行本公开实施例的模型的训练方法或者执行本公开实施例的情感消息生成方法;
[0176]
输入/输出接口530,用于实现信息输入及输出;
[0177]
通信接口540,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和
[0178]
总线550,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息;
[0179]
其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
[0180]
本公开实施例还提供一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行本公开实施例的模型的训练方法或者执行本公开实施例的情感消息生成方法。
[0181]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非
暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0182]
本公开实施例提出的模型的训练方法、情感消息生成方法和装置、设备、介质,通过获取对话数据集;对对话数据集进行预处理,得到初步数据集;通过预设的情感分类器对初步数据集进行情感标注处理,得到初步情感标签;将初步数据集和初步情感标签输入至预设的神经网络模型;其中,神经网络模型包括第一神经网络和第二神经网络;通过第一神经网络对初步数据集和初步情感标签进行初步编码处理,得到初步编码向量;通过第二神经网络对初步编码向量进行解码处理,得到目标情感消息;根据目标情感消息对神经网络模型进行训练处理,得到情感消息生成模型。本公开实施例通过进行情感标注处理的数据集训练初步情感标签,并通过情感回复的多样性需求对神经网络模型进行初步编码和解码处理,以训练得到情感生成模型,使情感生成模型能够针对问题消息生成不同情感的目标情感消息。
[0183]
本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
[0184]
本领域技术人员可以理解的是,图1、图2、图3、图4、图5和图6中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
[0185]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0186]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0187]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0188]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可
以是多个。
[0189]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0190]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0191]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0192]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
[0193]
以上参照附图说明了本公开实施例的优选实施例,并非因此局限本公开实施例的权利范围。本领域技术人员不脱离本公开实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本公开实施例的权利范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献