Después de limpiar y preparar el texto, uno de los pasos más importantes en NLP es la tokenización. Tokenizar significa dividir el texto en unidades más pequeñas que el sistema pueda manipular con mayor facilidad.
A primera vista, esto puede parecer simple: bastaría con separar por espacios y listo. Sin embargo, en la práctica la tokenización es mucho más delicada. Signos de puntuación, contracciones, abreviaturas, emojis, números, idiomas distintos y palabras compuestas hacen que segmentar correctamente un texto no sea un problema trivial.
En este tema estudiaremos qué es un token, por qué la tokenización importa tanto y cuáles son los enfoques más utilizados en NLP clásico y moderno.
Un token es una unidad de texto producida por un proceso de segmentación. Dependiendo del enfoque, un token puede ser:
Por ejemplo, la oración:
Hola, mundo!
puede tokenizarse como:
[Hola, ,, mundo, !]
o de otras maneras, según la estrategia elegida.
La tokenización es importante porque casi todos los modelos de NLP necesitan trabajar sobre unidades discretas del texto. Antes de contar palabras, construir vocabularios, calcular frecuencias, asignar índices o alimentar un modelo, necesitamos decidir qué partes del texto consideraremos como unidades básicas.
Una mala tokenización puede:
Una idea muy común es pensar que tokenizar significa simplemente usar los espacios en blanco como separadores. Eso a veces funciona como aproximación inicial, pero tiene muchas limitaciones.
Por ejemplo, consideremos este texto:
Hola, ¿cómo estás?
Si solo separáramos por espacios, obtendríamos:
[Hola,, ¿cómo, estás?]
El resultado mezcla palabras con signos de puntuación. Para muchas tareas, conviene separar mejor esas piezas.
Tomemos la oración:
El gato duerme en el sillón.
Una tokenización por palabras podría producir:
[El, gato, duerme, en, el, sillón, .]
Esto muestra dos ideas importantes:
La tokenización por palabras fue durante mucho tiempo el enfoque más habitual en NLP clásico. Consiste en dividir el texto en unidades cercanas a lo que intuitivamente entendemos por palabras.
Es útil porque:
Sin embargo, también tiene problemas, especialmente cuando aparecen palabras desconocidas, errores ortográficos, variantes morfológicas o idiomas con segmentación compleja.
Otra posibilidad es tokenizar a nivel de caracteres. En lugar de dividir en palabras, el texto se representa como secuencia de letras, signos y símbolos individuales.
Por ejemplo:
gato
podría convertirse en:
[g, a, t, o]
Este enfoque tiene ventajas claras:
Su principal desventaja es que las secuencias se vuelven mucho más largas y menos directamente semánticas.
En NLP moderno se volvió muy importante la tokenización por subpalabras. Este enfoque busca un punto intermedio entre palabras completas y caracteres individuales.
La idea es dividir palabras en fragmentos frecuentes o reutilizables. Por ejemplo, una palabra larga o poco frecuente podría dividirse en partes más comunes.
Esto ofrece varias ventajas:
Por eso, muchos tokenizadores modernos se basan en subpalabras y no en palabras completas.
La forma en que tokenizamos influye directamente en el vocabulario del sistema. Si tokenizamos por palabras, el vocabulario contendrá palabras completas. Si tokenizamos por caracteres, contendrá letras y signos. Si tokenizamos por subpalabras, contendrá fragmentos frecuentes.
Esto cambia por completo:
Tokenización y vocabulario, por lo tanto, son decisiones estrechamente conectadas.
En muchas estrategias de tokenización, los signos de puntuación se conservan como tokens independientes. Esto puede parecer extraño al principio, pero tiene sentido porque la puntuación aporta estructura y, a veces, intención.
Por ejemplo:
bien. no expresa exactamente lo mismo que bien!¿vienes? tiene una intención distinta de vienes.Separar puntuación permite que el modelo la trate como señal explícita cuando resulta útil.
La tokenización se complica especialmente en idiomas o registros donde aparecen contracciones, apóstrofos o formas combinadas. Incluso en español pueden surgir casos con abreviaturas, expresiones coloquiales o secuencias con signos pegados.
En inglés, por ejemplo, expresiones como don't o I'm muestran con claridad que no siempre es obvio decidir qué constituye exactamente un token.
Esto ilustra por qué los tokenizadores reales suelen incorporar reglas lingüísticas o algoritmos más sofisticados que una simple separación por espacios.
Los números también plantean decisiones de tokenización. Según el enfoque, una fecha como 2025-01-10 puede tratarse como una sola unidad o como varias piezas separadas.
Lo mismo ocurre con expresiones como:
10kg$5003.14La decisión influye en la forma en que el modelo interpreta cantidades, medidas y formatos específicos.
En redes sociales o chats informales aparecen elementos que no encajan del todo en la idea clásica de palabra: emojis, hashtags, menciones, URLs y secuencias expresivas como jajaja o noooo.
Un buen tokenizador debe decidir cómo tratar estos casos. En algunos dominios son ruido; en otros contienen información muy relevante sobre tono, emoción o tema.
No siempre existe una única tokenización correcta. A veces hay varias segmentaciones razonables, y la mejor dependerá de la tarea.
Por eso, tokenizar no es simplemente aplicar una regla mecánica universal. Es una decisión de diseño que afecta la representación del texto y el comportamiento posterior del sistema.
El tipo de tokenización elegido afecta cuán largas serán las secuencias resultantes.
Esto es importante porque la longitud de secuencia influye en costo computacional, memoria y capacidad de los modelos para manejar contexto.
Muchos sistemas usan tokens especiales con funciones técnicas. Algunos ejemplos frecuentes son:
<PAD> para rellenar secuencias.<UNK> para palabras desconocidas.<BOS> para inicio de secuencia.<EOS> para fin de secuencia.Estos tokens no pertenecen al lenguaje natural del usuario, pero son muy útiles para organizar el procesamiento interno del modelo.
En NLP clásico, la tokenización solía diseñarse pensando en palabras relativamente limpias e interpretables. Esto encajaba bien con técnicas como:
En ese contexto, la tokenización estaba muy ligada al análisis lingüístico y a la construcción de vocabularios de palabras completas.
En modelos modernos, especialmente Transformers y modelos preentrenados, la tokenización suele estar integrada al ecosistema del modelo. No es una etapa arbitraria que podamos cambiar libremente sin consecuencias.
Cada modelo suele venir asociado a su propio tokenizador, diseñado para ser compatible con el vocabulario y la representación con la que fue entrenado.
Esto significa que la tokenización ya no es solo una decisión de preprocesamiento, sino una parte estructural del sistema.
Supongamos que queremos tokenizar la palabra:
internacionalización
Según el enfoque, podríamos obtener:
[internacionalización][i, n, t, e, r, ...]Cada opción tiene ventajas y costos distintos. Ninguna es universalmente superior; depende de la tarea y del modelo.
| Tipo de tokenización | Ventaja principal | Limitación principal |
|---|---|---|
| Por palabras | Intuitiva e interpretable. | Problemas con palabras desconocidas y vocabularios grandes. |
| Por caracteres | Robusta ante palabras raras y errores. | Secuencias más largas y menos semánticas. |
| Por subpalabras | Equilibra cobertura y eficiencia. | Menor interpretabilidad inmediata que la tokenización por palabras. |
La tokenización es uno de los pasos fundamentales del NLP porque define con qué piezas básicas va a trabajar el sistema. Aunque a veces parezca una etapa técnica menor, en realidad condiciona la representación del lenguaje y el comportamiento posterior de los modelos.
Comprender los distintos tipos de tokenización ayuda a entender por qué los enfoques clásicos y modernos representan el texto de formas diferentes y por qué no siempre conviene segmentar del mismo modo.
En el próximo tema estudiaremos la eliminación de stopwords, una técnica clásica de preprocesamiento que busca reducir ciertas palabras muy frecuentes cuando la tarea lo justifica.