1.一种用于文本情感分类的方法,其将长短时记忆网络LSTM模型和宽度学习系统BLS进行结合形成LSTM‑BLS模型,其步骤如下:步骤1:对所述长短时记忆网络LSTM模型进行数学建模所述长短时记忆网络LSTM模型如下:
ft=σ(Wf·[ht‑1,xt]+bf) (1)it=σ(Wi·[ht‑1,xt]+bi) (2)ot=σ(Wo[ht‑1,xt]+bo) (5)ht=ot*tanh(Ct) (6)其中xt是输入向量,it是时间步长t中的输入状态,ft是时间步长t中的遗忘状态,ot是时间步长t中的输出状态,ht‑1和ct‑1是时间步长t‑1中的隐藏状态和单元状态,以tanh和sigmoid激活函数σ的形式添加非线性,Wf、Wi、Wc、Wo分别代表遗忘门、输入门、记忆单元和输出门的权值向量,bf、bi、bc、bo分别代表遗忘门、输入门、记忆单元和输出门的损坏变量,*是矩阵的Hadamard积;
步骤2:所述LSTM‑BLS模型进行数学建模通过训练长短时记忆网络LSTM模型再通过全连接层得到宽度学习系统BLS的映射特n征,利用公式(7)将经LSTM模型训练后的全连接层作为映射形成的前n组映射特征集合Z =[Z1,Z2,...,Zn],每组包含节点v个,这些特征节点经过激活函数非线性变换生成m组增强节点E,每组包含节点η个,n
E=ζ(ZWhj+βhj),j=1,2,...,m (7)其中E是增强结点,Whj和βhj是随机生成的连接权重和偏置;
所述LSTM‑BLS模型整体表示为:
n n
Y=[Z1,...,Zn|ζ(ZWh1+βh1),...,ζ(ZWhm+βhm)]W=[Z1,...,Zn|E1,...,Em]Wn m
=[Z|E]W
=HW (8)其中Y是真实值,利用Y算出权重W,H是隐藏层,见公式(10);
因为LSTM‑BLS增强结点的权重Wh是随机选择的,当权重一旦选定,就无需通过训练来进行调参或求解,只需要利用公式(9)求解输出权重W,其中||·||F是指F范数,H是隐藏层由公式(10)表示:n m K×L
H=[Z|E]=(h1,h2,...,hL)∈R (10)K
其中:hj∈R ,j=1,...,L为隐藏层H的第j节点,L=nv+mη是隐藏层节点数;
公式(9)是一个最小二乘问题,是关于输出权重W的凸优化估计,旨在求出使训练误差最小时的输出权重W,利用公式(11)对其进行求解得到,+
W=HY (11)+
其中H是H的伪逆,为了提升网络的泛化能力,在原式上加上F范数正则项防止网络过拟合得到公式(12),公式(12)为一个经典的凸优化问题,C表示对权重平方和的约束,因此,利用公式(13)容易得到输出权重W,T T ‑1
W=H(CI+HH) Y,K<L
T ‑1 T
W=(CI+HH) HY,K≥L (13)所述LSTM‑BLS模型包括:
第1层是输入层,把数据中积极的和消极的文本信息一起输入到模型中;
第2层是嵌入层(Embedding layer),先打乱文本顺序,然后用Jieba分词工具对输入的句子进行分词操作,最后使用词向量训练工具把这些词语转换为向量形式后作为神经网络的输入,要选择最大词个数,最后把输入的每个词语映射成一个向量表示,要选取词向量维度;
第3‑5层是长短时记忆网络LSTM层,所述LSTM层通过选取合适的神经元个数(Number ofNeurons)、损失函数(Loos)、优化器(Optimizer)、每批数据量(Batch_size)、训练次数(Epochs)和加入Dropout的随机丢弃比率的值用来提取句子特征;
第6层是全连接层Dense层,将LSTM层输出端融合的特征作为全连接层的输入,选择神经元个数;
第7层为宽度学习系统BLS层,所述BLS层利用LSTM层提取到的特征来进行计算,确定其中每个映射特征点的个数N1、映射特征个数N2、增强节点个数N3以及正则化参数C;
第8层为输出层;
步骤3:设置超参数
给所述嵌入层的词向量维度赋值;
给所述长短时记忆网络LSTM层的神经元个数Number ofNeurons、损失函数Loos、优化器Optimizer、每批数据量Batch_size、训练次数Epochs和加入Dropout的随机丢弃比率赋值;
给所述全连接层Dense层的神经元个数赋值;
给所述宽度学习系统BLS层的每个映射特征点的个数N1、映射特征个数N2、增强节点个数N3以及正则化参数C赋值;
步骤4:计算准确率、召回率和F1值
所述准确率计算公式:
所述召回率计算公式:
所述F1值计算公式:
其中:TP为正确的匹配数目;FP为误报,匹配不正确的数目;FN为漏报,没有找到正确匹配的数目;TN为正确的非匹配数目。
2.根据权利要求1所述的方法,其特征在于,所述LSTM层包括LSTM‑1层、LSTM‑2层和LSTM‑3层,所述LSTM‑1层的神经元个数为256,所述LSTM‑2层的神经元个数为128,所述LSTM‑3层的神经元个数为64。
3.根据权利要求1或2所述的方法,其特征在于,所述LSTM‑BLS模型采取Python语言。