我使用的是" wordcloud"描述"词云"来自R Packages存储库。当我从一些随机文本创建wordcloud时,会自动省略一些单词,因为它们不应该是wordcloud的一部分。
代码:
library(RColorBrewer)
library(NLP)
library(wordcloud)
library(tm)
wordcloud("foo bar oh oh by by bye bingo hell no", scale=c(3,1), colors=brewer.pal(6,"Dark2"),random.order=FALSE)
输出:
我想保留像"哦" " by"在wordcloud。怎么样?
编辑:我更喜欢这样做,方法是从wordcloud包中删除一组停用词,而不是使用频率。
答案 0 :(得分:2)
以这种方式:
library(wordcloud)
library(tm)
txt <- "foo bar oh oh by by bye bingo hell no"
corp <- Corpus(VectorSource(txt))
tdm <- TermDocumentMatrix(corp, control = list(wordLengths = c(-Inf, Inf)))
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
wordcloud(d$word,d$freq,min.freq=1)
答案 1 :(得分:2)
有两种方法可以使用wordcloud():
第一个输入强制wordcloud()调用tm,构成语料库,删除停用词,这是你丢失两个字母单词的步骤。
一种简单的方法是恢复使用不需要tm包的wordcloud,在将其提供给wordcloud()之前处理你的字符串:
library(stringr)
library(wordcloud)
library(RColorBrewer)
## The initial string
mystring <- "foo bar oh oh by by bye bingo hell no"
## Split it and count frequencies
tabl <- table(str_split(mystring,pattern=" "))
## Make the wordcloud: all words are there!
wordcloud(names(tabl),tabl,scale=c(3,1), colors=brewer.pal(6,"Dark2"),random.order=FALSE)