Whatsup 0.1, la genesi

Mentre attendo che la pasta cuocia, vi scrivo il primo di una serie di post attraverso i quali vi darò visibilità del nuovo software che sto progettando.

Come forse qualcuno avrà intuito da qualche mia passata partecipazione al Convegno GT, è da un po’ di tempo che mi interesso di Google News.

Oltre a incamerare una quantità industriale di informazioni sul motore di ricerca verticale, ho trovato il modo per avere accesso alle ricerche in tempo reale fatte dagli italiani. Si tratta di informazioni che Google non divulga esplicitamente ma alle quali è possibile arrivare smontando il giocattolo e cercando dentro.

Il primo risultato di questa ricerca si chiama Whatsup, un software attualmente in fase embrionale ma già in grado di fornire dati interessanti a chiunque debba scrivere articoli e notizie online (e non solo); conoscere in tempo reale i temi a cui gli italiani sono interessati è un’informazione dal valore altissimo.

Mappa mentale con il risultato di Whatsup v0.1

Primo clustering, visualizzato attraverso XMind

Lo screenshot che trovate su questa pagina mostra non semplicemente un elenco delle keyphrase estratte da Google ma anche una sua elaborazione: ho implementato un algoritmo di clustering nel tentativo di mettere ordine a informazioni prive di struttura.

Inizialmente ho ipotizzato di poter sfruttare un algoritmo della classe K-Means ma successivamente mi sono reso conto che, almeno nelle sue implementazioni più semplici, il K-Means non sarebbe andato bene per i miei scopi.

Nelle forme più semplice del K-means, infatti, la scelta dei cluster iniziali può avvenire attraverso criteri un po’ deboli: a volte persino facendo una scelta casuale. Nel tipo di classificazione che volevo ottenere io, invece, avrei desiderato ottenere una definizione dei cluster fondata su una prima analisi dei dati stessi.

La seconda perplessità sull’uso di un K-means è collegata al fatto che la quantità di dati da classificare (le keyphrase) è abbastanza bassa: intorno al centinaio di elementi. Di fronte a queste quantità e ad un numero di cluster potenzialmente elevato, fino a qualche decina, non è detto che il concetto cardine sul quale si basa il K-Means (la ridisposizione in spazi multidimensionali di elementi che condividono caratteristiche) si riveli in grado di produrre buoi risultati.

Insomma, mi son detto che non conveniva smobilitare la NASA per classificare un centinaio di keyphrase e quindi ho sviluppato un mio algoritmo di clustering, a mio parere più adatto a quanto volevo ottenere. Per esempio la scelta dei nomi dei cluster avviene facendo delle statistiche sulle parole più frequenti nel gruppo di keyphrase.

Il risultato potete notarlo nello sceenshot già citato. Dati e classificazione sono fatti dal software, la mappa mentale l’ho creata a mano con XMind.

Notate che si tratta solo della prima versione dell’algoritmo di clustering e che nel momento in cui scrivo questo primo post sono già giunto a versioni superiori e a mio parere migliori sotto molti aspetti, che tratterò nei post successivi di questa serie.

Salumi e caci.

One Response to Whatsup 0.1, la genesi

  1. Alessandro scrive il 22 March 2011 at 21:03

    Lavoro veramente interessante Enrico, mi sto interessando anche io di Information Retrieval e Data Mining da tempo, e la sua applicazione a Google News è proprio un’ottima idea. Complimenti.

Lascia un commento