system: [SYSTEM]

user: 4. 实验 4.1. 实验环境 本实验环境下的模型是基于深度学习库keras，操作系统为windows7旗舰版64位，CPU为i3，显卡是Inter(R) HD Graphics，开发工具是pycharm。由于本文数据量不大，所以不需要太高的配置。 4.2. 实验数据 本文通过爬虫技术爬取了豆瓣网60775条评论，包括30445条消极评论，30330条积极评论。本文将数据按照8:2的比例构造训练集和测试集，即训练集个数为48620，测试集个数为12155。积极评论和消极评论例子对比见表2。 Table 2 Comparison of negative text and positive tex 消极文本 积极文本 中国不适合拍这种片 比想象中好，导演擅长处理这种题材， 换别的导演或许会非常矫情 怀疑我跟评论的其他人看的 是不是同一部电影 被特出的胡歌惊艳到，这样的周迅真美 看得我十分尴尬 生活，很暖 表2. 消极文本和积极文本对比 从表2中可以看出，消极文本中充斥着消极情感词，例如消极文本中的“不合适”，“怀疑”，“尴尬”，积极文本中的“好，擅长”，“惊艳，真美”，“很暖”，情感词直接表示评论文本的情感极性。对文本进行数据预处理，过程如下： (1) 评论文本和标签的获取； (2) 去除评论文本标点符号及分词处理； (3) 将处理后的文本构建字典，并将字典中的词进行token转化，提取出现频数大于5的词来创建词典； (4) 词向量训练，将句子中存在而字典中不存在的词用随机值代替词向量； (5) 将数据打乱，用于模型训练。 本文模型的超参数如表3所示。 Table 3 Hyperparameter setting 参数 数量 释义 Batch_size 256 批量大小，每次输入的样本数量 Sentence_length 82 评论文本的平均长度 Drop_prob 0.5 Dropout比例 Vocab_size 18082 字典长度 Embedding_dim 300 次向量维度 Num_filters 100 Filter个数 Hdden_dim 50 全联接层单元数 Num_epochs 10 迭代次数 表3. 超参数设置 4.3. 性能评价指标 本文模型的评价指标采用精准率、召回率以及F1值。先说明一些指标。 TP表示正类预测为正类，TN表示负类预测为负类，FP表示负类预测为正类，FN为正类预测为负类。对于模型好坏的评价方式一般采用精准率(Precition)、召回率(Recall)和F1值。 精准率： P = TP TP + FP 召回率： R = TP TP + FN F1值： F 1 = 2TP 2TP + FP + FN 4.4. 实验对比及分析 本文单模型CNN的窗口大小设置为(3， 4， 5)，窗口维度大小为100，激活函数为ReLu，池化层采用Max。单模型LSTM的优化函数为Adam，激活函数为ReLu。 对比实验。将以下四种模型分别在word2vec和随机向量填充两种词向量方法下进行实验。本文实验不仅讨论了词向量对模型的影响，而且也比较了模型之间的好坏。本文的重要贡献在于将单模型进行集成，得到新的模型，并加入了注意力机制来优化模型。实验如下，实验结果如表4所示。 (1) 基于随机向量的LSTM模型。本模型仅利用随机化的向量来作为样本输入，用于LSTM模型训练。 (2) 基于词向量的LSTM模型。本模型利用word2vec对文本训练词向量作为输入，用于LSTM模型训练。 (3) 基于随机向量的CNN模型。本模型仅利用随机化向量来作为样本输入，用于CNN模型训练。 (4) 基于词向量训练的CNN模型。本模型利用word2vec对文本训练词向量并作为输入，用于CNN模型训练。 (5) 基于随机向量的BiLSTM_CNN模型。该模型是对两种单模型的Stacking融合，将样本的随机向量作为模型的输入。 (6) 基于词向量的BiLSTM_CNN模型。该模型是将样本进行word2vec训练并作为输入。结合BiLSTM_CNN模型进行训练。 (7) 本文模型。基于随机向量作为输入，并加入词注意力机制的BiLSTM_CNN (rand & Word Attention-based BiLSTM & CNN Stacking Model， WABCSM + rand)。 (8) 本文模型。基于词向量训练作为输入，并加入词注意力机制的BiLSTM_CNN (word2vec & Word Attention-based BiLSTM & CNN Stacking Model， WABCSM + w2v)。 Table 4 Experimental result Model Recall (%) Precision (%) F1 (%) LSTM + rand 79.9 80.3 80.1 LSTM + Word2vec 81.9 81.1 81.5 CNN + rand 80.2 80.4 80.6 CNN + Word2vec 81.4 81.4 81.5 BiLSTM_CNN + rand 81.8 81.3 81.6 BiLSTM_CNN + Word2vec 82.8 82.4 82.6 WABCSM + rand 82.1 81.5 81.8 WABCSM + Word2vec 83.6 83.4 83.5 表4. 实验结果 实验结果分析： 基于词向量。四种模型下的结果显示，一方面word2vec训练下的词向量表示结果要优于随机变量填充的训练结果。这说明word2vec训练下的词向量很好的表示文本之间的语义关系，对情感分类具有积极的效果。而随机填充下的词向量达不到这个效果。另一方面，即使在随机填充下，模型训练的效果依然不差，这说明深度学习在特征学习上具有很好的效果。 基于模型。本文模型的实验结果要优于传统的单模型。尤其是在注意力机制下的模型，取得了很好的效果。对于单模型，CNN模型要比LSTM模型取得更好的效果，这说明在提取文本的特征上，尤其是提取局部最优特征上(关键词)，CNN模型要优于LSTM模型。比较本文的模型结果，融合模型BiLSTM_CNN的效果比传统LSTM以及CNN效果都要好，随机向量填充下，精准率分别提升了1.0%和0.9%；word2vec训练的词向量下，精准率分别提升了1.3%和1.0%。在此基础上加入了词注意力机制，结果表明，词注意力机制下的模型WABCSM表现出更好的效果，随机向量填充下，精准率比BiLSTM_CNN提升了0.2%，word2vec训练的词向量下，精准率比BiLSTM_CNN提高了1.0%。WABCSM模型对测试集样本预测的结果混淆矩阵如表5。两种词向量下的模型训练结果对比发现，word2vec词向量下的训练对正负样本的预测比例与训练样本的比例相近，有984个积极样本被预测为消极样本，有1034个消极样本被预测为积极样本。而随机向量填充方法下的训练结果预测正确的正负样本都相对较少，并且有1074个正样本被预测为负样本，有1174个负样本被预测为正样本。 本文模型的实验结果的混淆举证如表5所示。 Table 5 Confusion matri WABCSM + rand WABCSM_Word2vec pos neg pos neg pos 4928 1074 5018 984 neg 1174 4979 1034 5119 表5. 混淆矩阵 本文模型的预测结果与真实结果对比见表6。 Table 6 Forecast results (partial 测试集文本 真实值 预测值 只能说我完全不纯情了 0 0 埃，又是这种，我看他们国家的爱情电影是没希望了 0 0 我看哭了说实话 1 0 小森湘太好看了吧！男二演的真好，水管其次 1 1 被一股神奇的力量恶心到了 0 0 合格的漫威作品。片头要看哭，从头到尾只记住斯坦李的一句话：Trust me， believers 1 1 表6. 预测结果(部分) 表6中给出了本文模型对测试集的部分预测结果，其中0表示消极评论，1表示积极评论，由于本文探索的是二分类问题，而评论会有部分属于中性评论，这使得模型对其情感极性的影响有所影响。比如“只能说我完全不纯情了”和“我看哭了说实话”这样的文本，文本太短，中文的一词多意也加重了机器学习的难度，缺乏直观的情感极性，使得机器只能根据文本中的单一情感词进行判断，“纯情”是积极情感词，机器就预测为积极文本，而“看哭”是消极情感词，机器就预测为消极文本。这也说明了一直以来对中文短文本进行情感挖掘是一个很难的课题。 图2给出了BiLSTM_CNN模型和WABCSM模型在两种词向量方法下的损失函数变化图。从四种模型在测试集上的损失变化图中可以看出，四种模型均收敛的比较快并在第8次迭代后达到收敛。对于模型BiLSTM_CNN，两种词向量方法下的结果显示，在第二次迭代和第三次迭代时，随机向量填充下的损失下降要比word2vec方法下的更快，而在第四次迭代开始，word2vec方法下的模型快速收敛并在第7次迭代开始达到收敛，而随机向量填充下的模型在第八次迭代开始收敛，并且结果要差一些。对于WABCSM模型，两种词向量下的结果都要比BiLSTM_CNN要好，无论在收敛速速上，还是在损失函数上。尤其是WABCSM_w2v模型，在第5次迭代就开始趋向于收敛，WABCSM_rand模型也在第六次开始收敛。除此之外，稳定后WABCSM_w2v模型的验证损失达到最低，优于其他模型。这显示出本文模型WABCSM具有很好的泛化能力，而且word2vec词向量训练方法有助于模型训练。 图2. 损失函数变化对比图 图3. WABCSM模型ROC曲线图 本文模型的ROC曲线见图3，ROC曲线的横轴表示负正类率(False Positive Rate， FPR)，纵轴表示真正类率(True Positive Rate， TPR)。TPR值越大越好，即ROC曲线越靠近左上角说明模型越好。本文模型的AUC值达到了0.91，这说明本文模型可以很好的处理此类问题，即本文模型在进行中文情感挖掘是非常有效的。