时间:2024-06-19
段庆伟,铁木巴干
(本溪市信息中心,辽宁 本溪 117000)
基于Hadoop云计算平台的新浪微博数据聚类分析算法研究
段庆伟,铁木巴干
(本溪市信息中心,辽宁 本溪 117000)
近年来,随着Web2.0的兴起,互联网信息更加丰富,数据规模日益增加,传统数据挖掘技术难以满足需要。云计算为解决这一问题提出了一种新方法。本文首先对开源的云计算技术Hadoop进行介绍,然后,对分布式进行了设计。本文将聚类过程分为三个步骤,分别对TF-IDF关键词提取、LDA模型训练和K-means聚类过程进行MapReduce的实现,并使用公共微博数据集进行了聚类实验,并与传统聚类方法进行对比,结果表明,本文所使用LDA建模的分布式算法对中文微博数据聚类效果较好。
云计算;Hadoop;分布式文本聚类;潜在狄利克雷分配模型;变分贝叶斯推断
Web2.0的兴起使互联网的发展进一步提速,在大量文档中挖掘有用信息,成为数据挖掘研究热点。基于云计算的文本挖掘应运而生。文本挖掘是对文本信息进行数据挖掘的过程,是在文本信息中抽取潜在的可用、有效、可理解的、有价值的知识〔1〕。
聚类是文本挖掘技术中的重要组成部分,它将文本集分成若干簇,簇内文本应有较高相似度,簇间文本应有明显差异性。聚类作为一种无监督的机器学习方法,受到越来越多的研究人员的关注〔2〕。
本文主要内容是基于Hadoop云计算平台的新浪微博数据聚类分析算法的研究。
2.1 分布式文本聚类
针对Hadoop分布式计算平台的特点,对于传统K-means聚类算法,分别将TF-IDF特征值提取、K-means算法的执行进行了分布式设计。同时对K-means算法进行改进,使用LDA主题模型生成的概率分布值作为文档的特征值进行聚类,并提出了一种分布式的基于坍缩变分贝叶斯推断的LDA模型建立方法。本文基于Hadoop分布式平台对聚类算法提出了优化,介绍算法的详细设计,说明算法特点,并进行实验。
2.2 分布式TF-IDF计算
需要知道每个特征词语的出现次数|ti|、每个文本中词语出现的总数|dj|、每个词语在文档集中出现的文档数ni,在Hadoop中可以使用多个Ma-pReduce作业对各个参数进行求解,并且计算其TF-IDF。
2.3 分布式LDA建模
在使用CVB进行参数推断的过程中,首先Map接受型为
最后将LDA 主题模型得到文档在每一主题上的概率分布值作为文档的特征值,采用K 均值聚类算法对用户进行聚类。
2.4 分布式K-means算法
在利用MapReduce实现K-means算法时,Map函数将每个待聚类的点分配给最接近的聚类中心点,Reduce函数负责将更新新的聚类中心点,每次迭代需启动一个MapReduce作业。K-means在MapReduce中运行时,首先各个Slave节点的Map读取本地数据集,根据预先设置的簇的数目随机选取聚类中心点,将本地数据集中所有的文档对应到距其最近的聚类重心。输出
在Map过程中会产生大量的数据,为可以节约网络通信成本,中间数据被存储在各节点主机的本地磁盘。各节点执行Combine操作,利用各自本地磁盘中的数据对同一个聚类的点进行求和,输出
Reduce函数将对各个Combine函数的输出值进行计算,将同一聚类中心的中间数据进行求和,得到新的聚类中心,完成一次迭代。之后不断重复整个MapReduce过程直至满足结束条件。
在迭代过程结束后,选定了聚类重心,此时再执行一次Map操作,计算每个点到各簇重心的距离,将所有的点放在唯一一个与之距离最近的簇中,至此聚类完成〔4〕。
2.5 实验平台的搭建
2.5.1 实验环境设置
实验在三台计算机上以分布式的方式进行部署,每台机器上使用的操作系统为Ubuntu 12.10,jdk版本为java-6-opensdk,Hadoop版本为1.1.2。四台机器网络带宽为100Mbps。
2.5.2 Hadoop
在Hadoop-1.1.2版本中,为实现分布式模式,在每台机器上安装Hadoop后,均需要对各自hadoop/conf/文件夹下的hadoop-env.sh,core-site.xml和mapred-site.xml、hdfs-site.xml四个文件进行配置。
对Hadoop的环境文件hadoop-env.sh进行配置,在文件中找到”#export JAVA_HOME=”的字段,将其指向自己的JDK路径。
对Hadoop的核心文件core-site.xml进行配置,这里配置了文件系统HDFS的位置、文件副本数、临时文件夹,配置如下:
对MapReduce的配置文件mapred-site.xml进行配置,设置JobTracker节点位置:修改Hadoop中HDFS的配置,配置的备份方式默认为3。
在所有配置完成后,使用 bin/hadoop namenode -format命令格式化HDFS文件系统,再运行bin/start-all.sh启动Hadoop,稍后在浏览器中打开http://localhost:50030和http://localhost:50070即可看到NameNode和JobTracker的浏览器交互界面,至此Hadoop环境配置完成,最后再用export命令将HADOOP_HOME和HADOOP_CONF_DIR进行声明,至此Hadoop配置完成。
2.6 实验数据
本文分别使用了以下两个数据集以进行比较:
1)由中科院高能物理研究所计算中心收集的2695个用户的历史微博数据,数据大小为474.72M;
2)由合肥工业大学计算机与信息学院收集的新浪微博120万微博数据,数据大小为179.86M
两个数据集均使用中科院计算机语言信息中心语言知识研究室董振东教授开发的“知网HowNet”分词系统进行分词,并使用哈工大中文停用词表进行停用词去除。
2.7 评价标准
准确率衡量系统的查准率,召回率衡量系统的查全率。
对于原始文本的人工分类Ci和聚类后的簇Pj,有以下公式:
准确率precision(i,j)= nij/nj
其中nij是类Ci在簇Pj中出现的文本个数,nj是簇Pj的文本总数。
召回率recall(i.j)=nij/ni
其中nij是类Ci在簇Pj中出现的文本个数,ni是类Ci的文本总数。
2.8 实验设计
本文实验对于聚类的设计框图如图1所示。本文将用户的所有微博数据聚集在一起作为用户的初始数据,经过分词、去停用词、去@信息等预处理步骤后提交给LDA模型,分别使用单机和多节点的Gibbs法和CVB法进行训练,将训练结果提交给K-means算法进行聚类。同时进行一组直接利用向量空间模型进行K-means算法进行聚类的实验作为对照。分别对各组实验的聚类速度和聚类质量进行比较。
图1 实验流程
2.9 实验结果
在聚类速度实验中,首先依次使用单机和Hadoop对语料数据集进行K-means聚类,再分别使用Gibbs采样法和CVB法对数据集进行模型训练,再使用Hadoop对训练完成的结果进行K-means聚类。
单机计算的效率比2个节点的Hadoop分布式平台计算效率稍高,这是因为在使用Hadoop平台时,节点之间的通讯消耗以及每次MapReduce任务都要对磁盘进行读写。在节点数提升超过3个时,分布式计算能力明显提升,而通信及IO对效率的影响所占比重也相应降低,因此整体效率有了显著提高。
在使用同样的数量的节点对同一数据集进行采样后,采用CVB采样法生成的模型比Gibbs采样法生成的模型有着更快的收敛速度。
经过LDA模型训练之后,聚类速度较VSM并没有明显提升,这说明特征值并不是影响聚类速度的主要原因。
Hadoop在处理小文件时,MapReduce所带来的效率提升没有处理大文件时明显,这是由于Hadoop中HDFS默认的存储块为64MB,在直接处理小文件时,虽然在文件实际占用的存储空间仍为实际的文件大小,但每一个存储在HDFS中的文件、目录和块映射都作为一个对象存储在NameNode中,极大的占用了NameNode的资源,频繁的映射寻址使的HDFS的速度大大降低,因此难以有很高的效率提升。
LDA的最高查准率为0.931,最低查准率为0.772,平均查准率为0.805;VSM的最高查准率为0.884,最低查准率为0.578,平均查准率为0.767。LDA的平均查全率为0.866,VSM的平均查全率为0.852。LDA主题模型在查准率、查全率方面全面优于VSM方法。证明经过LDA主题训练后得到的特征更具有代表性。
本文基于Hadoop分布式计算平台,介绍了实验中使用的算法,并将聚类中的各个部分分离,分别与MapReduce相结合,实现分布式化。对照两个不同大小的微博数据集进行了聚类实验分析,分别从聚类时间、聚类质量两个方面对几种预设的聚类方法进行了实验。结果证明本文提出的方法有较好的聚类质量和聚类速度,较传统算法有一定提升。同时,基于MapReduce对本文所提方法进行实现后,提高了方法的可扩展性,较好解决了大型文本数据聚类的问题。
〔1〕代劲. 云模型在文本挖掘应用中的关键问题研究〔D〕. 重庆: 重庆大学, 2011.
〔2〕何晏成. 基于近邻传播和凝聚层次的文本聚类方法〔D〕. 哈尔滨工业大学, 2010.
〔3〕冯汝伟, 谢强, 丁秋林. 基于文本聚类与分布式 Lucene 的知识检索〔J〕. 计算机应用, 2013, 33(1): 186-188.
StudyontheGatheredCollectAlgorithmforMicro-signaldatabasedonCloudcalculationtechnology
DUAN Qing-wei; TIEMUbagan
(BenxiInformationcenter,Benxi,Liaoning, 117000,China)
the paper introduces the cloud calculation, then designs its distribution type. The gathering process is comprised of three steps to realize MapReduce, to withdraw key words of TF-IDF, to train the model LDA, and to collect k-means process respectively. We contrast the result data with those from traditional methods, it shows more efficiency for data from LDA.
Cloud calculation; Hapoop; Distributed file collect; Potential distributed model.
1008-3723(2017)04-007-03
10.3969/j.issn.1008-3723.2017.04.007
2017-05-15
段庆伟( 1960-),辽宁辽阳人, 本溪市信息中心主任 ,计算机高级工程师 ,研究方向:大数据及云平台
TP311.13
:A
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!