CN104536830A - 一种基于MapReduce的KNN文本分类方法 - Google Patents

一种基于MapReduce的KNN文本分类方法 Download PDF

Info

Publication number
CN104536830A
CN104536830A CN201510012387.7A CN201510012387A CN104536830A CN 104536830 A CN104536830 A CN 104536830A CN 201510012387 A CN201510012387 A CN 201510012387A CN 104536830 A CN104536830 A CN 104536830A
Authority
CN
China
Prior art keywords
value
file
word
mapreduce
knn
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.)
Pending
Application number
CN201510012387.7A
Other languages
English (en)
Inventor
赵靖
王延斌
韩财兴
杨武
张立国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201510012387.7A priority Critical patent/CN104536830A/zh
Publication of CN104536830A publication Critical patent/CN104536830A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于数据挖掘和云计算领域,具体涉及一种在Hadoop集群上,依据KNN算法和MapReduce编程模型特点,并行化的实现文本分类的基于MapReduce的KNN文本分类方法。本发明包括:数据预处理:其中包括分词、去停用词、词根还原三个过程;特征提取:对训练数据集进行处理,筛选出区分能力最强的特征项;运用KNN算法对测试数据集进行分类。本发明在Hadoop平台上实现的KNN算法具有较好的加速比和良好的扩展性,在数据量相同的情况下,算法的执行效率与集群节点数有关,一般节点越多处理数据的效率就越高。本发明在适当的节点上高效的完成了文本分类任务。

Description

一种基于MapReduce的KNN文本分类方法
技术领域
本发明属于数据挖掘和云计算领域,具体涉及一种在Hadoop集群上,依据KNN算法和MapReduce编程模型特点,并行化的实现文本分类的基于MapReduce的KNN文本分类方法。
背景技术
随着信息技术的发展,互联网数据呈现指数级增长,为了有效的管理和利用这些海量数据,基于内容的信息检索和数据挖掘技术备受关注。其中,文本分类技术是信息检索和数据挖掘技术的基础,其主要任务是在预先给定的类别标记集合下,根据文本内容判定它的类别。文本分类在自然语言处理与理解、信息组织与管理、内容信息过滤等领域都有着广泛的应用。
在数据挖掘算法中,KNN算法是一种理论成熟,简单常用的分类算法。用KNN算法进行文本分类时,虽然采用特殊的数据结构存储训练数据能够提高K近邻搜索的效率,但是在对海量数据进行处理时,KNN算法的计算时间复杂度非常高。这样就限制了KNN算法在海量数据分析任务中的应用。为了解决这个难题,基于Hadoop的云计算平台被运用到数据挖掘领域。
Hadoop是Apache基金会下的一个开源分布式计算平台,以Hadoop分布式文件系统HDFS和MapReduce分布式计算框架为核心,为用户提供了底层细节透明的分布式基础设施。HDFS的高容错性、高伸缩性等优点,允许用户将Hadoop部署在廉价的硬件上,构建分布式系统;MapReduce分布式计算框架则允许用户在不了解分布式系统底层细节的情况下开发并行、分布的应用程序,允许利用大规模的计算资源,解决传统高性能单机无法解决的大数据处理问题。Hadoop已成为目前分析海量数据的首选工具。
不少专家学者对KNN算法、文本分类技术和MapReduce编程模型进行了研究,并提出了自己独到的见解。马廷淮等人于2013年8月,在南京航空航天大学学报上发表了《KNN分类算法的MapReduce并行化实现》这篇文章,他们在文章中提出了一种KNN算法的MapReduce并行化实现方法,并利用人工合成的数据进行试验,但是他们没有把这种方法应用到文本分类中。2012年钟将和刘荣辉在计算机工程与应用上发表了文章《一种改进的KNN文本分类》,在文章中他们提出了一种改进的KNN文本分类方法,即利用隐含语义分析方法对特征样本空间进行降维处理,并利用基于样本密度的改进的KNN分类器进行分类。但是他们没有引入MapReduce编程模型来并行化的实现这种改进的KNN分类算法。本发明在分析了他们的研究成果之后,提出了一种用KNN算法和MapReduce编程模型来实现文本分类的方法,这种方法能够很好的处理海量的文本数据。
发明内容
本发明的目的在于提供一种处理数据效率更高的一种基于MapReduce的KNN文本分类方法。
本发明的目的是这样实现的:
(1)数据预处理:其中包括分词、去停用词、词根还原三个过程;
(2)特征提取:对训练数据集进行处理,筛选出区分能力最强的特征项;
(3)运用KNN算法对测试数据集进行分类。
数据预处理的MapReduce阶段中包括3个Map过程1个Reduce过程,训练数据集作为输入文件,其中的Key为类名、文件名,Value为文件内容,包括如下步骤:
(1.1)Map1过程:对输入的Value进行词法分析,然后发送Key和Value;
(1.2)Map2过程:向内存中读入停用词汇表,依据停用词汇表对Map1输出的Value内容去停用词发送Key和Value;
(1.3)Map3过程:调用Porter Stemming算法,对Map2输出的Value内容进行词根还原,发送Key和Value;
(1.4)Reduce过程:对Map3产生的Key和Value进行收集,生成数据预处理后的文件。
特征提取是对训练数据集预处理后的文件进行处理,筛选出区分能力最强的特征项,采用统计训练数据集中出现次数大于阈值的方法,生成一个特征词汇表,并计算特征词汇表中每个单词的IDF值,包括如下步骤:
(2.1)Map过程:将数据预处理文件对应的Value的每一个单词置1,并发送Key:单词和Value:1;
(2.2)Reduce过程:计算每一个Key对应的Value中的1的个数,统计出数据预处理后的文件中所有单词出现的次数并发送Key:单词和Value:出现的次数,生成特征词汇表。
(2.3)MapReduce过程:
(2.3.1)Map1过程:向内存中读入特征词汇表,依据特征词汇表中的单词过滤掉数据预处理后的文件中非特征词汇并发送Key:类名文件名和Value:文件内容;
(2.3.2)Map2过程:统计单词在哪些文件中出现过,发送Key:单词和Value:类名、文件名;
(2.3.3)Map3过程:统计单词出现在不同文件中的个数,并计算特征词汇的IDF值并发送Key:单词和Value:单词对应的IDF值;
(2.3.4)Reduce过程:对Map3的输出结果进行收集,生成含IDF值的特征词汇表。
运用KNN算法对测试数据集进行分类,包括如下步骤:
(3.1)对于测试数据集中的每一条记录即用向量表示的文件,计算与训练数据集中所有记录的夹角余弦值;
(3.2)挑选出相似度最大的K个值;
(3.3)把测试记录归为K个值中权值最大的那个类。
本发明的有益效果在于:
本发明将海量的测试数据进行切分,并将切分的数据存储到分散的节点上,然后在存放测试数据的节点上用Map()函数和Reduce()函数实现KNN算法文本分类的各个步骤,就能将处理海量文本数据的问题分解成各个节点上处理少量文本数据的问题。在Hadoop平台上实现的KNN算法具有较好的加速比和良好的扩展性,在数据量相同的情况下,算法的执行效率与集群节点数有关,一般节点越多处理数据的效率就越高。本发明在适当的节点上高效的完成了文本分类任务。
附图说明
图1是KNN算法文本分类过程图。
图2是训练数据集预处理的MapReduce流程图。
图3是特征提取的MapReduce流程图。
图4是计算特征词汇IDF值的MapReduce流程图。
图5是文本向量化的MapReduce流程图。
图6是KNN算法具体实现的MapReduce流程图。
具体实施方式
下面结合附图对本发明做进一步描述:
本发明根据KNN算法和MapReduce编程模型的特点,在Hadoop平台下并行化的实现了文本分类的各个步骤。包括文本分类的数据预处理、特征提取、文本向量表示和分类四个步骤。这个目的可以按照以下几步实现:
第一步:数据预处理。其中包括分词、去停用词、词根还原三个过程;
第二步:特征提取。对训练数据集进行处理,筛选出区分能力最强、最具有代表性的特征项(单词);
第三步:KNN算法的实现。运用KNN算法对测试数据集进行分类。
本发明对Newsgroup-18828数据集进行处理,Newsgroups最早由Ken Lang于1995收集并使用。它含有20000篇左右的Usenet文档,几乎平均分配20个不同的新闻组。除了其中4.5%的文档属于两个或两个以上的新闻组以外,其余文档仅属于一个新闻组,因此它通常被作为单标注分类问题来处理。Newsgroups已经成为文本分类聚类中常用的文档集。美国MIT大学Jason Rennie对Newsgroups作了必要的处理,使得每个文档只属于一个新闻组,形成了现在的Newsgroups-18828。
在KNN算法文本分类之前,已经把测试数据集和训练数据集的所有文件分别整合到两个大文件testfile和trainfile中。其中,testfile文件中的每一行代表原来测试数据集中的一个文件,每一行的格式为:“文件名,文件内容”。同样,trainfile文件中的每一行也代表原来训练数据集中的一个文件,每一行的格式为:“类名文件名,文件内容”,其中类名是Newsgroups-18828中新闻组的名字。
在Hadoop平台下,运用MapReduce编程模型并行的实现KNN算法文本分类的各个过程如图1所示,下面结合其他附图对KNN算法文本分类过程作进一步说明。
1.数据预处理
此过程是对测试数据集和训练数据集中的所有文件进行处理,包括分词、去停用词、词根还原三步。其中,分词就是英文词法分析,包括去除数字、连字符、标点符号、特殊字符以及大写字母转换成小写字母等操作;去停用词是依据停用词汇表过滤掉对分类无意义的单词;词根还原是基于Porter Stemming算法对去停用词后的文本进行处理。
在训练数据集预处理的MapReduce阶段中包括3个Map过程1个Reduce过程,训练数据集作为这一步骤的输入文件,其中的Key为“类名文件名”,Value为:“文件内容”。具体过程如下:
(1)Map1过程是对输入的Value进行词法分析,然后发送Key:“类名文件名”和Value“处理后文件内容”;
(2)Map2过程首先向内存中读入停用词汇表,然后依据停用词汇表对Map1输出的Value内容去停用词。并发送Key:“类名文件名”和Value:“处理后文件内容”;
(3)Map3过程是调用Porter Stemming算法,对Map2输出的Value内容进行词根还原。然后发送Key:“类名文件名”和Value:“处理后文件内容”;
(4)Reduce过程是对Map3产生的Key和Value进行收集,生成数据预处理后的文件。
训练数据集预处理过程的MapReduce流程如图2所示。测试数据集和训练数据集的数据预处理过程大体是相同的,只是测试数据集预处理后产生中间数据,作为了文件向量化处理过程的输入文件。
2.特征提取
特征提取阶段是对训练数据集预处理后的文件进行处理,筛选出区分能力最强、最具有代表性的特征项(单词)。这里采用简单的统计训练数据集中出现次数大于某个阈值的方法,来生成一个特征词汇表,并计算特征词汇表中每个单词的IDF值。
特征提取的MapReduce阶段的输入是1步骤生成的数据预处理后的文件,其中Key为:“类名文件名”,Value为:“文件内容”,具体的Map和Reduce过程如下:
(1)Map过程将数据预处理文件对应的Value的每一个单词置1。并发送Key:“单词”和Value:“1”;
(2)Reduce过程是计算每一个Key对应的Value中的“1”的个数,统计出数据预处理后的文件中所有单词出现的次数。并发送Key:“单词”和Value:“出现的次数”。最后生成特征词汇表。
特征提取的MapReduce流程如图3所示。
在得到特征词汇表后,计算特征词汇IDF值的MapReduce阶段包括3个Map过程1个Reduce过程,其中此阶段的输入文件是数据预处理后的文件,其中Key为:“类名文件名”,Value为:“文件内容”,具体过程如下:
(1)Map1过程首先向内存中读入特征词汇表,然后依据特征词汇表中的单词过滤掉数据预处理后的文件中非特征词汇。并发送Key:“类名文件名”和Value:“文件内容”;
(2)Map2过程统计单词在那些文件中出现过。发送Key:“单词”和Value:“类名文件名”;
(3)Map3过程是统计单词出现在不同文件中的个数,并计算特征词汇的IDF值。并发送Key:“单词”和Value:“单词对应的IDF值”;
(4)Reduce过程是对Map3的输出结果进行收集,生成含IDF值的特征词汇表。
计算特征词汇IDF值的MapReduce流程如图4所示。
3.KNN算法的MapReduce实现
此阶段是运用KNN算法对测试数据集进行分类。包含将数据预处理后的文本向量化和具体的KNN算法实现。
训练数据集和测试数据集文本向量化的过程相同,都是求出每个文件中每个单词的词频TF后,读取含IDF值的特征词汇表,计算每个单词的TF×IDF值,并将计算结果保存。
文本向量化的MapReduce阶段包含3个Map过程和1个Reduce过程,输入文件仍为数据预处理后的文件,其中Key为:“类名文件名”,Value为:“文件内容”,具体过程如下:
(1)Map1过程是计算每个文档的单词总数。发送Key:“单词,类名文件名,单词总数”和Value:“1”;
(2)Map2过程是计算单词在当前文档中的词频。发送Key:“类名文件名”和Value:“单词TF值”;
(3)Map3过程首先向内存中读取含IDF值的特征词汇表,然后计算每个文件中单词的TF-IDF值。并发送Key:“类名文件名”和Value:“单词TF-IDF值”;
(4)Reduce过程是对Map3的输出结果进行收集,生成训练/测试数据集的文件向量表。
文本向量化的的MapReduce流程如图5所示。
KNN算法具体实现过程包括以下三步:
1)对于测试数据集中的每一条记录(用向量表示的文件),计算它与训练数据集中所有记录的夹角余弦(相似度)值;
2)挑选出相似度最大的K个值;
3)把测试记录归为K个值中权值最大的那个类(训练记录所属的类)。
KNN算法具体实现的MapReduce阶段的输入文件为测试数据集文件向量表,其中Key为:“文件名”,Value为:“文件内容(单词TF-IDF值格式)”,具体的过程如下:
(1)首先向内存中读取训练数据集的文件向量表,然后计算测试记录与训练数据集中每条记录的相似度,并选出相似度值最大的K个训练数据记录。发送Key:“测试数据文件名”和Value:“训练记录类名相似度值(共K条记录)”;
(2)Reduce过程是选出K条记录中所占权重最大的那条记录。最后完成测试数据的分类。
KNN算法具体实现的MapReduce流程如图6所示。

Claims (4)

1.一种基于MapReduce的KNN文本分类方法,其特征在于:
(1)数据预处理:其中包括分词、去停用词、词根还原三个过程;
(2)特征提取:对训练数据集进行处理,筛选出区分能力最强的特征项;
(3)运用KNN算法对测试数据集进行分类。
2.根据权利要求1所述的一种基于MapReduce的KNN文本分类方法,其特征在于:
所述的数据预处理的MapReduce阶段中包括3个Map过程1个Reduce过程,训练数据集作为输入文件,其中的Key为类名、文件名,Value为文件内容,包括如下步骤:
(1.1)Map1过程:对输入的Value进行词法分析,然后发送Key和Value;
(1.2)Map2过程:向内存中读入停用词汇表,依据停用词汇表对Map1输出的Value内容去停用词发送Key和Value;
(1.3)Map3过程:调用Porter Stemming算法,对Map2输出的Value内容进行词根还原,发送Key和Value;
(1.4)Reduce过程:对Map3产生的Key和Value进行收集,生成数据预处理后的文件。
3.根据权利要求1所述的一种基于MapReduce的KNN文本分类方法,其特征在于:
所述的特征提取是对训练数据集预处理后的文件进行处理,筛选出区分能力最强的特征项,采用统计训练数据集中出现次数大于阈值的方法,生成一个特征词汇表,并计算特征词汇表中每个单词的IDF值,包括如下步骤:
(2.1)Map过程:将数据预处理文件对应的Value的每一个单词置1,并发送Key:单词和Value:1;
(2.2)Reduce过程:计算每一个Key对应的Value中的1的个数,统计出数据预处理后的文件中所有单词出现的次数并发送Key:单词和Value:出现的次数,生成特征词汇表。
(2.3)MapReduce过程:
(2.3.1)Map1过程:向内存中读入特征词汇表,依据特征词汇表中的单词过滤掉数据预处理后的文件中非特征词汇并发送Key:类名文件名和Value:文件内容;
(2.3.2)Map2过程:统计单词在哪些文件中出现过,发送Key:单词和Value:类名、文件名;
(2.3.3)Map3过程:统计单词出现在不同文件中的个数,并计算特征词汇的IDF值并发送Key:单词和Value:单词对应的IDF值;
(2.3.4)Reduce过程:对Map3的输出结果进行收集,生成含IDF值的特征词汇表。
4.根据权利要求1所述的一种基于MapReduce的KNN文本分类方法,其特征在于:
所述的运用KNN算法对测试数据集进行分类,包括如下步骤:
(3.1)对于测试数据集中的每一条记录即用向量表示的文件,计算与训练数据集中所有记录的夹角余弦值;
(3.2)挑选出相似度最大的K个值;
(3.3)把测试记录归为K个值中权值最大的那个类。
CN201510012387.7A 2015-01-09 2015-01-09 一种基于MapReduce的KNN文本分类方法 Pending CN104536830A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510012387.7A CN104536830A (zh) 2015-01-09 2015-01-09 一种基于MapReduce的KNN文本分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510012387.7A CN104536830A (zh) 2015-01-09 2015-01-09 一种基于MapReduce的KNN文本分类方法

