【发布时间】:2017-09-21 16:08:38
【问题描述】:
我正在尝试使用以下代码为二元组(和更高的 n 克)创建一个词云 -
text_input <- scan("Path/Wordcloud.txt")
corpus <- Corpus(VectorSource(text_input))
corpus.ng = tm_map(corpus,removeWords,c(stopwords(),"s","ve"))
corpus.ng = tm_map(corpus.ng,removePunctuation)
corpus.ng = tm_map(corpus.ng,removeNumbers)
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
tdm.bigram = TermDocumentMatrix(corpus.ng,control = list(tokenize = BigramTokenizer))
tdm.bigram
freq = sort(rowSums(as.matrix(tdm.bigram)),decreasing = TRUE)
freq.df = data.frame(word=names(freq), freq=freq)
head(freq.df, 20)
pal=brewer.pal(8,"Blues")
pal=pal[-(1:3)]
wordcloud(freq.df$word,freq.df$freq,max.words=100,random.order = F, colors=pal)
我在少数网站上看到过类似的代码用于生成 n gram,但我的输出中只有单个单词组合。
代码没有响应在 NGramTokenizer 函数中连续设置为不同值(2、3、4 等)的最小值和最大值的变化。 我是否遗漏了代码中的某些内容,或者我在代码中调用的库之一(tm、ggplot2、wordcloud、RWeka)或其依赖项(如 rJava)可能没有响应?如果有人能就这个问题提出一些建议或建议对上述代码进行修改,我将不胜感激。
谢谢, 赛巴尔
【问题讨论】:
-
其他人有问题。 R-Bloggers 上最近的一篇文章分析了美国总统的就职演说,并最终将 quanteda 包用于二元组。
标签: r tm word-cloud