R语言学习-词频分析

Posted 绪哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言学习-词频分析相关的知识,希望对你有一定的参考价值。

概念

1、语料库-Corpus

  语料库是我们要分析的所有文档的集合,就是需要为哪些文档来做词频

2、中文分词-Chinese Word Segmentation

  指的是将一个汉字序列切分成一个一个单独的词语。

3、停用词-Stop Words

  数据处理的时候,自动过滤掉某些字或词,包括泛滥的词如Web、网站等,又如语气助词如的、地、得等。

 

需要加载的包

1、tm包

  安装方式:install.packages("tm")

  语料库:

      Corpus(x,readerControl)

        x-语料库的数据源,可以使用目录数据源-DirSource,或者向量数据源-VectorSource

        readerControl-语料库的读取控制器,是一个list;参数reader-文本为reader,pdf为readPDF等,参数language为文本语言,默认为“en”

举例:

#按目录读入语料库,就是把数据读取出来
C000007 <- Corpus(
  DirSource(
    ‘SogouC.mini/Sample/C000007‘    //这个是相对路径,绝对路径为:C:\Users\22636\Desktop\R语言资料\2.1\SogouC.mini\Sample\C000007
  ),
  readerControl = list(language="UTF-8")
)

 

  语料库处理:

        tm_map(x,FUN)

          x-上面的语料库

          FUN-使用哪个处理函数,函数如下

            tolower-转成小写

            removeWords-移除分词,一般用语移除停用词

            stripWhitespace-移除空白字符

            PlainTextDocument-处理html或者XML文档

            segmengCN-中文分词函数,来自Rwordseg包

2、tmcn包-停用词包

  安装方式:install.packages("tmcn", repos="http://R-Forge.R-project.org");

  安装后使用stopwordsCN()

 

3、Rwordseg包

  安装方式:

      install.packages("rJava")
      install.packages("Rwordseg", repos="http://R-Forge.R-project.org")//如果这个不行则用下面的
      #install.packages("Rwordseg", repos="http://R-Forge.R-project.org", type="source")

  分词方法:

      segmentCN(strwords,outfile="",returnType=c("vector","tm"))

        strwords-需要分词的字符串或者文件路径

        outfile-分词后输出的路径,默认为输入文件的同级目录

        returnType-返回值类型,默认是数组,可以选择为tm包的语料库类型

  安装/卸载字典:

      installDict(dictpath,dictname)

      uninstallDict(dictname)

        dictpath-字典文件路径

        dictname-字典名字

      字典下载:http://pinyin.sogou.com/dict/

  显示字典列表

      listDict()

举例:

  segmentCN("真武七截阵和天罡北斗阵哪个厉害")

输出:  

  [1] "真" "武" "七" "截" "阵" "和" "天罡" "北斗"
  [9] "阵" "哪个" "厉害"

加载字典:

  installDict(‘金庸武功招式.scel‘, ‘金庸武功招式‘)

输出:

  [1] "真武七截阵" "和" "天罡北斗阵" "哪个"
  [5] "厉害"

当然也可以使用路径的方式来进行分词,如下面则是根据路径来针对文档里面的语句进行分词,并且分词后会在同目录下生成分词后的新文档:

data <- segmentCN(
  ‘SogouC.mini/Sample/C000007/10.txt‘
)

 

4、TM包和Rwordseg包组合使用

#加载tm和tmcn包

library(tm)
library(tmcn)

#按目录读入语料库
C000007 <- Corpus(
  DirSource(
    ‘SogouC.mini/Sample/C000007‘
  ),
  readerControl = list(language="UTF-8")
)

stopwordsCN()

#加载rwordreg包

library(Rwordseg)

C000007 <- tm_map(C000007, stripWhitespace) //先把c000007语料库中的空格移除
C000007 = tm_map(C000007, content_transformer(segmentCN), returnType=‘tm‘) //用segmentcn方式进行分词

以上是关于R语言学习-词频分析的主要内容,如果未能解决你的问题,请参考以下文章

R语言实战应用精讲50篇(十八)-R语言实现分词词频与词云案例解析

R语言——为什么要学习这个工具?建议你们看一下!

R语言 | 词频统计

R语言可以这么玩 |可视化中文分词和词频统计!~

R语言 | 制作词云图

中文分词实践(基于R语言)