Publications (1)

Publication Number Publication Date
CN104536830A true CN104536830A (zh) 2015-04-22

Family

ID=52852361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510012387.7A Pending CN104536830A (zh) 2015-01-09 2015-01-09 一种基于MapReduce的KNN文本分类方法

Country Status (1)

Country Link
CN (1) CN104536830A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866606A (zh) * 2015-06-02 2015-08-26 浙江师范大学 一种MapReduce并行化大数据文本分类方法
CN105117466A (zh) * 2015-08-27 2015-12-02 中国电信股份有限公司湖北号百信息服务分公司 一种互联网信息筛选系统及方法
CN107832456A (zh) * 2017-11-24 2018-03-23 云南大学 一种基于临界值数据划分的并行knn文本分类方法
CN107943947A (zh) * 2017-11-24 2018-04-20 贵州商学院 一种基于Hadoop平台的改进并行KNN网络舆情分类算法
CN109299275A (zh) * 2018-11-09 2019-02-01 长春理工大学 一种基于并行化噪音消除的文本分类方法
CN110533320A (zh) * 2019-08-28 2019-12-03 广东电网有限责任公司 一种基于Hadoop平台的电力设备停电计划编制方法
US10592491B2 (en) 2015-05-04 2020-03-17 Alibaba Group Holding Limited Distributed data processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810293A (zh) * 2014-02-28 2014-05-21 广州云宏信息科技有限公司 基于Hadoop的文本分类方法及装置
CN103955489A (zh) * 2014-04-15 2014-07-30 华南理工大学 基于信息熵特征权重量化的海量短文本分布式knn分类算法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810293A (zh) * 2014-02-28 2014-05-21 广州云宏信息科技有限公司 基于Hadoop的文本分类方法及装置
CN103955489A (zh) * 2014-04-15 2014-07-30 华南理工大学 基于信息熵特征权重量化的海量短文本分布式knn分类算法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
范恒亮等: "一种基于关联分析的KNN文本分类方法", 《计算机技术与发展》 *
金鹏: "基于Hadoop的SKNN文本分类算法的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
闫永刚等: "KNN分类算法的MapReduce并行化实现", 《南京航空航天大学学报》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592491B2 (en) 2015-05-04 2020-03-17 Alibaba Group Holding Limited Distributed data processing
US10872070B2 (en) 2015-05-04 2020-12-22 Advanced New Technologies Co., Ltd. Distributed data processing
CN104866606A (zh) * 2015-06-02 2015-08-26 浙江师范大学 一种MapReduce并行化大数据文本分类方法
CN104866606B (zh) * 2015-06-02 2019-02-01 浙江师范大学 一种MapReduce并行化大数据文本分类方法
CN105117466A (zh) * 2015-08-27 2015-12-02 中国电信股份有限公司湖北号百信息服务分公司 一种互联网信息筛选系统及方法
CN107832456A (zh) * 2017-11-24 2018-03-23 云南大学 一种基于临界值数据划分的并行knn文本分类方法
CN107943947A (zh) * 2017-11-24 2018-04-20 贵州商学院 一种基于Hadoop平台的改进并行KNN网络舆情分类算法
CN107832456B (zh) * 2017-11-24 2021-11-26 云南大学 一种基于临界值数据划分的并行knn文本分类方法
CN109299275A (zh) * 2018-11-09 2019-02-01 长春理工大学 一种基于并行化噪音消除的文本分类方法
CN110533320A (zh) * 2019-08-28 2019-12-03 广东电网有限责任公司 一种基于Hadoop平台的电力设备停电计划编制方法
CN110533320B (zh) * 2019-08-28 2023-05-02 广东电网有限责任公司 一种基于Hadoop平台的电力设备停电计划编制方法

