sábado, 7 de septiembre de 2013

Usando R. Filtrando textos para encontrar uso de alguna palabra dada.

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.

En el post anterior empleamos la función findAssocs del paquete tm, para hallar las asociones más frecuentes en un texto dado. En este caso, buscamos la asociación más frecuente con la palabra pueblo en los discursos emitidos por Chávez, el pequeño grupo de ellos que hemos obtenidos. Se encontró más de 1500 términos asociados con esa palabra en un 80% o más de las veces. Dado la extensión del resultado, creamos una gráfica con solo 250 términos, lo que dejó fuera de la visualización a gran parte del año 2001 y año 2002, dos momentos en los que la palabra pueblo se usó con mayor frecuencia.El año 2001 es particularmente interesante. pueblo aparece mucho más veces en los siete textos, asociado con un número mayor de palabras, con respecto a los dos años anteriores.

En el presente post veremos como obtener una relación sobre los textos en los que aparece una palabra dada, en este caso, pueblo. No obtendremos una relación sobre el número de veces que aparece la palabra en el documento. Más bien obtendremos información sobre el número de textos que incluyen la palabra solicitada.

Filtrando palabras

Para saber si una palabra dada aparece en los textos analizados, particularmente en cuántos de ellos, se emplea la función tm_filter(). Veamos primero cuántos textos tiene cada base por año y luego examinemos en cuantos de esos textos aparece, por ejemplo, la palabra puebloEscribimos:

c1999
## A corpus with 9 text documents
c2000
## A corpus with 7 text documents
c2001
## A corpus with 6 text documents
c2002
## A corpus with 12 text documents

tm_filter(c1999, FUN = searchFullText, "pueblo", doclevel = TRUE)
## A corpus with 7 text documents
tm_filter(c2000, FUN = searchFullText, "pueblo", doclevel = TRUE)
## A corpus with 7 text documents
tm_filter(c2001, FUN = searchFullText, "pueblo", doclevel = TRUE)
## A corpus with 6 text documents
tm_filter(c2002, FUN = searchFullText, "pueblo", doclevel = TRUE)
## A corpus with 12 text documents

La relación, entonces es la siguiente:

Lapso Textos Pueblo
1999 9 7
2000 7 7
2001 6 6
2002 12 12

En los 9 textos del año 1999, la palabra pueblo aparece en 7 de ellos. En los siguientes años, la palabra se emplea en cada uno de los textos que componen la base de datos correspondiente. Podemos obtener información sobre los textos en los cuales esta palabra no se emplea. Para ello se emplea la función tm_index():

tm_index(c1999, FUN = searchFullText, "pueblo")
##    1998cartasbillcl.txt     1999cartachacal.txt   1999cartacortesup.txt 
##                    TRUE                   FALSE                    TRUE 
##        1999ciendias.txt   1999defilemiljuul.txt 1999discursoproce22.txt 
##                    TRUE                    TRUE                    TRUE 
##     1999enturdaneta.txt        1999juramgab.txt  1999tomaposesion22.txt 
##                   FALSE                    TRUE                    TRUE

La palabra pueblo no se emplea en la carta enviada por Chávez a Ilich Ramírez ni en la entrevista en la que reflexiona sobre su relación con Urdaneta Hernández

Un último ejemplo para destacar la utilidad de estas funciones. Veamos en qué textos emplea Chávez la palabra escualido

tm_filter(c1999, FUN = searchFullText, "escualido")
## A corpus with 0 text documents
tm_filter(c2000, FUN = searchFullText, "escualido")
## A corpus with 0 text documents
tm_filter(c2001, FUN = searchFullText, "escualido")
## A corpus with 3 text documents
tm_filter(c2002, FUN = searchFullText, "escualido")
## A corpus with 0 text documents

La palabra escualido(s) aparece sólo en 2001. Veamos en qué textos

tm_index(c2001, FUN = searchFullText, "escualido")
##     2001cadena156.txt    2001cadena2910.txt      2001cadena88.txt 
##                  TRUE                  TRUE                  TRUE 
##  2001dgrupotres74.txt      2001heinzent.txt 2001salutacion181.txt 
##                 FALSE                 FALSE                 FALSE

La palabra es empleada por Chávez en los textos correspondientes a las tres cadenas nacionales y no en las alocuciones ofrecidas en un contexto más formal. Por lo que podemos presumir que escualido en un término empleado en un contexto local, para una audiencia nacional. La función tm_filter() también es útil para crear un sub-corpus que contenga los documentos en los que aparece la palabra, o conjunto de palabras, deseadas.

No hay comentarios: