R语言豆瓣电影评论数据文本挖掘、神经网络、词云可视化和交叉验证

在网络技术高速发展的背景下,信息纷乱繁杂,如何能够获得需要的文本信息,成了许多企业或组织关注的问题。

由Kaizong Ye,Liao Bao撰写

该项目以采集的豆瓣电影评论数据为例,使用R语言和神经网络算法

对文本挖掘进行全流程的分析,包括对其特征及其子集进行提取

并对文本进行词云可视化和分类处理,同时采用交叉验证方法对模型进行调整

从而预测有关评论的类型,并将其作为电影推荐的一个标准。

电影评论数据

image.png

查看数据

head(pinglun1)

image.png

文本预处理 

 #剔除通用标题   
res=(pattern="NIKEiD"," ",res);    
res=(pattern="http://t.cn/"," ",res);  
res=(pattern="com"," ",res);

中文分词技术

不同于英文每一个单词具有明确的划分标准,中国的汉字博大精深、历史悠久。一个词语或者一句话在不同的语境里有多种切分方式,并且随着网络用词的不断更新,许多具有现时意义的词语并不能为计算机所识别。

keyword=(X=res, FUN=segmentCN)


自适应网页宽度的 Bilibili 视频

视频

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

探索见解

去bilibili观看

探索更多视频

绘制词汇图

词云不仅能够形象的将文本的主要内容进行呈现,清晰明了地展示出在一个测试集里面最为重要的关键词,同时也可以检验停用词的处理环节是否完善,因为如果不完善,词云中会不可避免地出现一些无意义的单个词。

mycolors <- brewer.pal(8,"Dark2")#设置一个颜色系:

wordcloud(d$word,d$freq,random.order=FALSE,random.color=FALSE,colors=
1.png

unique
(words) ##    [1] "通过"             "亲"               "父"              ##    [4] "养父"             "岳父"             "人物"            ##    [7] "关系"             "构"               "写"              ##   [10] "一部"             "编"               "有"

图片

R语言泊松Poisson回归模型分析案例

阅读文章


转换成词频矩阵

由于计算机比较擅于处理电子表格、数据库这样的结构化数据,但是文本是人类的语言,所以将非结构化的文本转变成结构化的数据是非常必要的。


随时关注您喜欢的主题



for(i in  1:nrow(cldata)){   for(j in  unique(d$word) ){     if(j %in%  unlist(key ##        故事 电影 一个 喜欢 父亲 童话 因为 这个 一部 时候 没有 知道 生活 ##   [1,]    0    0    0    0    0    0    0    0    1    0    0    0    0 ##   [2,]    0    0    0    0    0    0    0    0    0    0    0    0    0 ## [594,]    0 ## [595,]    0 ## [596,]    0 ## [597,]    0 ## [598,]    0 ## [599,]    0 ## [600,]    0

神经网络

nn <-  (c(label$V1)[samp]~cldata[samp,],size=10,decay=0.01,maxit=1000,l

预测分类结果

yy <- round(predict(nn, cldata))

分类混淆矩阵

table(yy,label[1:500,])
image.png

十折交叉验证

利用for循环,将参数依次赋值并对每一个结果求平均值。

k=10  
for(kk in 1:k){  
  index=sample(1:length(data),floor(length(data)*(1/k)),replace=F)#得到测试样本样本号  
  test=as.data.frame(cldata[index,])#提取测试集  
  train=as.data.frame(cldata[-index,])#提取训练集
image.png

本次项目是基于豆瓣电影评论对文本挖掘的整个流程进行阐释,对文本进行了爬取、分词、文本向量化等一系列操作。

结论

项目还需要进一步地完善。首先因文本挖掘的技术手段不如数据挖掘成熟,其次就是在不同的项目中适用的方法和模型也是不同的,比如当改变算法或者参数的时候,会导致准确率发生变化,所以在处理这个项目的时候,需要注意的是,对于运用哪种方法和建立哪种模型必须进行充分的思考和实验,从而得出比较科学的支撑依据。

当然就本项目来说,也存在和其他文本挖掘项目相同的问题——分词库和停用词库不完善,所以文本挖掘这一领域仍需要大量的探索和实践,未来的研究中应该更加关注数据本身的质量和真实性并完善词典的构建。通过这个项目可以看出文本挖掘在网络评价分析方面发挥了很重要的作用,目前有很多组织或企业通过文本挖掘来提取相关产品的客户反馈,并提高自身的产品质量和服务水平。尽管这种方式还没有很完善,但是当其得到更加广泛的推广后,其中包含的技术也一定会越来越完善。相信当这种方式走向成熟时,其会广泛地应用于更多的领域,例如商品贸易、新闻出版、医疗和教育等等,那么我们的生活也会获得更多的便利。

参考文献:

[1] 张公让,鲍超,王晓玉,等.基于评论数据的文本语义挖掘与情感分析 [J].情报科学,2021,39(5):53-61.

[2] 王继成,潘金贵,张福炎.Web文本挖掘技术研究 [J].计算机研究与发展,2000(5):513-520.


可下载资源

关于作者

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

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

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

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

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


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

技术干货

最新洞察

This will close in 0 seconds