tm包是R语言中为文本挖掘提供综合性处理惩罚的package,举办操纵前载入tm包,vignette呼吁可以让你获得相关的文档说明
library(tm)
vignette(“tm”)
首先要读取文本,本次操纵所用的文本是tm包自带的20个XML名目文本,存放在library\tm\texxts\crude文件夹中。用Corpus呼吁读取文本并生成语料库文件
reut21578 <- system.file(“texts”, “crude”, package = “tm”)
reuters <- Corpus(DirSource(reut21578), readerControl = list(reader = readReut21578XML))
下一步用tm_map呼吁对语料库文件举办预处理惩罚,将其转为纯文本并去除多余空格,转换小写,去除常用词汇、归并异形同意词汇
reuters <- tm_map(reuters, as.PlainTextDocument)
reuters <- tm_map(reuters, stripWhitespace)
reuters <- tm_map(reuters, tolower)
reuters <- tm_map(reuters, removeWords, stopwords(“english”))
tm_map(reuters, stemDocument)
操作DocumentTermMatrix将处理惩罚后的语料库举办断字处理惩罚,生成词频权重矩阵
dtm <- DocumentTermMatrix(reuters)
部门矩阵内容可通过inspect来调查
inspect(dtm[1:5, 100:105])
Docs abdul-aziz ability able abroad, abu accept
127 0 0 0 0 0 0
144 0 2 0 0 0 0
191 0 0 0 0 0 0
194 0 0 0 0 0 0
211 0 0 0 0 0 0
假如需要考查多个文档中特有词汇的呈现频率,可以手工生成字典,并将它作为生成矩阵的参数
(d <- Dictionary(c(“prices”, “crude”, “oil”)))
inspect(DocumentTermMatrix(reuters, list(dictionary = d)))
因为生成的矩阵是一个稀疏矩阵,再举办降维处理惩罚,之后转为尺度数据框名目
dtm2 <- removeSparseTerms(dtm, sparse=0.95)
data <- as.data.frame(inspect(dtm2))
再之后就可以操作R语言中任何东西加以研究了,下面用条理聚类试试看
先举办尺度化处理惩罚,再生成间隔矩阵,再用条理聚类
data.scale <- scale(data)
d <- dist(data.scale, method = “euclidean”)
fit <- hclust(d, method=”ward”)
绘制聚类图
plot(fit)
可以看到在20个文档中,489号和502号聚成一类,与其它文档区别较大。
操作R语言的tm包举办文本挖掘
最后更新 2017-12-04 08:00 星期一 所属:
其他教程 浏览:472
