Profiling degli utenti Twitter:
sviluppo di un algoritmo che sfrutta le informazioni presenti nel microblogging
UNIVERSITÀ DEGLI STUDI DI CATANIA
DIPARTIMENTO DI INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA
CORSO DI LAUREA IN INGEGNERIA INFORMATICA
Laureando:
Castellano Gabriele
Relatore:
Prof. Mangioni Giuseppe
Anno accademico 2013/2014
Obiettivo
Ideare ed implementare un algoritmo capace di identificare gli interessi e le competenze di un dato utente Twitter, analizzando i messaggi tweet da esso pubblicati;
applicare quindi tale procedura ad una lista di utenti contenuta in un database, ed archiviare i risultati ottenuti in modo da renderli accessibili successivamente.
Scenario applicativo
PanPan - Ask Everywhere è un'applicazione disponibile per smartphone Android e iOS che permette agli utenti di ottenere velocemente informazioni geolocalizzate su un argomento ben preciso.
L'algoritmo è stato realizzato appositamente per migliorare la suddetta applicazione, in particolare nella fase di ricerca degli utenti più adatti a rispondere alla domanda formulata.

Strumenti utilizzati
- Il progetto è stato realizzato attraverso il Python, linguaggio di programmazione ad alto livello multipiattaforma la cui chiarezza e semplicità incrementa la produttività;
- Come database è stato utilizzato MongoDB, e l'interfaccia è stata realizzata attraverso l'apposita libreria pymongo;
- DBpedia e la stessa Wikipedia vengono più volte interrogate nel corso dell'esecuzione dell'algoritmo;



Strumenti utilizzati
- Per poter usufruire delle informazioni prelevate dal web in formato XML l'algoritmo utilizza la libreria python ElementTree;
- Tagme, tool online progettato dall'Università di Pisa, si è rivelato molto utile per la ricerca delle parole-chiave contenute nei tweet degli utenti.


Funzionamento dell'algoritmo
Il "profilo" dell'utente che l'algoritmo si propone di creare viene identificato da un'insieme di 10 Categorie, rappresentanti i principali Topic di interesse; esse sono un particolare tipo di pagine Wikipedia.
La ricerca di queste avviene a partire dalle parole-chiave prelevate dai tweet, a ciascuna delle quali viene associata una Entity attraverso Tagme; le Entità non sono altro che normali articoli Wikipedia.
Funzionamento dell'algoritmo
Tweet: "I don't want an Apple computer."


Funzionamento dell'algoritmo
L'algoritmo si divide essenzialmente in due fasi:
- inizialmente viene estratto un insieme di Categorie dalla totalità dei tweet del profilo;
- infine vengono scelte le Categorie corrette tra tutte quelle disponibili, valutandole in base ad un punteggio assegnato a ciascuna di esse.
Funzionamento dell'algoritmo
Analizzando ciascun tweet pubblicato dall'utente, le Entity restituite da Tagme vengono memorizzate all'interno di un bag-of-world in cui viene tenuta traccia solo della frequenza con cui ogni parola-chiave è stata richiamata.
Servendosi del grafo presente in Wikipedia, per ogni Entità viene costruito il relativo albero di Categorie; i livelli più bassi conterranno Topic più generici.
Ricavare un insieme di Categorie dai tweet
Funzionamento dell'algoritmo
Ricavare un insieme di Categorie dai tweet
Tweet: "Arsenal winger Walcott: Becks is my England inspiration"


Livello 1
Livello 2
Livello 3
Funzionamento dell'algoritmo
Una volta ottenuta la struttura completa con i vari livelli di Categorie, viene assegnato un rank a ciascuna di esse:
Individuare le Categorie più importanti

Le 10 con rank più alto vengono identificate come "Profilo" dell'utente in esame.

| Size of K | | Avg. Precision (± Std-Dev) |
| 5 | | 0.95 ± 0.10 |
| 10 | | 0.90 ± 0.08 |
| 25 | | 0.85 ± 0.08 |
Risultati Sperimentali
Al fine di verificare l'efficacia dell'algoritmo implementato, sono state effettuate prove sperimentali su alcuni account Twitter;
di seguito viene riportata passo per passo l'analisi del profilo IngInform_CT, adibito a fornire agli studenti informazioni e aggiornamenti sul corso di studi.

Risultati sperimentali
Sessione di laurea in ingegneria informatica (#inginfct) giorno 22/07/2014 alle ore 9.00 in aula Oliveri
Alcuni tweet di esempio prelevati dall'account
Publicato l'elenco degli studenti (CDS Ing. Informatica) #inginfct relativo ai 3 cfu del corso "Linguaggio Python"
Il bando per l'iscrizione ai corsi di laure dell'Ateneo di Catania (#unict, #inginfct) è stato pubblicato oggi.
#unict, #inginfct Gli studenti del 1 anno sono invitati giovedì 23/01, ore 14 in aula magna per discutere delle azioni di tutoraggio.
Risultati sperimentali
L'algoritmo ha analizzato la totalità di 92 tweet, e da essi ha ricavato se seguenti Entità:
Entità ricavate dalla totalità dei tweet


Risultati sperimentali
Le 10 Categorie ricavate a partire dalle Entità

Le 10 categorie ricavate costituiscono il "Profilo" di IngInform_CT. Notiamo che la maggior parte di esse sono relative all'Ingegneria Informatica; in più il programma è riuscito anche a comprendere il fatto che l'utente avesse qualcosa a che fare con l'istruzione (Categorie Engineering_disciplines e Education_by_subject)
Conclusioni e sviluppi futuri
Dagli esempi analizzati si evince che i risultati ottenuti dall’algoritmo sono conformi con gli obbiettivi prefissati in partenza; i tempi di esecuzione però sono vari e possono andare dai 10 minuti alle 2/3 ore per utente analizzato. Questo dipende principalmente dal numero di richieste che l’applicativo effettua per interfacciarsi con tutti i servizi online ai quali si appoggia.
Conclusioni e sviluppi futuri
Per aumentare le prestazioni è assolutamente necessario azzerare i tempi di attesa dovuti alle numerose connessioni coi server. ll servizio on line al quale vengono fatte più richieste è Wikipedia, per questo è già stato avviato dal team di sviluppo di PanPan un progetto che consiste nel download dell'intera enciclopedia e nella sua memorizzazione in un archivio locale.
Archiviazione di Wikipedia in un server locale
Conclusioni e sviluppi futuri
Questo servizio online viene richiamato per ogni tweet dell’utente, e comporta grossi rallentamenti abbastanza evidenti anche dall’output che il programma fornisce durante la sua esecuzione; per eliminare questi tempi di attesa è già stato avviato lo sviluppo di un progetto interno alternativo a Tagme: verrà dunque a breve ultimato un algoritmo capace di ricavare le parole-chiave dai tweet che sarà in esecuzione sui server di PanPan.
Implementare un algoritmo alternativo a Tagme

Conclusioni e sviluppi futuri
Inoltre per poter utilizzare il database generato da questo progetto sarà necessario sviluppare un algoritmo da inserire all'interno dell'applicazione PanPan vera e propria, che riesca ad inquadrare il Topic di ogni domanda ed individuare all'interno del database gli utenti che hanno tra le loro 10 almeno una Categoria simile al Topic stesso.
Sviluppare l'algoritmo complementare in PanPan
Fine
Grazie a tutti per l'attenzione!
Presentazione Tesi
By Gabriele Castellano
Presentazione Tesi
- 65