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

一种基于文本的情绪检测方法和装置、计算机设备和介质

文献发布时间:2023-06-19 10:27:30


一种基于文本的情绪检测方法和装置、计算机设备和介质

技术领域

本发明涉及自然语言检测技术领域,特别是涉及一种基于文本的情绪检测方法和装置、计算机设备和介质。

背景技术

随着深度学习技术的高速发展,自然语言检测领域也引入深度学习技术进行检测,由于自然语言有时候通过一个词或者一个句子表达情绪,而有的时候通过至少两个句子表达高兴、悲伤、嘲讽等情绪,因此通过一个词或一个句子识别发声者的情绪已经不能满足实际需求,需要根据上下文或者当前对话的场景进行情绪检测。然而,对比现有技术中对单个句子的情绪检测,多轮对话的情绪检测存在较大难度,因为不仅仅需要理解当前句子的意思,还需要理解当时的语境并与上下文句子进行结合才能进行检测。

发明内容

为了解决上述问题至少之一,本发明第一方面提供一种基于文本的情绪检测方法,包括:

将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数;

将N个情绪预测概率进行融合得到所述文本数据的最终预测概率,

其中所述N为大于等于2的自然数。

在本申请提供的一些实施例中,所述将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率进一步包括:

将所述文本数据输入已训练的第n神经网络语言模型的预训练语言模型并生成输出向量;

将所述输出向量输入第一全连接层;

将该第一全连接层的输出结果输入至激活函数以输出第n情绪预测概率;

其中,2≤n≤N。

在本申请提供的一些实施例中,所述将所述输出向量输入第一全连接层进一步包括:

将所述输出向量输入第一随机失活层,经所述第一随机失活层调优后输入所述第一全连接层。

在本申请提供的一些实施例中,在将所述输出向量输入第一随机失活层,经所述第一随机失活层调优后输入所述第一全连接层之后,所述方法还包括:

将所述第一全连接层的输出结果输入第二随机失活层,经所述第二随机失活层调优后输入第二全连接层,将所述第二全连接层的输出结果输入至所述激活函数。

在本申请提供的一些实施例中,所述第一随机失活层和第二随机失活层的损失函数值分别被设置为0.3和0.1。

在本申请提供的一些实施例中,所述N个神经网络语言模型的预训练语言模型包括BERT模型、ROBERTA模型和ELECTRA模型中的至少两个,

所述预训练语言模型为BERT模型,所述将所述将文本数据输入已训练的第n神经网络语言模型的预训练语言模型并生成输出向量进一步包括:将BERT模型中CLS位置处的输出向量输出至对应的第一全连接层;

所述预训练语言模型为ROBERTA模型,所述将所述将文本数据输入已训练的第n神经网络语言模型的预训练语言模型并生成输出向量进一步包括:将ROBERTA模型中CLS位置处的输出向量输出至对应的第一全连接层;

所述预训练语言模型为ELECTRA模型,所述将所述将文本数据输入已训练的第n神经网络语言模型的预训练语言模型并生成输出向量进一步包括:将ELECTRA模型中字向量位置的输出向量作平均输出至对应的第一全连接层。

在本申请提供的一些实施例中,还包括

分别对BERT模型、ROBERTA模型和ELECTRA模型进行预训练。

在本申请提供的一些实施例中,采用单文本和语句对文本的组合作为训练集对所述模型进行训练。

在本申请提供的一些实施例中,在训练时以预定概率读取训练集中的语句对文本作为输入。

在本申请提供的一些实施例中,

所述BERT模型使用掩码语言模型和下一句预测作为损失函数进行模型训练;

所述ELECTRA模型使用替换令牌检测任务作为损失函数进行模型训练。

本发明第二方面提供一种基于文本的情绪检测装置,包括:

N个神经网络语言模型,用于将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数;

融合单元,用于将N个情绪预测概率进行融合得到所述文本数据的最终预测概率,

其中所述N为大于等于2的自然数。

在本申请提供的一些实施例中,所述神经网络语言模型还包括:第一随机失活(dropout)层,用于将所述文本数据输入所述预训练语言模型后生成的输出向量进行调优后输入所述第一全连接层。

在本申请提供的一些实施例中,还包括第二随机失活(dropout)层和第二全连接层,所述第二随机失活层对所述第一全连接层的输出结果进行调优并将调优结果输出至所述第二全连接层,并将所述第二全连接层生成的输出结果输入至所述激活函数。

在本申请提供的一些实施例中,所述N个神经网络语言模型的预训练语言模型包括BERT模型、ROBERTA模型和ELECTRA模型中的至少两个,其中,

所述预训练语言模型为BERT模型,配置为将BERT模型中CLS位置处的输出向量输出至对应的第一全连接层;

所述预训练语言模型为ROBERTA模型,配置为将ROBERTA模型中CLS位置处的输出向量输出至对应的全连接层;

所述预训练语言模型为ELECTRA模型,配置为将ELECTRA模型中字向量位置的输出向量作平均输出至对应的全连接层。

本发明第三方面提供一种计算机设备,包括处理器和存储有程序的存储器,所述程序被处理器执行时实现第一方面所述的方法。

本发明第四方面提供一种计算机可读介质,存储有程序,所述程序被执行时实现第一方面所述的方法。

本发明的有益效果如下:

本发明针对目前现有的问题,制定一种基于文本的情绪检测方法和装置、计算机设备和介质,通过设置的多个神经网络语言模型,利用各预训练语言模型根据提取的不同特征进行预测生成多个情绪预测概率,对多个情绪预测概率进行融合获得对输入文本数据的最终预测概率,显著提高预测能力,从而弥补了现有技术中存在的问题,有效提高文本的情绪检测效率,具有广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明的一个实施例所述情绪检测装置的结构框图;

图2示出本发明的一个实施例所述情绪检测方法的流程图;

图3示出本发明的一个实施例所述神经网络语言模型的结构示意图;

图4示出本发明的另一个实施例所述情绪检测方法的流程图;

图5示出本发明的另一个实施例所述神经网络语言模型的结构示意图;

图6示出本发明的另一个实施例所述情绪检测方法的流程图;

图7示出本发明的另一个实施例所述神经网络语言模型的结构示意图;

图8示出本发明的另一个实施例所述情绪检测方法的流程图;

图9示出本发明的另一个实施例所述情绪检测装置的结构框图;

图10示出本发明的另一个实施例所述情绪检测装置的结构框图;

图11示出本发明的另一个实施例所述的一种计算机设备的结构示意图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

针对现有技术中的问题,如图2所示,本发明的一个实施例提供了一种基于文本的情绪检测方法,包括:

将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数;

将N个情绪预测概率进行融合得到所述文本数据的最终预测概率,其中所述N为大于等于2的自然数。

在本实施例中,通过设置的多个神经网络语言模型,利用各预训练语言模型根据提取的不同特征进行预测生成多个情绪预测概率,对多个情绪预测概率进行融合获得对输入文本数据的最终预测概率,显著提高预测能力,从而弥补了现有技术中存在的问题,有效提高文本的情绪检测效率,具有广泛的应用前景。

在一个具体的示例中,如图1所示为情绪检测装置,应用于点评论坛、服务类行业的服务评估等应用软件中,例如对餐厅、影视表演、购物商场、娱乐项目的评价等应用场景,该情绪检测装置能够对海量评论进行识别,检测评论为正面评价或负面评价,从而有效帮助查询用户获得数据统计结果,能够节省查询用户的时间。

具体的,该情绪检测装置包括三个神经网络语言模型,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数。其中,神经网络语言模型1的预训练语言模型为BERT(Bidirectional Encoder Representations from Transformers)模型,神经网络语言模型2的预训练语言模型为ROBERTA模型,神经网络语言模型3的预训练语言模型为ELECTRA模型。将文本数据分别输入已训练的3个神经网络语言模型的预训练语言模型、经第一全连接层和激活函数分别输出3个情绪预测概率。最后融合单元对3个情绪预测概率进行融合处理获得输入的文本数据的最终预测概率。

在本示例中,以海量评论中检测难度最高的讽刺检测为例进行检测,以使用BERT预训练语言模型检测讽刺文本为例进行具体的检测说明。例如,所述讽刺文本为:It’s agood thing we came here.It’s like a lesson in what not to do。具体的,如图3所示:

首先,对讽刺文本进行预处理以输入神经网络语言模型。

考虑到评论用户通常通过具有幽默型与艺术性的讽刺方式表达真实态度,例如先扬后抑,因此不能仅仅对表达态度的语句进行检测,还要充分考虑上下文来判断评论用户的真实态度。

在本实施例中,将以下文本为例进行检测说明:It’s a good thing we camehere.It’s like a lesson in what not to do.其中,前一句表面上表达了积极的评价,但是结合后一句则发现评论用户真正表达的是贬义的否定评价,从而推翻前一句的积极态度,并且通过一前一后两句话的褒贬冲突更加有力地突出否定态度。在本示例中,将前一句作为检测文本,将后一句作为上下文文本,如图3所示,形成的文本格式Text为:[CLS]It’sa good thing we came here.[SEP]It’s like a lesson in what not to do[SEP],其中[CLS]表示位置,[SEP]为分句标识符。进一步的,提取各文本的词,形成输入格式Input,例如词1为It’s,词2为a,词3为good,词4为thing,词5为we,词6为came,词7为here,以此类推,形成多个词token为TOKm,保留[CLS]和[SEP]。

如图4所示,在一个可选的实施例中,所述将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率进一步包括:

将所述文本数据输入已训练的第n神经网络语言模型的预训练语言模型并生成输出向量;将所述输出向量输入第一全连接层;

将该第一全连接层的输出结果输入至激活函数以输出第n情绪预测概率;其中,2≤n≤N。

具体的,如图3所示,将提取的各文本词形成的输入格式Input输入到预训练语言模型BERT中,BERT模型根据输入的词生成词向量E,例如根据输入的[CLS]生成E

需要注意的是,BERT模型对输入量的长度有限定,输入最长要求为512字节,当输入长度过多大于最长要求时采用文本截断策略,规则如下:1)如果检测文本长度超过512字节,则将检测文本截断至512字节,模型只输入检测文本不再输入上下文文本。2)如果检测文本长度小于512字节,则输入上下文文本。3)如果检测文本长度加上下文文本长度大于512字节,则优先截取上下文文本前面的句子。

值得说明的是,本实施例使用的BERT模型为预训练语言模型,在训练过程中分为两步:

第一步:在计算性能满足的情况下用某个较大的数据集训练出一个较好的模型;

第二步:根据不同的任务,改造预训练模型,用新任务的数据集在预训练模型上进行微调。

预训练模型的优点在于:训练代价较小,能够配合下游任务可以实现更快的收敛速度,针对训练数据比较稀缺的任务能够有效地提高模型性能。换句话说,预训练语言模型的预训练方法通过第一步的训练将模型处于一个更好的初始状态进行学习,再通过第二步训练中有针对的训练集对预训练模型的参数进行调整以实现更优的性能。

在本申请的一个实施例中,对BERT模型进行预训练。

具体包括:采用单文本和语句对文本的组合作为训练集对所述模型进行训练。在本实施例中,调整训练集中的训练数据,不仅将具有上下文的语句对作为训练数据,同时将仅包含检测文本的单文本语句也作为训练数据。仍以本实施中的讽刺文本:It’s a goodthing we came here.It’s like a lesson in what not to do。为例进行说明,其中“It’s a good thing we came here.”为检测文本,而“It’s like a lesson in what not todo.”为检测文本的上下文文本,当同时将检测文本和上下文文本作为训练数据输入BERT模型即为使用语句对文本作为训练数据,而当仅将检测文本作为训练数据输入BERT模型即为使用单文本作为训练数据,通过调整训练集中的训练数据,能够训练BERT模型对具有上下文的文本数据和不具有上下文的文本数据进行检测。

进一步的,在一个可选的实施例中,在训练时以预定概率读取训练集中的语句对文本作为输入。

在本实施例中,设置预定概率为0.3,即将训练数据的30%设置为单文本语句,将训练数据的70%设置为语句对文本,通过调整的训练数据训练BERT模型,使得BERT模型不仅支持单文本语句的情绪检测,也支持带有上下文的语句对文本的情绪检测,从而提高BERT模型的检测性能。

值得说明的是,本申请对训练数据中的单文本和语句对文本的比例不作具体限定,本领域技术人员应当根据实际应用需求选择适当的训练数据,以满足BERT模型的情绪检测为设计准则,在此不再赘述。

考虑到BERT模型的语义检测性能,在一个可选的实施例中,所述BERT模型使用掩码语言模型和下一句预测作为损失函数进行模型训练。

在本实施例中,掩码语言模型(Mask Language Model,MLM)是针对“词”的处理,换句话说,MLM是一项填空任务,针对输入文本数据中掩码标记的“词”,使用围绕掩码标记的上下文单词来预测掩码单词应该是什么。例如,对于包含一个或多个掩码标记的输入文本数据,训练BERT模型生成每个标记最可能的替代词。

在本实施例中,下一句预测Next Sentence Prediction(NSP)用于帮助所述BERT模型判断句子B是否是句子A的下文。如果是则输出‘IsNext’,否则输出‘NotNext’。训练数据是从平行语料中随机抽取的连续两句话,其中50%保留抽取的两句话,它们符合IsNext关系,另外50%的第二句话是随机从平行语料中提取的,它们的关系是NotNext的。将训练数据中的实际关系保存在输入中的[CLS]符号中。通过这种训练特性[CLS]位置对应的向量能够表示当前输入文本的整体意思:例如将检测文本和上下文文本一起输入到BERT模型中,则[CLS]位置向量就包含了检测文本和上下文文本的所有信息,我们就可以利用[CLS]位置的向量进行分类任务,完成情绪检测。

再次参照图3所示,利用预训练的BERT模型,将预处理的文本数据输入已训练的BERT模型并生成输出向量,即将多个词向量E分别转换为输出向量,例如将E[CLS]转换为输出向量C,将E1转换为输出向量T1,将E2转换为输出向量T2,以此类推,根据每个词向量生成对应的输出向量。

考虑到BERT模型中根据[CLS]位置向量生成的输出向量C已经包含了检测文本和上下文文本的所有信息,如图3所示,将所述输出向量输入第一全连接层;将该第一全连接层的输出结果输入至激活函数以输出情绪预测概率,即利用[CLS]位置向量对应的输出向量C进行数据处理,经第一全连接层Dense(128)输出预测结果,再经过分类器激活函数输出一个[0-1]的情绪预测概率,从而完成对例句的讽刺情绪检测。

在一个可选的实施例中,如图5和图6所示,将所述输出向量输入第一全连接层进一步包括:将所述输出向量输入第一随机失活层,经所述第一随机失活层调优后输入所述第一全连接层。

在本实施例中,如图5所示,将BERT模型生成的输出向量C输入第一随机失活层Dropout(0.3)以防止BERT模型过拟合,即随机丢弃输出向量C中30%的数据,减少BERT模型提取的特征维度从而解决BERT模型过拟合的问题。再将剩余70%数据的输出向量C输入至第一全连接层Dense(128),即通过具有128个神经元的第一全连接层Dense输出预测结果。

考虑到BERT模型的泛化性,在另一个可选的实施例中,如图7和图8所示,在将所述输出向量输入第一随机失活层,经所述第一随机失活层调优后输入所述第一全连接层之后,所述方法还包括:将所述第一全连接层的输出结果输入第二随机失活层,经所述第二随机失活层调优后输入第二全连接层,将所述第二全连接层的输出结果输入至所述激活函数。

在本实施例中,将第一全连接层的输出结果再输入至第二随机失活层Dropout(0.1)以进一步防止BERT模型过拟合,即再次随机丢弃第一全连接层的输出结果中10%的数据,然后输入至第二全连接层Dense(1),即通过具有1个神经元的第二全连接层Dense输出预测结果。本实施例通过引入第二随机失活层和第二全连接层进一步提高了BERT模型的泛化性。

进一步的,将第二全连接层Dense输出的预测结果输入至激活函数sigmoid,激活函数sigmoid为一个二分类器,预测结果转换为输出一个[0-1]的情绪预测概率,例如,BERT模型对于输入的文本数据“It’s a good thing we came here.It’s like a lesson inwhat not to do.”进行检测,输出的情绪预测概率为0.8,即该文本数据有80%的概率为讽刺文本。

