一种基于改进的K-Medoids的KNN文本分类方法

文档序号:9667375阅读:535来源:国知局
一种基于改进的K-Medoids的KNN文本分类方法
【技术领域】
[0001] 本发明涉及计算机文本数据处理领域,特别涉及一种基于改进的K-Medoids的K 最近邻(K-Nearest_Neighbor,KNN)文本分类方法。
【背景技术】
[0002] 随着互联网、物联网以及云计算的发展,数据正在以指数形式增长,引领我们步入 大数据时代。美国互联网数据中心(IDC)指出,互联网上的数据每年以50%的比例增长,而 目前世界上90%以上的数据是最近几年产生的。目前全球数据量已达到ZB级别,而伴随大 量数据的产生的还有蕴含于其中的极大的潜在价值。
[0003] 当今大数据时代,挖掘数据潜在的价值至关重要。数据挖掘作为发现数据潜在 价值的技术,引起极大关注。大数据中文本数据占相当大的比例,而文本分类作为有效 组织和管理文本数据的数据挖掘方法,逐渐成为关注热点。它在信息过滤、信息组织和 管理、信息检索、数字图书馆以及垃圾邮件过滤等方面得到广泛应用。文本分类(Text Classification,TC)是指在预先给定的类别体系下对未知类别文本根据其内容将其自动 划分到一类或多类的过程。常用的文本分类方法,如K最近邻,贝叶斯(NaiveBayes,NB) 以及支持向量机(SupportVectorMachine,SVM)等。
[0004] KNN作为经典的分类方法之一,有实现简单、鲁棒性高等优点;但也存在很多缺 点,以至于不能适用于很多实际应用中。KNN的不足主要包括以下两个方面:第一,分类过 程中因相似度计算量巨大而耗费大量时间,导致分类效率低。第二,分类性能容易受训练样 本的影响,当数据出现严重不均匀分布时,分类器性能可能受到严重影响,甚至变得极差。 针对KNN分类过程计算量大的问题,将很多研究者的改进总结为以下三个方面:第一,改进 特征选择方法,将那些对分类贡献小的特征词舍弃,实现对VSM(Vector Space Model)模型 的有效降维。第二,通过选取原始训练文本集中的一些代表文本作为新的训练文本集或者 删除原来训练文本集中的某些对分类贡献小的文本,将删除后剩余的文本作为新的训练文 本集。第三,设计快速搜索算法,以加快测试文本的K个最近邻文本的搜索速度。考虑到目 前各种KNN改进型算法在速度和精度上难以兼顾的情况,设计分类精度高且分类速度快的 KNN文本分类方法具有重要的学术意义和实用价值。

【发明内容】

[0005] 本发明的目的在于,从分类速度和分类精度上改进KNN文本分类算法。一方面,为 提高KNN算法分类速度,采用改进的K-Medoids聚类算法以裁剪对KNN分类贡献小的训练 样本;另一方面,为提高KNN算法分类精度,定义代表度函数并将其引入KNN算法中,实现有 差别地处理测试文本的K个最近邻文本。
[0006] 本发明的特征如下:
[0007] 步骤1,从互联网上下载已公开发布的中文语料库一一训练文本集和测试文本 集;
[0008] 步骤2,采用分词软件ICTCLAS对训练文本集和测试文本集进行分词、停用词去除 进行预处理,得到分词后的训练文本集和测试文本集;
[0009] 步骤3,采用文档频率DF(DocumentFrequency)方法对分词后的训练文本集进行 特征选择,得到该训练文本集对应的特征词库;
[0010] 步骤4,将每个训练文本和每个测试文本分别用特征词库的特征词表示为向量形 式,每一维的权重根据TFIDF=TFXIDF计算,TF(TermFrequency)为词频,是指特征项在 文档中出现的次数,IDF(InverseDocument)为逆文档频率,公式为IDF=log(M/nk+0. 01), Μ为文档集合中包含的文本数,nk表示包含该词的文档数。
[0011] 步骤5,基于改进的K-Medoids算法的训练样本裁剪(定义训练文本集为S,S包 含Q,C2,......,CN这N个类别,共包括文本数为Μ)。
[0012] 步骤5. 1,对于训练文本集S,指定其需要划分为m个簇,m= 3ΧΝ;
[0013] 步骤5. 2,为每个簇随机选取一个中心点(0 <i彡m);
[0014] 步骤5. 3,计算训练文本集S中剩余非中心点文本与这m个中心点的余弦相似度, 将它们分配剞相似庠最女的簇中,会弦相似庠计筧公式如下:
[0015]
[0016] 其中,η为特征向量维度阈值,乂^表示训练文本集S中剩余非中心点文本d的第j 维的权重(〇 <j彡η),表示中心文本0;的第j维的权重(0 <i彡m, 0 <j彡η)。
[0017] 步骤5. 4,初始中心点选择的优化,在每个簇内,以簇内每个点作为中心点,计算它 与簇内其它文本的相似度之和,选择相似度之和最小的点为新的中心点〇/ ;
[0018] 步骤5. 5,选择一个未选择过的中心点0/,这是第j次迭代(j从0到m取值), 共进行m次迭代,替换中心点集U不再是全局非中心点集,而是h'的邻近范围,这个范围 是指距中心点α'最近的j个簇包含的所有非中心点文本构成的区域;
[0019] 步骤5. 6,在中心点候选集U中选择一个未被选择过的非中心点Q,计算Q和(V 的平方误差之差,记录在集合E中,直到U中的所有非中心点都被选择过;
[0020] 步骤5. 7,如果min(E) < 0 (集合E中最小值小于0),用集合E中最小值对应的非 中心点替换原中心点,替换后得到新的m个中心点的集合,把剩余的对象分配给相似度最 大的中心点所代表的簇,重新从步骤5. 5开始执行;
[0021] 步骤5. 8,如果min(E) >0或min(E) =0,替换中心点搜索过程结束,最终得到m 个聚类中心点〇/';
[0022] 步骤5. 9,计算测试文本与m个聚类中心的相似度,如果Sim(D, 0/ ) < 1\(1\为 第i个簇的簇内阈值,即簇内文本与该簇中心点的最小相似度),说明测试文本与该簇内 的文本相似度相当低,所以可以把该簇包含的文本裁剪掉;如果SinKD,。/ ) >?\或者 Sin^D,。/ ) =1\,把该簇内包含的文本加入到新的训练文本集S_。
[0023] 步骤6,进行KNN分类。
[0024] 训练文本集为Snew,测试文本为d,η为特征向量维度阈值,K取5, 10, 15, 20, 25, 30。
[0025] 步骤6. 1,利用向量夹角的余弦值来计算测试文本d与S_中全部文本之间的相似 度;
[0026] 步骤6. 2,选出步骤6. 1得到的相似度最大的K个文本作为测试文本d的K个最近 邻文本;
[0027] 步骤6. 3,计算测试文本d属于每个类别的权重,将测试文本d归到权重最大的类 别。
[0028] 设训练文本山的已知类别为C,,则将山对于类别C,的重要程度定义为代表度函 数u(山,Cj),定义代表度函数如下:
[0029]
[0030] 其中,@、表示类别Cj中心向量,是将类别Cj的所有文本向量相加再求平均。 )表示训练文本山到所属类别C,的类别中心的欧式距离,g)为训练文本 山与所属类别C,的类别中心的余弦相似度。
[0031] 权重计算公式如下:
[0032]
[0033] 其中,7(山,Cj)为类别属性函数,将代表度函数引入类别属性函数,公式如下:
[0034]
[0035] 本发明的效果为:
[0036] 本发明提出一种基于改进的K-Medoids的KNN文本分类方法,快速且精确度高地 实现了对测试文本的分类,流程图见图1,精确度指标见表1(传统的KNN算法、本文算法 分别在K= 5、K= 10时分类效果最好,这里仅给出两种方法的最好效果),时间指标见表 2。与传统的KNN方法相比,一方面本发明定义了代表度函数,并将其引入传统方法的类别 属性函数,实现有差别地处理测试文本的K个最近邻文本,提高了分类精度;另一方面本发 明采用改进的K-Medoids聚类方法对原始训练样本集进行裁剪,提高了分类效率。与基于 K-Medoids的KNN方法相比,本发明采用初始中心点优化和替换中心点搜索策略优化的方 法,一是降低了K-Medoids方法初始中心点敏感的影响,二是加快了K-Medoids方法替换中 心点搜索过程的进行。从表1和表2可以看出,与传统的KNN方法和基于K-Medoids的KNN 方法相比,本发明在分类精度和分类效率上均有较明显地提高。
【附图说明】
[0037] 图1是本发明方法的流程图。
【具体实施方式】
[0038] 本发明是采用以下技术手段实现的:
[0039] -种基于改进的K-Medoids的KNN文本分类方法。首先进行训练文本集和测试 文本集的预处理,包括分词,停用词处理,进行DF特征选择,将训练文本和测试文本均表示 为向量形式;然后采用改进的K-Medoids方法对训练文本进行裁剪,得到新的训练文本集 S_;最后定义代表度函数,并将其引入原始KNN算法的类别属性函数,用于KNN分类。
[0040] 上述改进的KNN文本分类方法,包括下述步骤:
[0041] 步骤1,从互联网上下载已公开发布的中文语料库一一训练文本集和测试文本 集;
[0042] 步骤
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1