基于超深卷积神经网络结构模型的中文文本分类方法与流程

文档序号:12305561阅读:3447来源:国知局
基于超深卷积神经网络结构模型的中文文本分类方法与流程
本发明涉及自然语言处理和深度学习
技术领域
,特别涉及一种基于超深卷积神经网络结构模型的中文文本分类方法。
背景技术
:随着移动互联网、社交和新媒体等网络平台爆发式的增长,网络中充斥了大量缺乏有效信息组织但具有研究价值的文本,而文本分类作为自然语言处理的关键技术之一,能够有效解决信息杂乱等问题,并广泛应用于搜索引擎、垃圾邮件过滤、个性化新闻和资料分拣等任务中。因此,文本分类在自然语言处理、数据的智能化组织与管理等领域发挥着重要的作用。传统的文本分类主要依靠知识工程分类法,首先需要对文本进行复杂预处理之后手动抽取文本特征,比如“词袋”(bag-of-words)、n-grams以及tf-idf等,然后再利用特征训练分类器。卷积神经网络(cnn)最初被应用于图像处理和语音识别领域,目前也有越来越多的人将神经网络技术应用到自然语言处理领域中。余本功等(余本功,张连彬.基于cp-cnn的中文短文本分类研究.计算机应用研究)提出了一种结合词和字符的双输入卷积神经网络模型cp-cnn,有效提高了短文本分类的效果。yangz等(yangz,yangd,dyerc,etal.hierarchicalattentionnetworksfordocumentclassification[c]proceedingsofnaacl-hlt.2016:1480-1489.)将注意力机制引入到网络结构进行文本分类,提高了分类的准确率。夏从零等(夏从零,钱涛,&姬东鸿.(2017).基于事件卷积特征的新闻文本分类.计算机应用研究,34(4),991-994.)提出了一种基于事件卷积特征的文本分类方法。但由于自然语言本身结构的特殊性,自然语言中有着上下文依赖的非连续关系,上述所研究的卷积神经网络模型均存在着卷积核大小难以确定、文本的向量维度过高等问题,并且这些模型与目前应用于图像处理和语言识别领域优秀的网络相比结构仍然较浅,卷积神经网络(cnn)是多个网络层叠加组成的,较浅是指用于文本分类的cnn层数与图像处理和语音识别领域的cnn层数相比,文本分类的cnn层数少,分类的效果和准确率也低于图像处理和语音识别领域。hek等人(hek,zhangx,rens,etal.deepresiduallearningforimagerecognition[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition.2016:770-778.)研究表明,对现有的传统卷积神经网络模型(cnn)单纯增加网络层都会导致梯度消失和准确率下降,并不能提高文本分类的效果。在自然语言处理中一般将每一个词作为基本单元进行向量表示。目前,词的表示主要分为独热表示(one-hot)和分布式表示(distributedrepresentation)。独热表示是自然语言处理中最直观和最常用的词表示法,该方法把每个词表示为只有一个维度的值为1其余值为0的长向量。其中,维度表示词汇表的大小,值为1的维度表示当前词。但是利用独热表示词导致任意词之间都是无联系的,这对于卷积神经网络进行文本分类是致命的。同时,海量文本使用独热表示也会导致向量维度灾难。技术实现要素:针对现有技术的不足,本发明拟解决的技术问题是,提供一种基于超深卷积神经网络结构(简称vdcnn)模型的中文文本分类方法,该方法解决了在中文文本分类中向量维度过高以及传统卷积神经网络存在的卷积核大小难以确定和梯度消失,准确率不足等问题。本发明解决所述技术问题采用的技术方案是,提供一种基于超深卷积神经网络结构模型的中文文本分类方法,该方法包括以下步骤:步骤1:从网上搜集词向量的训练语料,并结合中文分词算法对训练语料进行分词处理,同时去除停用词,建立词典d,然后利用word2vec工具训练词典d中的词,得出词向量模型,同时获得词向量;步骤2:从网上搜集多个中文新闻站点的新闻,标记新闻的类别,作为文本分类的语料集,并将文本分类的语料集中的文本分类语料分为训练集语料和测试集语料;步骤3:将步骤2中的训练集语料和测试集语料分别进行分词处理,然后利用步骤1得到的词向量模型得出训练集语料和测试集语料分别对应的词向量;步骤4:建立超深卷积神经网络结构模型,第一层为词嵌入层,在词嵌入层之后连接五个卷积块,每个卷积块内部由卷积层连接而成,卷积块内部每进行一次卷积之后进行一次批规范化操作,每个卷积层中卷积核的数量均为3;设置每个卷积块之间进行池化操作,同时在每个卷积块之间设置一个捷径连接,在最后一个卷积块之后进行最大值池化,之后连接三个全连接层,设置卷积层和全连接层的激活函数均为relu,再通过softmax进行分类,得到超深卷积神经网络结构模型,所述超深卷积神经网络结构模型的深度为词嵌入层的个数、全连接层的个数和卷积层的个数三者之和;步骤5:将步骤3中得到的训练集语料所对应的词向量输入到步骤4中建立的超深卷积神经网络结构模型中,训练得出文本分类模型;将步骤3中测试集语料所对应的词向量输入到文本分类模型中,输出测试集语料所对应的分类结果,计算文本分类模型的准确率为90%以上即可用于中文文本分类;步骤6:将需要分类的中文文本输入到步骤1的词向量模型中,得到该需要分类的中文文本的词向量,然后将该词向量输入到步骤5的文本分类模型中,即完成中文文本分类。与现有技术相比,本发明的有益效果如下:本发明将自行设计的超深卷积神经网络(vdcnn)模型用于中文文本分类,并且把词向量与之相结合,在设计超深卷积神经网络(vdcnn)模型时,将网络结构模型的深度增加,同时在超深卷积神经网络(vdcnn)中加入batchnormalization和深度残差网络(resnets)的shortcut,用以解决深度增加所带来的梯度消失和精确度下降等问题。在以往的卷积神经网络模型中进行文本分类时,卷积核的数目大小可能是3、5或者7,但是对于本发明所设计的vdcnn模型而言,只需要将所有卷积层的卷积核大小设置为3,因为两个连续3×3的卷积核与一个5×5大小的卷积核具有相同的感受野,而3个连续的3×3的卷积核与一个7×7的卷积核具有相同的感受野。由于设置所有的卷积层激活函数为relu,所以每一个卷积层增加了决策函数的非线性。于是,相比使用一个7×7大小的卷积核,3个连续3×3大小的卷积核进行了3次非线性处理,这样就增加了网络结构的学习能力,输入文本经过深层网络的卷积之后就能得到具有更加优秀表征效果的特征向量。另外,使用3×3的卷积核降低了参数的个数,假设三个卷积层使用3×3大小的卷积核处理c通道的特征图时,一共有3×(32×c2)=27c2个参数,而一个7×7卷积核的卷积层则有1×(72×c2)=49c2个参数,减少了约50%。在文本进入到词向量模型后,能够将文本单词转换为低维度向量,且把相似词和近义词的向量放置在距离较近的向量空间中,当文本向量经过超深卷积神经网络(vdcnn)模型之后能够优秀地将文本的特征提取出来,显著提升了文本分类的效果。最后在sogou语料库和复旦大学中文语料库上进行了实验,其文本分类的精确度(accuracy)能够达到99.12%,相较于其他文本分类方法,提高约3%,并且实验2的结果表明,随着文本分类模型深度的增加其分类效果也不断增强。本发明方法将词向量和vdcnn相结合进行中文文本分类,可应用于文本的低维度向量化表示以及海量文本的分类任务等,并最终应用于用户个性化推荐系统、信息检索和意图理解等多个子领域。附图说明图1是skip-gram模型的结构示意图;图2是vdcnn模型结构示意图;图3是卷积块的结构示意图,图中卷积块由两个卷积层构成。具体实施方式为使本发明的技术方案和优点更加清晰,以下结合实施例及附图对本发明作进一步详细说明。本发明基于超深卷积神经网络结构模型的中文文本分类方法,该方法包括以下步骤:步骤1:从网上搜集词向量的训练语料,并结合中文分词算法对训练语料进行分词处理,同时去除停用词,建立词典d,然后利用word2vec工具训练词典d中的词,得出词向量模型,同时获得词向量;步骤2:从网上搜集新浪、网易、腾讯等多个中文新闻站点的新闻,标记新闻的类别,作为文本分类的语料集,并将文本分类的语料集中的文本分类语料分为训练集语料和测试集语料;步骤3:将步骤2中的训练集语料和测试集语料分别进行分词处理,然后利用步骤1得到的词向量模型得出训练集语料和测试集语料分别对应的词向量;步骤4:建立超深卷积神经网络结构模型,第一层为词嵌入层,在词嵌入层之后连接五个卷积块,每个卷积块内部由卷积层连接而成,卷积块内部每进行一次卷积之后进行一次批规范化操作(batchnormalization),每个卷积层中卷积核的数量均为3;设置每个卷积块之间进行池化操作,同时在每个卷积块之间设置一个捷径连接(shortcut),在最后一个卷积块之后进行最大值池化,之后连接三个全连接层,设置卷积层和全连接层的激活函数均为relu(rectifiedlinearunits),再通过softmax进行分类,得到超深卷积神经网络结构模型,所述超深卷积神经网络结构模型的深度为词嵌入层的个数、全连接层的个数和卷积层的个数三者之和;步骤5:将步骤3中得到的训练集语料所对应的词向量输入到步骤4中建立的超深卷积神经网络结构模型中,训练得出文本分类模型;将步骤3中测试集语料所对应的词向量输入到文本分类模型中,输出测试集语料所对应的分类结果,计算文本分类模型的准确率为90%以上即可用于中文文本分类;步骤6:将需要分类的中文文本输入到步骤1的词向量模型中,得到该需要分类的中文文本的词向量,然后将该词向量输入到步骤5的文本分类模型中,即完成中文文本分类。本发明方法的进一步特征在于所述超深卷积神经网络结构模型的深度为12-29,当深度为12时,前两个卷积块中卷积层的数量均为1,后三个卷积块中卷积层的数量均为2;当深度为14时,每个卷积块中卷积层的数量均为2;当深度为17时,前两个卷积块中卷积层的数量均为2,后三个卷积块中卷积层的数量均为3;当深度为20时,前两个卷积块中卷积层的数量均为2,后三个卷积块中卷积层的数量均为4;当深度为29时,前两个卷积块中卷积层的数量均为6,第三个卷积块中卷积层的数量为5,后两个卷积块中卷积层的数量均为4。实施例1本实施例基于超深卷积神经网络结构模型的中文文本分类方法,该方法包括以下步骤:步骤1:从网上搜集词向量的训练语料,使用jieba分词工具对训练语料进行分词处理,同时去除停用词,建立词典d,然后利用word2vec工具中的skip-gram模型训练得到词典中每个词对应的词向量;所述skip-gram模型(参见图1)是在已知当前词w(t)的前提下,对当前词w(t)的上下文定义context(w)中的词进行预测,skip-gram模型包含三层:输入层、投影层和输出层;输入层(input)输入为当前词w(t),投影层(projection)是输入层的恒等投影以应对cbow模型中的投影层,输出层(output)是以当前词在文本中的词频作为权值构造的一棵二叉树,其中叶子节点的向量即为一个词向量,当前词w(t)对应的叶子节点为w’(t-1)、w’(t-2)、w’(t+1)和w’(t+2),假设该叶子节点对应词典d中的词为w,记:1,pw:从根节点出发到达w对应叶子节点的路径。2.lw:路径pw中包含节点的个数,这里的节点包括叶子节点和非叶子节点,3.表示路径pw中第j个节点对应的编码,这里的节点包括叶子节点和非叶子节点,4.表示路径pw中第j个非叶子节点对应的向量;该skip-gram模型的目标函数为公式(1):其中,t为skip-gram模型中训练文本的大小;采用随机梯度上升法优化skip-gram模型的目标函数。即扫描全部文档,使用skip-gram模型构造多个context和w词对,定义条件概率函数p(context(w)|w)为公式(2):其中,p(u|w)定义为公式(3):式中,u是context(w)集合中的一个元素,即:u∈context(w)。以样本(w,context(w))为例,skip-gram模型中采用随机梯度上升法更新所有参数,每当context(w)中处理一次分词之后会更新当前词w的向量,优化结束后,得到每个词的词向量;步骤2:sogouca是搜狗实验室(sogoulab)提供的全网新闻数据,该数据来自2012年6月-7月期间新浪、网易、腾讯以及凤凰资讯等若干个新闻站点,由国内、国际、体育、社会、娱乐等18个频道的全网新闻数据,提供url和正文信息。sogoucs是搜狗实验室(sogoulab)提供的搜狐新闻数据,该数据集来自搜狐新闻2012年6月-7月期间国内、国际、体育、社会、娱乐等18个频道的新闻数据,将上述全网新闻数据和搜狐新闻数据根据类别放在不同的文件夹下,作为文本分类的语料集,并且从文本分类的语料集中随机选取10%作为测试集语料,剩余的90%作为训练集语料;步骤3:利用jieba分词工具,设置分词模式为精确模式,将步骤2中的训练集语料和测试集语料进行分词处理,将被分词后的训练集语料和测试集语料输入到步骤1中的词向量模型,得出训练集语料和测试集语料分别对应的词向量;步骤4:定义vdcnn超深卷积神经网络结构模型,其具体结构如图2所示。其中,embeddinglayer(256dim)表示维度为256维的词嵌入层,conv3-64表示卷积核大小为3数量为64个,pool/2表示池化操作,下采样因子为2,fc(i,o)表示输入长度为i,输出长度为o的全连接层。由于网络结构模型层数较深,为了优化对内存的占用,结合vgg以及resnets,在定义vdcnn模型结构时设置如下两条规则:(1)如果卷积之后输出的向量不变,则卷积核数目和特征图像的大小保持不变。(2)如果卷积之后输出的向量减半,则卷积核数目和特征图像的大小增加一倍。以图2a列为例,a列是一个深度为12层的超深卷积神经网络(vdcnn),该模型的第一层为词嵌入层,将输入的文本分类语料展开成词向量的序列作为卷积层的输入,在本文实验中词向量是由word2vec在skip-gram模型中训练得出,它生成一个二维张量(tensor),记做(fdim,s),fdim表示词向量在训练时设置的维度,s为输入文本中词的数量。词嵌入层之后的第一个卷积层设置为64个大小为3的卷积核,然后对卷积结果进行池化操作,之后连接一个卷积层,设置其卷积核大小为3数量为128个,然后进行了3次池化,每次池化操作连接两个卷积层,最后再进行池化操作,连接3个全连接层得出分类结果,共计12层。由图2可知,整个网络模型包括5次池化操作,前三次对输出进行平均值池化,后两次采用最大值池化操作。这里把模型中每两次池化操作之间的卷积层称作为一个卷积块(convolutionalblock)。每个卷积块内的卷积层数可以增加,例如模型a中共有五个卷积块,第二个卷积块有一个卷积层,为128个大小为3×3的卷积核,而在模型b中的第二个卷积块有两个卷积层,所以,根据卷积块内卷积层数的不同,vdcnn模型的深度如a-e所示,可以从12层逐渐增加到29层。该模型为了防止过拟合现象以及降低特征的维数,优化内存占用,在每次平均值池化操作时将下采样因子(strides)设置为2,输出向量减半,根据上述的两条规则,每个卷积块的卷积核数目也由64变为128,256或512,卷积核数目与特征图像的大小相同,而在第四、五个卷积块之后进行k-max下采样策略,每次对采样区选取k个局部最优特征值,舍弃冗余特征,同时能够保证生成固定维度的特征向量。在图2中,fc(i,o)表示输入长度为i,输出长度为o的全连接层。如图2中所示,在进行最后一次最大值池化操作后,设置三个全连接层。当输入文本进入上述12至29层任意一个的网络结构进行特征提取之后,能够有效表示输入文本的特征。最后,再通过softmax得到分类结果。在以往的卷积神经网络模型中对自然语言处理时,卷积核的数目大小可能是3、5或者7,但是对于vdcnn模型而言,只需要将所有卷积层的卷积核大小设置为3,因为两个连续3×3的卷积核与一个5×5大小的卷积核具有相同的感受野,而3个连续的3×3的卷积核与一个7×7的卷积核具有相同的感受野。由于设置所有的卷积层激活函数为relu,所以每一个卷积层增加了决策函数的非线性。于是,相比使用一个7×7大小的卷积核,3个连续3×3大小的卷积核进行了3次非线性处理,这样就增加了网络结构的学习能力,输入文本经过深层网络的卷积之后就能得到具有更加优秀表征效果的特征向量。另外,使用3×3的卷积核降低了参数的个数,假设三个卷积层使用3×3大小的卷积核处理c通道的特征图时,一共有3×(32×c2)=27c2个参数,而一个7×7卷积核的卷积层则有1×(72×c2)=49c2个参数,减少了约50%。在卷积块中,对数据进行卷积之后又进行了批规范化操作(batchnormalization简称bn)。在超深卷积神经网络(vdcnn)中,每一个卷积块(convolutionalblock)的详细结构如图3所示。其中,conv3-128表示卷积核大小为3数量为128个,relu表示激活函数为relu。当较深传统的网络结构模型进行训练时,随着层数的增加出现梯度消失问题(vanishinggradients)导致训练难以收敛。由于每一层网络的输入都会因为上一层参数的变化导致其分布发生改变,而训练过程要求每一层适应输入的分布,这就带来降低学习率、友好小心地初始化的问题,为了解决这个问题,本发明在每个卷积块中引入了bn,其基本思想是:在每次随机梯度下降(sgd)时,对于每个隐层的神经元,通过mini-batch(mini-batch指的就是分批处理,它的结果以错误率的方式表示为:每一次epoch(迭代)中,所有的小batch的平均损失函数值)来对相应的activation做规范化操作,把逐渐向非线性函数映射后取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的标准正态分布中,而最后的“scaleandshift”(bn算法的最后一步被称为:“scaleandshift”)操作则是为了让因训练所需而“刻意”加入的bn能够有可能还原最初的输入,即通过式(4)还原最初的输入:其中,var表示随机变量的方差,x表示在做非线性变换前的激活输入值,也就是神经元的输出;γ,β表示需要训练的参数,e表示数学期望,k表示第k维的数据。这样使非线性变换函数的输出落入到对输入更加敏感的区域以避免梯度消失问题。当梯度一直能保证较大状态时,神经网络的参数调整效率会大大增高,其损失函数迈向最优值的步进也会相应增大,能够加快收敛速度。在vdcnn模型层数较多的情况下,为了加快收敛速度降低学习周期,在vdcnn模型的卷积层和全连接层设置激活函数为relu,具体公式为式(5):y(x)=max(0,x)(5)其中,x表示神经元的输出,max表示取x和0中的较大的那个值。如果只是单纯的增加网络结构的层数和深度,文本分类模型的精度得到饱和之后会迅速下滑,并且这个性能下降不是过拟合导致的。为了解决一个合适深度的模型因加入额外的层数导致训练误差变大的问题,本发明在vdcnn中的每个卷积块之间引入resnets中的捷径连接(shortcut),即每个卷积块之间的输出不是传统神经中的输入映射,而是输入的映射和输入的叠加,该过程用式(6)表示,其中,x0为上一层的输出,h(x0)为期望的网络层关系映射,f(x0)为需要学习的残差函数(residualfunction)使得:h(x0)=f(x0)+x0(6),最后,通过softmax进行分类,得到超深卷积神经网络结构模型;步骤5:将步骤3中得到的训练集语料所对应的词向量输入到步骤4中建立的超深卷积神经网络结构模型中,一共迭代30次,训练得出文本分类模型;然后将步骤3中测试集语料所对应的词向量输入到文本分类模型中,即可输出测试集语料所对应的分类结果,计算出文本分类模型的准确率为90%以上即可用于中文文本分类;步骤6:将需要分类的中文文本输入到步骤1的词向量模型中,得到该需要分类的中文文本的词向量,然后将该词向量输入到步骤5的文本分类模型中,即完成中文文本分类。本实施例所采用的的硬件环境为但不限于此:win8.1/64位操作系统,xeone5-1620cpu,ddr48g内存,nvidiaquadrok22004g显卡。为了全面且准确地评估本发明所提方法的性能,实验将在sogouca、sogoucs以及复旦大学文本分类语料库3个数据集上测试。实验1:实验1是具有12层的vdcnn与其他分类方法的结果对比,为了评估本文提出的超深卷积神经网络(vdcnn)模型实验从错误率的角度与其他模型方法进行实验结果的对比。本实验中对于现有的其他分类方法均以sogouca全网新闻数据为检验基础,对于本发明vdcnn模型分别以sogouca全网新闻数据和sogoucs搜狐新闻数据为检验基础,详细实验结果如表1所示。实验结果中可以看出,本实施例提出的vdcnn网络结构模型在使用了batchnormalization以及引入了resnets的shortcut之后,并没有因为网络结构模型深度的大幅度增加而导致梯度消失或者准确性下降等问题,并且通过wordembedding与vdcnn模型二者相结合,其文本分类的精确率(accuracy)相较于其他文本分类的方法也得到明显提升。实验在迭代30次后错误率稳定在2.37%左右。表1vdcnn模型与其他分类方法错误率比较模型错误率模型错误率bow7.15convnet(event)7lstm4.82convnet(event+bigram+trigram)4.9lg.w2vconv.4.39attentionbasedlstm7.82sm.lk.conv4.95bi-lstm7.11lg.conv4.88正逆序组合attentionbasedlstm5.19mi-svm10.3vdcnn(sogouca)2.37lsi-svm9.3vdcnn(sogoucs)2.19实验2:实验2分别使用12、14、17、20及29层的vdcnn模型对sogoucs语料库进行试验,以检验本发明提出的vdcnn模型在深度增加方面对分类效果提升的有效性。从实验2的结果可以得出,文本的分类效果会随着vdcnn模型深度的增加而提升。实验结果如表2所示。表2不同深度的vdcnn模型的分类效果深度(depth)准确率(precision)精确率(accuracy)1297.9297.811497.8697.931798.2198.022098.3898.352999.2599.12实验3:为了解决由于网络深度增加导致准确率退化的问题,在本实施例提出的vdcnn模型中增加shortcut进行残差学习。实验3将带有shortcut的网络结构与没有添加shortcut的网络结构进行了对比,使用的数据集为sogoucs语料库,实验结果如表3所示,其中,实验结果为文本分类的错误率。实验结果表明,使用带有shortcut的网络结构能够有效提高文本分类的准确率。表3带有shortcut与不带shortcut的vdcnn模型的分类效果深度(depth)带(withshortcut)不带(withoutshortcut)122.195.23142.074.62171.983.98201.652.37290.881.61实验4:为了解决深度神经网络梯度消失的问题,以及提高模型的精度,本实施例方法在卷积块内中引入了批规范化操作(batchnormalization),对卷积结果进行规范化操作后,可能会改变下一层原来的输入,也可能没有改变,这样,既可能改变也可能保持了原来的输入,大大提高了模型的容纳能力(capacity),从而提高了文本分类的准确率。实验4将没有进行批规范化操作的模型与本实施例提出的模型进行了对比,实验结果如表4所示,其中,实验结果为文本分类的精确率。表4增加bn操作与没有bn操作的分类效果深度(depth)不带bn(withoutbn)带有bn(withbn)1294.1797.811494.8997.931795.3498.022094.9298.352996.7699.12综上所述,本发明基于超深卷积神经网络结构模型的中文文本分类方法将词向量与vdcnn模型相结合,能够有效解决中文文本分类中现有卷积神经网络模型卷积核大小难以确定、文本的向量维度过高等问题,本发明提出的方法通过在原有网络结构的基础之上融入batchnormalization和shortcut,有效解决了随着网络深度增加带来的梯度消失和分类精确度下降问题。基于真实数据集的实验测试,证明本发明相较以往方法,能够大幅增强分类任务的性能以及提高文本分类的准确度。本发明中所述的skip-gram模型、cbow模型均为现有模型,随机梯度上升法、bn算法均为现有方法。vgg是牛津大学计算机视觉组(visualgeometrygroup)和googledeepmind公司的研究员一起研发的的深度卷积神经网络。resnets全称是residualnetworks,中文名为残差网络。以上所述的具体实施例,对本发明的技术方案和测试效果进行了详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明权利要求的保护范围之内。本发明未述及之处适用于现有技术。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1