本实施例通过包括预训练语言模型BERT模型、第一随机失活层、第一全连接层、第二随机失活层、第二全连接层和激活函数的神经网络语言模型对输入的文本数据进行检测,并输出情绪预测概率。

同理,如图1所示,还包括神经网络语言模型2和神经网络语言模型3,其中神经网络语言模型2的预训练语言模型为ROBERTA模型,神经网络语言模型3的预训练语言模型为ELECTRA模型,与上述训练、检测步骤相类似,分别根据输入的文本数据生成输出向量,经第一随机失活层、第一全连接层、第二随机失活层、第二全连接和激活函数输出情绪预测概率。相似步骤参见上述实施例,在此不再赘述。

针对ROBERTA模型的特点,在上述BERT模型的基础上进行以下调整:1)增加训练数据,增加batch size,增加训练时间;2)移除针对BERT模型的next predict loss;3)增加训练序列;4)动态调整Masking机制。

具体的,在一个可选的实施例中,所述预训练语言模型为ROBERTA模型,将ROBERTA模型中CLS位置处的输出向量输出至对应的第一全连接层。

在本实施例中,与上述BERT模型相类似,ROBERTA模型根据输入的文本数据生成包含检测文本和上下文文本的所有信息的输出向量C,并将该输出向量C输出至第一全连接层以获取检测结果。

针对ELECTRA模型的特点,在上述BERT模型的基础上进行以下调整:提出了新的预训练任务和框架,把生成式的Masked language model(MLM)预训练任务改成判别式的Replaced token detection(RTD)任务,判断当前token是否被语言模型替换过。

具体的,针对ELECTRA模型,使用替换令牌检测(Replaced token detection,RTD)任务作为损失函数进行模型训练。替换令牌检测任务能够学习如何区分真正的输入令牌和看似合理但是是生成而来的替换令牌。相比之下,MLM任务将模型训练为生成器,用于预测被破坏令牌的原本标志。而RTD任务使用判别任务的一个关键优势是ELECTRA模型可以从所有输入的标记中学习,而不是直接从输入的子集中学习,从而节省更多的计算资源。同时,通过RTD任务训练ELECTRA模型能够有效缩短训练时间,并提高准确性。

具体的,在一个可选的实施例中,所述预训练语言模型为ELECTRA模型,将ELECTRA模型中字向量位置的输出向量作平均输出至对应的第一全连接层。

在本实施例中,不同于上述BERT模型,ELECTRA模型根据输入的文本数据生成对应的包括字向量位置的输出,将各包括字向量位置的输出进行平均作为ELECTRA模型的输出向量进行后续操作以获取该神经网络语言模型输出的情绪预测概率。

最后,将多个情绪预测概率进行融合得到所述文本数据的最终预测概率。

在本实施例中,针对输入的文本数据,通过包含BERT模型的神经网络语言模型输出的情绪预测概率为0.8,通过包含RoBERTa模型的神经网络语言模型输出的情绪预测概率为0.7,通过包含ELECTRA模型的神经网络语言模型输出的情绪预测概率为0.6,采用平均融合方式,对三个情绪预测概率进行平均融合输出的最终预测概率为0.7,即输入的文本数据“It’s a good thing we came here.It’s like a lesson in what not to do.”有70%的概率为讽刺文本。

值得说明的是,本申请对具体的融合方式不作具体限定,可以采用平均融合方式,也可以采用加权融合方式,以实际应用需求为设计准则,在此不再赘述。

本实施例通过使用具有不同预训练方式获取的BERT模型、RoBERTa模型和ELECTRA模型能够提取不同的语义特征,分别通过不同的神经网络语言模型获取对应的情绪预测概率,再对通过不同语义特征获取的情绪预测概率进行融合获取最终预测概率;同时通过预定概率设置单文本和语句对文本作为训练集训练各预训练语言模型,能够显著提高预测能力,从而弥补了现有技术中存在的问题,有效提高文本的情绪检测效率,具有广泛的应用前景。

值得说明的是,本申请对各神经网络语言模型的具体结构和模型数量不作具体限定,凡是通过上述训练和检测方法融合不同的预训练语言模型以获取高准确性的情绪预测概率的技术方案均在本申请的保护范围内,本领域技术人员应当根据实际应用需求选择适当的模型数量和模型结构进行基于文本的情绪检测,以实现高准确性的情绪预测概率为设计准则,在此不再赘述。

与上述实施例提供的情绪检测方法相对应,如图1所示,本申请的一个实施例还提供一种应用上述情绪检测方法的情绪检测装置,包括:

N个神经网络语言模型,用于将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数;

融合单元,用于将N个情绪预测概率进行融合得到所述文本数据的最终预测概率,其中所述N为大于等于2的自然数。

在本实施例中,将以下文本为例进行检测说明:It’s a good thing we camehere.It’s like a lesson in what not to do.其中,前一句表面上表达了积极的评价,但是结合后一句则发现评论用户真正表达的是贬义的否定评价,从而推翻前一句的积极态度,并且通过一前一后两句话的褒贬冲突更加有力地突出否定态度。在本示例中,将前一句作为检测文本,将后一句作为上下文文本,如图3所示,形成的文本格式Text为:[CLS]It’sa good thing we came here.[SEP]It’s like a lesson in what not to do[SEP],其中[CLS]表示位置,[SEP]为分句标识符。进一步的,提取各文本的词,形成输入格式Input,例如词1为It’s,词2为a,词3为good,词4为thing,词5为we,词6为came,词7为here,以此类推,形成多个词token为TOKm,保留[CLS]和[SEP]。

第一步,将提取的各文本词形成的输入格式Input输入到预训练语言模型BERT中,BERT模型根据输入的词生成词向量E,例如根据输入的[CLS]生成E

第二步,利用预训练的BERT模型,将预处理的文本数据输入已训练的BERT模型并生成输出向量,即将多个词向量E分别转换为输出向量,例如将E

第三步,考虑到BERT模型中根据[CLS]位置向量生成的输出向量C已经包含了检测文本和上下文文本的所有信息,如图3所示,将所述输出向量输入第一全连接层;将该第一全连接层的输出结果输入至激活函数以输出情绪预测概率,即利用[CLS]位置向量对应的输出向量C进行数据处理,经第一全连接层Dense(128)输出预测结果。

第四步,将第一全连接层Dense输出的预测结果输入至激活函数sigmoid,激活函数sigmoid为一个二分类器,预测结果转换为输出一个[0-1]的情绪预测概率,例如,BERT模型对于输入的文本数据“It’s a good thing we came here.It’s like a lesson inwhat not to do.”进行检测,输出的情绪预测概率为0.8,即该文本数据有80%的概率为讽刺文本。

同理,如图1所示,还包括神经网络语言模型2和神经网络语言模型3,其中神经网络语言模型2的预训练语言模型为ROBERTA模型,神经网络语言模型3的预训练语言模型为ELECTRA模型,与上述检测步骤相类似,分别根据输入的文本数据生成输出向量,经第一全连接层和激活函数输出情绪预测概率。相似步骤参见上述实施例,在此不再赘述。

针对ROBERTA模型和ELECTRA模型的特点,分别在上述BERT模型的基础上进行以下调整,分别输出对应的情绪预测概率。

第五步,将多个情绪预测概率进行融合得到所述文本数据的最终预测概率。

在本实施例中,针对输入的文本数据,通过包含BERT模型的神经网络语言模型输出的情绪预测概率为0.8,通过包含RoBERTa模型的神经网络语言模型输出的情绪预测概率为0.7,通过包含ELECTRA模型的神经网络语言模型输出的情绪预测概率为0.6,采用平均融合方式,对三个情绪预测概率进行平均融合输出的最终预测概率为0.7,即输入的文本数据“It’s a good thing we came here.It’s like a lesson in what not to do.”有70%的概率为讽刺文本。

在本实施例中,通过设置的多个神经网络语言模型,利用各预训练语言模型根据提取的不同特征进行预测生成多个情绪预测概率,对多个情绪预测概率进行融合获得对输入文本数据的最终预测概率,显著提高预测能力,从而弥补了现有技术中存在的问题,有效提高文本的情绪检测效率,具有广泛的应用前景。

在一个可选的实施例中,如图9所示,所述神经网络语言模型还包括:第一随机失活层,用于将所述文本数据输入所述预训练语言模型后生成的输出向量进行调优后输入所述第一全连接层。

在本实施例中,如图5所示,将BERT模型生成的输出向量C输入第一随机失活层Dropout(0.3)以防止BERT模型过拟合,即随机丢弃输出向量C中30%的数据,减少BERT模型提取的特征维度从而解决BERT模型过拟合的问题。再将剩余70%数据的输出向量C输入至第一全连接层Dense(128),即通过具有128个神经元的第一全连接层Dense输出预测结果。

在一个可选的实施例中,如图10所示,所述神经网络语言模型还包括:第二随机失活层和第二全连接层,所述第二随机失活层对所述第一全连接层的输出结果进行调优并将调优结果输出至所述第二全连接层,并将所述第二全连接层生成的输出结果输入至所述激活函数。

在本实施例中,如图7所示,将第一全连接层的输出结果再输入至第二随机失活层Dropout(0.1)以进一步防止BERT模型过拟合,即再次随机丢弃第一全连接层的输出结果中10%的数据,然后输入至第二全连接层Dense(1),即通过具有1个神经元的第二全连接层Dense输出预测结果。本实施例通过引入第二随机失活层和第二全连接层进一步提高了BERT模型的泛化性。

在一个可选的实施例中,所述N个神经网络语言模型的预训练语言模型包括BERT模型、ROBERTA模型和ELECTRA模型中的至少两个,其中,

所述预训练语言模型为BERT模型,配置为将BERT模型中CLS位置处的输出向量输出至对应的第一全连接层;

所述预训练语言模型为ROBERTA模型,配置为将ROBERTA模型中CLS位置处的输出向量输出至对应的全连接层;

所述预训练语言模型为ELECTRA模型,配置为将ELECTRA模型中字向量位置的输出向量作平均输出至对应的全连接层。

在本实施例中,根据不同的预训练语言模型获取不同的输出向量,BERT模型和RoBERTa模型根据输入的文本数据生成包含检测文本和上下文文本的所有信息的输出向量C,并将该输出向量C输出至第一全连接层以获取检测结果;ELECTRA模型根据输入的文本数据生成对应的包括字向量位置的输出,将各包括字向量位置的输出进行平均作为ELECTRA模型的输出向量进行后续操作以获取该神经网络语言模型输出的情绪预测概率。

本实施例通过使用具有不同预训练方式获取的BERT模型、RoBERTa模型和ELECTRA模型中的至少两个分别提取不同的语义特征,通过神经网络语言模型获取对应的情绪预测概率,再对通过不同语义特征获取的情绪预测概率进行融合获取最终预测概率,从而有效提高情绪预测概率的准确性。

本发明的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现:将文本数据分别输入已训练的N个神经网络语言模型并输出N个情绪预测概率,每个神经网络语言模型包括预训练语言模型、第一全连接层和激活函数;将N个情绪预测概率进行融合得到所述文本数据的最终预测概率,其中所述N为大于等于2的自然数。具体实施方式参见前述实施例,在此不再赘述。

在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

如图11所示,本发明的另一个实施例提供的一种计算机设备的结构示意图。图11显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图11所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图11未显示,通常称为“硬盘驱动器”)。尽管图11中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图11所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图11中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种基于文本的情绪检测方法。具体实施方式参见前述实施例,在此不再赘述。

本发明针对目前现有的问题,制定一种基于文本的情绪检测方法和装置、计算机设备和介质,通过设置的多个神经网络语言模型,利用各预训练语言模型根据提取的不同特征进行预测生成多个情绪预测概率,对多个情绪预测概率进行融合获得对输入文本数据的最终预测概率;同时通过预定概率设置单文本和语句对文本作为训练集训练各预训练语言模型,能够显著提高预测能力,从而弥补了现有技术中存在的问题,有效提高文本的情绪检测效率,具有广泛的应用前景。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

相关技术
  • 一种基于文本的情绪检测方法和装置、计算机设备和介质
  • 一种字符级文本检测方法、装置、计算机设备及存储介质
技术分类

06120112553324