/* -*- author: Tan Menglong; email: tanmenglong_at_gmail; twitter/weibo: @crackcell; 转载请注明出处 -*- */
tm是R里面一个文本挖掘的库,包含了常用了诸如字符串转换、分token等功能。
library(tm)
使用tm之前,首先需要将原始数据转换成语料库(Corpus)。对于简单的数据可以是用VectorSource:
raw_doc <- c("hello world from tm")
corpus <- Corpus(VectorSource(raw_doc))
tm提供inspect命令来查看语料库。此外,print和summary也可用,只是它们不输出语料的原始内容。
inspect(corpus)
writeCorpus(corpus)
语料库中的每一份语料会以txt形式被保存到磁盘。
将连续空白字符压缩到单个
stripWhitespace(x)
tm_map,对文档内容应用转换函数。转换函数列表可以通过getTransformations()获取。
tm_map(x, FUN, ..., useMeta = FALSE, lazy = FALSE)
corpus_txt <- tm_map(corpus, as.PlainTextDocument)
corpus_txt <- tm_map(corpus, tolower)
corpus_txt <- tm_map(corpus, toupper)
corpus_txt <- tm_map(corpus, removeWords, stopwords("english"))
tm_reduce,将多个转换函数的输出合并成一个。
tm_reduce(x, tmFuns, ...)
例子:
data(crude)
crude[[1]]
skipWords <- function(x) removeWords(x, c("it", "the"))
funs <- list(tolower, removePunctuation, skipWords, stripWhitespace)
tm_map(crude, FUN = tm_reduce, tmFuns = funs)[[1]]
query <- "id == '237' & heading == 'INDONESIA SEEN AT CROSSROADS OVER ECONOMIC CHANGE'" tm_filter(corpus, FUN = sFilter, query)
也支持全文检索。支持正则表达式。
tm_filter(corpus, pattern = "company")
searchFullText(x, pattern)
若匹配,返回TRUE,否则FALSE。
MC_tokenizer(x)
或者
scan_tokenizer(x)
元数据是语料的标签,分为语料库(corpus)级和文档级。语料库级tag只有一个,例如,这个语料库的创建者。文档级tag是每个文档都有,例如,这个文档的分类结果。
meta(corpus, tag = "test", type = "corpus") <- "test meta"
meta(corpus, type = "corpus")
meta(corpus, tag = "test2") <- "test meta2"
meta(corpus)
“DC(Dublin Core) 是数字图书馆中使用的一组简单的包括15个“核心元素”的元数据元素集合,主要用于描述数字对象、馆藏管理和元数据交换。”1。对应的,有专门的DublinCore方法用来操作DublinCore规定的属性。这里DublicCore属性只存在于每个单独的文档。
DublinCore(corpus[[1]], tag = "creator") <- "Menglong Tan"
dtm <- DocumentTermMatrix(corpus)
tdm <- TermDocumentMatrix(corpus)
格式:
findFreqTerms(x, lowfreq = 0, highfreq = Inf)
例子:
findFreqTerms(dtm, 5)
格式:
findAssocs(x, term, corlimit)
格式:
removeSparseTerms(x, sparse)
返回使用指定赋权算法赋权的新Term-Doc或Doc-Term矩阵
weightTf(m)
weightTfIdf(m)
Date: 2012-04-01 15:52:18 CST
HTML generated by org-mode 6.33x in emacs 23
Modified theme and code from Tom Preston-Werner. Hosted by Baidu App Engine.