Lär Er AI med Python · Lektion

Word2Vec: Skip-gram och CBOW

Word2Vec-teori, implementering med gensim, vektoraritmetik (king - man + woman = queen).

Lektion 1 av 413 steg

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_size embeddingens dimension (t.ex. 100–300)
  • window kontextfönstrets bredd runt varje ord
  • min_count ignorera 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) pairs

Vektoraritmetik

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.

Gratis att börja

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

  1. Word2Vec: Skip-gram och CBOW
  2. GloVe- och FastText-embeddingar
  3. Textklassificering med BERT
  4. Semantisk likhet och menings-embeddingar
← Tillbaka till Lär Er AI med Python