Title: | Análisis Computacional de Eventos de Protesta |
---|---|
Description: | La librería 'ACEP' contiene funciones específicas para desarrollar análisis computacional de eventos de protesta. Asimismo, contiene bases de datos con colecciones de notas sobre protestas y diccionarios de palabras conflictivas. La colección de diccionarios reune diccionarios de diferentes orígenes. The 'ACEP' library contains specific functions to perform computational analysis of protest events. It also contains a database with collections of notes on protests and dictionaries of conflicting words. Collection of dictionaries that brings together dictionaries from different sources. |
Authors: | Agustín Nieto [aut, cre] |
Maintainer: | Agustín Nieto <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.0.3.9005 |
Built: | 2025-03-06 05:30:12 UTC |
Source: | https://github.com/agusnieto77/acep |
Contiene colecciones de notas de distintos portales noticiosos (una muestra corta). Una segunda colección es de notas del periódico bahiense La Nueva. También tiene resúmenes estadísticos de las bases completas para el desarrollo de los ejemplos de las funciones.
data(acep_bases)
data(acep_bases)
Es una lista con 8 objetos.
es una url para la descarga de una muestra del corpus de notas de La Nueva Provincia de Bahía Blanca
es una url para la descarga del corpus de notas de la Revista Puerto
es un data frame con indicadores de conflictividad basados en los datos de la Revista Puerto
es una url para la descarga del corpus de notas de La Capital
es una url para la descarga del corpus de notas de la Revista Puerto
es una url para la descarga del corpus de notas de Ecos Diarios
es una url para la descarga del corpus de notas de La Nueva
es una url para la descarga del corpus de notas de La Nación
es un data.frame con una oración procesada con spacyr
es un vector con titulares de notas referidas a conflictos sociales
Nieto, Agustín 2020 «Intersecciones entre historia digital e historia social: un ejercicio de lectura distante sobre la conflictividad marítima en la historia argentina reciente». Drassana: revista del Museu Maritim (28):122-42. (Revista Drassana)
acep_bases$rp_procesada[1:6, ]
acep_bases$rp_procesada[1:6, ]
Función que limpia y normaliza las notas/textos.
acep_clean( x, tolower = TRUE, rm_cesp = TRUE, rm_emoji = TRUE, rm_hashtag = TRUE, rm_users = TRUE, rm_punt = TRUE, rm_num = TRUE, rm_url = TRUE, rm_meses = TRUE, rm_dias = TRUE, rm_stopwords = TRUE, rm_shortwords = TRUE, rm_newline = TRUE, rm_whitespace = TRUE, other_sw = NULL, u = 1 )
acep_clean( x, tolower = TRUE, rm_cesp = TRUE, rm_emoji = TRUE, rm_hashtag = TRUE, rm_users = TRUE, rm_punt = TRUE, rm_num = TRUE, rm_url = TRUE, rm_meses = TRUE, rm_dias = TRUE, rm_stopwords = TRUE, rm_shortwords = TRUE, rm_newline = TRUE, rm_whitespace = TRUE, other_sw = NULL, u = 1 )
x |
vector de textos al que se le aplica la función de limpieza de texto. |
tolower |
convierte los textos a minúsculas. |
rm_cesp |
remueve caracteres especiales. |
rm_emoji |
remueve los emojis. |
rm_hashtag |
remueve los hashtags. |
rm_users |
remueve las menciones de usuarixs de redes sociales. |
rm_punt |
remueve la puntuación. |
rm_num |
remueve números. |
rm_url |
remueve las url. |
rm_meses |
remueve los meses del año. |
rm_dias |
remueve los dias de la semana. |
rm_stopwords |
remueve palabras vacías. |
rm_shortwords |
remueve las palabras cortas. |
rm_newline |
remueve los saltos de línea. |
rm_whitespace |
remueve los espacios en blanco. |
other_sw |
su valor por defecto es NULL, sirve para ampliar el listado de stopwords con un nuevo vector de palabras. |
u |
umbral de caracteres para la función rm_shortwords. |
Si todas las entradas son correctas, la salida sera un vector de textos normalizados.
acep_clean("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_punt = FALSE)
acep_clean("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_punt = FALSE)
Función que limpia y normaliza las notas/textos.
acep_cleaning( x, tolower = TRUE, rm_cesp = TRUE, rm_emoji = TRUE, rm_hashtag = TRUE, rm_users = TRUE, rm_punt = TRUE, rm_num = TRUE, rm_url = TRUE, rm_meses = TRUE, rm_dias = TRUE, rm_stopwords = TRUE, rm_shortwords = TRUE, rm_newline = TRUE, rm_whitespace = TRUE, other_sw = NULL, u = 1 )
acep_cleaning( x, tolower = TRUE, rm_cesp = TRUE, rm_emoji = TRUE, rm_hashtag = TRUE, rm_users = TRUE, rm_punt = TRUE, rm_num = TRUE, rm_url = TRUE, rm_meses = TRUE, rm_dias = TRUE, rm_stopwords = TRUE, rm_shortwords = TRUE, rm_newline = TRUE, rm_whitespace = TRUE, other_sw = NULL, u = 1 )
x |
vector de textos al que se le aplica la función de limpieza de texto. |
tolower |
convierte los textos a minúsculas. |
rm_cesp |
remueve caracteres especiales. |
rm_emoji |
remueve los emojis. |
rm_hashtag |
remueve los hashtags. |
rm_users |
remueve las menciones de usuarixs de redes sociales. |
rm_punt |
remueve la puntuación. |
rm_num |
remueve números. |
rm_url |
remueve las url. |
rm_meses |
remueve los meses del año. |
rm_dias |
remueve los dias de la semana. |
rm_stopwords |
remueve palabras vacías. |
rm_shortwords |
remueve las palabras cortas. |
rm_newline |
remueve los saltos de linea. |
rm_whitespace |
remueve los espacios en blanco. |
other_sw |
su valor por defecto es NULL, sirve para ampliar el listado de stopwords con un nuevo vector de palabras. |
u |
umbral de caracteres para la función rm_shortwords. |
Si todas las entradas son correctas, la salida sera un vector de textos normalizados.
acep_cleaning("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_stopword = FALSE) acep_cleaning("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_stopword = TRUE)
acep_cleaning("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_stopword = FALSE) acep_cleaning("El SUTEBA fue al paro. Reclaman mejoras salariales.", rm_stopword = TRUE)
Función que devuelve un data.frame con el contexto de una o más palabras o frases según una ventana de palabras hacia las izquierda y otra ventana de palabras hacia la derecha.
acep_context(texto, clave, izq = 1, der = 1, ci = "\\b", cd = "\\S*")
acep_context(texto, clave, izq = 1, der = 1, ci = "\\b", cd = "\\S*")
texto |
vector con los textos a procesar. |
clave |
vector de palabras clave a contextualizar. |
izq |
número de palabras de la ventana hacia la izquierda. |
der |
número de palabras de la ventana hacia la derecha. |
ci |
expresión regular a la izquierda de la palabra clave. |
cd |
expresión regular a la derecha de la palabra clave. |
Si todas las entradas son correctas, la salida sera un data frame con el id de los textos procesado y el contexto de las palabras y/o frases entradas.
texto <- "El SOIP para por aumento de salarios" texto_context <- acep_context(texto = texto, clave = "para") texto_context
texto <- "El SOIP para por aumento de salarios" texto_context <- acep_context(texto = texto, clave = "para") texto_context
Reemplaza a la función 'acep_men' que cuenta la frecuencia de menciones de palabras que refieren a conflictos en cada una de las notas/textos.
acep_count(texto, dic)
acep_count(texto, dic)
texto |
vector de textos al que se le aplica la función de conteo de la frecuencia de menciones de palabras del diccionario. |
dic |
vector de palabras del diccionario utilizado. |
Si todas las entradas son correctas, la salida sera un vector con una frecuencia de palabras de un diccionario.
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_men(df$texto, diccionario) df
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_men(df$texto, diccionario) df
Función que usa las funciones acep_frec, acep_men y acep_int y devuelve una tabla con tres columnas nuevas: numero de palabras, número de menciones del diccionario, indice de intensidad.
acep_db(db, t, d, n)
acep_db(db, t, d, n)
db |
data frame con los textos a procesar. |
t |
columna de data frame que contiene el vector de textos a procesar. |
d |
diccionario en formato vector. |
n |
cantidad de decimales del indice de intensidad. |
Si todas las entradas son correctas, la salida sera una base de datos en formato tabular con tres nuevas variables.
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") acep_db(df, df$texto, diccionario, 4)
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") acep_db(df, df$texto, diccionario, 4)
Función que detecta de menciones de palabras que refieren a conflictos en cada una de las notas/textos.
acep_detect(x, y, u = 1, tolower = TRUE)
acep_detect(x, y, u = 1, tolower = TRUE)
x |
vector de textos al que se le aplica la función de detección de menciones de palabras del diccionario. |
y |
vector de palabras del diccionario utilizado. |
u |
umbral para atribuir valor positivo a la detección de las menciones. |
tolower |
convierte los textos a minúsculas. |
Si todas las entradas son correctas, la salida sera un vector numérico.
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_detect(df$texto, diccionario) df
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_detect(df$texto, diccionario) df
Colección de diccionarios que reúne diccionarios de diferentes orígenes. El diccionario dicc_confl_acep fueron construidos en el marco del Observatorio de Conflictividad de la UNMdP. Los diccionarios dicc_confl_gp y dicc_viol_gp fueron extraídos de Albrieu y Palazzo (2020).
data(acep_diccionarios)
data(acep_diccionarios)
Es un objeto de clase 'list' con 3 componentes.
es un vector con palabras de un diccionario de términos que refieren a conflictos
es un vector con palabras de un diccionario de términos que refieren a violencia
es un vector con palabras de un diccionario de términos que refieren a conflictos
Albrieu, Ramiro y Gabriel Palazzo 2020 «Categorización de conflictos sociales en el ámbito de los recursos naturales: un estudio de las actividades extractivas mediante la minería de textos». Revista CEPAL (131):29-59. (Revista CEPAL)
Laitano, Guillermina y Agustín Nieto «Análisis computacional de la conflictividad laboral en Mar del Plata durante el gobierno de Cambiemos». Ponencia presentado en VI Workshop - Los conflictos laborales en la Argentina del siglo XX y XXI: un abordaje interdisciplinario de conceptos, problemas y escalas de análisis, Tandil, 2021.
diccionario <- acep_load_base(acep_diccionarios$dicc_viol_gp) diccionario
diccionario <- acep_load_base(acep_diccionarios$dicc_viol_gp) diccionario
Esta función busca palabras clave en un texto y extrae los resultados en un formato especifico.
acep_extract(texto, dic, sep = "; ", izq = "\\b\\w*", der = "\\w*\\b")
acep_extract(texto, dic, sep = "; ", izq = "\\b\\w*", der = "\\w*\\b")
texto |
El texto en el que se buscaran las palabras clave. |
dic |
Un vector con las palabras clave a buscar. |
sep |
El separador utilizado para concatenar las palabras clave encontradas (por defecto: " | "). |
izq |
expresión regular para incorporar otros caracteres a la izquierda de los términos del vector 'dic'. |
der |
expresión regular para incorporar otros caracteres a la derecha de los términos del vector 'dic'. |
Si todas las entradas son correctas, la salida sera un vector de tipo caracter. procesado y el contexto de las palabras y/o frases entradas.
texto <- "Los obreros del pescado, en el marco de una huelga y realizaron una manifestación con piquete en el puerto de la ciudad." dicc <- c("huel", "manif", "piq") acep_extract(texto, dicc)
texto <- "Los obreros del pescado, en el marco de una huelga y realizaron una manifestación con piquete en el puerto de la ciudad." dicc <- c("huel", "manif", "piq") acep_extract(texto, dicc)
Función que cuenta la frecuencia de palabras totales en cada una de las notas/textos.
acep_frec(x)
acep_frec(x)
x |
vector de textos al que se le aplica la función de conteo de la frecuencia de palabras. |
Si todas las entradas son correctas, la salida sera un vector con una frecuencia de palabras.
acep_frec("El SUTEBA fue al paro. Reclaman mejoras salariales.")
acep_frec("El SUTEBA fue al paro. Reclaman mejoras salariales.")
Función para interactuar con los modelos de OpenAI desde las claves API secretas y pagas.
acep_gpt( texto, instrucciones, gpt_api = Sys.getenv("OPENAI_API_KEY"), modelo = "gpt-3.5-turbo-0125" )
acep_gpt( texto, instrucciones, gpt_api = Sys.getenv("OPENAI_API_KEY"), modelo = "gpt-3.5-turbo-0125" )
texto |
texto a procesar. |
instrucciones |
indicaciones de contexto que se le proporcionan al modelo de lenguaje GPT para influir en su generación de texto. |
gpt_api |
clave API secreta. |
modelo |
modelo de lenguaje GPT de OpenAI. |
Si todas las entradas son correctas, la salida sera un JSON con la información solicitada.
## Not run: texto <- "El SOIP declaro la huelga por aumento de salarios." pregunta <- "¿Cuál es el sujeto de la acción? Ejemplo de respuesta: 'CGT'" texto_gpt <- acep_gpt(texto = texto, instrucciones = pregunta) cat(texto_gpt) ## End(Not run)
## Not run: texto <- "El SOIP declaro la huelga por aumento de salarios." pregunta <- "¿Cuál es el sujeto de la acción? Ejemplo de respuesta: 'CGT'" texto_gpt <- acep_gpt(texto = texto, instrucciones = pregunta) cat(texto_gpt) ## End(Not run)
Función que elabora un indice de intensidad en base a la relación entre palabras totales y palabras del diccionario presentes en el texto.
acep_int(pc, pt, decimales = 4)
acep_int(pc, pt, decimales = 4)
pc |
vector numérico con la frecuencia de palabras conflictivas presentes en cada texto. |
pt |
vector de palabras totales en cada texto. |
decimales |
cantidad de decimales, por defecto tiene 4 pero se puede modificar. |
Si todas las entradas son correctas, la salida sera un vector numérico.
conflictos <- c(1, 5, 0, 3, 7) palabras <- c(4, 11, 12, 9, 34) acep_int(conflictos, palabras, 3)
conflictos <- c(1, 5, 0, 3, 7) palabras <- c(4, 11, 12, 9, 34) acep_int(conflictos, palabras, 3)
Función para cargar bases de datos disponibles online. Por ahora están disponibles las siguientes bases: Revista Puerto 'rp_mdp'; La Nueva 'ln_bb', La Capital 'lc_mdp', Ecos Diarios 'ed_neco', La Nación 'ln_arg'
acep_load_base(tag)
acep_load_base(tag)
tag |
etiqueta identificatoria del data frame a cargar: acep_bases$rp_mdp, acep_bases$ln_bb, acep_bases$lc_mdp, acep_bases$ed_neco, acep_bases$ln_arg |
Si todas las entradas son correctas, la salida sera una base de datos en formato tabular con un corpus de notas.
bd_sismos <- acep_bases$rev_puerto head(acep_load_base(tag = bd_sismos))
bd_sismos <- acep_bases$rev_puerto head(acep_load_base(tag = bd_sismos))
Esta función toma un vector de texto y convierte todas las letras minúsculas en mayúsculas, manteniendo el resto de los caracteres sin cambios.
acep_may(x)
acep_may(x)
x |
es un vector de texto (caracteres) que se desea convertir a mayúsculas. |
Devuelve un nuevo vector con todas las letras en mayúsculas.
vector_texto <- c("soip", "cGt", "Sutna") acep_may(vector_texto) vector_numeros <- c(1, 2, 3, 4, 5) acep_may(vector_numeros) vector_mezclado <- c("sutna", 123, "Ate") acep_may(vector_mezclado)
vector_texto <- c("soip", "cGt", "Sutna") acep_may(vector_texto) vector_numeros <- c(1, 2, 3, 4, 5) acep_may(vector_numeros) vector_mezclado <- c("sutna", 123, "Ate") acep_may(vector_mezclado)
Función que cuenta la frecuencia de menciones de palabras que refieren a conflictos en cada una de las notas/textos.
acep_men(x, y, tolower = TRUE)
acep_men(x, y, tolower = TRUE)
x |
vector de textos al que se le aplica la función de conteo de la frecuencia de menciones de palabras del diccionario. |
y |
vector de palabras del diccionario utilizado. |
tolower |
convierte los textos a minúsculas. |
Si todas las entradas son correctas, la salida sera un vector con una frecuencia de palabras de un diccionario.
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_men(df$texto, diccionario) df
df <- data.frame(texto = c("El SUTEBA fue al paro. Reclaman mejoras salariales.", "El SOIP lleva adelante un plan de lucha con paros y piquetes.")) diccionario <- c("paro", "lucha", "piquetes") df$detect <- acep_men(df$texto, diccionario) df
Esta función toma un vector de texto y convierte todas las letras mayusculas en minúsculas, manteniendo el resto de los caracteres sin cambios.
acep_min(x)
acep_min(x)
x |
Un vector de texto (caracteres) que se desea convertir a minúsculas. |
Devuelve un nuevo vector con todas las letras en minúsculas.
vector_texto <- c("SUTEBA", "Sindicato", "PEN") acep_min(vector_texto) vector_numeros <- c(1, 2, 3, 4, 5) acep_min(vector_numeros) vector_mezclado <- c("Soip", 123, "CGT") acep_min(vector_mezclado)
vector_texto <- c("SUTEBA", "Sindicato", "PEN") acep_min(vector_texto) vector_numeros <- c(1, 2, 3, 4, 5) acep_min(vector_numeros) vector_mezclado <- c("Soip", 123, "CGT") acep_min(vector_mezclado)
Función que devuelve un panel visual de cuatro gráficos de barras con variables proxy de los indices de conflictividad agrupados por segmento de tiempo.
acep_plot_rst(datos, tagx = "horizontal")
acep_plot_rst(datos, tagx = "horizontal")
datos |
data frame con datos procesados. |
tagx |
orientación de las etiquetas del eje x ('horizontal' | 'vertical'). |
Si todas las entradas son correctas, la salida sera una imagen de cuatro paneles.
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos datos_procesados_anio <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio') acep_plot_rst(datos_procesados_anio, tagx = 'vertical')
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos datos_procesados_anio <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio') acep_plot_rst(datos_procesados_anio, tagx = 'vertical')
Función que devuelve un gráfico de barras con la serie temporal de indices de conflictividad por dia, mes o anio.
acep_plot_st( x, y, t = "", ejex = "", ejey = "", etiquetax = "horizontal", color = "mint" )
acep_plot_st( x, y, t = "", ejex = "", ejey = "", etiquetax = "horizontal", color = "mint" )
x |
vector de valores del eje x (por ejemplo, fechas). |
y |
vector de valores numéricos del eje y (por ejemplo, menciones). |
t |
titulo del gráfico. |
ejex |
nombre del eje x. |
ejey |
nombre del eje y. |
etiquetax |
orientación de las etiquetas del eje x ('horizontal' | 'vertical'). |
color |
color de las barras. |
Si todas las entradas son correctas, la salida sera una imagen de un panel.
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos dpa <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio') acep_plot_st( dpa$st, dpa$frecm, t = 'Evoluci\u00f3n de la conflictividad en el sector pesquero argentino', ejex = 'A\u00f1os analizados', ejey = 'Menciones de t\u00e9rminos del diccionario de conflictos', etiquetax = 'horizontal')
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos dpa <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio') acep_plot_st( dpa$st, dpa$frecm, t = 'Evoluci\u00f3n de la conflictividad en el sector pesquero argentino', ejex = 'A\u00f1os analizados', ejey = 'Menciones de t\u00e9rminos del diccionario de conflictos', etiquetax = 'horizontal')
Función que devuelve seis objetos data.frame con etiquetado POS (modelo spacyr) para su posterior procesamiento con la función acep_postag.
acep_postag( texto, core = "es_core_news_lg", bajar_core = TRUE, inst_spacy = FALSE, inst_miniconda = FALSE, inst_reticulate = FALSE )
acep_postag( texto, core = "es_core_news_lg", bajar_core = TRUE, inst_spacy = FALSE, inst_miniconda = FALSE, inst_reticulate = FALSE )
texto |
vector con los textos a procesar. |
core |
idioma del modelo de etiquetado POS del paquete spacyr. |
bajar_core |
parámetro booleano que define si bajar o no el modelo de etiquetado POS. |
inst_spacy |
parámetro booleano que define si instalar o no spacy (python). |
inst_miniconda |
parámetro booleano que define si instalar o no miniconda. Miniconda es un instalador mínimo gratuito para conda. Es una pequeña versión de arranque de Anaconda que incluye solo conda, Python, los paquetes de los que dependen y una pequeña cantidad de otros paquetes útiles, incluidos pip, zlib y algunos otros. |
inst_reticulate |
parámetro booleano que define si instalar o no el paquete reticulate. |
Si todas las entradas son correctas, la salida sera una lista con seis bases de datos en formato tabular.
Dependencias Universales para taggeo POS
Sobre el modelo spaCy de Python para R
## Not run: texto <- "En Mar del Plata el SOIP declara la huelga en demanda de aumento salarial." texto_postag <- acep_postag(texto) texto_postag$texto_tag[ , c(1:8)] ## End(Not run)
## Not run: texto <- "En Mar del Plata el SOIP declara la huelga en demanda de aumento salarial." texto_postag <- acep_postag(texto) texto_postag$texto_tag[ , c(1:8)] ## End(Not run)
Colección de instrucciones para interactuar con los modelos de OpenAI. Las instrucciones fueron testeadas en el marco de las tareas que realizamos en el Observatorio de Conflictividad Social de la Universidad Nacional de Mar del Plata.
data(acep_prompt_gpt)
data(acep_prompt_gpt)
Es un objeto de clase 'list' con 4 componentes.
es un texto en castellano con instrucciones breves para extraer eventos de protesta y codificarlos con las siguientes claves: 'fecha', 'sujeto', 'accion', 'objeto', 'lugar'.
es un texto en castellano con instrucciones largas para extraer eventos de protesta y codificarlos con las siguientes claves: 'id', 'cronica', 'fecha', 'sujeto', 'organizacion', 'participacion', 'accion', 'objeto', 'lugar'.
es un texto en inglés con instrucciones breves para extraer eventos de protesta y codificarlos con las siguientes claves: 'date', 'subject', 'action', 'object', 'place'.
es un texto en inglés con instrucciones largas para extraer eventos de protesta y codificarlos con las siguientes claves: 'id', 'chronicle', 'date', 'subject', 'organization', 'participation', 'action', 'object', 'place'.
prompt01 <- acep_prompt_gpt$instrucciones_gpt prompt01
prompt01 <- acep_prompt_gpt$instrucciones_gpt prompt01
Cadenas de caracteres y expresiones regulares para limpiar y normalizar textos.
data(acep_rs)
data(acep_rs)
Son cadenas de caracteres.
es un string de palabras vacias.
es un string de palabras vacias.
es un string de dias.
es un string de meses.
es un string con expresiones regulares para emojis.
es un string de letras sin tildes.
es un string de letras con tildes.
es un string de puntuación.
es una expresión regular para números.
es una expresión regular para hashtag.
es una expresión regular para espacios.
es una expresión regular para saltos de línea.
es una expresión regular para urls.
es una expresión regular para usuarixs.
print(acep_rs)
print(acep_rs)
Función que devuelve los indices de conflictividad agrupados por segmento de tiempo: 'dia', 'mes', 'anio'.
acep_rst(datos, fecha, frecp, frecm, st = "mes", u = 2, d = 4)
acep_rst(datos, fecha, frecp, frecm, st = "mes", u = 2, d = 4)
datos |
data frame con las variables 'fecha' (en formato Date), 'n_palabras' (numérica), conflictos' (numérica), 'intensidad' (numérica). |
fecha |
columna de data frame que contiene el vector de fechas en formato date. |
frecp |
columna de data frame que contiene el vector de frecuencia de palabras por texto. |
frecm |
columna de data frame que contiene el vector de menciones del diccionario por texto. |
st |
parámetro para establecer el segmento temporal a ser agrupado: anio, mes, día. |
u |
umbral de menciones para contabilizar una nota como nota que refiere a un conflicto. |
d |
cantidad de decimales, por defecto tiene 4 pero se puede modificar. |
Si todas las entradas son correctas, la salida sera una base de datos en formato tabular con nuevas variables.
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos datos_procesados_anio <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio', u = 4) datos_procesados_mes <- acep_rst(datos, fecha, n_palabras, conflictos) datos_procesados_dia <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'dia', d = 3) head(datos_procesados_anio) head(datos_procesados_mes) head(datos_procesados_dia)
datos <- acep_bases$rp_procesada fecha <- datos$fecha n_palabras <- datos$n_palabras conflictos <- datos$conflictos datos_procesados_anio <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'anio', u = 4) datos_procesados_mes <- acep_rst(datos, fecha, n_palabras, conflictos) datos_procesados_dia <- acep_rst(datos, fecha, n_palabras, conflictos, st = 'dia', d = 3) head(datos_procesados_anio) head(datos_procesados_mes) head(datos_procesados_dia)
Función que devuelve los indices de conflictividad agrupados por segmento de tiempo: 'dia', 'mes', 'anio'. Esta función viene a reemplazar a acep_rst. Simplifica los parámetros.
acep_sst(datos, st = "mes", u = 2, d = 4)
acep_sst(datos, st = "mes", u = 2, d = 4)
datos |
data frame con las variables 'fecha' (en formato Date), 'n_palabras' (numérica), conflictos' (numérica), 'intensidad' (numérica). Las ultimas tres se pueden construir en un solo paso con la función 'acep_db' o en tres pasos con las funciones 'acep_frec', 'acep_men', 'acep_int'. |
st |
parámetro para establecer el segmento temporal a ser agrupado: 'anio', 'mes', 'dia'. |
u |
umbral de menciones para contabilizar una nota como nota que refiere a un conflicto, por defecto tiene 2 pero se puede modificar. |
d |
cantidad de decimales, por defecto tiene 4 pero se puede modificar. |
Si todas las entradas son correctas, la salida sera una base de datos en formato tabular con nuevas variables.
datos <- acep_bases$rp_procesada head(datos) datos_procesados_anio <- acep_sst(datos, st='anio', u=4) datos_procesados_mes <- acep_sst(datos) datos_procesados_dia <- acep_sst(datos, st ='dia', d=3) head(datos_procesados_anio) head(datos_procesados_mes) head(datos_procesados_dia)
datos <- acep_bases$rp_procesada head(datos) datos_procesados_anio <- acep_sst(datos, st='anio', u=4) datos_procesados_mes <- acep_sst(datos) datos_procesados_dia <- acep_sst(datos, st ='dia', d=3) head(datos_procesados_anio) head(datos_procesados_mes) head(datos_procesados_dia)
Función que devuelve seis objetos data.frame con etiquetado POS (modelo spacyr) y relaciones sintácticas (modelo rsyntax) que permiten reconstruir estructuras sintácticas como SVO y Sujeto-Predicado. Una vez seleccionadas las notas periodísticas referidas a conflictos, esta función permite extraer sujetos de la protesta, acción realizada y objeto(s) de la acción. También devuelve entidades nombradas (NER).
acep_svo(acep_tokenindex, prof_s = 3, prof_o = 3, u = 1)
acep_svo(acep_tokenindex, prof_s = 3, prof_o = 3, u = 1)
acep_tokenindex |
data.frame con el etiquetado POS y las relaciones de dependencia generado con la función acep_postag. |
prof_s |
es un numero entero positivo que determina la profundidad a la que se buscan las relaciones dentro del sujeto. Este parámetro se hereda del la función children() del paquete rsyntax. Se recomienda no superar el valor 2. |
prof_o |
es un numero entero positivo que determina la profundidad a la que se buscan las relaciones dentro del objeto. Este parámetro se hereda del la función children() del paquete rsyntax. Se recomienda no superar el valor 2. |
u |
numero entero que indica el umbral de palabras del objeto en la reconstrucción SVO. |
Si todas las entradas son correctas, la salida sera una lista con tres bases de datos en formato tabular.
Dependencias Universales para taggeo POS
Welbers, K., Atteveldt, W. van, & Kleinnijenhuis, J. 2021. Extracting semantic relations using syntax: An R package for querying and reshaping dependency trees. Computational Communication Research, 3-2, 1-16. (link al articulo)
## Not run: acep_svo(acep_bases$spacy_postag) ## End(Not run)
## Not run: acep_svo(acep_bases$spacy_postag) ## End(Not run)
Función que tokeniza las notas/textos.
acep_token(x, tolower = TRUE, cleaning = TRUE)
acep_token(x, tolower = TRUE, cleaning = TRUE)
x |
vector de textos al que se le aplica la función de tokenización. |
tolower |
convierte los textos a minúsculas. |
cleaning |
hace una limpieza de los textos. |
Si todas las entradas son correctas, la salida será un data.frame con las palabras tokenizadas.
acep_token("Huelga de obreros del pescado en el puerto")
acep_token("Huelga de obreros del pescado en el puerto")
Función que devuelve un gráfico de barras con las palabras mas recurrentes en un corpus textual.
acep_token_plot(x, u = 10, frec = TRUE)
acep_token_plot(x, u = 10, frec = TRUE)
x |
vector de palabras tokenizadas. |
u |
numero de corte para el top de palabras mas frecuentes. |
frec |
parámetro para determinar si los valores se visualizaran como frecuencia absoluta o relativa. |
Si todas las entradas son correctas, la salida sera un gráfico de barras.
tokens <- c(rep("paro",15), rep("piquete",25), rep("corte",20), rep("manifestación",10), rep("bloqueo",5), rep("alerta",16), rep("ciudad",12), rep("sindicato",11), rep("paritaria",14), rep("huelga",14), rep("escrache",15)) acep_token_plot(tokens)
tokens <- c(rep("paro",15), rep("piquete",25), rep("corte",20), rep("manifestación",10), rep("bloqueo",5), rep("alerta",16), rep("ciudad",12), rep("sindicato",11), rep("paritaria",14), rep("huelga",14), rep("escrache",15)) acep_token_plot(tokens)
Función que cuenta la frecuencia de palabras tokenizadas.
acep_token_table(x, u = 10)
acep_token_table(x, u = 10)
x |
vector de palabras tokenizadas. |
u |
número de corte para el top de palabras más frecuentes. |
Si todas las entradas son correctas, la salida sera una tabla con la frecuencia relativa y absoluta de palabras tokenizadas.
tokens <- c(rep("paro",15), rep("piquete",25), rep("corte",20), rep("manifestación",10), rep("bloqueo",5), rep("alerta",16), rep("ciudad",12), rep("sindicato",11), rep("paritaria",14), rep("huelga",14), rep("escrache",15)) acep_token_table(tokens)
tokens <- c(rep("paro",15), rep("piquete",25), rep("corte",20), rep("manifestación",10), rep("bloqueo",5), rep("alerta",16), rep("ciudad",12), rep("sindicato",11), rep("paritaria",14), rep("huelga",14), rep("escrache",15)) acep_token_table(tokens)
Función que devuelve un marco de datos objetos con etiquetado POS (modelo udpipe) para su posterior procesamiento con la función acep_postag.
acep_upos(texto, modelo = "spanish")
acep_upos(texto, modelo = "spanish")
texto |
vector con los textos a procesar. |
modelo |
idioma del modelo de etiquetado POS del paquete udpipe. |
Si todas las entradas son correctas, la salida sera un marco de datos con 17 variables.
Dependencias Universales para taggeo POS
Welbers, K., Atteveldt, W. van, & Kleinnijenhuis, J. 2021. Extracting semantic relations using syntax: An R package for querying and reshaping dependency trees. Computational Communication Research, 3-2, 1-16. (link al articulo)
## Not run: texto <- "El SOIP declara la huelga en demanda de aumento salarial." acep_upos(texto) ## End(Not run)
## Not run: texto <- "El SOIP declara la huelga en demanda de aumento salarial." acep_upos(texto) ## End(Not run)