• 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、从文件读入数据。读入数据分隔符是‘ ’,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 实验的词云成品

    六、 实训总结

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

      1. 经过本实验,可得出结论:jiebaR是一款高效的R语言中文分词包,而Wordcloud包在做词语分析时并没有多大的作用。Wordcloud包就是一个可以使词频以图形的形式展示的软件包,它可以通过改变词云的形状和颜色,使得分析结果锦上添花。
      2. 本实验的关键在于,对数据集进行分词、词频统计、过滤和排序等数据处理的过程和方法,生成词云图片只是对已经处理的数据集以图片的方式进行保存。
      3. 本实验中,需要将数据集中的数字进行过滤。因为经过分词器的处理,单个数值字符在生成的词云中难以分辨含义和方向,即缺乏无意义的,所以需要将数字进行过滤处理。
      4. 生成词云的方法远不止本实验中的这种,方法其实还有很多,如:wordcloud2。但是从整体来说,方法和基本的原理是类似的,至于操作步骤也可以举一反三,灵活变通。
  • 相关阅读:
    消息队列(一)
    Servlet3.1学习(三)
    再弄一片文章凑个4篇文章的数,主要是用于XML和 Binary序列化和反序列化的类
    Entity Framework底层操作封装(3)
    Entity Framework底层操作封装(2)
    Entity Framework底层操作封装(1)
    实现合并区间
    socket简单案例实现
    PostgreSQL11.2数据恢复记录(From Physical Files)
    Spring Data JPA 与 MyBatis 对比分析
  • 原文地址:https://www.cnblogs.com/Raodi/p/12155173.html
Copyright © 2020-2023  润新知