0Pricing
Learn AI with Python · Lekcja

Word2Vec: Skip-gram i CBOW

Teoria Word2Vec, implementacja w gensim, działania na wektorach (king - man + woman = queen).

Word2Vec: Skip-gram i CBOW to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Od słów do wektorów

Uczenie maszynowe potrzebuje liczb, ale słowa są symbolami. Embeddingi słów odwzorowują każde słowo na gęsty wektor, dzięki czemu podobne słowa znajdują się blisko siebie w przestrzeni wektorowej.

Hipoteza dystrybucyjna

Word2Vec opiera się na założeniu, że słowa występujące w podobnych kontekstach mają podobne znaczenia. Ucząc się przewidywać kontekst, model odwzorowuje znaczenie w wektorach.

Dwie architektury

Word2Vec ma dwa schematy trenowania:

  • CBOW przewiduje słowo docelowe na podstawie otaczającego je kontekstu
  • Skip-gram przewiduje otaczający kontekst na podstawie słowa docelowego

CBOW a Skip-gram

CBOW działa szybciej i dobrze sprawdza się w przypadku często występujących słów. Skip-gram jest wolniejszy, ale lepiej radzi sobie z rzadkimi słowami i małymi zbiorami danych. Skip-gram jest często domyślnym wyborem, gdy najważniejsza jest jakość.

Trenowanie za pomocą gensim

Biblioteka gensim ułatwia korzystanie z Word2Vec. Należy przekazać stokenizowane sentences (listy list słów) i skonfigurować embeddingi.

from gensim.models import Word2Vec

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

Najważniejsze parametry

Najważniejsze parametry to:

  • vector_size wymiar embeddingu (np. 100–300)
  • window szerokość kontekstu wokół każdego słowa
  • min_count ignorowanie słów rzadszych niż podana wartość
from gensim.models import Word2Vec

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

Wybór Skip-gram za pomocą sg=1

Parametr sg wybiera architekturę: sg=0 używa CBOW (ustawienie domyślne), a sg=1 używa Skip-gram.

from gensim.models import Word2Vec

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

Dostęp do wektorów słów

Wytrenowane wektory znajdują się w model.wv. Aby uzyskać wektor danego słowa, należy zaindeksować ten obiekt słowem.

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

Wyszukiwanie podobnych słów

wv.most_similar zwraca słowa, których wektory znajdują się najbliżej, co pozwala szybko sprawdzić, czego nauczył się embedding.

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

Arytmetyka słów

Słynna właściwość: działania na wektorach odwzorowują relacje. król - mężczyzna + kobieta daje wynik bliski królowej, pokazując, że embedding koduje analogie.

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

Wykorzystanie embeddingów w dalszych zadaniach

Aby reprezentować zdanie, należy uśrednić jego wektory słów, a następnie przekazać wynik do dowolnego klasyfikatora. Wstępnie wytrenowane embeddingi Word2Vec zapewniają również dobry punkt wyjścia, gdy zbiór danych jest mały.

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)

Szybkie sprawdzenie

Sprawdź swoją wiedzę o Word2Vec.

Podsumowanie

Podsumowanie: Word2Vec uczy się gęstych wektorów słów na podstawie kontekstu. CBOW przewiduje słowo na podstawie kontekstu (działa szybko), a Skip-gram (sg=1) przewiduje kontekst na podstawie słowa (lepiej radzi sobie z rzadkimi słowami). W bibliotece gensim należy ustawić vector_size, window i min_count, a następnie używać wv.most_similar oraz analogii takich jak król - mężczyzna + kobieta.

Często zadawane pytania

Czy lekcja „Word2Vec: Skip-gram i CBOW” jest bezpłatna?

Tak — pełny tekst „Word2Vec: Skip-gram i CBOW” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Word2Vec: Skip-gram i CBOW”?

Teoria Word2Vec, implementacja w gensim, działania na wektorach (king - man + woman = queen). Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Word2Vec: Skip-gram i CBOW”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Word2Vec: Skip-gram i CBOW
  2. Osadzenia GloVe i FastText
  3. Klasyfikacja tekstu za pomocą BERT
  4. Podobieństwo semantyczne i osadzenia zdań
← Powrót do Learn AI with Python