版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
情绪识别模型设计案例分析 11.1基于BERT预训练模型 1 31.2.1数据清洗 31.2.2可视化 51.2.3对数据进行分词及向量化 61.3基于BERT预训练语言模型与CNN的情感分析模型 71.4基于BERT预训练语言模型与RNN的情感分析模型 1.1基于BERT预训练模型BERT预训练模型本身已经具备了不俗的特征提取能力和表示能力,且能够得到不错的文本分布式表示形式,当把BERT预训练模型迁移到其他的自然语言处理的分类结果,并根据结果对模型进行性能评估。具体流程如图3-1。加载数据数据预处理对模型性能进行评估数据预处理开始训练加载数据图3-1模型流程图defforward(self,-,pooled=self.bert(cont1.2数据预处理本次实验的数据集使用的是DataFountain举办的疫情期间网民情绪识别比赛的数据集,该数据集包含了100万条数据,数据的内容是根据肺炎疫情在微博进行搜索并获取,其中有10万条数据是带标签的,标签有三类,0代表中代表消极,1代表积极;还有90万条数据不带标签,数据内容包含用户名的属性。同时提供了未标注的测试集nCov_10k_test,其中包含1万条未标注的待分节还使用了Pandas模块,Pandas模块是一个基于Numpy的出色的结构化数据分在载入数据集后,首先查看数据集的结构和基本特征,具体如表3-1所示。变量名数据量数据类型微博发布时间发布人账号微博中文内容微博图片情感倾向从表3-1可以看出,数据集由100000条7列的数据组成,但是微博中文内表3-2情感倾向情感倾向统计数量0149工11从表3-2可以看出,情感倾向中存在一些非法的异常值,这些异常的分类标换为数值型。对异常数据清洗后得到99913条有效数据。确定了数据清洗方式,主要是对5种类型进行去除,分别为:(1)去除正文中的英文、数字及大部分非法的乱码字符,(2)去除正文中的“@”符号及跟在该符号之后的回复、转发中的用户名,(3)去除正文中的网址,(4)去除正文中无意com_str='无'图3-5情感倾向的分布占比通过图3-5可以得出在数据集中有接近60%的用户是中立的,持积极态度的用户占25%,15%的用户持消极态度。(2)微博长度分布如图3-6所示。通过图3-4可以看出,微博的长度集中在150词左右,长度大于150的微博占比很小,因此在padding长度的设置上应大于150且小于200,以免丢失过多信息。本文将该值设置为170。对数据进行分词,再对分词后的数据在开头加上分类标记[CLS],分词后的数据如图3-7所示。'我','曾','经','有,'一','次','感','冒','发','烧¹,'非','常 睡','觉','醒,'来','的','时','候','开','始','哮','喘',,','大,'无','论','怎','么','努','力','都¹,'喘','不','上','气',',','濒','死','的','感','觉']pytorch_pretrained库中的convert_tokens_to_ids对数据进行向量化操作,最终的结果如图3-8所示。token_ids[101,6821,702,4567,1token_ids[101,6821,702,4567,16,749,1416,8024,2769,3295,3613,2697,1088,132154,8024,4717,6230,7008,334952,2458,1993,1527,1596,8023300,126,1146,7164,2340,1389,2582,720,1222,1213,691.3基于BERT预训练语言模型与CNN的情感分析模型据输入到BERT中,通过BERT对数据进行Embedding处理,再将输出的初始化,再将数据集输入到BERT模型中以获得句子的Embedding向量,最后将经网络中进行学习101,本次实验的卷积神经网络模型是基于Pytorch框架进行搭建,具体模型如图3-9所示。预处理后预处理后的数据模型卷积层(1)卷积层设置在本次对比实验中,BERT模型输出的Embedding向量为二维数据内容,其大小为(pad_size,hidden_size),通道数为1,因此使用二维卷积模型对数据进行卷积处理,卷积操作在行上卷积核的长度使用与hidden_size相同的长度进行卷量,输入的通道数为1,卷积核尺寸为filter_sizes,宽度为hidden_size,卷积核数目设置为num_filters。对于非线性激活函数,本次实进行激活,通过nn.functional.relu在本次对比实验中,在池化层采用的是最大池化操作,通过调用(3)全连接层设置进行Dropout操作,该操作是神经元在训练时每次迭代都会以dropout的概率被行压缩,通过调用nn.Linear对特征进行全连接操作,使特征的维度降到实验模型构造的核心代码如图3-10所示。classModel(nn.Modencoder_out,text_cls=self.bert(context,out=torch.cat([self.conv_and_pooL(out,conv)fo1.4基于BERT预训练语言模型与RNN的情感分析模型具体模型如图3-11所示。预处理后预处理后的数据模型循环神经网络(1)隐含层设置对于循环神经网络的模型选择一般为长短期记忆网络模型或门控循环单元对于隐含层,通过调用torch.nn.LSTM模块构建出层数为num_layers的(2)全连接层设置使学习到的分布式特征表示映射到样本标记空间。由于在隐含层使用了双向LSTM模型,输出是一个按时间顺序的hidden和一个按时间逆序的hidden拼接而成,因此全连接层的输入维度为rnn_hidden的两倍。nn.dropout函数对数据进行Dropout操作,用以防止模型出现过拟合输入维度为rnn_hidden*2,输出维度为num_classes,使特征的维度降到样本的self.fc_rnn=nn.Liencoder_out,text_cls=self.bert(context,attout,_=self.1.5优化函数和损失函数设计(1)优化函数在本次实验中,通过调用pytorch_pretrained库中的BertAdam模块对模型参(2)损失函数设计在使用交叉熵损失函数时,往往会忽略困难样本与简单样本对模型参数的影响程度,数量较多的简单样本对模型参数的优化贡献要大于困难样本,因此,本次实验引入了FocalLoss作为模型的损失函数11,具体做法为在交叉熵损失函数的基础上增加一个调制因子,每次参数更新的权重都会受到调制因子的影响,计算公式为:公式(3-1)FocalLoss损失函数的核心代码如图3-13所示。defforward(self,pred,target):prob=self.softmax(pred.vitarget_=torch.zeros(target.size(θ),target_.scatter_(1,target.view(-1,1).Long(ifself.use_alpbatch_Loss=-seLf.aLpha.double()*torch.pow(1-prob,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瑜伽功法普及与健康身心调理
- 数学-2026届长春高三下三模
- 2026 学龄前自闭症情绪调节训练课件
- 《中药学(第2版)》课件15- 驱虫药
- 安全知识竞赛活动总结8篇
- 工程部年度工作总结(15篇)
- 2025工程(管道采购)合同
- 译林版英语三年级下册 Unit 5 Fruit(Story time)
- 铁路桥涵监理规划
- 2026年校园用电安全管理注意事项
- 湖南省株洲市第十九中学2026届中考数学模拟预测题含解析
- 2026年粗苯储罐泄漏着火事故应急演练方案
- 【初中历史】2025-2026学年统编版八年级下册历史新教材课本习题与答案
- 消除艾梅乙反歧视课件
- 福建新高考培训课件
- 2026及未来5年中国氯磺化聚乙烯(CSM)行业市场动态分析及投资前景研判报告
- PCDN的介绍教学课件
- 行吊培训资料
- GB 4053.1-2025固定式金属梯及平台安全要求第1部分:直梯
- 指南抗菌药物临床应用指导原则(2025版)
- 知乎社区运营专员面试题集
评论
0/150
提交评论