Skip to contents

Funciones a presentar:

En este artículo se explicarán los procesos que realizan las funciones:

  • acep_token()

  • acep_token_table()

  • acep_token_plot()

Función acep_token()

En primer lugar cargamos la librería ACEP. Luego, cargamos una base de tweets para su prueba.

library(ACEP)

url <- "https://observatoriodeconflictividad.org/basesdatos/la_fraternidad.rds"

base <- acep_load_base(url)[ , c("text")]$text

Ejecutamos la función acep_token() para los primeros dos elementos de la base.

¿Cuál es el resultado?

La función acep_token toma el vector y realiza diferentes acciones:

  • Verifica que el objeto entregado sea un vector (de lo contrario indica un mensaje de advertencia)

  • Cambia todo el texto a minúsculas

  • Crea un nuevo data frame con la siguiente información:

    • id_doc (columna que numera el documento)

    • texto (vector original)

    • id_token (numeración de cada uno de los tokens obtenidos)

    • id_token_doc (numeración del token por vector)

    • token (el token propiamente)

Cabe mencionar que los tokens quedarán identificados a través de los espacios en blanco, es decir, cada palabra es un token.

tweets <- acep_token(base[1:2])

tweets |> head()
#>   id_doc
#> 1      1
#> 2      1
#> 3      1
#> 4      1
#> 5      2
#> 6      2
#>                                                                                                                  texto
#> 1                                                                                  @LuisGasulla Googlea La Fraternidad
#> 2                                                                                  @LuisGasulla Googlea La Fraternidad
#> 3                                                                                  @LuisGasulla Googlea La Fraternidad
#> 4                                                                                  @LuisGasulla Googlea La Fraternidad
#> 5 👉PROTESTA/La Fraternidad desoye conciliación obligatoria y mantiene paralizados los trenes\nhttps://t.co/644Ak0HZ7I
#> 6 👉PROTESTA/La Fraternidad desoye conciliación obligatoria y mantiene paralizados los trenes\nhttps://t.co/644Ak0HZ7I
#>   id_token id_token_doc         token
#> 1        1            1  @luisgasulla
#> 2        2            2       googlea
#> 3        3            3            la
#> 4        4            4   fraternidad
#> 5        5            1 👉protesta/la
#> 6        6            2   fraternidad

En este resultado podemos ver cómo la función identifica a cada observación como un documento aparte (en este caso, cada tweet es un documento identificado en la columna id_doc). La numeración del id_token continúa de principio a fin mientras que la numeración del id_token_doc se reinicia cada vez que empieza un nuevo documento. La columna texto presenta el documento completo original y por último podemos visualizar la columna token en la que la función aísla cada token.

Función acep_token_table()

Una vez que tenemos el data frame creado a partir de la función acep_token(), podemos utilizar la función acep_table() para obtener un nuevo data frame que nos proveerá la siguiente información:

  • token

  • frec (frecuencia que aparece ese token)

  • prop (el peso que tiene ese token en el total del corpus)

Para obtener una tabla que tenga sentido, podemos utilizar en primer lugar la función acep_clean() para deshacernos de los stop words, urls, menciones, # etc.

base_limpia <- acep_clean(base)

En segunda instancia, creamos un nuevo objeto derivado de la base limpia con acep_token() que nos devuelve, como vimos previamente, una tabla con la información de cada token.

tabla_tokenizada <- acep_token(base_limpia)
head(tabla_tokenizada)
#>   id_doc
#> 1      1
#> 2      1
#> 3      2
#> 4      2
#> 5      2
#> 6      2
#>                                                                              texto
#> 1                                                              googlea fraternidad
#> 2                                                              googlea fraternidad
#> 3 protesta fraternidad desoye conciliacion obligatoria mantiene paralizados trenes
#> 4 protesta fraternidad desoye conciliacion obligatoria mantiene paralizados trenes
#> 5 protesta fraternidad desoye conciliacion obligatoria mantiene paralizados trenes
#> 6 protesta fraternidad desoye conciliacion obligatoria mantiene paralizados trenes
#>   id_token id_token_doc        token
#> 1        1            1      googlea
#> 2        2            2  fraternidad
#> 3        3            1     protesta
#> 4        4            2  fraternidad
#> 5        5            3       desoye
#> 6        6            4 conciliacion

Por último, aplicamos la función acep_token_table() a la columna token.

Por defecto, acep_token_table() nos devuelve los 10 primeros registros, es decir, las 10 palabras con mayor frecuencia.

Si quisiéramos modificar la cantidad de palabras, debemos modificar el parámetro u =

Suponiendo que queremos obtener los 20 token de mayor frecuencia:

Ejemplo: acep_token_table(tabla_tokenizada$token, u = 20)

acep_token_table(tabla_tokenizada$token)
#>          token frec       prop
#> 1  fraternidad 5470 0.26719422
#> 2      aprista 1859 0.09080696
#> 3         peru 1742 0.08509183
#> 4  indoamerica 1689 0.08250293
#> 5       eudoro 1648 0.08050020
#> 6     terrones 1648 0.08050020
#> 7      gracias 1614 0.07883939
#> 8        nuevo 1609 0.07859515
#> 9           dr 1598 0.07805784
#> 10     negrete 1595 0.07791129

Función acep_token_plot()

Esta función permite visualizar en un gráfico de barras, los tokens más frecuentes.

A partir del resultado de acep_token(), podemos obtener el gráfico con los tokens más frecuentes.

Por defecto, el resultado serán los 10 tokens más frecuentes, sin embargo, a través del parámetro “u =” podemos modificar la cantidad de tokens a visualizar.

En este ejemplo, tomamos la tabla tokenizada y le indicamos la columna “token” a visualizar.

acep_token_plot(tabla_tokenizada$token, u =15)