Word2Vec è uno degli algoritmi che ha aperto la strada agli embedding moderni: trasforma le parole in vettori numerici densi in modo che parole con significato simile finiscano vicine nello stesso spazio matematico. Pubblicato da Tomáš Mikolov e dal team di Google nel 2013, è ancora oggi un riferimento didattico fondamentale per capire come funzionano la rappresentazione semantica e la ricerca vettoriale.
Nota — aggiornamento 2026. Nel 2026 lo stato dell’arte degli embedding non è più Word2Vec: i modelli contestuali come BERT, Sentence-Transformers, e5, BGE e gli embedding API di OpenAI, Cohere e Voyage producono rappresentazioni semantiche molto più ricche perché tengono conto del contesto della frase, non solo della parola isolata. Word2Vec resta utile come strumento leggero, veloce e didattico, ma per progetti SEO e RAG seri oggi conviene partire direttamente dagli embedding moderni. Trovi il quadro completo nell’articolo dedicato agli embedding linkato sopra.
Come funziona Word2Vec
Word2Vec è una rete neurale shallow (un solo hidden layer) che impara a rappresentare le parole come vettori densi a partire da un grande corpus di testo. L’idea di base è la semantica distribuzionale: parole che compaiono in contesti simili tendono ad avere significati simili. Ecco i passaggi principali:
- Preparazione dei dati: il corpus viene scomposto in coppie di parole vicine. Dalla frase “il gatto è sul tappeto” si ottengono coppie come (“gatto”, “è”), (“gatto”, “sul”), (“è”, “tappeto”) e così via.
- Inizializzazione dei vettori: ogni parola del vocabolario parte come vettore di numeri casuali. Questi vettori vengono aggiornati man mano che la rete neurale impara dalle coppie.
- Apprendimento delle relazioni: la rete cerca di prevedere una parola dato il contesto (modello CBOW, Continuous Bag of Words) o di prevedere il contesto data una parola (modello Skip-Gram). Alla fine dell’addestramento parole semanticamente simili hanno vettori vicini.
Una volta addestrato, Word2Vec permette di calcolare la similarità tra parole (per esempio “re” è simile a “regina”) e di risolvere analogie famose come “re sta a uomo come regina sta a donna”. Word2Vec non capisce il linguaggio: impara solo regolarità statistiche dai dati di addestramento, quindi la qualità degli embedding dipende interamente dalla qualità e dalla dimensione del corpus.
Rappresentazione vettoriale semantica delle parole
Rappresentazione vettoriale semantica delle parole è un modo di descrivere il risultato principale dell’algoritmo Word2Vec.
- Rappresentazione vettoriale: ogni parola è un vettore in uno spazio multidimensionale. Tipicamente si usano spazi a 100, 200 o 300 dimensioni: ogni parola diventa quindi una lista di 100-300 numeri.
- Semantica: i vettori non sono casuali. Sono progettati in modo tale che parole con significati simili siano vicine nello spazio. La distanza tra due vettori (di solito misurata con la similarità del coseno) indica quanto le parole sono semanticamente affini.
- Delle parole: Word2Vec lavora a livello di singola parola, non di frase o documento. Per rappresentare frasi intere servono modelli pensati apposta come Sentence-Transformers o gli embedding API moderni.
Word2Vec vs embedding moderni: BERT, Sentence-Transformers, LLM
La differenza fondamentale tra Word2Vec e i modelli di embedding moderni è una sola: il contesto. In Word2Vec ogni parola ha un solo vettore, fisso, indipendente dalla frase in cui compare. La parola “calcio” ha lo stesso identico vettore quando parli di sport, di chimica o di un calcio in faccia. I modelli moderni, invece, producono vettori diversi a seconda del contesto.
- BERT (Google, 2018) e i suoi derivati generano embedding contestuali: la rappresentazione di una parola dipende da tutta la frase in cui è inserita. È stato il salto generazionale rispetto a Word2Vec.
- Sentence-Transformers (libreria
sentence-transformers) produce embedding di intere frasi e paragrafi, ed è oggi lo standard de facto per task come ricerca semantica, clustering di query e classificazione di documenti. Modelli comeall-MiniLM-L6-v2,multilingual-e5-largeoBAAI/bge-m3funzionano molto bene anche in italiano. - Embedding API commerciali come OpenAI
text-embedding-3-small/large, Cohereembed-multilingual-v3, Voyagevoyage-3e Googlegemini-embeddingoffrono qualità ai vertici e zero infrastruttura, ma sono a pagamento e dipendono da un fornitore esterno. - Word2Vec resta competitivo solo quando ti servono embedding di parole singole, leggeri, deterministici, eseguibili offline su risorse minime e rapidi da addestrare su un corpus di dominio molto specifico.
In pratica: se devi fare ricerca semantica su contenuti di un sito, clusterizzare query GSC o costruire un sistema RAG, parti dai modelli moderni. Se stai studiando come funzionano gli embedding o vuoi un esperimento didattico ed economico, Word2Vec è ancora un ottimo punto di partenza.
Software e implementazioni
Word2Vec è un algoritmo, quindi può essere implementato in qualsiasi linguaggio. Le implementazioni più diffuse sono in Python perché l’ecosistema NLP e machine learning è quasi tutto lì. Dal punto di vista hardware non servono GPU per usare un modello già addestrato: l’inferenza è leggerissima e gira su qualsiasi laptop. Le GPU servono solo se vuoi addestrare un modello tuo da zero su un corpus molto grande.
- Gensim: libreria Python di riferimento per Word2Vec, FastText, Doc2Vec e LDA. Include un’implementazione efficiente, multi-thread, ampiamente usata in ricerca e produzione.
- spaCy: toolkit Python per NLP che fornisce vettori di parole pre-addestrati (anche per l’italiano) e API di alto livello per usarli in pipeline complete.
- TensorFlow e PyTorch: framework di deep learning con cui è possibile reimplementare Word2Vec da zero a scopo didattico o per personalizzazioni avanzate.
- Word2Vec originale di Google: il codice C++ originale rilasciato dal team di Mikolov è ancora disponibile, ma oggi quasi nessuno lo usa direttamente — Gensim è molto più pratico.
Utilità per la SEO
Nel contesto SEO, gli embedding (Word2Vec o moderni) sono utili soprattutto per lavorare in modo automatizzato su grandi liste di query e contenuti. Ecco gli use case concreti che uso più spesso:
- Clustering di parole chiave: raggruppare migliaia di query GSC o di un keyword tool in cluster semantici per organizzare topic, silos e contenuti. Ho descritto il flusso completo nell’articolo sul cluster di parole chiave con Python.
- Espansione di keyword research: trovare termini semanticamente vicini a una keyword seed per ampliare la lista di partenza con varianti che gli strumenti tradizionali non sempre intercettano.
- Rilevamento di cannibalizzazione: calcolare la similarità semantica tra pagine dello stesso sito per scovare contenuti che competono sulle stesse intenzioni di ricerca.
- Mappatura query → pagina: assegnare automaticamente ogni query GSC alla pagina più rilevante del sito, utile per audit di rilevanza e per l’information retrieval applicato alla SEO.
- Ricerca semantica interna: alimentare un motore di ricerca interno che risponde a query in linguaggio naturale invece che a match esatti di parola chiave. Per questo use case però conviene direttamente Sentence-Transformers o un embedding API.
Script di clustering con Word2Vec pre-addestrato
Importante: per ottenere cluster sensati non si può addestrare Word2Vec da zero su una manciata di parole, servono milioni di frasi. La strada corretta è usare un modello pre-addestrato e applicarci sopra il clustering. Ecco un esempio funzionante con Gensim e un modello GloVe pre-addestrato (sostituibile con modelli italiani):
import gensim.downloader as api
import numpy as np
from sklearn.cluster import KMeans
# Scarica un modello pre-addestrato (~130 MB la prima volta)
# Alternative: 'word2vec-google-news-300', 'fasttext-wiki-news-subwords-300'
model = api.load('glove-wiki-gigaword-100')
# Lista di keyword in inglese (GloVe wiki è addestrato sull'inglese)
keywords = ['motorcycle', 'bicycle', 'airplane', 'ship',
'canoe', 'kite', 'helicopter', 'submarine']
# Estrai i vettori, saltando le parole non presenti nel vocabolario
vectors = np.array([model[w] for w in keywords if w in model])
valid_words = [w for w in keywords if w in model]
# Clustering K-Means
kmeans = KMeans(n_clusters=3, n_init=10, random_state=42)
labels = kmeans.fit_predict(vectors)
for word, label in zip(valid_words, labels):
print(f"{word} --> Cluster {label}")
Per lavorare in italiano puoi caricare un modello FastText italiano (cc.it.300.bin da Facebook Research) o usare spaCy con it_core_news_lg, che include vettori di parole già pronti. Installa le dipendenze con:
pip install gensim scikit-learn numpy
Alternativa moderna: lo stesso clustering con Sentence-Transformers
Se vuoi risultati migliori con meno righe di codice e supporto multilingua nativo (italiano incluso), questa è la versione equivalente con sentence-transformers. Funziona anche su frasi intere, non solo su parole singole, ed è il mio approccio di default oggi:
from sentence_transformers import SentenceTransformer
from sklearn.cluster import KMeans
# Modello multilingua leggero, ottimo per italiano
model = SentenceTransformer('intfloat/multilingual-e5-small')
keywords = ['motocicletta', 'bicicletta', 'aereo', 'nave',
'canoa', 'aquilone', 'elicottero', 'sottomarino']
# Embedding di tutte le keyword in un colpo solo
embeddings = model.encode(keywords, normalize_embeddings=True)
kmeans = KMeans(n_clusters=3, n_init=10, random_state=42)
labels = kmeans.fit_predict(embeddings)
for word, label in zip(keywords, labels):
print(f"{word} --> Cluster {label}")
Installazione:
pip install sentence-transformers scikit-learn
Domande frequenti
Word2Vec è ancora utile nel 2026? Sì, ma in nicchie precise: didattica, esperimenti rapidi, ambienti offline con risorse limitate, o quando addestri un modello custom su un corpus di dominio molto specifico. Per la maggior parte dei progetti reali oggi conviene partire direttamente da Sentence-Transformers o da un embedding API.
Qual è la differenza tra Word2Vec e BERT? Word2Vec assegna a ogni parola un vettore fisso, sempre uguale. BERT genera vettori diversi a seconda del contesto della frase: la parola “calcio” in “gioco a calcio” e in “calcio nel ginocchio” avrà due embedding distinti. BERT è molto più potente ma anche molto più costoso da eseguire.
Word2Vec funziona in italiano? Sì, esistono modelli pre-addestrati per l’italiano (FastText di Facebook Research, vettori di spaCy it_core_news_lg). In alternativa puoi addestrare un modello tuo su un corpus italiano con Gensim, ma serve molto testo per ottenere risultati validi.
Posso usare Word2Vec per la ricerca semantica su un sito? Tecnicamente sì, ma è la scelta sbagliata. Per la ricerca semantica oggi lo standard sono i modelli di sentence embedding (Sentence-Transformers, e5, BGE) combinati con un database vettoriale come Qdrant, Weaviate, Milvus o pgvector.
Se hai dubbi, casi d’uso particolari o vuoi confrontare il tuo flusso con il mio, lascia un commento qui sotto.
Articoli correlati
Autore
Mi chiamo Giovanni Sacheli e dal 2009 aiuto le aziende a farsi trovare online. Sono specializzato in SEO tecnica e PPC, competenze che applico quotidianamente nella mia agenzia, Searcus Swiss Sagl. Mi piace sviluppare strumenti a supporto del mio lavoro, ho creato SEOdata.app e cluster.army e co-scritto il libro SEO Audit Avanzato. Curo maniacalmente questo blog per colleghi e appassionati, dove mi "appunto" quello che imparo. Sono un NERD anni '80, motociclista e orgoglioso papà di due bambini.
Link:
Giovanni Sacheli
SEO Audit Avanzato
Searcus Swiss Sagl
SEOdata.app
cluster.army