一种基于knn的文本分类方法

文档序号:10612893阅读:343来源:国知局
一种基于knn的文本分类方法
【专利摘要】本发明公开了一种基于KNN的文本分类方法,适用于核安全级软件验证和可靠性验证。本发明的文本分类方法包括训练过程处理和测试过程处理,将训练样本数据集以原始文本自身和文本中所有的标题两部分的信息来表示。依据文本由浅到深的特征层次结构构建两个DBM模型,提取低维高区分度的深层特征并存储,在测试过程中以适当的权重考虑文本标题给相似度的计算带来的贡献来确定待测试文本的类别。本发明充分利用文本标题的信息,比将浅层特征向量作为训练集在分类性能上有显著改善,同时能够降低存储需求和在线计算量,解决了特征向量高维灾难问题,提高了分类的准确度,可以用于安全级软件可靠性评价分析中的规则匹配和失效模式库的建立。
【专利说明】
一种基于KNN的文本分类方法
技术领域
[0001]本发明涉及一种基于KNN的文本分类方法,特别涉及核安全级软件验证和可靠性验证。
【背景技术】
[0002]在核安全级的软件开发过程中,产生大量的技术文件,并随着软件的迭代开发,技术文件也不断地更新,针对每一版文件中的每个条目项(如需求项或设计项),根据核电相关软件标准,必须满足评估规则的要求,因此,快速准确的确定条目项与规则之间的关联关系是质量人员亟待解决的问题。另外,在软件产品开发的整个生命周期中,为了及早发现潜在的失效,在每个阶段都要迭代执行失效模式及影响分析(FMEA),建立失效模式库并能够自动查询与条目项相关的失效模式也是分析人员关注的问题。
[0003]文本分类是指按照预先定义的主题类别,根据信息内容将不同的信息划分到与其相关的类别中。文本分类方法主要包括向量空间法、决策树方法、神经网络方法、遗传算法、贝叶斯分类、K近邻(K-NearestNeighbor,KNN)、支持向量机等。另外,近年来,在机器学习领域掀起了深度学习的浪潮,主要模型有自编码器、受限玻尔兹曼机(Restricted BoltzmannMachine,RBM),深度玻尔兹曼机(Deep Boltzmann Machine ,DBM)、深度信念网络(DeepBelief Network,DBN)、卷积神经网络(Convolut1nal Neural Network,CNN)等。深度神经网络包含多个隐藏层,具备强大的特征表达能力和对复杂任务的建模能力,因而被广泛的应用于图像处理、语音识别、文本分类和信息检索等工业领域。本发明利用KNN文本分类技术识别条目项与评估规则项、失效模式之间的关联关系,在KNN文本分类过程中采用DBM模型对文本进行特征提取,构建具有深层特征属性的向量空间模型。
[0004]20世纪90年代以后,随着互联网技术的飞速发展,基于统计理论和机器学习方法成为主流的文本分类技术,其中KNN是最早应用于自动文本分类的机器学习算法之一,其分类思想是:取待分类文本d的K个近邻,看这K个近邻中多数属于哪一类,就将d归于该类。该方法由于其简单,易实现,无需估计参数,且适合于多分类问题的优势而被广泛的应用。但是,该方法对测试文本分类时计算量大,内存开销大,尤其当文本表现为高维特征,将会降低分类器的实现性能和分类性能。在文本分类算法中,首先将文本转化为数据集表示,文本数据集的表示一般采用向量空间模型(Vector Space Model,VSM),即用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,将文本中的词映射为实数值特征向量,以特征向量代替原始数据集。即使通过这些处理,文本向量的维度依然很高,维度灾难问题直接影响了 KNN算法对内存开销的要求和对测试文本进行分类时的计算量;而且,由于不具有区分度的特征项未被剔除,会损害分类精确度。因此,必须对文本特征向量做进一步净化处理,在保证不损失文本核心信息的基础上,提取对文本类别最具代表性的文本特征,从而降低向量空间维数。为了解决这个问题,传统的特征选择方法大多采用各评估函数进行特征权重的计算,如卡方检验(Ch1-square test)、信息增益(IG,Informat1n Gain)等,由于这些评估函数是基于统计学的,其中一个主要缺陷是权重高的特征词可能对分类没有什么用处,反而会干涉到正确的分类,而真正有用的特征却因为出现的频率低而获得较低的权重,甚至在降低特征空间维数的时候被删除掉了,从而影响到对文本核心信息的真实反映。另外一种特征选择常用的方法是主成分分析法,它不是通过特征选取的方式降维的,而是通过搜索最能代表原数据的正交向量,创立一个替换的、较小的变量集来组合属性的精华,原数据可以投影到这个较小的集合。它能够揭示更多有关变量重要方向的信息,但是在主成分方法中,由于矩阵方法的复杂度在η很大的情况以二次方增长,难以求解。深度神经网络其本质思想就是堆叠多个神经元层,每个层都提取一定的特征和信息,这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达。因此深度神经网络具有优异的特征学习能力,学习到的特征对数据有更本质的刻画,并且深度神经网络在训练上的难度,可以通过“逐层初始化”来有效克服。其中RBM是一个二部图,一层是可视层(V),另一层是隐藏层(h),同层节点之间没有连接,它是深层模型的基本组件,用来逐层初始化网络参数,同时它也是特征学习的过程。DBM是由多个RBM构成的深层模型,通过隐藏层对原始输入的一步一步抽象表示,来学习原始输入的数据结构,找到更有用的特征,从而最终提高分类问题的准确性。
[0005]此外,作为核电领域的技术文件,其编写要符合标准规范,尤其是同类的标题具有高度的概括性和相似性,如果在对文本建立向量空间模型的时候,采取将整个文本统一处理,会极大的损失标题给分类带来的重要信息。

