zl程序教程

您现在的位置是:首页 >  Java

当前栏目

R语言对耐克NIKEID新浪微博数据K均值(K-MEANS)聚类文本挖掘和词云可视化

2023-02-18 16:44:20 时间

全文链接:http://tecdat.cn/?p=31048

原文出处:拓端数据部落公众号

2009年8月,新浪微博(micro-blog)开始服务,随后各家微博服务在国内得到广泛传播和应用"。微博具有文本信息短(140字包括标点符号)、词量少、裂变式传播、传播速度快、用词不规范等特征,使原文本可视化研究技术框架中的聚类或分类方法提取热点话题变得困难。

R语言主要用于统计分析与数据可视化,大量新兴研究领域算法不断更新,在人工智能领域有广泛的应用,R语言亦可用相对简单地完成微博可视化工作。

我们最近有一个很棒的机会与一位伟大的客户合作,要求构建一个耐克微博聚类算法。本文利用R语言完成对微博相应分析。

所要分析的数据对象为耐克nike微博热搜话题数据,数据样式如下图所示:

查看数据

文本预处理

res=pinglun1[pinglun1!=" "];  

剔除通用标题

res=gsub(pattern="NIKEiD"," ",res);   
res=gsub(pattern="http://t.cn/"," ",res); 
res=gsub(pattern="com"," ",res); 
res=gsub(pattern="耐克"," ",res); 
res=gsub(pattern="官网"," ",res); 
res=gsub(pattern="中国"," ",res); 

分词+频数统计

keyword=lapply(X=res, FUN=segmentCN)
words=unlist(keyword);  

绘制词汇图

library("wordcloud")

mycolors <- brewer.pal(8,"Dark2")#设置一个颜色系:
wordcloud(d$word,d$freq
d2=data.frame(word=class2$word, freq=class2$freq);  

# 过滤掉1个字和词频小于100的记录

K均值聚类K-means

for(i in  1:nrow(cldata)){

   for(j in  unique(d$word) ){

    if(j %in%  unlist(keyword[i]))cldata[i,which(colnames(cldata) == j)]=1

  }

}

 

cl=kmeans(cldata,3)

聚类数据可视化

#cluster 1

y1=cldata[cldata$cluster==1,]

 

#cluster 2

 

y2=cldata[cldata$cluster==2,]

 

 #cluster 3

 

y3=cldata[cldata$cluster==3,]

1类词频云图

words=unlist(keyword[cl$cluster==1]);

2类词频云图

words=unlist(keyword[cl$cluster==2]);

3类词频云图