CN113157915A - 一种基于集群环境的朴素贝叶斯文本分类方法 - Google Patents
一种基于集群环境的朴素贝叶斯文本分类方法 Download PDFInfo
- Publication number
- CN113157915A CN113157915A CN202110250850.7A CN202110250850A CN113157915A CN 113157915 A CN113157915 A CN 113157915A CN 202110250850 A CN202110250850 A CN 202110250850A CN 113157915 A CN113157915 A CN 113157915A
- Authority
- CN
- China
- Prior art keywords
- text
- file
- data
- word
- naive bayes
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 13
- 239000012634 fragment Substances 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 8
- 230000009193 crawling Effects 0.000 claims description 6
- 238000007620 mathematical function Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 claims description 4
- 230000018109 developmental process Effects 0.000 claims description 4
- 238000010801 machine learning Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 208000025174 PANDAS Diseases 0.000 claims description 3
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 claims description 3
- 235000016496 Panda oleosa Nutrition 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 235000014347 soups Nutrition 0.000 claims description 3
- 240000000220 Panda oleosa Species 0.000 claims 1
- 238000002474 experimental method Methods 0.000 abstract description 9
- 238000007635 classification algorithm Methods 0.000 abstract description 5
- 230000007547 defect Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000013145 classification model Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 240000004718 Panda Species 0.000 description 2
- 230000001939 inductive effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 239000010754 BS 2869 Class F Substances 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
- G06F18/24155—Bayesian classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于集群环境的朴素贝叶斯文本分类方法,通过对文本进行专门的特征词选取工作,避免了大量无效词语不能代表文本类别的缺陷;计算特征词权重,提高特征词类内和类间的区分度,提高分类的准确率;将朴素贝叶斯分类算法并行化,显著提高了文本分类的时间效率。通过对互联网的文本数据进行分类,方便用户快速从海量数据中获得重要的信息,提升用户体验。实验证明,对比传统的串行朴素贝叶斯文本分类方法,本发明在大规模数据的计算、分类方面有明显的效率优势。
Description
技术领域
本发明属于文本分类技术领域,具体涉及一种基于集群环境的朴素贝叶斯文本分类方法。
背景技术
文本数据主要是指互联网上如商品评论信息,微博文本等由用户产生的数据信息,经过长时间的积累,会形成符合4V特征即规模大、类别多、处理速度快、价值密度低的大数据。文本分类主要有两种方法:基于规则的方法和归纳学习方法。前者需要手工构建规则库,后者需要基于已知类别训练集训练分类模型,并对其进行分类。基于归纳学习的文本分类方法的基本步骤是:去除分类系统,将预先分类好的文档作为训练集,从训练集中得到分类模型,然后利用训练得到的分类模型对其他文档进行分类。文本分类的映射规则是系统根据一些样本信息建立判别公式和规则,用来确定类别、总结类别的规则特征,然后利用判别规则确定新的未知文本类别。主流的文本分类算法包括支持向量机(SVM)、K近邻 (KNN)、神经网络和朴素贝叶斯等。为满足对文本进行特征提取、权重计算、训练模型、分类各类需求,需要做以下四个方面的工作:
1.将文本数据去掉html标签,去停用词,利用分词工具jieba分词,预处理后的数据方便文本特征的提取。
2.对预处理后的数据进行特征提取,筛选能够代表本类文本的特征词,提高分类的准确率。
3.计算特征词的权重,训练出分类模型。
4.将新文本放入分类器,预测新文本,得出分类结果。
朴素贝叶斯是一种基于概率和统计的学习算法。设X为未知数据样本,设H 为假设,例如数据样本X属于一个特定的c类;在分类问题中要确定P(H|X)即给定未知类数据的样本X来确定假设H的概率。该算法是利用类别的先验概率和样本信息,通过贝叶斯公式计算属于某一类别的未知文本的后验概率;最大后验概率是判别的结果,即未知文本的类别。利用卡方统计的方法可以计算出每个词语的卡方值,提取出每类的特征词。TF-IDF方法用于计算权重和构建分类模型。
Hadoop云计算基础架构平台可以组织集群并行处理大量复杂数据集,对于大规模的数据文本,可以将特征提取和权重计算以及分类的过程分发给各个分节点完成,最后将各个结果返回给主节点整合,得到最终分类结果;该平台克服了单点串行分析存储容量小、稳定性差、耗时长等缺点,通过底层完成任务封装与分配、并行处理、容错等细节,用户可以清晰地表达自己想要的分布式计算任务求解,极大地简化了分布式编程。
传统的数据挖掘算法通常需要将数据读入内存进行分析,但有限的内存无法满足海量数据的存储和分析。
发明内容
本发明要解决的技术问题是:提供一种基于集群环境的朴素贝叶斯文本分类方法,用于提高文本分类的效率。
本发明为解决上述技术问题所采取的技术方案为:一种基于集群环境的朴素贝叶斯文本分类方法,包括以下步骤:
S1:使用机器学习库从互联网爬取网页数据,对数据进行预处理以规范数据格式,得到文本文件;
S2:配置用于Hadoop集群的开发环境,计算词频wordcount;
S3:读取数据集,通过映射归约程序MapReduce计算特征词的卡方值得到 CHI文件,筛选出每个类别的特征词;
S4:采用TF-IDF方法,通过映射归约程序MapReduce计算每个特征词在每条文本中的权重,分发、整理权重值得到TF文件;
S5:整合TF文件,通过映射归约程序MapReduce求出每个特征词在每个类别中的权重,得到并分发权重文件;
S6:利用多项式朴素贝叶斯公式以及训练好的权重文件,通过映射归约程序MapReduce对数据进行分类,统计文本属各类的概率,选择最大的概率作为分类结果。
按上述方案,所述的步骤S1中,具体步骤为:
S11:设计爬虫程序,通过urllib标准库读取特定URL并获得返回的信息;
S12:通过requests库连接到爬取的页面,利用BeautifulSoup库解析网页,从网页爬取文本语料;
S13:处理html标签,去掉停用词,利用jieba工具进行句子分词,得到文本文件。
进一步的,所述的步骤S13中,文本文件包括文本类别、标题、URL、文本内容;
文本文件包括字段:文本类别SClass、标题STitle、链接SURL、文本内容SContent。
按上述方案,所述的步骤S3中,具体步骤为:
S31:输入totalnews和wordcount文件,通过pandas库读取HDFS文件系统中的训练样本数据集,引入数学函数库;
S32:在Map阶段顺序读取上述两个文件,将数据分别写入words_list和 news_list元组;
S33:定义flag,通过for循环判断每个词在每类新闻中是否出现,若现则flag 为1,若不出现则flag为0;
S34:设N表示整个语料文档总数,t为词条,c为类别;A表示类别c中包含词条t的文档数,B表示非类别c中包含词条t的文档数,C表示类别c中不包含词条t的文档数,D表示非类别c中不包含词条t的文档数,通过MapReduce 程序计算求出N和每个特征项xk的A、B、C、D;则特征词的卡方值x2为:
S34:根据卡方值χ2的公式计算CHI并对sqrt开方,按照<s_CHI,wordID_xk> 键值对的形式溢出到HDFS本地磁盘中保存;
S35:将所有分片输出的键值对在Shuffle过程按照s_CHI距离降序排序、归并处理,再将结果传输给Reduce阶段进行处理,整理结果按照<s_CHI, wordID_xk>的键值对形式输出;
S36:在Reduce阶段从Map获取输出结果,每类选取top前N个词作为该类最终的特征词,过滤掉重复的xk,得到最终的全局特征项X(x1,x2,…,xn);设特征词ID为wordID,特征词为xk,则以<wordID,xk>键值对形式保存到CHI 文件并输出。
进一步的,所述的步骤S4中,具体步骤为:
S41:使用stdin标准输入totalnews文本文件和CHI文件,读取HDFS文件系统中的数据;
S42:在Map阶段顺序读取上述两个文件并将数据分别写入words_list和 newslist元组,引入数学函数库;
S43:通过for循环统计每个特征词xk在每个文本中出现的频率tfdt、文本语料库中包含特征词xk的文本数nt;采用TF-IDF方法,计算特征词xk的TF和IDF 值,按照<wordID_xk,newCategory_TF_IDF>键值对的形式溢出到HDFS本地磁盘中保存;
S44:在Shuffle过程根据相同的key值归并,整理结果按照“<wordID_xk,newCategory_TF_IDF>”的键值对形式输出;再将结果传输给Reduce阶段处理;
S45:在Reduce阶段获取Map输出结果,设文本语料库中文本的总数为N,计算每个特征词xk在每条文本中的权重Wdt为:
以<wordID_xk,newCategory_TFIDF>形式保存到TF文件输出。
进一步的,所述的步骤S5中,具体步骤为:
S51:输入TF-IDF文件,读取HDFS文件系统中的数据;
S52:在Map阶段读取文件,计算xk在每个类别的TF-IDF值,按照< wordID_xk,TFIDFi>键值对的形式溢出到HDFS本地磁盘中保存;
S53:将所有分片输出的键值对在Shuffle过程按照wordID_xk归并处理,整理结果按照“<wordID_xk,<TFIDF1,TFIDF2,…,TFIDFi>>”的键值对形式进行输出;再将结果传输给Reduce阶段进行处理;
S54:在Reduce阶段获取Map输出结果,直接以<wordID_xk,TFIDFi>键值对形式保存到weight文件并输出。
进一步的,所述的步骤S6中,具体步骤为:
S61:输入测试数据totalTestNews和权重值weight文件,读取HDFS文件系统中的数据;
S62:在Map阶段顺序读取上述两个文件,计算新文本属于每个类别的概率,并按照<newID,proi>键值对的形式保存;
S63:将所有分片输出的键值对在Shuffle过程按照newID归并处理,整理结果按照“<newID,<pro1,pro2,…,proi>>”的键值对形式输出;再将结果传输给Reduce阶段处理;
S64:在Reduce阶段获取Map输出结果,设待分类的文本属于类别cj的概率为P(cj);类别cj中包含特征项xk的概率为P(xk|cj),则多项式朴素贝叶斯分类计算方法为:
输出最大值对应的类别。
一种计算机存储介质,其内存储有可被计算机处理器执行的计算机程序,该计算机程序执行一种基于集群环境的朴素贝叶斯文本分类方法。
本发明的有益效果为:
1.本发明的一种基于集群环境的朴素贝叶斯文本分类方法,通过对文本进行专门的特征词选取工作,避免了大量无效词语不能代表文本类别的缺陷;计算特征词权重,提高特征词类内和类间的区分度,提高分类的准确率;将朴素贝叶斯分类算法并行化,显著提高了文本分类的时间效率。
2.本发明基于Hadoop平台对互联网的文本数据进行分类,方便用户快速从海量数据中获得重要的信息,提升用户体验。
3.通过实验证明,对比传统的串行朴素贝叶斯文本分类方法,本发明在大规模数据的计算、分类方面有明显的效率优势。
附图说明
图1是本发明实施例的并行化朴素贝叶斯文本分类流程图。
图2是本发明实施例的实验结果示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明实施例的一种基于集群环境的朴素贝叶斯文本分类方法,包括以下步骤:
S1:设计爬虫程序,通过urllib标准库读取特定URL并获得返回的信息,再通过requests库连接到爬取的页面,利用BeautifulSoup库解析网页,从网页爬取文本语料,处理html标签,去掉停用词,利用jieba工具进行句子分词,得到 text文件;
text文件包括:文本类别、标题、URL、文本内容;
文件包括以下字段:SClass:文本类别、STitle:标题、SURL:链接、SContent:文本内容;
所述S1中,使用机器学习库爬取网页数据,并对数据进行预处理以规范数据格式,数据结构如表1所示:
表1文本内容表结构
S2:配置能用于Hadoop集群的Python开发环境,实现wordcount词频的计算;
实现的伪代码如下:
conf=SparkConf().setAppName(″WordCount″).setMaster(″local″);
SparkContext(conf=conf);
wordCount();
S3:通过pandas库读取Data数据集,引入math数学函数库,执行MapReduce 程序,计算特征词的卡方值,得到CHI文件,筛选出每个类别的特征词;
所述S3中,选择x2统计方法进行专门的特征词选取工作,提高分类的准确率。其中,特征词的卡方值x2为:
N表示整个语料文档总数,t为词条,c为类别。A表示类别c中包含词条t 的文档数,B表示非类别c中包含词条t的文档数,C表示类别c中不包含词条t的文档数,D表示非类别c中不包含词条t的文档数。通过MapReduce程序计算卡方值,提高运算效率。
其具体工作流程如下:
1)输入totalnews和wordcount文件,读取HDFS文件系统中的训练样本数据集;
2)Map阶段,顺序读取两个文件,数据分别写入words_list和news_list元组。定义flag,通过for循环判断每个词在每类新闻中是否出现,出现flag为1,否则为0,求出N和每个特征项xk的A、B、C、D,利用公式计算CHI,再对其 sqrt开方,按照<s_CHI,wordID_xk>键值对的形式溢出到HDFS本地磁盘中保存为一个文件;
3)所有分片输出的键值对会在Shuffle过程按照s_CHI距离降序排序、归并处理,再将结果传输给Reduce阶段进行处理。整理结果会按照<s_CHI, wordID_xk>的键值对形式进行输出;
4)Reduce阶段从Map获取输出结果,每类选取top前N作为该类最终特征词,过滤掉重复的xk,得到最终的全局特征项X(x1,x2,…,xn),以<wordID, xk>键值对形式保存到CHI文件并输出,wordID为特征词ID,xk为特征词。
实现的伪代码描述如下:
Function CalculateChiSquare(data)
输入:data←训练数据集
输出:键值对<wordID,xk>
Begin
for line in data:
tuple1←words_list
tuple2←news_list
flag←0
for word in new_list
flag←1
getCHI(word_list,new_list)
输出<s_CHI,wordID_xk>至中间文件
Shuffle过程内部排序键值对
输出<wordID,xk>
End CalculateChiSquare
S4:使用stdin标准输入将text和CHI文件分别写入元组,引入math数学函数库,执行MapReduce程序,计算每个特征词在每条文本中的权重,得到TF 文件;
所述S4中,选取TF-IDF方法,通过MapReduce程序计算特征词权重,提高运算效率。其中,特征词权重weight为:
Wdt为特征项t在文本d中的权重,tfdt为特征项t在文本d中出现的频率,N 为文本语料库中文本的总数,nt为文本语料库中包含特征项t的文本数。
其具体工作流程如下:
1)输入totalnews和CHI文件,读取HDFS文件系统中的数据;
2)Map阶段,顺序读取两个文件,数据分别写入words_list和news_list元组。通过for循环统计每个xk在每条新闻中出现的次数,以及包含xk的文本数。利用公式首先计算出xk的TF和IDF值,按照<wordID_xk,newCategory_TF_IDF>键值对的形式溢出到HDFS本地磁盘中保存为一个文件;
3)Shuffle过程根据相同的key值进行归并,再将结果传输给Reduce阶段进行处理。整理结果会按照“<wordID_xk,newCategory_TF_IDF>”的键值对形式进行输出;
4)Reduce阶段,获取Map输出结果,计算出每个xk在每条新闻中的权重值,以<wordID_xk,newCategory_TFIDF>形式保存到TF文件输出。
实现的伪代码描述如下:
Function CalculateTFIDF(data)
输入:data←训练数据集,CalculateChiSquare输出数据文件
输出:键值对<newID_newCategory,wordID_xk_TFIDF>
Begin
for line in data:
tuple1←words_list
tuple←news_list
newNumber←0
for word in new_list
newNumber←newNumber+1
getTF&IDF(word_list,new_list)
输出<wordID_xk,newCategory_TFIDF>至中间文件
Shuffle内部归并键值对
getTFIDF(TF,IDF)
输出<newCategory,wordID_xk_TFIDF>
End CalculateTFIDF
S5:整合TF文件,执行MapReduce程序,求出每个特征词在每个类别中的权重,得到weight文件;
所述S5中,通过MapReduce程序,整合权重文件,提高运算效率。
其具体工作流程如下:
1)输入TF-IDF文件,读取HDFS文件系统中的数据;
2)Map阶段,读取文件,计算xk在每个类别的TF-IDF值,按照< wordID_xk,TFIDFi>键值对的形式溢出到HDFS本地磁盘中保存为一个文件;
3)所有分片输出的键值对会在Shuffle过程按照wordID_xk归并处理,再将结果传输给Reduce阶段进行处理。整理结果会按照“<wordID_xk, <TFIDF1,TFIDF2,…,TFIDFi>>”的键值对形式进行输出;
4)Reduce阶段,获取Map输出结果,直接以<wordID_xk,TFIDFi>键值对形式保存到weight文件并输出即可。
实现的伪代码描述如下:
Function trainModel(data)
输入:data←CalculateTFIDF输出文件
输出:键值对<wordID_xk,TFIDF1_TFIDF2_TFIDF3_TFIDF4>
Begin
for line in data:
array←TFIDF_list
get Weight(TFIDF_list)
输出<wordID_xk,TFIDFi>至中间文件
Shuffle过程内部排序键值对
输出<wordID_xk,TFIDFi>
End trainModel
S6:利用多项式朴素贝叶斯公式以及训练好的weight文件,执行MapReduce 程序,对数据进行分类,得到分类结果。
所述S6中,选取简单的机器学习算法,并通过MapReduce程序实现该算法的文本分类,算法复杂度低,运算效率高。其中,多项式朴素贝叶斯分类计算方法为:
P(cj)表示所要分类的文本属于类别cj的概率;P(xk|cj)表示类别cj中包含特征项xk的概率。
其具体工作流程如下:
1)输入测试数据totalTestNews和权重值weight文件,读取HDFS文件系统中的数据;
2)Map阶段,顺序读取两个文件,根据公式计算新文本属于每个类别的概率。按照<newID,proi>键值对的形式保存;
3)所有分片输出的键值对会在Shuffle过程按照newID归并处理,再将结果传输给Reduce阶段进行处理。整理结果会按照“<newID,<pro1,pro2,…,proi>>”的键值对形式进行输出;
4)Reduce阶段,获取Map输出结果,输出最大值对应的类别。
实现的伪代码描述如下:
Function testModel(data)
输入:data←测试数据集,trainModel输出文件
输出:分类结果
Begin
for line in data:
tuplel←weight_list
tuplel←news_list
getPro(weight_list,news_list)
输出<newID,proi>至中间文件
Sbuffle过程内部排序键值对
文本分类并行的示意图见说明书附图1。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚明白。一共设计三组实验来对比相同配置的服务器环境下,并行化朴素贝叶斯文本分类和串行朴素贝叶斯文本分类的性能差异。实验采用联想z40-70笔记本一台,该笔记本包含一台英特尔i5-4210U物理CPU,该CPU有2个内核,主频1.70GHz,内存8GB,硬盘1TB,物理网卡1个。笔记本安装win10专业版操作系统,使用VmwareWorkstation Pro14软件创建4个虚拟机,每个虚拟机包含一个内核CPU,内存1GB,硬盘20GB,和虚拟网卡1个。每个虚拟机安装 Ubuntu16.04操作系统、Hadoop 2.7.3分布式计算平台,组成含1个主节点, 3个从节点的分布式集群,使用Anaconda3、Python3.7和PyCharm作为开发环境。
第1组实验是不同节点运行时间对比实验,选择4个节点对本文数据集测试,记录并行化处理的总时间。
节点数为1时,运行时间为658s;
节点数为2时,运行时间为534s;
节点数为3时,运行时间为397s;
节点数为4时,运行时间为274s。
具体结果如表2所示。
表2不同节点下的时间对比
节点数 | 运行时间/s |
1 | 658 |
2 | 534 |
3 | 397 |
4 | 289 |
从表2可以看出,随着节点数的增加,处理相同数据的运行时间减少,说明节点数的增加一定程度上可以提高算法的执行效率。
第2组实验是传统朴素贝叶斯分类算法与并行化朴素贝叶斯算法的分类时间对比。如图2(a)所示。图2(a)表明:在初期训练集较少时,并行算法读取数据需要消耗一定时间,串行贝朴素叶斯算法的效率优于并行的朴素贝叶斯算法。随着训练数据集的扩大,集群运行优势逐步体现,且数据规模越大优势越明显。
第3组实验是对本文算法分类效果的评估,在单机和集群环境下,分别选取精确率P、召回率R和它们的调和平均值F1进行比较。
分类器在类cj上的精确率定义为:
Ncpj表示正确分到类别cj中的文本数,Npj表示所有分到类别cj中的文本数。
分类器在类ci上的召回率定义为:
Npj表示实际类别cj中应有的文本数。
分类器在类cj上的F1值定义为:
将财经,娱乐,体育,科技分别记为类别1,类别2,类别3,类别4,传统的朴素贝叶斯和并行化的朴素贝叶斯分类精确率,召回率,F1值对比分别如图2 (b),(c),(d)所示。
由于进行了专门的特征词选取工作,从图2(b)的实验结果对比来看,四类新闻的分类精确率都有所提高,娱乐类精确率提高了7.66%。由图2(c)可知,分类召回率不但有所提高,类间的差距也在不断缩小,逐渐趋于平稳。其中,体育类召回率提高了7.56%由图2(d)可知,并行化的朴素贝叶斯算法整体上提高了F1值。体育类的F1值提高了11.98%。因此,该方法较对照组传统朴素贝叶斯方法精确率,召回率,F1值分别至少提高了7.66%、7.56%和11.98%。总体上分类效果较好。
利用朴素贝叶斯算法,通过Hadoop平台实现了文本分类的并行化,在特征选择,权重计算等阶段分别部署于MapReduce中。上述结果表明,与串行朴素贝叶斯算法相比,在同样的数据规模下,并行化朴素贝叶斯分类算法在精确率,召回率,F1值上均有提高,具有更好的分类效果。同时,节点数目越多,算法运行时间越少,运算效率显著提升。因此,Hadoop平台对于对大规模的新闻处理具有较大的优势。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (8)
1.一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:包括以下步骤:
S1:使用机器学习库从互联网爬取网页数据,对数据进行预处理以规范数据格式,得到文本文件;
S2:配置用于Hadoop集群的开发环境,计算词频wordcount;
S3:读取数据集,通过映射归约程序MapReduce计算特征词的卡方值得到CHI文件,筛选出每个类别的特征词;
S4:采用TF-IDF方法,通过映射归约程序MapReduce计算每个特征词在每条文本中的权重,分发、整理权重值得到TF文件;
S5:整合TF文件,通过映射归约程序MapReduce求出每个特征词在每个类别中的权重,得到并分发权重文件;
S6:利用多项式朴素贝叶斯公式以及训练好的权重文件,通过映射归约程序MapReduce对数据进行分类,统计文本属各类的概率,选择最大的概率作为分类结果。
2.根据权利要求1所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S1中,具体步骤为:
S11:设计爬虫程序,通过urllib标准库读取特定URL并获得返回的信息;
S12:通过requests库连接到爬取的页面,利用BeautifulSoup库解析网页,从网页爬取文本语料;
S13:处理html标签,去掉停用词,利用jieba工具进行句子分词,得到文本文件。
3.根据权利要求2所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S13中,文本文件包括文本类别、标题、URL、文本内容;文本文件包括字段:文本类别SClass、标题STitle、链接SURL、文本内容SContent。
4.根据权利要求1所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S3中,具体步骤为:
S31:输入totalnews和wordcount文件,通过pandas库读取HDFS文件系统中的训练样本数据集,引入数学函数库;
S32:在Map阶段顺序读取上述两个文件,将数据分别写入words_list和news_list元组;
S33:定义flag,通过for循环判断每个词在每类新闻中是否出现,若现则flag为1,若不出现则flag为0;
S34:设N表示整个语料文档总数,t为词条,c为类别;A表示类别c中包含词条t的文档数,B表示非类别c中包含词条t的文档数,C表示类别c中不包含词条t的文档数,D表示非类别c中不包含词条t的文档数,通过MapReduce程序计算求出N和每个特征项xk的A、B、C、D;则特征词的卡方值χ2为:
S34:根据卡方值χ2的公式计算CHI并对sqrt开方,按照<s_CHI,wordID_xk>键值对的形式溢出到HDFS本地磁盘中保存;
S35:将所有分片输出的键值对在Shuffle过程按照s_CHI距离降序排序、归并处理,再将结果传输给Reduce阶段进行处理,整理结果按照<s_CHI,wordID_xk>的键值对形式输出;
S36:在Reduce阶段从Map获取输出结果,每类选取top前N个词作为该类最终的特征词,过滤掉重复的xk,得到最终的全局特征项X(x1,x2,…,xn);设特征词ID为wordID,特征词为xk,则以<wordID,xk>键值对形式保存到CHI文件并输出。
5.根据权利要求4所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S4中,具体步骤为:
S41:使用stdin标准输入totalnews文本文件和CHI文件,读取HDFS文件系统中的数据;
S42:在Map阶段顺序读取上述两个文件并将数据分别写入words_list和news_list元组,引入数学函数库;
S43:通过for循环统计每个特征词xk在每个文本中出现的频率tfdt、文本语料库中包含特征词xk的文本数nt;采用TF-IDF方法,计算特征词xk的TF和IDF值,按照<wordID_xk,newCategory_TF_IDF>键值对的形式溢出到HDFS本地磁盘中保存;
S44:在Shuffle过程根据相同的key值归并,整理结果按照“<wordID_xk,newCategory_TF_IDF>”的键值对形式输出;再将结果传输给Reduce阶段处理;
S45:在Reduce阶段获取Map输出结果,设文本语料库中文本的总数为N,计算每个特征词xk在每条文本中的权重Wdt为:
以<wordID_xk,newCategory_TFIDF>形式保存到TF文件输出。
6.根据权利要求5所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S5中,具体步骤为:
S51:输入TF-IDF文件,读取HDFS文件系统中的数据;
S52:在Map阶段读取文件,计算xk在每个类别的TF-IDF值,按照<wordID_xk,TFIDFi>键值对的形式溢出到HDFS本地磁盘中保存;
S53:将所有分片输出的键值对在Shuffle过程按照wordID_xk归并处理,整理结果按照“<wordID_xk,<TFIDF1,TFIDF2,…,TFIDFi>>”的键值对形式进行输出;再将结果传输给Reduce阶段进行处理;
S54:在Reduce阶段获取Map输出结果,直接以<wordID_xk,TFIDFi>键值对形式保存到weight文件并输出。
7.根据权利要求6所述的一种基于集群环境的朴素贝叶斯文本分类方法,其特征在于:所述的步骤S6中,具体步骤为:
S61:输入测试数据totalTestNews和权重值weight文件,读取HDFS文件系统中的数据;
S62:在Map阶段顺序读取上述两个文件,计算新文本属于每个类别的概率,并按照<newID,proi>键值对的形式保存;
S63:将所有分片输出的键值对在Shuffle过程按照newID归并处理,整理结果按照“<newID,<pro1,pro2,…,proi>>”的键值对形式输出;再将结果传输给Reduce阶段处理;
S64:在Reduce阶段获取Map输出结果,设待分类的文本属于类别cj的概率为P(cj);类别cj中包含特征项xk的概率为P(xk|cj),则多项式朴素贝叶斯分类计算方法为:
输出最大值对应的类别。
8.一种计算机存储介质,其特征在于:其内存储有可被计算机处理器执行的计算机程序,该计算机程序执行如权利要求1至权利要求7中任意一项所述的一种基于集群环境的朴素贝叶斯文本分类方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110250850.7A CN113157915A (zh) | 2021-03-08 | 2021-03-08 | 一种基于集群环境的朴素贝叶斯文本分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110250850.7A CN113157915A (zh) | 2021-03-08 | 2021-03-08 | 一种基于集群环境的朴素贝叶斯文本分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113157915A true CN113157915A (zh) | 2021-07-23 |
Family
ID=76884431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110250850.7A Pending CN113157915A (zh) | 2021-03-08 | 2021-03-08 | 一种基于集群环境的朴素贝叶斯文本分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157915A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473511A (zh) * | 2023-12-27 | 2024-01-30 | 中国联合网络通信集团有限公司 | 边缘节点漏洞数据处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090285474A1 (en) * | 2008-05-15 | 2009-11-19 | Berteau Stefan A | System and Method for Bayesian Text Classification |
CN102945240A (zh) * | 2012-09-11 | 2013-02-27 | 杭州斯凯网络科技有限公司 | 一种支持分布式计算的关联规则挖掘算法实现方法及装置 |
CN104699772A (zh) * | 2015-03-05 | 2015-06-10 | 孟海东 | 一种基于云计算的大数据文本分类方法 |
CN109299255A (zh) * | 2018-09-12 | 2019-02-01 | 东莞数汇大数据有限公司 | 基于朴素贝叶斯的案件文本分类方法、系统和存储介质 |
-
2021
- 2021-03-08 CN CN202110250850.7A patent/CN113157915A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090285474A1 (en) * | 2008-05-15 | 2009-11-19 | Berteau Stefan A | System and Method for Bayesian Text Classification |
CN102945240A (zh) * | 2012-09-11 | 2013-02-27 | 杭州斯凯网络科技有限公司 | 一种支持分布式计算的关联规则挖掘算法实现方法及装置 |
CN104699772A (zh) * | 2015-03-05 | 2015-06-10 | 孟海东 | 一种基于云计算的大数据文本分类方法 |
CN109299255A (zh) * | 2018-09-12 | 2019-02-01 | 东莞数汇大数据有限公司 | 基于朴素贝叶斯的案件文本分类方法、系统和存储介质 |
Non-Patent Citations (1)
Title |
---|
张晨跃: "基于MapReduce的朴素贝叶斯算法文本分类方法", 《武汉工程大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117473511A (zh) * | 2023-12-27 | 2024-01-30 | 中国联合网络通信集团有限公司 | 边缘节点漏洞数据处理方法、装置、设备及存储介质 |
CN117473511B (zh) * | 2023-12-27 | 2024-04-02 | 中国联合网络通信集团有限公司 | 边缘节点漏洞数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645999B1 (en) | Adjustment of document relationship graphs | |
US10824813B2 (en) | Pivoting from a graph of semantic similarity of documents to a derivative graph of relationships between entities mentioned in the documents | |
Sangaiah et al. | Arabic text clustering using improved clustering algorithms with dimensionality reduction | |
Aggarwal et al. | Mining text data | |
Weinberg et al. | Selecting a representative decision tree from an ensemble of decision-tree models for fast big data classification | |
Yi et al. | Topic modeling for short texts via word embedding and document correlation | |
Sardar et al. | MapReduce-based fuzzy C-means algorithm for distributed document clustering | |
Cai et al. | Active learning for classification with maximum model change | |
Liu et al. | Parallel naive Bayes algorithm for large-scale Chinese text classification based on spark | |
Zhao et al. | Topic exploration in spatio-temporal document collections | |
CN108197144B (zh) | 一种基于BTM和Single-pass的热点话题发现方法 | |
CN111090731A (zh) | 基于主题聚类的电力舆情摘要提取优化方法及系统 | |
CN115098690B (zh) | 一种基于聚类分析的多数据文档分类方法及系统 | |
Mishra et al. | Scientific document summarization in multi-objective clustering framework | |
CN112487161A (zh) | 一种面向企业需求的专家推荐方法、装置、介质及设备 | |
Zhu et al. | A classification algorithm of CART decision tree based on MapReduce attribute weights | |
Liu | High performance latent dirichlet allocation for text mining | |
Kotouza et al. | A dockerized framework for hierarchical frequency-based document clustering on cloud computing infrastructures | |
Jiménez et al. | A clustering approach to extract data from HTML tables | |
CN113157915A (zh) | 一种基于集群环境的朴素贝叶斯文本分类方法 | |
El-Hajj et al. | An optimal approach for text feature selection | |
Asa et al. | A comprehensive survey on extractive text summarization techniques | |
Yu et al. | A classifier chain algorithm with k-means for multi-label classification on clouds | |
Ding et al. | A framework for distributed nearest neighbor classification using Hadoop | |
Kang et al. | Internet-Based Researcher Interest Mining |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210723 |