sábado, 7 de septiembre de 2013

Usando R para clasificar textos. Cluster jerarquicos

Hugo Chávez. Asociaciones entre términos presentes en algunos de sus discursos, 1999-2002.

Hugo Chávez. Asociaciones entre términos presentes en algunos de sus discursos, 1999-2002.

El paquete tm nos permite también encontrar qué textos guardan mayor relación entre ellos. Para ello nos permite emplear cluster, o conglomerados, jerárquicos y también k-means. No obstante, se pueden emplear otros algorritmos empleando otros paquetes de R tales como cluster, gclus, vegan, vegclus, ape, FactoMineR, entre otros. Trabajaremos este post con las funciones desarrolladas en el paquete tm, para lo cual debemos trabajar con el paquete proxy.

Cluster jerárquico

Aplicamos cluster jerárquico en este concepto para observar qué discursos son más parecidos entre sí durante los años analizados. También podríamos emplear la técnica para observar durante qué años los contenidos de los discursos tendieron a ser semejantes. El cluster jerárquico emplea medidas de distancias para calcular qué tan cercano estan los textos entre sí. Existen numerosas medidas de distancias que se emplean para clasificar textos, sin embargo en el contexto de minería de texto usualmente se emplean las distancias “coseno” y “Jaccard”. Discutir las virtudes y limitaciones de esta medida está fuera del alcance de este post. Posiblemente más adelante revisemos este punto. Por ahora emplearemos la distancia “coseno” para examinar la similitud entre los diferentes textos que componen nuestra base de datos textual con algunos discursos emitidos por el presidente Chávez entre 1999 y 2002.

El primer paso para clasificar los texto dentro de este paradigma consiste en crear una matriz que calcule la distancia entre los textos. Para ello empleamos la funcion dissimilarity del paquete tm. Recordemos que seguimos empleando las bases de datos sin eliminar los términos funcionales y que los discursos, escritos o las transcripciones de discursos orales, que analizmos son:

H. Chavez. Textos analizados, 1999-2002
MetaID Author Heading Description ID Language Origen
0 Hugo Chavez Bill Clinton carta clinton Spanish www.analitica.com
0 Hugo Chavez Ilich Ramirez Sanchez carta chacal Spanish www.analitica.com
0 Hugo Chavez Corte Suprema de Justicia carta csj Spanish www.analitica.com
0 Hugo Chavez Cien dias de gobierno cadena nacional cien Spanish www.analitica.com
0 Hugo Chavez Desfile julio discurso desfile Spanish www.analitica.com
0 Hugo Chavez Alocucion Proceres discurso proceres Spanish www.analitica.com
0 Hugo Chavez Jesus Urdaneta Hernandez entrevista urdaneta Spanish www.analitica.com
0 Hugo Chavez Juramentacion Gabinete cadena nacional gabinete Spanish www.analitica.com
0 Hugo Chavez Discurso toma de posesion discurso posesion Spanish www.analitica.com
0 Hugo Chavez Respuesta Conferencia Episcopal carta cev Spanish www.analitica.com
0 Hugo Chavez Dieciocho meses de gobierno cadena nacional dieciocho Spanish www.analitica.com
0 Hugo Chavez Clausura II Cumbre OPEP discurso opep Spanish www.analitica.com
0 Hugo Chavez Palabras en el Panteon Nacional discurso panteon Spanish www.analitica.com
0 Hugo Chavez Frijolito II entrevista frijolitoII Spanish www.analitica.com
0 Hugo Chavez Revolucion Democratica programa gobierno rev.democ Spanish www.analitica.com
0 Hugo Chavez Presupuesto nacional cadena nacional presupuesto Spanish www.analitica.com
0 Hugo Chavez Cadena nacional agosto cadena cadago Spanish www.analitica.com
0 Hugo Chavez Cadena nacional junio cadena cadjun Spanish www.analitica.com
0 Hugo Chavez cadena nacional octubre cadena cadoct Spanish www.analitica.com
0 Hugo Chavez Cumbre Grupo de los Tres discurso grupo.tres Spanish www.analitica.com
0 Hugo Chavez Entrevista Heinz Dieterich entrevista dietrich Spanish www.analitica.com
0 Hugo Chavez Salutacion Cuerpo Diplomatico discurso salutacion Spanish www.analitica.com
0 Hugo Chavez Cadena al Retoma el poder cadena nacional retoma Spanish www.analitica.com
0 Hugo Chavez Francisco Arias Cardenas entrevista arias.cardenas Spanish www.analitica.com
0 Hugo Chavez Consejo Federal de Gobierno discurso consejo Spanish www.analitica.com
0 Hugo Chavez En la FAO discurso fao Spanish www.analitica.com
0 Hugo Chavez Entrega Premio Nacional Periodista discurso premio.periodista Spanish www.analitica.com
0 Hugo Chavez Marcha en Av Bolivar discurso marcha.respaldo Spanish www.analitica.com
0 Hugo Chavez Plan vivienda productiva discurso vivenda.productiva Spanish www.analitica.com
0 Hugo Chavez Con Jorge Gestoso entrevista j.gestoso Spanish www.analitica.com
0 Hugo Chavez con Martha Harnecker entrevista m.harnecker Spanish www.analitica.com
0 Hugo Chavez En Monterrey discurso monterrey Spanish www.analitica.com
0 Hugo Chavez Con medios internacionales entrevista m.internacionales Spanish www.analitica.com
0 Hugo Chavez Vision estrategica Venezuela discurso vision Spanish www.analitica.com
require(proxy)
## Loading required package: proxy
## 
## Attaching package: 'proxy'
## 
## The following object is masked from 'package:stats':
## 
## as.dist, dist
distancia99 <- dissimilarity(tdm.99, method = "cosine")
distancia00 <- dissimilarity(tdm00, method = "cosine")
distancia01 <- dissimilarity(tdm01, method = "cosine")
distancia02 <- dissimilarity(tdm02, method = "cosine")

El segundo paso consiste en visualizar los textos clasificados. Para ello empleamos la funciónn hclust. Para crear la aglomeración existen diversos métodos. En algún otro post discutiremos cada uno de ellos. En esta oportunidad simplemente emplearemos el métodos ward

plot(hclust(distancia99, method = "ward"), cex = 0.8, main = "Discursos 1999", 
    sub = "metodo Ward", ylab = "historia de aglomeracion", xlab = "Clasificación")

plot of chunk distancias99

El cluster identifica dos grupos de textos. La carta dirigida a Ilich Ramírez y los 8 restantes. Podemos observar que las cartas presentan mayores similarides entre sí que con el resto de los textos. Notamos además que el nivel de similaridad mayor entre los documentos ocurre en el contenido de la cadena nacional con motivo de los primeros cien días de gobierno y el discurso ofrecido el 2 de febrero por el presidente Chávez a raíz de la toma de posesión. Igualmente, el contenido de estos dos discursos está próximo al contenido del discurso ofrecido el mismo 2 de febrero en los Próceres.

plot(hclust(distancia00, method = "ward"), cex = 0.8, main = "Discursos 2000", 
    sub = "metodo Ward", ylab = "historia de aglomeracion", xlab = "Clasificación")

plot of chunk distancias00

Los textos de los discursos del año 2000 se dividen en dos grandes grupos. De un lado destaca el discurso de clausura de la Cumbre de la OPEP cuyo contenido en alguna forma es algo similar a la respuesta de Chávez a la Conferencia Episcopal y a la propuesta, programa de gobierno, para Continuar la Revolución. Sorprendentemente estos dos últimos textos han sido clasificados como bastantes similares. Del otro lado, el segundo grupo, consta de dos textos algo parecidos, el discurso en el Panteon y un conjunto de entrevistas que le hacen en diferentes contextos, más dos textos muy similares, que son la alocución con motivo de los dieciocho meses de gobierno y la alocución con motivo del Presupuesto 2000. La similaridad entre estos dos textos no sugiere que en ambos se discute ampliamente temas económicos.

plot(hclust(distancia01, method = "ward"), cex = 0.8, main = "Discursos 2001", 
    sub = "metodo Ward", ylab = "historia de aglomeracion", xlab = "Clasificación")

plot of chunk distancias01

En 2001 encontramos también dos grupos de textos. El discurso con motivo de la instalación del Grupo de los Tres, totalmente distinto a los textos del segundo grupo. En este último encontramos textos con cierto parecido, la Salutación al Cuerpo Diplomático, la entrevista concedida a H. Dieterich así como la cadena del 29 de octubre. Las cadenas del 15 de junio y del 8 de agosto, son bastante similares y ambas, están próximas al contenido del texto de la cadena de octubre.

plot(hclust(distancia02, method = "ward"), cex = 0.8, main = "Discursos 2002", 
    sub = "metodo Ward", ylab = "historia de aglomeracion", xlab = "Clasificación")

plot of chunk distancias02

En 2002 encontramos nuevamente dos grupos de documentos. En el primero figuran el discurso la FAO, y el discurso en Monterrey. En el segundo encontramos documentos con cierta nivel de cercanía. En este grupo encontramos que la entrevista concedida a Martha Hanecker y la rueda de prensa con motivo de la retoma del poder son bastante similares, al igual que el discurso ofrecido en la Av. Bolívar con motivo de la marcha en respaldo a su gobierno con la entrevista concedida a Jorge Gestoso.

En general podemos concluir que la técnica de cluster jerárquico clasifica en forma bastante aceptable los discursos que venimos analizando.

No hay comentarios: