词向量的文本分类方法及终端设备与流程

文档序号:12364262阅读:339来源:国知局
本发明涉及信息处理领域,特别涉及一种词向量的文本分类方法及终端设备。
背景技术
:文本分类是指把一组预先由专家分类过的文本作为训练文本集,对训练文本集进行分析得出分类模式,用导出的分类模式对其他文本加以分类,它主要应用于信息检索、机器翻译、自动文摘及信息过滤等。其中,文本训练的方法有很多,如基于连续词袋模型CBOW的分层分类器HierarchicalSoftmax和负采样两种训练方式。在实现本发明的过程中,本申请的发明人发现,采用基于HierarchicalSoftmax的CBOW训练方式对罕见词更有利,可实现对该类文本的较快速分类,基于负采样算法的CBOW训练方式对常见词和低维向量的文本分类有利,同时,基于两种不同算法的CBOW在训练时,通常选择的窗口大小在5左右,但是上述两种方法在确定文本类型的过程中需要大量的计算,不利于快速实现。技术实现要素:本发明实施方式的目的在于提供一种词向量的文本分类方法及终端设备,使得词向量化时,会考虑当前词的前面几个词和后面几个词的联系,使整个文本特征具有语义特性,对训练样本进行训练时,效率高且耗时少,在确定待分类文本的类型时,计算量小、计算方式简便快捷且精度高。为解决上述技术问题,本发明的实施方式提供了一种词向量的文本分类方法,包括:将L个文本分词后的数据输入连续词袋模型CBOW中,计算包含各个词向量wmn的词向量矩阵Wmn;将M个已知文本类型的训练样本分词后,从所述词向量矩阵Wmn中查找各个训练样本分别包含的词向量wmn;根据所述各个训练样本所包含的词向量wmn,计算每种文本类型的训练样本的特征向量Tk;根据待分类文本的特征向量和各种文本类型的所述训练样本的特征向量Tk,确定待分类文本的类型;其中,M≤L,m为词数,n为词向量的维度,k=1,2,...,K,K表示文本类型数量。本发明的实施方式还提供了一种终端设备,包含:词向量计算模块,用于将L个文本分词后的数据输入连续词袋模型CBOW后,计算包含各个词向量wmn的词向量矩阵Wmn;查找模块,用于将M个已知文本类型的训练样本分词后,从所述词向量矩阵Wmn中查找各个训练样本分别包含的词向量wmn;训练样本特征向量计算模块,用于根据所述各个训练样本所包含的词向量wmn,计算每种文本类型的训练样本的特征向量Tk;待分类文本类型确定模块,用于根据待分类文本的特征向量和各种文本类型的所述训练样本的特征向量Tk,确定待分类文本的类型;其中,M≤L,m为词数,n为词向量的维度,k=1,2,...,K,K表示文本类型数量。本发明实施方式相对于现有技术而言,通过连续词袋模型CBOW,计算文本分词后包含各个词向量的词向量矩阵,基于该词向量矩阵查找已知文本类型的各个训练样本分别包含的词向量,并计算出每种文本类型的训练样本的特征向量,最后根据待分类文本的特征向量和各种文本类型的训练样本的特征向量,确定待分类文本的类型。通过这种方式,对词向量化时,会考虑当前词的前面几个词和后面几个词的联系,使整个文本特征具有语义特性,对训练样本进行训练时,效率高且耗时少,在确定待分类文本的类型时,计算量小、计算方式简便快捷且精度高。另外,采用加和求平均的计算方式,计算每种文本类型的所述训练样本的特征向量Tk。通过加和求平均的计算方式,计算每种文本类型的所述训练样本的特征向量时,运算量小而且计算过程简便快捷。另外,待分类文本的特征向量通过以下方式计算:将所述待分类文本分词后,从所述词向量矩阵Wmn中查找所述待分类文本所包含的各个词向量wmn;根据所述待分类文本的词向量wmn,采用加和求平均的计算方式,计算所述待分类文本的特征向量D。通过查找词向量矩阵Wmn中的待分类文本所包含的各个词向量wmn,可以充分利用已有的词向量矩阵Wmn,从而实现对各个词向量的快速准确查找,间接提高整个文本分类过程的效率。另外,根据待分类文本的特征向量和所述训练样本的特征向量Tk,确定待分类文本的类型,具体包括:计算所述待分类文本的特征向量与各种文本类型的所述训练样本的特征向量Tk的余弦相似度值;所述待分类文本的类型为所述余弦相似度最接近于1时所对应的训练样本的文本类型。利用计算余弦相似度值的方式确定待分类文本的类型,运算量小且计算方式简捷,确定待分类文本类型时的精度高。附图说明图1是根据本发明第一实施方式的一种词向量的文本分类方法流程图;图2是根据本发明第一实施方式的CBOW模型的结构示意图;图3是根据本发明第一实施方式的CBOW模型的网络结构示意图;图4是根据本发明第一实施方式的CBOW模型查词的相关示意图;图5是根据本发明第一实施方式的负采样算法隐射的建立示意图;图6是根据本发明第三实施方式的一种终端设备的结构示意图;图7是根据本发明第四实施方式的一种终端设备的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本发明的第一实施方式涉及一种词向量的文本分类方法。具体流程如图1所示。在步骤101中,将L个文本分词后的数据输入CBOW中,计算其词向量矩阵。具体地说,将L个文本进行分词,得到的数据作为CBOW的输入,从而计算出该L个文本的词向量及包含各词向量的词向量矩阵,其中,词向量记作wmn,词向量矩阵记作Wmn,m为词数,n为词向量的维度,词向量矩阵Wmn的具体形式如下所示:其中,表示m个词的向量集合,Wmn中的每一行代表一个词的向量表达。此外,本发明实施方式中所说的CBOW,是基于负采样算法的CBOW。常用的CBOW有基于HierarchicalSoftmax的CBOW和基于负采样算法的CBOW两种类型,下面分别对基于HierarchicalSoftmax的CBOW和基于负采样算法的CBOW进行介绍。其中,基于HierarchicalSoftmax的CBOW模型,包含输入层、投影层和输出层,其是在已知当前词wt的上下文wt-2,wt-1,wt+1,wt+2的前提下预测当前词wt,如图2所示。假设样本(Context(w),w)由w前后各c个词构成,则输入层包含Context(w)中2c个词的词向量v(Context(w)1v),v(Context(w)2v),v(Context(w)2cv)∈Rm,m表示词向量的长度。投影层将输入的2c个向量做求和累加,即其结构示意图如图3所示。输出层对应一棵二叉树,它是以语料中出现过的词当叶子结点,以各词在语料中出现的次数当权值构造出来的霍夫曼树,在这棵霍夫曼树中,叶子结点共N=(|D|)个,分别对应词典D中的词s,非叶子结点N-1个(图中标成黑色的那些结点)。HierarchicalSoftmax是词向量中用于提高性能的一项关键技术,霍夫曼树中的某个叶子结点,假设它对应词典D中的词w,记:1)pw表示从根结点出发到达w对应叶子结点的路径;2)lw表示路径pw中包含结点的个数;3)表示路径pw中的lw个结点,其中表示根结点,表示词w对应的结点;4)表示词w的霍夫曼编码,它由lw-1位编码构成,表示路径pw中第j个结点对应的编码(根结点不对应编码);5)表示路径pw中非叶子结点对应的向量,表示路径pw中第j个非叶子结点对应的向量。现用词w=“足球”的示例,说明如何在图3所示的网络结构下,利用向量xw∈Rm以及霍夫曼树来定义函数p(w|Context(w)),具体过程如图4所示。四条虚线边串起来的5个节点就构成路径pw,其长度lw=5,为路径pw上的5个结点,且对应根结点,分别为1,0,0,1,即“足球”的霍夫曼编码为1001,此外,分别表示路径pw上4个非叶子结点对应的向量。从根结点出发到达“足球”这个叶子节点,中间共经理了4次分支(每条虚线的边对应一次分支),而每一次分支都可视为进行了一次二分类。既然是从二分类的角度来考虑问题,那么每一个非叶子结点,就需要为其左右孩子结点制定一个类别,即哪个是正类(标签为1),哪个是负类(标签为0),除根结点以外,树中每个结点都对应了一个取值为0或1的霍夫曼编码,因此,一种最自然的做法就是将霍夫曼编码为1的结点定义为正类,编码为0的结点定义为负类(也可将0定义为正类,1定义为负类),也就是将一个结点进行分类时,分到左边就是负类,分到右边就是正类,在此约定:根据逻辑回归可知,一个结点被分为正类的概率是被分为负类的概率则为其中,θ是待定参数,在这里非叶子结点对应的那些就可以扮演参数θ的角色。对于从根结点出发到达“足球”这个叶子结点所经历的4次二分类,将每次分类结果的概率写出来就是:1)第1次:2)第2次:3)第3次:4)第4次:则至此,通过w=“足球”的例子可知:对于词典D中的任意词w,霍夫曼树中必存在一条存根结点到词w对应结点的路径pw(且这条路径是唯一的)。路径pw上存在lw-1个分支,将每个分支看作一次二分类,每一次分类就产生一个概率,将这些概率相乘即为p(w|Context(w))。p(w|Context(w))=Πj=2lwp(djw|xw,θj-1w)---(1)]]>p(djw|xw,θj-1w)=σ(xwTθj-1w),djw=01-σ(xwTθj-1w),djw=1]]>或者,写成整体表达式的形式:p(djw|xw,θj-1w)=[σ(xwTθj-1w)]1-djw[1-σ(xwTθj-1w)]djw]]>假设Yw=(yw,1,yw,2,…,yw,N)T为一个长度为N的向量,其分量不能表示概率,如果想要Yw的分量yw,i表示上下文为Context(w)时下一个词恰巧为词典D中第i个词的概率,则需要做一个softmax的归一化处理,则有其中iw表示词w在词典D中的索引。因此将式(1)代入对数似然函数中,则:记为CBOW模型的目标函数,在词向量中是利用随机梯度上升法来优化上述函数的。随机梯度上升法的做法如下所示:每取一个样本(Context(w),w),就对目标函数中的所有相关参数做一次更新。观察目标函数可知,该函数中的参数包括向量给出函数l(w,j)关于这些向量的梯度。其中,l(w,j)关于的梯度为:于是,的更新公式可写为:η表示学习率。同理可得l(w,j)对xw的梯度为:这里,xw表示的是Context(w)中各词的词向量的累加,最终目的是求词典D中每个词的词向量,则基于负采样算法的CBOW模型中,已知词w的上下文Context(w),需要预测w,因此,对于给定的Context(w),词w就是正样本,其他词就是负样本。假设现已选好一个关于w的负样本子集NEG(w)≠φ,对于定义代表词的标签,即正样本的标签为1,负样本的标签为0。对于一个给定的正样本(Context(w),w),希望最大化g(w)=Πu∈{w}∪NEG(w)p(u|Context(w))---(2)]]>其中,也可以写成整体表达式的形式:p(u|Context(w))=[σ(xwTθu)]Lw(u)·[1-σ(xwTθu)]1-Lw(u)---(3)]]>这里xw仍表示Context(w)中各个词的向量之和,而θu∈Rm表示词u对应的一个向量。将式(3)代入式(2),有:g(w)=σ(xwTθw)Πu∈NEG(w)[1-σ(xwTθu)]]]>其中,表示当上下文为(Context(w),w)时,预测中心词为w的概率,而则表示当上下文为Context(w)时,预测中心词为u的概率,则最大化g(w)时,也即最大化同时最小化所有的也即增大正样本的概率的同时降低负样本的概率。对于一个给定的语料库C,函数作为整体优化的目标,为简化计算,对G取对数,则最终的目标函数为:记上式为l(w,u)则:同样利用随机梯度上升法对其参数进行优化,则:l(w,u)关于θu的梯度为:于是,θu的更新公式可写为:θu:=θu+η[Lw(u)-σ(xwTθ)]xw]]>l(w,u)关于xw的梯度为:于是,利用可得的更新公式为:下面再对本发明实施方式中采用的负采样算法进行简单介绍,词典D中的词在语料C中出现的次数有高有低,对于那些高频词,被选为负样本的概率就应该比较大,反之,对于那些低频词,被选中的概率就会较小。其本质上为带权采样的问题,具体算法过程,可描述为:假设词典D中的每一个词w对应一个线段l(w),长度为:len(w)=counter(w)Σu∈Dcounter(u)]]>这里counter(·)表示一个词在语料C中出现的次数(分母中的求和项用来做归一化),现在将这些线段收尾相连拼接在一起,形成一个长度为1的单位线段。如果随机的往这个单位线段上打点,则长度越长的线段(对应高频词)被打中的概率就越大。记这里wj表示词典D中第j个词,则以为剖分节点可得到区[0,1]上的一个非等距剖分,Ii=(li-1,li],i-1,2,…,N为其N个剖分区间。进一步引入区间[0,1]上的一个等距离剖分,剖分节点为其中M>>N,如图5所示。将内部剖分节点投影到非等距剖分上,如图6中的虚线所示,则与区间的映射关系为:Table(i)=wk,wheremi∈Ik,i=1,2,…,M-1根据该映射关系,其采样过程即为:每次生成一个[1,M-1]间的随机整数r,Table(r)样本,如果在采样过程中采样刚好取到自身wi,则跳过即可。在步骤102中,从Wmn中,查找训练样本包含的词向量。具体地说,从词向量矩阵Wmn中,查找已知文本类型的M个训练样本分别包含的词向量,首先将M个已知文本类型的训练样本进行分词(这里M≤L,是为了防止训练样本分词后的结果在步骤101得到的词向量矩阵Wmn中查找不到),然后在词量矩阵Wmn中查找各个训练样本分别包含的词向量wmn,可已知每种文本类型的各个训练样本的词向量wmn。在步骤103中,计算每种文本类型的训练样本的特征向量。具体地说,根据步骤102得到的各个训练样本的词向量wmn,采用加和求平均的计算方式,计算每种文本类型的训练样本的特征向量Tk,其中,k=1,2,...,K,K表示文本类型数量。假设有娱乐类、科技类、财经类,分别用T1、T2、T3代表娱乐类、科技类和财经类的特征向量,则有:T1=[avg(w11+w21+…+we1)avg(w12+w22+…+we2)…avg(w1n+w3n+…+wen)]=[Went1Went2…Wentn]T2=[avg(w11+w31+…+wi1)avg(w12+w32+…+wi2)…avg(w1n+w3n+…+win)]=[Wtech1Wtech3…Wtechn]T3=[avg(w11+…+wf1+…+wi1)avg(w12+…+wf2+…+wi2)…avg(w1n+…+wfn+…+win)]=[Wfina1Wfina2…Wfinan]其中,e代表第e个词,i第i个词,f第f个词,Went1=avg(w11+w21+…+we1),Went2=avg(w12+w22+…+wen),Wentn=avg(w1n+w3n+…+wen),Wtech1=avg(w11+w31+…+wi1),Wtech2=avg(w12+w32+…+wi2),Wtechn=avg(w1n+w3n+…+win),Wfina1=avg(w11+…+wf1+…+wi1),Wfina2=avg(w12+…+wf2+…+wi2),Wfinan=avg(w1n+…+wfn+…+win),若有其他类别,同理可得每种类型的特征向量。需要注意的是,T1∈[w1,w2,…,we],T2∈[w1,w3,…,wi],T3∈[w1,…,wf,…,wi],其中,每一类中w1,w2,…wm为词的集合,每个不同文本类型由不同或部分相同的词组合而成,且特征向量T1、T2、T3中,每个avg(·)中的元素,与Wmn中m个词的顺序无关,也不需要连续,只与当前该文本类型中的组成的词有关,因此,在求每一类文本类型时,从矩阵Wmn中查找相关词并进行相应的计算即可。在步骤104中,从Wmn中查找待分类文本包含的词向量。具体地说,首先将待分类文本进行分词,然后在词量矩阵Wmn中查找该待分类文本所包含的各个词向量wmn。在步骤105中,计算待分类文本的特征向量。具体地说,根据步骤104得到的待分类文本所包含的各个词向量wmn,采用加和求平均的计算方式,计算待分类文本的特征向量。假设当前待分类文本k分词后,词集合为(w1,w2,…,wl),表示由l个词构成该待分类样本,通过在词向量矩阵Wmn中查找相应的词(w1,w2,…,wl)的向量,得到则当前待分类文本的特征向量为:Dk=[avg(w11+w21+…+wl1)avg(w12+w22+…+wl2)avg(w1n+w2n+…+wln)]=[d11d12…d1n]其中,d的下标n代表词向量的维度,1代表当前第一个文本,当有多个文本时,该处1的值可为自然数。在步骤106中,计算余弦相似度值。具体地说,计算待分类文本的特征向量与各种文本类型的训练样本的特征向量Tk的余弦相似度值其中,当前待分类文本与娱乐类型的训练样本的特征向量的余弦相似度值为:cos(T1,Dxk)=Went1d11+Went2d12+...+Wentnd1nWent12+Went22+...+Wentn2×d112+d122+...+d1n2]]>当前待分类文本与科技类型的训练样本的特征向量的余弦相似度值为:cos(T2,Dxk)=Wtech1d11+Wtech2d12+...+Wtechd1nWtech12+Wtech22+...+Wtechn2×d112+d122+...+d1n2]]>当前待分类文本与财经类型的训练样本的特征向量的余弦相似度值为:cos(T3,Dxk)=Wfina1d11+Wfina2d12+...+Wfinad1nWfina12+Wfina22+...+Wfinan2×d112+d122+...+d1n2]]>同理,可得待分类样本与其他文本类型的训练样本的特征向量的余弦相似度值。在步骤107中,确定待分类文本的类型。具体地说,根据步骤106得到的余弦相似度值确定待分类文本的类型,其中,该待分类样本的类型就是余弦相似度值最接近于1时所对应的训练样本的文本类型。值得说明的是,当有若干个待分类文本时,就构成一个待分类文本集x代表待分类文本的文本类型,k代表待分类文本类型的第k个文本,x∈[1,2,3,...,K],k∈[1,2,3,...,M]。当需要对待分类文本集中的任何其它待分类文本进行分类时,只需要执行步骤104至步骤107即可。不难发现,在本实施方式中,通过基于分层HierarchicalSoftmax的连续词袋模型CBOW,计算文本分词后包含各个词向量的词向量矩阵,基于该词向量矩阵查找已知文本类型的各个训练样本分别包含的词向量,并计算出每种文本类型的训练样本的特征向量,最后根据待分类文本的特征向量和各种文本类型的训练样本的特征向量,确定待分类文本的类型。通过这种方式,对词向量化时,会考虑当前词的前面几个词和后面几个词的联系,使整个文本特征具有语义特性,对训练样本进行训练时,效率高且耗时少,根据待分类文本的特征向量与各种文本类型的训练样本的特征向量Tk的余弦相似度值,确定待分类文本的类型时,计算方式简捷且精度高。本发明的第二实施方式涉及一种词向量的文本分类方法。第二实施方式在第一实施方式的基础上做了进一步改进,主要改进之处在于:在本发明第二实施方式中,给出了步骤102、104中,从词向量矩阵Wmn中快速查找所需词向量的优化方法,该方法具体为:预先为词向量矩阵Wmn中的每一个词向量wmn建立相应索引,然后根据该索引在向量矩阵Wmn中查找各个训练样本或待分类文本所包含的词向量wmn。具体流程如图1所示。本实施方式不但可以达到第一实施方式的技术效果,而且通过预先为词向量矩阵Wmn中的每一个词向量wmn建立相应索引的方式,可以更便捷、快速的在词量矩阵Wmn中查找所需的各个词向量wmn,不仅提高了查找效率,还间接提高了整个文本分类的效率。本发明第三实施方式涉及一种终端设备,包括:词向量计算模块10、查找模块11、训练样本特征向量计算模块12和待分类文本类型确定模块13,其中,待分类文本类型确定模块13又具体包括:词向量获取子模块131、特征向量计算子模块132、余弦相似度计算子模块133和确定子模块134,如图6所示。词向量计算模块10,用于将L个文本分词后的数据输入连续词袋模型CBOW后,计算包含各个词向量wmn的词向量矩阵Wmn。查找模块11,用于将M个已知文本类型的训练样本分词后,从词向量矩阵Wmn中查找各个训练样本分别包含的词向量wmn。训练样本特征向量计算模块12,用于根据各个训练样本所包含的词向量wmn,计算每种文本类型的训练样本的特征向量Tk。待分类文本类型确定模块13,用于根据待分类文本的特征向量和各种文本类型的所述训练样本的特征向量Tk,确定待分类文本的类型。其中,词向量获取子模块131,用于从词向量矩阵Wmn中查找待分类文本所包含的各词向量wmn。特征向量计算子模块132,用于根据该待分类文本所包含的各词向量wmn,采用加和求平均的计算方式,计算该待分类文本的特征向量。余弦相似度计算子模块133,用于计算待分类文本的特征向量与各种文本类型的所述训练样本的特征向量Tk的余弦相似度值。确定子模块134,用于根据该余弦相似度值确定待分类文本的类型,其中,余弦相似度值最接近于1时所对应的训练样本的文本类型即为该待分类文本的类型。不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。本发明第四实施方式涉及一种终端设备,第四实施方式在第三实施方式的基础上做了进一步改进,主要改进之处在于:在本发明第四实施方式中,在词向量计算模块10之后,还包括:建立索引模块14,如图7所示。建立索引模块14,用于为词向量矩阵Wmn中的每一个词向量wmn建立相应索引,使得查找模块11与词向量获取子模块131可以更便捷、快速的根据该索引,在词向量矩阵Wmn中,查找各个训练样本或待分类文本所包含的词向量wmn。由于第二实施方式与本实施方式相互对应,因此本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、GPU、磁碟或者光盘等各种可以存储程序代码的介质。本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1