Есть ли способ вернуть облако слов в строковый или символьный тип данных? - PullRequest
0 голосов
/ 25 сентября 2018

Я использую library(wordcloud), чтобы создать облако слов в r.Однако меня больше интересуют настоящие слова как строковый тип, который я могу позже использовать в ячейке Excel.Можно ли каким-то образом заставить wordcloud в r возвращать строку вместо создания объекта wordcloud?

Это моя реализация функции:

create_wordcloud <- function(text)  {
  corpus <- Corpus(VectorSource(text)
  w_cloud <- wordcloud(corpus, min.freq = 1,
            max.words=50, random.order=FALSE, rot.per=0.35, 
            colors=brewer.pal(8, "Dark2"))
  return(corpus) #I need this to be a string 
}

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете преобразовать Корпус в data.frame и изменить его с помощью функции reshape2 melt().

library(tm)
library(wordcloud)
library(reshape2)

create_wordcloud <- function(text)  {
    corpus <- Corpus(VectorSource(text)
    wordcloud(corpus, min.freq = 1,
        max.words=50, random.order=FALSE, rot.per=0.35, 
        colors=brewer.pal(8, "Dark2"))
    word_matrix <- as.matrix(DocumentTermMatrix(corpus))
    word_matrix_df <- as.data.frame(word_matrix)
    word_matrix_df <- melt(word_matrix_df, variable.name = 'word', value.name = 'frequency')

    return(word_matrix_df)
}

Это возвращает data.frame со словами и их столбцами.Частота в тексте.Если у вас все в порядке со структурой matrix, вы можете пропустить шаги data.frame и reshape2::melt().

...