搜档网
当前位置:搜档网 › 基于微博信息分析对旅游景点热度预测系统的设计与实现

基于微博信息分析对旅游景点热度预测系统的设计与实现

硕士学位论文

题目: 基于微博信息分析对旅游景点热度预测系

统的设计与实现

研究生黄兴

专业计算机技术

指导教师吴卿教授

完成日期 2013年12月

杭州电子科技大学硕士学位论文

基于微博信息分析对旅游景点热度预测

系统的设计与实现

研究生:黄兴

指导教师:吴卿教授

2013年12月

Dissertation Submitted to Hangzhou Dianzi University

for the Degree of Master

Microblogging Information Analysis based Design and Implementation of Prediction for Tourist Attactions

Popularity

Candidate: Huang Xing

Supervisor: Prof. Wu Qing

December, 2013

杭州电子科技大学

学位论文原创性声明和使用授权说明

原创性声明

本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

申请学位论文与资料若有不实之处,本人承担一切相关责任。

论文作者签名:日期:年月日

学位论文使用授权说明

本人完全了解杭州电子科技大学关于保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属杭州电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为杭州电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。(保密论文在解密后遵守此规定)

论文作者签名:日期:年月日

指导教师签名:日期:年月日

摘要

微博作为目前最流行的社会化网络媒体,其对旅游景点热度预测方面有一定的作用和意义,不仅可以帮助用户在选择游玩景点时提供决策参考的价值,还可以帮助商家给用户提供个性化的旅游景点推荐,甚至在预防突发事件的发生上也有一定的重要作用。要想实现旅游景点热度预测系统,需要解决如下一些问题:一是,微博数据库的数据量正在爆炸式的增长,其数据量之大,已经超出了传统的技术对数据的处理能力。二是,传统的关键词提取算法只考虑关键词与它出现的文本数之间的关系,但是忽略了关键词在一个类别内的分布情况,从而导致对微博中关键词提取的准确性下降问题。三是,为了得到有效关键用户需要消除僵尸粉的干扰、广告用户的影响。四是,目前的相关研究都是针对过去的内容或当前的信息记录,没有做到预测性,因此需要设计相关算法。

面对以上的问题,本文首先通过设计算法来消除僵尸粉的干扰以及广告用户的影响来得到有效的关键用户集合;其次,对海量微博信息进行了分类,从中分离出有关旅游方面的微博,对得到的旅游相关微博信息进行中文分词,进而使用改进后的TF-IDF函数进行词语权值计算,得到在某段时间内高频的旅游类关键词;然后通过对用户之间的行为影响力的分析,结合关键用户集合和高频旅游类关键词集合来分析计算旅游信息的传播趋势,从而可以预测旅游景点的热度;最后将该系统移植到Hadoop分布式框架中。实验表明,该系统是有效可行的并且Hadoop框架能快速的处理海量数据。

关键词:微博,Hadoop,海量数据,用户影响力,旅游景点热度预测

ABSTRACT

Microblog as the most popular social networking media, it has a certain role and significance of the predicted heat of tourist attractions,not only can help users choose to provide decision-making reference value when the fun attractions, can also help businesses to provide users with personalized Recommended tourist attractions, and even prevent the occurrence of unexpected events have a certain role. To achieve tourist attractions heat prediction system, a number of issues need to be addressed as follows: First, the amount of data microblog database is explosive growth; the large amount of data has gone beyond the traditional techniques of data processing capabilities. Second, the traditional keyword extraction algorithm only considering the relationship between the key words and the number of it app ears’ texts, ignores the key words in a category of distribution, leading to decreased accuracy problems of micro-blog commercial word extraction. Third, in order to obtain valid key users, need to exclude the interference of zombie powder and advertising users. Fourth, the current studies are directed at the contents of the past or the current record of information did not do projections, and therefore need to design the relevant algorithms.

Faces of the above problems, firstly, designed algorithm to eliminate interference from advertisers and influence of zombie powder to get effectively key users. Secondly, the mass microblog information has been classified by the relevant tourism microblog; followed by the travel-related microblog for Chinese word segmentation, and used improved TF-IDF function to calculate term weight. After the weight of terms to be sorted, we can obtain the high frequency attractions vocabulary in a certain time. Then by analyzing the behavior of influence between users, combined with a key set of users and high tourist class set of keywords to analyze trends in the spread of computing tourist information, which can predict the heat of tourist attractions. Finally, the system is ported to the Hadoop Distributed framework. Experimental results show that the system is feasible and effective, and hadoop framework for processing huge amounts of data quickly.

Keywords:Microblog, Hadoop, Mass Data, User Influence, Tourist Attractions Heat Prediction

目录

摘要 ................................................................................................................... I ABSTRACT .............................................................................................................. I I 第一章绪论 (1)

1.1 课题研究背景及意义 (1)

1.2 国内外研究现状 (2)

1.2.1 微博关键词提取 (2)

1.2.2 微博用户影响力 (3)

1.3 课题研究的主要内容 (5)

1.4 论文结构 (6)

第二章相关理论与技术 (7)

2.1 云计算的相关介绍 (7)

2.1.1 云计算的定义 (7)

2.1.2 Hadoop概述及集群高层体系结构 (8)

2.1.3 Hadoop文件系统(HDFS) (9)

2.1.4 MapReduce编程模型 (11)

2.2 微博关键词提取 (12)

2.2.1 TF-IDF算法的基本概念 (12)

2.2.2 TF-IDF算法的基本原理 (12)

2.3 微博用户 (13)

2.3.1 僵尸粉的基本概念 (13)

2.3.2 关键用户的基本概念 (14)

2.4 微博用户影响力 (14)

2.4.1 用户影响力的基本概念 (14)

2.4.2 用户影响力的评价因素 (15)

2.5 本章小结 (16)

第三章旅游景点热度预测系统的需求分析与设计 (17)

3.1 需求分析 (17)

3.2 系统总体设计 (17)

3.3 数据采集模块的设计 (19)

3.4 提取关键用户模块的设计 (19)

3.4.1 消除僵尸粉干扰的算法设计 (20)

3.4.2 关键用户提取算法设计 (20)

3.5 基于改进TF-IDF算法的高频旅游类关键词提取模块的设计 (22)

3.6 关键用户行为影响力分析模块的设计 (23)

3.6.1 好友联合影响概率的概念 (23)

3.6.2 好友联合影响概率计算方法 (23)

3.7 旅游信息传播趋势分析模块的设计 (24)

3.8 本章小结 (24)

第四章旅游景点热度预测系统的实现 (26)

4.1 数据采集模块的实现 (26)

4.2 提取关键用户模块的实现 (27)

4.3 基于改进TF-IDF算法的高频旅游类关键词提取模块的实现 (27)

4.4 关键用户行为影响力模块的实现 (29)

4.5 旅游信息传播趋势分析模块的实现 (30)

4.6 本章小结 (31)

第五章实验与分析 (32)

5.1 实验环境 (32)

5.2 数据采集及存储 (32)

5.3 实验流程与结果分析 (33)

5.3.1 获得关键用户 (33)

5.3.2 获得高频旅游类关键词 (34)

5.3.3 获得关键用户行为影响力 (37)

5.3.4 预测旅游景点热度 (41)

5.4 实验结果验证 (42)

5.5 本章小结 (45)

第六章总结与展望 (46)

6.1 本文完成的主要研究工作 (46)

6.2 不足之处及后期工作展望 (47)

致谢 (49)

参考文献 (50)

附录 (53)

第一章绪论

1.1课题研究背景及意义

