一种基于图核和卷积神经网络的文本分类方法与流程

文档序号:15144508发布日期:2018-08-10 20:17阅读:195来源:国知局

本发明涉及文本的分类方法,尤其涉及一种基于图核和卷积神经网络的文本分类方法,属于数据挖掘和信息检索技术领域。



背景技术:

随着大数据时代的到来,信息量爆发式增长,信息处理的方式由传统的人工处理方式逐渐向自动化处理方式过渡。文本分类作为信息处理的重要任务,其目的在于自动分类无标签文档到预定的类别集合中,可以在较大程度上解决信息杂乱的现象,进而实现对海量信息的高效管理,文本分类技术目前已经广泛应用到信息过滤、信息检索、话题检测与追踪等领域。

目前的文本分类技术主要有三种:基于规则的文本分类方法、基于统计的文本分类方法和基于神经网络的文本分类方法。基于规则的方法是一种确定性的推理方法,根据上下文对确定性事件进行定性描述,从而进行归纳总结。常见的方法有决策树,关联规则等。基于统计的方法是一种基于概率的定量推理方法,通过概率的比较掩盖小概率事件的发生。其优点是通过大规模语料库的分析得出经验概率,对分类结果提供了比较客观的数据支撑。常用的方法有朴素贝叶斯,k-近邻算法,支持向量机等。基于神经网络的方法是通过模拟人脑神经网络,建立网络模型从而对数据进行智能的分类。常用的方法有卷积神经网络、循环神经网络等。

文本分类的基础任务是将文档转换成计算机能够识别的表达方式,合理有效的文本表示是保证文本分类质量的重要前提,目前的文本表示方法总体上可分为基于特征向量的传统文本表示方法和基于图结构的文本表示方法。

基于特征向量的传统文本表示方法有向量空间模型和布尔模型。向量空间模型将文档表示为特征空间中的一个向量,特征可以是字、词、短语等,特征的权重可以是词频、语义重要度等;布尔模型是向量将文档表示为一个特征的二值变量集合,文档中出现相应特征,则特征变量置为1,否则为0。这两种模型都依赖于词袋模型,词袋模型虽然表达形式简单、计算量小,但是没有考虑文本的内部结构和上下文语义,会造成信息流失,影响文本内容的充分表达。

基于图结构模型的文本表示方法近年来成为研究热点,将文档表示为图结构,既保留了原始文档中单词本身所包含的信息,也增加了单词之间的结构关系,具有较强的表达能力和较高的灵活性,丰富了所能表达的语义信息。把文本数据转换成图数据,就是把对文本数据的分析转换成了对图数据的分析。

对于文本分类的问题,现有技术主要是把文本表示成向量空间模型,这种表达方式丢失了文本的语义结构信息,本发明提出一种基于图核和卷积神经网络的文本分类方法,可有效地保留了文本的语义结构,提升分类准确度。



技术实现要素:

本发明的目的是克服现有技术中将文本表示成向量空间模型的表达方式丢失文本语义结构信息的技术缺陷,提出了一种基于图核和卷积神经网络的文本分类方法。

本发明的核心思想为:首先将文本预处理为图结构的表示方式,其中,图中的节点与文本中的词相对应,再基于图结构计算节点的权重,之后使用社区发现算法将图结构分解成多个子图,并使用图核技术将图映射到高维空间,得到图的张量表达,最后将该张量表达输入到卷积神经网络,对图特征进行深度挖掘,输出文本的类别。

一种基于图核技术与神经网络相结合的文本分类算法,包括以下步骤:

步骤一、通过文本分词、去除文本中的停用词、标点和数字,以及创建图将文本转化为图结构,具体为:

步骤1.1文本分词,把整篇的文章分割成词的序列;

步骤1.2去除文本中的停用词、标点和数字,将文档表示为保留词的先后次序关系的特征词序列;

步骤1.3创建图g,特征词作为图的节点n,采用滑动窗口遍历文本,若两个特征词在同一个滑动窗口中出现,则在两者之间建立一条边e,共现的次数记为边的权重w,若两个特征词不在同一个滑动窗口中出现,则不创建边;

步骤二、采用nd-igf(nodedegree-inversegraphfrequency)计算节点的权重,具体为:

步骤2.1计算在步骤一创建的图g中,与节点n相连的节点在该图所有节点中的占比nd(n,g),通过如下公式(1)进行计算:

其中,g表示一个文本的图结构,n表示图中的节点,|dn.g|表示在图g中与节点n相连的节点数量,|ng|表示图g的节点总数;

