美文网首页
【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