如今互联网技术的不断发展,网络媒体已经慢慢成为继报刊杂志、户外广告和广播电视后第四大媒体。现在众所周知的微博,其实就是微型博客,它是允许用户实时发布个人信息并且能被其他感兴趣的用户传播分享以及获取的平台。因为微博信息具有独特的传播形式,成为了一支近些年来众多网络媒体中最活跃的突出代表。由于当用户发表一条微博信息时,其所有关注者都能看到并且还可以对该条信息进行评论、转发,因此随着越来越多的用户通过微博来讨论公共事务、发表个人观点、分享自己感兴趣的事,导致微博上信息的传播会对社会舆论、社会热点、社会反腐等发展趋势起到一定的影响作用。如“表哥”事件就充分体现了微博在反腐方面的力量和价值,起先微博网友不断发布或转发“表哥”杨达开的腐败线索,微博网友还集体人肉搜索去核实腐败信息,再加上官方媒体的介入,腐败内幕水落石出是必然的。微博的力量这么强大已经慢慢地吸引了众多学者的眼球,于是我们的研究便是对隐藏在微博中的信息进行提取分析,然后通过算法研究提取出来的信息的发展趋势。

微博信息发展趋势预测的研究前景方向很广,很多科研项目都开始通过挖掘微博数据来对医学、地震、人的情绪等等进行研究。本文主要是通过对微博有关旅游方面的信息进行提取分析及计算来对旅游景点热度预测进行了研究。而且如果我们已经知道了微博中的关键用户集合和微博用户间的影响力,那么我们完全可以实现预测微博信息的发展趋势。

然而随着越来越多的用户使用微博,微博数据库大小也在爆炸性的增长。其次,微博数据和传统的文本数据相比,有其独特的特点:字数少,内容随意性大,有效特征少,概念描述模糊。这些特性都给数据处理带来很大的麻烦。另外,针对传统微博关键词提取的算法只考虑关键词与它出现的文本数之间的关系,忽略了关键词在一个类别内的分布情况,从而导致对微博中关键词的提取的准确性下降问题。再加上目前微博通过设置用户粉丝数来体现用户的受关注程度,然而十分严重的僵尸粉问题直接导致用户被关注度存在虚假性问题;其次,广告用户经常发一些广告内容,而且此类用户一般不会去与其他用户进行微博互动或转发其它微博信息,所以广告用户会干扰我们对数据的分析处理。面对微博如此海量文本数据以及这些待解决的难题,如何从中快速的准确的挖掘出我们需要的有价值

的信息是微博数据处理要面临的一大问题。所以,我们需要运用云计算平台来实现一个可靠有效的算法去帮我们从海量微博数据中快速地提取出需要的信息并且分析信息的传播发展趋势。

本文针对微博中旅游类关键词提取和分析、旅游景点信息传播趋势、关键用户的提取以及关键用户的行为影响力做了深入的研究。而且对旅游景点热度预测的研究也是存在十分重要的意义:一方面可以让用户知道哪些旅游景点在未来一段时间内会很热门,给用户选择旅游景点做个决策参考;另一方面还可以精确又快速的给微博用户群体进行旅游景点个性化推荐;此外,在降低突发事件的危害方面也具有一定的作用,如缓解交通压力方面、避免人挤人挤爆人的旅游尴尬场面的发生。一个典型的突发事件就是发生在2013年10月13日上午10点左右庐山景区过桥断裂事件,究其原因是因为当日景区游客爆满,时间大概是早上10点,随着越来越多的用户进入码头,游客数量慢慢达到峰值,再加上,当时游客们没有服从工作人员的相应指挥,强行过桥,出现了黑压压一片相互拥挤的尴尬场面,导致上船区域的连接引桥护栏变形扭曲,最终桥面顶不住巨大的压力而坍塌,很多游客直接落水,部分游客甚至身体受伤。如果我们在选择旅游景点游玩时就可以预测到各个旅游景点的热度,我们或许就不会选择一些人气十分高,明知会出现人挤人场景的旅游景点,或许就可以避免类似突发情况的发生。因此,我们的研究是十分有意义的,既可以给用户决策旅游景点做参考,又可以帮助商家给用户做个性化推荐提供参考,还可以预防突发事件的发生。

1.2国内外研究现状

本节主要对微博关键词提取、微博用户影响力的相关理论技术的研究现状进行简要讲解。

1.2.1 微博关键词提取

在网络时代,随着网民的日复一日的增加,互联网渐渐的蕴藏着巨量的、内容丰富多彩的信息。数据库存储容量爆炸式的增长,杂乱众多的数据信息,无疑让很多企业看到了商机,企业纷纷投入互联网信息挖掘提取的研究中,都想从中提取出对自己有用的信息,来提高自身企业的竞争力、带动企业经济的发展。可见,如何从海里的互联网信息中挖掘提取出有重要价值的信息已经成为一个热门的研究方向。

