一、 实训内容
- 在进行数据读入操作前,要求下载和加载相应的程序包文件。
- 利用R语言的scan( )方法,从外部txt文件读入进行实验的数据集内容。
- 本实验要求先对输入的数据集进行词语分割,过滤不合需求的字符长度。进行词频统计后,仍可进行数字的过滤操作,最后进行词语的降序排序。
- 在对数据集进行分词,统计词频之后,方可使用程序包wordcloud,对数据集进行词云图片的绘画和生成。
二、 实验课题目标
- 要求掌握程序包的基本操作,包括下载、加载等。同时,能从二进制文本文件中读入数据集的相应内容。
- 在数据处理的过程中,重点掌握分词、词频统计、过滤和排序的方法,以及相应的函数参数的把控。
- 深入理解词云图片生成的基本原理,以及基本的实现方法,能灵活面向多种类型的数据集进行应用。同时,掌握数据集生成图片的转换过程。
三、 实验平台
1、 系统: Windows 10
Intel(R) Core(TM)i7-7500U CPU @ 2.70GHz 2.90 GHz
RAM 8.00GB
2、工具:
R x64 3.6.1
notepad.exe
eclipse
word 2016
四、 实施步骤
1) 读入数据
1、 切换R语言的工作空间。首先在C:目录下,新建文件夹为workspace,再打开R x64 3.6.1程序,输入命令:getwd() ,获取当前R语言程序的工作空间。输入如命令:setwd("C:/workspace") ,将workspace作为R语言的工作目录,再加以验证是否切换成功。
图4-1 切换工作空间
2、 下载jiebaR包。在R x64 3.6.1程序中,输入命令:install.packages("jiebaR") ,下载‘jiebaR’程序包。在弹出的mirrors选项中,选择China(Shanghai)[https]上海的服务器即可。下载完成之后,效果如图4-2所示:
图4-2 下载jiebaR成功
当输入完下载命令之后,RGui(64-bit)会自动检查并下载安装相依的关系‘jiebaRD’和 ‘Rcpp’包,程序包下载完成之后,R语言会打开并使用MD5进行检查。
3、利用第2步骤的方法,下载wordcloud包。在R x64 3.6.1程序中,输入命令:install.packages("wordcloud") ,下载”wordcloud”程序包。在弹出的mirrors选项中,继续选择上海的服务器即可。
图4-3 下载wordcloud成功
3、 加载已经下载的jiebaR包和wordcloud包。输入命令:library(“Rserve”) ,加载Rserve程序包。输入命令:library("wordcloud") ,加载wordcloud程序包。并利用(.packages())查看是否加载程序包。
图4-4 加载程序包成功
5、从文件读入数据。读入数据分隔符是‘ ’,what=''表示以字符串类型读入。输入命令:f<- scan('C:/Users/Raodi/Desktop/snx.txt',sep=' ',what='')
图4-5 从文件中加载数据
2) 数据处理
1、 分词。使用qseg类型对输入的数据进行分词,命令:txt<-qseg[f] 。
2、过滤字符长度。使用命令:txt<-txt[nchar(txt)>1] ,去除字符长度小于2的词语。
3、统计词频。使用命令:txt<-table(txt),对已经规约词长的数据进行词频统计。
4、过滤数字。单个数值字符在词云中是无意义的,所以要对数字进行过滤。使用命令:txt<-txt[!grepl('[0-9]+',names(txt))],批量去除数据集中的数字。
5、查看处理完后剩余的词数。使用命令:length(txt)。
6、降序排序,并提取出现次数最多的前100个词语。使用命令:txt<-sort(txt, decreasing = TRUE)[1:100] ,进行降序排序,并提取出现次数最多的前100个词语。
7、查看100个词频最高的词语。
4-6 数据处理
3) 词云制作
1、设置生成的词云图片的属性。使用命令:png("snxcloud.png", width = 500, height = 500) ,在R语言当前的工作目录下,生成高和宽都是500的snxcloud.png图片。
2、设置该图片的背景颜色为黑色:par(bg = "black")
3、对数据集进行wordcloud()函数运算。命令如下:
wordcloud(names(txt), txt, colors = rainbow(100), random.order=F)
4、保存数据集产生snxcloud.png图片。命令:dev.off()
图4-7制作词云图片
图4-8 工作目录中生成词云图片
运行以上代码后,即可在工作空间得到snxcloud.png文件,如下图:
图4-9 snxcloud.png
五、 实验成果
当在实验的过程中,出现图5-1的效果时,则表示在R语言程序中,从文件读入数据、分词、过滤字符长度和统计词频等数据处理操作,以及词云图片的生成没有问题。即,上述的实验步骤操作正确。
图5-1 实验操作正确
如图5-2所示,在R的工作目录下成功生成了snxcloud.png词云文件,也再次验证了上述的实验操作正确,并能生成相应的词云文件。
图5-2 工作目录生成文件
本实验最终得到的词云,效果如图5-3所示:
图5-3 实验的词云成品
六、 实训总结
关于本次实验的经验收获和实验总结,可分点总结如下:
- 经过本实验,可得出结论:jiebaR是一款高效的R语言中文分词包,而Wordcloud包在做词语分析时并没有多大的作用。Wordcloud包就是一个可以使词频以图形的形式展示的软件包,它可以通过改变词云的形状和颜色,使得分析结果锦上添花。
- 本实验的关键在于,对数据集进行分词、词频统计、过滤和排序等数据处理的过程和方法,生成词云图片只是对已经处理的数据集以图片的方式进行保存。
- 本实验中,需要将数据集中的数字进行过滤。因为经过分词器的处理,单个数值字符在生成的词云中难以分辨含义和方向,即缺乏无意义的,所以需要将数字进行过滤处理。
- 生成词云的方法远不止本实验中的这种,方法其实还有很多,如:wordcloud2。但是从整体来说,方法和基本的原理是类似的,至于操作步骤也可以举一反三,灵活变通。