一种基于双向循环注意力神经网络的文本分类方法与流程

文档序号:17131218发布日期:2019-03-16 01:15阅读:373来源:国知局
一种基于双向循环注意力神经网络的文本分类方法与流程

本发明属于学习、自然语言处理技术领域,具体地说,涉及一种基于双向循环注意力神经网络的文本分类方法。



背景技术:

近年来,随着互联网的飞速发展,随之产生的信息也越来越多,例如文本,图像,音频,视频等信息,其中文本信息的数据量最大,所以对文本数据的处理也变得越来越重要,如何对这些海量的文本数据进行快速地分类,成为我们急需解决的问题,这也催生了文本分类技术的产生。文本分类技术意图实现对文本信息的快速、自动的分类,从而提供一种有效的文本信息分类方法。

传统基于文本分类方法的研究主要是基于机器学习算法来实现的,基于机器学习的分类技术一般需要先获取文本的特征信息,然后构建分类器。主要是通过分析句子的句法结构,提取主干关键词及其附属词作为分类特征,利用决策树、支持向量机、朴素贝叶斯等机器学习算法进行文本分类。以上方法主要根据人工制定特征以及多种特征组合的方式来表示句子特征,不仅含有一定的人为主观性,而且当句子结构复杂度比较高时,人工定制规则更加复杂,难度较大。

鉴于深度学习在计算机视觉领域取得了较大的成果,很多专家学者便尝试在文本信息处理方面使用深度学习模型,较为常见的主要是通过卷积神经网络(cnn),循环神经网络(rnn)来训练词向量和进行语言建模以增强语言模型的表征能力。这种方法在做句子分析时,将每个单词分配同样的权重值,无法分离出对句子分类贡献值较大的单词,致使在特征提取的过程中产生信息丢失和信息冗余现象。

中国专利公开号:cn107038480a,公开日:2017年08月11日,公开了一种基于卷积神经网络的文本情感分类方法,包括以下步骤:搜集文本语料集,将文本里的数据表示成一个句子;对搜集的文本语料进行预处理,并将情感语料分为训练集语料和测试集语料;对预处理后的文本预料集用word2vec工具训练出词向量模型并得到文本向量;将训练集语料的文本向量输入卷积神经网络训练出情感分类模型;将测试集语料的文本向量输入卷积神经网络,并用已经训练好的情感分类模型进行情感类别分类并计算出情感分类的准确率。本发明克服了以往分类时需要大量的人工标注的问题。但是本发明的不足之处在于:(1)虽然对搜集的文本语料进行了预处理,但是将文本语料集进行划分之后,就直接进行了应用,并没有对文本语料集做进一步地处理,在后期的应用中,其中对表征文本不起作用的字符等容易产生扰乱;(2)该发明通过已经训练好的情感分类模型对文本语料集进行情感分类计算,但是却只有一次计算,计算精度无法保证。



技术实现要素:

1、要解决的问题

针对现有文本分类过程中存在的信息丢失和信息冗余现象,本发明提供了一种基于双向循环注意力神经网络的文本分类方法;该方法在文本特征学习模型中融合了注意力机制,可以有效地突出关键词的作用,使得模型的性能得到更大的提高,进一步提升文本分类的准确性。

2、技术方案

为解决上述问题,本发明采用如下的技术方案。

一种基于双向循环注意力神经网络的文本分类方法,所述分类方法具体如下:

步骤1、对数据进行预处理;

步骤2、根据所述预处理后的数据,通过word2vec方法完成对每个单词的词向量的生成与训练;

步骤3、根据所述词向量,对该词向量进行文本语义特征抽取,并融合注意力机制和双向循环神经网络,计算出每个单词对于整体的权重,并将所述权重转换为模型的输出值y(4)

步骤4、根据特征向量y(4),将所述特征向量y(4)作为softmax分类器的输入,进行分类识别。

更进一步地,所述步骤1具体过程如下:

步骤1.1、数据清洗,去除噪声和无关数据;

步骤1.2、数据集成,将多源数据结合起来存放在统一的数据仓库中;

步骤1.3、构造实验数据集,选择80%数据作为训练集,其余20%数据作为测试集;

步骤1.4、对数据集进行按词语为单位做分词处理;

步骤1.5、去除停用词,清除文本中对表征文本不起作用的词语。

更进一步地,所述步骤2具体过程如下:

步骤2.1、将分词后的文本输入到word2vec模型中,随机生成一个词向量矩阵e={e(w1),e(w2),...,e(wn)},其中每个词的语义都是由一个向量进行表示;

步骤2.2、在每一个单词上均使用逻辑回归算法进行训练,预测出最有可能在该单词周围词的词向量,具体公式如下:

其中:wi为当前词;cij为当前词的上下文;c为上下文窗口内的词;θ为后验概率参数;

步骤2.3、在模型逐渐达到收敛的过程中,获取词向量在词向量矩阵中的值,得到所有词的词向量。

更进一步地,所述步骤3具体过程如下:

步骤3.1、采用双向循环结构,获取每个词语的上下文表示;

步骤3.2、根据每个词语的上下文表示,获取每个词语的语义表示xi,具体公式如下:

xi=[mi(wi);e(wi);mr(wi)]

其中:ml(wi)为当前词的左侧语义表示;mr(wi)为当前词的右侧语义表示;e(wi)为当前词的词向量;

步骤3.3、将单词语义表示xi经过一个双向循环神经网络,获取其隐含表示ui;

步骤3.4、根据单词最终隐含表示ui,进行注意力分配概率计算,将单词表示进行一个encoder-decoder的过程,将某一时刻的输入值的权重与上一时刻的隐含层的状态进行相似度检测,得到每个单词对于整体的权重,对每个单词的语义表示分配以不同的权重;

步骤3.5、通过池化层进行降维操作,将不同长度的文本转换为固定长度的向量y(3),具体计算公式如下:

步骤3.6、通过一个线性神经网络得到模型的输出值y(4),具体计算公式如下:

y(4)=w(4)y(3)++b(4)

其中:w(4)为初始化的转换矩阵;b(4)为偏置单元。

更进一步地,所述步骤3.1具体过程如下:

步骤3.1.1、获取单词的前文语义表示ml(wi),其中ml(wi)具体定义如下:

ml(wi)=f(w(l)ml(wi-1)+w(sl)e(wi-1))

其中:f为sigmod激活函数;w(l)为用于隐藏层中前文语义转化为下一层隐藏层的矩阵;w(sl)为用于连接当前词与前文语义的矩阵;wi-1为当前词的前一个词;e(wi-1)为当前词前文词语的词向量;

步骤3.1.2、获取单词的后文语义表示mr(wi),其中mr(wi)具体定义如下:

mr(wi)=f(w(r)mr(wi+1)+w(sr)e(wi+1))

其中:f为sigmod激活函数;w(r)为用于隐藏层中后文语义转化为下一层隐藏层的矩阵;w(sr)为用于连接当前词与后文语义的矩阵;wi+1为当前词的后一个词;e(wi+1)为当前词后文词语的词向量。

更进一步地,所述步骤3.3具体过程如下:

步骤3.3.1、通过正向传输,获取当前单词的正向隐含表示具体计算公式如下:

其中:f为tanh激活函数;当前词之前状态的隐含表示;xi为当前词语义表示;

步骤3.3.2、通过逆向传输,获取当前单词的逆向隐含表示具体计算公式如下:

其中:f为tanh激活函数;为当前词之后状态的隐含表示;xi为当前词语义表示;

步骤3.3.3、根据所述当前单词的正向隐含表示和当前单词的逆向隐含表示获取当前单词的最终隐含表示ui,具体计算公式如下:

更进一步地,所述步骤3.4具体过程如下:

步骤3.4.1、在encoder编码阶段得到句子的隐含表示序列[u1,u2,u3,...,un];

步骤3.4.2、在decoder解码阶段,计算第i-1时刻隐含层状态与输入中各个隐含表示之间的关联程度pij,具体计算公式如下:

pij=f(ti-1,uj)

其中:f为一个小型神经网络,用于计算ti-1和uj两者之间的关系分数;ti-1为解码器在第i-1时刻的隐含层节点状态;

步骤3.4.3、使用softmax函数进行归一化操作,获取i时刻的输出值在n个隐藏状态中的注意力分配向量aij,具体计算公式如下:

步骤3.4.4、根据所述单词的隐含表示uj与注意力权重aij,进行加权和得到每个单词wi基于整体内容权重的表示yi(2),具体计算公式如下:

更进一步地,所述步骤4具体过程如下:

步骤4.1、将已经标注好类别的训练集特征向量及其类别均输入到分类器进行训练;

步骤4.2、将训练好的softmax模型对测试集文本的特征向量y(4)进行分类操作,得到一个一维向量pθ(y(4)),具体公式如下:

其中:θm为模型训练第m类别的参数;为θm的转置操作结果;k为预设的文本分类种类数量;

步骤4.3、根据所述一维向量pθ(y(4)),选取一维向量pθ(y(4))中值最大的元素。

3、有益效果

相比于现有技术,本发明的有益效果为:

(1)本发明在文本特征学习模型中融合了注意力机制,其中注意力机制是一种模拟人脑注意力的模型,在进行任务处理时对于关键部分可分配较多的注意力,而对于其他不重要的部分可分配较少的注意力,从而减少了不重要因素对任务处理的影响,并且可以合理的利用计算资源,故此方法可以有效地突出关键词的作用,使得模型的性能得到更大的提高,进一步提升文本分类的准确性;

(2)本发明通过将所需数据进行预处理,去除噪声、无关数据以及对表征文本不起作用的词语,可以减少文本分类过程中消耗的时间,提高工作效率;

(3)本发明通过逻辑回归算法进行训练,并将训练得到的概率向量与真实概率向量进行匹配,在构建特征提取模型时,采用基于深度学习的文本分类方法,从而减少了人工提取特征的困难和不准确性,也极大地加快了模型训练速度;

(4)本发明在构造单词语义表示时,采用双向循环神经网络结构,将单词的词向量表示及单词的前后上下文三者相结合,利用了语义分析时句子的上下文关联性,从而极大地提高了句子的语义表达性;

(5)本发明在学习文本语义特征时,采用融合注意力机制的方法,将对文本语义更有意义的关键词分配以更高的权重,减少了特征提取过程中的信息丢失和信息冗余,一定程度上提高了文本分类的准确性。

附图说明

图1为本发明基于双向循环注意力神经网络的文本分类方法的流程图;

图2为本发明采用的基于循环结构的单词语义表示模型图;

图3为本发明构建的基于双向循环注意力神经网络模型图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。

实施例1

本实施例提供了一种基于双向循环注意力神经网络的文本分类方法,图1是本实施例的流程图,如图1所示,该流程包括以下步骤:

(1)数据预处理,具体过程如下:

(1.1)数据清洗,去除噪声和无关数据。

(1.2)数据集成,将多源数据结合起来存放在统一的数据仓库中。

(1.3)构造实验数据集,选择80%数据作为训练集,其余20%数据作为测试集。

(1.4)对数据集进行按词语为单位做分词处理,本实施例中,中文分词使用的是开源的jieba分词算法,设一条文本d由n个词构成,经分词处理后词语序列为d={w1,w2,...,wn}。

(1.5)去除停用词,清除文本中对表征文本不起作用的词语。

通过将所需数据进行预处理,去除噪声、无关数据以及对表征文本不起作用的词语,可以减少文本分类过程中消耗的时间,提高工作效率。