国内外学者对互联网信息的挖掘提取也已经有所探索,如早在1999年Witten 和Frank等人为了提取有商业价值的关键词,充分利用简单贝叶斯机器学习的方

法,经过刻苦学习研究提出了KEA算法[1];在2004年Byron Marshall等人就提出用元搜索技术来收集信息,通过进一步的各种信息数据整合来达到提高收集到的需求信息的精确度[2];在2005年间,Robert Baumgarter等人开始研究从电子商务网挖掘提取重要的商业信息,采用wrapper技术来实现结构化的数据提取,更难得的是还实现了难以处理的半结构化数据的信息提取[3];国内学者赵军、刘非凡等人通过对面向商务信息抽取的产品命名实体识别的研究,也提出了可以从中文文本信息内提取出有关商务信息的算法,该算法是基于层级的隐马尔科夫模型的名称识别算法[4];在2006年期间,谷琼、朱莉等人试着构造能表示上下文内容的PA T数,通过不断深入研究,最终提出了一种基于PA T树结构关键词提取方法[5];在2008年,Yan Chen等人提出了基于本体论驱动下的从互联网中提取具有企业竞争力的情报系统,主要运用模板和规则匹配把提取出来的具有企业竞争力的情报填充进本体实例中[6];之后几年,随着微博越来越受网民的喜爱,微博数据也开始慢慢增多,数据量的巨大直接引起国内外学者对微博信息的提取产生了浓厚的兴趣,如B. J. Jansen and M. Zhang等人对包含各种品牌的评价、喜好以及选择的相关微博帖子进行深入研究分析[7];Zitao Liu等人提出了一种基于Part-of-speech的适合于对微博短信息文本进行提取的方法[8];Zhenhua Qin等人提出了一个判断微博平台内容发展趋势的算法[9];Lian Jie等人提出了基于新浪微博API与基于页面解析的新浪微博数据挖掘方案[10];Zhiyuan Liu等人结合基于转换的方法与基于频率的方法进行关键字提取[11];Lin Li等人对中国的新浪微博主题的提取和分析[12];陈应友等人为了提高提取微博文本中与商业相关的关键词的精确率,将传统文本关键词提取算法与互联网搜索引擎中的搜索权值结合进行调权来达到目的[13]。贾赛等人通过分析一种领域本体中的相关Web信息抽取算法,进而建立相应的领域本体并设计出相应的信息提取算法,来实现对微博信息的提取[14]。

根据到目前为止的研究状况可以知道,对微博信息的挖掘提取基本上是针对主题和关键字的,而且如今一些对微博关键词提取的算法只考虑关键词与它出现的文本数之间的关系,忽略了关键词在一个类别内的分布情况,从而导致对微博中关键词的提取的准确性下降问题。为此,本文对TF-IDF算法[15]在词语权值计算方面进行了研究,结合信息论的相关知识,分析了关键词在类别内分布情况,提出了改进TF-IDF算法,来弥补传统算法的不足。

1.2.2 微博用户影响力

国内外学者对微博用户影响力的研究已经有所探索,Akshay Java等人从微博网络的增长、用户地域分布、度分布等方面做了进一步的分析[16];Weng等人

通过对PageRank算法的深入研究,设计了微博影响力排序算法,该算法主要通过分析用户和链接结构来计算话题相似性[17];Teutle从网络参数,例如密度和介数等,以及网络出入度的增长速度这几个方面对微博做了深入分析,以便描述微博网络变化[18];平亮和宗利永等发现信息在微博平台传播过程中因为微博用户间“关注”和“被关注”的关系逐渐形成了网络拓扑结构,于是他们通过分析该网络拓扑结构来对微博的中心性用户做了深入研究[19];王晓光对“新浪微博”平台进行了深入的研究,分析了微博用户间的关系特征、用户的行为特点、评价微博影响力的因素、微博信息传播方式,并建立了微博影响力回归方程[20];Cha等人通过对大量的微博数据进行研究,主要从入度数、被转发数和被提及数三个方面的参数进行对比分析来研究用户的影响力,发现入度高的用户在微博被转发和被提及中并非影响力就大,说明入度不是用户影响力的决定性因素,而影响力高的用户可以在信息传播过程中起到关键性的作用[21];Ye等人首先计算了用户回复数影响力、粉丝数影响力以及转发数影响力,然后按照这几个参数进行排序,如果需要进一步排序比较,则再按照粉丝数、微博数、回复和转发数顺序做进一步排序,最终得到的影响力排序结果用来作为标准,并且他们认为影响力最稳定的用户往往是那些得到回复数最多的用户[22];Romero等人提出了一种基于用户活跃度的IP统计算法来计算用户影响力,在实验中运用该IP统计算法去计算用户影响力,结果发现用户影响力跟URL点击率相吻合,同时还证明了用户影响力的大小并非完全由用户粉丝的数量来决定的[23];刘清等人基于对新浪微博平台的数据分析研究,以微博数、关注数、粉丝数、被转发的微博数、被转发的评论数、收到的评论数共七项数据一起构成评价用户微博影响力的指标因素,运用主成分分析法计算出各项指标的权重值,最终建立了微博影响力评价模型[24];何静等人通过深入分析微博用户行为以及关系网络的特点,结合对PageRank算法进行改进,进而提出了用户在整个微博网络中影响力的评估模型,用来分析用户影响力大小[25]。

本文从链接分析的层面出发定义了用户被关注度的概念来替代粉丝数,引入微博内容相似度的概念及设计了相应的算法来解决如何去除广告用户的问题。通过结合用户被关注度、微博被转发数以及评论数来计算用户微博影响力,判断影响力的大小得到关键用户集合。之后,又引入好友联合影响概率的概念及设计了相应的计算方法,通过判断好友联合影响概率的大小来判断某用户的行为是否会被影响。这样就可以统计出各个用户将会影响到的友邻用户集合,进而可以知道用户行为影响力范围的大小以及具体影响到了哪些用户。

1.3课题研究的主要内容

基于国内外的研究现状,本文深入研究了微博关键词提取、关键用户的提取、挖掘用户行为影响力以及分析旅游信息传播趋势的技术,从而实现预测旅游景点热度的目标。由于微博提供了开放的API数据接口供大家调用,方便了获得微博数据,因此本文选择新浪微博作为这次研究的平台。主要研究内容具体可以分成如下几个部分:

(1)微博数据采集:通过调用微博平台的API获得用户UID,再根据用户UID运

用网络爬虫技术去抓取包含该用户的微博信息,具体主要是获得用户属性、微博属性、用户关系这几个方面的数据。其中,用户属性主要包括用户ID、用户名、用户主页地址、粉丝数、微博数;微博属性主要包含用户ID、用户发布微博的内容、发布微博的时间、被转发数、评论数、转发用户ID;用户关系主要有用户ID、关注该用户的用户ID、该用户关注的用户ID。

(2)微博关键用户的提取:虽然微博用户很多,但是真正有效有权威的能引导信

息传播的用户是有待我们去发现和提取的,所以根据微博用户的特点需要对微博用户进行预处理,消除严重的僵尸粉[26]用户的干扰,去除广告垃圾用户的影响,通过分析用户被关注度、微博内容相似度以及用户微博影响力得出有效关键用户集合。

(3)高频旅游类关键词提取:首先是运用基于语义的KNN分类算法[27]对微博内

容进行分类,从中分离出与旅游相关的微博内容;其次是分词,就是将每一条微博内容拆分成一个个词语,我们是运用中科院的“ICTCLAS汉语分词系统”[28]进行中文分词;然后是统计词频,就是统计每个词语出现的次数,由于传统的关键词提取算法只考虑关键词与它出现的文本数之间的关系,但是忽略了关键词在一个类别内的分布情况,从而导致对微博中关键词提取的准确性,因此我们运用自己改进后的TF-IDF算法来计算词语权值;接着是获取旅游景点高频词,指的是在某段时间内词语权值很高的词。