【发明内容】

[0006]针对现有技术存在的不足,本发明利用深度玻尔兹曼机(DBM)自动提取特征并实现降维的特点,提出了一种基于KNN的文本分类方法。
[0007]本发明提出的基于KNN的文本分类方法,包括训练过程处理和测试过程处理,
[0008]所述训练过程包括以下步骤:
[0009]步骤一,对训练样本数据集建立向量空间模型,计算样本的浅层特征向量,包括:提取每个文本中的段落标题形成标题数据集,分别对原始数据集和标题数据集进行预处理,分词,去除停用词,计算每个训练样本和对应的标题集的特征向量,形成原始文本特征向量和标题特征向量;
[0010]步骤二,分别以原始文本特征向量和标题特征向量作为可视层的输入数据,构建两个包含5层隐藏层的深度玻尔兹曼机,并由这两个模型分别逐级提取原始文本深层特征向量V。和标题深层特征向量Vt ;
[0011]步骤三,分别对原始文本深层特征向量V。和标题深层特征向量Vt进行加权合并得至帽练样本深层特征向量(λν。;(1-A)vt),λ是权重系数。存储该训练样本深层特征向量;
[0012]所述测试过程处理包括以下步骤:
[0013]步骤四,利用所述步骤一方法获得待测文本的特征向量,由步骤二构建的神经网络模型对其进行逐级特征提取,利用步骤三所述方法对提取后的特征向量进行加权合并,得到该待测文本的深层特征向量;
[0014]步骤五,计算步骤四所述的特征向量与步骤三所存储的每个特征向量之间的相似度,将相似度按大小降序排序,在相似度排在前K的向量中,将多数特征向量所具有的类别,作为待测文本的类别。
[0015]本发明基于KNN的文本分类方法,充分利用技术文件自身规范性,以及文本标题的重要信息,利用DBM模型,提取区分度更高的特征同时降低特征维数,改善了文本分类性能,降低了维度过高给基于KNN的分类算法带来的存储需求和在线计算量,特别适用于大规模的技术文件分类系统。本发明提出的文本分类算法解决了特征向量高维灾难问题,有效提高了分类的准确度,可以用于安全级软件验证中的规则匹配和可靠性评价分析中失效模式库的建立。
【附图说明】
[0016]图1为本发明基于KNN的文本分类方法流程图;
[0017]图2为本发明基于KNN的文本分类方法DBM构建及训练样本的深层特征提取流程图;
[0018]图3为本发明基于KNN的文本分类方法DBM模型结构图。
【具体实施方式】
[0019]下面结合附图对本发明基于KNN的文本分类方法做详细描述。
[0020]本发明提出的基于KNN的文本分类方法,将训练样本数据集以原始文本自身和文本中所有的标题两部分的信息来表示。分别针对所有的文本和所有标题,依据文本由浅到深的特征层次结构构建两个DBM模型,进一步提取低维高区分度的深层特征并存储,在测试过程中以适当的权重考虑文本标题给相似度的计算带来的贡献来确定待测试文本的类别。该方法能够充分的利用文本标题的信息,且比将浅层特征向量作为训练集在分类性能上有显著改善,同时能够降低存储需求和在线计算量。
[0021 ]基于文本自身的层次结构特征,构建含有5层隐藏层的DBM神经网络,自动抽取训练数据集的深层特征和降低特征向量的维数,并将该模型应用于基于KNN的文本分类算法,以实现降低对数据集的存储需求,和测试过程的计算量,同时显著改善分类性能。
[0022]如图1所示,本方案所提出的分类方法包括训练过程处理和测试过程处理两个部分,并应用于软件需求和设计文档的审查,以及软件可靠性分析过程中。其中,训练过程针对原始数据集和标题数据集分别做如下处理:对训练样本数据集建立VSM模型,提取文本本身及其标题集的浅层特征表示,其过程包括预处理,分词,去除停用词,计算每个训练样本及其标题集的特征向量;然后以浅层特征数据集作为输入,构建两个包含5层受限玻尔兹曼机的神经网络,提取深层特征向量,并分别加权存储。测试过程包括:针对待测样本,将文本本身和标题集进行预处理,特征计算;利用训练过程中得到的神经网络对该特征向量进行处理得到低维深层特征向量;计算与训练过程中存储的每个特征向量之间的相似度,在相似度排在前K的向量中,寻找多数向量所具有的类别,作为待测文本的类别。
[0023]训练过程对文件中的标题集和原始文本分别建立独立DBM模型,并对其进行特征提取、降低特征维数并参与类别判定决策。其过程如图2所示:
[0024]第一步,将原始数据集的每个训练样本中所有段落的标题提取出来,构成的新的微型的标题数据集。
[0025]第二步,分别针对原始数据集和标题数据集提取浅层特征。方法如下:
[0026]文本预处理:搜集文本并进行预处理,包括处理文本乱码及非文本内容,分词并去停用词,删除非相关文本;
[0027]特征向量计算:忽略特征项在文档中的先后顺序并要求特征项互异,将文档简化为以特征项的权重为分量的向量表示。利用TF-1DF(Term frequency-1nverse documentfrequency)方法计算文本特征项的权重,并且进行归一化处理,得到原始文本特征向量di
(wil ; W12 ;...; Wlm),d2(W21;W22;...; W2m) ,..., dn(wnl ;Wn2 ;...; Wnm)和标题特征向量l(tll ;tl2;...; tlm' ) ,d7 2(t21;t22;...; t2m’ ) ,..., d7 n (tnl ; tn2 ;...; tnm’ ),如图2所示,其中,n 为文本数量,n^Pm’分别为原始文本的特征项个数和标题文本的特征项个数。
[0028]第三步,分别以原始文本特征向量和标题特征向量为输入数据,基于文本自身的层次结构特征,构建两个含有5层隐藏层的DBM神经网络,分别记为Ml和M2。该模型应用于基于KNN的文本分类算法,以实现降低对数据集的存储需求,和测试过程的计算量,同时用于改善分类性能。
[0029]DBM模型的构建方法如下:文本的特征层次结构由浅层特征到深层特征包括词、短语、句子、段落、文章和语义,构建两个包含5层隐藏层的DBM神经网络模型提取文本深层特征并实现降维,其结构如图3所示:
[0030]图3中,(Vi;V2;......; Vi)、(hii ;hi2;......;hij)、(h2i ;h22;......;h2k)、(h3i;
h32;......;h31)、(h41;h32;......;h4p)和(h51;h52;......;h5q)分别代表可视层单兀和隐藏层单元,i,j,k,I,p和q分别代表对应可视层和隐藏层的单元个数。
[0031]训练该DBM的步骤如下:
[0032]首先以样本特征向量作为可视层初始值,训练底层的RBM模型,该过程采用基于对比散度的快速学习算法,具体训练过程如下:根据可视层向量V来得到隐藏层向量h的状态:h = o(b+ff.v);
[0033]通过h来重构可视层向量VSVyob+?1".!!);
[0034]再根据V1来生成新的隐藏层向量IiSh1= O^W-V1);
[0035]按照如下规则更新各个参数:
[0036]ff^ff+e(h.vT-h1.(v1)T)
[0037]a^a+ε (v-v1)
[0038]b—b+eCh-h1)
[0039]其中,ε为学习率;W为可视单元与隐藏层单元之间连接权重矩阵,a为可视单元的偏置向量,b为隐藏层单元的偏置向量,可视单元数与第一层隐藏层单元数分别为i和j,则W是」><1阶的矩阵,3为;[维列向量,13为」维列向量;激活函数为0(1) = 1/(1+61口(1))。在训练过程中,神经元个数的设定,参数的初始化,学习率的调整和训练周期的确定需要在实践中多次训练,反复摸索尝试。
[0040]以上一层RBM模型的输出作为下一层RBM模型的可视层,重复以上过程。
[0041]将构建两个DBM模型时,获取的原始文本特征向量和标题特征向量的低维深层抽象特征数据集,分别称为原始文本深层特征向量V。和标题深层特征向量vt,如图2所示,其中,md是原始文本特征向量经过Ml提取后的向量维数,md’是标题特征向量经过M2提取后的向量维数。将这两个向量空间分别加权为λν。和(1-A)vt,其中λ是权重系数,0<λ<I,AeR,并按照文本顺序对应合并存储,获得训练样本深层特征向量,其形式如图2所示。
[0042]测试过程:
[0043]将待测文本的标题提取出来组成新的文本,分别进行预处理、特征计算得到原始待测文本特征向量和待测文本标题特征向量,其方法与训练过程相同;分别将原始待测文本特征向量和待测文本标题特征向量经过Ml和M2网络的提取得到原始待测文本深层特征向量VC1UTDFV和待测文本标题深层特征向量VUTTDFV,直接加权后合并构成待测文本深层特征向量(Xvqutdfv ; (1-λ) vuttdfv),其中权重与训练过程中的λ相同;将待测文本深层特征向量与训练样本深层特征向量中的每个特征向量进行相似度计算,在前K个相似度最大的向量中,寻找多数向量所具有的类别,作为待测文本的类别。
【主权项】
1.一种基于KNN的文本分类方法,包括训练过程处理和测试过程处理, 所述训练过程包括以下步骤: 步骤一,对训练样本数据集建立向量空间模型,计算样本的浅层特征向量,包括:提取每个文本中的段落标题形成标题数据集,分别对原始数据集和标题数据集进行预处理,分词,去除停用词,计算每个训练样本和对应的标题集的特征向量,形成原始文本特征向量和标题特征向量; 步骤二,分别以原始文本特征向量和标题特征向量作为可视层的输入数据,构建两个包含5层隐藏层的深度玻尔兹曼机,并由这两个模型分别逐级提取原始文本深层特征向量V。和标题深层特征向量Vt ; 步骤三,分别对原始文本深层特征向量V。和标题深层特征向量Vt进行加权合并得到训练样本深层特征向量(λν。;(1-A)vt),其中λ是权重系数,存储该训练样本深层特征向量;所述测试过程处理包括以下步骤: 步骤四,利用所述步骤一方法获得待测文本的特征向量,由步骤二构建的神经网络模型对其进行逐级特征提取,利用步骤三所述方法对提取后的特征向量进行加权合并,得到该待测文本的深层特征向量; 步骤五,计算步骤四所述的特征向量与步骤三所存储的每个特征向量之间的相似度,将相似度按大小降序排序,在相似度排在前K位的向量中,将多数特征向量所具有的类别,作为待测文本的类别。
【文档编号】G06F17/30GK105975573SQ201610288920
【公开日】2016年9月28日
【申请日】2016年5月4日
【发明人】冯素梅, 赵云飞, 张亚栋, 江国进, 白涛, 王晓燕, 宁祾, 程建明
【申请人】北京广利核系统工程有限公司, 中国广核集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1