R——启程——豆瓣影评分析
专业统计的我,自然免不了学R的,今天仔细看了这篇教程(感谢学姐的推荐@喜欢算法的女青年),就学着用R仿照着做一个,作为R语言学习的起点吧。
影评数据是用python爬的,之后会在python爬虫系列补充上爬虫程序。
这里选取的影片是《完美陌生人》,豆瓣评分挺高的,并未看过。。。。爬好的数据为了方便同样写入xlsx文件。这里直接将xlsx后缀改为csv,方便导入R。
原始的EXCEL文件是这样的:

接下来,就是导入数据,并分析了,这里差不多全是抄的上面提到教程的代码,就贴一下,不在赘述。
data <- read.csv("完美陌生人.csv", header=T)
# 日期处理
date <- as.Date(data$date)
plot(table(as.Date(date)), xlab = "评论日期",
     ylab = "评论数量", main = "《完美陌生人》豆瓣短评评论趋势", col = 2:5)
star <- data$star
starx <- sort(table(star), decreasing = T)
na <- length(star) - sum(starx)
# paste拼接字符串; round控制小数位数
print(paste("参与评分人数--->",sum(starx),"约占总人数的",round(sum(starx)/length(star),4)))
rate = starx/sum(starx)
par(mar = c(0,1,2,1))
pie(rate, labels = paste(names(rate)," 星 ",
    format(rate * 100,digits=3),"%",sep=''),col=rainbow(5))
输出如下:

输出打印信息:

在按照教程操作时,遇到一个问题,就是那个Rwordseg包无法Install,这里请参考这篇文章,感谢作者,问题得到解决。
这是关于分词的代码:
# 分词分析
comment <- data$comment
short <- data[is.na(comment)&nchar(comment)>1,]
comment <- as.character(data$comment)
cmt.len <- nchar(comment) par(mar=c(5,2,2,1))
hist(cmt.len,freq=F,ylim=c(0,0.025),col = "goldenrod2",
xlab="短评文本的长度",main="短评长度的分布直方图")
lines(density(cmt.len), col = 'tomato') f_cut <- function(x) {
library(Rwordseg)
unlist(strsplit(segmentCN(x, nature = T), " "))
}
# 定义词语长度至少为2
word_cut <- function(x, n = 1) {
x <- gsub("[a-z]|\\.", "", x)
x[nchar(x) > n]
}
comment.words <- lapply(comment, f_cut)
words <- lapply(comment.words, word_cut, 1) # 去掉words词汇量为0的文本
cw.len <- unlist(lapply(words,length))
short2 <- data[cw.len > 0,] star2 <- short2$star
words2 <- words[cw.len > 0]
cw.len <- cw.len[cw.len > 0] par(mar=c(5,2,2,1))
hist(cw.len,freq=F,ylim=c(0,0.096),col='chocolate2',
main="短评词汇数量分布直方图",xlab="短评词汇数量")
lines(density(cw.len), col="red")
输出如下:

在看到词云时,实在有些懵,打算另寻其他方法,于是就有了wordcloud2的登场。
# 词频统计
all.words <- unlist(words2)
all_freq <- as.data.frame(table(all.words))
wordcloud2(all_freq)
简单几行代码搞定!而且效果也很好。
all_freq的格式:

最后词云图:

词云图也是可以显示数据的:

到这里,算是对影评有了一个初步的分析了,R果然强大啊。
R——启程——豆瓣影评分析的更多相关文章
- 通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】
		
久旱逢甘霖 西安连着几天温度排行全国三甲,也许是<哪吒之魔童降世>的剧组买通了老天,从踩着风火轮的小朋友首映开始,就全国性的持续高温,还好今天凌晨的一场暴雨,算是将大家从中暑边缘拯救回来了 ...
 - python爬取花木兰豆瓣影评,并进行词云分析
		
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
 - 【python数据挖掘】使用词云分析来分析豆瓣影评数据
		
概述: 制作词云的步骤: 1.从文件中读取数据 2.根据数据追加在一个字符串里面,然后用jieba分词器将评论分开 3.设置WordCloud词云参数 4.保存最后的结果 数据:使用爬取的豆瓣影评数据 ...
 - python3爬虫再探之豆瓣影评数据抓取
		
一个关于豆瓣影评的爬虫,涉及:模拟登陆,翻页抓取.直接上代码: import re import time import requests import xlsxwriter from bs4 imp ...
 - Scrapy 通过登录的方式爬取豆瓣影评数据
		
Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...
 - Python爬取《冰雪奇缘2》豆瓣影评
		
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 刘铨@CCIS Lab PS:如有需要Python学习资料的小伙伴可 ...
 - python爬虫及结巴分词《攀登者》影评分析
		
<攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...
 - Python爬虫之抓取豆瓣影评数据
		
脚本功能: 1.访问豆瓣最受欢迎影评页面(http://movie.douban.com/review/best/?start=0),抓取所有影评数据中的标题.作者.影片以及影评信息 2.将抓取的信息 ...
 - 【python数据挖掘】爬取豆瓣影评数据
		
概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...
 
随机推荐
- IDE显示无法打开源文件时解决方案
			
解决方法:加上具体地址信息将 #include <qwidgetresizehandler_p.h> 改为 #include <C:\Users\INnoVation\Deskt ...
 - ASP.NET服务器控件数据绑定总结
			
using System; using System.Collections.Generic; using System.Text; using System.Web.UI.WebControls;/ ...
 - 创建交货单/外向交货BAPI_OUTB_DELIVERY_CREATE_SLS/STO
			
FUNCTION Z_SD_CREATE_DN. *"-------------------------------------------------------------------- ...
 - JS比较好用的一些方法搜集
			
JS比较好用的一些方法搜集 Math.ceil(x) -- 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入 Math.floor(x)--返回小于等于数字参数的最大整数,对数字进行下舍入 ...
 - cookie与sessionID之间的关系实验
			
上一篇介绍了cookie,这里来看看cookie与sessionID之间有什么关系. 一.编写测试用例代码 新建一个servlet如下: public class SessionServlet ext ...
 - bat产生随机数并复制文件及生成文件列表
			
有这样一个场景:我需要将同一个文件复制为上千个文件,并且文件名应为随机数.为了简单起见,不想写程序,直接写个BAT来,方便,简单,易用: 1. 搞定用BAT产生32位随机数,存为变量并使用,保存以下代 ...
 - VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示
			
Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E&qu ...
 - lazyload 分页加载
			
http://www.neoease.com/lazy-load-jquery-plugin-delay-load-image/ echo $d['pic']; ?>" src=&qu ...
 - Python背景色与语法高亮主题配置
			
使用python idle的人恐怕都无法忍受默认的白色背景,及其语法高亮主题. 大家更倾向于使用黑色背景. 用户目录 的.idlerc 目录: 下面的各个系统下对应的该文件的位置: 在Linux系列系 ...
 - localStorage
			
length:唯一的属性,只读,用来获取storage内的键值对数量. key:根据index获取storage的键名 getItem:根据key获取storage内的对应value setItem: ...