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

2021年09月15日 阅读数:6
这篇文章主要向大家介绍R语言- 实验报告 - 词云的分析与生成,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1、 实训内容

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

 

 

2、 实验课题目标

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

 

 

 

3、 实验平台

  一、  系统:  Windows 10服务器

          Intel(R) Core(TM)i7-7500U CPU @ 2.70GHz 2.90 GHzdom

        RAM 8.00GBeclipse

  二、工具:函数

          R x64 3.6.1   工具

  notepad.exe ui

  eclipsespa

  word 2016blog

 

 

 

4、 实施步骤

1)    读入数据

一、 切换R语言的工做空间。首先在C:\目录下,新建文件夹为workspace,再打开R x64 3.6.1程序,输入命令:getwd()  ,获取当前R语言程序的工做空间。输入如命令:setwd("C:/workspace")  ,将workspace做为R语言的工做目录,再加以验证是否切换成功。排序

图4-1 切换工做空间图片

 

二、 下载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进行检查。

 

 

三、利用第2步骤的方法,下载wordcloud包。在R x64 3.6.1程序中,输入命令:install.packages("wordcloud") ,下载”wordcloud”程序包。在弹出的mirrors选项中,继续选择上海的服务器便可。

图4-3 下载wordcloud成功

 

三、  加载已经下载的jiebaR包和wordcloud包。输入命令:library(“Rserve”)  ,加载Rserve程序包。输入命令:library("wordcloud") ,加载wordcloud程序包。并利用(.packages())查看是否加载程序包。

图4-4 加载程序包成功

 

五、从文件读入数据。读入数据分隔符是‘\n’,what=''表示以字符串类型读入。输入命令:f<- scan('C:/Users/Raodi/Desktop/snx.txt',sep='\n',what='')

 

图4-5 从文件中加载数据

 

2)    数据处理

一、  分词。使用qseg类型对输入的数据进行分词,命令:txt<-qseg[f] 。

二、过滤字符长度。使用命令:txt<-txt[nchar(txt)>1] ,去除字符长度小于2的词语。

三、统计词频。使用命令:txt<-table(txt),对已经规约词长的数据进行词频统计。

四、过滤数字。单个数值字符在词云中是无心义的,因此要对数字进行过滤。使用命令:txt<-txt[!grepl('[0-9]+',names(txt))],批量去除数据集中的数字。

五、查看处理完后剩余的词数。使用命令:length(txt)。

六、降序排序,并提取出现次数最多的前100个词语。使用命令:txt<-sort(txt, decreasing = TRUE)[1:100]  ,进行降序排序,并提取出现次数最多的前100个词语。

七、查看100个词频最高的词语。


  

4-6 数据处理

3)    词云制做

一、设置生成的词云图片的属性。使用命令:png("snxcloud.png", width = 500, height = 500)  ,在R语言当前的工做目录下,生成高和宽都是500的snxcloud.png图片。

二、设置该图片的背景颜色为黑色:par(bg = "black")

三、对数据集进行wordcloud()函数运算。命令以下:

  wordcloud(names(txt), txt, colors = rainbow(100), random.order=F)

四、保存数据集产生snxcloud.png图片。命令:dev.off()

图4-7制做词云图片

 

 

图4-8 工做目录中生成词云图片

 

运行以上代码后,便可在工做空间获得snxcloud.png文件,以下图:

 

图4-9 snxcloud.png

 

 

 

 

 

5、 实验成果

当在实验的过程当中,出现图5-1的效果时,则表示在R语言程序中,从文件读入数据、分词、过滤字符长度和统计词频等数据处理操做,以及词云图片的生成没有问题。即,上述的实验步骤操做正确。

 

图5-1 实验操做正确

 

如图5-2所示,在R的工做目录下成功生成了snxcloud.png词云文件,也再次验证了上述的实验操做正确,并能生成相应的词云文件。

 

图5-2 工做目录生成文件

 

本实验最终获得的词云,效果如图5-3所示:

 

图5-3 实验的词云成品

 

6、 实训总结

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

    1. 通过本实验,可得出结论:jiebaR是一款高效的R语言中文分词包,而Wordcloud包在作词语分析时并无多大的做用。Wordcloud包就是一个可使词频以图形的形式展现的软件包,它能够经过改变词云的形状和颜色,使得分析结果锦上添花。
    2. 本实验的关键在于,对数据集进行分词、词频统计、过滤和排序等数据处理的过程和方法,生成词云图片只是对已经处理的数据集以图片的方式进行保存。
    3. 本实验中,须要将数据集中的数字进行过滤。由于通过分词器的处理,单个数值字符在生成的词云中难以分辨含义和方向,即缺少无心义的,因此须要将数字进行过滤处理。
    4. 生成词云的方法远不止本实验中的这种,方法其实还有不少,如:wordcloud2。可是从总体来讲,方法和基本的原理是相似的,至于操做步骤也能够触类旁通,灵活变通。