全文链接: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
点击标题查阅往期内容
自然语言处理NLP:主题LDA、情感分析疫情下的新闻文本数据
左右滑动查看更多
01
02
03
04
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类词频云图