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

Din*_*ire 4 r corpus word-cloud

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

a <- findFreqTerms(mydata.dtm, 10)
Run Code Online (Sandbox Code Playgroud)

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

任何建议都非常感谢.

Jam*_*mes 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)
Run Code Online (Sandbox Code Playgroud)

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

wordcloud(names(v), v, min.freq=10, scale=c(10,.3))
Run Code Online (Sandbox Code Playgroud)

wordcloud