掌桥专利:专业的专利平台
掌桥专利
首页

文本情绪识别模型的训练方法、情绪识别方法及装置

文献发布时间:2024-04-18 20:02:18


文本情绪识别模型的训练方法、情绪识别方法及装置

技术领域

本申请涉及自然语言处理技术,尤其涉及一种文本情绪识别模型的训练方法、情绪识别方法及装置。

背景技术

自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理涉及自然语言,即人们日常使用的语言,与语言学研究密切;同时涉及计算机科学和数学、人工智能领域模型训练的重要技术。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。

文本情绪识别是自然语言处理的典型应用,相关技术训练机器学习模型通过有监督的方式来学习文本分类,但是无法从待识别文本中进行复杂的情绪类别以及情绪强度的识别,导致文本情绪识别模型的识别准确率不高。

发明内容

本申请实施例提供一种文本情绪识别模型的训练方法、情绪识别方法、装置、电子设备、计算机程序产品及计算机可读存储介质,能够准确识别文本中复杂的多种情绪类别以及每种情绪类别对应的情绪强度。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种文本情绪识别模型的训练方法,所述方法包括:

获取第一训练集,其中,所述第一训练集中的训练样本包括文本样本和所述文本样本的情绪标签,所述情绪标签包括所述文本样本的情绪类别和情绪强度;所述第一训练集中至少一个所述训练样本的所述情绪标签包括多个情绪类别;

对每个所述训练样本进行向量化处理,得到每个所述训练样本的文本向量,其中,所述训练样本的文本向量包括所述文本样本的文本样本向量、所述文本样本的情绪类别向量以及所述文本样本的情绪强度向量;

基于所述文本样本的所述文本样本向量和所述情绪类别向量,执行所述文本情绪识别模型的第一训练任务,其中,所述第一训练任务用于训练所述文本情绪识别模型识别所述文本样本所属的所述情绪类别;

基于所述文本样本的所述文本样本向量和所述情绪强度向量,执行所述文本情绪识别模型的第二训练任务,其中,所述第二训练任务用于训练所述文本情绪识别模型识别所述文本样本的所述情绪强度,训练后的所述文本情绪识别模型用于识别待处理文本的情绪类别和情绪强度。

本申请实施例提供一种基于文本情绪识别模型的情绪识别方法,所述文本情绪识别模型是上述的文本情绪识别模型的训练方法训练得到的,所述方法包括:

获取待识别文本;

提取所述待识别文本的文本向量;

基于所述待识别文本的文本向量调用所述文本情绪识别模型,得到所述待识别文本的情绪标签,其中,所述待识别文本的情绪标签包括所述待识别文本所属的情绪类别和情绪强度。

本申请实施例提供一种文本情绪识别模型的训练装置,所述装置包括:

第一获取模块,用于获取第一训练集,其中,所述第一训练集中的训练样本包括文本样本和所述文本样本的情绪标签,所述情绪标签包括所述文本样本的情绪类别和情绪强度;所述第一训练集中至少一个所述训练样本的所述情绪标签包括多个情绪类别;

数据映射模块,用于对每个所述训练样本进行向量化处理,得到每个所述训练样本的文本向量,其中,所述训练样本的文本向量包括所述文本样本的文本样本向量、所述文本样本的情绪类别向量以及所述文本样本的情绪强度向量;

第一训练模块,用于基于所述文本样本的所述文本样本向量和所述情绪类别向量,执行所述文本情绪识别模型的第一训练任务,其中,所述第一训练任务用于训练所述文本情绪识别模型识别所述文本样本所属的所述情绪类别;

第二训练模块,用于基于所述文本样本的所述文本样本向量和所述情绪强度向量,执行所述文本情绪识别模型的第二训练任务,其中,所述第二训练任务用于训练所述文本情绪识别模型识别所述文本样本的所述情绪强度,训练后的所述文本情绪识别模型用于识别待处理文本的情绪类别和情绪强度。

本申请实施例提供一种基于文本情绪识别模型的情绪识别装置,所述文本情绪识别模型是通过上述的文本情绪识别模型的训练方法训练得到的;所述装置包括:

第二获取模块,用于获取待识别文本;

向量提取模块,用于提取所述待识别文本的文本向量;

情绪识别模块,用于基于所述待识别文本的文本向量调用所述文本情绪识别模型,得到所述待识别文本的情绪标签,其中,所述待识别文本的情绪标签包括所述待识别文本所属的情绪类别和情绪强度。

本申请实施例提供一种电子设备,所述电子设备包括:

存储器,用于存储计算机可执行指令或者计算机程序;

处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本申请实施例提供的文本情绪识别模型的训练方法或者基于文本情绪识别模型的情绪识别方法。

本申请实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本申请实施例提供的文本情绪识别模型的训练方法或者基于文本情绪识别模型的情绪识别方法。

本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的文本情绪识别模型的训练方法或者基于文本情绪识别模型的情绪识别方法。

本申请实施例具有以下有益效果:

通过在训练集同时引入具有一个情绪标签的训练样本和同时具有多个情绪标签的训练样本,在基于文本样本的文本样本向量和情绪类别向量执行文本情绪识别模型的第一训练任务时,使得情绪识别模型不仅能够区分哪些样本具有单一的情绪类别,还是使情绪识别模型识别哪些样本具有多样化的情绪类别,从而可以准确识别文本样本中包含的所有情绪,避免处于微妙情绪差异的情绪混淆以使识别不清的问题,提升了文本情绪识别模型进行情绪识别的准确性和全面性;

将情感类别的识别与情感强度的识别的训练任务进行解耦,也就是在训练情绪识别模型能够识别准确情绪类别之后,才基于文本样本的文本样本向量和情绪强度向量训练文本情绪识别模型识别情绪强度,将文本情绪识别模型的训练任务逐步深入,相较于通过情绪类别向量和情绪强度向量同时训练文本情绪识别模型,显著降低了文本情绪识别模型的训练的复杂程度,从而提升文本情绪识别模型在训练过程中的训练效率和准确率。

附图说明

图1是本申请实施例提供的文本情绪识别模型的训练系统100的架构示意图;

图2A是本申请实施例提供的服务器200-1的结构示意图;

图2B是本申请实施例提供的服务器200-2的结构示意图;

图3A是本申请实施例提供的文本情绪识别模型的训练方法的第一流程示意图;

图3B是本申请实施例提供的文本情绪识别模型的训练方法的第二流程示意图;

图3C是本申请实施例提供的文本情绪识别模型的训练方法的第三流程示意图;

图3D是本申请实施例提供的文本情绪识别模型的训练方法的第四流程示意图;

图3E是本申请实施例提供的文本情绪识别模型的训练方法的第五流程示意图;

图3F是本申请实施例提供的文本情绪识别模型的训练方法的第六流程示意图;

图3G是本申请实施例提供的文本情绪识别模型的训练方法的第七流程示意图;

图3H是本申请实施例提供的文本情绪识别模型的训练方法的第八流程示意图;

图3I是本申请实施例提供的文本情绪识别模型的训练方法的第九流程示意图;

图3J是本申请实施例提供的文本情绪识别模型的训练方法的第十流程示意图;

图3K是本申请实施例提供的文本情绪识别模型的训练方法的第十一流程示意图;

图4是本申请实施例提供的基于文本情绪识别模型的情绪识别方法的流程示意图;

图5是本申请实施例提供的第一训练任务的结构示意图;

图6是本申请实施例提供的第二训练任务的结构示意图;

图7是本申请实施例提供的文本情绪识别模型的训练方法的训练框架图;

图8是本申请实施例提供的文本情绪识别模型的训练方法的应用原理图;

图9是本申请实施例提供的BERT的通用微调范式示意图;

图10是本申请实施例提供的BERT的结构示意图;

图11是本申请实施例提供的Transformer模块的结构示意图;

图12是本申请实施例提供的多头注意力机制的结构示意图;

图13是本申请实施例提供的BERT模型的通用词嵌入原理示意图;

图14是本申请实施例提供的使用文本情绪识别模型进行情绪识别的词嵌入原理示意图;

图15是本申请实施例提供的文本情绪识别模型的输出示意图;

图16是本申请实施例提供的情绪标签的结构示意图;

图17是本申请实施例提供的分类头的结构示意图;

图18是本申请实施例提供的文本情绪识别的应用示意图;

图19是本申请实施例提供的单个场次的情感走势图;

图20是本申请实施例提供的单集电视剧的情感走势图;

图21是本申请实施例提供的整部电视剧的情感走势图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。

除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)多标签分类,是一种机器学习任务,其中每个样本可以被分配多个标签。与传统的单标签分类任务不同,多标签分类任务的目标是为每个样本预测多个相关的标签。

2)情感强度,涉及到情感的强烈程度、情感的程度级别等,如喜包括:愉悦的心境、大喜、狂喜等轻度、中度、重度的状态。

3)文本多标签分类,输入是一段文本,输出是一组可能的标签。例如,在情感分析任务中,可以将文本分类为积极、消极或中性。

相关技术主要有两种情绪分类方法:第一种是基于大模型的标签扁平化分类,例如定义6类多标签情绪分类:爱、乐、惊、怒、恐、哀,情感值范围是(0,1,2,3),其中,0表示没有情绪、1表示情感强度弱、2表示情感强度中等、3表示情感强度强,对标签(1,0,2,0,0,3)展平,即每个标签采用4个0或1来表示4个情感强度,得到(0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1),然后用多标签二分类进行模型学习,其中,大模型不需要海量数据即可实现目标任务学习,故对于数据与训练效率非常友好;第二种是基于大模型的标签回归预测,例如定义6类多标签情绪分类:爱、乐、惊、怒、恐、哀,情感值范围是(0,1,2,3),0表示没有情绪、1表示情感强度弱、2表示情感强度中等、3表示情感强度强,对标签(1,0,2,0,0,3)中的每个标签数值除以3,得到0~1之内的标签分值,根据不同分值映射得到对应的具体情感标签及强度。

以上两种方法都强制学习一个分数,容易在训练数据上过拟合,却又无法解决情感标签间因相关性、容易混淆情况造成情绪浓度识别不准确的情感区分问题。情绪浓度是一个抽象概念,实际有些情绪是混杂的,如惊喜包括惊和喜,相关技术抛开了这种情绪的融合,让模型直接学习情绪浓度的数值,造成模型只知道结果(打分)不知道“过程”(对应的融合情绪),从而对情绪浓度打分错误导致在业务应用上错误频出。

基于以上分析,申请人发现相关技术的文本情绪识别模型的训练方法无法对于文本的多种情绪以及每种情绪的情绪强度进行准确地识别。

本申请实施例提供一种文本情绪识别模型的训练方法、情绪识别方法、装置、电子设备、计算机可读存储介质和计算机程序产品,能够准确识别文本中的所有情绪类别以及每种情绪类别的情绪强度,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑、台式计算机、机顶盒、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备、智能手机、智能音箱、智能手表、智能电视、车载终端、飞行器等各种类型的终端,也可以实施为服务器。下面,将说明电子设备实施为服务器时示例性应用。

参见图1,图1是本申请实施例提供的文本情绪识别模型的训练系统100的架构示意图,为实现支撑一个文本情绪识别模型的训练应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。

服务器200用于训练文本情绪识别模型;接收终端400发送的待识别文本,通过训练后的情绪识别模型识别待识别文本,识别结果包括待识别文本所属的至少一种情绪类别和对应的情绪强度。另外,针对待识别文本所属的每个情绪类别,识别结果还可以包括待识别文本在每个情绪类别下所属的情绪子类别。服务器200向终端400发送识别结果。终端400接收到识别结果后在图形界面410显示。

在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

参见图2A,图2A是本申请实施例提供的服务器200-1的结构示意图,服务器200-1是上述的服务器200用于训练文本情绪识别模型的一种实施方式,图2A所示的服务器200-1包括:至少一个处理器210、存储器230和至少一个网络接口220。服务器200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2A中将各种总线都标为总线系统240。

处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

存储器230可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器230可选地包括在物理位置上远离处理器210的一个或多个存储设备。

存储器230包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器230旨在包括任意适合类型的存储器。

在一些实施例中,存储器230能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统231,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块232,用于经由一个或多个(有线或无线)网络接口220到达其他电子设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;

在一些实施例中,本申请实施例提供的文本情绪识别模型的训练装置可以采用软件方式实现,图2A示出了存储在存储器230中的文本情绪识别模型的训练装置233,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块2331、数据映射模块2332、第一训练模块2333和第二训练模块2334,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

参见图2B,图2B是本申请实施例提供的服务器200-2的结构示意图,服务器200-2是上述的服务器200基于训练后的文本情绪识别模型进行文本情绪识别的一种实施方式,图2B所示的服务器200-2包括:至少一个处理器250、存储器270和至少一个网络接口260。服务器200-2中的各个组件通过总线系统280耦合在一起。

在一些实施例中,本申请实施例提供的基于文本情绪识别模型的情绪识别装置可以采用软件方式实现,图2B示出了存储在存储器270中的文本情绪识别模型的情绪识别装置273,其可以是程序和插件等形式的软件,包括以下软件模块:第二获取模块2731、向量提取模块2732和情绪识别模块2733,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在一些实施例中,服务器可以通过运行各种计算机可执行指令或计算机程序来实现本申请实施例提供的文本情绪识别模型的训练方法或者文本情绪识别模型的情绪识别方法。举例来说,计算机可执行指令可以是微程序级的命令、机器指令或软件指令。计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APPlication,APP)。总而言之,上述的计算机可执行指令可以是任意形式的指令,上述计算机程序可以是任意形式的应用程序、模块或插件。

将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的文本情绪识别模型的训练方法,其中,电子设备可以实施为服务器,也可以实施为终端。

参见图3A,图3A是本申请实施例提供的文本情绪识别模型的训练方法的第一流程示意图,该方法可以由电子设备执行,其中,电子设备可以是上述的服务器200-1,也可以是上述的终端400,将结合图3A示出的步骤进行说明。

在步骤101中,获取第一训练集,其中,第一训练集中的训练样本包括文本样本和文本样本的情绪标签,情绪标签包括文本样本的情绪类别和情绪强度;第一训练集中至少一个训练样本的情绪标签包括多个情绪类别。

在一些实施例中,第一训练集可以是单个情绪类别的训练样本与多个情绪类别的训练样本的混合,也可以全都是包含多个情绪类别的训练样本。

在一些实施例中,参见图3B,图3B是本申请实施例提供的文本情绪识别模型的训练方法的第二流程示意图。图3A的步骤101“获取第一训练集”可以通过图3B的步骤1011至步骤1014实现,以下具体说明。

在步骤1011中,获取预收集的第二训练集,其中,第二训练集包括文本样本和文本样本的情绪类别和情绪强度。

在步骤1012中,获取文本样本在情绪类别下的情绪子类别。

在一些实施例中,获取预设置的情绪映射表,其中,情绪映射表包括不同情绪类别、不同的情绪强度和不同的情绪子类别之间的映射关系,通过文本样本的情绪类别和情绪强度查询映射关系,得到文本样本在情绪类别下的情绪子类别。

示例的,如表1所示,表1体现了情绪类别、情绪强度与情绪子类别之间的映射关系。示出了多个情绪类别,即情绪类别1至情绪类别4。每个情绪类别都包括多个不同情绪强度的类别,就情绪类别4来说,包括具有情绪强度1的子类别1、具有情绪强度2的子类别2、具有情绪强度3的子类别3以及具有情绪强度4的子类别4。每个情绪类别中都包括一个无情绪强度的子类别,即子类别13。

表1

在一些实施例中,通过预训练的对话模型从多个预设的情绪子类别中识别出文本样本的情绪子类别。

示例的,除了使用情绪映射表获取文本样本的情绪子类别,还可以通过预训练的对话模型识别出文本样本的情绪子类别。例如:获取多个包含了情绪的文本,在每个文本上都标注该文本的情绪子类别作为标签,基于标注过的文本训练对话模型(ChatGPT,ChatGenerative Pre-trained Transformer),使得ChatGPT可以识别文本样本的情绪子类别。

在步骤1013中,通过文本样本的情绪类别、文本样本的情绪强度以及文本样本在情绪类别下的情绪子类别,构成文本样本的情绪标签。

示例的,训练样本的格式可以为:<文本样本,情绪标签>,其中,情绪标签的数据结构表示为:<情绪类别,情绪强度,情绪子类别>。

