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

一种基于ERNIE和多特征融合的多模态情感分析方法

文献发布时间:2023-06-19 18:37:28



技术领域

本发明涉及自然语言处理技术领域,具体的说是涉及一种基于ERNIE的表情符号和字词向量结合的多模态情感分析方法。

背景技术

近年来,深度学习技术的迅速发展为自然语言处理领域内的各种任务带来了一大新的便捷方法。在情感分析任务上使用基于深度学习的分类模型在多个领域的数据集上取得了非常好的效果。随着社交网络的发展,emoji表情符号开始广泛出现在人们的评价文本中,用户在表达情感倾向时通常偏好使用emoji来辅助表达、代替文字,因此emoji在文本的情感分析任务重也有着较重要的地位。传统情感分析方法通常选择在预处理时洗去emoji表情,这往往会导致一些重要特征的丢失,除此之外emoji表情通常在不同语境当中有着截然相反的情感,进而导致分类困难。现有的使用预训练模型的情感分析方法通常选用BERT来进行预训练,但BERT在MLM预训练任务中通常因未完整mask掉实体词而造成无效mask。

综上所述,如何针对中文文本存在的问题选择合适的方法予以解决,提高中文文本的情感极性分类的准确性成为亟待解决的问题。

发明内容

为了解决上述现有技术中存在的问题,本发明提供了一种基于ERNIE和多特征融合的多模态情感分析方法,ERNIE在与训练任务中加入中文实体词信息,通过对语言模型进行预训练和微调操作提升模型的向量表征能力,通过对ERNIE输入预处理,加入标签嵌入以辅助训练,之后将ERNIE组合形成的句子向量和FastText形成的emoji向量以及one-hot后形成的词性向量进行拼接并使用卷积神经网络模型提取特征,在CNN中使用分段池化代替传统最大池化以确保提取可能存在的不同极性特征,有效提高了情感分析的效果。

为了达到上述目的,本发明是通过以下技术方案实现的:

本发明是一种基于ERNIE和多特征融合的多模态情感分析方法,构建情感分析模型,该模型包括词嵌入层,ERNIE和带有分段池化的CNN特征提取层,FastText层,其特征在于:所述方法包括以下步骤:

步骤1、获取带有emoji表情的文本数据作为训练语料,对文本进行清洗、标签标注、情感极性标注和emoji标注,此外记录每个emoji表情出现在正向/负向文本中的比例,存储记录表;

步骤2、将步骤1中采集到的数据集按8:1:1的比例划分为训练集、验证集以及测试集;

步骤3、对不同文本类型进行标签标注,构建多模态情感分析模型;

步骤4、将预处理完的数据通过查找ERNIE词典将对应字转化为向量,在原有句子向量尾部加入标签向量并输入ERNIE模型中,得到12层encoder共得到12组字的字向量表示,其中encoder中的MultiHead-Attention计算公式如下:

MultiHead(Q,K,V)=Concat(head

where head

其中Q表示查询矩阵;K表示键矩阵;V表示值矩阵。

步骤5、使用FastText对含有emoji的文本进行双义嵌入,将得到的emoji向量存入向量表以便查找使用;

步骤6、对文本数据进行分词得到每个词的词性特征并使用one-hot编码得到对应的词性向量。

步骤7、将步骤4和步骤5得到的向量进行拼接,使用词性编码,根据文本对应位置再次拼接,得到每个句子对应的最终的融合文本、表情、词性和标签的句子向量;

步骤8、将步骤7得到的向量送入CNN中卷积操作降维,使用分段池化在句子向量中分段提取平均特征并拼接,卷积神经网络计算如下:

C

其中ω为卷积核的权重,b为偏置,f为激活函数,此处采用Relu函数作为激活函数,h为卷积核大小,矩阵x

步骤9、使用Tanh函数对步骤8处理后的特征向量激活,并送入带有dropout、Softmax的全连接层进行分类,得到最终分类结果。

进一步地,步骤1中,获取文本数据形成文档,对文档进行数据预处理以保证一条文本数据内仅保留一个emoji表情;将文本与emoji表情以特定符号分隔开,以便后续单独处理。

进一步地,步骤1、步骤2中,预处理包括:过滤掉特殊字符和数据标注,过滤掉停用词,对文本的不同类别赋予标签,对文本情感极性标注,统计同一emoji在正/负向语境中出现比例。

进一步地,步骤3中,为每条文本数据分配类别标签,如“外卖评价”、“商品评价”等。在vocab.txt文件中添加每个标签对应数字。

进一步地,步骤4中,加载预训练好的ERNIE模型,加载ernie_config.json、pytorch_model.ckpt、vocab.txt三个文件;将收集到的数据集中的不含表情的文本数据使用‘’标识符连接文本类型标签作为训练预料对ERNIE进行fine-tuning。得到ERNIEI12层encoder输出的字向量,取2至12层CLS标志位所对应的字向量拼接,即将低层的字词特征与高层的语义特征组合,作为每个句子的句子特征的向量表示。取最后一层全部字向量作为每个句子的字特征的向量表示。

进一步地,步骤5中,取特定标识符分隔的emoji符号部分,得到文本中的emoji表情,将表情符号视作一个特殊的词,对同一文本赋予正负不同极性标记,通过使用FastText模型对文本中所出现的emoji表情在不同标记下做双义嵌入,即对其进行正义编码和负义编码并存入向量存储表中。

进一步地,步骤6中,首先对文本数据进行分词得到分词后的词语,通过词性查找表得到每个词即对应位置所对应的词性,使用one-hot编码方式将词性编码为词性向量,存入词性查找表以便后续使用。

进一步地,步骤7中,拼接步骤4步骤5中的向量,即纵向拼接12层组合的句子向量、最后一层的字向量、emoji对应的正负义向量。在标签向量表中取不同词性对应的ont-hot编码,按照对应位置拼接至ERNIE的字向量中得到最终的融合向量,句子向量使用全0填充补足长度。查找表情正/负向比例表,针对单个emoji出现频率较高的极性使用形容词、动词、名词等词性向量标注,较少的极性使用全零填充以赋予不同情感极性不同权重。得到融合标签、词性、emoji、句子向量和字向量的最终向量。

进一步地,步骤8中,将步骤7得到的最终向量送入卷积神经网络中,使用卷积操作降维和特征提取得到新的表示,将处理后的向量送入分段池化层,在一个完整卷积核卷积后的向量中分段捕获最大特征,将得到的最大特征进行平均池化得到最终向量。

本发明的有益效果是:

(1)本发明提出使用ERNIE预训练语言模型训练产生字向量,该预训练模型在pre-training的MASK任务中过程中加入中文实体信息mask,可以充分挖掘文本的语义信息,充分提取字的上下文信息,从而在中文文本上产生更加高效的字向量表示。

(2)本发明提出的ERNIE多层句子特征能够一定程度上解决卷积神经网络处理后导致的特征丢失的问题,能够提取到不同层的更多重要的特征信息。

(3)本发明的多模态情感分析方法加入了emoji嵌入,针对同一emoji在不同语境中的歧义问题使用双义嵌入并根据emoji出现频率对双义嵌入赋予不同权重,一定程度上解决了emoji歧义的问题,增强了句子的表征能力,解决了短文本上下文中情感特征不足的问题,并最终提高识别准确率。

(4)本发明提出的分段池化层,可以使在文本中出现多个关键词时以分段的方式捕获最大特征,并将其进行平均池化,尽可能更多的捕获可能有效的关键词特征。

(5)本发明提出加入文本类别标签特征能够提高不同领域文本情感分类效果,加入词性特征以辅助模型更加关注关键词和关键emoji信息,更好的提高情感分析准确率。

附图说明

图1是本发明实施例中多模态情感分析方法的整体流程图。

图2是本发明实施例中多模态情感分析方法的带有分段池化的卷积神经网络的示意图。

图3是本发明实施例中多模态情感分析方法的模型整体架构图。

图4是本发明实施例中多模态情感分析方法的带有权重的双义Emoji形成过程图。

图5是本发明实施例中多模态情感分析方法的词性向量形成过程图。

具体实施方式

以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。

如图1所示,本发明是一种基于ERNIE和多特征融合的多模态情感分析方法,该方法包括如下步骤:

步骤1、获取带有emoji表情符号的文本数据形成文档作为训练语料,对文档进行数据预处理得到数据集,记录每个emoji表情出现在正向或负向文本中的比例,存储记录表,其中预处理包括:过滤掉特殊字符和数据标注、过滤掉停用词、对文本的不同类别赋予标签、对文本情感极性标注、统计同一emoji在正向或负向数据中出现比例。

步骤2、将步骤1中采集到的数据集按8:1:1的比例划分为训练集、验证集以及测试集;

步骤3、对不同文本类型进行标签标注,如图3所示,构建情感分析模型;

步骤4、将步骤1预处理后的数据通过查找ERNIE词典将对应字转化为向量,在原有句子向量尾部加入标签向量并输入ERNIE模型中是指:加载预训练好的ERNIE模型,加载ernie_config.json、pytorch_model.ckpt、vocab.txt三个文件,将收集到的数据集中的不含表情的文本数据使用‘’标识符连接文本类型标签作为训练预料对ERNIE进行fine-tuning,得到ERNIEI共12层encoder输出的字向量,其中encoder中的MultiHead-Attention计算公式如下:

MultiHead(Q,K,V)=Concat(head

where head

其中:Q表示查询矩阵,K表示键矩阵,V表示值矩阵,

步骤5、如图4所示,取特定标识符分隔的emoji符号部分,得到文本中的emoji表情,将表情符号视作一个特殊的词,对同一文本赋予正负不同极性标记,通过使用FastText模型对文本中所出现的emoji表情在不同标记下做双义嵌入,即对emoji表情进行正义编码和负义编码并存入向量表中。

步骤6、如图5所示,首先对文本数据进行分词得到分词后的词语,通过词性查找表得到每个词即对应位置所对应的词性,使用one-hot编码方式将词性编码为词性向量,存入词性查找表以便后续使用。

步骤7、将步骤4和步骤5得到的向量进行拼接是指纵向拼接12层组合的句子向量、最后一层的字向量和emoji对应的正负义向量,在标签向量表中取不同词性对应的ont-hot编码,按照对应位置拼接至ERNIE的字向量中得到最终的融合向量,句子向量无词性使用全0填充补足长度,查找表情正向或负向比例表,针对单个emoji出现较多的极性使用词性向量标注,较少的极性使用全0标注以赋予不同极性不同权重,得到融合标签、词性、emoji、句子向量和字向量的最终向量。

步骤8、如图2所示,将步骤7得到的向量送入CNN中,使用卷积操作降维和特征提取得到新的表示,将卷积后得到的特征向量送入分段池化层,在句子向量中分段提取最大特征并拼接,经平均池化得到最终向量表示。

卷积神经网络计算如下:

C

其中ω为卷积核的权重,b为偏置,f为激活函数,采用Relu函数作为激活函数,h为卷积核大小,矩阵x

步骤9、使用Tanh函数对步骤8处理后的特征向量激活,并送入带有dropout、Softmax的全连接层进行分类,得到最终分类结果。

实施例

下面根据实施例进一步解释本发明的多模态情感分析方法的详细过程:

步骤一、获取带有emoji的文本数据并数据预处理,具体步骤如下:

步骤11、去除同一文本中重复出现的emoji表情,保留一个emoji移至末位,使用正则表达式过滤掉文本中的特殊字符及非中文字符如:“...”,“---”,“%”,“abc”等,化繁体为简体,导入停用词词库,自定义字典,去除文本中的停用词,保存处理完的文档。

步骤12.将收集到的不同类型数据添加标签,如“美食评价”,“酒店评论”,并将不同数据集合并至同一文档当中。

步骤13.将每一条数据中的文本,标签,emoji,极性以标识“||”分隔,得到每个句子切分后的列表记作sen_list={sentence,tag,emoji,label}。

步骤14、对文本数据中所有句子进行上一步所述的操作,得到列表集合S_list={sen_list

步骤15、计算单个emoji所在文本数据中正负标志对应频率,存入记录表。

步骤二、对数据集划分等操作。具体处理过程如下:

步骤21、获取预处理后的文本数据即文档a.txt。按照8:1:1划分为训练集,验证集,测试集且每个数据集中的正负样本比例一致。

步骤三、在文本数据中标注标签信息,在vocab.txt文件中添加不同标签,得不同标签对应序号。处理文本如“口味很好但是送餐比较慢”对应标签“外卖评价”,使用“”标识符连接文本和标签得处理后数据(“口味很好但是送餐比较慢”,“”,“外卖评价”)。

步骤四、加载百度公司预训练好的ERNIE模型,加载bert_config.json、bert_model.ckpt、vocab.txt文件。将步骤300的文本内容作为训练预料送入ERNIE进行fine-tune,具体过程如下:

步骤41:设置句子最大长度pad_size,超过此长度的句子进行截断,不足此长度的进行padding操作。

步骤42:对文本进行以字为单位的切分得集合list,在集合首部加入‘’字符标识句首,集合末加入‘’字符标识句末。查找vocab.txt得每个字和标志对应数字,并对list中元素进行替换得输入向量。

步骤43:重复上述步骤处理所有数据并保存得dataset.pkl。

步骤44:加载dataset.pkl微调ERNIE模型,其中包括Embedding层、双向Transformer编码器、输出层。训练结束后得到ERNIE的模型并保存为ernie.ckpt。

步骤五、加载已经预训练过的ERNIE模型ernie.ckpt和vocab.txt配置文件,将预处理好的数据输入ERNIE模型中得到每个句子中每个字的向量表征,假设存在一个句子S={s

其中,s

句子S转换后的向量为

其中,X

取X向量与最后一层字向量拼接得最终向量X:

其中X

步骤六、通过FastText模型得到emoji标签S的对应的词向量,emoji字符对应的词向量的形成过程如下:

步骤61、为每个单独emoji向量分配两个不同标记,分别用于在积极情感语境中使用的特定符号‘1’,另一个用于在消极情感语境中使用的特定符号‘0’。

步骤62、使用FastText训练将标志着不同极性的标识嵌入到不同的向量中,即可获得每个emoji的正义和负义嵌入。通过给定一个输入序列{w1,w2,…,wT},以及上下文字设置和当前字WT的一组负字样本Wnt,通过二元逻辑损失获得目标函数:

其中L(s(·,·))表示得分函数s(·,·)是通过当前单词的n元嵌入与上下文单词嵌入之间的标量积求和来计算的。

步骤七、将步骤五中得到的带有标签的文本向量和步骤六中得到的emoji向量进行拼接

其中x

步骤81、使用Jieba分词工具对所输入的句子S进行分词,分词模式选择精准模式即将句子最精确地切开,得到该句子S对应的所有分词词语集记作Set={w

步骤82、查找词性表得句子S所对应的词性集合P={p

步骤83、使用one-hot对词性进行编码,得到每个词性对应的词性嵌入向量。设数据集中共出现k种不同词性,则词性纬度为k维,如形容词词性对应词性向量为[1,0,0,0…,0],one-hot即只有1位值为1,其余为值为0,此外添加全0向量作为无词性值向量。

步骤84.按照位置分布依次将字向量e

步骤九、将步骤八融合拼接后的最终向量X输入CNN的卷积层和分段池化层,提取特征,具体过程如下:

步骤91:将步骤八融合拼接后的向量X输入CNN层,卷积层采用三种不同大小的卷积核,卷积核大小为{2,3,4},每种大小卷积核256个共计768个卷积核。选用大小为h×d的卷积核提取特征,其中h为卷积核大小,定义矩阵x

C

其中:ω为卷积核的权重,b为偏置,f为激活函数。此处采用Relu函数作为激活函数其计算公式为:

f(x)=max(0,x)

对于长度为n的句子,卷及操作之后得到特征向量C:

C={c

步骤92、将CNN卷积后的特征向量送入分段池化层分别提取不同位置最大特征。本模型采用两段最大池化即将一个句子分为两段分别提取最大特征后经平均池化得最终向量

步骤十、使用Tanh函数对步骤九得到的向量进行激活:

其将过大或过小的输入约束至-1~1之间,当输入的激活值较低时可以直接进行矩阵运算,使得训练更佳容易。

将经过激活的结果输入softmax得到语句极性对应标签的概率分布:

p

式中,p

本发明的情感分析方法通过使用ERNIE不同层encoder提供的特征向量组合处理进而提升模型的向量表征能力,使用ERNIE的不同层级CLS向量拼接作为句子特征向量,使用最高层字向量作为字特征向量;此外在文本预处理时,将传统情感分析方法中通常选择清洗掉的表情符号作为文本特征进行嵌入,使用FastText对表情符号进行双义嵌入,根据emoji出现在不同情感极性场景的频次赋予双义嵌入不同权重,以最大程度上获得文本中的信息;加入表情符号后有效提高情感分析分类结果;使用CNN捕获ERNIE不同层级句子特征,如低层级字词特征和高层级语义特征,使用分段池化充分挖掘带有emoji的多特征融合文本的不同部分的最大特征;解决使用预处理模型时尾接CNN导致的特征丢失问题;对于同一表情符号在不同语境中可能存在正负情感极性的问题,使用有权重的双义嵌入,即分别对正义、负义进行嵌入来解决表情歧义问题进而提取更多重要的特征信息以提高情感分类准确率。

以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。

相关技术
  • 一种基于多模态特征融合的社交媒体情感分析方法及系统
  • 一种基于多模态特征融合的社交媒体情感分析方法及系统
技术分类

06120115632660