Similar Documents

Publication Publication Date Title
CN104536830A (zh) 一种基于MapReduce的KNN文本分类方法
CN103810293B (zh) 基于Hadoop的文本分类方法及装置
CN103279478B (zh) 一种基于分布式互信息文档特征提取方法
WO2017097231A1 (zh) 话题处理方法及装置
CN110362544A (zh) 日志处理系统、日志处理方法、终端及存储介质
CN108197144B (zh) 一种基于BTM和Single-pass的热点话题发现方法
CN102915365A (zh) 基于Hadoop的分布式搜索引擎构建方法
Çakir et al. Text mining analysis in Turkish language using big data tools
CN103207864A (zh) 一种网络小说内容近似度比对方法
CN104866606B (zh) 一种MapReduce并行化大数据文本分类方法
Bafna et al. Hindi multi-document word cloud based summarization through unsupervised learning
Viet et al. Analyzing recent research trends of computer science from academic open-access digital library
CN106886613A (zh) 一种并行化的文本聚类方法
CN111026940A (zh) 一种面向电网电磁环境的网络舆情及风险信息监测系统、电子设备
Li et al. A comparison study of clustering algorithms for microblog posts
Xu et al. Research on topic discovery technology for Web news
Langcai et al. Research of text clustering based on improved VSM by TF under the framework of Mahout
KR101718599B1 (ko) 소셜 미디어 데이터 분석 시스템 및 이를 이용한 소셜 미디어 데이터 분석 방법
Tian et al. Dynamic sampling of text streams and its application in text analysis
Bekkali et al. Web search engine-based representation for Arabic tweets categorization
Khatai et al. An implementation of text mining decision feedback model using Hadoop MapReduce
Shen et al. Log Layering Based on Natural Language Processing
Swaraj et al. Fast extraction of article titles from xml based large bibliographic datasets
Patil et al. A novel reason mining algorithm to analyze public sentiment variations on Twitter and Facebook
Aruldoss et al. A Study on Tools and Techniques of Big Data Analytics for Text Summarization From Multi-Documents

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150422