在步骤1014中,基于文本样本和情绪标签构成训练样本,并基于多个训练样本构成第一训练集。

在一些实施例中,在原本获取的第一训练集的基础上,添加了情绪子类别,以丰富情绪标签。

本申请实施例通过添加情绪子类别丰富情绪标签,相比于相关技术只能识别情绪的级别或强度,将抽象的情绪强度具象化,便于理解文本的更具体的子情绪子类别,提升了输出结果的语义可解释性。

继续参见图3A,在步骤102中,对每个训练样本进行向量化处理,得到每个训练样本的文本向量,其中,训练样本的文本向量包括文本样本的文本样本向量、文本样本的情绪类别向量以及文本样本的情绪强度向量。

在一些实施例中,参见图3C,图3C是本申请实施例提供的文本情绪识别模型的训练方法的第三流程示意图。图3A的步骤102“对每个训练样本进行向量化处理,得到每个训练样本的文本向量”,可以通过针对每个训练样本执行图3C的步骤1021至步骤1025实现,以下具体说明。

在步骤1021中,对训练样本进行分词处理,得到多个单词。

示例的,可以使用分词算法将训练样本进行分词处理。分词算法是指将训练样本切分成一个一个单独的词,例如:前向最大匹配法、后向最大匹配法、基于字符串匹配的分词方法、基于隐马尔可夫模型的分词算法等

在步骤1022中,将训练样本中的情绪标签替换为掩码标记。

在一些实施例中,由于情绪标签可以很明显地反映出训练样本的情绪状态,文本情绪识别模型在进行情绪识别时,很容易受到干扰,导致无法学习到其他的特征信息。为了避免这种情况发生,在模型训练阶段,需要将每个训练样本中的部分的情绪标签信息执行掩码处理,也即用Mask码对情绪标签信息进行部分地遮罩,使得文本情绪识别模型可以推断出被遮罩的部分。

通过本申请实施例,使得文本情绪识别模型在识别情绪时不依赖于情绪标签特征信息,而侧重于学习训练样本的语义特征,排除了情绪标签特征对文本情绪识别模型的干扰,提高了文本情绪识别模型的泛用性。

在步骤1023中,以多个单词中的每个单词为一个常规标记,将掩码标记以及多个单词分别对应的常规标记,按照在训练样本中的顺序依次连接,得到训练样本的标记序列,其中,标记序列的头部插入有开始标记。

在一些实施例中,当包括多个训练样本的内容分词时,可以引入标记序列,在标记序列的头部插入开始标记(CLS),在相邻的训练样本的内容分词之间插入分割标记(SEP)。

在步骤1024中,对标记序列进行词嵌入处理,得到训练样本分别对应的词嵌入向量序列和位置嵌入向量序列。

在一些实施例中,标记序列中包括关键词的常规标记,掩码标记以及插入的起始标记(CLS),通过调用Word2Vec词向量模型对标记序列中的这些标记进行词嵌入处理,构建词嵌入向量。

示例的,对于标记序列中的任意一个标记,可以通过Word2Vec模型处理后生成一个词嵌入向量,向量的维度根据标记序列中标记的数量而定。例如标记序列有N个标记,序列的长度即为N,基于标记所在的标记序列,生成每个标记对应的N维词嵌入向量,其中,词嵌入向量通过处理后的Word2Vec模型生成。

示例的,一个标记序列为“CLS I like apple”的第三个标记为“like”,则标记生成的词嵌入向量为E

在一些实施例中,每个标记在标记序列中都有固定的位置,按照每个标记在标记序列中的位置,将每个标记生成的词嵌入向量进行连接,从而得到训练样本对应的标记序列的词嵌入向量序列。

