R语言《红楼梦》文本挖掘:词频统计、词云可视化及前后对比分析

作为中国古典文学的瑰宝,《红楼梦》具有极高的文学价值和丰富的主题内涵。

近年来,随着大数据和文本挖掘技术的发展,对《红楼梦》等古典文学作品的深度分析成为可能。

由Kaizong Ye,Liao Bao撰写

本研究采用R语言作为分析工具,对《红楼梦》全文进行文本挖掘,通过词频统计、词云可视化以及前后对比分析,以期深入探索这部经典小说的主题演变和人物塑造。

读入数据

将需要分析的文本放入记事本中,保存到相应路径,并在R中打开。

这儿我导入的是《红楼梦》的文本。


先导入rJava和Rwordseg两个包


library(Rwordseg)

分词+统计词频

words=unlit(lappy(X=leure, FN=segmntCN))
#unlist将list类型的数据,转化为vector  
#lapply()返回一个长度与X一致的列表,每个元素为FUN计算出的结果,且分别对应到X中的每个元素。  

table统计数据的频数

降序排序

v=rev(sort(v))

过滤掉1个字的结果和词频小于100的结果

d1=subset(d, ncar(a.aracterd词汇))>1 & d$词频.Freq>=100) 

画出标签云

wordcloud(d1$词

视频

文本挖掘:主题模型(LDA)及R语言实现分析游记数据

探索见解

去bilibili观看

探索更多视频

image.png

性格分析: 宝玉

xinggefenxi("宝玉")
1.png

从关键词“丫头”“出去”“姐姐”这些来看,贾宝玉是一个又奇又俗的人物。自幼深受祖母贾母疼爱,住贾母院。因此娇生惯养,构成他性格的主要特征是叛逆。他行为“偏僻而乖张”,是封建社会的叛逆者。他鄙视功名利禄,不愿走“学而优则仕”的仕途。他痛恨“八股”,辱骂读书做官的人是“国贼禄蠹”,懒于与他们接触拜会。


图片

NLP自然语言处理—主题模型LDA案例:挖掘人民网留言板文本数据

阅读文章


红楼梦前八十回与后四十回是否同一个人写的?

lecture<-read.csv("红楼梦前80回.txt", stringsAsactorsALS,headerFALSE)  
   
words=unlist(lappl
#unlist将list类型的数据,转化为vector  
#lapply()返回一个长度与X一致的列表,每个元素为FUN计算出的结果,且分别对应到X中的每个元素。  
word=lapply()  

画出标签云


随时关注您喜欢的主题


image.png


lecture<-read.csv("红楼梦后40回.txt", stringssFatrs=FALE,heade=FALSE)

前后红楼梦词频对比

qianord=qianword[which(qianord[ ,1] %in% ongogword),  ]  
  
houword=houword[which(hword[ ,1] %in% gotnword),  ]

前红楼梦:

image.png

后红楼梦:

image.png

t检验

t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。用于比较前后红楼梦的关键词出现频率的区别差异。

t.test(qianword[,3],houword[,3])
image.png

从结果来看,t检验的p值显著小于0.05,因此拒绝原假设。有95%的把握可以认为前后的红楼梦不是一个人所做。




可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds