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包

  词频统计,转换成矩阵

          DocumentTermMatrix(x,control=list())
          TermDocumentMatrix(x,control=list())

            x-语料库

            control-语料库统计控制器,是一个list

              wordLengths=c(1,4)  分词在1-4字符的才会统计

              stopwords=stopwordsCN() 停用词

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")

      去作者网站下载后本地安装:https://r-forge.r-project.org/R/?group_id=1054

  分词方法:

      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方式进行分词

posted @ 2017-08-15 23:13  绪哥哥  阅读(1722)  评论(0编辑  收藏  举报