Word2Vec : Skip-gram et CBOW
Théorie de Word2Vec, implémentation avec gensim, arithmétique vectorielle (king - man + woman = queen).
Word2Vec : Skip-gram et CBOW est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Des mots aux vecteurs
L'apprentissage automatique a besoin de nombres, mais les mots sont des symboles. Les représentations vectorielles de mots associent chaque mot à un vecteur dense, de sorte que les mots similaires soient proches les uns des autres dans l'espace vectoriel.
L'hypothèse distributionnelle
Word2Vec repose sur l'idée que les mots qui apparaissent dans des contextes similaires ont des significations similaires. En apprenant à prédire le contexte, le modèle capture le sens dans les vecteurs.
Deux architectures
Word2Vec propose deux méthodes d'entraînement :
- CBOW prédit le mot cible à partir de son contexte environnant
- le skip-gramme prédit le contexte environnant à partir du mot cible
CBOW ou skip-gramme
CBOW est plus rapide et fonctionne bien avec les mots fréquents. Le skip-gramme est plus lent, mais gère mieux les mots rares et les petits jeux de données. Le skip-gramme est souvent le choix par défaut lorsqu'on privilégie la qualité.
Entraînement avec gensim
La bibliothèque gensim simplifie l'utilisation de Word2Vec. Vous lui transmettez des sentences tokenisées (des listes de listes de mots) et définissez la configuration de la représentation vectorielle.
from gensim.models import Word2Vec
sentences = [["the", "cat", "sat"], ["the", "dog", "ran"]]
model = Word2Vec(sentences=sentences, vector_size=100, window=5, min_count=1)Paramètres principaux
Les principaux paramètres sont :
vector_sizedimension de la représentation vectorielle (par exemple, 100 à 300)windowlargeur du contexte autour de chaque motmin_countignore les mots plus rares que ce seuil
from gensim.models import Word2Vec
model = Word2Vec(
sentences,
vector_size=200,
window=5,
min_count=5,
)Choisir le skip-gramme avec sg=1
Le paramètre sg sélectionne l'architecture : sg=0 utilise CBOW (par défaut) et sg=1 utilise le skip-gramme.
from gensim.models import Word2Vec
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, sg=1)
# sg=1 -> skip-gramAccéder aux vecteurs de mots
Les vecteurs entraînés se trouvent dans model.wv. Utilisez un mot comme indice pour obtenir le vecteur correspondant.
vec = model.wv["cat"]
print(vec.shape) # (vector_size,)
print("dog" in model.wv)Trouver des mots similaires
wv.most_similar renvoie les mots dont les vecteurs sont les plus proches ; c'est un moyen rapide d'examiner ce que la représentation vectorielle a appris.
print(model.wv.most_similar("cat", topn=5))
# returns list of (word, similarity) pairsArithmétique vectorielle
Cette propriété est célèbre : le calcul vectoriel capture les relations. roi - homme + femme aboutit près de reine, ce qui montre que la représentation vectorielle encode des analogies.
result = model.wv.most_similar(
positive=["king", "woman"],
negative=["man"],
topn=1,
)
print(result) # often [("queen", 0.7...)]Utiliser les représentations vectorielles en aval
Pour représenter une phrase, faites la moyenne de ses vecteurs de mots, puis transmettez le résultat à n'importe quel classifieur. Les représentations Word2Vec préentraînées constituent également un excellent point de départ lorsque vos données sont peu nombreuses.
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)Vérification rapide
Évaluez vos connaissances sur Word2Vec.
Récapitulatif
Récapitulatif : Word2Vec apprend des vecteurs de mots denses à partir du contexte. CBOW prédit un mot à partir du contexte (rapidement) ; le skip-gramme (sg=1) prédit le contexte à partir d'un mot (meilleur pour les mots rares). Dans gensim, définissez vector_size, window et min_count, puis utilisez wv.most_similar et des analogies comme roi - homme + femme.
Questions Fréquemment Posées
La leçon « Word2Vec : Skip-gram et CBOW » est-elle gratuite ?
Oui — le texte complet de « Word2Vec : Skip-gram et CBOW » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Word2Vec : Skip-gram et CBOW » ?
Théorie de Word2Vec, implémentation avec gensim, arithmétique vectorielle (king - man + woman = queen). Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Word2Vec : Skip-gram et CBOW » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Word2Vec : Skip-gram et CBOW
- Plongements GloVe et FastText
- Classification de texte avec BERT
- Similarité sémantique et plongements de phrases