2013-03-19 69 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

相關問題