Lær AI med Python · Lektion

Word2Vec: Skip-gram og CBOW

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

Lektion 1 af 413 trin

Word2Vec: Skip-gram og CBOW er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Fra ord til vektorer

Maskinlæring har brug for tal, men ord er symboler. Ordindlejringer mapper hvert ord til en tæt vektor, så ord med lignende betydning ligger tæt på hinanden i vektorrummet.

Distributionshypotesen

Word2Vec bygger på idéen om, at ord, der optræder i lignende kontekster, har lignende betydninger. Ved at lære at forudsige kontekst indfanger modellen betydning i vektorerne.

To arkitekturer

Word2Vec har to træningsmetoder:

  • CBOW forudsiger målordet ud fra den omgivende kontekst
  • Skip-gram forudsiger den omgivende kontekst ud fra målordet

CBOW sammenlignet med Skip-gram

CBOW er hurtigere og fungerer godt for hyppige ord. Skip-gram er langsommere, men håndterer sjældne ord og små datasæt bedre. Skip-gram er ofte standardvalget, når kvaliteten prioriteres.

Træning med gensim

Biblioteket gensim gør Word2Vec nemt at bruge. Du sender tokeniserede sentences (lister med ordlister) og angiver indlejringskonfigurationen.

from gensim.models import Word2Vec

sentences = [["the", "cat", "sat"], ["the", "dog", "ran"]]
model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1)

Vigtige parametre

De vigtigste parametre er:

  • vector_size indlejringsdimensionen (f.eks. 100-300)
  • window kontekstbredden omkring hvert ord
  • min_count ignorerer ord, der forekommer sjældnere end dette
from gensim.models import Word2Vec

model = Word2Vec(
    sentences,
    vector_size=200,
    window=5,
    min_count=5,
)

Valg af Skip-gram med sg=1

Parameteren sg vælger arkitekturen: sg=0 bruger CBOW (standardindstillingen), og sg=1 bruger skip-gram.

from gensim.models import Word2Vec

model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gram

Adgang til ordvektorer

De trænede vektorer findes i model.wv. Slå en vektor op ved at indeksere den med et ord.

vec = model.wv["cat"]
print(vec.shape)   # (vector_size,)
print("dog" in model.wv)

Find lignende ord

wv.most_similar returnerer de ord, hvis vektorer ligger nærmest, og er en hurtig måde at undersøge, hvad indlejringen har lært.

print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairs

Ordregning

Den kendte egenskab er, at vektormatematik indfanger relationer. konge - mand + kvinde ender tæt på dronning, hvilket viser, at indlejringen koder analogier.

result = model.wv.most_similar(
    positive=["king", "woman"],
    negative=["man"],
    topn=1,
)
print(result)   # often [("queen", 0.7...)]

Brug af indlejringer i efterfølgende modeller

For at repræsentere en sætning skal du beregne gennemsnittet af dens ordvektorer og derefter sende resultatet til en vilkårlig klassifikator. Fortrænede Word2Vec-indlejringer giver også et godt udgangspunkt, når du har få data.

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)

Hurtig test

Test din viden om Word2Vec.

Opsummering

Opsummering: Word2Vec lærer tætte ordvektorer ud fra kontekst. CBOW forudsiger et ord ud fra kontekst (hurtigt), mens skip-gram (sg=1) forudsiger kontekst ud fra et ord (bedre til sjældne ord). I gensim skal du angive vector_size, window og min_count og derefter bruge wv.most_similar samt analogier som konge - mand + kvinde.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Word2Vec: Skip-gram og CBOW” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Word2Vec: Skip-gram og CBOW”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Word2Vec: Skip-gram og CBOW”?

Word2Vec-teori, implementering med gensim, vektorregning (king - man + woman = queen). Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Word2Vec: Skip-gram og CBOW”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Word2Vec: Skip-gram og CBOW
  2. GloVe- og FastText-embeddings
  3. Tekstklassifikation med BERT
  4. Semantisk lighed og sentence embeddings
← Tilbage til Lær AI med Python