2.3 中文分词 用 R 语言做文本挖掘 | 6
[1] "中华人民共和国 成立 于" "成立 于 1949年" "中华人民共和国 成立"
[4] "成立 于" "于 1949年" "中华人民共和国"
[7] "成立" "于" "1949年"
2.3 中文分词
在英文结构中,每个表意的单词都是是独立,但中文表意的字符之间没有空格连接。比如
对于 “花儿为什么这样红”,包含了 8 个字符,虽然对于任意一个中国人都可以分清这句话应该
怎样断句,但对于电脑却有些困难。好在有一些现成的工具可以使用比如 Rwordseg 这个包 [Li,
2012],即调用了 Java 分词程序对语句进行分词。下面是一个例子:
library(Rwordseg)
> segmentCN(' 花儿为什么这样红')
[1] "花儿" "为什么" "这样" "红"
这段话被分为了 “花儿”,“为什么”,“这样”,“红”。这个空格分隔的结果集,后期就可以按照
英文的方式进行后续处理。
由于 Rwordseg 这个包已经发布在 R-forge 仓库上,正常安装:
install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")
当然,推荐使用 Rwordseg 的中文分词,它不但分词的精度较高,且支持词性标注等功能。
rmmseg4j 也是可供选择的中文分词引擎 [Ronggui, 2011]。
3 tm 包
本部分主要涉及 R 语言环境中 tm 包的使用。
3.1 简介
使用 R 里面 tm 包进行文本挖掘,对于中文环境还有一些包来处理中文字符。关于 tm 包
最早发表于 Journal of Statistical Software [Feinerer et al., 2008],而关于 text mining in R 最
早表在 R News [Feinerer, 2008]。
3.2 数据读入
在 tm 中主要的管理文件的结构被称为语料库(Corpus),代表了一系列的文档集合。语
料库是一个概要性的概念,在这里分为动态语料库(Volatile Corpus,作为 R 对象保存在内存
中)和静态语料库(Permanent Corpus,R 外部保存)。
在语料库构成中,x 必须有一个说明资料来源(input location)的源对象(Source Object)。
我们可以看一下 tm 中 Corpus(或 VCorpus)函数的用法,对于动态语料库: