R中的Wordcloud来自值列表(不是来自文本文档)

时间:2017-02-05 16:29:40

标签: r dataframe text-mining tm word-cloud

我根据标准对我的文本中的标记进行了排名,它们都有一个值。我的列表如下所示:

value,token
3,tok1
2.84123,tok2
1.5,tok3
1.5,tok4
1.01,tok5
0.9,tok6
0.9,tok7
0.9,tok8
0.81,tok9
0.73,tok10
0.72,tok11
0.65,tok12
0.65,tok13
0.6451231,tok14
0.6,tok15
0.5,tok16
0.4,tok17
0.3001,tok18
0.3,tok19
0.2,tok20
0.2,tok21
0.1,tok22
0.05,tok23
0.04123,tok24
0.03,tok25
0.02,tok26
0.01,tok27
0.01,tok28
0.01,tok29
0.007,tok30

然后我尝试使用以下代码生成wordcloud:

library(tm)
library(wordcloud)

tokList = read.table("tokens.txt", header = TRUE, sep = ',') 

# Create corpus
corp <- Corpus(DataframeSource(tokList))
corpPTD <- tm_map(corp, PlainTextDocument)

wordcloud(corpPTD, max.words = 50, random.order=FALSE)

产生:

enter image description here

但这不是我想要的。我想要一个wordcloud,在那里我可视化标记(所以“tok1”,“tok2”,...)根据其中的值表。因此,如果第一个令牌有3,那么我希望该单词比列表中的下一个元素大三倍。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这也是有用的(假设你的最小值不为零,如果为零则过滤掉相应的标记):

library(RColorBrewer)
wordcloud(tokList$token, tokList$value/min(tokList$value), max.words = 50, min.freq = 1, 
                    random.order=FALSE, colors=brewer.pal(6,"Dark2"), random.color=TRUE)

enter image description here