Skip to contents

Divide un vector de texto en tokens individuales de palabras, utilizando reglas adaptadas para texto en español. La función puede, opcionalmente, normalizar el uso de mayúsculas, conservar o eliminar tildes, y decidir cómo tratar guiones, números, puntuación y símbolos.

Usage

tokenize_words(
  text,
  lowercase = TRUE,
  keep_accents = TRUE,
  strip_punct = TRUE,
  keep_hyphens = TRUE,
  remove_numbers = FALSE,
  strip_symbols = TRUE,
  flatten = FALSE
)

Arguments

text

Vector de caracteres que contiene el texto a tokenizar.

lowercase

Lógico; si es TRUE, convierte todo el texto a minúsculas antes de tokenizar.

keep_accents

Lógico; si es FALSE, se eliminan las tildes de los caracteres.

strip_punct

Lógico; si es TRUE, elimina la puntuación (\p{P}) antes de tokenizar.

keep_hyphens

Lógico; si es TRUE, conserva los guiones dentro de las palabras (p. ej., teórico-práctico).

remove_numbers

Lógico; si es TRUE, elimina los tokens que son puramente numéricos.

strip_symbols

Lógico; si es TRUE, elimina símbolos Unicode (\p{S}, p. ej., emojis, divisas) antes de tokenizar.

flatten

Lógico; si es TRUE y text tiene longitud 1, devuelve un vector de caracteres en lugar de una lista.

Value

  • Si length(text) > 1: una lista, donde cada elemento corresponde a los tokens de cada elemento de text.

  • Si length(text) == 1 y flatten = TRUE: un vector de caracteres con los tokens.

  • En cualquier otro caso: una lista de tokens.

Details

La limpieza de puntuación usa la clase Unicode \p{P} y la de símbolos \p{S}. Si strip_punct = TRUE y keep_hyphens = TRUE, los guiones se preservan.

Examples

tokenize_words("Este es un texto de prueba, con tildes y números: 123.")
#> [[1]]
#>  [1] "este"    "es"      "un"      "texto"   "de"      "prueba"  "con"    
#>  [8] "tildes"  "y"       "números" "123"    
#> 
tokenize_words(c("Primera frase.", "Segunda frase con más palabras."))
#> [[1]]
#> [1] "primera" "frase"  
#> 
#> [[2]]
#> [1] "segunda"  "frase"    "con"      "más"      "palabras"
#> 
tokenize_words("Hola :) mundo!", strip_symbols = TRUE, flatten = TRUE)
#> [1] "hola"  "mundo"