18 · Sentimiento Kindle: AvgWord2Vec vs TF-IDF
Construye features AvgWord2Vec para sentimiento binario de reseñas Kindle y compara cara a cara con TF-IDF — el flujo de trabajo diario de un ingeniero NLP aplicado.
Usa features AvgWord2Vec para una tarea de sentimiento binario de reseñas Kindle — descubre cuándo los embeddings densos superan los conteos dispersos.
Sin esto:
Sin la comparación cara a cara, denso vs disperso sigue siendo abstracto.
Ya construiste un pipeline de spam con BOW y una comparación A/B BOW vs TF-IDF. Esta lección reutiliza la misma forma de pipeline en una tarea diferente — clasificación de sentimiento binario en reseñas Kindle sintéticas — y cambia un componente: en vez de una matriz de bag-of-words, introduces vectores Word2Vec promediados.
La idea de ingeniería clave es que el esqueleto del pipeline no cambia en absoluto:
vectorizar → LogisticRegression → evaluar
Lo que cambia es qué significa "vectorizar":
- TF-IDF: una matriz dispersa de frecuencias de término ponderadas por IDF. Cada dimensión es un token del vocabulario.
- AvgWord2Vec: un vector denso de ancho fijo (50-D aquí). Cada dimensión es un eje semántico aprendido, promediado en todos los tokens de la reseña.
La advertencia de la demo: gensim no está disponible en Pyodide, por lo que en vez de cargar pesos reales pre-entrenados de Word2Vec construimos una matriz de embeddings aleatoria de 50-D indexada por vocabulario. Esto imita la forma del pipeline sin proporcionar conocimiento semántico real. En nuestro pequeño dataset de 40 reseñas con vectores aleatorios, TF-IDF suele ganar — porque los embeddings aleatorios no llevan señal semántica. El bloque pyRead explica exactamente cuándo los embeddings pre-entrenados reales (GloVe, fastText) sí superan a TF-IDF.
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).
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).
Cuándo los embeddings reales pre-entrenados superan a TF-IDF: datos pequeños + sensibilidad a sinónimos
Por que los features reales de avg-Word2Vec tipicamente superan a TF-IDF en datasets de entrenamiento PEQUENOS?
- El pipeline de AvgWord2Vec tiene el mismo esqueleto que TF-IDF mas LogReg: vectorizar, clasificar, evaluar. Solo cambia el paso de vectorizacion — un embedding promediado denso reemplaza la matriz dispersa de frecuencia de terminos.
- Los embeddings aleatorios llevan cero senal semantica — son solo una demo de la forma del pipeline. Los embeddings reales pre-entrenados (GloVe, Word2Vec, fastText) codifican relaciones semanticas construidas a partir de miles de millones de tokens de entrenamiento y son los que superan a TF-IDF en datasets pequenos.
- Pocos datos significa que los features densos reales pre-entrenados ganan; muchos datos significa que TF-IDF disperso puede igualarlos o superarlos. El punto de cruce es aproximadamente 1 000 a 2 000 ejemplos etiquetados para tareas de sentimiento.
- La mejor practica moderna para sentimiento con pocos datos: sentence-transformers paraphrase-MiniLM-L6-v2. Promedia embeddings transformer de sub-palabras en un unico vector de 384-D por frase y logra entre 85 y 95 por ciento de precision con tan solo 50 ejemplos de entrenamiento.
Los sistemas de sentimiento en produccion combinan features dispersos (TF-IDF) y densos (transformer) mediante FeatureUnion; la comparacion cara a cara realizada aqui es el dia a dia de un ingeniero NLP aplicado.
Si lo quitas: Usarias TF-IDF por defecto sin explorar cuando los embeddings ayudan.