Divide un vector de caracteres en oraciones usando reglas adaptadas para
español. La función protege abreviaturas comunes (p. ej., Sr., Dra.,
etc.), iniciales (J. R. R.), números con separador decimal
(punto o coma) y elipsis (...
) antes de realizar el corte. También
permite agregar abreviaturas propias.
Arguments
- text
Vector de caracteres con el texto a segmentar.
- extra_abbr
Vector de caracteres opcional con abreviaturas adicionales (sin el punto final), por ejemplo
c("coord", "aprox")
.- keep_delim
Lógico; si es
TRUE
, conserva el signo de cierre de oración (., ?, !) al final de cada segmento.- normalize_spacing
Lógico; si es
TRUE
, normaliza espacios múltiples y recorta espacios en los extremos de cada oración.
Value
Una lista donde cada elemento contiene un vector de oraciones para
el elemento correspondiente de text
.
Examples
segment_sentences("Hola. ¿Cómo estás? Todo bien, ¡gracias!")
#> [[1]]
#> [1] "Hola." "¿Cómo estás?" "Todo bien, ¡gracias!"
#>
segment_sentences("El Dr. Pérez llegó a las 10.30. Luego se retiró.")
#> [[1]]
#> [1] "El Dr. Pérez llegó a las 10.30." "Luego se retiró."
#>
segment_sentences("J. R. R. Tolkien escribió mucho. Etc. fin.")
#> [[1]]
#> [1] "J. R. R. Tolkien escribió mucho." "Etc. fin."
#>
segment_sentences("Ver págs. 12-14, cap. 3. Además, ver apéndices.")
#> [[1]]
#> [1] "Ver págs. 12-14, cap. 3." "Además, ver apéndices."
#>
segment_sentences("Aprox. 3,5 km. Luego continuar.")
#> [[1]]
#> [1] "Aprox. 3,5 km." "Luego continuar."
#>
# Con abreviaturas personalizadas:
segment_sentences("Coord. Gral. del proyecto. Reunión mañana.",
extra_abbr = c("Coord", "Gral"))
#> [[1]]
#> [1] "Coord. Gral. del proyecto." "Reunión mañana."
#>