公告:    欢迎来到王者★孤傲博客主页,若有问题敬请留言 !     没有大量的积累和感悟,是不会把事情做好的, 只有不停的进取,才能够不丢人! Copyright © 2016-2020 RaodiBlogs. All rights reserved.

R语言- 实验报告 - 词云的分析与生成

一、 实训内容

  1. 在进行数据读入操作前,要求下载和加载相应的程序包文件。
  2. 利用R语言的scan( )方法,从外部txt文件读入进行实验的数据集内容。
  3. 本实验要求先对输入的数据集进行词语分割,过滤不合需求的字符长度。进行词频统计后,仍可进行数字的过滤操作,最后进行词语的降序排序。
  4. 在对数据集进行分词,统计词频之后,方可使用程序包wordcloud,对数据集进行词云图片的绘画和生成。

 

 

二、 实验课题目标

  1. 要求掌握程序包的基本操作,包括下载、加载等。同时,能从二进制文本文件中读入数据集的相应内容。
  2. 在数据处理的过程中,重点掌握分词、词频统计、过滤和排序的方法,以及相应的函数参数的把控。
  3. 深入理解词云图片生成的基本原理,以及基本的实现方法,能灵活面向多种类型的数据集进行应用。同时,掌握数据集生成图片的转换过程。

 

 

 

三、 实验平台

  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、从文件读入数据。读入数据分隔符是‘\n’,what=''表示以字符串类型读入。输入命令:f<- scan('C:/Users/Raodi/Desktop/snx.txt',sep='\n',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 实验的词云成品

 

六、 实训总结

关于本次实验的经验收获和实验总结,可分点总结如下:

    1. 经过本实验,可得出结论:jiebaR是一款高效的R语言中文分词包,而Wordcloud包在做词语分析时并没有多大的作用。Wordcloud包就是一个可以使词频以图形的形式展示的软件包,它可以通过改变词云的形状和颜色,使得分析结果锦上添花。
    2. 本实验的关键在于,对数据集进行分词、词频统计、过滤和排序等数据处理的过程和方法,生成词云图片只是对已经处理的数据集以图片的方式进行保存。
    3. 本实验中,需要将数据集中的数字进行过滤。因为经过分词器的处理,单个数值字符在生成的词云中难以分辨含义和方向,即缺乏无意义的,所以需要将数字进行过滤处理。
    4. 生成词云的方法远不止本实验中的这种,方法其实还有很多,如:wordcloud2。但是从整体来说,方法和基本的原理是类似的,至于操作步骤也可以举一反三,灵活变通。
posted @ 2020-01-06 10:43  王者★孤傲  阅读(7397)  评论(0编辑  收藏  举报
……