Word2Vec: Skip-gram y CBOW
Teoría de Word2Vec, implementación con gensim y aritmética vectorial (king - man + woman = queen).
Word2Vec: Skip-gram y CBOW es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
De las palabras a los vectores
El aprendizaje automático necesita números, pero las palabras son símbolos. Los embeddings de palabras asignan cada palabra a un vector denso, de modo que las palabras similares quedan cerca unas de otras en el espacio vectorial.
La hipótesis distribucional
Word2Vec se basa en la idea de que las palabras que aparecen en contextos similares tienen significados similares. Al aprender a predecir el contexto, el modelo captura el significado en los vectores.
Dos arquitecturas
Word2Vec tiene dos esquemas de entrenamiento:
- CBOW predice la palabra objetivo a partir de su contexto circundante
- Skip-gram predice el contexto circundante a partir de la palabra objetivo
CBOW frente a Skip-gram
CBOW es más rápido y funciona bien con palabras frecuentes. Skip-gram es más lento, pero gestiona mejor las palabras poco frecuentes y los conjuntos de datos pequeños. Skip-gram suele ser la opción predeterminada cuando se busca calidad.
Entrenamiento con gensim
La biblioteca gensim facilita el uso de Word2Vec. Se le pasan sentences tokenizadas (listas de listas de palabras) y se configura el embedding.
from gensim.models import Word2Vec
sentences = [["the", "cat", "sat"], ["the", "dog", "ran"]]
model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1)Parámetros clave
Los principales parámetros son:
vector_sizedimensión del embedding (por ejemplo, 100-300)windowanchura del contexto alrededor de cada palabramin_countignora las palabras cuya frecuencia sea inferior a este valor
from gensim.models import Word2Vec
model = Word2Vec(
sentences,
vector_size=200,
window=5,
min_count=5,
)Elegir Skip-gram con sg=1
El parámetro sg selecciona la arquitectura: sg=0 utiliza CBOW (opción predeterminada) y sg=1 utiliza skip-gram.
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gramAcceso a los vectores de palabras
Los vectores entrenados se encuentran en model.wv. Indexe esta estructura con una palabra para obtener el vector correspondiente.
vec = model.wv["cat"]
print(vec.shape) # (vector_size,)
print("dog" in model.wv)Encontrar palabras similares
wv.most_similar devuelve las palabras cuyos vectores están más cerca, una forma rápida de inspeccionar lo que ha aprendido el embedding.
print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairsAritmética con palabras
La propiedad más conocida es que las operaciones con vectores capturan relaciones. king - man + woman queda cerca de queen, lo que demuestra que el embedding codifica analogías.
result = model.wv.most_similar(
positive=["king", "woman"],
negative=["man"],
topn=1,
)
print(result) # often [("queen", 0.7...)]Uso de embeddings en tareas posteriores
Para representar una oración, calcule el promedio de sus vectores de palabras y páselo a cualquier clasificador. Los embeddings de Word2Vec preentrenados también ofrecen un punto de partida sólido cuando los datos son escasos.
import numpy as np
def sentence_vector(words, model):
vecs = [model.wv[w] for w in words if w in model.wv]
return np.mean(vecs, axis=0) if vecs else np.zeros(model.vector_size)Comprobación rápida
Compruebe sus conocimientos sobre Word2Vec.
Resumen
Resumen: Word2Vec aprende vectores densos de palabras a partir del contexto. CBOW predice una palabra a partir del contexto (es rápido); skip-gram (sg=1) predice el contexto a partir de una palabra (es mejor para palabras poco frecuentes). En gensim, establezca vector_size, window y min_count, y después utilice wv.most_similar y analogías como king - man + woman.
Preguntas frecuentes
¿La lección «Word2Vec: Skip-gram y CBOW» es gratis?
Sí — el texto completo de «Word2Vec: Skip-gram y CBOW» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Word2Vec: Skip-gram y CBOW»?
Teoría de Word2Vec, implementación con gensim y aritmética vectorial (king - man + woman = queen). Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Word2Vec: Skip-gram y CBOW»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Word2Vec: Skip-gram y CBOW
- Embeddings de GloVe y FastText
- Clasificación de texto con BERT
- Similitud semántica y embeddings de oraciones