Actualmente utilizo wordle para muchos usos artísticos de la nube de palabras. Creo que la nube de palabras de R, potencialmente, tiene un mejor control.

1) ¿Cómo se escribe una palabra en mayúscula en la nube de palabras? [SOLUCIONADO]

2) ¿Cómo se mantienen dos palabras como un solo fragmento en la nube de palabras? (Wordle usa el operador ~ para lograr esto, la nube de palabras de R simplemente imprime el ~ como está) [Por ejemplo, donde hay un ~ entre "a" y "ser" Me gustaría un espacio en la nube de palabras]

require(wordcloud)

y<-c("the", "the", "the", "tree", "tree", "tree", "tree", "tree", 
"tree", "tree", "tree", "tree", "tree", "Wants", "Wants", "Wants", 
"Wants", "Wants", "Wants", "Wants", "Wants", "Wants", "Wants", 
"Wants", "Wants", "to~be", "to~be", "to~be", "to~be", "to~be", 
"to~be", "to~be", "to~be", "to~be", "to~be", "to~be", "to~be", 
"to~be", "to~be", "to~be", "to~be", "to~be", "to~be", "to~be", 
"to~be", "when", "when", "when", "when", "when", "familiar", "familiar", 
"familiar", "familiar", "familiar", "familiar", "familiar", "familiar", 
"familiar", "familiar", "familiar", "familiar", "familiar", "familiar", 
"familiar", "familiar", "familiar", "familiar", "familiar", "familiar", 
"leggings", "leggings", "leggings", "leggings", "leggings", "leggings", 
"leggings", "leggings", "leggings", "leggings")

wordcloud(names(table(y)), table(y))
5
Tyler Rinker 9 nov. 2011 a las 22:14
Su código original era reproducible y basé mi respuesta en eso. Tu edición ya no es reproducible y mi respuesta ya no tiene sentido.
 – 
Andrie
9 nov. 2011 a las 22:49
Lo siento, algunas de esas fueron funciones personalizadas que eliminé para referencia futura
 – 
Tyler Rinker
10 nov. 2011 a las 04:46

1 respuesta

La mejor respuesta

Hiciste dos preguntas:

  1. Puede controlar las mayúsculas (o no) especificando un argumento de control para TermDocumentMatrix
  2. No hay duda de que hay un argumento en alguna parte para controlar el ~, pero aquí hay una solución fácil: use gsub para cambiar ~ a un espacio en blanco en el paso justo antes de trazar.

Algunos códigos:

corpus <- Corpus(VectorSource(y))
tdm <- TermDocumentMatrix(corpus, control=list(tolower=FALSE)) ## Edit 1

m <- as.matrix(tdm)
v <- sort(rowSums(m), decreasing = TRUE)
d <- data.frame(word = names(v), freq = v)
d$word <- gsub("~", " ", d$word) ## Edit 2

wordcloud(d$word, d$freq)

enter image description here

4
Andrie 9 nov. 2011 a las 22:37
Esta fue una solución fácil. Estaba tratando de abordarla usando el paquete tm, que era innecesario. Gracias.
 – 
Tyler Rinker
9 nov. 2011 a las 22:45