R语言分析老九门到底谁是主角

浏览: 4807

本人最近看了老九门,两大男主角都是颜值担当,我的朋友中有喜欢佛爷(陈伟霆),有的喜欢二爷(张艺兴)。从我的朋友中发现更多人倾向于张艺兴扮演的二爷,他们认为二爷(张艺兴)是男1号。但是从出场次数和演员表排名佛爷(陈伟霆)都在二爷(张艺兴)之前。我一直认为佛爷(陈伟霆)是主演,也让我对这二位谁是主角产生的好奇,于是决定用R语言进行文本统计一下,证明谁是男1,谁是男2。目前关于R文本挖掘的方法已经有很多了,这里再简单介绍一下。进而论述结果。代码如下:

#####首先,加载所需要的工具包

######注意rJava需要jdk环境

library(rJava) 
library(Rwordseg) 
library("RColorBrewer") 
library("wordcloud")

##########接下来要自定义加载词,因为二月红并不是传统意义的词语,如果不单独加载会被分成二月,红。两个词。

##########加载方法有很多,本人选择最简单的加载单个词语方法insertWords,deleteWords为删除该词

####insertWords("二月红")

###deleteWords("二月红")

 #接下来就是正常的统计词频,小说数据在附件

myfile<-read.csv(file.choose(),header=FALSE)
myfile.res <- myfile[myfile!=" "] 
myfile.words <- unlist(lapply(X = myfile.res,FUN = segmentCN))
myfile.words <- gsub(pattern="http:[a-zA-Z\\/\\.0-9]+","",myfile.words)
myfile.words <- gsub("\n","",myfile.words) 
myfile.words <- gsub(" ","",myfile.words)
myfile.words<-subset(myfile.words,nchar(as.character(myfile.words))>1)
myfile.freq <- table(unlist(myfile.words)) 
myfile.freq <- rev(sort(myfile.freq)) 
myfile.freq <- data.frame(word=names(myfile.freq), freq=myfile.freq);   
myfile.freq2=subset(myfile.freq, myfile.freq$freq>=2) 

#####从统计结果,可以看出佛爷出现的次数的确大于二月红

##将统计结果在画出词云展现一下,目前词云的形状可视化多种多样,本人用最简单的方式进行展现

#画图

mycolors <- brewer.pal(8,"Dark2") 
windowsFonts(myFont=windowsFont("华文彩云")) 
wordcloud(myfile.freq$word,myfile.freq$freq,min.freq=3,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont")

Clipboard Image.png

从可视化展现看出佛爷字体大小大于二月红。

因此,从原著来讲,佛爷为男1,二月红为男2。

推荐 7
本文由 张聪 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

12 个评论

这样也可以呀
代码部分可以弄插入代码格式看着更舒服。
张聪

张聪 回复 梁勇

好的
最近都玩R
简单,明了,实用
楼主方便把词云的csv文件 共享下
最后一句执行有错,改成wordcloud(myfile.freq$word,myfile.freq$freq.Freq,min.freq=3,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont")
请楼主指教哈~
如果时间充裕,还可以增加些维度去分析,就会非常深层了,加油
wordcloud(myfile.freq$word,myfile.freq$freq.Freq,min.freq=3,random.order=FALSE,random.color=FALSE,colors=mycolors,family="myFont"), 最后一句有错,改了一下
只有900多行的原始数据分析的准不准啊
张聪

张聪 回复 boshi

谢谢,这里是简单的一个分析,从分析角度,很大的空间等待着优化。
boshi

boshi 回复 张聪

不客气,文章流程很好,若是深度分析可能会需要消耗一些时间才有意外收货。

要回复文章请先登录注册