Una red neuronal no puede procesar la letra "k". Pero sí puede procesar el número 10. La tokenización es el puente entre el texto y los números.
Todos los aeropuertos del mundo tienen un código de tres letras. Madrid es MAD, Buenos Aires es EZE, Nueva York es JFK. Si tienes un sistema de reservas, en lugar de guardar "Madrid" (cadena de texto variable), guardas "MAD" (código fijo). Más eficiente, sin ambigüedades.
La diferencia con el aeropuerto: aquí los números sí importan para cálculos posteriores, pero no de forma ordinal. El número 10 no significa que "k" valga diez veces más que "a" (número 0). Solo es una etiqueta. Los embeddings (Lección 9) son los que le darán significado real a cada número.
En nuestro modelo, el vocabulario es intencionalmente pequeño. Solo necesitamos representar nombres de personas en minúsculas, más un token especial de "inicio/fin".
Total: 27 tokens. El token especial [BOS] (Beginning of Sequence) marca el inicio y el fin de cada nombre.
El token [BOS] (Beginning of Sequence) es el más importante del vocabulario. Se usa de dos maneras:
El proceso tiene dos direcciones:
El nombre a procesar: "emma" Primero añadimos el token de inicio: [BOS] e m m a [BOS] → 26 4 12 12 0 26 ¿Cómo obtuvimos cada número? [BOS] → índice 26 (token especial) e → índice 4 (la 5ª letra del alfabeto, contando desde 0) m → índice 12 (la 13ª letra) m → índice 12 (otra vez la misma) a → índice 0 (la primera letra, índice 0) [BOS] → índice 26 (marca el fin del nombre) Resultado final: [26, 4, 12, 12, 0, 26] Longitud: 6 tokens (4 letras + 2 tokens BOS) Para decodificar, hacemos el proceso al revés: [26, 4, 12, 12, 0, 26] → "[BOS]emma[BOS]" → "emma"
k → 10 a → 0 r → 17 p → 15 a → 0 t → 19 h → 7 y → 24 Con tokens BOS al inicio y al final: [26, 10, 0, 17, 15, 0, 19, 7, 24, 26] Longitud: 10 tokens