首页 > 其他分享 >R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据

时间:2023-11-01 11:34:02浏览次数:28  
标签:rating res kmeansmod kmeans 词云 result 维度 文本 聚类分析

互联网时代,大量的新闻信息、网络交互、舆情信息以文本形式存储在数据库中,如何利用数据分析和文本挖掘的算法,将海量文本的价值挖掘出来,成为我们团队近期的一个研究方向,本案例就是我们的一个尝试。

文本聚类其实也就是聚类分析在文本方向上的应用,首先我们要把一个个文档的自然语言转换成数学信息,这样形成高维空间点之后再去计算点与点之间的距离,然后将这些距离比较近的聚成一个簇,这些簇的中心成为簇心。而我们做的就是保证簇内点的距离足够近,簇与簇的距离足够远。

本文将通过R语言帮助客户来实现文本挖掘、聚类和词云可视化技术,体验一下舆情分析的魅力。

原始评论数据

本文获取上海玛雅水公园景区评论数据共计1692条数据:

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_数据

读取数据

 

 

pinglun=read.xlsx("玛雅景区数据5.8.xlsx")

文本预处理

 

 

res=pinglun1[pinglun1!=" "];  
#剔除通用标题  
# res=gsub(pattern="[專賣店【未拆封順豐】|<b>|</b>]+"," ",res);   
#剔除特殊词  
res=gsub(pattern="[我|你|的|了|是]"," ",res);       
#清理文本里的回车!否则每个回车就会被识别成一段文本
res=gsub("\n","",res)

分词+频数统计

 

 

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

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

 

 

d=subset(d, nchar(as.character(d$word))>1 & d$freq>=100)

输出关键词结果

 

 

write.table(d, file="/worldcup_keyword.txt", row.names=FALSE)

绘制词汇图

 

 

wordcloud(d$word,d$freq,random.order=FALS

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_聚类_02

kmeans聚类部分

转换成评价矩阵

 

 

rating=matrix(0,length(res1),dim(d)[1])#生成评价矩阵

for(i in 1:length(res1)){
  words=unlist(lapply(X=res1[i], FUN=segmentCN));#对每一条记录分析获得词频  
#输出评价矩阵###############################
write.table(rating, file="评价矩阵.txt", row.names=FALSE)

对评价矩阵进行k均值聚类

 

 

kmeans(rating,5)#对评价矩阵进行k均值聚类

词云可视化

 

 

#第一个类别################################
mycolors <- brewer.pal(8,"Dark2")#设置一个颜色系:
wordcloud(colnames(result)[-c(115,116)],freq1[

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_数据_03

第二个类别

 

 

wordcloud(colnames(result)[-c(115,116)],f

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_数据_04

第三个类别

 

 

wordcloud(colnames(result)[-c(115,116)],freq3[-c(

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_数据_05

1.被提及了哪些维度

第一个维度是指开心好玩,可以认为是景点的可玩性程度。 第二个维度是 排队的关键词 另外包含时间,因此可以认为是景点的秩序问题 第三个维度是项目 公园 喇叭 热带 漂流等关键词,可以认为是景点的游玩项目维度.

2.各维度关注度如何(即被提及的频率)

 

 

#第一类的关注度 可玩性程度。
guanzhu1=length(which(result$kmeansmod.cluster==1))
#第二类的关注度 景点的秩序问题

guanzhu2=length(which(result$kmeansmod.cluster==4))
#第三类的关注度 游玩项目维度

guanzhu3=length(which(result$kmeansmod.cluster==3))

3.各维度的满意度指数

 

 

#第一类的满意度指数 可玩性程度。
manyi1=sum(na.omit(result$pinglun.星级.1.nrow.rating.. [which(result$kmeansmod.cluster==1)]))

#第二类的满意度指数 景点的秩序问题
manyi2=sum(result$pinglun.星级.1.nrow.rating.. [which(result$kmeansmod.cluster==4)])
 
#第三类的满意度指数 游玩项目维度
manyi3=sum(result$pinglun.星级.1.nrow.rating.. [which(result$kmeansmod.cluster==3)])

4.三张图:各维度关注度,各维度满意度,词云

 

 

colnames(manyi)=c("可玩性程度","景点的秩序问题","游玩项目维度")
barplot(manyi,ylab="满意度")

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_聚类_06

R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_数据_07


R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据_文本挖掘_08


标签:rating,res,kmeansmod,kmeans,词云,result,维度,文本,聚类分析
From: https://blog.51cto.com/u_14293657/8120307

相关文章

  • Python生成词云
    一、词云生成的基本原理词云是一种可视化展示文本内容的工具,用于显示文本中出现次数较高的关键词。其主要思想是将文本中频繁出现的词汇以视觉化的方式展现出来,可以很快地帮助人们了解文本的主要内容和关键信息。生成词云的基本原理是,首先需要解析文本中的关键词,统计其出现频率,然后......
  • Python中文分词、词频统计并制作词云图
    中文分词、词频统计并制作词云图是统计数据常用的功能,这里用到了三个模块快速实现这个功能。中文分词、词频统计importjiebafromcollectionsimportCounter#1.读取文本内容并进行分词withopen('demo.txt',mode='r',encoding='gbk')asf:report=f.read()words......
  • R语言上市公司经营绩效实证研究 ——因子分析、聚类分析、正态性检验、信度检验|附代
    全文链接:http://tecdat.cn/?p=32747原文出处:拓端数据部落公众号随着我国经济的快速发展,上市公司的经营绩效成为了一个备受关注的话题。本文旨在探讨上市公司经营绩效的相关因素,并运用数据处理、图示、检验和分析等方法进行深入研究,帮助客户对我国45家上市公司的16项财务指标进行......
  • 据类方法之:KMeans聚类分析
    书接上回,在上一篇博客中完成了数据的降维分析,这里在降维后的基础上继续进行聚类分析,使用前2个PC进行KMeans据类并可视化。fromsklearn.clusterimportKMeansfromcollectionsimportCounter#语言定义颜色和画布colors=['b','g','r','y','k','c','m�......
  • 【小白必看】Python词云生成器详细解析及代码实现
    前言本文介绍了如何使用Python编写代码来生成词云图。在生成词云图之前,我们需要导入一些必需的库,包括numpy、wordcloud、PIL、matplotlib.pyplot和openpyxl。其中,numpy用于数据处理,wordcloud用于生成词云,PIL用于图像处理,matplotlib.pyplot用于在笔记本中显示图片,openpyxl用于读......
  • 终于实现python的词云啦~~~
    1、准备好一个txt文件(我是直接在python项目里面创建了一个txt文件)2、编写代码分词,并连接到Navicat的mysql数据库,将分词之后的数据导入进去:importjiebaimportnumpyasnpimportpymysqltxt=open("hlm.txt","r",encoding='utf-8').read()words=jieba.lcut(txt)#进行......
  • Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化
    全文链接:https://tecdat.cn/?p=33821原文出处:拓端数据部落公众号混合模型是另一种生成模型,它将数据点的分布建模为多个单独分布的组合("混合")。客户常见的混合模型类型是高斯混合模型,其中数据生成分布被建模为多个高斯分布的组合。  importnumpyasnpimportmatplo......
  • sklearn KMeans包结果无法复现
    随机问题numpy等随机数使用numpy等随机数时,一定要注意随机函数会首到上次随机结果的影响。e.g.#如果代码如下:importnumpyasnpnp.random.seed(20)#为numpy设置随机种子foriinrange(10):x=np.random.random()print(x)会发现每次随机的结果不一致,这是......
  • python生成词云图
    importwordcloudimportmatplotlib.pyplotaspltfromimageioimportimreadprint([1,2]+[3,4])#创建一个词云对象wc=wordcloud.WordCloud()img=imread(r'F:\PyCharm\test\bg.jpg')#要生成词云的文本text='''Whycanpre-trainedlanguagem......
  • R语言文本挖掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化|附代码数据
    全文链接:http://tecdat.cn/?p=32307原文出处:拓端数据部落公众号互联网时代,大量的新闻信息、网络交互、舆情信息以文本形式存储在数据库中,如何利用数据分析和文本挖掘的算法,将海量文本的价值挖掘出来,成为我们团队近期的一个研究方向,本案例就是我们的一个尝试。文本聚类其实也就......