(4)关键用户行为影响力分析:本文引入好友联合影响概率的概念以及设计计算

方法,通过判断好友联合影响概率的大小来判断某用户是否会被影响;接着就可以统计出各个关键用户将会影响到的友邻用户集合,这样就可得到用户的行为影响力范围大小,即具体影响到的用户集合。

(5)旅游信息传播趋势分析:根据得到的高频旅游类关键词集合、关键用户集合、

关键用户行为影响力来设计实现分析旅游信息传播趋势,这样就可以预测旅游景点的热度。

1.4论文结构

本论文的主要结构如下:

第一章绪论。首先介绍了与本课题研究相关的背景以及研究的主要意义,详细的分析了国内以及国外到目前为止对微博关键词提取和微博用户影响力的相关研究状况,课题研究的主要内容以及简要说明了论文的组织结构。

第二章相关理论与技术。本章主要介绍了云计算、微博关键词提取、微博用户以及微博用户影响力的相关理论和技术。通过分析研究云计算的相关理论与技术目的是为了更好运用云计算技术以及发挥其优势;在微博关键词提取方面,本文对TF-IDF权值算法的基本概念和原理进行了深入的分析,为之后章节对TF-IDF算法的改进做了很好的准备工作;对僵尸粉的现象、关键用户概念、用户影响力基本概念以及评价影响力的因素的分析都是为了后面的研究工作的顺利进行做好了基础工作。

第三章旅游景点热度预测系统的需求分析与设计。本章介绍了旅游景点热度预测系统的需求以及总体设计思想和架构,并且对各个关键模块做了详细设计说明。

第四章旅游景点热度预测系统的实现。本章主要是根据第三章对系统各个关键模块的设计来具体实现各个关键模块。

第五章实验与分析。主要对实验环境的选择因素进行了分析,数据采集和存储方面进行了交代,实验的流程进行了详细阐述以及分析了实验数据,通过实验结果验证模块对系统预测出来的旅游景点热度进行了验证,得出本文设计的系统是可行有效的。

第六章总结与展望。对论文的主要工作进行了小结,列出了本文所做的研究工作中存在的不足之处,并对下一步工作提出了展望。

第二章相关理论与技术

随着网络信息技术的不断快速发展,数据规模迅速增至海量,如何更加有效的获取信息,如何更加快速的应用信息成为信息社会面临的一大挑战。本章分析云计算相关理论技术为之后章节运用云计算技术来解决高效处理海量数据的难题奠定理论基础,然后通过分析TF-IDF算法为后面章节改进该算法来提高微博关键词提取的准确性打下理论基础,接着对僵尸粉、关键用户以及用户影响力概念的介绍,都是为我们后面研究做相关理论的准备工作。

2.1云计算的相关介绍

云计算(Cloud Computing)[29], 是由Google在2006年首先提出的,在最近几年快速兴起,是一种新型的基于互联网的相关需求应用服务的添加、运用以及交付模式,是一种动态的、易扩展的、而且经常是能通过互联网来提供虚拟资源的计算方式。从计算的角度看,它就是分布式计算的一种扩展,即将计算任务分配给网络上许多其它的计算机以达到并行处理的目的;从存储的角度看,为了重点解决面临的大数据存储难题,特地加入了分布式存储的能力。多任务并行计算及分布式存储是云计算平台中最核心的技术。为了对基于云计算平台下对微博海量数据处理的深入研究探讨,下面对云计算相关概念理论和相关技术进行了简要介绍。

2.1.1 云计算的定义

到目前,无论是在工业界还是在学术界对于云计算还没有一个一致的定义。通过对一些学者和企业关于云计算定义的研究,总结出下面三类相对比较权威的云计算定义:

文献[30-32]和Wikipedia[33]认为云计算是一种计算方式,通过互联网提供动态的、可扩展的虚拟资源服务,并且云计算提供的是一种普适的服务。这种定义强调云计算利用虚拟化等技术将各种网络计算资源作为服务提供给有需求的用户。

