7. Tokenización de texto

7.1 Introducción

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.

7.2 ¿Qué es un token?

Un token es una unidad de texto producida por un proceso de segmentación. Dependiendo del enfoque, un token puede ser:

  • Una palabra.
  • Un signo de puntuación.
  • Una subpalabra.
  • Un carácter.
  • Un símbolo especial.

Por ejemplo, la oración:

Hola, mundo!

puede tokenizarse como:

[Hola, ,, mundo, !]

o de otras maneras, según la estrategia elegida.

7.3 ¿Por qué es importante tokenizar?

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:

  • Generar vocabularios innecesariamente grandes.
  • Romper palabras de manera poco útil.
  • Perder información relevante.
  • Dificultar la generalización del modelo.
La tokenización no es un detalle menor. Define las piezas básicas con las que el sistema va a representar y analizar el lenguaje.

7.4 Tokenizar no siempre es separar por espacios

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.

7.5 Ejemplo intuitivo

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:

  • Los signos de puntuación también pueden tratarse como tokens.
  • La segmentación final depende de reglas o algoritmos específicos.

7.6 Tokenización por palabras

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:

  • Resulta fácil de comprender.
  • Se adapta bien a técnicas como Bag of Words y TF-IDF.
  • Permite construir vocabularios interpretables.

Sin embargo, también tiene problemas, especialmente cuando aparecen palabras desconocidas, errores ortográficos, variantes morfológicas o idiomas con segmentación compleja.

7.7 Tokenización por caracteres

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:

  • No depende de un vocabulario de palabras cerrado.
  • Maneja mejor errores ortográficos y palabras raras.
  • Puede capturar patrones morfológicos pequeños.

Su principal desventaja es que las secuencias se vuelven mucho más largas y menos directamente semánticas.

7.8 Tokenización por subpalabras

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:

  • Reduce el problema de palabras desconocidas.
  • Permite compartir fragmentos entre palabras relacionadas.
  • Funciona mejor con vocabularios manejables en modelos grandes.
  • Se adapta bien a Transformers y modelos preentrenados.

Por eso, muchos tokenizadores modernos se basan en subpalabras y no en palabras completas.

7.9 Tokenización y vocabulario

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:

  • El tamaño del vocabulario.
  • La longitud de las secuencias.
  • La capacidad de manejar términos raros.
  • La interpretabilidad de la representación.

Tokenización y vocabulario, por lo tanto, son decisiones estrechamente conectadas.

7.10 Signos de puntuación como tokens

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.

7.11 Contracciones, apóstrofos y formas especiales

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.

7.12 Números, fechas y unidades

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
  • $500
  • 3.14

La decisión influye en la forma en que el modelo interpreta cantidades, medidas y formatos específicos.

7.13 Emojis, hashtags y texto de redes

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.

7.14 Ambigüedad en la segmentación

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.

7.15 Tokenización y longitud de secuencia

El tipo de tokenización elegido afecta cuán largas serán las secuencias resultantes.

  • La tokenización por caracteres produce secuencias largas.
  • La tokenización por palabras produce secuencias más cortas.
  • La tokenización por subpalabras suele quedar en un punto intermedio.

Esto es importante porque la longitud de secuencia influye en costo computacional, memoria y capacidad de los modelos para manejar contexto.

7.16 Tokens especiales

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.

7.17 Tokenización en NLP clásico

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:

  • Bag of Words.
  • TF-IDF.
  • Clasificación con modelos lineales.
  • Análisis léxico tradicional.

En ese contexto, la tokenización estaba muy ligada al análisis lingüístico y a la construcción de vocabularios de palabras completas.

7.18 Tokenización en modelos modernos

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.

7.19 Ejemplo conceptual comparativo

Supongamos que queremos tokenizar la palabra:

internacionalización

Según el enfoque, podríamos obtener:

  • Por palabra: [internacionalización]
  • Por caracteres: [i, n, t, e, r, ...]
  • Por subpalabras: una división en fragmentos frecuentes reutilizables.

Cada opción tiene ventajas y costos distintos. Ninguna es universalmente superior; depende de la tarea y del modelo.

Tokenizar es decidir cuáles serán las piezas básicas del lenguaje para el sistema. Esa decisión condiciona todo el pipeline posterior.

7.20 Resumen comparativo

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.

7.21 Qué debes recordar de este tema

  • Tokenizar es segmentar el texto en unidades manejables para el sistema.
  • Un token puede ser una palabra, un carácter, una subpalabra o un símbolo especial.
  • La tokenización influye en el vocabulario, la longitud de secuencia y la calidad de la representación.
  • Separar por espacios no siempre alcanza para tokenizar bien.
  • En NLP moderno, el tokenizador suele formar parte del propio modelo.

7.22 Conclusión

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.