从R中的语料库创建单词的子集

时间:2013-03-19 14:54:09

标签: r corpus word-cloud

我有一个使用XML包从Twitter搜索创建的1,500行向量。然后我将它转换为语料库以与tm包一起使用。我想最终用这些单词的一些(最常见的)创建一个wordcloud,所以我将它转换为TermDocumentMatrix,以便能够找到具有最小频率的术语。我创建了对象“a”,这是这些术语的列表。

a <- findFreqTerms(mydata.dtm, 10)

wordcloud包不适用于文档矩阵。所以现在,我想过滤原始向量,只包括“a”对象中包含的单词(如果我使用对象本身,当然,我只有每个常用单词的一个实例)。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:6)

您可以将tdm对象转换为矩阵并使用它来获取wordcloud可以使用的内容:

library(tm)
library(wordcloud)
# example data from the tm package
data(crude)
tdm <- TermDocumentMatrix(crude,
                      control = list(removePunctuation = TRUE,
                                     stopwords = TRUE))
v <- rowSums(as.matrix(tdm))
names(v) <- rownames(as.matrix(tdm))
v <- sort(v, decreasing=T)

现在,您可以使用标准子集([)过滤掉不常用的单词,或者当您想要绘制时,可以使用min.freq参数wordcloud

wordcloud(names(v), v, min.freq=10, scale=c(10,.3))

wordcloud