基于Attention神经网络的多元特征融合中文文本分类方法与流程

文档序号:15271945发布日期:2018-08-28 22:32阅读:2556来源:国知局
本发明涉及自然语言处理领域,尤其涉及基于attention神经网络的多元特征融合中文文本分类方法。
背景技术
:中文文本分类是高效管理与挖掘互联网上海量中文文本信息的重要手段,是自然语言处理中一个重要的研究方向。90年代以来,许多研究人员开始将各种统计学方法和机器学习方法应用于自动文本分类,例如支持向量机svm、adaboost算法、朴素贝叶斯算法、knn算法和logistic回归等。近年来,随着深度学习和各种神经网络模型的快速发展,基于深度学习的文本分类方法引起了学术界和工业界的密切关注与研究,一些典型的神经网络模型,如长短期记忆网络lstm和卷积神经网络cnn都被广泛地应用于文本的分类中,并取得了良好的效果。以往深度学习的网络模型都是通过增加网络层数来获得数据的深层特征,但层数增加会造成信息损失。近年来,attention算法开始用于文本的情感分析中,并且(张冲.(2016).基于attention-basedlstm模型的文本分类技术的研究.)证明了attention算法对于文本分类的有效性,对今后的研究提出了多种可能。现有的研究和应用已证明lstm(长短期记忆网络)适合用于学习句子中语言单元间的长期依赖关系,cnn(卷积神经网络)适合用于学习句子的局部特征,但目前的研究没有充分地结合三种算法的优势。技术实现要素:针对以上问题,本发明提出基于attention算法的权重生成算法;同时利用cnn和lstm各自特点,采用多元特征融合的方法将cnn、lstm和基于attention算法结合起来,提出适合中文文本分类任务的多元特征融合的神经网络模型。基于attention神经网络的多特征融合中文文本分类方法,包括以下阶段:阶段1:对中文文本语料进行预处理;阶段2:构建attention算法神经网络模型;阶段3:构建多元特征融合神经网络模型,所述多元特征融合的神经网络由三条cnn通路,一条lstm通路和一条attention算法通路并联组成;阶段4:模型训练,将训练集的词向量构成的嵌入层输入到多元特征融合的神经网络,得到的数据先通过一个全连接层,接着再输入到由softmax函数构成的分类器,进行训练并得到训练参数;阶段5:模型测试,将测试集的词向量构成的嵌入层输入到训练后的模型中,得到的数据先通过一个全连接层,接着再输入到softmax函数构成的分类器,分类器输出文本类别。所述预处理包含以下步骤:步骤(1)分词并生成词向量词典:收集中文文本语料,分词处理,利用word2vec训练生成词向量词典;步骤(2)数据集划分:将分词处理后的中文文本语料划分为训练集和测试集;步骤(3)文本数字化:使用tokenizer函数将训练集中的每个字,词和标点与词向量词典对比,生成训练集的词向量索引,用测试集与词向量词典对比,生成测试集的词向量索引;步骤(4)文本向量化:按词向量索引的索引号从词典中提取对应的词向量,并组成嵌入层;步骤(5)打标签:根据中文文本语料的类别数量,对语料的不同类别赋予one-hot形式的标签。分词处理后的语料保留标点及所有的字和词。分词处理后的每篇文章所生成的词向量矩阵维度相同。所述attention算法神经网络模型的输出为:aj=p(yt|yt-1,x),其中x为当前时间步的输入:x=[x1,x2…xn],n为每个词的向量维度;编码器lstm的隐藏层状态值公式为:ht=sigmoid(u1xt+w1ht-1)其中ht表示输入序列当前时间步对应的隐藏层状态值,ht-1表示前一时间步的隐藏层状态值,u1,w1为权值矩阵;对当前时间步的隐藏层状态值ht进行初步学习并得到学习结果m,ht初步学习的公式为:m=tanh(ht·ut+bh)其中,ut为权重矩阵,bh为偏置向量;对前一时间步的隐藏层状态值ht-1进行初步学习并得到学习结果d,ht-1初步学习的公式为:d=tanh(ht-1·wa+ba)其中,wa为权重矩阵,ba为偏置向量;接下来通过对ht和ht-1的初步学习结果进行非线性融合获得权重e:e=exp((m+d)·wh+bw)其中,wh为权重矩阵,bw为偏置向量;对权重e经过softmax归一化处理为attention权重:最后进行attention权重的分配:pe=h*a其中h=[h1,h2…ht],h为编码器lstm输出的编码向量,t为编码器lstm的输出神经单元的个数,a=(a1,a2…aj),为attention权重矩阵,pe为新的编码向量。所述三条cnn通路为cnn3,cnn4及cnn5,其卷积层数均为3层,各层的卷积核尺寸相同,三条cnn的卷积核尺寸依次为3,4及5,且池化层均采用最大池化。所述三条cnn通路,一条lstm通路和一条attention算法通路的输出在融合层以拼接融合的方式进行多元特征的融合。阶段4中所述的训练参数为:θ={wconv3,wconv4,wconv5,wlstm,watt,bconv3,bconv4,bconv5,blstm,batt},其中cnn3通路训练得到权重wconv3和偏置bconv3;cnn4通路训练得到权重wconv4和偏置bconv4;cnn5通路训练得到权重wconv5和偏置bconv5;lstm通路训练得到权重wlstm和偏置blstm;attention通路训练得到权重watt和偏置batt。对所述训练参数进行更新时,以损失函数loss对θ求偏导,优化方法选用adadelta。有益效果:本发明利用3条cnn通路,充分挖掘文本数据在3种不同尺寸卷积核粒度下的特征;同时,通过融合lstm通路来体现文本数据远距离之间的相互联系;特别地通过融合所提出的基于attention算法的神经网络模型使相对重要的数据特征在中文文本类别识别过程中发挥更大的作用。利用三种神将网络来实现文本不同层次特征的多元特征融合,以充分而全面地挖掘文本特征,从而提高模型对中文文本类别的识别能力。实验结果表明,同等实验条件下,相比于传统的cnn结构模型,中文文本分类准确率提高了8.1%,相比于lstm结构模型,中文文本分类准确率提高了7.22%,相比于cnn与lstm的组合模型,中文文本分类准确率提高了6.81%,充分表明本发明在中文文本分类的准确率上有大幅度提高。附图说明图1为基于attention神经网络的多元特征融合中文文本分类模型;图2为attention算法神经网络模型原理图;图3为多元特征融合示意图;图4为模型在100维词向量下的可视化结构图。具体实施方式在下文中将结合附图对本发明的示范性实施例进行描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构,且附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸。本实施例所采用的语料为复旦大学计算机与技术系国际数据库中心自然语言处理小组组织制作。预处理的主要流程如图1所示。所采用语料集包含中文文档9833篇,共分为20个种类。以60%的语料来进行训练,40%来进行测试。本实施例中以5900篇做训练集,用于训练模型及训练参数,剩余的3933篇作为测试集。计算机无法直接识别汉字文字,需要将原始文本数字化,即对中文文本进行预处理,再交给计算机处理。首先采用jieba软件对原始语料进行分词处理,当然也可以采用其他分词软件。一篇历史类文档中的一句话,在分词处理前后的效果对比如下:原始文本:《三国志》作为反映王朝正史的纪传体断代史书,却同时兼有三个中心,即:建立魏国的曹氏、建立蜀汉的刘氏和建立东吴的孙氏。经过分词处理:《三国志》作为反映王朝正史的纪传体断代史书,却同时兼有三个中心,即:建立魏国的曹氏、建立蜀汉的刘氏和建立东吴的孙氏。分词后的测试集与训练集经keras框架下的text.tokenizer函数处理,将文档中的词与词向量词典对比生成词向量索引,词向量索引即指字、词和标点在向量词典中的序号,这样整篇文档都以整数索引序号表示从而将中文文本以索引的形式数字化。这样处理有利于在一些步骤里降低文本表示的数据维度,节约计算资源,提高处理效率;在数据进入到神经网络训练前需要按照词的索引序号从词向量词典取出其对应的向量,这样整篇文本被转化为向量的形式。为便于神经网络的训练,以嵌入层作为神经网络的输入层,每批训练数据会被组织成一个嵌入矩阵。因为每篇文档长度不统一,本实施例设定每篇文档中最多取出1000个元素(字、词或标点),长度不足1000的通过补0来补齐长度;将原始中文文本语料每个类别下的文档重新命名为纯数字形式以便于程序读取与识别每一个文档,例如第一类艺术类类别编号为c3-art,将该类别下第一篇文章命名为03001,其它文档做同样处理。所用复旦大学组织的原始语料,全部9833文档共分20类,分别处于20个文件夹下。源代码会根据区分取出每篇文档的不同路径赋予文档one-hot形式的标签。对应20个类别,标签共20位。例如,第一类文档标签形式为:lable_1=[10000000000000000000]词向量词典需要预先通过word2vec软件训练获得,将分词处理后的原始语料作为输入,通过word2vec软件进行无监督训练,获得语料对应的词向量词典。本实施例中,word2vec中的参数设置如下:所用模型为cbow模型,窗口宽度window为8。用word2vec软件训练获得词向量词典时可以设定词向量的维度,如下所示:社会2.4020160.813078-0.7403240.7099571.9329200.7467451.903998-1.1249640.650539-5.803767-1.226215-1.071188-1.2201803.690851-2.195198-2.518928-0.276245-1.388180-0.795236-2.3792591.305508-0.490828-2.3541934.532573-3.750879-0.7275970.002439-1.862990-3.5832822.4836332.671552-1.990130-2.206837-1.6771911.355602-5.4862340.437826-0.969691-1.315391-1.932466-0.1240641.0097721.6901150.596448-2.0445551.4909210.9254210.053007-2.9611621.418103-0.4545721.194762-1.210553-0.6044470.0932281.9693871.869841-1.1733311.099674-2.617538-0.723793-5.5271640.4190121.0555000.4960551.572203-3.2488150.7705340.793675-0.632141-1.296838-1.2417610.7596520.385998-1.6791191.868979-1.866235-0.2612651.1008122.391621-4.5389410.3652652.5536611.4078902.932303-0.604748-1.614292-2.175274-1.4794222.9570662.9790360.6486910.8887731.363078-2.456858-3.657996-0.0754270.994992-1.3535420.906799本实施例使用word2vec训练制作了100维词向量的词典,用于训练与测试。本实施例使用100维的词向量的词典仅仅用于对本发明的解释说明,实际中可以提高维度来增加分类的准确率。构建attention算法神经网络模型:attention算法神经网络模型原理图如图2,首先以lstm作为编码器对已经被向量化表示的中文文本进行编码,获得文本的编码向量h,需要说明的是attention算法中的编码器选用lstm,仅用于attention内部做编码器,与lstm通路中的lstm单元不同且互不影响。然后对当前时间步的编码向量与前一时间步的编码向量进行初步学习,接下来对初步学习的结果进行非线性融合得到权重e,利用分类器softmax将权重进行归一化最后得到attention权重值a以及新的编码向量pe。构建多元特征融合神经网络模型:所述多元特征融合的神经网络由三条cnn通路,一条lstm通路和一条attention算法通路并联组成,如图3所示,进一步讲,ccn通路通过调整卷积核尺寸来获得数据在不同宽度视野下的局部特征,对于本实施例,当卷积核尺寸为3时,卷积窗口范围包括当前处理的对象及其前后两个元素,例如分词后的一句话:“《三国志》作为反映王朝正史的纪传体断代史书”,当卷积核尺寸为3时,分析“王朝”这个对象时,卷积窗口会包含“反应王朝正史”三个元素。本实施例中池化层均采用最大池化,在保留特征信息的基础上,降低cnn的输出维度。lstm通路用于提取文本中相距较远的两个词之间的相互影响。在经过cnn通路,lstm通路和注意力算法通路提取不同层次的文本特征后,通过融合层来实现各个通路输出的融合。融合层采用拼接融合(concat)方式,拼接融合各个神经网络通路输出向量,将各个通路提取的文本特征向量拼接融合在一起。各条通路的输出均为一维的数据,采用这种融合方式的优点是,由于各通路输出的一维数据尺寸不同,这种方式不必进行数据维数的统一,可以避免数据信息损失。融合层输出的数据进一步经过全连接层,最后进入到分类器中。分类器选择softmax函数,softmax会对输入进行归一化处理。初始化时需要预先设定数据集类别数,这里所用语料类别数为20,softmax输出样本属于这20个类别的概率,以其中最大值对应的类别标签作为对测试样本类别的判别。将分类器输出的测试结果与标签对比可知此次测试结果是否正确,然后统计出测试准确率,作为评价通过训练过程获得的模型性能的评价指标。模型的训练与测试主要过程如下:(1)模型训练:每一条神经网络通路都从嵌入层获得数据。其中cnn3通路训练目标是权重wconv3和偏置bconv3;cnn4通路训练目标是得到权重wconv4和偏置bconv4;cnn5通路训练目标是得到权重wconv5和偏置bconv5;lstm通路的训练目标是得到权重wlstm和偏置blstm;attention算法通路的训练目标是得到权重watt和偏置batt。沿神经网络正向传播时,所有通路的输出在融合层以拼接融合方式进行多元特征的融合。训练参数为:θ={wconv3,wconv4,wconv5,wlstm,watt,bconv3,bconv4,bconv5,blstm,batt}。反向传播时,以损失函数loss对θ求偏导,进行目标参数的更新,反向传播时采用的优化方法是adadelta;(2)模型测试:将测试数据沿神经网络正向传播训练后的多元特征融合模型,分类器输出测试样本属于每一类的概率,其中的最大值对应的序号即为测试样本文档所属类别;本实施例的实验环境为:底层框架:theano;顶层框架:keras;编程语言:python3.5;处理器:nvidiagpu;操作系统:win10。利用keras框架中的函数对本实施例的模型结构可视化如图4所示:图中sequential_1至sequential_3代表本发明的三条卷积通路,sequential_4代表单层的lstm通路,sequential_5代表attention通路,merge_1代表融合层,dense_1及dense_2层为全链接层。构建其他对比模型,进行对比测试,实验结果如表1所示:表1模型名称cnn3lstmc3lstmlattc3att分类准确率0.81560.82480.82890.82960.8321模型名称3cnnc3latt3clstm3catt3clatt分类准确率0.85760.86250.87530.87890.8970模型说明:本实施例中,为了简化书写,将本发明定义为3clatt,并且将其他对比模型用英文缩写简化,具体说明如下:cnn3是指单条cnn通路包含三层一维卷积层,卷积核尺寸均为3;lstm为单层的lstm网络;c3lstm为一条cnn3通路与一条单层lstm并联融合组成的模型;latt为一条lstm通路与一条attention算法通路并联融合组成的模型;c3att为一条cnn3通路与一条attention算法通路并联融合组成的模型;3cnn是指三条cnn通路并联融合的模型,每条通路均包含三层卷积核尺寸一致的一维卷积层,每条通路的卷积核尺寸分别为3、4和5;c3latt为一条cnn3通路与一条lstm通路及attention算法通路并联融合组成的模型;3clatt为本发明提出的多元特征融合模型。模型的融合方式均为拼接融合(concat),不同之处在于并联通路配置的不同。评价指标中分类准确率均为测试准确率。从本实施例可以看出本实施例提出的多元特征融合模型3clatt的准确率比独立的cnn模型提高了8.1%,比独立的lstm模型提高了7.22%,比cnn与lstm的组合模型提高了6.81%,充分说明了在分类性能上优于其他对比模型,证明了该发明提出的模型3clatt在中文文本分类任务上的有效性和优越性。最后说明的是,尽管根据有限数量的实施例描述本发明,但是受益于上面的描述,本
技术领域
内的技术人员应当理解,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和宗旨的情况下,对于本
技术领域
的普通技术人员来说,许多修改和变更是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1