(2)词向量的生成与训练,通过步骤(1.4)可知:经过分词操作后,每一个文本都可以表示为d={w1,w2,...,wn},其中词的向量化表示目的是生成每个单词所对应的词向量,从而形成词向量矩阵e,在构建特征提取模型时,采用基于深度学习的文本分类方法,可减少人工提取特征的困难和不准确性。

具体地讲,在本实施例中采用google的word2vec方法完成对单词的词向量的生成与训练,具体过程如下:

(2.1)将分词后的文本输入到word2vec模型中,随机生成一个词向量矩阵e={e(w1),e(w2),...,e(wn)},其中每个词的语义都是由一个向量进行表示。

(2.2)在每一个单词上均使用逻辑回归算法进行训练,这是为了保证文本的后验概率能够最大化,从而预测出最有可能在该单词周围词的词向量,具体公式如下:

其中:wi为当前词;cij为当前词的上下文;c为上下文窗口内的词;θ为后验概率参数。

(2.3)在模型训练时,不断更新词向量在词向量矩阵中的值,当该模型训练到收敛时,便可以得到词典中所有词语的词向量,有相近语法和语义的词语的词向量在向量空间中的距离相近。

通过逻辑回归算法进行训练,并将训练得到的概率向量与真实概率向量进行匹配,可加快模型的训练速度。

(3)根据步骤(2)中的词向量,对该词向量进行文本语义特征抽取,具体过程如下:

(3.1)采用双向循环结构,获取每个词语的上下文表示,利用语义分析时句子的上下文关联性,极大地提高了句子的语义表达性,具体过程如下:

(3.1.1)将ml(wi)定义为当前词wi的前文语义,获得单词的前文语义表示ml(wi),其中ml(wi)具体定义如下:

mi(wi)=f(w(l)ml(wi-1)+w(sl)e(wi-1))

其中:f为sigmod激活函数;w(l)为用于隐藏层中前文语义转化为下一层隐藏层的矩阵;w(sl)为用于连接当前词与前文语义的矩阵;wi-1为当前词的前一个词;e(wi-1)为当前词前文词语的词向量。

(3.1.2)将mr(wi)定义为当前词wi的后文语义,获得单词的后文语义表示mr(wi),其中mr(wi)具体定义如下:

mr(wi)=f(w(r)mr(wi+1)+w(sr)e(wi+1))

其中:f为sigmod激活函数;w(r)为用于隐藏层中后文语义转化为下一层隐藏层的矩阵;w(sr)为用于连接当前词与后文语义的矩阵;wi+1为当前词的后一个词;e(wi+1)为当前词后文词语的词向量。

(3.2)获得每个词语的语义表示xi,根据步骤(3.1)中当前词的左侧语义表示ml(wi),当前词的右侧语义表示mr(wi),以及当前词的词向量e(wi),三者进行线性叠加求和的方式得到xi,如图2所示,其图2为本实施例采用基于循环结构的单词语义表示的模型图,其中xi的具体表示如下:

xi=[mi(wi);e(wi);mr(wi)]

(3.3)根据步骤(3.2)中的单词语义表示xi,将其经过一个双向循环神经网络,则可获得其隐含表示ui,其隐含表示不仅与当前词的语义表示有关,还与之前的状态和之后的状态都有关,如图3所示,其图3为本实施例构建基于双向循环注意力神经网络的模型图,其中具体过程如下:

(3.3.1)通过正向传输,获得当前单词的正向隐含表示具体计算公式如下:

其中:f为tanh激活函数;当前词之前状态的隐含表示;xi为当前词语义表示。

(3.3.2)通过逆向传输,获得当前单词的逆向隐含表示具体计算公式如下:

其中:f为tanh激活函数;为当前词之后状态的隐含表示;xi为当前词语义表示。

(3.3.3)根据步骤(3.3.1)中单词的正向隐含表示和步骤(3.3.2)中单词的逆向隐含表示分别在其最后一个状态得到的向量进行连接操作,获得当前单词的最终隐含表示ui,具体计算公式如下:

(3.4)根据步骤(3.3.3)中单词最终隐含表示ui,进行注意力分配概率计算,将单词表示进行一个encoder-decoder的过程,某一时刻的输入值的权重与上一时刻的隐含层的状态有关,二者进行相似度检测,得到每个单词对于整体的权重,对每个单词的语义表示分配以不同的权重,对关键词分配以更高的权重,如图3所示,具体过程如下:

(3.4.1)在encoder编码阶段得到句子的隐含表示序列[u1,u2,u3,...,un]。

(3.4.2)在decoder解码阶段,计算第i-1时刻隐含层状态与输入中各个隐含表示之间的关联程度pij,具体计算公式如下:

pij=f(ti-1,uj)

其中:f为一个小型神经网络,用于计算ti-1和uj两者之间的关系分数;ti-1为解码器在第i-1时刻的隐含层节点状态。

(3.4.3)使用softmax函数进行归一化操作,得到i时刻的输出值在n个隐藏状态中的注意力分配向量aij,具体计算公式如下:

(3.4.4)将步骤(3.4.3)中单词的隐含表示uj与注意力权重aij,进行加权和得到每个单词wi基于整体内容权重的表示yi(2),具体计算公式如下:

(3.5)通过池化层进行降维操作,将不同长度的文本转换为固定长度的向量y(3),具体计算公式如下:

其中:y(3)的第k个元素是yi(2)的第k个元素的最大值。

(3.6)通过一个线性神经网络得到模型的输出值y(4),具体计算公式如下:

y(4)=w(4)y(3)+b(4)

其中:w(4)为初始化的转换矩阵;b(4)为偏置单元;w(4)与b(4)在神经网络训练时会随机赋予初始值,最终结果将通过神经网络训练结果得到其准确值。

其中注意力机制是一种模拟人脑注意力的模型,在进行任务处理时对于关键部分可分配较多的注意力,而对于其他不重要的部分可分配较少的注意力,从而可减少不重要因素对任务处理的影响,并且可以合理的利用计算资源,从而可以有效地突出关键词的作用,使得模型的性能得到更大的提高,进一步提升文本分类的准确性。

(4)将步骤(3.6)中特征向量y(4)作为softmax分类器的输入,进行分类识别,具体过程如下:

(4.1)将已经标注好类别的训练集特征向量及其类别均输入到分类器进行训练。

(4.2)将训练好的softmax模型对测试集文本的特征向量y(4)进行分类操作,得到一个一维向量pθ(y(4)),所输出的一维向量的元素数与预设的文本分类结果种类数量相同,具体公式如下:

其中:θm为模型训练第m类别的参数;为θm的转置操作结果;k为预设的文本分类种类数量。

(4.3)根据步骤(4.2)中输出的一个大小为1*k的一维向量pθ(y(4)),选取该一维向量pθ(y(4))中值最大的元素,其所对应的类别即为文本预测所属的类别。

将对文本语义更有意义的关键词分配以更高的权重,选取一维向量pθ(y(4))中值最大的元素,可减少特征提取过程中的信息丢失和信息冗余,从而一定程度上提高了文本分类的准确性。

综上所述,文本分类技术已经被广泛运用于包括文本检索,网页分层目录,题材检测等重要应用领域。本实施例针对当前互联网大数据时代下的海量文本数据,提出了一种基于双向循环注意力神经网络的文本分类方法,本实施例在构建单词文本表示时,采用一种双向循环神经网络的单词上下文的表示方法,有效的结合文本语义上下文关联性的特点,使得在做语义表示时,能够精准的表示语义特征。并且在深度学习模型中融合注意力机制,计算出文本单词序列对于文本整体语义表示信息的注意力概率,即权重,从而减少了特征提取过程中的信息丢失和信息冗余,实现了文本信息精准有效的分类。

以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明创造的实施方式之一,实际的方法并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的方法步骤及实施例,均应属于本专利的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1