Hugo Chávez. Asociaciones entre términos presentes en algunos de sus discursos, 1999-2002.
Además de las distribuciones de frecuencia, la minería de texto nos permite encontrar, dado un término, las palabras que tienden a asociarse en el texto o el conjunto de textos analizados. Este procedimiento es similar a encontrar la correlación entre los téminos. El paquete tm tiene la función findAssoc() con este propósito. Igualmente nos permite graficas estas asociaciones, creando un gráfo. Para ello necesitamos descargar y subir a la cónsola el paquete Rgraphiz. Un paquete para el análisis de redes creado por Bioconductor. Veamos como buscamos asociaciones entre los diferentes discursos con los que hemos venido trabajando. Discursos emitidos por H. Chávez entre 1999 y 2002, obtenidos de Hugo Chávez Frías en La BitBlioteca. Para el presente ejercicio, seguimos trabajando con las bases de datos de textos sin eliminar los términos funcionales.
Tenemos una corpa heterogéneas. Hay transcripciones de alocuciones hechas en marchas o en cadena nacional. Hay también correspondencia escrita, entrevistas, así como programas de gobierno. Recordemos las veintes palabras más frecuentes en la corpa analizada:
Encontrando asociaciones
Para encontrar asociacion con un término dado, incluímos en la función la matriz documental en la que deseamos realizar el proceso, así como el nivel de asociación deseado entre las palabras. Las palabras que se asocian con otras a un nivel de 75% o más, tiende a aparecer permanentemente juntas en el texto analizada. Por ejemplo, busquemos en la matriz documental de las bases de textos, 1999-2002, las palabras que se asociacian con el término pueblo en un 80% o más. Escribimos:
findAssocs(tdm.99, "pueblo", 0.8)
## siglo nombre academia america, bolivariano
## 0.98 0.96 0.95 0.95 0.95
## caracas. culpa. entero, especiales hora
## 0.95 0.95 0.95 0.95 0.95
## lugar norteamerica, pecho, serie ustedes;
## 0.95 0.95 0.95 0.95 0.95
## ver, xxi aqui, queridos hoy,
## 0.95 0.95 0.94 0.94 0.93
## simon latina caribe hermoso inmenso
## 0.93 0.92 0.91 0.91 0.91
## acompanie esta, pueblos, adelante, caribe,
## 0.90 0.90 0.90 0.89 0.89
## culpa, fuerza hoy mensaje venezolano.
## 0.89 0.89 0.89 0.89 0.89
## bolivariana, caracas, desde llamando misma
## 0.88 0.88 0.88 0.88 0.88
## moral, venezolano andan campos caribe.
## 0.88 0.88 0.87 0.87 0.87
## constituyente. cumplir frente habra historia.
## 0.87 0.87 0.87 0.87 0.87
## nadie nosotros, pesar resurreccion democracia,
## 0.87 0.87 0.87 0.87 0.86
## dia ministros primer servicio tierra,
## 0.86 0.86 0.86 0.86 0.86
## venezuela venezuela. centroamerica, debajo entero.
## 0.86 0.86 0.85 0.85 0.85
## nuestros pequenio representantes sencillamente tengan
## 0.85 0.85 0.85 0.85 0.85
## tenido bolivar. venezuela, america bolivar,
## 0.85 0.84 0.84 0.83 0.83
## compatriotas, futuro gabinete libro mismo
## 0.83 0.83 0.83 0.83 0.83
## nuevo pido sol vengo voluntad,
## 0.83 0.83 0.83 0.83 0.83
## interes nuestro pueblo, sus venir
## 0.82 0.82 0.82 0.82 0.82
## abogamos civiles hijos, nacimiento nuestra
## 0.81 0.81 0.81 0.81 0.81
## padre siga signo tierra alma
## 0.81 0.81 0.81 0.81 0.80
## decreto otro
## 0.80 0.80
# igualmente escribiríamos para saber la evolución de esta asociación en los
# otros años: findAssocs(tdm00, 'pueblo',0.8) findAssocs(tdm01,
# 'pueblo',0.8) findAssocs(tdm02, 'pueblo',0.8)
Evidentemente que más adelante, en otros posts, cuando limpiemos las base de datos de texto de términos funcionales, números y símbolos podremos observar un patrón más claro en la asociaciones. Por ahora podemos visualizar en qué forma varió la asociación con la palabra pueblo en los diferentes discursos en los años analizados. Para ello, transformemos las asociaciones encontradas en un data frame, agreguemos una segunda variable con el años de cada asociacion y finalmente creemos un solo data frame. Por ultimo, elaboremos un small multiple para observar la evolución de las asociaciones con el término pueblo en los cuatro años analizados:
require(reshape2)
## Loading required package: reshape2
pueblo99 <- data.frame(melt(findAssocs(tdm.99, "pueblo", 0.8)))
pueblo99$lapso <- rep("1999", length(pueblo99))
pueblo00 <- as.data.frame(melt(findAssocs(tdm00, "pueblo", 0.8)))
pueblo00$lapso <- rep("2000", length(pueblo00))
pueblo01 <- as.data.frame(melt(findAssocs(tdm01, "pueblo", 0.8)))
pueblo01$lapso <- rep("2001", length(pueblo01))
pueblo02 <- as.data.frame(melt(findAssocs(tdm02, "pueblo", 0.8)))
pueblo02$lapso <- rep("2002", length(pueblo02))
puebloTodo <- rbind(pueblo99, pueblo00, pueblo01, pueblo02)
length(puebloTodo)
## [1] 2
dim(puebloTodo)
## [1] 1562 2
Tenemos un data frame demasiado largo para visualizarlo sin que Google se queje. mas de mil quinientos términos Vamos a seleccionar los 250 primeros términos asociados con la palabra *pueblo, lo que introducirá cierto sesgo por cuanto que la data se ha formateado de tal forma que los términos aparezcan ordenados por año. Por lo tanto, el año 2001 estará incompleto, en tanto que no parecerá el año 2002:
puebloCincuenta <- head(puebloTodo, 250)
Visualizando el data frame:
Observamos que Chávez emplea con mayor amplitud la palabra pueblo en los años 2001 y 2002 (no incluido en la gráfica). La aparición esporádica de este término en el año 2000 seguramente se debe al tipo de textos que hemos incluido, básicamente programas de gobierno.
No hay comentarios.:
Publicar un comentario