CN107832456A - 一种基于临界值数据划分的并行knn文本分类方法 - Google Patents
一种基于临界值数据划分的并行knn文本分类方法 Download PDFInfo
- Publication number
- CN107832456A CN107832456A CN201711192239.3A CN201711192239A CN107832456A CN 107832456 A CN107832456 A CN 107832456A CN 201711192239 A CN201711192239 A CN 201711192239A CN 107832456 A CN107832456 A CN 107832456A
- Authority
- CN
- China
- Prior art keywords
- text
- data
- algorithm
- value
- central point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数据处理技术领域,公开了一种基于临界值数据划分的并行KNN文本分类方法,包括:训练集文本重定义,经过预处理后,训练集中的文本就会被处理成统一的格式,将通过词条将文本中的信息处理成键值对的形式;确定新文本的向量,使用TF‑IDF方式处理新的文本;确定K个文本;文本的权重计算;比较类的权重值的大小,根据词条的权重将词条分到对应的中心点的集合中。本发明只需要和中心点集合中的数据进行相似度求解,然后进行分类减少分类时间开销;另外在对文本间的相似度计算的余弦定理上进行了改进,利用MapReduce的分布式编程优势处理文本相似度计算后的键值对,从而提高文本分类的效率。
Description
技术领域
本发明属于数据处理技术领域,尤其涉及一种基于临界值数据划分的并行KNN文本分类方法。
背景技术
近年来,随着互联网技术的迅速发展,在互联网上产生了大量数据,对于海量数据的处理成为了一个严峻的问题。这些数据一般以文本形式表现,而且数据量大,结构分散,如何挖掘人们感兴趣的信息成为了关键。在众多的分类算法中,KNN由于其实现简单、分类结果准确且稳定性高等特性成为当下使用最为广泛的分类算法之一。然而当训练集样本数据过大或特征词过多时,KNN算法的计算效率急剧下降。首先,海量数据使得文本相似度的计算量大幅增长。其次,文本数据过多,也使得文本分类的效率大大降低。
综上所述,现有技术存在的问题是:目前的分类算法在处理海量数据时存在文本数据过多,计算量大幅增长,文本分类效率大大降低的问题。在大数据时代,大规模分布式的数据存储已成为了大数据的实际存储模式,单纯的串行化分类改进技术已不能满足大数据的计算性能要求,如何实现高效的并行化分类算法是当前亟待解决的关键问题之一。同时,如何将大规模数据集合理的分布到多个数据节点上,从而提高并行分类算法的计算效率是实现并行化分类算法的重点。
发明内容
针对现有技术存在的问题,本发明提供了一种基于临界值数据划分的并行KNN文本分类方法。
本发明是这样实现的,一种基于临界值数据划分的并行KNN(K-nearestNeighbor)文本分类方法,所述基于临界值数据划分的并行KNN文本分类方法包括以下步骤:
步骤一,经过预处理后,训练集中的文本就会被处理成统一的格式,即通过词条将文本中的信息处理成键值对的形式。为了反映词条的特征信息,采用TF-IDF算法计算词条的权值,处理过程分为TF(Term Frequency)和IDF(Inverse Document Frequency)两部分:TF定义为文本中词条出现的频数;IDF定义为反向文本概率,是衡量词条分布的一个重要特性。其中TF的计算公式为:
tfi,j=ni,j/∑knk,j
式中,ni,j表示文本j中词条i的出现次数,∑knk,j表示文本j中所有词条的统计总数。
词条的IDF计算方法为:
idfi,j=log(|D|/|{j:ti∈dj}|)
式中,|D|表示样本数据集中所有文本总数;|{j:ti∈dj}|表示包含词条ti的文本数目(即ni,j≠0的文本数目),若分母为零,表示该词条不在数据集中,此时使用1+|{j:ti∈dj}|来代替分母;
得到词条权重的计算公式如下:
tfidfi,j=tfi,j×idfi,j
特定文本中的高频率的词条就会产生高权重的TF-IDF,从而对数据集中的词条进行筛选和过滤;
步骤二,确定新文本的向量,使用TF-IDF方式处理新的文本;
步骤三,确定K个文本,基于临界值文本划分算法得到样本数据集中的中心点集合,将待分类文本与中心点集合进行相似度计算,并根据相似度将待分类文本划分到中心点集合的对应数据集中,选出集合中K个最近邻文本;使用余弦定理并行化处理和TF-IDF,进行文本中的相似度计算:
步骤四,文本的权重计算公式为:
其中,x表示新特征词,sim(x,di)为上述相似度求解公式,而y(di,c)公式表示类别属性函数,即若dj属于C类true为1,false为0;
步骤五,比较类的权重值的大小,根据词条的权重将词条分到对应的中心点的集合中。
进一步,所述基于临界值的数据划分算法包括:
1)寻找数据集的中心点集,利用最远中心算法,并结合几何知识来计算出临界值near_value,计算过程中用到的最远中心算法是将最远距离算法和随机算法结合改进而成的,通过计算每个点之间的距离,并将其中的最小值min_dis进行保存,与之前得到的near_value进行比较,删除所有小于near_value的集合,然后在所有的样本集中找到点与点之间距离最大的集合作为中心点集合;
2)划分原始数据集,将通过最远中心点算法得到的中心点集合存入到mapper中,然后按照存储的顺序将原始数据集切分成相同大小的N份,并存入mapper中;开始执行map,此时的map是为了对每个点到中心点集合的距离进行计算,得到计算结果后,将待分类数据集中的每个元素按照分类结果划分到对应的集合中。
进一步,所述数据划分的方法包括:
提取预处理的数据样本,将样本进行等量划分后放入到各个mapper中,利用中心点查找算法,找出中心点集合;找到中心点集合后,对整个数据集中的所有元素进行处理,找出每个元素的最近中心点并将其划分到相应的集合中去;在进行数据划分时候,将计算各个元素到中心点的距离。
进一步,所述数据划分的方法的临界值α的大小为:
α=2×Rsub。
进一步,确定中心点集合的方法包括:
输入:集合D=(D1,D2,...,Dt),临界值α
输出:中心点集合Di
步骤一:将集合D分别放到mapper中;
步骤二:计算每个mapper中点对之间的距离并记录最小值Di_sum
步骤三:将每个Di_sum和临界值比较,小于临界值的不能成为候选集
步骤四:在中心点候选集中选出Di_sum的最大的集合Di,作为中心点集
步骤五:输出中心点集合Di
PS:集合D中的元素初始值设置为空,从而保证中心点的分布更加均匀,有利于后面数据的划分。
进一步,所述基于临界值数据划分的并行KNN文本分类方法基于分解余弦定理计算文本相似度,即采用并行化的方式分解余弦定理,对文本相似度进行计算。:
使用键值对<word,dx>,w>,然后重写MapReduce获得
使用MapReduce获取相同词条的权重进行求积,并求和最后将输出的结果进行相似度求解。
进一步,所述基于临界值数据划分的并行KNN文本分类方法通过基于临界值的数据划分算法将数据全集合理的分布到多个数据节点上;基于MapReduce并行处理过程对训练集文本和样本文本进行预处理,包括文本TF-IDF的计算和文本相似度的计算,从而实现文本数据的重定义;利用MapReduce并行处理的优势,实现待分类文本的高效处理,将待分类文本快速、准确的归并到所属类别中。。
本发明的优点及积极效果为:在预处理阶段针对样本数据集中的文本进行中心点查找工作,得出中心点集合,在待分类数据集中的文本数据到达时,只需要和中心点集合中的数据进行相似度求解,然后进行分类减少分类时间开销;另外在对文本间的相似度计算的余弦定理上进行了改进,利用MapReduce的分布式编程优势处理文本相似度计算后的键值对,从而提高文本分类的效率。
本发明在文本分类技术以及相似度并行化计算方面分析了预处理过程中的中心点划分算法以及余弦定理求解相似度的并行化过程。最后通过实验结果,进行算法运行结果分析对比。实验结果表明,MKNN算法在处理大规模数据时具有良好的并行计算扩展性,并在实验数据大小相近情况下,其分类效果明显提升;从而即保证了KNN算法分类的准确性优势又提高的分类的高效性。
附图说明
图1是本发明实施例提供的基于临界值数据划分的并行KNN文本分类方法流程图。
图2是本发明实施例提供的随机选择算法原理图。
图3是本发明实施例提供的最远选择算法示意图。
图4是本发明实施例提供的数据划分结果图。
图5是本发明实施例提供的文本分类基本过程示意图。
图6是本发明实施例提供的MapReduce并行文本分类过程示意图。
图7是本发明实施例提供的MapReduce的特征词选择运行时间示意图。
图8是本发明实施例提供的MapReduce计算特征权重TF-IDF运行时间示意图。
图9是本发明实施例提供的K的取值对MKNN分类的结果影响示意图。
图10是本发明实施例提供的预处理性能趋势示意图。
图11是本发明实施例提供的分类效率性能趋势示意图。
图12是本发明实施例提供的分类正确率示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提出了一种新型的数据划分方法,有效降低了文本分类的时间开销,同时,重点设计了预处理过程中的中心点划分算法以及余弦定理求解相似度的并行化过程,在保证KNN算法分类准确性的基础上提高了文本分类的时间效率。
本发明提供的基于临界值数据划分的并行KNN文本分类方法通过基于临界值的数据划分算法将数据全集合理的分布到多个数据节点上;基于MapReduce并行处理过程对训练集文本和样本文本进行预处理,包括文本TF-IDF的计算和文本相似度的计算,从而实现文本数据的重定义;利用MapReduce并行处理的优势,实现待分类文本的高效处理,将待分类文本快速、准确的归并到所属类别中。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于临界值数据划分的并行KNN文本分类方法包括以下步骤:
S101:训练集文本重定义,经过预处理后,训练集中的文本就会被处理成统一的格式,将通过词条将文本中的信息处理成键值对的形式;
S102:确定新文本的向量,使用TF-IDF方式处理新的文本;
S103:确定K个文本;基于临界值文本划分算法得到样本数据集中的中心点集合,将待分类文本进行相似度计算,并根据相似度将文本划分到中心点集合中的对应集合中,并选出集合中K个最近邻文本。使用余弦定理并行化处理,进行文本中的相似度计算;
S104:文本的权重计算;
S105:比较类的权重值的大小,根据词条的权重将词条分到对应的中心点的集合中。
下面结合附图对本发明的应用原理作进一步的描述。
1、基于临界值的数据划分算法,主要包含以下两个部分:
1)寻找数据集的中心点集。首先利用最远中心算法,并结合几何知识来计算出临界值near_value。计算过程中用到的最远中心算法是对最远距离算法和随机算法的结合改进而成的,通过计算每个点之间的距离,并将其中的最小值min_dis进行保存,与之前得到的near_value进行比较,删除所有小于near_value的集合,然后在所有的样本集中找到点与点之间距离最大的集合作为中心点集合。
2)划分原始数据集。首先,将通过最远中心点算法得到的中心点集合存入到mapper中,然后按照存储的顺序将原始数据集切分成相同大小的N份,并存入mapper中。开始执行map,此时的map是为了对每个点到中心点集合的距离的计算,得到计算结果后,将待分类数据集中的每个元素按照分类结果划分到对应的集合中。
通过对最远距离算法和随机选取方法的结合,改进出的最远中心算法来选取数据集的中心点,能够使得数据集中的中心点分布更加均匀,而且通过MapReduce框架来对算法进行应用,不仅更好的保证了数据的完整性,并且对算法的时间开销有了极大的缩减。
1.1中心点算法
基于Voronoi的划分:按照最邻近原则,将样本数据集中的每个元素划分到与该元素距离最近的点所在的集合中,那么在进行数据划分之前,要先寻找划分的基准,也就是数据集的中心点集。
中心点:在数据集合中,与数据集合中所有元素的距离平均值最小的那个点,称之为中心点。中心点的选取是需要依据已有的数据集合。但是在本发明中是需首先按照中心点算法寻求中心点,然后再计算数据集中的每个元素到该数据集中心点的距离和为标准,划分数据集。
随机选取K个点做中心点,然后对集合的任意两点间的距离进行计算得到距离和,那么距离最大的即认为是中心点集合。其原理图如图2所示,同一颜色的元素即为同一样本数据集中的样本。
如图2所示,选取绿色样本集S1为例,首先计算每个点之间的距离,图中的样本数据集共有5个点,那么即需要经过C_5^2=10次计算,并将这10次计算的距离进行加和计算,得到距离和结果D1,依次计算其他Di,选取其中最大距离和的样本即为中心点集合。通过对图2的观察可得知,根据随机选取的选取原则,每个点对之间的距离和最大的为最为分散的蓝色数据集,而其中黄色数据集中的元素点对间的距离和相较于红色更大,但由于其中两个元素点相对集中,并不适合中心线。对比发现红色为最理想的中心点集合,但因为其点对之间的距离和并非最大,那么对之后的目标种子集的选取会有一定的影响。
根据前面介绍的最远距离选择法选出类簇的K个中心点。如图3所示,展示了最远距离选择法的两种情况,其中黑色点为数据集中原始点,红色点为选定的中心点,箭头方向表示选择的顺序。
根据图3,首先选取的点无论是在数据集的边缘还是中心,最后得到的中心点的位置都会向边缘位置偏移,造成中心点的不均匀分布,这很容易导致最后的数据划分也会不均匀分布。
数据划分:选取样本数据集R,按照选取的划分原则,可以将此数据及R划分为若干个不相交的子集{P_1^R,P_2^R,…,P_i^R,…,P_n^R},那么P_i^R就是数据集R的第i个数据划分。以二维数据为例,数据划分的结果如图4所示。
如图4所示,根据这种分类算法来划分数据,因为中心点选取的不均匀分布,造成有部分数据划分后的中心点并不是划分时的中心点,所以可见中心点的选取对数据处理有着很重要的影响。
图4数据划分结果图MapReduce框架下对划分之后的数据进行处理的前提是对数据集进行很好的划分。而对于数据划分的定义如下:
输入:数据集R={r1,r2,...,ri,...rm}
数据集S={s1,s2,...,si,...sm}
输出:数据划分
数据划分
中心点集合:Pivot={P1,P2,...,Pi,...Pm}
1.2数据划分算法
数据划分算法主要有以下几个步骤:首先提取预处理的数据样本,将样本进行等量划分后放入到各个mapper中,利用中心点查找算法,找出中心点集合;找到中心点集合后,对整个数据集中的所有元素进行处理,找出每个元素的最近中心点并将其划分到相应的集合中去;在进行数据划分时候,将计算各个元素到中心点的距离,也就是本发明要用到的文本相似度求解。
1.2.1确定临界值α
通过中心算法所形成的数据划分,其中心点并不是该数据划分真正的中心点。因此本发明中首先找到一个临界值α。
因为文本数据多样性的特点,所以在计算数据集中两文本间的距离使用分解余弦定理来进行计算,将会在后续章节进行详细的讲解,余弦定理公式如下:
以二维数据为例,设所处理的数据点都在一个圆形区域内。那么在最佳的数据划分情况下,即各个划分的大小(面积)相同,即将圆的面积划分成若干个大小相等的小圆,可以将数据划分转化为以下问题:
在一个半径为R圆内画m个半径都为Rsub的的相切的圆,其中R>Rsub,各个内切圆的圆心即为中心点,那么各个中心点之间的最小距离为2*Rsub;
在一个大圆内,可画出若干个半径相等的相切的小圆,那么各个圆心之间最小的距离即为小圆半径的2倍。需要说明的是:如果一个点不在任何内切圆内,就将根据就近原则划分到相应的圆内。
在一个半径为R圆内,画N个半径都为Rsub的相切的圆,N的大小为:
由公式(2)可以得到每个内切圆的半径为:
其中N为内切圆的个数,即数据划分的个数,也就是中心点的个数。
通过上文可以确定,临界值α的大小为:
α=2×Rsub (4)
1.2.2确定直径R
通过上一节的内容,半径R的大小就很容易确定了,把数据整体看作一个圆形,那么要求出圆形的直径,就可以将问题转化如下问题:
一个圆形内的所有点(包括在圆上的点),不难得出任意两点之间的距离小于等于此圆的直径,而且一定有至少两个点在圆上且其连线经过圆心,即至少有一个点对之间的距离为此圆的直径。
可以通过反证法来证明此问题,已知圆0是包含数据集中所有点的最小的圆,假设此圆形区域中的具有最大距离的两个点之间的连线不经过圆心,点A和点B就为距离最大的两个点,作出一条与其平行的直径,假设圆的半径为X,点A和点B之间的距离即为2Y,显然X>Y,OD为经过圆心的直线并且是AB的垂直平分线,并与AB相交于点C,若以点C为圆心,以Y为半径重新画圆,那么圆C一定还在圆O内,因为若要是圆C超出圆的边界,则必须满足与圆C的半径之和大于圆O的半径,即+Y>X,通过不等式导出结果Y>X,这与已经给出的条件相矛盾,因此,以C为圆心的圆一定在圆0内。因此直线AB为具有最大距离的两点,那么C为圆心的圆才是包含所有数据的最小的圆,这与已知圆O是包含素有数据的最小圆是相矛盾的的,因此,在这个圆形区域中,如若链接最大距离的两个点,那么它们的连线必定经过圆心。
这样就将求直径的问题转化成了求数据集中两点间距离最大值的问题。通过最远选择法的原理,采用抽样结合的方法和最远选择法来确定最大值。必须强调的是,为了将计算简化,采取的是抽样的方法来求最大值。在之前提到的划分是最佳状态下的划分,即划分的每份大小都是相等,但是在实际情况下划分的时候很难达到这种情况,因此在求最大值时不一定需要找到准确的最大值,只需要采取抽样的方法,在所选样本中找出的最大值即可作为本发明中所要求的临界值。
通过最远划分的原理:找出与当前点最远的点。最大值的寻找基本思路如下:随机选择一个点,使用该点执行最远选择法,每次都可以找到一个点,并且记录当前两点间的距离,以及找到的所有值中的最大值,每次找到一个点时,就要对当前所有找到的所有距离值进行判断,判断这组值是否符合正态分布,若符合就停止,反之继续,算法的伪代码如下:
算法1:MaxDis
输入:数据集R,集合D
输出:两点之间最大距离MAX_DISTANCE
步骤一:在数据集R中随机选择一个点作为第一个当前中心点r1,R=R-{r1}
步骤二:利用公式1计算当前点到数据集R中点对的距离,选择出与当前距离最远的点ri,将ri设为当前中心点R=R-{ri}
步骤三:当前中心点与ri的距离为di,di>MAX_DISTANCE,则di=MAX_DISTANCE
步骤四:计算集合D中所有元素是否符合正态分布,符合则结束,否则回到步骤
算法最后输出数据集内两点间的最大距离MAX_DISTANCE
然后根据公式,得出的临界值:
求出了临界值得大小,根据临界值对随机算法选择的中心点进行剪枝。
1.2.3确定中心点集合
改进后的中心点算法基本思想是利用求出的临界值同样本集中的子集合中元素距离最小值进行比较,如果小于临界值就放弃,其余的就作为候选集,最后在所有候选集中找出最大的距离的集合作为中心点集合,算法的伪代码如下:
算法3-2:PivotSelection
输入:集合D=(D1,D2,...,Dt),临界值α
输出:中心点集合Di
步骤一:将集合D分别放到mapper中;
步骤二:计算每个mapper中点对之间的距离并记录最小值Di_sum
步骤三:将每个Di_sum和临界值比较,小于临界值的不能成为候选集
步骤四:在中心点候选集中选出Di_sum的最大的集合Di,作为中心点集
步骤五:输出中心点集合Di
PS:集合D中的元素初始值设置为空,从而保证中心点的分布更加均匀,有利于后面数据的划分。
1.2.4进行数据划分
使用确定好的中心点集合进行文本数据的划分,如何高效的划分数据,始终是KNN算法的一个突破点。这里利用MapReduce的分布式优势,很好的对数据进行了快速的划分。其基本思想:首先,在每一个mapper上放置一个中心集合数据集;然后,将待分类的数据集分成相同份额的数据,进行mapper分布式计算,得出每个数据到中心点的距离。最后,根据求出的距离,将数据划分到对应的中心点集合中的点所在的集合中,从而完成数据划分。
基于MapReduce的分布式结构,将数据处理为键值对(key,value)的形式。假定key分一个随机编码UUID,value为中心点的权重,对于一个到达的数据,将其key改成中心点的key值,即(key,value)。算法伪代码如下:
算法3-3:DataPartition
输入:数据集R={R1,R2,...,Rn}
数据集S={S1,S2,...,Sn};中心点集合D
输出:数据划分信息汇总表TR和TS
步骤一:将R1,R2,...,Rn分别放到各个mapper中,中心点集合D放到各个mapper中
步骤二:在每个mapper中,计算ri到D中每个点的距离,选择出最小的di∈D,并将ri编码,其编号为di的编号;
步骤三:各个mapper输出若干个(key,value)点对;
步骤四:shuffle过程,把具有相同key值得点对放入到reduce当中,则reducer当中的点对value构成一个划分;
步骤五:输出数据划分信息表TR和TS
本发明在进行文本数据划分的时候,进行细微的划分处理,不是直接将数据进行划分,而是先进行数据集之间数据的中心点集合的划分,然后将数据在集合中找到对应点对应的集合。
2、并行KNN文本分类算法的实现
并行KNN文本分类算法利用MapReduce的并行化处理过程,实现海量文本数据的高效分类,基于MapReduce实现文本数据分类算法大体上三部分进行处理:对数据集中的文本数据进行预处理阶段;计算文本数据之间的相似度。
2.1算法介绍
本发明提出的MKNN算法的文本分类的处理过程基于KNN分类,在不同的实际情况中,对MKNN算法进行不同的环境配置,变量定义,实现不同的过程。对于MKNN文本分类中,要使用到TF-IDF和余弦定理,以及临界值的文本划分算法。下面先给出KNN的文本分类的流程图。如图5。
KNN算法的分类实现为:通过待分类文本与训练集中的文本进行相似度的计算,得出k个最临近的值,然后就将这文本归到最接近的类别中。
基于KNN分类过程,进行MKNN实现分类的过程具体步骤下如下。
(1)训练集文本重定义
经过预处理后,训练集中的文本就会被处理成统一的格式,将通过词条将文本中的信息处理成键值对的形式,如:
Hello world and Hello Java
通过键值对形式处理后:<Hello,2>,<world,1>,<and,1>,<Java,1>当未分类文本到达时,比如:Hello python,放到训练集中并更新训练集特征词,下面给出WordCountd的处理过程图。
对于使用TF-IDF进行特定文本处理主要分为TF和IDF两部分。TF定义为文本中词条出现的频数,IDF为训练集文本中文本总量和含该次文本总数的商,定义为反向文本概率,而反向文本概率是衡量词条分布的一个重要特性。其中对于TF特定文件的计算公式为:
tfi,j=ni,j/∑knk,j (6)
公式(6)中,ni,j表示文本j中词条i的出现次数,∑knk,j表示文本j中所有词条的统计总数。。
字词的IDF其相应的计算方法为:
idfi=log|D|/|{j:ti∈dj}| idfi,j=log(|D|/|{j:ti∈dj}|) (7)
公式(7)中,|D|表示样本数据集中所有文本总数;|{j:ti∈dj}|表示包含词条ti的文本数目(即ni,j≠0的文本数目),若分母为零,表示该词条不在数据集中,此时使用1+|{j:ti∈dj}|来代替分母。
即词条权重的计算公式如下:
tfidfi,j=tfi,j×idfi,j (8)
特定文本中的高频率的词条就会产生高权重的TF-IDF,从而对数据集中的词条进行筛选和过滤。
(2)确定新文本的向量。
依旧使用TF-IDF方式处理新的文本;
(3)确定K个文本
基于临界值文本划分算法得到样本数据集中的中心点集合,将待分类文本与中心点集合进行相似度计算,并根据相似度将待分类文本划分到中心点集合的对应数据集中,选出集合中K个最近邻文本;使用余弦定理并行化处理和TF-IDF,进行文本中的相似度计算:
(4)文本的权重计算公式为:
其中,x表示新特征词,sim(x,di)为上述相似度求解公式,而y(di,c)公式表示类别属性函数,即若dj属于C类true为1,false为0;
(5)比较类的权重值的大小
根据词条的权重将词条分到对应的中心点的集合中。
经过上述5个步骤就完成MKNN算法的分类,对于MKNN算法的处理过程,对训练数据集的要求相当的严格,训练数据集中的内容通过临界值分类算法进行确定,对于相似度的计算MKNN算法主要对数据集中文本的相似度的并行化处理。
2.2基于分解余弦定理计算文本相似度
使用TF-IDF进行文本词条的权重的计算,本发明使用余弦定理对两个文本之间的相似度进行计算,在通过TF-IDF处理得到的映射<word,w>,然后将训练数据集中的文本和预分类的文档进行向量化<<word,dx>,w>,word为词条,w为每个词条的权重,dx为文本。使用两个文档向量对应的角余弦定理进行相似度求解,具体余弦定理公式(9)。
本发明使用一种新的方法进行相似度的求解——分解余弦定理,即分开计算,然将结果合并。
使用键值对<word,dx>,w>然后重写MapReduce获得
使用MapReduce获取相同词条的权重进行求积,并求和最后将输出的结果进行相似度求解。
利用MapReduce并行化,对文本相似度并行化分解处理,使用提出分散乘积,聚集和相似度求解过程,分为聚之。计算词条权重的乘积,然后重写Map方法统一键值对格式werd为key,聚集所有训练数据及中文档进行Reudce计算。
经过上述计算得到的文档类别信息,但是MapReduce的value是无序的,这个时候就需要使用二次排序对value的值进行排序,所有的键值对被map函数拿到后,判断文档的标识。新的文档就会创建wrdInt类,同时重写比较器中的比较方法campare,经过map和shuffle处理。就可以对词条进行相同规划重定向。
2.3数据集的处理过程
2.3.1训练集文本的MapReduce过程
根据提高分类算法时间效率的目标,使用MapReduce和KNN算法进行结合来处理样本数据并对相似度的计算进行分解。基本思量:利用TF-IDF向量化处理,将文本转换成键值对<key,value>的样式,然后进行相似度计算。
2.3.2样本文本的预处理过程包括:文本的标题的预处理和文本内容的预处理。
(1)文本标题预处理过程
文本标题信息主要包括:标题,作者,样本类型,内容,注解等几个部分。根据标题信息进行文本属性的分类后,使用实体类Document将这些分类的属性进行封装,这样在进行MapReduce分类的时候只需要调用类的对象名即可。
在实现过程中通过定义实体类完成文本参数的封装,直接使用javabean进行参数调用,在实体类Document中,将文本名称和类别定义为dName和dClass两个属性。使用带有形参的构造方法进行实例化对象,返回数据类型为<document实例对象,文本内容>。样本在文本标题预处理后,转换为<document,content>形式。
(2)文本内容预处理过程
文本内容的预处理使用WordCount函数统计文本内容中的词条数量。下面将对map和reduce函数进行重写。
首先将训练数据集中的文本处理成键值对<document,content>后设定为WordCount的输入文件,然后利用Map和Reduce函数的一系列工作,得出词条统计结果。
同之前的词条统计的过程相比,本发明在预处理中同时输入多个文本文件到MapReduce分词处理过程,由于map函数的并行操作需要,key的值必须包含标题关键字信息,这样可以与document词条统计的key进行区分。并行处理文本可以提高文本词条的统计效率。
经过上述步骤处理后的文本都被表示成为<<document,word>,n>这样的形式,而实现过程中,使用到了洗牌过程的sort和Shuffle对样本训练集关键字进行排序处理。
2.3.3特征向量化文本的实现
KNN算法效率的提高关键在于数据的分类过程,本发明使用向量化处理文本数据。文本处理后的格式为:V(document)={<word1,w1><word2,w2>…<wordn,wn>},这样就可以使得未经处理的文本和下面的分解分类过程中一致,优化计算操作。
预训练集的向量化处理的结果是分类的唯一依据,所以这个过程要保证得到的数据的高效性和准确性。
通过MapReduce进行文本信息的特征向量化。使用TF-IDF进行权重计算,定义如下几个变量:
训练数据集文本:dx
词条:word
词条文本的总量:m
所有词条总数:N
过程1进行文本标识,统计所有词条信息
过程2数据集中词条以key作为词条标识,使用sort二次排序进行词条文档聚集,之后进入Reduce函数完成统计,返回m的值。
过程3进行TF-IDF计算,文本document是唯一的,Reudce数据文件特征向量化的样本文本。
预处理过程中,Reduce处理后的文件作为一个新的训练集。
过程2中将输出文件outdb1传到过程3中map函数,其中outdb1的数据存放类型为<word,m>的形式。m就是m对应的当前文本的中的word的个数。
预处理的文本需要多次遍历数据集中的文本,保留outdb1,在分类过程中作为索引文件进行查询训练数据集。
通过一系列MapReduce将文本处理为键值对的形式。
2.3.4待分类文本处理过程
通过将所有文本处理为特征向量形式:V(d)={<<d1,word1>,w1>,<<d2,word2>,w2>…<<dn,wordn>,wn>},对预处理的新的文本进行向量化的处理:
(1)得到预处理文本的标题,使用Document实体类去标识新的文本。
(2)充分利用MapReduce技术和之前TF-IDF方法进行特征化处理新文本。
MapReduce的Map和Reduce函数的处理过程的四个过程中,可以看出过程1和过程2的map函数和reduce函数,这里不再重复。
在过程3中,经过了过程1和过程2得到了输出文件。通过TF-IDF得到想要的词条个数。并利用向量化处理新文本和训练集文本后,利用MapReduce的中间shuffle等过程完成二次排序,新排序后的数据作为Reduce接收的数据进行累加计算。
通过在MapReduce执行后将产生的临时文件db1输入到map中,其中db1的格式为<word,<dx,n,m>>,词条个数为m。outbd1可以对应不同数据集的索引文本,reduce过程就变成了一个查询的过程。
对reduce函数进行优化:
(1)处理过程优化——对包含当前处理的word的训练集文本的reduce函数进行统计,利用Reducer对每一个value进行数据累加求和过程。
(2)数据量优化——利用Map任务产生的中间临时文本数据db1进行训练集文档相应词条的文档总数计算m。
值得注意的是优化处理过程在一定程度上对磁盘空间有消耗,map函数的处理过程较为复杂,对于小量的数据就没有必要进行优化。但是当数据规模庞大的时候使用以上优化技术,可以很大程度上提高计算效率。
经过Map3和Reduce3数据处理后,键值对的形式为<word,<dx,n,N,m>>而value中还有三个比较重要的参数:
文本中词条总个数n;
dx文本的所有词条总数目N;
训练集文本中含有某词条的文本数目m;
在MapRecdce过程4中就是对TF-IDF中的三个参数进行提取然后进行权重计算。利用TF-IDF方法与MapReduce分布式技术结合,通过上述一些列的操作,最终得出词条权重,而文本输出的格式为<<word,d1>w>。
对于未分类的文本进行MapReduce处理,要多次进行键值对<Key,Value>的转换过程,将多属性处理为单一属性作为key方式。
2.4MKNN分类算法的实现
图6展示了本发明提出的基于MapReduce的并行文本分类算法的实现过程,具体描述如下:
(1)对每类别样本数据使用中心点集合算法进行子集的划分,将得到的结果<fileResult,TFIDF>作为map函数的输入。从fileResult中获取文本类别信息,将相同类别的文本划分到同一个reduce函数中,使用subClassName表示子类别名称。
(2)计算每个子集的中心点,此阶段map函数的输入为上一步的输出,map主要任务就是将同一个子集中的所有文本收集起来,交给reduce函数处理,reduce通过最远中心点和随机中心点算法,得到子集的中心点。
(3)通过上述两个步骤得到了样本数据集的子集划分结果,当待分类文本到来时,将待分类文本处理成<testFileName,testFileTFIDF>格式,map函数在子集中找到待分类文本的K个最近邻文本,disFileValue表示文本间距离,经过reduce过程处理,输出testFileName和K个最近邻文本距离,将待分类文本进行分类。至此完成MKNN算法的分类。
下面结合实验对本发明的应用效果作详细的描述。
1通过实验对MKNN算法的准确性、分类效率等进行分析。首先,搭建Hadoop的工作环境,然后进行大量数据的分类实验。通过对KNN算法、FKNN算法以及文本提出的MKNN算法进行性能比较,验证了MKNN算法处理大规模数据的高效性。
1.1实验环境和性能指标
本发明使用Hadoop分布式文件系统进行集群的搭建,使用java语言进行训练集处理,词条分类的代码实现,实验采用了四台计算机,选其中一台作为Master。
硬件环境、软件环境、网络环境如下表1和表2所示:
表1实验环境
表2计算机网络环境信息
为了让Hadoop环境能够适应的程序的需求,对默认的Hadoop环境进行了调整:复制因子设置为1,Map和Reduce在每个节点接收的最大数值设置为了3,DFS数据块的大小256M,Map和Reduce的虚拟内存设置为512MB。
进行文本分类后,为了有效方便的对实验的结果数据进行估计,这里从三个方面进行实验结果的分析:准确率、召回率和F1值。其中,分类后类中不变的文本个数定义为X;分类后新到该类的文本个数定义为Y;分类后踢出的文本个数定义为Z。计算公式如下:
1.2MapReduce处理大数据性能验证
本发明使用的训练集语料库数据是来自华东理工大学的文本数据,文本信息主要为:名称、类别、文件大小、作者和日期等。语料库包含七个类别的14000个文本数据(A3-Nature、A11-Computer、A18-Art、A21-Politics、A22-Economy、A32-Agriculture和A39-Sports),每个类别选取2000个文本,进行算法测试。
为了验证MapReduce在处理大的数据比小的数据的优势,设计五个语料库,其每个类别分别选取100、200、500、1000、2000数据量不等的文本进行测试,然后选择不同的节点进行其特征词选择的时间开销对比,如图7。
图7实验表明,随着数据量不断的增加,其特征词的选取时间开始也在不断增加,另外,相同数据量下,节点越多其时间开销越小。从而可是看出MapReduce处理大规模数据时候的高效性优点。
为了更进一步验证MapReduce对大规模数据的处理优势,对TF-IDF计算的时间开销做出对比,同样选择上述的五类不同的数据量在不同的节点下的开销,节点数依旧选择1-3个不同的节点,运行结果如图8所示。
从图8可以看出时间开销与节点数呈反比现象。另外,在3个节点,数据量高于600MB后,开始逐渐趋于平缓的走势,表明,时间开销开始稳定。进一步说明并行MapReduce在处理大规模数据时候的优势是明显高于对于小规模数据的处理的。
3实验分析
3.1MKNN分类算法准确度和分类性能实验
对提出的MKNN算法进行性能分析,实验环境和实验数据与上一节相同,通过实验对MKNN,FKNN和KNN算法在准确率、召回率和F1值进行性能分析对比,其中K值选取50。实验结果如表3。
通过实验结果对比,可以看出MKNN算法在不同的结果上都是比另外两个算法有优势。
表3预处理时间对比数据
对MKNN算法高效性做进一步验证,在上一实验数据基础上进行分类时间对比验证,以验证MKNN算法的高效性,如下表4所示。
表4分类时间开销数据
通过表4的实验结果数据显示,可以看出MKNN算法在K取50时分类时间上的开销是远远小于另外两个算法的。
通过实验数据结果可以看出,MKNN算法在准确度和分类性能上都是优于另外两个算法,FKNN算法相比KNN算法在性能上有了很大的提高,本发明提出的MKNN算法性能优于FKNN算法。
3.2参数K对MKNN分类结果的影响实验
将选取不同的K值进行验证MKNN算法的分类性能,其中对于K值选取从最小的5开始到最大的200,而本次将使用上节提到的三个指标的宏均值去表示实验的结果,实验结果如表5和图9所示。
表5K值对MKNN分类的影响
从表5和图9可以看出,MKNN算法的分类性能随着K值得变化从5到20先上升,20后开始呈下降趋势,从而可以看出在K值取20的时候达到了性能的最大值。不论是从准确率、召回率还是F1值上其概率都是在85%以上,可以看出其分类的效率还是很高的。由于语料库的类别等原因,在K的选值上达到实验最大时,对中心点集合的选择性就越大,最后导致文本会往密集的集合靠拢。综上,K值的不同选取对本发明提出的MKNN算法影响较大。
4K的取值对MKNN分类的结果影响
4.1对比实验
随机选取其中的12000篇文本作为训练集文本,另外选3000篇文本作为待分类文本进行数据分类。基于相同的样本数据集,分别使用三种算法进行实验对比,并对实验结果进行分析,如图10、图11、图12所示
图10中显示的是在不同的样本数据数据量下三种算法的分类性能,由于KNN算法没有对数据的预处理过程,这里只分析FKNN算法和MKNN算法。随着样本数据集中文本数据量的增加,FKNN算法的分类时间快速递增的趋势,而MKNN算法开始上升,当达到一定量的时候开始逐渐趋于平稳,也就是说MKNN算法在数据预处理阶段,时间效率明显高于FKNN算法,并且样本数据量越大效率优势越明显,进而说明MKNN算法对大规模数据处理的高效性。
从图11可以看出三种算法的分类性能趋势图,FKNN算法和MKNN算法在分类性能上的时间开销都是远远小于传统的KNN算法的,MKNN算法整体上都是平稳的趋势,而FKNN算法开始分类性能还是可以的,但是随着K值得不断的增加,时间开销开始上涨,从而可是看出,MKNN算法优于FKNN算法。
图12可以看出K值的选择会对算法的分类正确性产生不同的影响,但是从柱形图上可以看出本发明提出的MKNN算法的分类正确性是高于对比算法的,在K为20时差别最为明显。
综合上述在三个方面的对比实验结果可以看出:
对于KNN算法的分类处理,在对大规模数据样本数据集进行预处理后,MKNN算法和FKNN算法的分类效率都得到了很大的提高,而且样本的预处理只需要执行一次,不会影响整体的分类效率,同时经过对比,MKNN算法与传统KNN分类算法的正确率是一致的。证明本发明中的分类过程是可行的。
MKNN算法在对KNN算法改进后,其在大规模数据上的数据处理性能明显优于KNN算法和FKNN算法。因此,本发明提出的并行KNN分类算法是高效、可行的,发明中设计的基于临界值的数据划分算法能够有效提高并行算法的处理性能。
本发明通过配置Hadoop集群,利用MapReduce的分布式优势,首先实验验证MapReduce处理大规模数据的优势,然后在相同数据集下验证改进的MKNN算法的分类性能,最后统计实验结果,对三种算法的分类效率和正确率进行结果分析。进而论证了在MapReduce下实现MKNN文本分类技术的分类效率优势。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于临界值数据划分的并行KNN文本分类方法,其特征在于,所述基于临界值数据划分的并行KNN文本分类方法包括以下步骤:
步骤一,经过预处理后,训练集中的文本就会被处理成统一的格式,即通过词条将文本中的信息处理成键值对的形式。为了反映词条的特征信息,采用TF-IDF算法计算词条的权值,处理过程分为TF和IDF两部分:TF定义为文本中词条出现的频数;IDF定义为反向文本概率,是衡量词条分布的一个重要特性。其中TF的计算公式为:
tfi,j=ni,j/∑knk,j
式中,ni,j表示文本j中词条i的出现次数,∑knk,j表示文本j中所有词条的统计总数。
词条的IDF计算方法为:
idfi,j=log(|D|/|{j:ti∈dj}|)
式中,|D|表示样本数据集中所有文本总数;|{j:ti∈dj}|表示包含词条ti的文本数目(即ni,j≠0的文本数目),若分母为零,表示该词条不在数据集中,此时使用1+|{j:ti∈dj}|来代替分母;
得到词条权重的计算公式如下:
tfidfi,j=tfi,j×idfi,j
特定文本中的高频率的词条就会产生高权重的TF-IDF,从而对数据集中的词条进行筛选和过滤;
步骤二,确定新文本的向量,使用TF-IDF方式处理新的文本;
步骤三,确定K个文本,基于临界值文本划分算法得到样本数据集中的中心点集合,将待分类文本与中心点集合进行相似度计算,并根据相似度将待分类文本划分到中心点集合的对应数据集中,选出集合中K个最近邻文本;使用余弦定理并行化处理和TF-IDF,进行文本中的相似度计算:
<mrow>
<mi>s</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<mi>&theta;</mi>
<mo>=</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msub>
<mi>w</mi>
<mi>k</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<msub>
<mi>w</mi>
<mi>k</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>/</mo>
<mo>(</mo>
<msqrt>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msubsup>
<mi>w</mi>
<mi>k</mi>
<mn>2</mn>
</msubsup>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
</msqrt>
<mo>&times;</mo>
<msqrt>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msubsup>
<mi>w</mi>
<mi>k</mi>
<mn>2</mn>
</msubsup>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
</msqrt>
</mrow>
步骤四,文本的权重计算公式为:
<mrow>
<mi>P</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>&Sigma;</mi>
<mrow>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>&Element;</mo>
<mi>K</mi>
<mi>N</mi>
<mi>N</mi>
</mrow>
</msub>
<mi>s</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<mi>y</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
</mrow>
其中,x表示新特征词,sim(x,di)为上述相似度求解公式,而y(di,c)公式表示类别属性函数,即若dj属于C类true为1,false为0;
步骤五,比较类的权重值的大小,根据词条的权重将词条分到对应的中心点的集合中。
2.如权利要求1所述的基于临界值数据划分的并行KNN文本分类方法,其特征在于,所述基于临界值的数据划分算法包括:
1)寻找数据集的中心点集,利用最远中心算法,并结合几何知识来计算出临界值near_value,计算过程中用到的最远中心算法是对最远距离算法和随机算法的结合改进而成的,通过计算每个点之间的距离,并将其中的最小值min_dis进行保存,与之前得到的near_value进行比较,删除所有小于near_value的集合,然后在所有的样本集中找到点与点之间距离最大的集合作为中心点集合;
2)划分原始数据集,将通过最远中心点算法得到的中心点集合存入到mapper中,然后按照存储的顺序将原始数据集切分成相同大小的N份,并存入mapper中;开始执行map,此时的map是为了对每个点到中心点集合的距离进行计算,得到计算结果后,将待分类数据集中的每个元素按照分类结果划分到对应的集合中。
3.如权利要求2所述的基于临界值数据划分的并行KNN文本分类方法,其特征在于,所述数据划分的方法包括:
提取预处理的数据样本,将样本进行等量划分后放入到各个mapper中,利用中心点查找算法,找出中心点集合;找到中心点集合后,对整个数据集中的所有元素进行处理,找出每个元素的最近中心点并将其划分到相应的集合中去;在进行数据划分时候,将计算各个元素到中心点的距离,也就是文本相似度求解。
4.如权利要求3所述的基于临界值数据划分的并行KNN文本分类方法,其特征在于,所述数据划分的方法的临界值α的大小为:
α=2×Rsub
5.如权利要求2所述的基于临界值数据划分的并行KNN文本分类方法,其特征在于,确定中心点集合的方法包括:
输入:集合D=(D1,D2,...,Dt),临界值α
输出:中心点集合Di
步骤一:将集合D分别放到mapper中;
步骤二:计算每个mapper中点对之间的距离并记录最小值Di_sum
步骤三:将每个Di_sum和临界值比较,小于临界值的不能成为候选集
步骤四:在中心点候选集中选出Di_sum的最大的集合Di,作为中心点集
步骤五:输出中心点集合Di
PS:集合D中的元素初始值设置为空,从而保证中心点的分布更加均匀,有利于后面数据的划分。
6.如权利要求2所述的基于临界值数据划分的并行KNN文本分类方法,其特征在于,所述基于临界值数据划分的并行KNN文本分类方法基于分解余弦定理计算文本相似度进行相似度的求解——分解余弦定理,即分开并行计算,然后将结果合并:
<mrow>
<mi>s</mi>
<mi>i</mi>
<mi>m</mi>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mi>cos</mi>
<mi>&theta;</mi>
<mo>=</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msub>
<mi>w</mi>
<mi>k</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<msub>
<mi>w</mi>
<mi>k</mi>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>/</mo>
<mo>(</mo>
<msqrt>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msubsup>
<mi>w</mi>
<mi>k</mi>
<mn>2</mn>
</msubsup>
<msub>
<mi>d</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
</msqrt>
<mo>&times;</mo>
<msqrt>
<mrow>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</msubsup>
<msubsup>
<mi>w</mi>
<mi>k</mi>
<mn>2</mn>
</msubsup>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>)</mo>
</mrow>
</msqrt>
</mrow>
使用键值对<word,dx>,w>然后重写MapReduce获得;
使用MapReduce获取相同词条的权重进行求积,并计算最后将输出的结果进行相似度求解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711192239.3A CN107832456B (zh) | 2017-11-24 | 2017-11-24 | 一种基于临界值数据划分的并行knn文本分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711192239.3A CN107832456B (zh) | 2017-11-24 | 2017-11-24 | 一种基于临界值数据划分的并行knn文本分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832456A true CN107832456A (zh) | 2018-03-23 |
CN107832456B CN107832456B (zh) | 2021-11-26 |
Family
ID=61652534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711192239.3A Active CN107832456B (zh) | 2017-11-24 | 2017-11-24 | 一种基于临界值数据划分的并行knn文本分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832456B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213866A (zh) * | 2018-09-19 | 2019-01-15 | 浙江诺诺网络科技有限公司 | 一种基于深度学习的税务商品编码分类方法和系统 |
CN109242036A (zh) * | 2018-09-25 | 2019-01-18 | 艾凯克斯(嘉兴)信息科技有限公司 | 一种基于tf-idf思想计算产品结构相似性的方法 |
CN110990349A (zh) * | 2019-10-30 | 2020-04-10 | 南京理工大学 | 一种智能系统安全体系中的不平衡日志过采样方法 |
CN111090811A (zh) * | 2019-12-24 | 2020-05-01 | 北京理工大学 | 一种海量新闻热点话题提取方法和系统 |
CN111832259A (zh) * | 2019-04-12 | 2020-10-27 | 中国联合网络通信集团有限公司 | Json数据生成方法及设备 |
CN115048524A (zh) * | 2022-08-15 | 2022-09-13 | 中关村科学城城市大脑股份有限公司 | 文本分类展示方法、装置、电子设备和计算机可读介质 |
CN116451099A (zh) * | 2023-06-19 | 2023-07-18 | 浪潮通用软件有限公司 | 一种基于随机遍历的高熵knn聚类方法、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033949A (zh) * | 2010-12-23 | 2011-04-27 | 南京财经大学 | 基于修正的k近邻文本分类方法 |
CN102999542A (zh) * | 2012-06-21 | 2013-03-27 | 杜小勇 | 多媒体数据高维索引及kNN检索方法 |
CN104408095A (zh) * | 2014-11-15 | 2015-03-11 | 北京广利核系统工程有限公司 | 一种基于改进的knn文本分类方法 |
CN104536830A (zh) * | 2015-01-09 | 2015-04-22 | 哈尔滨工程大学 | 一种基于MapReduce的KNN文本分类方法 |
CN105426426A (zh) * | 2015-11-04 | 2016-03-23 | 北京工业大学 | 一种基于改进的K-Medoids的KNN文本分类方法 |
US20170024663A1 (en) * | 2015-07-24 | 2017-01-26 | Ebay Inc. | Category recommendation using statistical language modeling and a gradient boosting machine |
CN106886569A (zh) * | 2017-01-13 | 2017-06-23 | 重庆邮电大学 | 一种基于mpi的ml‑knn多标签中文文本分类方法 |
-
2017
- 2017-11-24 CN CN201711192239.3A patent/CN107832456B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033949A (zh) * | 2010-12-23 | 2011-04-27 | 南京财经大学 | 基于修正的k近邻文本分类方法 |
CN102999542A (zh) * | 2012-06-21 | 2013-03-27 | 杜小勇 | 多媒体数据高维索引及kNN检索方法 |
CN104408095A (zh) * | 2014-11-15 | 2015-03-11 | 北京广利核系统工程有限公司 | 一种基于改进的knn文本分类方法 |
CN104536830A (zh) * | 2015-01-09 | 2015-04-22 | 哈尔滨工程大学 | 一种基于MapReduce的KNN文本分类方法 |
US20170024663A1 (en) * | 2015-07-24 | 2017-01-26 | Ebay Inc. | Category recommendation using statistical language modeling and a gradient boosting machine |
CN105426426A (zh) * | 2015-11-04 | 2016-03-23 | 北京工业大学 | 一种基于改进的K-Medoids的KNN文本分类方法 |
CN106886569A (zh) * | 2017-01-13 | 2017-06-23 | 重庆邮电大学 | 一种基于mpi的ml‑knn多标签中文文本分类方法 |
Non-Patent Citations (4)
Title |
---|
JESUS MAILLO ET AL.: ""A MapReduce-based k-Nearest Neighbor Approach for Big Data Classification"", 《2015 IEEE TRUSTCOM/BIGDATASE/ISPA》 * |
刘灿 等: ""一种在KNN查询处理中预估剪枝阂值的方法"", 《计算机技术与发展》 * |
张孝飞 等: ""一种采用聚类技术改进的KNN文本分类方法"", 《模式识别与人工智能》 * |
李荣陆 等: ""基于密度的kNN文本分类器训练样本裁剪方法"", 《计算机研究与发展》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213866A (zh) * | 2018-09-19 | 2019-01-15 | 浙江诺诺网络科技有限公司 | 一种基于深度学习的税务商品编码分类方法和系统 |
CN109242036A (zh) * | 2018-09-25 | 2019-01-18 | 艾凯克斯(嘉兴)信息科技有限公司 | 一种基于tf-idf思想计算产品结构相似性的方法 |
CN111832259A (zh) * | 2019-04-12 | 2020-10-27 | 中国联合网络通信集团有限公司 | Json数据生成方法及设备 |
CN111832259B (zh) * | 2019-04-12 | 2023-09-12 | 中国联合网络通信集团有限公司 | Json数据生成方法及设备 |
CN110990349A (zh) * | 2019-10-30 | 2020-04-10 | 南京理工大学 | 一种智能系统安全体系中的不平衡日志过采样方法 |
CN111090811A (zh) * | 2019-12-24 | 2020-05-01 | 北京理工大学 | 一种海量新闻热点话题提取方法和系统 |
CN111090811B (zh) * | 2019-12-24 | 2023-09-01 | 北京理工大学 | 一种海量新闻热点话题提取方法和系统 |
CN115048524A (zh) * | 2022-08-15 | 2022-09-13 | 中关村科学城城市大脑股份有限公司 | 文本分类展示方法、装置、电子设备和计算机可读介质 |
CN115048524B (zh) * | 2022-08-15 | 2022-10-28 | 中关村科学城城市大脑股份有限公司 | 文本分类展示方法、装置、电子设备和计算机可读介质 |
CN116451099A (zh) * | 2023-06-19 | 2023-07-18 | 浪潮通用软件有限公司 | 一种基于随机遍历的高熵knn聚类方法、设备及介质 |
CN116451099B (zh) * | 2023-06-19 | 2023-09-01 | 浪潮通用软件有限公司 | 一种基于随机遍历的高熵knn聚类方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107832456B (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832456B (zh) | 一种基于临界值数据划分的并行knn文本分类方法 | |
CN106570178B (zh) | 一种基于图聚类的高维文本数据特征选择方法 | |
CN109947904B (zh) | 一种基于Spark环境的偏好空间Skyline查询处理方法 | |
Kumar et al. | Canopy clustering: a review on pre-clustering approach to K-Means clustering | |
CN110619231B (zh) | 一种基于MapReduce的差分可辨性k原型聚类方法 | |
Angiulli | CFOF: a concentration free measure for anomaly detection | |
Suganthi et al. | Instance selection and feature extraction using cuttlefish optimization algorithm and principal component analysis using decision tree | |
Zhao et al. | Improved KNN text classification algorithm with MapReduce implementation | |
Wang et al. | An improved k NN text classification method | |
Tang et al. | Efficient Processing of Hamming-Distance-Based Similarity-Search Queries Over MapReduce. | |
WO2015001416A1 (en) | Multi-dimensional data clustering | |
Eghbali et al. | Online nearest neighbor search using hamming weight trees | |
Esfandiari et al. | Almost linear time density level set estimation via dbscan | |
Alguliyev et al. | Batch clustering algorithm for big data sets | |
Yang et al. | DBSCAN-MS: distributed density-based clustering in metric spaces | |
Zhang et al. | Chameleon algorithm based on improved natural neighbor graph generating sub-clusters | |
Ma et al. | POD: A parallel outlier detection algorithm using weighted kNN | |
Chen et al. | An analysis and research on wireless network security dataset | |
CN112579783B (zh) | 基于拉普拉斯图谱的短文本聚类方法 | |
CN109784354B (zh) | 基于改进分类效用的无参数聚类方法及电子设备 | |
KR20200051300A (ko) | Cf 트리를 활용한 범위 질의 기반의 데이터 클러스터링 장치 및 방법 | |
CN115687352A (zh) | 一种存储的方法及装置 | |
CN114024912A (zh) | 一种基于改造chameleon算法的网络流量应用识别分析方法及系统 | |
CN108268620A (zh) | 一种基于hadoop数据挖掘的文档分类方法 | |
Kancharla | Feature selection in big data using filter based techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |