Skip to content

L’ottimizzazione per i motori di ricerca (SEO) richiede strumenti e approcci avanzati per analizzare e organizzare le parole chiave in modo efficace. In questo articolo, ti presento uno script Python completo, progettato per l’elaborazione, il clustering e l’analisi delle parole chiave. Scopriamo come funziona e quali sono le sue funzionalità principali.

La clusterizzazione delle parole chiave è un processo essenziale per chiunque lavori con il search marketing. Con l’evoluzione degli strumenti a disposizione dei SEO e la crescita delle ricerche online multi piattaforma, le analisi di parole chiave non si limitano più a poche centinaia di termini: oggi è facile ottenere dataset con migliaia o addirittura centinaia di migliaia di keyword. Per questo motivo, organizzare e semplificare questi dati è fondamentale per poter trarre conclusioni ed insight in modo rapido ed efficiente.

In questa guida esploreremo quelli che secondo me sono i cinque migliori metodi di clustering per le parole chiave, focalizzati su dati in lingua italiana. Ogni metodo è stato testato sul campo per garantire risultati affidabili ed efficaci.

Cos’è il clustering di Parole Chiave?

Clusterizzare le parole chiave significa raggrupparle in categorie omogenee basandosi su caratteristiche comuni, come la semantica, il contesto di utilizzo, l’intento di ricerca o i volumi di ricerca. Questo approccio consente di organizzare e interpretare grandi volumi di dati, semplificando l’identificazione di trend e opportunità SEO. L’obiettivo principale è ridurre la complessità dell’analisi, mantenendo al contempo una visione chiara e strategica dei gruppi di parole chiave più significativi.

Perché è importante la clusterizzazione nella SEO

  • Ottimizzazione delle campagne pubblicitarie: Clusterizzare le keyword aiuta a i consulenti Google Ads a creare campagne PPC (Pay Per Click) più performanti, suddividendo i gruppi per obiettivi specifici e massimizzando il ROI.
  • Definizione dell’intento di ricerca: Le parole chiave non sono semplici termini; rappresentano l’intento dell’utente. Clusterizzarle permette di identificare quali sono le query transazionali, navigazionali o informative, facilitando la creazione di contenuti mirati che rispondano esattamente a ciò che l’utente cerca.
  • Strutturazione del sito: I gruppi di parole chiave possono essere utilizzati per definire categorie, sottocategorie e pagine specifiche di un sito web. Questo migliora la gerarchia del sito e la user experience, rendendo più facile per gli utenti e i motori di ricerca navigare e comprendere il contenuto.

Metodi di Clustering di Parole Chiave usati nello script

Stemming

Lo stemming è una tecnica utilizzata nell’elaborazione del linguaggio naturale per ridurre le parole alla loro radice (detta stem), eliminando suffissi, prefissi o desinenze flessive. L’obiettivo è trattare parole correlate come equivalenti, semplificando l’analisi dei testi. Ad esempio: Le parole “cantare”, “cantato”, “cantando” vengono ridotte alla radice comune “cant”. I termini “giocare”, “giocato”, “giocatori” vengono ridotti a “gioc”.

Lo stemming è particolarmente utile quando si desidera raggruppare parole correlate, semplificando l’analisi e l’interpretazione dei dati. Ad esempio, quando gli utenti cercano termini diversi che derivano dalla stessa radice, come “giocare”, “giocato” o “gioco”, i motori di ricerca possono trattarli come equivalenti, migliorando la comprensione e la pertinenza dei contenuti. Inoltre, durante l’analisi di grandi dataset di parole chiave, lo stemming aiuta a consolidare query simili, riducendo la complessità e il numero di termini unici da analizzare. Questo approccio risulta particolarmente efficace anche nell’ottimizzazione dei contenuti: permette di coprire diverse varianti di una parola, come “acquistare”, “acquisto” e “acquistato”, migliorando il posizionamento nei risultati di ricerca senza la necessità di ripetere ogni forma della parola in modo ridondante.

Viene utilizzato il modulo Snowball Stemmer di NLTK, ottimizzato per l’italiano. Il modulo Snowball Stemmer di NLTK è uno strumento specificamente progettato per l’elaborazione del linguaggio naturale, ottimizzato per diverse lingue, tra cui l’italiano. Questo stemmer applica regole linguistiche precise per ridurre le parole alla loro radice, eliminando suffissi e desinenze tipiche della lingua italiana.

Lemmatizzazione

La lemmatizzazione è un processo che trasforma le parole nella loro forma base, detta lemma, preservandone il significato grammaticale e semantico. A differenza dello stemming, che si limita a rimuovere suffissi e prefissi, la lemmatizzazione considera il contesto grammaticale per restituire la forma standard di una parola. Ad esempio, termini come “andare”, “andato” e “andando” vengono ricondotti al lemma “andare”, mantenendo l’integrità semantica della parola. Allo stesso modo, “corso” e “correndo” tornano alla forma base “correre”, rendendo possibile una comprensione più accurata dei contenuti linguistici.

Combinando librerie avanzate come NLTK e spaCy, è possibile ottenere risultati estremamente precisi. Questi strumenti offrono funzionalità complementari: NLTK dispone di un ampio set di regole per l’analisi linguistica, mentre spaCy utilizza modelli di apprendimento automatico pre-addestrati per analizzare il contesto delle parole in modo sofisticato. Questa combinazione è particolarmente utile per analisi linguistiche profonde, come la clusterizzazione di parole chiave, dove la distinzione tra varianti grammaticali e semantiche è cruciale.

Un esempio pratico di applicazione riguarda l’ottimizzazione SEO, dove la lemmatizzazione consente di raggruppare query simili senza perdere informazioni significative. In un dataset di parole chiave, varianti come “giocare”, “giocato”, “gioco” e “giochi” possono essere ricondotte al lemma comune “gioco”. Questo processo facilita la creazione di cluster più coerenti, migliorando sia la comprensione delle query degli utenti sia l’efficacia delle strategie di contenuto.

FastText

FastText, una libreria sviluppata da Facebook AI, è uno strumento avanzato per generare rappresentazioni numeriche, o embedding, delle parole chiave, collocandole in uno spazio multidimensionale. Questo processo consente di catturare le relazioni semantiche tra le parole, rappresentandole come vettori che riflettono la loro posizione e significato in un contesto linguistico. Ad esempio, parole come “scarpe” e “stivali” possono trovarsi vicine nello spazio vettoriale poiché condividono similarità tematiche, mentre termini come “computer” o “bicicletta” risulteranno più distanti.

Una volta generati gli embedding, questi vengono clusterizzati utilizzando HDBSCAN, un potente algoritmo di clustering in grado di determinare automaticamente il numero di gruppi presenti nel dataset. HDBSCAN analizza le densità locali nello spazio multidimensionale, identificando cluster di parole chiave correlate senza la necessità di specificare il numero di cluster in anticipo. Questo lo rende ideale per analisi SEO, dove la variabilità e la complessità delle query possono rendere difficile prevedere i pattern.

L’uso combinato di FastText e HDBSCAN permette di ottenere raggruppamenti tematici altamente precisi, facilitando l’interpretazione e l’organizzazione di grandi dataset di parole chiave. Ad esempio, un insieme di query relative al settore moda, come “abiti eleganti”, “vestiti casual” e “tailleur donna”, può essere identificato come un cluster unico, mentre query relative agli accessori, come “borse di pelle” o “cinture uomo”, formeranno un gruppo separato. Questo approccio non solo semplifica l’analisi, ma aiuta anche a strutturare i contenuti in modo strategico, migliorando la pertinenza e il posizionamento nelle SERP.

Word2Vec

Simile a FastText, Word2Vec genera embedding attraverso l’addestramento su un corpus di dati. Word2Vec è un algoritmo di rappresentazione linguistica sviluppato da Google, progettato per generare embedding vettoriali delle parole, cioè rappresentazioni numeriche in uno spazio multidimensionale. A differenza di metodi statici come le matrici di co-occorrenza, Word2Vec utilizza reti neurali per addestrarsi su un corpus di dati, imparando le relazioni semantiche e contestuali tra le parole. Questo lo rende capace di catturare significati profondi, come analogie e somiglianze semantiche. Per esempio, termini come “re” e “regina” risultano vicini nello spazio vettoriale, così come “Italia” e “Roma”, evidenziando la capacità del modello di comprendere contesti e relazioni.

Il processo di clusterizzazione degli embedding generati da Word2Vec viene gestito tramite HDBSCAN, un algoritmo avanzato che identifica automaticamente i cluster presenti nello spazio multidimensionale. Questo approccio è particolarmente utile in ambiti SEO, dove è necessario organizzare grandi insiemi di parole chiave in gruppi tematici significativi. Ad esempio, query come “acquisto scarpe online”, “negozio di calzature” e “offerte stivali” possono essere raggruppate nello stesso cluster, mentre query come “migliori borse in pelle” o “cinture eleganti” formano un cluster separato.

Un punto di forza di Word2Vec è la sua capacità di generalizzare il significato delle parole anche quando non sono esplicitamente presenti nel dataset. Questo è possibile grazie ai due modelli principali, CBOW (Continuous Bag of Words) e Skip-Gram, che prevedono rispettivamente una parola in base al contesto e il contesto in base a una parola. L’adozione di queste tecniche consente di creare embedding ricchi di informazioni, ideali per analisi linguistiche avanzate.

BERTopic

BERTopic è una tecnica avanzata per la creazione di cluster basati su argomenti semantici, progettata per analizzare e interpretare grandi quantità di testo in modo efficace. A differenza dei metodi tradizionali di clustering che producono solo numeri come identificativi dei gruppi, BERTopic utilizza modelli di apprendimento profondo, come Sentence Transformer, per generare embedding altamente rappresentativi del significato delle frasi. Questi embedding vengono successivamente utilizzati per creare cluster arricchiti da parole rappresentative che descrivono il tema centrale di ogni gruppo.

Il processo inizia con la creazione di rappresentazioni numeriche per ogni parola o frase, utilizzando modelli pre-addestrati di Sentence Transformer, come “paraphrase-multilingual-MiniLM-L12-v2” o altri specifici per l’italiano, come “dbmdz/bert-base-italian-uncased”. Questi modelli catturano relazioni semantiche complesse, consentendo di comprendere il contesto e il significato dei termini. Successivamente, BERTopic applica algoritmi di clustering come HDBSCAN per identificare gruppi naturali nello spazio vettoriale, associando a ciascun cluster una lista di parole chiave che rappresentano il tema principale.

Ad esempio, in un’analisi SEO, query come “scarpe da corsa”, “scarpe sportive leggere” e “migliori scarpe running” possono essere raggruppate in un cluster descritto da termini come “scarpe”, “corsa” e “sportive”. Allo stesso modo, un cluster distinto potrebbe emergere per query come “scarpe eleganti uomo” o “scarpe in pelle”, con termini rappresentativi come “eleganti”, “pelle” e “uomo”. Questo approccio non solo semplifica l’interpretazione dei cluster, ma consente anche di identificare temi di ricerca e tendenze non immediatamente evidenti.

Uno dei vantaggi principali di BERTopic è la sua capacità di fornire descrizioni leggibili e intuitive dei cluster, rendendolo uno strumento particolarmente utile per analisi SEO avanzate. Può essere utilizzato per identificare lacune nei contenuti, creare strutture tematiche per il sito o guidare strategie di content marketing basate su dati reali. La sua precisione e la sua interpretabilità lo rendono un metodo potente per trasformare insiemi complessi di parole chiave in insight utilizzabili, facilitando la creazione di strategie mirate e ottimizzate per il posizionamento nei motori di ricerca.

Il Processo di Analisi

Questo script combina potenti librerie di Python come Pandas, spaCy, FastText, Word2Vec e BERTopic per creare una pipeline di analisi. Per implementare questi metodi, ho utilizzato uno script Python strutturato in modo procedurale:

Preparazione dell’ambiente e del Dataset

  • Creazione automatica delle cartelle Input ed Output per la gestione dei file da fornire e ricevuti.
  • Importazione delle parole chiave da file Excel.
  • Pulizia e normalizzazione dei dati: conversione in minuscolo, rimozione degli accenti, rimozione di simboli, spazi extra e caratteri speciali, rimozione delle stopword italiane con NLTK e dei duplicati.

Creazione delle Colonne

  • Stemmi: Colonne per gli stemmi (es. top 3 stemmi, top 2 stemmi, stemma singolo).
  • Lemmi: Colonne per i lemmi (top 3 lemmi, top 2 lemmi, lemma singolo).
  • Embeddings: Colonne per gli embedding e i relativi cluster (FastText, Word2Vec, BERTopic).

