最近《长城》这部电影很火,争议也很大,我根据豆瓣底部的点评来分析这部电影在观众眼中是怎样的。
此为长城短评链接。
下面给出代码:
library(XML)
library(RCurl)
library(stringr)
library(Rwordseg)
library(tm)
library(wordcloud2)
library(wordcloud)
url <- "https://movie.douban.com/subject/6982558/comments?sort=new_score&status=P"
html_form <- readLines(url,encoding="UTF-8")
a <- c(26,52,80,114,136,161,187)
for(i in a){
urls <- paste("https://movie.douban.com/subject/6982558/comments?start=",i,
"&limit=20&sort=new_score&status=P")
html_forms <- readLines(urls,encoding="UTF-8") ##如果要使用htmlParse,可以用parsed <- htmlParse(getURL(url = url)),
##xpath <- "//p[@class='']"(这里需要注意,@class=后只能用'',不能用双引号,否则出错)
##content <- xpathSApply(parsed,xpath,xmlValue)
html_form <- c(html_form, html_forms)
}
content <- html_form[str_detect(html_form,'<p class="">')]
contents <- str_sub(content, start=21)
segment <- segmentCN(contents)
segment_unlist <- unlist(segment)
corpus <- Corpus(VectorSource(segment_unlist))
dm_mat <- DocumentTermMatrix(corpus)
dmmat <- as.matrix(dm_mat)
dmmat_colsum <- colSums(dmmat)
df <- data.frame(name=names(dmmat_colsum),
freq=as.numeric(dmmat_colsum),stringsAsFactors = F)
wordcloud2(df,shape="R")
df[which.max(df$freq),]
wordcloud(df$name,df$freq,min.freq = 2, random.color = T,
colors=rainbow(24),scale = c(4,1))
这个是wordcloud2画的,但少了一个最大的“好莱坞”,在放大时就可见。
这是在放大时出现了“好莱坞”一词
下面这张图使用wordcloud画出:
还是wordcloud2画出来的好看,不是吗?
从这三张图中也可看出评论中的一些端倪。