【大数据部落】用R进行网站评论文本挖掘聚类
来源:互联网 发布:淘宝里猜你喜欢在哪里 编辑:程序博客网 时间:2024/05/17 18:23
对于非结构化的网站中文评论信息,r的中文词频包可能是用来挖掘其潜在信息的好工具,要分析文本内容,最常见的分析方法是提取文本中的词语,并统计频率。频率能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多。词语提取后,还可以做成词云,让词语的频率属性可视化,更加直观清晰。
通过一系列的文本处理和高频词汇的提取,最后结合聚类,我们可以得到如下的可视化结果。
第一类客户:
第二类
第三类
这是根据某网站成交评论制作的可视化词云,词频的统计,分词和词云的制作都是用R,最后做了聚类,将不同的用户聚成了3个类别。这个图能很直观看到,每个类别的客户的特点。不过这张图中的词语还需要进行优化,因为有些术语或词组可能被拆分成了更小的词语,没有展示出来,为了演示,我就没再花更多时间去优化词库,主要介绍分析的过程与方法。
# ==
res=pinglun1[pinglun1!=" "];
#剔除通用标题
res=gsub(pattern="[專賣店【未拆封順豐】||]+"," ",res);
#剔除特殊词
res=gsub(pattern="[我|你|的|了|是]"," ",res);
#清理文本里的回车!否则每个回车就会被识别成一段文本
res=gsub("\n","",res)
###############
library(r;
library(Rwordseg);
# ==
words=unlist(lapply(X=res, FUN=segmentCN));
word=lapply(X=words, FUN=strsplit, " ");
v=table(unlist(word));
#
v=rev(sort(v));
d=data.frame(word=names(v), freq=v);
#
d=subset(d, nchar(as.character(d$word))>1 & d$freq>=100)
# ==
#############绘制词汇图####################3
library("wordcloud")
mycolors <- brewer.pal(8,"Dark2")#设置一个颜色系:
wordcloud(d[1:30,]$word,d[1:30,]$freq,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")
############kmeans聚类#######################
res1=res[1:10000]#筛选500个样本做测试
words=unlist(lapply(X=res1, FUN=segmentCN));
word=lapply(X=words, FUN=strsplit, " ");
v=table(unlist(word));
#
v=rev(sort(v));
d=data.frame(word=names(v), freq=v);
#
d=subset(d, nchar(as.character(d$word))>1 & d$freq>=100)
rating=matrix(0,length(res1),dim(d)[1])#生成评价矩阵
colnames(rating)=d[,1]#给矩阵列命名
for(i in 1:length(res1)){
}
kmeans(rating,5)#对评价矩阵进行k均值聚类
colnames(result)=d[1:30,1]
###分类别
c1=result[result[,31]==1,]
c2=result[result[,31]==2,]
c3=result[result[,31]==3,]
freq1=apply(c1,2,sum)[-31]
freq2=apply(c2,2,sum)[-31]
freq3=apply(c3,2,sum)[-31]
library("wordcloud")
mycolors <- brewer.pal(8,"Dark2")#设置一个颜色系:
wordcloud(colnames(result)[-17],freq1[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")
wordcloud(colnames(result)[-17],freq2[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")
wordcloud(colnames(result)[-17],freq3[-17],random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont3")
######算法比较
y=rbind(matrix(rnorm(10000,mean=2,sd=0.3),ncol=10),matrix(rnorm(10000,mean=1,sd=0.7),ncol=10))#生成两类随机数合并
colnames(y)=c(paste("y",1:10))#变量名
#Kmeans算法聚类
cl=kmeans(y,2)
pch1=rep("1",1000)#类标号
pch2=rep("2",1000)
plot(y,col=cl$cluster,pch=c(rep("1",1000),rep("2",1000)),main="kmeans算法聚类图")#每个类样本
points(cl$centers,col=3,pch="*",cex=3)#每个类中心
最后可以得到直观的用户的聚类特征从而进一步进行研究。(有问题欢迎交流讨论
- 【大数据部落】用R进行网站评论文本挖掘聚类
- 【大数据部落】基于LDA主题模型聚类的商品评论文本挖掘
- 【大数据部落】用R语言挖掘Twitter数据
- 【大数据部落】用R挖掘Twitter数据
- 【大数据部落】R语言对推特数据进行文本情感分析
- 【大数据部落】WEKA文本挖掘分析垃圾邮件分类模型
- 使用R进行文本数据挖掘
- 【大数据部落】r语言电商网站爬虫
- 【大数据部落】基于R的关联数据挖掘技术在煤矿隐患管理
- 【大数据部落】文本挖掘:LDA模型对公号文章主题分析
- 【大数据部落】文本挖掘:twitter推特LDA主题情感分析
- 【大数据部落】R语言逻辑回归logistic regression对用户收入进行预测
- 【大数据部落】R语言GAM(广义相加模型)对物业耗电量进行预测
- 用R进行文本挖掘与分析:分词、画词云【2】
- 【大数据部落】NBA体育决策和数据挖掘分析
- 用R做中文文本分析--用R进行文本挖掘与分析:分词、画词云
- R语言做文本挖掘 Part3文本聚类
- R语言做文本挖掘 Part3文本聚类
- Nginx安装与负载均衡配置
- 最大和
- js判断全选与全不选以及,js全不选时全选按钮会被勾掉
- NYOJ 23 取石子巴什博奕
- Python3安装geohash
- 【大数据部落】用R进行网站评论文本挖掘聚类
- cocos2dx获取系统当前时间
- 判定一个数独是否有效。
- Linux的吉祥物企鹅的名字?
- 【大数据部落】基于决策树的银行信贷风险预警模型
- 微信小程序推荐大全之201~300个
- git add详解
- undefined symbol: node_module_register 错误原因
- POJ 1067 取石子 Wythoff 博弈