2 votes

Mettre tous les mots en majuscules dans Wordcloud en R

Lors de la création de nuages de mots, il est courant de mettre tous les mots en minuscules. Cependant, je veux que les nuages de mots affichent les mots en majuscules. Après avoir forcé les mots à être en majuscules, le nuage de mots affiche toujours les mots en minuscules. Avez-vous une idée de la raison ?

Code reproductible :

    library(tm)
    library(wordcloud)

data <- data.frame(text = c("Creativity is the art of being ‘productive’ by using
          the available resources in a skillful manner. 
          Scientifically speaking, creativity is part of
          our consciousness and we can be creative –
          if we know – ’what goes on in our mind during
          the process of creation’.
          Let us now look at 6 examples of creativity which blows the mind."))

text <- paste(data$text, collapse = " ")

# I am using toupper() to force the words to become uppercase.
text <- toupper(text)

source <- VectorSource(text)
corpus <- VCorpus(source, list(language = "en"))

# This is my function for cleaning the text                  
clean_corpus <- function(corpus){
             corpus <- tm_map(corpus, removePunctuation)
             corpus <- tm_map(corpus, removeNumbers)
             corpus <- tm_map(corpus, stripWhitespace)
             corpus <- tm_map(corpus, removeWords, c(stopwords("en")))
             return(corpus)
}   

clean_corp <- clean_corpus(corpus)
data_tdm <- TermDocumentMatrix(clean_corp)
data_m <- as.matrix(data_tdm)

commonality.cloud(data_m, colors = c("#224768", "#ffc000"), max.words = 50)

Cela donne le résultat suivant

enter image description here

4voto

lukeA Points 39689

C'est parce que dans les coulisses TermDocumentMatrix(clean_corp) fait TermDocumentMatrix(clean_corp, control = list(tolower = TRUE)) . Si vous le réglez sur TermDocumentMatrix(clean_corp, control = list(tolower = FALSE)) alors les mots restent en majuscules. Vous pouvez également ajuster les noms des lignes de votre matrice après coup : rownames(data_m) <- toupper(rownames(data_m)) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X