¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Qué es la tokenización de un texto

Después de esta lección: Puedo dividir un texto en tokens y limpiarlo con un programa de Python.

Lección de 50 min1 comandoLaboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

Un programa no ve palabras

La tokenización es el paso que corta un texto en trozos pequeños, llamados tokens, para que un programa pueda trabajar con él. Es el primer paso de todo lo que lee texto: un buscador, un corrector o un asistente de chat.

Piensa en el mensaje «Hola, ¿quedamos a las 5?». Para ti son palabras. Para un programa es una fila de caracteres, y alguien tiene que decidir dónde acaba un trozo y empieza el siguiente.

Al final de esta lección

Nota

Puedo dividir un texto en tokens y limpiarlo con un programa de Python.

Palabras clave

PalabraQué significaEjemplo
Tokenun trozo de texto con el que trabaja el programa
Tokenizacióncortar un texto en tokens
Normalizardejar el texto en una forma única, por ejemplo en minúsculas
Palabra vacíauna palabra muy común que dice pocode
Vocabulariola lista de tokens distintos de un texto

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un token es un trozo de texto

Un token puede ser una palabra, una letra o un signo. Quien programa elige el tamaño del trozo según lo que necesita.

Cortar por letras da trozos muy pequeños y listas larguísimas. Cortar por espacios da palabras, pero deja pegados los signos: «equipo,» y «equipo» serían dos tokens distintos. La tokenización busca un punto medio útil.

Corta una frase de dos formas

Código: python
# Dos formas de cortar la misma frase.
frase = "hola equipo, quedamos a las cinco"
palabras = frase.split()
letras = list(frase)
print(palabras)
print(len(palabras), "trozos por espacios")
print(len(letras), "trozos por letras")
# Cambia la frase por un mensaje tuyo y ejecuta.

Normalizar es dejar una sola forma

Para el programa, «Hola», «hola» y «hola,» son tres textos distintos. Si quieres contarlos como la misma palabra, hay que normalizar.

Lo más habitual son dos pasos. Primero se pasa todo a minúsculas. Después se quitan los signos de puntuación. Las tildes se conservan, porque «sí» y «si» son palabras diferentes.

Ejemplo resuelto: de la frase a los tokens

PasoResultado
Texto de partida¡Hoy hay clase, Ana!
Pasar a minúsculas¡hoy hay clase, ana!
Cambiar los signos por espacios hoy hay clase ana
Cortar por espacioshoy, hay, clase, ana
Contar4 tokens

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Mira cómo quedan los signos

Comando
docker exec jupyter python3 -c "print('Hola, que tal?'.split())"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Limpia una palabra

Código: python
# Quitar los signos y las mayúsculas de UNA palabra.
def normalise(word):
    out = ""
    for ch in word.lower():
        if ch.isalnum():
            out = out + ch
    return out

print(normalise("¡Hola,"))
print(normalise("CINCO?"))
print(normalise("gol!!!"))
# Prueba con "¿Qué" y fíjate en que la tilde se conserva.

Las palabras vacías aparecen en casi todo

Palabras como «el», «de», «que» o «y» están en casi cualquier frase. Se llaman palabras vacías. Dicen muy poco sobre el tema del texto.

Muchos programas las quitan antes de contar. La lista no es única: la eliges tú según el trabajo. Todo el conjunto de tokens distintos que quedan es el vocabulario.

Un error muy común

Advertencia

Mucha gente cree que un token es lo mismo que una palabra. No siempre lo es: puede ser un signo o un trozo de palabra. Llama «palabra» a lo que lee una persona y «token» a lo que decide tu programa.

Para ir más lejos: tus propias palabras vacías

Escribe en tu cuaderno cinco frases sobre tu semana en la universidad. Tokeniza cada una con tu función.

Cuenta qué tokens se repiten más. ¿Cuántos son palabras vacías? Añade a tu lista las que faltan y mira cómo cambia el vocabulario.

Sobre este laboratorio y su código: Laboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.