2013-03-19 34 views
4

我有一个使用XML包从Twitter搜索中创建的1500行向量。然后我将它转换为语料库以与tm包一起使用。我想最终创建一个带有一些(最频繁)这些词的wordcloud,因此我将它转换为TermDocumentMatrix以便能够以最低频率找到词。我创建了对象“a”,它是这些术语的列表。从R中的语料库创建单词的子集

a <- findFreqTerms(mydata.dtm, 10) 

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

任何建议,非常感谢。

+0

嗨,欢迎来到SP。你能否粘贴一下你的数据样本?你可以使用'dput(myData)'如果它太大,你可以使用'dput(head(myData,10))' – 2013-03-19 15:08:02

+0

可能的重复:http://stackoverflow.com/q/15506118/1036500 – Ben 2013-03-19 18:09:58

回答

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

+0

James,这个工作完美。谢谢! – 2013-03-19 18:32:34

相关问题