Skip to content

[R-es] wordcloud y tabla de palabras [Avanzando]

3 messages · Alfredo David Alvarado Ríos, Carlos Ortega, Alfredo Alvarado

#
Buenas tardes grupo. Saludos cordiales Carlos J., muchas gracias por
tu orientación. Efectivamente, me había dado cuenta que la razón por
la que no se aplicaba colnames era porque no tenía columnas.  La
cuestión es que no logro visualizar completamente/claramente en qué
parte del proceso de creación del corpus se puede hacer.
Sin embargo, siguiendo el ejemplo de
http://biostat.jhsph.edu/~jleek/code/sotu2011-2012comparison.R
(proporcionado por Carlos O.), y las orientaciones que me han brindado
he podido seguir avanzando en el proceso de crear wordclouds para dos
informes de 2 años diferentes.

Versión R: 3.1.1
require(tm)
require(wordcloud)
require(Rcpp)


tmpinformes<-data.frame(c("todo el informe 2005", "todo el informe
2013"), row.names=c("2005", "2013"))
ds<- DataframeSource(tmpText)
ds<- DataframeSource(tmpinformes)
corp = Corpus(ds)
corp = tm_map(corp,removePunctuation)
corp = tm_map(corp,content_transformer(tolower))
corp = tm_map(corp,removeNumbers)
corp = tm_map(corp, stripWhitespace)
corp = tm_map(corp, removeWords, sw)
corp = tm_map(corp, removeWords, stopwords("spanish"))
term.matrix<- TermDocumentMatrix(corp)
term.matrix<- as.matrix(term.matrix)
colnames(term.matrix) <- c("Año2005","Año2013")
png(file="Org2005vs2013.png",height=600,width=1200)
par(mfrow=c(1,2))
comparison.cloud(term.matrix,max.words=300,random.order=FALSE,colors=c("#1F497D","#C0504D"),main="Differences
Between Org 2005/2013")
commonality.cloud(term.matrix,random.order=FALSE,color="#F79646")
dev.off()

"todo el informe 2005" y "todo el informe 2013" es todo el informe
copiado en la ventana "script" de Rgui.Son dos informes que tengo el
directorio por defecto. También tuve que trabajar el texto plano de
manera que no tuviera ninguna comilla para poder hacer
c("informe2005", "informe2013") de manera que la combinación estuviera
bien delimitada en los dos documentos que empiezan y terminan con ".

El .png que se creó en el directorio por defecto de R contiene tal
como el del ejemplo de la página web citada más arriba, una nube
comparativa de los dos años diferenciada por colores, y una al lado en
la cual aparecen las coincidencias.

Ahora bien, la pregunta que tengo es si es posible realizar el
procedimiento con muchos más años, en el ejercicio que me propongo 10
años en un solo corpus que puedan tenerse en 10 wordclouds para
realizar la comparación. Me gustaría que fuera una ventana por
wordcloud, y no una sola con varios años.
Gracias nuevamente a todos.





El día 29 de julio de 2014, 13:19, Carlos J. Gil Bellosta
<cgb en datanalytics.com> escribió:
#
Buenas tardes grupo. Saludos cordiales a todos.
Nuevamente muchas gracias Carlos O. por tus orientaciones y atención.
Siguiendo tu sugerencia, acá copio los dos documentos trabajados como
me dijiste, con las dos wordclouds individuales. Efectivamente, logré
hacerlas, y hasta experimenté un poco con barplot, pero todavía no
copio el ejemplo porque no lo tengo del todo "bajo control". Sin
embargo, hasta las nubes de palabras, y por ejemplo los comandos los
corrí:

1) >findFreqTerms(tdm2, lowfreq=15)
2) >findAssocs(tdm2, "casos", 0.50)
3) >d<-tm_map(d,removeWords, c("registrados", "número", "respectivamente"))

También los corrí con sus respectivos resultados.
Esta es la forma cómo hice el trabajo para cada fichero individualmente:


########### 1er Documento ######################
######### 2do documento #########
#################################


En este punto, hechas las dos wordclouds individuales (empezaré a
trabajar los ficheros de texto plano para el resto de los años,
entonces tengo dos interrogantes:

*** La primera: de acuerdo con el comentario de Carlos O. esta es la
base para el próximo paso, que es generar un bucle con todas las
wordclouds realizadas. ¿Se realiza con lapply?

*** La segunda: es una pregunta que me surge porque si cargo/copio/ el
fichero en R (convertirlo en objeto)
Y luego trato de seguir la misma lógica que cuando copié ayer todo el
documento en la ventana de script de Rgui y lo corrí (sólo que no está
todo el texto entre "", sino los dos objetos cargados en texto plano
en la memoria de R):
El resultado es:
row names supplied are of the wrong length
Lap regunta que me hago, es ¿por qué sólo funciona con todo el texto
copiado, y no con los objetos creados, con los cuales se hicieron las
wordclouds de forma individual?

Nuevamente agradecido por lo que me puedan orientar/ilustrar para
poder hacer el bucle con los períodos que quiero considerar para el
análisis.





El día 30 de julio de 2014, 3:34, Carlos Ortega
<cof en qualityexcellence.es> escribió: