【问题标题】:Unable to get n gram word cloud in R无法在 R 中获得 n gram 词云
【发布时间】: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


【解决方案1】:

你错过了mentioning the token delimiter

token_delim <- " \\t\\r\\n.!?,;\"()"
BigramTokenizer <- NGramTokenizer(mycorpus, Weka_control(min=2,max=2, delimiters = token_delim))

这应该可行。

如果您需要一个工作示例,可以观看这个五分钟的视频: https://youtu.be/HellsQ2JF2k

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    另外,还有一些人在使用语料库功能时遇到了问题。 尝试使用 volatile 语料库 语料库 VCorpus(VectorSource(text_input))

    【讨论】:

      【解决方案3】:

      我尝试了以下方法并且成功了:

      > minfreq_bigram<-2
      > bitoken <- NGramTokenizer(corpus, Weka_control(min=2,max=2))
      > two_word <- data.frame(table(bitoken))
      > sort_two <- two_word[order(two_word$Freq,decreasing=TRUE),]
      > wordcloud(sort_two$bitoken,sort_two$Freq,random.order=FALSE,scale = 
      c(2,0.35),min.freq = minfreq_bigram,colors = brewer.pal(8,"Dark2"),max.words=150)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-21
        • 1970-01-01
        • 2020-06-28
        • 2016-04-07
        • 2017-02-04
        • 1970-01-01
        • 2018-05-23
        • 1970-01-01
        相关资源
        最近更新 更多