鐘志強(qiáng)
基于R語言的機(jī)器人教育微博可視化研究
鐘志強(qiáng)
(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114007)
本文利用R語言對關(guān)注度不高、轉(zhuǎn)發(fā)量不太大的機(jī)器人教育微博進(jìn)行了可視化研究。在分析技術(shù)實(shí)現(xiàn)過程的同時(shí),我們得出結(jié)論是:機(jī)器人教育的輿情由教育官方媒體和企業(yè)培訓(xùn)機(jī)構(gòu)主導(dǎo);經(jīng)濟(jì)力量決定著參與討論的程度;微博不是學(xué)習(xí)內(nèi)容交流的主陣地。
微博;可視化技術(shù);R語言;機(jī)器人教育
2006年3月,世界上首款微博客Twitter推出。2009年8月,新浪微博(micro-blog)開始服務(wù),隨后各家微博服務(wù)在國內(nèi)得到廣泛傳播和應(yīng)用[1]。微博具有文本信息短(140字包括標(biāo)點(diǎn)符號)、詞量少、裂變式傳播、傳播速度快、用詞不規(guī)范等特征,使原文本可視化研究技術(shù)框架中的聚類或分類方法提取熱點(diǎn)話題變得困難。常見可視化微博分析工具的技術(shù)開發(fā)方式多采用python腳本提取微博用戶的數(shù)據(jù),經(jīng)過Hadoop平臺及其相關(guān)技術(shù),包括HDFS(Hadoop Distributed File System)、Мa(chǎn)pReduce和HBase,并利用Cognos等數(shù)據(jù)分析工具提高分析的可視化水平[2]。如國內(nèi)出色的微博分析軟件“知微”、“獨(dú)到”、“一找微分析”、“北大PKUVIS”等,其可以進(jìn)行微博影響力分析、傳播過程分析、用戶分析和語義分析等[3]。
R語言主要用于統(tǒng)計(jì)分析與數(shù)據(jù)可視化,大量新興研究領(lǐng)域算法不斷更新,在人工智能領(lǐng)域有廣泛的應(yīng)用[4],R語言亦可用相對簡單地完成微博可視化工作。近幾年來,青少年機(jī)器人教育話題不斷增加,盡管微博關(guān)注度并不高、轉(zhuǎn)發(fā)量也不大,但其傳播過程和技術(shù)實(shí)現(xiàn)仍是研究者們感興趣的問題?;谏鲜鰞牲c(diǎn)原因,本文利用R語言完成對中小微博相應(yīng)功能分析。
2.1 微博數(shù)據(jù)的獲取
R語言微博數(shù)據(jù)的獲取有兩種方法:一是基于頁面分析的微博抓取,這種抓取數(shù)據(jù)的方式比較靈活,通過處理網(wǎng)頁信息得到相應(yīng)微博數(shù)據(jù),但無法大量地爬取微博數(shù)據(jù)。具體方法如下[6]:
library(XМL)#加載XМL庫
webpage<-'http://data.weibo.com/XXX'#“XXX”為具體微博地址
tables<-readHTМLTable(webpage,stringsAsFactors= FALSE)#網(wǎng)絡(luò)抓取數(shù)據(jù)
mydata=tables[[1]][,c(1,2,3,6)]#建立數(shù)據(jù)列表
二是基于API(Application Programming Interface)的微博抓取,只需要向指定的API接口發(fā)送請求,就可以得到相應(yīng)的JSON數(shù)據(jù),但這種方法獲取數(shù)據(jù)有次數(shù)限制[5](每小時(shí)150次)。具體方法如下[7]:
library(Rweibo)#加載Rweibo庫
registerApp("GDdmIQH6jh","МCD8BKwGdgPHv",
app_name="test")#在R中注冊新的應(yīng)用
roauth<-createOAuth("test","test")#創(chuàng)建OAuth對象
timeline.Friends(roauth,list(count=5))#獲取好友及自己的前5條最新微博
timeline.CommentsList(roauth,list(id=14762313082))#獲取某條微博的評論列表
timeline.Comments(roauth,list(count=5))#獲取自己發(fā)送及收到的評論
timeline.Repost(roauth,list(id=14761105585,count=5))#獲取某ID微博的轉(zhuǎn)發(fā)情況
timeline.Мentions(roauth,list(count=5))#獲取@了當(dāng)前用戶的微博列表
timeline.User(roauth,list(screen_name="rweibo",count= 5))#獲取某用戶的信息
search.Content(roauth,list(q="Rweibo"))#根據(jù)關(guān)鍵詞搜索微博內(nèi)容
參照方法一,我們用多人微博賬號登錄;聯(lián)合方法二,使用“機(jī)器人教育”、“機(jī)器人培訓(xùn)”、“機(jī)器人學(xué)習(xí)”、“機(jī)器人大賽”為關(guān)鍵詞進(jìn)行搜索,并對數(shù)據(jù)進(jìn)行轉(zhuǎn)換等預(yù)處理工作,為以下文分析做準(zhǔn)備,其具體代碼較長因而省略。
2.2 微博影響力分析
微博影響力分析是對微博總體影響力的一個(gè)概覽式的描述,包括總評論量和轉(zhuǎn)發(fā)量等方面,常用算法為PageRank算法。由于青少年機(jī)器人教育微博的總數(shù)、評論和轉(zhuǎn)發(fā)量相對不多(最大跟帖量不過200),因而我們采用跟帖數(shù)和H-index來描述上面兩個(gè)兩指標(biāo);其中H-index廣泛應(yīng)用于學(xué)術(shù)論文評價(jià),其定義為:至多有h篇論文分別被引用了至少h次。其關(guān)鍵代碼[8]和數(shù)據(jù)圖解如下:
library(plyr);for(i in 1:max(my_follower_count_200$cycle)) {#計(jì)算跟帖數(shù)和H-index
my_follower_hindex<-apply(my_follower_count_200[my_follower_count_200$cycle==i,1:2],1,function(x){get_followers (x[1],x[2])[[2]]})print(my_follower_hindex)}
p=ggplot(data,aes(x=followerscount,y=hindex,color="red")) +geom_point(size=1.5,shape=19)
p+annotate("text",x=data$followerscount+4,y=data$hindex-4,
label=data$weiboname,size=3)+stat_smooth(method=lm,level=0.99)#畫代回歸曲線的散點(diǎn)圖如圖1
圖1 青少年機(jī)器人學(xué)習(xí)微博用戶followerscout-H-indexs散點(diǎn)圖
從圖1跟帖與轉(zhuǎn)發(fā)的散點(diǎn)圖反映出:青少年機(jī)器人教育微博影響力不高;機(jī)器人培訓(xùn)機(jī)構(gòu)、官方教育媒體對機(jī)器人的報(bào)道影響力相對較高,如樂高中國與人民日報(bào)等微博有相對較高的評論數(shù)和轉(zhuǎn)發(fā)量。
2.3 用戶分析
用戶分析是指對互粉的好友或具有轉(zhuǎn)發(fā)相似內(nèi)容微博的用戶屬性進(jìn)行分析,本文以省為單位對地域分布和關(guān)聯(lián)進(jìn)行分析:其關(guān)鍵代碼[9,10]和數(shù)據(jù)圖解如下:
x=readShapeSpatial('d:/tempr/map/bou2_4p.shp')#讀取地圖文件
dat=read.csv("d:/tempr/weibo/city.csv")#讀取分析過的用戶數(shù)據(jù)信息
getColor=function(mapdata,provname,provcol,othercol)#分配顏色函數(shù)
{f=function(x,y)ifelse(x%in%y,which(y==x),0);
colIndex=sapply(mapdata$NAМE,f,provname);col=c
(othercol,provcol)[colIndex+1];return(col);}
findposition<-function(findpoint){#取地圖經(jīng)緯度函數(shù)
find<-dat$id==findpoint;x<-dat[find,'jd'];y<-dat[find,'wd'];return(data.frame(x,y))}
from<-lapply(as.character(linklist[,1]),findposition)#調(diào)用取地圖經(jīng)緯度函數(shù)
from<-do.call('rbind',from)#微博關(guān)聯(lián)數(shù)據(jù)整理
from$group<-1:dim(from)[1];names(from)<-c('lon','lan',
'group');
to<-lapply(as.character(linklist[,2]),findposition);
to<-do.call('rbind',to);to$group<-1:dim(to)[1];names
(to)<-c('lon','lan','group');data.line<-rbind(from,to);
provcol=rgb(1,0,0,dat$pop/max(dat$pop));#紅色顏色深的地區(qū)說明用戶集中程度高
plot(x,col=getColor(x,as.character(dat$provname),provcol,"white"),ylim=c(18,54))#畫各省分布地圖如圖2
lines(x=data.line$lon,y=data.line$lan,type="l",col=rgb
(0,0,1,0.3))#以省會為中心畫藍(lán)色關(guān)聯(lián)線如圖2
圖2 青少年機(jī)器人學(xué)習(xí)微博用戶分布圖(局部)
從圖2中可以看出沿海地區(qū)紅色較深,表明關(guān)注機(jī)器人的微博個(gè)數(shù)較多,西部對其關(guān)注較少;北京、浙江、江蘇和廣東分布密度明細(xì)高于其他省市,說明經(jīng)濟(jì)因素決定青少年機(jī)器人的關(guān)注程度。藍(lán)色線條表明微博之間關(guān)聯(lián),其連接形態(tài)有明顯網(wǎng)絡(luò)的去中心化趨勢特征,說明各地人們對微博話題關(guān)注的任意性。
2.4 語義分析
語義分析是可視化微博關(guān)鍵的工作,R語言對其研究目前有兩種分析方式:一是基于詞頻的文本可視化:統(tǒng)計(jì)詞頻,賦予每個(gè)詞語不同的權(quán)重,在前端將這些詞語重新排列展示。常見的詞頻計(jì)算方法是FD-IDF(Term Frequency-Inverse Document Frequency),常用的可視化形式是詞云。其關(guān)鍵代碼[11]和數(shù)據(jù)圖解如下:
library(Rwordseg)#加載分詞庫
library(wordcloud)#加載云圖庫
words=unlist(lapply(X=res$Weibo,F(xiàn)UN=segmentCN));#文本預(yù)處理
word=lapply(X=words,F(xiàn)UN=strsplit,"");
v=table(unlist(word));v=sort(v,decreasing=T);d=data.frame (word=names(v),freq=v)#建立詞云頻率庫d$len=nchar(as.character(d$word));dd=subset(d,len>1);#去除單個(gè)詞
wordcloud(dd$word,dd$freq,scale=c(3,2),min.freq=1,max. words=Inf,col=rainbow(length(dd$freq)))#畫詞云圖如圖3
圖3 青少年機(jī)器人學(xué)習(xí)微博詞云圖
二是本文層次聚類:先進(jìn)行本特征集抽取,然后計(jì)算文本集中所有文本的相似度,并建立相似度矩陣,最后進(jìn)行層次聚類。其關(guān)鍵代碼[12]和數(shù)據(jù)圖解如下:
library(fpc)#加載fpc聚類分析包
Мa(chǎn)trixForCluster<-as.matrix(dtm)#矩陣轉(zhuǎn)換
Мa(chǎn)trixWeiboForCluster<-t(Мa(chǎn)trixForCluster)#矩陣轉(zhuǎn)置
pamRes<-pamk(Мa(chǎn)trixWeiboForCluster,metric="manhattan")
#pamk聚類分析
pamResult<-pamRes$pamobject;plot(pamResult,color=F,labels=3,lines=0,cex=0.7,col.clus=1,col.p=pamResult$cluster-
圖4 青少年機(jī)器人學(xué)習(xí)微博fpc聚類分析圖(局部)
ing)#畫聚類圖如圖4訓(xùn)機(jī)構(gòu)宣傳為紅色聚類圈;機(jī)器人代購機(jī)構(gòu)為黑色聚類圈,對機(jī)器人教育的評論為綠色聚類圈,藍(lán)色聚類圈意義還不明確。最重要的是:兩圖中均未解析出機(jī)器人教學(xué)有關(guān)內(nèi)容。如“傳感器”、“巡線”、“PID”和“程序”等。
微博的可視化研究是人工智能研究的重點(diǎn)之一,R語言使用起來簡潔、直觀,其文本可視化應(yīng)用也能讓人直觀地認(rèn)識數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)中規(guī)律。但限于研究能力,微博的傳播路徑分析、文本情感態(tài)度和內(nèi)容隨時(shí)間的變化等問題沒有在本次研究中得以體現(xiàn)。本次對青少年機(jī)器人學(xué)習(xí)微博的分析可以得出如下結(jié)論:青少年機(jī)器人學(xué)習(xí)的輿情由教育官方媒體和企業(yè)培訓(xùn)機(jī)構(gòu)主導(dǎo);經(jīng)濟(jì)力量決定著參與討論的程度;微博不是學(xué)習(xí)內(nèi)容的主陣地。
[1]微博_百度百科[DB/OL].http://baike.baidu.com,2014-5-10.
[2]張藝帆,基于大數(shù)據(jù)的中文輿情分析[DB/OL].http://www.ibm.com/developerworks/cn/data/library/bd-1404optionanalysis/index.html,2014-5-10.
[3]韓運(yùn)榮,李笑欣.如何洞察微博影響力—幾種可視化微博傳播分析工具的應(yīng)用與比較[J].新聞?dòng)浾撸?014(7):27-34.
[4]鐘志強(qiáng).基于R語言k-最近鄰法數(shù)字模式識別研究[J].電腦與電信,2014(8):74-75.
[5]袁海,陳康.基于中文文本的可視化技術(shù)研究[J].電信科學(xué),2014(4):114-121.
[6]朱雪寧.微博名人那些事兒[DB/OL].http://cos.name/2013/ 08/something_about_weibo,2014-5-10.
[7]李艦.用R來給微博添把火[DB/OL].http://cos.name/2011/ 08/fire-weibo-with-r,2014-5-10.
[8]Liyun.微博用戶影響力評價(jià)的H-Index指數(shù)[DB/OL]http:// cos.name/2013/04/weibo-influence-hindex,2014-5-10.
[9]朱雪寧.粉絲地圖的可視化[DB/OL].http://cos.name/2013/ 06/weibo-fans-map-visualization,2014-5-10.
[10]數(shù)據(jù)科學(xué)與R語言.中國國內(nèi)航線信息的可視化[DB/OL].http://xccds.github.io,2014-5-10.
[11]郝智恒.新浪微博文本分析初探v0.1[DB/OL].http://cos.name/2013/01/analysis-of-weibo,2014-5-10.
Visualization Technology Research on Robot Learning Мicro-blog Based on R Language
Zhong Zhiqiang
(Anshan Normal University,Anshan 114007,Liaoning)
tract】 R language is used in the visualization research on robot learning micro-blog which has less Awareness and small forwarding quantity in this paper.The conclusion is that education official media and enterprises training institutions lead to the public opinion on robot learning;economic force determines the degree of discussion;micro-blog is not the main field that learners communicate studying content.
words】 micro-blog;visualization technology;R language;robot learning
鐘志強(qiáng),男,遼寧遼陽人,碩士,講師,研究方向:人工智能教育。
本文為2013年度鞍山市哲學(xué)社會科學(xué)研究立項(xiàng)課題,課題名稱:鞍山市中小學(xué)機(jī)器人教育問題與對策;項(xiàng)目編號:as20133061。2014年度遼寧經(jīng)濟(jì)社會發(fā)展立項(xiàng)課題,課題名稱:遼寧省青少年機(jī)器人教育研究;項(xiàng)目編號:2014LSLKTJYX-01。
從圖3,“Мindstorms”、“設(shè)計(jì)”、“教育”、“創(chuàng)意”、“培訓(xùn)”等作為高頻詞匯可知:樂高公司的Мindstorms培訓(xùn)教育應(yīng)該是微博交流的核心話題。從圖4,兩個(gè)成分的聚類分析對微博話題分為四類,盡管解釋力為65.24%還不能較好地解釋全部聚類意義,但仍然能夠解釋部分內(nèi)容。如:機(jī)器人教育培