Etiquetado POS, lematizacion y extraccion de entidades con spacyr
Source:R/acep_postag_hibrido.R
acep_postag_hibrido.RdRealiza analisis linguistico completo de textos usando la biblioteca spaCy a traves de spacyr. Incluye: etiquetado POS (Part-of-Speech), lematizacion, tokenizacion, extraccion de entidades nombradas, frases nominales y geocodificacion de ubicaciones. La funcion procesa automaticamente grandes volumenes de texto dividiendolos en lotes (chunks) y soporta procesamiento paralelo para acelerar el analisis
Usage
acep_postag_hibrido(
texto,
core = "es_core_news_lg",
bajar_core = TRUE,
inst_spacy = FALSE,
inst_miniconda = FALSE,
inst_reticulate = FALSE,
chunk_size = 1000,
parallel_chunks = FALSE,
n_cores = NULL,
geocode_cache_file = "geocode_cache.json",
use_cache = TRUE,
show_progress = TRUE
)Arguments
- texto
Vector de caracteres con los textos a analizar.
- core
Modelo de lenguaje de spaCy a utilizar. Opciones: `"es_core_news_sm"`, `"es_core_news_md"`, `"es_core_news_lg"` (espanol), `"en_core_web_sm"`, `"en_core_web_md"`, `"en_core_web_lg"` (ingles), `"pt_core_news_sm"`, `"pt_core_news_md"`, `"pt_core_news_lg"` (portugues). Por defecto: `"es_core_news_lg"`.
- bajar_core
Logico. Si `TRUE`, descarga automaticamente el modelo si no esta instalado.
- inst_spacy
Logico. Si `TRUE`, instala la biblioteca spaCy en el entorno Python.
- inst_miniconda
Logico. Si `TRUE`, instala Miniconda (necesario para spaCy).
- inst_reticulate
Logico. Si `TRUE`, instala el paquete reticulate de R.
- chunk_size
Numero de textos a procesar por lote. Valores mas bajos consumen menos memoria pero tardan mas. Por defecto: 1000.
- parallel_chunks
Logico. Si `TRUE`, procesa los lotes en paralelo usando multiples nucleos del CPU. Requiere los paquetes `future` y `furrr`. Por defecto: `FALSE`.
- n_cores
Numero de nucleos de CPU a usar en modo paralelo. Si es `NULL`, detecta automaticamente el numero de nucleos disponibles menos uno.
- geocode_cache_file
Ruta al archivo JSON donde se almacena el cache de geocodificacion para evitar consultas repetidas. Por defecto: `"geocode_cache.json"`.
- use_cache
Logico. Si `TRUE`, usa y actualiza el cache de geocodificacion.
- show_progress
Logico. Si `TRUE`, muestra mensajes de progreso en la consola.
Value
Lista con 6 data frames que contienen diferentes niveles de analisis:
texto_tag: Tokenizacion completa con etiquetas POS, lemas, dependencias sintacticas y atributos morfologicos para cada tokentexto_tag_entity: Tokens con entidades nombradas consolidadas (ej: "Mar del Plata" como una sola entidad en lugar de 3 tokens separados)texto_only_entity: Solo las entidades nombradas extraidas (personas, organizaciones, ubicaciones, fechas, etc.)texto_only_entity_loc: Entidades de tipo ubicacion (LOC) con coordenadas geograficas (latitud/longitud) obtenidas mediante geocodificaciontexto_nounphrase: Tokens con frases nominales consolidadastexto_only_nounphrase: Solo las frases nominales extraidas
Examples
if (FALSE) { # \dontrun{
# Analisis basico de un texto
texto <- "El SUTEBA convoco a un paro en Mar del Plata el 15 de marzo."
resultado <- acep_postag_hibrido(texto)
# Ver tokens con etiquetas POS
head(resultado$texto_tag)
# Ver entidades nombradas
print(resultado$texto_only_entity)
# Ver ubicaciones geocodificadas
print(resultado$texto_only_entity_loc)
# Procesar multiples textos con procesamiento paralelo
textos <- c("Primera noticia sobre conflictos.",
"Segunda noticia sobre protestas.",
"Tercera noticia sobre reclamos.")
resultado <- acep_postag_hibrido(textos,
parallel_chunks = TRUE,
chunk_size = 100)
} # }