--- title: "Extracci\u00f3n de palabas clave" date: "`r Sys.Date()`" author: "Agust\u00edn Nieto" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{extraccion_palabras_clave} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = FALSE, comment = "#>" ) ``` ## Introducción En este artículo presentamos las utilidades de la función `acep_extract()` para la extracción de palabras clave en un corpus de notas sobre la conflictividad laboral en la industria pesquera argentina con un enfoque de diccionario. ## El corpus de notas Para que este artículo pueda reconstruirse en CRAN sin depender de descargas externas, los ejemplos ejecutables usan `ACEP::acep_bases$lc_720`, una muestra incluida en el paquete. Se compone de `r nrow(ACEP::acep_bases$lc_720)` notas y `r length(ACEP::acep_bases$lc_720)` variables: `r paste0(names(ACEP::acep_bases$lc_720), collapse = ', ')`. En una sesión interactiva con conexión también se puede cargar el corpus completo de Revista Puerto con `acep_load_base(acep_bases$rp_mdp)`. ```{r setup, eval=require("tibble"), message=FALSE} # Cargamos la librería ACEP library(ACEP) # Cargamos una muestra incluida en el paquete rev_puerto <- acep_bases$lc_720 # Imprimimos la base en consola rev_puerto ``` ## Los diccionarios Una vez cargada la base de notas vamos a crear variables numéricas y una de carácter que contengan las frecuencias de palabras totales, la frecuencia de palabras de cada diccionario usado para cada una de las notas y las palabras clave mencionadas en cada nota. En esta parte del código haremos uso de las funciones `acep_count()` y `acep_extract()`. También crearemos diccionarios breves para identificar menciones a conflictos, huelgas y actores colectivos. ```{r diccionarios0, eval=require("tibble"), message=FALSE} # Creamos el diccionario de palabras que refieren a huelgas dicc_huelgas <- c("en paro", "al paro", "huelga", "huelguistas", "paro y movil", "paro de actividades", "conciliación obligatoria", "un paro", "paro total", "paro parcial", "trabajo a reglamento", "el paro", "de brazos caídos") # Cargamos el diccionario de palabras que refieren a conflictividad dicc_conflictos_base <- c("conflicto", "conflictos", "protesta", "protestas", "reclamo", "reclamos", "paro", "huelga", "movilización", "manifestación") dicc_conflictos <- unique(c(dicc_conflictos_base, dicc_huelgas)) # Creamos la variable con la frecuencia de palabras que refieren a conflictividad rev_puerto$frec_conflictos <- acep_count(rev_puerto$nota, dicc_conflictos) # Creamos la variable con la frecuencia de palabras que refieren a huelgas rev_puerto$frec_huelgas <- acep_count(rev_puerto$nota, dicc_huelgas) # Creamos el diccionario de palabras que refieren a actores colectivos dicc_actores <- c("trabajadores", "docentes", "sindicato", "vecinos", "municipal", "gobierno") # Creamos la variable con la frecuencia de palabras que # refieren a actores colectivos rev_puerto$frec_actores <- acep_count(rev_puerto$nota, dicc_actores) # Imprimimos la base en consola rev_puerto ``` Ahora vamos a usar la función `acep_extract()` para extraer las palabras clave de los diccionarios de conflictividad, huelgas y actores colectivos que aparecen en cada una de las notas de la muestra. ```{r diccionarios1, eval=require("tibble")} # Creamos la variable con las palabras que refieren a conflictividad rev_puerto$extract_conflictos <- acep_extract(rev_puerto$nota, dicc_conflictos, izq = "") # Creamos la variable con las palabras que refieren a huelgas rev_puerto$extract_huelgas <- acep_extract(rev_puerto$nota, dicc_huelgas) # Creamos la variable con las palabras que # refieren a actores colectivos rev_puerto$extract_actores <- acep_extract(rev_puerto$nota, dicc_actores) # Imprimimos la base en consola rev_puerto ``` ## Las palabras clave extraídas Ya construidas las variables nos ocuparemos de poner el foco en el rendimiento de la función `acep_extract()`. Seleccionaremos las columnas referidas a las extracciones de conflictos y huelgas. Veamos. ```{r ratio, eval=require("tibble"), message=FALSE} # Seleccionamos las variables de extracción de palabras clave rev_puerto_huelgas <- rev_puerto[rev_puerto$extract_huelgas != "",] rev_puerto_actores <- rev_puerto_huelgas[rev_puerto_huelgas$extract_actores != "",] rev_puerto_seleccion <- rev_puerto_actores[ , c('extract_conflictos', 'extract_huelgas', 'extract_actores')] # Imprimimos la base en consola rev_puerto_seleccion ``` ## Nota final A lo largo de este breve tutorial sobre la función `acep_extract()` del paquete ACEP buscamos ejemplificar de qué modo puede ser usada esta función para individualizar cada una de las palabras clave que fueron contabilizadas en las notas con la función `acep_count()`.