文献[34-37]从计算机模式发展方面出发认为,云计算它是网格计算(grid computing)、并行计算(parallel computing) 和分布式计算(distributed computing)的发展;又是这些计算科学概念的商业实现,同时提升了效用计算、虚拟化、IaaS、PaaS和SaaS等概念。

文献[38-40]和大部分IT企业认为云计算是一种商业服务计算方式,并且这

种商业方式是由传统网络上单点服务器或者规模较小的服务群向用户提供服务转向大规模的服务群提供服务,从用户角度看服务资源集中到云中心。这一概念意味着计算服务作为商品进行流通,就类似于煤气、水和电一样即开即用,真正实现计算商品化。

从以上各方关于云计算定义中可以看出云计算是互联网时代后又一个充满商业气息的计算方式,像Microsoft、Amazon、IBM和Google等IT企业采用云计算技术构建各自的云数据存储中心和各种云应用服务,并通过网络为有需求的用户提供相应的服务。如,Amazon通过使用简单存储服务(S3)和弹性计算云(EC2)[41]服务来帮助企业解决复杂的计算以及海量数据的存储难题。作为目前云计算技术的开发及使用都达到一定成熟度的Google,在其云计算中用户已经可以通过使用Google App Engine[42]来运行一些属于用户自己的大型的可以并行的程序。

2.1.2 Hadoop概述及集群高层体系结构

Apache Hadoop[43]项目组一般开发一些高可靠性的,具有分布式计算能力的以及高扩展性的开源软件。Apache Hadoop软件库是一种通过跨集群计算机去分布式存储及处理大型数据集的框架。它不仅拥有简单的编程框架而且使用起来也十分容易。它确保应用程序可以在成千上万的独立计算的计算机上并行运行来处理PB级的数据。而Hadoop[44]是来自于谷歌的MapReduce和谷歌文件系统(GFS)。

Hadoop主要由MapReduce、HDFS[45]、Hive[46]、ZooKeeper[47]、HBase[48]等成员组成。其中HDFS文件系统及MapReduce编程模型[49]是Hadoop整个框架中最核心的设计。HDFS,它是Hadoop分布式文件系统的一个缩写,为分布式存储海量数据提供了重要的技术支持。而MapReduce是Google MapReduce的开源实现,实质是“任务的分解和结果的汇总。”。

Hadoop集群是由一个Master节点和多个奴隶节点或称“工作节点”组成。Master节点包括了JobTracker,TaskTracker,NameNode以及DataNode节点。奴隶节点或工作节点作为TaskTracker和DataNode节点。

MapReduce任务是通过一个JobTracker节点及多个TaskTracker节点之间相互协作控制完成的。Job Tracker的功能是负责管理以及调度TaskTracker节点,将MapReduce任务分配给具体的TaskTracker节点,它通常情况下运行在Master节点上。

TaskTracker是集群中的一个节点,它主要从JobTracker那接受Map, Reduce 和Shuffle操作任务。

在一个更大的集群中,HDFS是通过一个专用的NameNode服务器去管理主机

的文件系统索引,以及通过一个辅助的NameNode来生成快照去存储某个时间段节点的数据复制,从而来防止文件系统损坏导致数据丢失的发生。

Hadoop集群高层体系结构[50]如图2-1所示:

图2-1 Hadoop集群高层体系结构

2.1.3 Hadoop文件系统(HDFS)

Hadoop分布式文件系统,缩写为HDFS,它是一种具备容错功能和存储海量数据功能的分布式文件系统,是设计在商业硬件上运行的。HDFS使得应用程序在处理数据方面拥有高吞吐量的处理能力,因此将其应用在那些需要处理大型数据集而且还要求有高吞吐量的应用程序在合适不过了。Hadoop提供的可以存储海量数据的分布式文件系统(HDFS),可以将数据存储在成千上万台服务器上,而且可以在这些机器上运行作业(Map/Reduce jobs),运行那些靠近数据的作业。HDFS是主/从架构的,大数据自动被分割成数据块,然后被分配到Hadoop集群环境中不同节点,如图2-2所示。

图2-3,一个HDFS集群包含一个单一的NameNode(也就是主控制服务器),它既要负责管理、维护整个文件系统的命名空间,又要把各个大容量文件被分割后的数据块被分配存储在DataNode节点上的访问地址及相应的备份信息记录下来,还要协调好各个客户端对请求文件的访问。此外,还有一些DataNode,主要负责对与它们对应的各个物理节点的存储功能的维护管理工作。HDFS为了让用

户能够以文件的形式来存储海量数据,对文件系统的命名空间进行了对外开放。在系统的内部,一份文件会自动被分割成一个或许多个数据块,然后把这些分割好的数据块分别存储在不同的DataNode中。NameNode分配这些映射块给Datanodes。HDFS被架构在大型集群机器间并且为存储超大容量的文件提供了高可靠性及安全性保障。

图2-2 数据被分布在各个节点

HDFS总体架构如下:

图2-3 HDFS框架

2.1.4 MapReduce编程模型

MapReduce是由谷歌在2004年推出的一个支持大型数据集在计算机集群上实现分布式计算的软件框架。MapReduce是一个可以解决超出传统软件处理大数据能力的编程模型。“Map”和“Reduce”的思想概念是在矢量编程和函数式编程两类编程语言的思想启发下而得来[51]。John Darlington等学者[52]在1995年提出的“Map”、“Fold”与当今谷歌云计算的“Map”和“Reduce”编程思想很类似。在MapReduce编程模型中,用户可以设置一个map映射函数去处理一个键/值对集合,来生成一组中间过渡的键/值对集合,然后设置一个reduce函数把那些键/值对中具有相同键的值合并掉[53]。

图2-4 给出了分布式的map与reduce的处理流程:

图2-4 分布式的map与reduce处理流程

Map阶段:用户任务输入的大量数据会被MapReduce框架逐步分解成大小都固定的数据片段(splits),随后对各个splits做更近一步的分解,分解后的数据一一组织成形式的键值对。Hadoop会针对各个splits构建相应的Map任务去调用用户预先设置好的map函数,并且把各个splits中的作为相应map函数的输入数据,计算输出中间结果,也是形式的键值对。然后把中间结

果按照K2进行排序,把那些键值相等的所有value 值添加进新的列表,最终组织成新元组。再按照键值的不同范围把对应的元组分发到处理相应键值的Reduce 任务中。

Reduce 阶段:Reduce 任务就是对从各个Map 任务返回的数据进行整合排序,接着自动调用用户根据自己的需求设置的reduce 函数,把整合排序后的作为输入数据进行相应的逻辑业务处理,最后可以输出并将其保存在HDFS 上。

2.2 微博关键词提取

本文提出的微博关键词提取方法是基于改进TF-IDF 算法的,所以下面先介绍传统TF-IDF 算法的基本概念和基本原理。

2.2.1 TF-IDF 算法的基本概念

Term frequency –inverse document frequency ,缩写为TF-IDF ,该算法表示一个字或词语对于一份文档或一个语料库的重要程度。其中,与词语重要性相关的是词频TF (Term Frequency )和逆向文件频率IDF (Inverse Document Frequency )

[54]。词频TF 表示在某一个文档中某个词语出现的次数。逆向文件频率IDF 是词语是否拥有类别区分能力以及区分能力大小的一种度量。词语的重要性随着在文档中出现次数的增加成比例地上升,但也会随着其在语料库中的出现的频率成反比下降。

2.2.2 TF-IDF 算法的基本原理

词频TF 表示在某一份文档中某个词语出现的次数。对于在某个文档里词语t i 的重要性可以表示成:

∑=j k k j

i j i n n TF ,,, (2.1)

式(2.1)计算出来的结果TF i,j 是对于一份文档j 某个词语t i 的重要程度,分子中的n i,j 表示在一份文档j 中某个词语t i 总共出现的次数,分母表达式表示一份文档j 中包含的每个词语出现过的所有次数加起来的总和。

逆向文件频率IDF 是词语是否拥有类别区分能力以及区分能力大小的一种度量。一个词语的IDF 的计算方法是首先文档总数跟那些包含该词的文档数量相加的和做除法运算,然后对相除得到的商取对数,具体计算公式如下:

相关主题