【主要成果图】
一、分析需求
对某一天发表#周杰伦#的部分超话微博进行爬取,进行词频和转发量的分析
二、关于发送超话的微博等级
从下图中可以看到,发布超话最多的用户是普通用户,点赞量和微博评论量最多的金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后偶像的事实。同时可以看出超话中出现了很多流行用语,比如被迫营业、冲冲冲等等。同时还有奶茶、减肥等周杰伦热梗。
网友评论