步骤2.2计算节点n的类别区分能力,通过公式(2)使用逆向图频率igf计算:

其中,|g|表示图的总数量,|{j:n∈gj}|表示包含节点n的图的数量;igf(n)指包含节点n的图越少,igf(n)越大,则说明节点n具有很好的类别区分能力;

步骤2.3综合考虑nd和igf,评估一个节点对于图的重要程度nd-igf(n,g):

nd-igf(n,g)=nd(n,g)*igf(n)(3)

若一个节点在某一类图的出现频率高,或在整个图集合的出现频率低,则可以产生出高权重的nd-igf;因此,nd-igf可以筛选出识别能力强的节点;

步骤三、使用社区划分算法把图分割成若干子图,具体为:

步骤3.1将图g中节点的度作为节点的聚类系数,对节点进行降序排序;

步骤3.2将聚类系数最大的节点vi初始化为社区a,将与节点vi相邻的节点组成邻域b,计算邻域b中各节点与社区a的相似度,从中选出与社区a相似度最高的节点vj,计算节点vj加入到社区a时的模块度增量δw(vj),若模块度增量δw(vj)>0,则将vj加入到社区a,若模块度增量δw(vj)<0,则不将vj加入到社区a。依次迭代所有节点,直到社区a中的节点不再变化,并将社区a中度最大的节点作为该社区的标志节点;

步骤3.3将社区a的补集作为新的图g,执行步骤3.2,直到所有的节点都有隶属的社区,子图集合记为m0;

步骤四、计算将步骤三中得到的若干子图转化为四维张量表示,具体包括如下子步骤:

步骤4.1使用weisfeiler-lehman算法对社区划分后得到的子图集合m0迭代h次,生成计算wl核所需要的扩充图集m;

步骤4.2从所有的社区中选定w个社区作为基准社区,每个图对应的所有子图gi依次与选定的w个社区计算核值k,并得到图gi的高维表达v;

步骤五、构建卷积神经网络在训练集上进行训练,通过后向传播算法更新网络参数,得到文本的分类模型,通过该模型可求得待分类文本的分类结果,具体为:

步骤5.1定义神经网络的结构;

选用卷积神经网络,该网络由输入层、卷积层、池化层、全连接层、输出层组成;输入层的输入数据为步骤四求得的张量v,输出层的输出数据是文本的分类结果;

步骤5.2执行步骤5.1定义的卷积神经网络,并使用后向传播算法更新步骤5.1神经网络的网络参数;

步骤5.3多次迭代步骤5.2,直至损失小于某个阈值,得到分类模型,通过该模型可求得待分类文本的分类结果;

其中,某个阈值为人为约定的常数。

有益效果

本发明提出的一种基于图核和卷积神经网络的文本分类方法,与现有技术相比,具有如下有益效果:

(1)把文本转化成图结构,充分利用文本的内部结构和上下文语义,使文本内容得以充分表达;

(2)提出一种新的节点权重计算方式,使节点信息更加合理;

(3)使用社区发现算法从图中检测出多个局部子图,有效挖掘了图的多维特征;

(4)提出一种新的图核技术,有效利用节点和边的属性信息,把图映射到高维空间;

(5)利用神经网络强大的表达能力实现了高准确率的文本分类效果,且神经网络可以端到端的训练和分类,有效解决了文本分类中复杂繁琐的处理过程。

附图说明

图1是本发明一种基于图核和卷积神经网络的文本分类方法的流程图;

图2是本发明中步骤一中将文本转换为图结构的示意图;

图3是本发明中步骤三中社区划分的示意图;

图4是本发明中步骤五中卷积神经网络的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

实施例

如图1所示,该实施例共分为五个步骤,具体如下:

步骤a、将文本转化为图结构,如图2所示。

a.1首先进行文本分词,中文文本中,词之间是连写的,不像西文中,词是自然分离的,所以首先需要将中文的文章分割成词的序列。主流的中文分词算法有正向最大匹配法、逆向最大匹配法、最佳匹配法、逐词遍历法、最优路径法等。本文采用的算法是串频最大匹配,这是一种基于统计的切分方法,当两个字的相邻共现概率高于一个阈值时,便认为此字组可能构成了一个词。

a.2去除文本中的停用词、标点、数字,如“的”、“啦”、“呵呵”等。这些词在每篇文章中的出现频率都很高,且没有实际的含义,去除这些词汇不仅可以减少特征词空间,还可以提高检索速度。本发明中使用的是大连理工大学提供的停用词词典,包括中英文标点符号、高频词等。

a.3将文本的图结构定义为一个三元组形式g=(n,e,w),其中n表示节点集合{n1,n2,…,nk},每个节点n代表一个特征词,k代表图结构的节点的数量;e表示边集合{e1,e2,…,em},每条边eij代表两个特征词ni和nj的共现关系,m代表图结构的边的数量;w表示边的权重集合{w1,w2,…,wm},wij代表边eij的权重,特征词ni和nj的共现次数越多,权重wij越大。构建过程为采用滑动窗口遍历文本,若两个特征词在同一个滑动窗口中出现,则在两者之间建立一条边,共现的次数记为边的权重,若两个特征词不在同一个滑动窗口中出现,则不创建边。

完成了以上步骤,文本就转换成了图结构,图结构中的节点体现了特征词信息,边体现了特征词的共现信息,边的权重值体现了特征词语义相关程度的强弱。基于图结构的文本表示方法保留了文本的语义结构信息,具有较强的表达能力和较高的灵活性。

步骤b、采用nd-igf(nodedegree-inversegraphfrequency)计算节点的权重。

确定节点权重的最直接方法是使用节点的度作为权重,既词的出现次数越多,相应节点的权重越大。但在文章中,常用词往往在所有的文章中出现次数都很高,而能突出文章特性的词的出现次数反而并不多,所以单纯以出现次数衡量一个词的重要性显然不够全面。所以就需要一个权重系数,用来调整特征词的重要性。既一个词虽然很少见,但是它在某一类文章中反复出现多次,那么可以认为这个词反应了这一类文章的特性,应该提高其权重,词的权重系数与其常见程度成反比。

本发明提出nd-idf计算节点权重,其主要思想是:如果某个节点在一个图中出现的频率nd高,并且在其他图中很少出现,则认为此节点具有很好的类别区分能力。定义节点的度为nd,权重系数为igf,两者相乘,就得到节点的nd-idf值,某个节点对图越重要,它的nd-idf值就越大。具体计算方法如下:

b.1计算图g中,与节点n相连的节点在该图所有节点中的占比nd(n,g)

其中,g表示一个文本的图结构,n表示图中的节点,|dn.g|表示在图g中与节点n相连的节点数量,|ng|表示图g的节点总数;

优选地,可以对nd进行归一化处理,因为同一个节点在节点数多的图中往往比节点数少的图拥有更高的占比,所以可以使用:

其中g表示一个文本的图结构,n表示图中的节点,|dn.g|表示在图g中与节点n相连的节点数量,|ng|表示图g的节点总数,avg(g)表示所有图的平均节点数量,b为比例参数。

b.2计算节点n的类别区分能力,使用逆向图频率igf:

其中,|g|表示图的总数量,|{j:n∈gj}|表示包含节点n的图的数量。igf(n)指包含节点n的图越少,igf(n)越大,则说明节点n具有很好的类别区分能力。

b.3若一个节点在图中的度大,nd认为综合考虑nd和igf,评估一个节点对于图的重要程度nd-igf(n,g):

nd-igf(n,g)=nd(n,g)*igf(n)

若一个节点在某一类图的出现频率高,或在整个图集合的出现频率低,则可以产生出高权重的nd-igf。因此,nd-igf可以筛选出识别能力强的节点。

步骤c、使用社区划分算法把图分割成若干子图,如图3所示。

社区划分的目的在于找到图g的若干个子图,同一子图内的节点与节点之间的连接很紧密,而子图与子图之间的连接比较稀疏,从而更好地表示图的结构信息,进而更好地表示文本的层次结构。定义文本的图结构为g=(n,e,w,x),其中x代表节点的属性矩阵,xij代表节点i的第j个属性。

c.1对于图g,以节点的度作为聚类系数,对节点进行降序排序

c.2将聚类系数最大的节点vi初始化为社区a,将与节点vi相邻的节点组成邻域b,计算邻域b中各节点与社区a的相似度,从中选出与社区a相似度最高的节点vj,计算节点vj加入到社区a时的模块度增量δw(vj)。

模块度代表社区聚类密度,当社区内部聚类密度大,社区外部聚类密度小时,社区的模块度则大。定义社区a的模块度为w(a)

其中|a|表示社区a中节点的数量,i(a)表示社区a中边的数量,cua表示社区a的补集,o(a)表示社区a的和补集之间的边的数量。

定义vj加入到社区a之后的社区为a′,则模块增加度为

δwa(vj)=w(a′)-w(a)

若模块度增量δw(vj)>0,则将vj加入到社区a,若模块度增量δw(vj)<0,则不将vj加入到社区a。依次迭代所有节点,直到社区a中的节点不再变化,并将社区a中度最大的节点作为该社区的标志节点。

c.3将社区a的补集作为新的图g,执行步骤c.2,直到所有的节点都有隶属的社区。

完成了以上步骤,图g被分成多个子图,子图集合记为m0,子图内部的连接密度大,子图之间连接密度小,这种表达形式使文本图的语义结构信息更为清晰。

步骤d、利用图核算法将步骤c得到的图结构转化为四维张量表示,具体如下:

目前图映射成向量的方法主要有两类:图嵌入算法和图核函数算法。图嵌入算法先把图嵌入到向量空间,然后再使用传统的基于向量的核函数进行计算,此方法的缺点在于把图映射到向量空间的过程中,丢失了大量的图结构信息;而图核算法直接使用核函数处理图数据,既保留了图在高维希尔伯特空间中的结构信息,又将原本空间上非线性的复杂问题转变为可以计算的线性问题。目前主流的图核函数有随机通路核、最短通路核、子树核、子图核等,本发明使用weisfeiler-lehman核(属于子树核)进行计算。

d.1使用weisfeiler-lehman算法对社区划分后得到的子图集合m0迭代h次,生成计算wl核所需要的扩充图集m。

当i=0时,表示第1次迭代。此时将m0中所有的节点的标签按含义排序后,从1开始按顺序重新标注,假设最后的标注为l0.此时m0中每个节点gj的重要性cgj为步骤b中求得的节点gj的重要性nd-igf(n,g)值。

当i!=0时,表示第i+1次迭代。此时对于mi-1中的某个节点gj,假设其标注为s0,与gj相邻的节点集为{g′1,g′2,…,g′n}(按标注升序排列),该节点集对应的标注为{s1,s2,…,sn}.令si(gj)=′s0_s1_s2_…sn′,则每个mi-1中的每个节点都可以得到一个新的字符串标注si(gj)。将这些新得到的标注,从l(i-1)开始重新标注(标注压缩),一直标注到li。重新标注后可以得到新的图集mi.假设mi-1中的节点gj对应mi中的节点gk,则mi中节点gk的重要性为:

其中表示节点gj和节点g′x之间的边的权重。

经过上述的h次迭代扩充后,最终得到图集m=[m0,m1,…,mh-1]

d.2从所有的社区中选定w个社区作为基准社区,每个图对应的所有子图gi依次与选定的w个社区计算核值k,并得到图gi的高维表达v。

定义映射c(gi,σj,k)为子图gi中所有标注为σj,k的节点重要性之和。

定义映射

假设图g存在一个子图gi,基准社区中存在一个社区gl′,则根据前面的定义,我们可以得到核值:

(<>表示两个向量的内积)

根据上述计算核值的方式,图g的子图gi与w个基准社区依次进行计算,得到长度为w的特征向量。同时h个子图依次进行计算,得到h×w的特征矩阵。由于只采用了一种核函数,因此输入到后续网络中的张量v大小为b×1×h×w,其中b表示每次输入网络中的batch的大小。

步骤e、构建卷积神经网络在训练集上进行训练,通过后向传播算法更新网络参数,得到最终的分类模型,通过该模型可求得待分类文本的分类结果,具体如下:

e.1定义神经网络结构。如图4所示,本发明使用的卷积神经网络由输入层、卷积层、池化层、全连接层、输出层组成。将步骤d得的张量v作为卷积神经网络的输入,然后通过卷积层做卷积操作,本发明使用的卷积层具有256个卷积核,每个卷积核大小均为(1,1,w),每次滑动位置为1。将卷积层采集的向量输入到池化层,通过池化层来降低向量的纬度,可以采用maxpooling层作为池化层来对每一个卷积核做maxpooling操作,通过池化层后每个文本会得到一个向量vg,向量vg的维数等于卷积层神经元的个数。最后将向量vg输入到全连接层中,再由softmax函数计算文本的分类概率。

e.2使用后向传播算法更新网络参数。后向传播算法是神经网络模型更新参数的通用算法,其主要思想是:将训练集数据输入到神经网络的输入层,经过隐藏层,最后达到输出层并输出结果;由于其输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;在反向传播的过程中,根据误差调整各种参数的值。

e.3多次迭代步骤e.2,直至损失小于某个阈值(这个常数通常是人为约定的),得到分类模型,通过该模型可求得待分类文本的分类结果(此时可以用测试集验证模型的分类效果)。

以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

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