Word2Vec: Skip-gram e CBOW
Teoria di Word2Vec, implementazione con gensim, aritmetica vettoriale (king - man + woman = queen)
Word2Vec: Skip-gram e CBOW è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Dalle parole ai vettori
Il machine learning ha bisogno di numeri, mentre le parole sono simboli. Gli embedding delle parole associano ogni parola a un vettore denso, così le parole simili si trovano vicine nello spazio vettoriale.
L'ipotesi distribuzionale
Word2Vec si basa sull'idea che le parole che compaiono in contesti simili abbiano significati simili. Imparando a prevedere il contesto, il modello cattura il significato nei vettori.
Due architetture
Word2Vec dispone di due schemi di addestramento:
- CBOW prevede la parola obiettivo a partire dal contesto circostante
- Skip-gram prevede il contesto circostante a partire dalla parola obiettivo
CBOW e Skip-gram
CBOW è più veloce e funziona bene con le parole frequenti. Skip-gram è più lento, ma gestisce meglio le parole rare e i dataset piccoli. Per ottenere una qualità maggiore, Skip-gram è spesso la scelta predefinita.
Addestramento con gensim
La libreria gensim semplifica l'utilizzo di Word2Vec. Si passano sentences tokenizzate (liste di liste di parole) e si configura l'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)Parametri principali
I parametri principali sono:
vector_sizedimensione dell'embedding (ad esempio 100-300)windowampiezza del contesto attorno a ogni parolamin_countignora le parole meno frequenti di questo valore
from gensim.models import Word2Vec
model = Word2Vec(
sentences,
vector_size=200,
window=5,
min_count=5,
)Scelta di Skip-gram con sg=1
Il parametro sg seleziona l'architettura: sg=0 utilizza CBOW (impostazione predefinita), mentre sg=1 utilizza skip-gram.
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gramAccesso ai vettori delle parole
I vettori addestrati si trovano in model.wv. Indicizzandolo con una parola si ottiene il vettore corrispondente.
vec = model.wv["cat"]
print(vec.shape) # (vector_size,)
print("dog" in model.wv)Ricerca di parole simili
wv.most_similar restituisce le parole i cui vettori sono più vicini: un modo rapido per esaminare ciò che l'embedding ha appreso.
print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairsAritmetica vettoriale
La proprietà più famosa è che la matematica vettoriale cattura le relazioni. re - uomo + donna porta vicino a regina, mostrando che l'embedding codifica le analogie.
result = model.wv.most_similar(
positive=["king", "woman"],
negative=["man"],
topn=1,
)
print(result) # often [("queen", 0.7...)]Utilizzo degli embedding nelle fasi successive
Per rappresentare una frase, calcoli la media dei suoi vettori delle parole e passi il risultato a un classificatore qualsiasi. Gli embedding Word2Vec preaddestrati offrono inoltre un'ottima base di partenza quando i dati sono pochi.
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)Verifica rapida
Verifichi le Sue conoscenze su Word2Vec.
Riepilogo
Riepilogo: Word2Vec apprende vettori densi delle parole a partire dal contesto. CBOW prevede una parola dal contesto (è veloce); skip-gram (sg=1) prevede il contesto da una parola (è migliore per le parole rare). In gensim, imposti vector_size, window e min_count, quindi utilizzi wv.most_similar e analogie come re - uomo + donna.
Domande Frequenti
La lezione «Word2Vec: Skip-gram e CBOW» è gratuita?
Sì — il testo completo di «Word2Vec: Skip-gram e CBOW» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Word2Vec: Skip-gram e CBOW»?
Teoria di Word2Vec, implementazione con gensim, aritmetica vettoriale (king - man + woman = queen) Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Word2Vec: Skip-gram e CBOW»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Word2Vec: Skip-gram e CBOW
- Embedding GloVe e FastText
- Classificazione del testo con BERT
- Similarità semantica ed embedding delle frasi