1.一种基于GCN-Attention的情感分析方法,其特征在于,步骤如下:步骤1:建立GCN-Attention模型
构建GCN-Attention模型,需要包含embedding层、双向LSTM层、GCN-Attention层和输出层;
步骤1-1:建立embedding层
embedding层作为模型的输入层,使用的是预训练好的GloVe词向量,GloVe词向量可选维度有25、50、100、200、300;定义输入的单词序列为S={w1,w2,…,wn},其中n为该单词序列的长度,n为单词序列中单词的个数,wi表示单词序列中的一个单词;将该输入经embedding层作用后,输出可表示为S={v1,v2,…,vn}, n为该向量组中向量的个数,vi表示一个维度为300的向量,ds表示词向量的维度;
步骤1-2:建立双向LSTM层
双向LSTM层包含正向LSTM和反向LSTM,其中正向LSTM是序列的初始位置开始往后输入序列,反向LSTM是从序列的结束位置开始往前输入序列,这样的好处是同时兼顾了序列中“未来”和“过去”的信息;上一层的输出S={v1,v2,…,vn}, 作为双向LSTM层的输入,根据LSTM的计算公式:如式(1)所示:ct=f*ct-1+g*i
ht=o*tanh(ct) (1)
其中,xt为t时刻的输入,ht为t时刻的输出,ct为t时刻的记忆单元,所有的W和b均为可训练参数,σ是sigmoid激活函数,tanh为双曲正切函数,*为元素乘运算,i是对输入信息进行选择操作,控制信息的输入过程,f是对前一模块需要被遗忘的信息进行遗忘操作,控制信息遗忘过程,g用来判断哪些信息应该存储到当前细胞状态,对信息的存储进行控制,o则是输出门对输出信息进行选择,控制输出信息;通过将正向LSTM和反向LSTM的输出拼接得出hs={h1,h2,…,hn},其中hs为输出的向量组,向量组个数为n,hi表示其中一个隐藏层向量;
步骤1-3:建立GCN-Attention层
采用1~10层GCN-Attention层,目标实体能动态的提取句子中的相关信息;将双向LSTM的输出向量hs={h1,h2,…,hn},作为GCN-Attention层的输入;
步骤1-4:建立输出层
经过GCN-Attention层后,最后得到目标实体向量Attlast,last表示最后时刻的GCN-Attention层的输出;通过一个softmax分类器输出最后结果,计算如式(3)所示Final=softmax(WAttlast+b) (3)W,b为可训练参数;
步骤2:训练GCN-Attention模型
设定超参数,将训练集输入到GCN-Attention模型,得到损失函数值,再反向传播得到梯度,通过梯度值更新参数,经过设置的迭代次数的迭代之后,得到训练好的GCN-Attention模型;
步骤3:预测
GCN-Attention模型完成训练后,将要预测的测试集输入模型,即可得到准确率和损失函数值。
2.如权利要求1所述的基于GCN-Attention的情感分析方法,其特征在于,步骤1-3:建立GCN-Attention层,具体包括:步骤1-3-1:建立GCN子层
进入GCN-Attention层后,首先经过GCN子层,通过句法依存树对输入序列构建对称邻接矩阵,定义为A,计算gs=ReLU(A*hs*W),其中*表示为矩阵乘,A为通过依存树构建的对称邻接矩阵,W为可训练的参数,ReLU为激活函数;通过GCN子层得到的向量组gs,其每个向量的每一个特征均加上了在依存树上邻近向量的对应特征,即gs中的某一向量g,向量g的某一特征,均由该向量的在依存树上的附近向量的对应特征共同决定;在句法上进一步混合了句子信息;
步骤1-3-2:分离目标实体并池化
将GCN子层的输出gs={g1,g2,…,gn},抽取其中代表目标实体的向量Term={gr+1,gr+2,…,gr+m},m为目标实体Term的长度,r为目标实体Term在gs中的坐标;进行最大池化计算p=max(gr+1,gr+2,…,gr+m),得到向量p,此时目标实体的向量值为p;
步骤1-3-3:整合目标实体向量
由于有多个GCN-Attention层,存在不同时刻的目标实体向量p,定义当前目标实体向量为pt,表示t时刻的目标实体向量p,此时GCN-Attention层接受上一层目标实体向量pt-1,将pt与pt-1通过一个affine子层整合为一个目标实体向量,定义为zt,zt=ReLU(W(pt,pt-1)+b),其中W,b为可训练参数,ReLU为激活函数,(pt,pt-1)表示将pt和pt-1拼接为一个向量;
步骤1-3-4:建立Attention子层
由1-3-1得到向量组gs={g1,g2,…,gn},和由1-3-3得到的目标实体向量zt,将两者作为Attention子层的输入,计算如式(2)所示similarity(gi,zt)表示计算gi和zt的相似度,本方法采用的是向量内积和后再作用一个Softmax函数;定义Attention子层输出的目标向量为Attt,t代表当前时刻,于是输出目标实体Attt和向量组gs。
3.如权利要求1或2所述的基于GCN-Attention的情感分析方法,其特征在于,步骤2具体包括:步骤2-1:将训练集中的句子读到内存中,作为embedding层的输入步骤2-2:设定dropout=0.5,学习率η=0.01,用来控制模型的学习进度步骤2-3:设定最小化交叉熵误差函数, y
为训练输出值;
步骤2-4:设定迭代次数epoches,开始迭代训练
步骤2-5:计算训练数据集,在当前迭代次数i下,训练得到模型的损失函数值Eloss;
步骤2-6:模型权重参数更新,采用SGD的方式更新,
步骤2-7:判断迭代是否结束,若i<epoches,重复步骤2-5到2-6,否则输出训练模型。
4.如权利要求1或2所述的基于GCN-Attention的情感分析方法,其特征在于,步骤1-1:建立embedding层,所述的GloVe词向量维度选300。
5.如权利要求3所述的基于GCN-Attention的情感分析方法,其特征在于,步骤1-1:建立embedding层,所述的GloVe词向量维度选300。
6.如权利要求1或2或5所述的基于GCN-Attention的情感分析方法,其特征在于,步骤
1-3:建立GCN-Attention层,采用5层GCN-Attention层。
7.如权利要求3所述的基于GCN-Attention的情感分析方法,其特征在于,步骤1-3:建立GCN-Attention层,采用5层GCN-Attention层。
8.如权利要求4所述的基于GCN-Attention的情感分析方法,其特征在于,步骤1-3:建立GCN-Attention层,采用5层GCN-Attention层。