Post recenti
Commenti recenti
- I Principali Test per un Sito Web in Ottica SEO - Ingegnerealbano.com on Come calcolare la distribuzione del “PageRank” tra le pagine di un sito
- SEO e keywords: esistono strategie e tecniche efficaci? | SERIAL EYE on Benedetta SEO, maledetta SEO
- LowLevel on Continuare a smontare Google: un’altra scoperta SEO
Tutti i post
-
Questa opera di Enrico Altavilla è concessa in licenza sotto la Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.
Whatsup 0.2: sorgenti dei dati e query importanti
Nel precedente post su Whatsup 0.2, segnalavo che una novità introdotta in questa nuova versione era l’indicazione di quali keyphrase, nei cluster, potevano essere considerate più importanti di altre. Ripubblico per comodità l’immagine del cluster già usata nel post precedente e vi invito a dare un’occhiata alle keyphrase evidenziate in neretto.Ovviamente la definizione di che cosa è importante o meno è squisitamente arbitraria: acquisite informazioni e segnali che esistono attorno alle ricerche del momento, la scelta di che cosa considerare più importante l’ha fatta il sottoscritto.
Come ho deciso di muovermi? Innanzitutto dalla versione 0.2, Whatsup inizia ad acquisire dati da più fonti.
Riguardo le fonti dalle quali è possibile ottenere informazioni in tempo reale sulle ricerche degli utenti, degli hint ben espliciti erano stati dati pubblicamente già durante il mio intervento al Convegno GT del 2009, incentrato su Google News (ecco la presentazione usata durante l’intervento).
A colleghi e compagni di aperitivi, inoltre, ho sempre sciorinato diversi dettagli di metodo e implementativi: molto era sostanzialmente incentrato sul monitoraggio del Google Suggest del servizio Google News.
Whatsup 0.2 ottiene però informazioni provenienti da altri strumenti in grado di riportare dati in tempo reale sulle abitudini di ricerca degli utenti. Di bello c’è che tali nuove fonti sono ben compatibili con la fonte usata finora e consentono di incrociare i dati in maniera molto armonica.
Il concetto di “maggiore importanza” che ho tirato fuori è nato in modo molto spontaneo: ad essere considerate più importanti sono quelle ricerche riportate da più di una fonte. Una banalissima intersezione ha permesso di mixare sia la caratteristica di freschezza tipica del suggest di Google News sia aspetti più quantitativi, acquisiti da fonti molto usate dagli utenti ma aggiornate meno frequentemente o con criteri diversi di quelli usati da Google per il suggest delle notizie.
I risultati ottenuti, come potete notare dall’immagine pubblicata in questo post, non sono davvero niente male e le keyphrase evidenziate in neretto dall’algoritmo sembrano anche coincidere con le keyphrase che le fonti stesse indicano esplicitamente come le più cercate.
Ovviamente un dettaglio su quali siano le nuove fonti non verrà fornito, perché l’obiettivo dei miei post su Whatsup è quello di produrre un diario degli aspetti informatici del progetto e non un vademecum completo che permetta ad altri di replicare esattamente il mio lavoro.
Il prossimo post sarà incentrato sulla versione 0.3 di Whatsup e sulla produzione automatizzata delle mappe mentali.
Hacking di Google Hot Trends
Micro-post per segnalarvi che mi sono preso tutte le estensioni nazionali dei nomi di dominio ed ho controllato se per caso vi fossero feed non documentati ma accessibili di Google Hot Trends.
Gli unici trovati sono stati:
- USA
- India
- Singapore
- Giappone
Anche giocando di parametri nelle URL di alcuni servizi interni, dei feed atom e dei gadget per iGoogle, speravo in una ricerca più fruttuosa.
Nel processo, almeno, ho dato una bella rispolverata all’elenco dei parametri usati da Google negli URL. Ma non fermatevi ai contenuti del link proposto, un elenco esaustivo non è stato mai compilato/aggiornato.
Whatsup 0.2: rinominare i cluster
Whatsup è e rimarrà uno strumento semplice, votato all’appoccio KISS.
La ragione di tale scelta è che dovrà macinare informazioni che gli arrivano da Google in qualche modo già filtrate; il fatto che si tratti delle keyphrase che mostrano un picco di ricerche, rappresenta a tutti gli effetti una prima selezione operata dagli stessi utenti, prima ancora che dal motore di ricerca.
Tuttavia l’esiguità dei dati ed il fatto che l’approccio al clustering sia strettamente statistico, impone dei limiti nel momento in cui si vuol tentare di migliorare un po’ il risultato.
Uno dei due obiettivi della versione 0.2 di Whatsup era quello di rivedere i nomi da assegnare alle categorie (parlo al passato perché nel momento in cui scrivo è già pronta la versione 0.3).
Nella versione 0.1 i nomi dei cluster erano scelti estraendo semplicemente la singola parola più frequente nelle keyphrase, spostando in un cluster così nominato le keyphrase che contenevano la parola stessa e ripetere il processo cercando la nuova parola più frequente nelle keyphrase rimanenti.
Se date un’occhiata all’immagine della mappa mentale pubblicata sul post iniziale di Whatsup 0.1, noterete che i cluster prodotti con questo criterio presentavano parole quasi sempre ben correlate con il nome del cluster, ma a volte la scelta era “sgraziata”.
Per esempio il cluster che conteneva le keyphrase “asse terrestre” e “asse terrestre spostato” acquisiva semplicemente il nome “terrestre”.
Nella versione 0.2 di Whatsup sono stati dunque aggiunti dei controlli per rinominare ciascun cluster con espressioni di due o più parole contigue (si veda Ngram), purché presenti più di una volta nelle keyphrase associate al cluster stesso.
Potete osservare il risultato della modifica nell’immagine presente su questa pagina.
La soluzione funziona molto bene con i nomi propri di persone perché naturalmente composti da almeno due parole. E l’osservazione può essere ovviamente estesa anche ai nomi propri in genere, come si può notare dalla presenza di un cluster chiamato “explorer 9”.
Esiste tuttavia un rischio nel rinominare i cluster in questo modo: assegnando un nome più specifico ci si allontana dalla genericità attorno alla quale il cluster è stato costruito. Il che significa che una volta rinominato, il cluster potrebbe presentare al proprio interno keyphrase generiche concettualmente più distanti dal nuovo nome.
Questo effetto negativo non si coglie dall’immagine allegata al presente post ma non mancherò di farvelo notare nelle prossime clusterizzazioni quando capiterà. Va detto però che tale problema è stato minimizzato con l’acquisizione di una maggiore quantità di keyphrase, come spiegherò quando tratterò la versione 0.3 del software.
Ho anche scritto che la rinominazione dei cluster era il primo di due obiettivi che mi ero posto di raggiungere nella versione 0.2; qual’era il secondo?
Come potete notare nell’immagine, alcune keyphrase appaiono in neretto e sono le keyphrase che l’algoritmo giudica più “importanti” di altre. Nel prossimo post scriverò come tale selezione è stata operata.
Lo strumento di monitoraggio SERP che manca
Mooolto tempo fa venne fuori un tool per SEO che comparava la SERP di una query su Google.com con la corrispondente SERP su Yahoo!.
Il tool permetteva di osservare visualmente quali risultati (si legga: siti web) osservati su Google apparivano anche su Yahoo! e viceversa. Pur non essendo di utilità pratica per il lavoro quotidiano dei SEO, era uno strumento simpatico per rendersi conto quanto i risultati dei due motori di ricerca differivano.
Uno degli aspetti interessanti era che era possibile osservare anche in che modo i siti comuni alle due SERP cambiavano posizione nei due motori: allego uno screenshot nel quale le linee tra due specifici punti permettono di rendersi conto quanto interi gruppi di siti su Google avanzavano o arretravano di posizione nella corrispondente SERP di Yahoo!.
Perché tiro fuori dal cappello questo vecchissimo tool? Perché all’epoca rimasi affascinato dalla modalità di visualizzazione scelta per dare evidenza delle differenze di posizione e perché credo che un approccio molto simile potrebbe essere usato per un tipo di tool di monitoraggio delle SERP che al momento non mi risulti esista e verrebbe estremamente utile ai SEO.
Di che sto cianciando
Tutti i tool di rank checking esistenti si focalizzano sul monitoraggio delle posizioni di uno specifico sito web e al massimo estendono le analisi ad un gruppo di altri siti web (es: competitor), che il SEO deve fornire. L’attenzione è comunque accentrata su un sito web principale.
Tuttavia non esiste un tool per il monitoraggio di una SERP in sé, che valuti come i siti cambiano di posizione nel tempo per una o più query a prescindere da quali siti popolano la SERP stessa.
A che cosa potrebbe servire un tool siffatto? A comprendere, di fronte a repentini cambiamenti di posizione di un sito, se un fenomeno è circoscritto al sito o se è esteso a diversi siti che sono soliti popolare le SERP.
Questo genere di informazione risolverebbe diversi tipici grattacapi dei SEO: di fronte ad un repentino cambiamento nel modo in cui Google o altri motori trattano il nostro sito abbiamo la tendenza a chiederci che cosa abbiamo fatto per scendere o salire di posizione o che cosa non abbiamo fatto e che avremmo dovuto fare.
Sono domande lecite, che però spesso non prendono in considerazione quando altri siti oltre al nostro hanno sperimentato fenomeni simili, potenzialmente indicatori di un tweak dell’algoritmo di ranking.
Chi è pratico di un settore e controlla frequentemente le SERP di riferimento possiede l’occhio abbastanza allenato per cogliere i movimenti dei competitor. In caso di repentini cambi di algoritmo i forum si riempiono inoltre di SEO e webmaster allarmati. Tuttavia non esiste uno strumento o un metodo che fornisca informazioni dettagliate, indici globali di cambiamento delle SERP o comodi sistemi di alert.
Io ritengo che uno strumento simile manchi alla tavolozza del pittore SEO e che grafici simili a quelli del tool che vi segnalavo ad inizio articolo potrebbero risultare davvero molto immediati per aiutarci a comprendere meglio i mutevoli comportamenti dei motori di ricerca…
…specie quando vengono preannunciati ed avremmo la possibilità di monitorare facilmente “il prima e il dopo”.
Qualcuno di voi accetta la sfida e me ne progetta uno? 😛
Whatsup 0.1: tipologia dei dati e algoritmo di clustering
L’algoritmo di clustering che ho sviluppato è estremamente semplice ma riesce ad ottenere discreti risultati nonostante l’esiguità di dati.
Il “nonostante” si applica perché in Information Retrieval la bontà di molte soluzioni non si fonda principalmente sulla qualità degli algoritmi bensì sulla qualità delle informazioni sulle quali gli algoritmi devono lavorare.
Uno stesso algoritmo può produrre risultati scadenti se applicato a pochi dati e risultati ottimi se applicato a basi di dati molto grandi. Google non è il leader nell’IR solo perché sviluppa buoni algoritmi ma anche perché disponde di una gigantesca quantità di informazioni sulla quale farli macinare.
Le informazioni prese in esame da Whatsup sono le keyphrase cercate dagli utenti su Google e, trattandosi nello specifico delle sole keyphrase che in un dato istante mostrano un picco di ricerche, la loro quantità è limitata. Attraverso i metodi che sto sfruttando al momento, la quantità delle keyphrase “hot” che è possibile estrarre da Google varia da 100 a 200 elementi.
Fortunatamente, nonostante la quantità non sia alta, i dati possiedono caratteristiche che vengono facilmente incontro anche all’algoritmo di clustering più semplice. In particolare, gli utenti sul Web cercano informazioni su uno specifico soggetto digitando ricerche molto diverse, varianti che fanno uso di sinonimi e altre che ripropongono le stesse parole in ordine differente.
A seguito di un’estrazione di keyphrase “di picco” da Google capita quindi che diverse di esse facciano riferimento allo stesso tema, usando parole e variazioni leggermente diverse, ma facilmente accomunabili da una o più parole in comune.
Di fronte a questi elementi di similarità, ho pensato che buoni risultati potessero essere ottenuti anche con un semplice algoritmo di clustering che cercasse nelle keyphrase la presenza di parole “importanti”. Ma cosa si intende per “importante”?
Il concetto di importanza va definito. Nel contesto in cui sto operando, ovvero un elenco di keyphrase “hot”, una parola che posso considerare importante potrebbe essere una parola che si ripete in più keyphrase. Più sono le keyphrase in cui la parola è presente e più essa può essere considerata importante per questo specifico contesto.
Tradotto in numeri, significa che il mio concetto di importanza si può limitare per il momento a calcolare la frequenza di ciascuna parola all’interno del corpus (in questo caso l’elenco delle keyphrase) e considerare importanti i termini che sono più frequenti.
Il metodo funziona bene solo se tiene conto del fatto che esistono particelle linguistiche che possono apparire frequentemente nelle keyphrase (articoli, preposizioni, ecc.) ma che non dovrebbero essere considerate importanti.
Le soluzioni per evitare che le particelle del discorso frequenti in lingua italiana inficino i risultati, sono sostanzialmente due: usare una lista di stop words oppure riuscire ad assegnare un peso inferiore o nullo a tali termini sfruttando statistiche su un corpus più grande.
Nonostante io possieda un grande storico delle ricerche su Google (in particolare su Google News), nella versione 0.1 di Whatsup mi sono limitato a usare una semplice lista di stop words. E’ stato veloce, indolore ed i risultati non sono niente male. Ovviamente le versioni successive di Whatsup preferiranno implementare soluzioni basate sull’analisi di dati storici.
Ho preso una lista di stop words italiane da qua, ne ho aggiunta qualcuna che mancava all’appello (es: “quando”) e ho prodotto una seconda lista di termini molto generici, come “news”, “notizie”, “video” o “ansa”. Ho infatti deciso di gestire normalmente questi termini tranne che durante la scelta dei nomi da attribuire ai cluster, che desidero incentrare su parole più specifiche.
Ecco dunque di seguito l’algoritmo finale di Whatsup 0.1, già obsoleto nel momento in cui scrivo ma che vi riporto perché nei post successivi sarà più facile spiegare il motivo di alcuni cambiamenti fatti nelle versioni successive del software, via via che ho acquisito visibilità sulla qualità della classificazione.
- Estraggo la parola più frequente nelle keyphrase (escludendo le stop words)
- Creo un cluster e lo chiamo come la parola trovata
- Assegno al cluster tutte le keyphrase che contengono la parola
- Una volta che una keyphrase viene assegnata ad un cluster, viene tolta dal bacino di keyphrase dalle quali estrarre, al prossimo giro, la nuova parola più frequente
- Prossimo giro: si torna al punto 1 fino a quando ci saranno parole ripetute in almeno due keyphrase diverse
- A questo punto rimarranno solo keyphrase che non contengono alcuna delle parole usate per dare nome ai cluster. Per ciascuna keyphrase non assegnata, l’assegno al cluster che condivide con essa la quantità maggiore di parole.
- Tutto ciò che rimane termina in un cluster speciale che chiamo “UNCATEGORIZED”
Pubblico nuovamente l’immagine con il risultato del clustering dell’algoritmo appena descritto.
Nei prossimi post vedremo i limiti del presente approccio e che cosa ho deciso di cambiare nelle versioni successive di Whatsup.