Word2Vec: Skip-gram och CBOW
Word2Vec-teori, implementering med gensim, vektoraritmetik (king - man + woman = queen).
Word2Vec: Skip-gram och CBOW är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Från ord till vektorer
Maskininlärning behöver siffror, men ord är symboler. Word embeddings mappar varje ord till en tät vektor, så att liknande ord hamnar nära varandra i vektorrummet.
Den distributionella hypotesen
Word2Vec bygger på idén att ord som förekommer i liknande kontexter har liknande betydelser. Genom att lära sig förutsäga kontext fångar modellen betydelsen i vektorerna.
Två arkitekturer
Word2Vec har två träningsmetoder:
- CBOW förutsäger målordet utifrån den omgivande kontexten
- Skip-gram förutsäger den omgivande kontexten utifrån målordet
CBOW kontra Skip-gram
CBOW är snabbare och fungerar bra för vanliga ord. Skip-gram är långsammare men hanterar sällsynta ord och små datamängder bättre. Skip-gram är ofta standardvalet när kvalitet är viktigast.
Träning med gensim
Biblioteket gensim gör Word2Vec enkelt att använda. Skicka in tokeniserade sentences (listor med ordlistor) och ange konfigurationen för embeddingarna.
from gensim.models import Word2Vec
sentences = [["the", "cat", "sat"], ["the", "dog", "ran"]]
model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1)Viktiga parametrar
De viktigaste reglagen är:
vector_sizeembeddingens dimension (t.ex. 100–300)windowkontextfönstrets bredd runt varje ordmin_countignorera ord som förekommer mer sällan än detta
from gensim.models import Word2Vec
model = Word2Vec(
sentences,
vector_size=200,
window=5,
min_count=5,
)Välj Skip-gram med sg=1
Parametern sg väljer arkitektur: sg=0 använder CBOW (standardvärdet), och sg=1 använder skip-gram.
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gramÅtkomst till ordvektorer
Tränade vektorer finns i model.wv. Indexera det med ett ord för att hämta ordets vektor.
vec = model.wv["cat"]
print(vec.shape) # (vector_size,)
print("dog" in model.wv)Hitta liknande ord
wv.most_similar returnerar de ord vars vektorer ligger närmast varandra, vilket är ett snabbt sätt att undersöka vad embedding-modellen har lärt sig.
print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairsVektoraritmetik
Den berömda egenskapen är att vektormatematik fångar relationer. king - man + woman hamnar nära queen, vilket visar att embedding-modellen kodar analogier.
result = model.wv.most_similar(
positive=["king", "woman"],
negative=["man"],
topn=1,
)
print(result) # often [("queen", 0.7...)]Använd embeddingar i efterföljande uppgifter
För att representera en mening beräknar Ni medelvärdet av dess ordvektorer och matar sedan in resultatet i valfri klassificerare. Förtränade Word2Vec-embeddingar ger också en bra utgångspunkt när datamängden är liten.
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)Snabbtest
Testa era kunskaper om Word2Vec.
Sammanfattning
Sammanfattning: Word2Vec lär sig täta ordvektorer från kontext. CBOW förutsäger ett ord utifrån kontext (snabbt); skip-gram (sg=1) förutsäger kontext utifrån ett ord (bättre för sällsynta ord). I gensim anger Ni vector_size, window och min_count och använder sedan wv.most_similar samt analogier som king - man + woman.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Word2Vec: Skip-gram och CBOW” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Word2Vec: Skip-gram och CBOW”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Vad lär jag mig i ”Word2Vec: Skip-gram och CBOW”?
Word2Vec-teori, implementering med gensim, vektoraritmetik (king - man + woman = queen). Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Word2Vec: Skip-gram och CBOW”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Word2Vec: Skip-gram och CBOW
- GloVe- och FastText-embeddingar
- Textklassificering med BERT
- Semantisk likhet och menings-embeddingar