示例的,标记序列有N个标记,序列的长度即为N,基于每个标记所在的标记序列,生成每个标记对应的N维词嵌入向量。按照每个标记在标记序列中的固定位置,将N个标记生成的N为词向量进行连接,由此可以生成整个标记序列对应的一个N×N的词嵌入向量。例如,标记序列为“CLS I like apple“共有4个关键词,生成四个标记,则整个标记序列生成的词嵌入向量为“[E

在一些实施例中,由于标记序列中的每个标记(包括常规标记、掩码标记以及插入的起始标记)都有固定的位置,可以根据标记的位置分配序号,每个标记的序号表征标记在整个标记序列中的位置。再通过对标记序列中的每个标记的位置进行词嵌入处理,得到每个标记的位置嵌入向量,例如常规标记、掩码标记以及插入的起始标记的位置嵌入向量。

示例的,对于每个标记,同样用Word2Vec模型处理标记的位置序号,得到位置嵌入向量。例如某标记序列为“CLS I like apple”,其中,第二个标记为“I”的位置序号为2,此时通过词嵌入处理后得到的标记“I”的位置嵌入向量为“[0,E2,0,0]”。

在一些实施例中,由于每个标记在标记序列中都有对应的位置,按照每个标记在标记序列中的位置将每个标记生成的位置向量进行连接,从而得到训练样本对应的标记序列的词嵌入向量序列。

示例的,对于每个标记,同样用Word2Vec模型处理标记的位置序号,得到位置嵌入向量,同时其他标记的向量值都记作0。例如某标记序列为“CLS I like apple”,第二个标记为“I”的位置序号为2,此时通过词嵌入处理后得到的位置嵌入向量E2为“[0,2,0,0]”。此时按照位置对标记序列中的4个标记分别执行词嵌入处理后,将4个位置嵌入向量按照位置序号进行连接,得到训练样本对应的标记序列的位置嵌入向量序列为“[E1,E2,E3,E4]”。

在步骤1025中,基于词嵌入向量序列和位置嵌入向量序列进行融合处理,得到训练样本的文本向量。

在一些实施例中,词嵌入向量序列和位置嵌入向量序列都分别包括每个标记,且每个标记在两个序列中都有固定的位置,而且序列的长度是固定不变的,所以生成的词嵌入向量和位置嵌入向量的维度是相同的,故可以直接进行向量的加和,也即将每个标记对应的词嵌入向量和位置嵌入向量进行加和处理,将加和结果作为每个标记的嵌入向量表示。

对于每个标记生成的词嵌入向量和位置嵌入向量,都是根据标记在整个标记序列的位置依次生成的。而每个标记所在的标记序列长度是固定的,每个对应位置的标记生成的嵌入向量的维度也都是相同的,则可以将每个标记得到嵌入向量表示按照顺序依次进行连接,从而得到标记序列所对应的训练样本的文本向量。

示例的,某标记序列为“CLS I like apple”,通过执行词嵌入处理,得到词嵌入向量“[E

本申请实施例通过对训练样本的情绪标签进行随机掩码,增强了训练样本分词之间的上下文关系,使得文本情绪识别模型更倾向于学习到分词之间的语义特征,有助于提高文本情绪识别模型的识别准确率。

继续参见图3A,在步骤103中,基于文本样本的文本样本向量和情绪类别向量,执行文本情绪识别模型的第一训练任务,其中,第一训练任务用于训练文本情绪识别模型识别文本样本所属的情绪类别。

参见图5,图5是本申请实施例提供的第一训练任务的结构示意图,文本情绪识别模型包括:语言理解模型和第一分类器。参见图3D,图3D是本申请实施例提供的文本情绪识别模型的训练方法的第四流程示意图。图3A的步骤103“基于文本样本的文本样本向量和情绪类别向量,执行文本情绪识别模型的第一训练任务”可以通过图3D的步骤1031至步骤1034实现,以下具体说明。

在步骤1031中,基于文本样本的文本样本向量和情绪类别向量调用语言理解模型进行编码处理,得到第一融合向量。

在一些实施例中,通过调用语言理解模型的编码器,得到第一融合向量。编码器主要是为了把自然语言序列映射成为隐藏层,它是含有自然语言序列的数学表达。

在步骤1032中,基于第一融合向量调用第一分类器进行分类处理,得到情绪类别预测结果。

在一些实施例中,将第一融合向量输入第一分类器,通过调用第一分类器,得到文本样本的情绪类别预测结果,其中,情绪类别预测结果是指多个情绪类别的二分类预测结果,即为属于该情绪类别的预测概率,例如属于该情绪类别则预测概率为0,不属于该情绪类别则预测概率为1。

在步骤1033中,确定情绪类别预测结果和文本样本的情绪类别之间的第一损失,根据第一损失更新语言理解模型的参数和第一分类器的参数。

在一些实施例中,参见图3E,图3E是本申请实施例提供的文本情绪识别模型的训练方法的第五流程示意图。图3D的步骤1033“确定情绪类别预测结果和文本样本的情绪类别之间的第一损失”,可以通过针对多个情绪类别中的每个情绪类别执行图3E的步骤10331至步骤10332实现,以下具体说明。

在步骤10331中,确定文本样本的情绪类别的二分类预测结果与情绪类别的实际二分类结果之间的二分类损失。

文本样本的情绪类别的二分类预测结果,即为属于该情绪类别的预测概率,例如属于为0,不属于为1;情绪类别的实际二分类结果,即为属于该情绪类别的实际概率,例如属于该情绪类别则预测概率为0,不属于该情绪类别则预测概率为1。

作为步骤10331的示例,可以将训练集中的训练样本分为多个批次;针对每个批次中每个训练样本中的文本样本,执行以下操作:确定文本样本的情绪类别的二分类预测结果的第一对数;确定第一对数与文本样本的实际二分类结果的第一乘积;确定第一乘积与批次包括的训练样本的数量之间的第一比值,将第一比值作为文本样本的情绪类别的二分类预测结果与实际二分类结果之间的二分类损失。

在步骤10332中,确定每个情绪类别的二分类损失的加和,以作为预测情绪类别和文本样本的情绪类别之间的第一损失。

在一些实施例中,如果有多种情绪类别,在计算每个情绪类别的二分类损失后,需要将所有情绪类别的二分类损失求和,将求和结果作为第一损失。

示例的,若有三种情绪类别,分别为情绪类别1、情绪类别2和情绪类别3,经过上文的计算过程,情绪类别1的二分类损失为a1,情绪类别2的二分类损失为a2,情绪类别3的二分类损失为a3,则预测情绪类别和文本样本的情绪类别之间的第一损失为a1+a2+a3。

继续参见图3D,在步骤1034中,响应于语言理解模型收敛且第一分类器收敛,停止第一训练任务。

在一些实施例中,当第一损失趋于稳定,变化幅度一直在预设范围内,则认为语言理解模型和第一分类器都收敛,此时,停止第一训练任务。

示例的,预设范围为0~0.1,若第一损失本次计算与上一次计算的差值小于0.1,例如0.05,则认为语言理解模型和第一分类器都收敛。

本申请实施例通过对文本样本的每一种情绪类别都进行识别,当文本样本中包含多种情绪时,可以准确识别文本样本中包含的所有情绪,避免多种情绪混淆以使识别不清的情况,提升了情绪识别的准确性和全面性。

继续参见图3A,在步骤104中,基于文本样本的文本样本向量和情绪强度向量,执行文本情绪识别模型的第二训练任务,其中,第二训练任务用于训练文本情绪识别模型识别文本样本的情绪强度,训练后的文本情绪识别模型用于识别待处理文本的情绪类别和情绪强度。

如图5所示,文本情绪识别模型还包括编码器模型和第二分类器。参见图3F,图3F是本申请实施例提供的文本情绪识别模型的训练方法的第六流程示意图。图3A的步骤104“基于文本样本的文本样本向量和情绪强度向量,执行文本情绪识别模型的第二训练任务”可以通过图3F的步骤1041至步骤1043实现,以下具体说明。

在步骤1041中,基于文本样本的文本样本向量和情绪强度向量调用编码器模型进行编码处理,得到第二融合向量。

编码器的编码过程如同上述实施例中记载的第一融合向量的处理过程,这里不再重复说明。

在步骤1042中,基于第二融合向量调用第二分类器进行分类处理,得到情绪强度预测结果。

第二分类器的分类过程如同上述实施例中记载的第一分类器的分类过程,这里不再重复说明。

在步骤1043中,确定情绪强度预测结果和文本样本的情绪强度之间的第二损失,根据第二损失更新编码器模型的参数和第二分类器的参数。

在一些实施例中,将第二损失进行回传,从而计算编码器模型的参数和第二分类器的参数的梯度,根据梯度更新参数,其中,可以使用各种梯度下降算法计算梯度,以基于梯度更新参数(即原参数-学习率*梯度),例如可以通过自适应运动估计算法(ADAM,Adaptive Moment Estimation)计算梯度。

示例的,如图5所示,训练样本在向量化得到文本向量,将文本向量输入语言理解模型,文本向量的一部分用于执行第一训练任务,即先基于文本样本向量和情绪类别向量调用语言理解模型进行编码处理,得到第一融合向量,然后基于第一融合向量调用第一分类器进行分类处理,得到情绪类别预测结果;文本向量的另一部分用于执行第二训练任务,即基于文本样本向量和情绪强度向量调用编码器模型进行编码处理,得到第二融合向量,基于第二融合向量调用第二分类器进行分类处理,得到情绪强度预测结果。

在一些实施例中,文本样本的情绪标签还包括文本样本在情绪类别下的情绪子类别,每个情绪类别包括多个情绪子类别;训练样本的文本向量还包括情绪子类别的情绪子类别向量;相应地,步骤104还可以通过以下方式实现:基于文本样本的文本样本向量、情绪强度向量和情绪子类别向量,执行文本情绪识别模型的第二训练任务,其中,第二训练任务还用于在识别文本样本的情绪类别时,识别样本在情绪类别下的情绪子类别。

作为示例,参见图5,文本情绪识别模型还包括编码器模型、第二分类器和第三分类器;参见图3G,图3G是本申请实施例提供的文本情绪识别模型的训练方法的第七流程示意图。上述实施例中“基于文本样本的文本样本向量、情绪强度向量和情绪子类别向量,执行文本情绪识别模型的第二训练任务”可以通过图3G的步骤201至步骤206实现,以下具体说明。

在步骤201中,基于文本样本的文本样本向量、情绪强度向量和情绪子类别向量调用编码器模型进行编码处理,得到第三融合向量。

编码处理的过程如同上述实施例记载的调用语言理解模型进行编码处理从而得到第一融合向量的过程。

在步骤202中,基于第三融合向量调用第二分类器进行分类处理,得到情绪强度预测结果。

调用第二分类器进行分类处理的过程和上述步骤1042的分类过程相同。

在步骤203中,基于第三融合向量调用第三分类器进行分类处理,得到情绪子类别预测结果。

调用第三分类器进行分类处理的过程如同上述实施例记载的第二分类器的分类处理过程。

在步骤204中,确定情绪强度预测结果和文本样本的情绪强度之间的第二损失,以及确定情绪子类别预测结果和文本样本的情绪子类别之间的第三损失。

在一些实施例中,情绪强度预测结果包括文本样本对应多个情绪类别的预测情绪强度,文本样本的情绪强度包括文本样本对应多个情绪类别的实际情绪强度。

在一些实施例中,参见图3H,图3H是本申请实施例提供的文本情绪识别模型的训练方法的第八流程示意图。图3G的步骤204“确定情绪强度预测结果和文本样本的情绪强度之间的第二损失”,可以通过针对多个情绪类别中的每个情绪类别执行图3H的步骤2041A至步骤2042A实现,以下具体说明。

在步骤2041A中,确定文本样本对应情绪类别的预测情绪强度与对应情绪类别的实际情绪强度之间的情绪强度损失。

在一些实施例中,对于文本样本的每一个情绪类别,都需要计算该情绪类别的预测情绪强度与时机情绪强度之间的损失。

在一些实施例中,参见图3I,图3I是本申请实施例提供的文本情绪识别模型的训练方法的第九流程示意图。图3H的步骤2041A可以通过图3I的步骤2041A1至步骤2041A3实现,以下具体说明。

在步骤2041A1中,将训练集中的训练样本分为多个批次。

示例的,若训练集中有N条训练样本,每bs条训练样本作为一个批次,共N/bs个批次,每完成N/bs个批次表示完成一轮(epoch)迭代。

针对每个批次中的每个训练样本中的文本样本,执行步骤2041A2至步骤2041A3。

在步骤2041A2中,确定文本样本对应情绪类别的预测情绪强度与对应情绪类别的实际情绪强度的差值。

示例的,p[i]表示文本样本对应情绪类别的预测情绪强度,s[i]表示文本样本对应情绪类别的实际情绪强度,二者的差值为p[i]-s[i]。

在步骤2041A3中,确定差值的平方与批次包括的训练样本的数量之间的第二比值,将第二比值作为文本样本对应情绪类别的预测情绪强度与实际情绪强度之间的情绪强度损失。

示例的,p[i]表示文本样本对应情绪类别的预测情绪强度,s[i]表示文本样本对应情绪类别的实际情绪强度,二者的差值的平方为(p[i]-s[i])

继续参见图3H,在步骤2042A中,确定每个情绪类别的情绪强度损失的加和,以作为情绪强度预测结果和文本样本的情绪强度之间的第二损失。

在一些实施例中,情绪子类别预测结果包括文本样本对应多个情绪子类别的二分类预测结果。

在一些实施例中,参见图3J,图3J是本申请实施例提供的文本情绪识别模型的训练方法的第十流程示意图。图3G的步骤204“确定情绪子类别预测结果和文本样本的情绪子类别之间的第三损失”,可以通过针对多个情绪子类别中的每个情绪子类别执行图3J的步骤2041B至步骤2042B实现,以下具体说明。

在步骤2041B中,确定情绪子类别的二分类预测结果与文本样本的情绪子类别的实际二分类结果之间的子类别二分类损失。

在一些实施例中,对于文本样本的每一个情绪类别对应的情绪子类别,都需要计算该情绪子类别的二分类预测结果与实际二分类结果之间的子类别二分类损失。

在一些实施例中,文本样本的情绪子类别的二分类预测结果,即为属于该情绪子类别的预测概率,属于为0,不属于为1;情绪子类别的实际二分类结果,即为属于该情绪子类别的实际概率,属于该情绪类别则预测概率为0,不属于该情绪类别则预测概率为1。

在一些实施例中,参见图3K,图3K是本申请实施例提供的文本情绪识别模型的训练方法的第十一流程示意图。图3J的步骤2041B可以通过图3K的步骤2041B1至步骤2041B4实现,以下具体说明。

在步骤2041B1中,将训练集中的训练样本分为多个批次。

示例的,若训练集中有N条训练样本,每bs条训练样本作为一个批次,共N/bs个批次,每完成N/bs个批次表示完成一轮(epoch)迭代。

针对每个批次中的每个训练样本中的文本样本,执行步骤2041B2至步骤2041B4。

在步骤2041B2中,确定情绪子类别的二分类预测结果的第二对数,确定第二对数与情绪子类别的实际二分类结果的第二乘积。

示例的,p[i]若为情绪子类别的二分类预测结果,第二对数即为log(p[i]),若y[i]表示情绪子类别的实际二分类结果,那么第二乘积就可以表示为y[i]*log(p[i])。

在步骤2041B3中,确定第二乘积与批次包括的训练样本的数量之间的第三比值。

示例的,每个批次包括的训练样本的数量为bs,则第三比值为y[i]*log(p[i])与bs相除得到的商。

在步骤2041B4中,确定第三比值的相反数,将相反数作为情绪子类别的二分类预测结果与文本样本的情绪子类别的实际二分类结果之间的子类别二分类损失。

示例的,若第三比值为m,则第三比值的相反数为-m,即为情绪子类别的二分类预测结果与文本样本的情绪子类别的实际二分类结果之间的子类别二分类损失。

继续参见图3J,在步骤2042B中,确定每个情绪子类别的子类别二分类损失的加和,以作为情绪子类别预测结果和文本样本的情绪子类别之间的第三损失。

示例的,参见图6,图6是本申请实施例提供的第二训练任务的结构示意图。在图6中,训练样本在向量化得到文本向量,文本向量除了包含上述的文本样本向量、情绪类别向量、情绪强度向量之外,还包括情绪子类别向量,将文本向量输入语言理解模型,文本向量的一部分用于执行第一训练任务,即先基于文本样本向量和情绪类别向量调用语言理解模型进行编码处理,得到第一融合向量,然后基于第一融合向量调用第一分类器进行分类处理,得到情绪类别预测结果;文本向量的另一部分用于执行第二训练任务,即基于文本样本向量、情绪强度向量和情绪子类别向量调用编码器模型进行编码处理,得到第三融合向量,基于第三融合向量调用第二分类器进行分类处理,得到情绪强度预测结果,基于第三融合向量调用第三分类器进行分类处理,得到情绪子类别预测结果。

继续参见图3G,在步骤205中,对第一损失、第二损失以及第三损失进行加权求和,得到总损失。

示例的,若L

在步骤206中,基于总损失更新编码器模型的参数、第二分类器的参数和第三分类器的参数。

在一些实施例中,将总损失回传网络分别计算编码器模型的参数、第二分类器的参数和第三分类器的参数的梯度,根据各参数梯度,更新各参数,其中,可以使用各种梯度下降算法计算梯度,以基于梯度更新参数。

本申请实施例分别计算情绪类别、情绪强度以及情绪子类别各自的预测值与真实值之间的损失,并给与不同的权值,计算三者的总损失,以此来更新模型中的参数,从多个维度对模型进行优化,提升了文本情绪识别模型对于情绪识别的准确率。

参见图4,图4是本申请实施例提供的基于文本情绪识别模型的情绪识别方法的流程示意图,该方法可以由电子设备执行,其中,电子设备可以是上述的服务器200-2,也可以是上述的终端400,将结合图4示出的步骤进行说明。

在一些实施例中,文本情绪识别模型是通过上述的文本情绪识别模型的训练方法训练得到的。

在步骤401中,获取待识别文本。

在一些实施例中,待识别文本可以包含一种或多种情绪。

在步骤402中,提取待识别文本的文本向量。

在一些实施例中,可以基于词嵌入模型将待分类文本中的每一个单词表示为一个固定长度的向量,通过训练神经网络来学习每个单词的向量表示,将所有单词的向量拼接起来,即可得到待识别文本的文本向量。

在步骤403中,基于待识别文本的文本向量调用文本情绪识别模型,得到待识别文本的情绪标签,其中,待识别文本的情绪标签包括待识别文本所属的情绪类别和情绪强度。

在一些实施例中,待识别文本的情绪标签还包括:待识别文本在所属的情绪类别下的情绪子类别。

示例的,参见图6,通过语言理解模型和第一分类器可以得到待识别文本的情绪类别,通过编码器和第二分类器可以得到待识别文本的情绪强度,通过编码器和第三分类器可以得到待识别文本在所属的情绪类别下的情绪子类别。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

在对影视剧剧本进行情绪识别的场景中,需要知道男女主台词的情绪以及台词的情绪浓度(即情绪强度)。根据男女主台词的情感浓度可辅助剧本理解,例如某场戏当女主悲伤情绪的情绪浓度最高,则表示遇到了冲突或挫折事件,则该场是重点场次需要重点理解,又或该场可以产生影视剧预览等精彩短片。

剧本语句情绪识别任务需要对剧本中对话的语句进行情绪分类任务,但由于同类型的情绪有时候可能会混淆,例如喜和乐虽然都表示开心,但喜属于持久性的心境或情绪,乐属于短暂的心境或情绪,二者容易混淆,当两种情绪同时在情绪分级时出现,更容易出现情绪交错;例如信和坚分别表示信任和坚定,两者都包含自信但分属不同的方向,也可能会混淆。

同一个文本可能会包含多种情绪,需要利用语言理解模型的优势去学习语言模型本身不具备的对情绪分级进行判别的能力。基于此,本申请实施例针对剧本中对话的带混淆情绪浓度识别问题,通过设计一种文本情绪识别模型的训练方法,得到了一个基于层级标签的情绪分类体系,并基于该标签体系进行层级多标签排序学习的方法,首先拆分不同的标签进行分层学习,然后在具体的情绪层面进行情绪程度内部排序学习;另外为了提升不同情绪间的区分度,引入跨层级标签对比学习,提升标签分类效果,解决带混淆的多情绪浓度识别与应用的问题。

参见图7,图7是本申请实施例提供的文本情绪识别模型的训练方法的训练框架图。首先从剧本样本中抽取训练集;经过映射得到训练集中训练样本对应的文本向量;将文本向量输入基础模块,整个训练过程分为两阶段,第一阶段,基础模块只需要识别情绪类型得到基础情绪多标签(即文本样本的情绪类别),不具备分级能力;第二阶段,新增的浓度模块计算基础情绪的浓度得到基础情绪浓度(即文本样本的情绪强度)和高级情绪多标签(即情绪子类别)。从基础模块得到基础情绪多标签的过程中,输入不用包含高级情绪。

参见图8,图8是本申请实施例提供的文本情绪识别模型的训练方法的应用原理图。在图8中,对每个剧本的各场次浓度识别,得到总剧本情感浓度结果。其中,通过本申请实施例提供的文本情绪识别模型的训练方法训练得到的文本情绪识别模型,对各场次中对话的情绪浓度进行识别,并统计每场的总情绪浓度。由于一部剧有多个场次,每个场次由多人对话推进剧情,因此将各个场次的基本浓度汇总,作为总剧本的浓度。

对于一个来自剧本对话的语句,经过基础模块(即语言理解模型)产生基础情绪、经过浓度模块(即编码器)产生高级情绪以及情绪浓度。本申请实施例提供的文本情绪识别模型的训练方法的整体模块包括:1)数据收集:包括高级情绪产生;2)整体模型结构;3)整体训练方法。

如表2所示,每一种的情绪类别都有多个情绪浓度,其中,情绪分为正向和负向,下图中“乐”为正向情绪,则浓度得分为正数,“惊怨怒”为负向情绪,则浓度得分为负数。

表2

如表3所示,基础情绪的浓度和高级情绪是一一对应的,高级情绪是为了优化基础情绪的浓度预测方法。某一种高级情绪是可以通过多种基础情绪浓度进行计算后得到的,学习基础情绪的浓度和学习高级情绪是两个等价的任务,当有基础情绪浓度时,是一定可以得到高级情绪的;当学习好高级情绪时,也是可以更好地输入基础情绪浓度的。

表3

当文本的正向情绪浓度和负向情绪浓度相同时,需要看数据清洗后对于句子的判别是什么,在数据输入前会先通过语言模型(GPT,Generative Pre-Trained Transformer)判断文本的高级情绪是什么,可以输出多个高级情绪。

对于数据收集,预先收集一些剧本语句作为训练样本,并对其进行标注,例如:“是去旅游还是留学啊?你这行李箱陈设也太夸张了一点?”,根据表2标注为惊1。在情绪浓度中混淆的情绪很容易出现,如语句1:“数学作业还没做完,你居然在学习这门新语言”,语句2:“昨天才讲到西班牙语,你居然在学习这门语言”。在语言浓度方面:语句1表达了怒3+惊3,语句2表达了乐3+惊2。根据表3将基础情绪和情绪浓度映射为高级情绪,进而对上述语句1、2,从高级情绪来讲,语句1表达了盛怒、语句2表达了惊喜。而盛怒和惊喜都能对应到基础情绪和浓度。产生了映射后,需要根据训练样本中各句子对应的基础情绪及浓度,找到所对应的高级情绪。为了加快标注,可以引入ChatGPT,ChatGPT通过下列提示词产生高级情绪:“以下为某影视剧剧本某个人讲的话(昨天才讲到西班牙语,你居然在学习这门语言),请判断这句话表达了说话人的哪种情绪,从以下13种情绪中选择(%s)”,其中%s为表3中的具体高级情绪外加“无情绪”这一项。根据chatGPT输出得到高级情绪判断后,对该结果进行检查,纠正错误的情绪即可。

对于整体模型结构,模型结构分为五个模块:基础情绪模块、浓度模块、基础情绪多标签模块、高级情绪分类模块、基础情绪多浓度预测模块。基础情绪模块采用中文预训练模型(Chinese-BERT-wwm)。其中,BERT为一个开源语言模型,基于BERT形成了基于较大规模的语言数据进行预训练,然后在目标任务进行微调的文本学习任务范式。参见图9,图9是本申请实施例提供的BERT的通用微调范式示意图,其中,CLS为语句的类别,TOK1~N表示问题的描述(如根据提问“请根据以下句子给出说话人的情绪”在字典中的映射或得到的词嵌入(Embedding)),Sep用于区分任务提问和具体提问的内容,TOK1~M为需要回答问题的语句,输出C即为目标类别。

参见图10,图10是本申请实施例提供的BERT的结构示意图,其中包含从输入文本到产生E(E

参见图11,图11是本申请实施例提供的Transformer模块的结构示意图,其中模块701可以是编码器,而模块702为Transformer模块的解码器,所以一般Transformer模块可以是编码器和解码器的任意组合,由于本申请实施例提供的文本情绪识别模型的训练方法仅用到编码器,因此Transformer模块仅指代编码器。其中,多头注意力机制(Multi-headAttention)为自注意力模块,前馈神经网络(FeedForward)为中间层模块,Add&Norm表示残差连接和层归一化。Multi-head Attention模块作为一个通用工具已经集成到BERT中,直接一句话调用即可,如paddle库调用方法为:Multi-head Attention(embed_dim=config.hidden_size,num_heads=config.num_attention_heads,dropout=config.attention_probs_dropout_prob)。FeedForward模块由全连层+激活层(如tanh激活)组成。Add&Norm层的操作为先对上一层的输入(如FeedForward层或Multi-headAttention层)与本层输入求和,再根据和算层归一化:hidden_states=self.LayerNorm(hidden_states+input_tensor)。

示例的,参见图12,图12是本申请实施例提供的多头注意力机制的结构示意图,自注意力模型可以看作为在一个线性投影空间中建立输入向量中不同形式之间的交互关系。多头注意力就是在多个不同的投影空间中建立不同的投影信息。将输入矩阵,进行不同的投影,得到许多输出矩阵后,将其拼接在一起。从图12中可以看出值、键、查询是固定的单个值,而底部的线性层有3个,点乘注意力机制有3个,即3个多头;最后,将所有的单值连接在一起,然后顶部线性层转换变成一个和单头一样的输出值,类似于集成。多头和单头的区别在于复制多个单头,但权重系数肯定是不一样的;类比于一个神经网络模型与多个一样的神经网络模型,但由于初始化不一样,会导致权重不一样,最后进行结果集成。

参见图13,图13是本申请实施例提供的BERT模型的通用词嵌入原理示意图,其中,CLS为类别标签,输入包含类别标签和文本样本,词嵌入(Embedding)包括符号嵌入(TokenEmbedding)、片段嵌入(Segmentation Embedding)和位置嵌入(Position Embedding)。

参见图14,图14是本申请实施例提供的使用文本情绪识别模型进行情绪识别的词嵌入原理示意图。原始BERT为英文模型,本申请采用中文模型,在使用文本情绪识别模型进行情绪识别时,将片段嵌入设为零,只需要采用一个中文词典,通过Embedding一一映射列表把输入的中文文字转化为Embedding的一个字符。加号表示向量对应位置求和,该部分的Embedding映射结构采用开源预训练结果,不会在模型中被训练更新。

示例的,句子的输入映射到Embedding的过程是:首先,采用词典vocab.txt,把每个词映射到其对应的字典id(称为Token id);其次,为了能有规范的模型输入(使得可以响应长度不同的句子输入),采用Token=0作为补全到指定数量个Token(如77个);然后,把该字典id的Embedding作为该词的Embedding。预训练好的中文BERT有对应的中文词典,直接使用即可。

参见图15,图15是本申请实施例提供的文本情绪识别模型的输出示意图,输出包括文本样本和Classes,其中,Classes表示情绪标签。参见图16,图16是本申请实施例提供的情绪标签的结构示意图,其中,Classes由9个类别任务表示(9个输出数值):cls1~cls4表示基础情感多标签分类任务,即每个情感分别为一个二分类,例如“乐惊怨怒”四种情感的二分类表示是否有某种情绪;score1~score4表示前述4种情绪每种情绪的得分(即情绪强度);cls5表示高级情绪的类别(即情绪子类别),共有4*3+1=13种高级情绪。

情感浓度模块是在常规BERT模型上新增的模块,由2层Transformer编码层组成。BERT模型用于产生基础情感多标签分类结果,可以认为在BERT基础模型中已经知道了基础情感信息(包括同时有多个标签激活的高级情绪所需要的信息,如惊喜情绪时,基础感情输出为1100,四位标签分别表示是否存在乐惊怨怒,而“惊喜”包含惊和乐)。故在模型基础模块之后情感浓度模块则是从基础情感信息中进一步学习高级情感以及基础情感浓度。该模块输出有三个:cls1~4(值为0或1)为4基础情绪二分类预测(2个类别的概率),score1~4为4基础情绪的浓度分(即输出一个0~1之间的浮点数,该数以0(无情绪)、0~0.33(级别1)、0.33~0.66(级别2)、0.66~1(级别3)区分,分别表示无情绪、1级情绪、2级情绪、3级情绪),cls5为高级情绪的13种分类(即输出13个类别的概率)。三种输出需要9个分类头,分类头为全连层结构。

示例的,参见图17,图17是本申请实施例提供的分类头的结构示意图。如图17所示,其中,T1为图10最上面一层中的T1~TN中的一个,cls1~4采用基础模块最后一层的T1,而score1~4和cls5为情感浓度模块最后一层的T1,模块703为分类头,分类头包括基础分类预测头、基础浓度预测头以及高级分类预测头,其中,基础分类预测头用来预测图7中的基础情绪多标签输出,基础浓度预测头用来预测图7中的基础情绪浓度输出,高级分类预测头用来预测图7中的高级情绪多标签输出。

对于整体训练方法,首先进行参数初始化,对基础模块采用Chinese-BERT-wwm预训练模型,对于新的模块(即浓度模块)以及分类头采用0~1间高斯正态分布进行初始化;其次,设置学习参数,对基础分类采用lr=0.0005的学习率,通过随机优化方法(Adam)进行训练。对浓度模块以及分类头采用0.005的学习率,通过随机梯度下降(sGD,StochasticGradient Descent)方法进行训练,其中,学习率经过每10个epoch下降为原来的0.1倍,其中,一个epoch等于使用训练集中的全部样本训练一次的过程,当一个完整的数据集通过了神经网络一次并且返回了一次,即进行了一次正向传播和反向传播,这个过程称为一个epoch;然后,对所有模块以及分类头进行训练,对基础模块和基础分类预测头的所有参数进行微调。由于对整体学习任务是从原始Chinese-BERT-wwm模型中迁移到剧本情感分类,故需要慢慢训练保证不过快陷入模型的局部最佳却非全局最佳点,故采用低学习率Adam的方法;最后,当基础模块收敛后(持续n个epoch训练的平均损失没有下降则表示收敛),模型参数已经更适合进行情感浓度任务学习了,此时训练基础模块最后2层(对于具有12层的BERT,前10层参数不再更新)以及新增的浓度模块和三个预测头。为了避免情感的浓度细节破坏学到的整体剧本情感分类所需要信息,因此不会完全破坏掉基础模型训练好的参数,需要保持前面部分网络参数不变。

上述的参数微调具体过程为:对N条全量数据,每bs条数据作为一个批次,共N/bs个批次,每完成N/bs个批次表示完成一轮(epoch)迭代;每轮迭代处理一次全量样本,直到某epoch下平均epoch损失不再下降。其中,整个微调过程分为三部分,分别是:模型前向:每个批次训练按图7的过程把数据输入到对应模型模块中,得到3个任务的输出,即基础情绪多标签输出、基础情绪浓度输出以及高级情绪多标签输出(此为第二阶段,在第一阶段得到1个任务的输出,即基础情绪多标签输出),然后计算对应总损失;模型后向:总损失回传网络计算网络各参数梯度;模型参数更新:根据上述网络各参数梯度,更新各参数。

示例的,两个阶段的总损失分别是:如公式(1)所示,阶段一计算所有4个基础情感二分类识别的损失,每个基础情感都采用多标签损失L

L

L

多标签损失L

其中,b代表每个批次(batch)的样本数量。

当某个标签位真值为1时,下式加号左侧生效,即为:

当真值为0时,下式右侧生效,即为:

故可以学习到某个样本在所有标签下监督信息。

多分类损失Lclass:为多分类的交叉熵损失,如公式(6)所示,y表示样本标签,具备某情感时标签为1,负样本标签为0(不具备某情感-负的类别不算损失),p为预测为正标签的概率。

预测Lreg:为分数预测MSE损失,如公式(7)所示,计算预测分数和标注分数的差异。

参见图18,图18是本申请实施例提供的文本情绪识别的应用示意图。应用时首先从整个剧本获取到多个场次,每个场次都获取其中的对话部分,在图18中,共获取到5段对话。每段对话输入文本情绪识别模型中可以得到最终的情绪浓度分数输出,取所属情绪的分数作为该对话情感浓度,把5个分数求平均得到本场次平均情感浓度,积累所有场次得到全剧总情感浓度和平均情感浓度。5段对话的情感浓度分别为:无,无目标情绪最高分记为0;惊0.30(属于一级惊);怒0.93(三级怒);怒0.72(二级怒);怒0.21(一级怒)。然后计算得分平均值作为该场次的平均情感浓度。

场次情绪走势说明:对于某个句子,当只有1个情绪得分时(如怒0.26),选取该情绪的情绪向等级(则负1级);当有两个相同极向情绪(如都是正向)时,计算两个情绪得分之和(如0.1+0.2=0.3),并将该和进行映射得到情绪向等级(则正向1级);当有多个不同极向的情绪时(+x1、+x2、-x3,如0.23、0.34、-0.3),计算所有正向情绪与负向情绪之和(如计算和x1+x2-x3=0.27),并找到和所对应的情绪分级(正向1级),同样的,得到结果如果为负则表示最终为负向情绪。

按以上方式可以得到某场戏的情绪走向,如图18中剧本某场连续5句话均为单一情绪(乐0.23,惊0.56,怒0.90,怒0.51,怒0.43),得到乐1、惊2、怒3、怒2、怒1,如表4所示,表4体现了情感分类以及浓度计算情况。

表4

参见图19,图19是本申请实施例提供的单个场次的情感走势图。在图19中,横向坐标轴为对话的次序,纵向坐标轴为情感向等级,折线代表着情感向等级在5句话中的变化趋势。

参见图20,图20是本申请实施例提供的单集电视剧的情感走势图,横向坐标轴为单集电视剧包含的场次次序,纵向坐标轴为情感向等级,折线代表着情感向等级在10个场次中的变化趋势。对图18中场次中各句话情绪分取平均分作为场次情绪向得分,如图19中场次得分为-0.434,即负向1级。若该集有10个场次,一开始遇到挫折或困难,然后在困难得到解决时主角的情绪转悲为喜,到该集快结束时又遇到了挫折(为下一集埋下伏笔),从而可评价该集的转折是否足够多以及转折点是否安排合适(如从4~6均为正向,6开始直接跌到负向并从7~10一路挫折,如果需要愉快的观影,可以考虑正负情绪交替更密集,如场次情绪正负正负交替)。

参见图21,图21是本申请实施例提供的整部电视剧的情感走势图,横向坐标轴为电视剧包含的集数次序,纵向坐标轴为情感向等级,折线代表着情感向等级在每一集电视剧中的变化趋势。同样对某集所有场次的各句话情绪分取平均得到该集情绪向得分,对某部电视剧所有集情绪向得分作图,可以得到某电视剧的情绪走向。

本申请实施例通过上述的情绪浓度计算方式,可以根据某个剧本的强度,选择正向情绪强度最强的作为高甜、高燃场次,并把其对应的场次电视剧片段作为某集的快速预览片段,提升视频推荐点击率。另一方面也可以展示创作者自己作品的连续多场剧情情感浓度,以便检查情节安排是否合理(是否缺乏跌宕起伏——如一直是低浓度等)。

本申请实施例将抽象的情感强度概念转化用便于理解的情感子类别进行情感描述,并对情感强度和情感子类别联合建模,避免处于微妙情绪差异的情绪混淆。将不同难度的任务进行分层处理,允许文本情绪识别模型由简单任务到复杂任务的一步步深入,从而提升模型判断的准确率。在优化模型以及收集情绪强度的标注数据时,利用语言模型代替人工标注,大大提升数据标注效率,有利于模型进一步优化,提升了输出结果的语义可解释性。

下面继续说明本申请实施例提供的文本情绪识别模型的训练装置233的实施为软件模块的示例性结构,在一些实施例中,如图2A所示,存储在存储器230的文本情绪识别模型的训练装置233中的软件模块可以包括:

第一获取模块2331,用于获取第一训练集,其中,第一训练集中的训练样本包括文本样本和文本样本的情绪标签,情绪标签包括文本样本的情绪类别和情绪强度;第一训练集中至少一个训练样本的情绪标签包括多个情绪类别。

数据映射模块2332,用于对每个训练样本进行向量化处理,得到每个训练样本的文本向量,其中,训练样本的文本向量包括文本样本的文本样本向量、文本样本的情绪类别向量以及文本样本的情绪强度向量。

第一训练模块2333,用于基于文本样本的文本样本向量和情绪类别向量,执行文本情绪识别模型的第一训练任务,其中,第一训练任务用于训练文本情绪识别模型识别文本样本所属的情绪类别。

第二训练模块2334,用于基于文本样本的文本样本向量和情绪强度向量,执行文本情绪识别模型的第二训练任务,其中,第二训练任务用于训练文本情绪识别模型识别文本样本的情绪强度,训练后的文本情绪识别模型用于识别待处理文本的情绪类别和情绪强度。

在一些实施例中,第一获取模块2331,还用于获取预收集的第二训练集,其中,第二训练集包括文本样本和文本样本的情绪类别和情绪强度;获取文本样本在情绪类别下的情绪子类别;通过文本样本的情绪类别、文本样本的情绪强度以及文本样本在情绪类别下的情绪子类别,构成文本样本的情绪标签;基于文本样本和情绪标签构成训练样本,并基于多个训练样本构成第一训练集。

在一些实施例中,针对每个训练样本,数据映射模块2332,还用于对训练样本进行分词处理,得到多个单词;将训练样本中的情绪标签替换为掩码标记;以多个单词中的每个单词为一个常规标记,将掩码标记以及多个单词分别对应的常规标记,按照在训练样本中的顺序依次连接,得到训练样本的标记序列,其中,标记序列的头部插入有开始标记;对标记序列进行词嵌入处理,得到训练样本分别对应的词嵌入向量序列和位置嵌入向量序列;基于词嵌入向量序列和位置嵌入向量序列进行融合处理,得到训练样本的文本向量。

在一些实施例中,第一训练模块2333,还用于基于文本样本的文本样本向量和情绪类别向量调用语言理解模型进行编码处理,得到第一融合向量;基于第一融合向量调用第一分类器进行分类处理,得到情绪类别预测结果;确定情绪类别预测结果和文本样本的情绪类别之间的第一损失,根据第一损失更新语言理解模型的参数和第一分类器的参数;响应于语言理解模型收敛且第一分类器收敛,停止第一训练任务。

在一些实施例中,针对多个情绪类别中的每个情绪类别,第一训练模块2333,还用于确定文本样本的情绪类别的二分类预测结果与情绪类别的实际二分类结果之间的二分类损失;确定每个情绪类别的二分类损失的加和,以作为预测情绪类别和文本样本的情绪类别之间的第一损失。

在一些实施例中,第一训练模块2333,还用于将训练集中的训练样本分为多个批次;针对每个批次中每个训练样本中的文本样本,执行以下操作:确定文本样本的情绪类别的二分类预测结果的第一对数;确定第一对数与文本样本的实际二分类结果的第一乘积;确定第一乘积与批次包括的训练样本的数量之间的第一比值,将第一比值作为文本样本的情绪类别的二分类预测结果与实际二分类结果之间的二分类损失。

在一些实施例中,第二训练模块2334,还用于基于文本样本的文本样本向量、情绪强度向量和情绪子类别向量,执行文本情绪识别模型的第二训练任务,其中,第二训练任务还用于在识别文本样本的情绪类别时,识别样本在情绪类别下的情绪子类别。

在一些实施例中,第二训练模块2334,还用于基于文本样本的文本样本向量、情绪强度向量和情绪子类别向量调用编码器模型进行编码处理,得到第三融合向量;基于第三融合向量调用第二分类器进行分类处理,得到情绪强度预测结果;基于第三融合向量调用第三分类器进行分类处理,得到情绪子类别预测结果;确定情绪强度预测结果和文本样本的情绪强度之间的第二损失,以及确定情绪子类别预测结果和文本样本的情绪子类别之间的第三损失;对第一损失、第二损失以及第三损失进行加权求和,得到总损失;基于总损失更新编码器模型的参数、第二分类器的参数和第三分类器的参数。

在一些实施例中,第二训练模块2334,还用于针对多个情绪类别中的每个情绪类别,确定文本样本对应情绪类别的预测情绪强度与对应情绪类别的实际情绪强度之间的情绪强度损失;确定每个情绪类别的情绪强度损失的加和,以作为情绪强度预测结果和文本样本的情绪强度之间的第二损失。

在一些实施例中,第二训练模块2334,还用于将训练集中的训练样本分为多个批次;针对每个批次中的每个训练样本中的文本样本,执行以下操作:确定文本样本对应情绪类别的预测情绪强度与对应情绪类别的实际情绪强度的差值;确定差值的平方与批次包括的训练样本的数量之间的第二比值,将第二比值作为文本样本对应情绪类别的预测情绪强度与实际情绪强度之间的情绪强度损失。

在一些实施例中,第二训练模块2334,还用于针对多个情绪子类别中的每个情绪子类别,确定情绪子类别的二分类预测结果与文本样本的情绪子类别的实际二分类结果之间的子类别二分类损失;确定每个情绪子类别的子类别二分类损失的加和,以作为情绪子类别预测结果和文本样本的情绪子类别之间的第三损失。

在一些实施例中,第二训练模块2334,还用于将训练集中的训练样本分为多个批次;针对每个批次中的每个训练样本中的文本样本,执行以下操作:确定情绪子类别的二分类预测结果的第二对数,确定第二对数与情绪子类别的实际二分类结果的第二乘积;确定第二乘积与批次包括的训练样本的数量之间的第三比值;确定第三比值的相反数,将相反数作为情绪子类别的二分类预测结果与文本样本的情绪子类别的实际二分类结果之间的子类别二分类损失。

在一些实施例中,第二训练模块2334,还用于基于文本样本的文本样本向量和情绪强度向量调用编码器模型进行编码处理,得到第二融合向量;基于第二融合向量调用第二分类器进行分类处理,得到情绪强度预测结果;确定情绪强度预测结果和文本样本的情绪强度之间的第二损失,根据第二损失更新编码器模型的参数和第二分类器的参数。

下面继续说明本申请实施例提供的基于文本情绪识别模型的情绪识别装置273的实施为软件模块的示例性结构,在一些实施例中,如图2B所示,存储在存储器270的文本情绪识别模型的训练装置273中的软件模块可以包括:

第二获取模块2731,用于获取待识别文本。

向量提取模块2732,用于提取待识别文本的文本向量。

情绪识别模块2733,用于基于待识别文本的文本向量调用文本情绪识别模型,得到待识别文本的情绪标签,其中,待识别文本的情绪标签包括待识别文本所属的情绪类别和情绪强度。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的文本情绪识别模型的训练方法或者基于文本情绪识别模型的情绪识别方法。

本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的文本情绪识别模型的训练方法或者基于文本情绪识别模型的情绪识别方法,例如,如图3A示出的文本情绪识别模型的训练方法或者图4示出的基于文本情绪识别模型的情绪识别方法。

在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。

综上所述,通过本申请实施例将抽象的情感强度概念转化用便于理解的情感子类别进行情感描述,并对情感强度和情感子类别联合建模,避免处于微妙情绪差异的情绪混淆。将不同难度的任务进行分层处理,允许文本情绪识别模型由简单任务到复杂任务的一步步深入,从而提升模型判断的准确率。在优化模型以及收集情绪强度的标注数据时,利用语言模型代替人工标注,大大提升数据标注效率,有利于模型进一步优化,提升了输出结果的语义可解释性。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

相关技术
  • 医学文本识别方法及装置、语句识别模型训练方法及装置
  • 医学文本识别方法、语句识别模型训练方法
  • 命名实体识别模型训练方法、命名实体识别方法及装置
  • 情绪识别模型训练方法、情绪识别方法、装置及电子设备
  • 语音情绪识别模型训练方法、情绪识别方法、装置和设备
技术分类

06120116580909