美文网首页
【R语言】周杰伦超话微博等级与词频分析

【R语言】周杰伦超话微博等级与词频分析

作者: 云落青岚 | 来源:发表于2019-10-23 00:25 被阅读0次

【主要成果图】

一、分析需求

对某一天发表#周杰伦#的部分超话微博进行爬取,进行词频和转发量的分析

二、关于发送超话的微博等级

从下图中可以看到,发布超话最多的用户是普通用户,点赞量和微博评论量最多的金V用户(金V用户的申请门槛就是每月浏览量超过1000万的微博用户,所以和表现契合),但转发量最多的蓝V用户(官方账号,证明大家追星依旧理性,更愿意转发官方账号信息)。另外悬殊的数量可以看出,微博中最少的蓝V和金V用户,贡献了最大的微博用户互动。

三、分析微博评论量的影响因素

用决策树模型,分析微博评论量和微博等级、点赞数、转发量有何关系

运行R代码:

setwd("C:/Users/emera/Desktop/ jay_csv")

jay_mircoblog_data <- read.csv('jay.csv')

x <- data.frame(jay_mircoblog_data)

head(x,5)

summary(x)

str(x)

#决策树

library(rpart)

library(rpart.plot)

data.tree <- rpart(微博评论量~微博等级+微博点赞数+微博转发量,data=x)

rpart.plot(data.tree)

得到下图,图中我们可以看到,微博评论量主要和微博点赞数和微博转发量相关。

微博评论数、转发数、点赞数三者看似有较大的相关性,我们识别一下这三个变量之间是否具有多重相关性,R代码如下,执行结果如图,各变量之间GVIF小与十,我们排除他们之间的多重共线性,判断这两个变量是分别对评论数作出影响的:

#线性回归模型

data_linear_regression <- lm(微博评论量~微博等级+微博点赞数+微博转发量,data=x)

summary(data_linear_regression)

#install.packages("car")

library(car)

#查看自变量膨胀因子看是否具有多重相关性

vif(data_linear_regression)

我们进一步拟合微博等级对评论的影响,看是否具有较高的相关性,得到结果如图。

#微博等级的评论量的影响

vip_level_linear_regression

<- lm(微博评论量~微博等级,data=x)

summary(vip_level_linear_regression)

图中我们可以看到,以微博黄V为参考点0,微博金V和微博蓝V对评论数的影响系数分别是97.4和26.4,有趣的是微博达人和普通用户比,微博达人的评论系数更低。我们可认为普通用户可能比微博达人更重视和朋友之间的互动,而微博达人由于每天转发/自创微博量大,和好友的互动反而不及普通用户频繁。

四、对微博内容进行分析,找出超话中最受大家关注的词语

运用R语言自然语言处理和词云绘制函数包制作

#周杰伦超话词云#

#'jiebaR','jiebaRD'分词

#'wordcloud2'绘制词云

#install.packages('jiebaR')

#install.packages('jiebaRD')

#install.packages('wordcloud2')

#install.packages("tm")

#install.packages("NLP")

library(jiebaRD)

library(jiebaR)

library(wordcloud2)

library(NLP)

library(tm)

jay_data <- read.csv("C:/Users/emera/Desktop /jay_csv/jay.csv")

jay_word <- jay_data$微博内容

#建立分词模型

mixseg <- worker("mix")

#修改factor数据类型为character

class(jay_word)

jay_word_chara <- as.character(jay_word)

class(jay_word_chara)

#开始分词

jay_word_segment <- segment(jay_word_chara,mixseg)

jay_word_segment

stopwords <- read.table("C:/Users/emera/Desktop/ ay_csv/jay_stopwords.txt",sep="\n",encoding="UTF-8")

#查看stopwords类型

#class(stopwords)

#转stopwords数据类型

stopwords <- as.vector(stopwords[,1])

#head(stopwords,5)

#removeWords()在包tm下

#jay_words_result <- removeWords(jay_word_segment,stopwords)

# jay_word_segment1 <- as.character(jay_word_segment)

# stopwords1 <- as.character(stopwords)

class(jay_word_segment)

class(stopwords)

jay_words_result <- tm_map(jay_word_segment,removeWords,stopwords)

# 看看是否成功去除

# jay_word_segment

# jay_words_result

#词频统计

freq <- table(jay_words_result)

#查看词频统计结果

freq

#绘制词云

wordcloud2(freq,shape = 'star')

# freq_nostop <- table(jay_word_segment)

# #查看词频统计结果

# freq_nostop

# #绘制词云

# wordcloud2(freq_nostop)

为了更直观的看出粉丝在讨论什么,停用词中把超话和周杰伦两个频次极高的词都停用了,得到分析结果如下

我们可以看到,周杰伦超话中经常提及的内容包括粉丝、青春、阿姨、偶像等等,符合周杰伦80、90后偶像的事实。同时可以看出超话中出现了很多流行用语,比如被迫营业、冲冲冲等等。同时还有奶茶、减肥等周杰伦热梗。

相关文章

网友评论

      本文标题:【R语言】周杰伦超话微博等级与词频分析

      本文链接:https://www.haomeiwen.com/subject/pnfhvctx.html