6 · One-hot encoding para texto
Construye un vocabulario OHE pequeño a mano — luego descubre por qué explota con lenguaje real y resulta una representación muy pobre.
Representar cada palabra única como un vector one-hot es la codificación texto→vector más simple — y un buen punto de referencia para comparar.
Sin esto:
Saltarías la línea base fundamental que hace que BOW y los embeddings se entiendan con claridad.
En el capítulo anterior aprendimos a limpiar y tokenizar texto. Pero los algoritmos de ML necesitan números, no strings. La forma más simple — y más naive — de convertir palabras en números es el one-hot encoding (OHE).
La idea es sencilla: construye un vocabulario con todas las palabras únicas de tu corpus, asigna a cada palabra un índice entero y luego representa cada palabra como un vector de ceros excepto un 1 en el índice de esa palabra.
Para un vocabulario ["cat", "dog", "feline", "pet"] (tamaño 4):
"cat"→[1, 0, 0, 0]"dog"→[0, 1, 0, 0]"feline"→[0, 0, 1, 0]
Una oración se representa entonces como una secuencia de vectores OHE — una matriz 2D con forma (num_tokens, vocab_size).
El OHE funciona muy bien para variables categóricas de baja cardinalidad (colores, días de la semana, códigos postales). Para el lenguaje natural, se rompe casi de inmediato — como estás a punto de ver.
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Cuatro problemas estructurales del OHE para texto — y las técnicas que los resuelven
¿Cuál es la dimensión de un vector one-hot cuando el tamaño del vocabulario es 50,000?
- El OHE representa cada palabra como un vector binario de longitud igual al tamaño del vocabulario — simple de construir pero escala de forma catastrófica con el tamaño del vocabulario.
- Los cuatro problemas del OHE para texto: (1) vectores esparcidos enormes, (2) sin similitud entre sinónimos, (3) secuencias de longitud variable, (4) sin representación para palabras fuera del vocabulario.
- El OHE es apropiado para features categóricas de baja cardinalidad (colores, días, códigos postales) — no para vocabularios de lenguaje natural de decenas de miles.
- BOW, TF-IDF y Word2Vec resuelven cada uno uno o más de los cuatro problemas del OHE — entender los fallos del OHE es la motivación de cada técnica que sigue.
El OHE de tokens es una línea base conceptual útil para enseñanza y depuración; en NLP de producción ha sido reemplazado por embeddings densos. El OHE sigue apareciendo para features de entrada categóricas en ML tabular (OneHotEncoder de sklearn).
Si lo quitas: Sin entender el OHE, el BOW parece arbitrario — no ves que BOW es simplemente 'suma las filas OHE', y los embeddings parecen magia en lugar de una solución fundamentada al fallo del OHE.