Clusterizzazione

  • Applicazione di HDBSCAN per raggruppare gli embedding generati con W2V e Fasttext. Lo script utilizza HDBSCAN per identificare cluster di parole chiave simili basandosi sugli embeddings generati. HDBSCAN è particolarmente adatto per liste di parole chiave grazie alla sua capacità di: 1) Gestire cluster di dimensioni diverse senza richiedere il numero di cluster predefinito, come avviene con KMeans. 2) Assegnare alcune parole chiave come “noise” se non appartengono chiaramente a un cluster, caratteristica che DBSCAN condivide ma che HDBSCAN migliora grazie a una maggiore robustezza. 3) Essere basato su densità, il che lo rende ideale per dati con strutture complesse o distribuzioni irregolari.
  • Vettorializzazione e clusterizzazione con BERTopic. Ogni cluster viene descritto semanticamente, evidenziando le parole più rappresentative, e fornendo così una visione approfondita degli argomenti chiave presenti nel dataset. Fammi sapere se desideri ulteriori chiarimenti!
  • Infine nel video trovi anche l’analisi dei risultati per individuare il metodo più efficace in questo specifico esempio.

Esportazione

  • Il risultato finale è un file Excel con tutte le colonne utili per l’analisi.

Librerie python utilizzate

# Importazione della data e dell'orario corrente
from datetime import datetime
# Gestione dei file e delle directory
import os
# Manipolazione e analisi di dati strutturati
import pandas as pd
# Utilizzo di espressioni regolari per la pulizia dei dati
import re
# Conteggio delle frequenze degli elementi in liste o stringhe
from collections import Counter
# Gestione di caratteri Unicode per la normalizzazione del testo
import unicodedata

# Analisi del linguaggio naturale con il supporto per la lingua italiana
import spacy
# Caricamento di un modello linguistico italiano pre-addestrato per spaCy
nlp = spacy.load("it_core_news_lg")
# Librerie per lo stemming e altre tecniche NLP
import nltk
# Modulo per ridurre le parole alle loro radici (stemming)
from nltk.stem.snowball import SnowballStemmer
# Download e utilizzo di stopword in italiano
from nltk.corpus import stopwords
# Download automatico delle risorse di NLTK
nltk.download("stopwords")

# Clustering basato su densità per identificare gruppi di parole chiave
import hdbscan
# Gestione di array multidimensionali per il calcolo numerico
import numpy as np
# Addestramento e utilizzo di modelli Word2Vec per rappresentazioni vettoriali
from gensim.models import Word2Vec
# Clustering e modellazione degli argomenti con rappresentazioni semantiche
from bertopic import BERTopic
# Generazione di embeddings contestuali con modelli pre-addestrati
from sentence_transformers import SentenceTransformer

Risultati e Conclusioni

Efficienza dei Metodi

  • Lo stemming e la lemmatizzazione sono ideali per un approccio rapido e semplice. Generano meno cluster, semplificando l’analisi. L’approccio multi-step con stemming, lemmatizzazione, e la generazione di colonne “top stems” e “top lemmas” è eccellente per l’analisi linguistica su corpus in italiano.
  • FastText e Word2Vec sono metodi avanzati, ma richiedono maggiore potenza computazionale e possono risultare meno precisi su dataset particolarmente sporchi o misti.
  • BERTopic si è rivelato il metodo più efficace per generare cluster omogenei e semanticamente rappresentativi.

Consigli Pratici

  • Dataset puliti: Dedica tempo alla pulizia delle parole chiave prima di iniziare il clustering.
  • Scelta del metodo: Valuta il metodo più adatto in base alla complessità del dataset e all’obiettivo dell’analisi.
  • Script personalizzato: Automatizzare il processo con Python permette di ottimizzare tempi e risorse ma soprattutto ridurre a zero l’errore umano.

Cosa c’è di davvero originale?

  1. Pipeline linguistica integrata: È raro vedere uno script che combina così tante tecniche linguistiche (stopword, stemming, lemmatizzazione, embeddings, clustering) in una pipeline unica e funzionale.
  2. Clustering multi-modello: L’idea di applicare metodi diversi (FastText, Word2Vec, BERTopic) allo stesso dataset per ottenere diverse prospettive è estremamente potente e originale.
  3. Focus sulla scalabilità: L’uso di batch nei clustering e nell’elaborazione linguistica dimostra attenzione a scenari di grandi dimensioni.
  4. Output interpretabile: Le colonne con “top stems” e “top lemmas” aggiungono un livello di analisi utile, mentre la descrizione dei topic con BERTopic migliora la comprensione.

Scarica lo Script

Se vuoi provare questi metodi, da Github puoi scaricare lo script completo e personalizzarlo in base alle tue esigenze.

Articoli correlati

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’esperienza di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1196 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Richiedi un preventivo ora e scopri la differenza tra noi e gli altri.
Richiedi un preventivo

Vuoi ricevere un avviso al mese con le nuove guide pubblicate?

Iscriviti alla newsletter!

Invia una richiesta a EVE Milano