system: [SYSTEM]

user: 4. 实验过程及结果 本实验在windows10操作系统下进行，CPU参数：Intel(R)Core(TM)i5-7200U CPU@2.50 GHz 2.71 GHz；内存为8.00 GB，采用python3.6编程。在搭建神经网络结构时使用了配置tensorflow后端的keras库。 4.1. 数据集介绍 本文采用的数据集为Ren_CECps 1.0 [ 20 ]。Ren_CECps 1.0共包含了1487篇中文博客文章，共计11255个段落，35786个句子，878164个词语。本文以句子作为粒度，分析文本的情绪强度分布。原始数据集Ren_CECps 1.0中存在着情绪分布不平衡的问题，Surprise和Anger强度为0的样本占据总体90%以上，Expect、Hate以及Joy强度为0的样本占比达到了80%以上，表1列出了Ren_CECps 1.0的文本情绪强度分布。 Ren_CECps 1.0中情绪分布不平衡，为了提高模型的学习效率，采用每个类别分开训练的方法。每个情绪类别的数据集构造时，排除了强度为0的句子，接下来按照20%的比例从数据集中随机抽取样本作为测试集，剩余80%作为训练集。从训练集的大小来看，Surprise、Anger和Hate这3类情绪训练集的样本数均不足3000条，是相对较少的情绪类别，其中Surprise类的情绪数目最少，仅有916条；Love、Anxiety和Sorrow这3类情绪数目超过6000条，相对较多，其中Love有9826条，是数据集中分布最广泛的情绪。各个情绪类别的训练集及测试集样本具体数量见表2。 Table 1 Ren_CECps 1.0 emotional intensity distribution of tex 强度为0文本数量 强度为0文本占比 Anger 33511 93.64% Anxiety 25465 71.16% Expect 31031 86.71% Hate 32171 89.90% Love 23503 65.68% Joy 29434 82.25% Sorrow 27420 76.62% Surprise 34641 96.80% 表1. Ren_CECps 1.0文本情绪强度分布 Table 2 Emotional intensity distribution of training se 训练集样本数 测试集样本数 总计 Anger 1820 455 2275 Anxiety 8257 2064 10321 Expect 3804 951 4755 Hate 2892 723 3615 Love 9826 2457 12283 Joy 5082 1270 6352 Sorrow 6693 1673 8366 Surprise 916 229 1145 表2. 训练集文本情绪强度分布 4.2. 评价标准 情绪强度预测模型本质上是一个回归问题，因此采用距离类指标平均绝对误差(mean absolute error， mae)，通过计算预测值和人工标注值之间的距离绝对值来评估模型的预测效果。 距离类指标在反映模型效果上并没有一个绝对的标准，为了更加直观描述模型效果，本文构建了准确率指标。考虑到在后续应用于KANO模型时并不需要非常精确的情绪强度值，本文的计算准确率时将为百分比误差在0.3以内的样本视为预测准确，否则视为预测错误。将准确预测的样本数记为A，错误预测的样本数记为B，准确率的计算公式如下。 precision = A A + B × 100 % 4.3. 实验流程及模型参数 本文采用的基本模型为LSTM模型。基本流程为，数据预处理、模型搭建和模型效果评估。在数据预处理环节，采用了分词和去停用词处理。分词采用了python流行的分词工具结巴分词。去停用词主要将英文字符、数字等去除。 本文首先采用了实验数据集自训练词向量。具体来说，采用gensim开源框架下的word2vec下的CBOW模型，将本文使用的数据集作为词向量训练的语料库进行训练，保存训练好的300维词向量用做后续建模过程中，自训练词向量时具体参数设置见表3。自训练词向量依赖于数据集，数据集不同训练出来的词向量也会不同。而基于通用的大型数据集(如中文维基百科)训练出来的词向量一定程度上可以看作词语的通用表示，降低甚至排除领域的影响。为了进一步探索模型的领域迁移性，本文尝试采用基于通用语料库训练的词向量进行建模。通用语料库的词向量直接采用Shen [ 36 ] 等在1.3 GB的中文维基百科数据集上训练好的词向量，该通用词向量包含共计2129000个词语的300维向量。 Table 3 Self-training word vector model parameter settin 参数 参数值 size 300 workers 4 min_count 3 window 7 sample 1e −3 表3. 自训练词向量模型参数设置 本实验主要的模型参数有损失函数、训练时的数据批量、初始训练轮次、提前停止训练的指标、dropout的比率。各个情绪类别的LSTM预测器，参数基本设置如表4所示。 Table 4 LSTM predictor basic parameter settin 参数 参数值 损失函数 均方误差(mean squared error， mse) batch 100 epoch 50 提前停止训练的指标 测试集的损失 dropout 0.5 输出层 1 表4. LSTM预测器基本参数设置 神经网络随着训练周期的增大，容易出现过拟合的现象。在训练过程中，根据测试集的损失表现确定停止训练的周期。图4展示了在训练Love情绪强度预测模型时，训练集以及测试集上损失和平均绝对误差的变化趋势。随着训练周期的增加，训练集的损失和平均绝对误差持续下降，但是在测试集上，前7个周期损失和平均绝对误差基本上处于下降状态，第7周期之后开始回升，说明出现了过拟合现象，因此第7个周期需要提前停止训练。 4.4. 实验结果 在8类情绪的训练集上，按照设计的实验流程(见4.3)训练模型，在测试集上根据前面所确定的评价标准(见4.2)对模型预测能力进行评估，评估结果如表5所示。 从实验结果来看，模型预测情绪强度的效果整体良好。自训练词向量的平均绝对误差在0.13左右，准确率达到了约75%，这反映了预测值和人工标注值之间的距离很近，误差较小，总体来看模型有比较好的预测效果。具体到情绪类别上，根据三个评价标准的表现发现预测效果最优的情绪是Love类别，平均绝对误差仅为0.12，准确率达到了83%，这很可能是因为整个数据集中Love类情绪分布最广泛，构造出来的训练集样本量最大。预测效果比较好的情绪是Anxiety、Joy、Anger、和Sorrow，准确率都达到了73%以上。预测效果相对较差的情绪是Surprise。Surprise训练集数目仅有916条，是训练集最少的情绪类别，因此模型效果不理想。 图4. 训练集、测试集的误差及mae变化 Table 5 Self-trained word vector and Chinese Wikipedia word vector model experimental result 指标 平均绝对误差 准确率 模型 自训练词向量 中文维基百科词向量 自训练词向量 中文维基百科词向量 Anger 0.1232 0.1244 77.36% 80.00% Anxiety 0.1182 0.1178 82.41% 81.32% Expect 0.1383 0.1337 73.62% 76.04% Hate 0.1341 0.1284 69.89% 73.19% Love 0.1152 0.1106 83.29% 83.96% Joy 0.1235 0.1185 77.58% 80.00% Sorrow 0.1233 0.1184 76.04% 80.66% Surprise 0.1378 0.1379 61.57% 65.94% 均值 0.1267 0.1237 75.22% 77.64% 表5. 自训练词向量及向中文维基百科词量模型实验结果 如前所述，基于中文维基百科词向量的模型实验一定程度上排除了领域的影响。从中文维基百科词向量的实验结果来看，通用的词向量表现相对更好，一定程度上说明模型有着良好的领域适应性，也反映出情绪的表达可能是领域无关的。基于中文维基百科词向量模型比自训练词向量模型的平均绝对误差降低了0.003，提高了约2.4%，准确率提高了2.42%。值得注意的是，基于中文百科词向量的模型主要提升的是Sorrow，Surprise，Hate，Anger等自训练词向量模型表现较差的情绪类别，而对自训练词向量模型表现较好的情绪类别提升较小甚至没有提升。