Monitorare Twitter: un’ipotesi di lavoro

Qualche tempo fa, insieme con Davide Bennato, che aveva appena scritto un post sulle reazioni dei social media alla morte di Michel Jackson, stavamo facendo un’ipotesi per il monitoraggio dei messaggi su Twitter e io, come al solito, ho cercato di sintetizzare il discorso alla lavagna. Ci siamo concentrati su una piattaforma particolare, perché entrambi abbiamo concordato sul fatto che le generalizzazioni non sono desiderabili e che non ha molto senso effettuare con lo stesso sistema il monitoraggio di Twitter, Friendfeed o degli stati di Facebook (che da ieri sono diventati pubblici e ricercabili!). Ogni sistema, infatti, genera comportamenti diversi e aggrega persone con caratteristiche peculiari.

tweet_monitor

Il funzionamento non è molto differente da quello di un qualsiasi sistema di monitoraggio ed è articolato in tre step: raccolta, aggiunta di meta dati e rappresentazione sintetica.

Raccolta
Raccogliere i dati è – tutto sommato – la cosa più semplice: è sufficiente lanciare delle ricerche e recuperare i risultati memorizzandoli in un data base. Questa attività è ulteriormente semplificata dalla possibilità di accedere a Twitter via Api. Indipendentemente dagli aspetti tecnici, alla fine abbiamo un bidone di dati che deve essere trasformato in informazioni.

Meta informazioni
La trasformazioni di dati in informazioni passa attraverso l’aggiunta di meta dati strutturati. Nel caso di Twitter, è possibile ricavare alcune informazioni automaticamente grazie alle pratiche sociali che si sono affermate nell’uso dello strumento: in questo senso, si possono isolare gli hashtag, i destinatari di una risposta, oppure i re-tweet. Ovviamente, abbiamo a disposizione l’autore del tweet e il timestamp.
Dopo aver isolato i dati che possiamo trovare facilmente nei tweet, è opportuno (necessario?) aggiungere altri meta-dati e lo si può fare automaticamente oppure a mano. Con il primo metodo, per esempio, si possono ricercare ulteriori parole chiave utilizzando una lista di riferimento; in teoria si potrebbe utilizzare un motore semantico, ma ho idea che sia difficile che riesca a produrre risultati accettabili con stringhe di soli 140 caratteri. Di fatto, molte informazioni devono essere aggiunte a mano. Con l’intervento di una persona, infatti, è possibile introdurre tag che non compaiono già nei testi dei cinguettii e che, per esempio, esprimono concetti più generali. Allo stesso tempo, è relativamente facile qualificare il sentiment del tweet e così di seguito.

Rappresentazione sintetica
L’ultimo passaggio è l’uso dei meta dati per ricavare una rappresentazione sintetica, utile soprattutto per analizzare un grande volume di tweet oppure l’andamento delle conversazioni nel tempo (anche se non sono sicuro che nel caso di Twitter si possa parlare propriamente di conversazioni). E’ facile la costruzione delle tag cloud e degli steamgraph: le prime danno un’idea degli argomenti trattati dai tweet che abbiamo raccolto; i secondi, invece, permettono di apprezzare l’andamento nel volume dei messaggi. Le rappresentazioni che si possono usare sono molte e vanno da banali grafici a barra e torte, a visualizzazioni più raffinate come le treemap. Senza, ovviamente, considerare le tante fantasiose infografiche emerse attorno a Twitter.

Social network analysis
Un ulteriore strumento che può essere utilizzato (ma di cui non abbiamo parlato nel corso della nostra chiacchierata con Davide) è la social network analysis, un metodo di indagine che consente di analizzare la struttura sociale di un gruppo. Nel nostro caso, torna utile per capire se esiste un gruppo sociale dietro i tweet che abbiamo raccolto e quali sono le sue caratteristiche: la trama delle relazioni legati ai rapporto di amicizia; quella – più significativa – che nasce dalle risposte e dai re-tweet; gli utenti che hanno un ruolo più centrale e quindi sono in grado di distribuire meglio un messaggio; e via dicendo.

A questo punto, la domanda è: c’è qualcuno che avrebbe voglia di mettere in piedi un progetto collaborativo per approfondire e strutturare il discorso ed, eventualmente, mettere in piedi il sistemino? Lasciate un commento dopo il bip 😉

10 Responses

  1. Andiamo per punti 😀
    1) Raccolta: come hai ben sottolineato si puo usare molto bene l’API di Twitter. I problemi possono venir fuori proprio da questo uso, tenendo conto del limite di frequenza posto nell’interogazione di questo API. Poi c’e il problema della ricerca in se. Che ricerca fai la prima volta che usi il sistema? Secondo me un metodo migliore e raccogliere tutti (o quasi) gli account che possono interessare e poi andare a scoprire, relazioni, tweet e tutto il resto.
    2) Meta-informazioni: l’utilizzo di un motore semantico potrebbe essere secondo me molto piu pratico di un’intervento manuale. Non ho idea della qualita delle trasformazioni (noi abbiamo sperimentato il nostro motore solo su testi piu lunghi) ma penso che almeno una serie di entita (luoghi, persone, compagnie) si possano estrarre con relativa facilita e certezza. Teoricamente parlando la cortezza dei tweet potrebbe essere molto piu adatta a manipolazioni semantiche pure (del tipo grammaticale o RDF). Un’altra cosa molto interessante che noi stiamo sperimentando e l’estrazione delle cosidette “espressioni comuni”, Sarebbe interessante provare.
    3) Rappresentazione sintetica: Ci sono un paio di librerie flash da provare e credo che si possano trovare anche altri tipi di rappresentazione (vedi digg labs).
    4) Social network analysis: Qui gia la questione si complica. Non sono certo che i metodi della Social network analysis siano stati pensati per fornire analisi di un fenomeno cosi dinamico come Twitter. E molto probabile che una rappresentazione grafica di queste analisi fatte “al minuto” sia molto difficile, o talmente caotica da risultare inutile. Pero si puo pensare a questo tipo di analisi in determinati momenti della giornata/mese/anno, permettendo cosi una migliore visione sulle dinamiche e forse anche la definizione di gruppi di interesse.
    E ci sarebbe sicuramente molto di piu da dire, ma mi fermo qui per evitar di fare troppa confusione. 😀
    Se la questione ti interessa fammi un cenno e parliamo ad extenso.

  2. Ciao Nicola, interessante e molto quanto hai scritto. Twitter e, più in generale, la social network analysis, sono molto intriganti e con delle potenzialità tutte da scoprire. Io in particolare mi interesso al mondo health e health 2.0 con un occhio al mercato nostrano.

    keep in touch!

  3. @Daniel… rispondo sempre per punti 😉
    1) Non so qual è la frequenza di interrogazione delle Api, ma non dovrebbe essere un fattore bloccante se è possibile far interagire Twitter e Friendfeed praticamente in tempo reale (ad ogni modo non voglio banalizzare, perché son cose da informatici e io non sono competente più di tanto in materia). Per quanto riguarda la strategia di ricerca dipende: a) cerchi per parola chiave (una o più di una) se vuoi sapere chi parla della cosa che interessa te; b) individui un gruppo di utenti seguendo un criterio e quindi vedi di cosa parlano.
    2) che io sappia, i motori semantici funzionano meglio con testi lunghi, contesti ben definiti e linguaggio preciso (e questo mi sembra anche intuitivo). In altri termini sono estremamente dipendenti dal contesto, quindi credo che andrebbero fatte delle prove per capire il livello di accuratezza che si riesce a raggiungere. Mi sembra comunque inevitabile un intervento umano (eventualmente svolto in crowdsourcing su mole di informazioni molto grandi) anche perché non credo che esista alcun motore semantico in grado di taggare correttamente un tweet che dica “bello questo video URL” perché non ci sono sufficienti informazioni.
    3) Le possibilità sono tantissime: l’infografica negli ultimi tempi ha fatto notevolissimi passi avanti e si sta cimentando sempre con problemi nuovi. Ci vorrebbe il supporto di un sociologo per definire le dimensioni da analizzare e il metodo e quindi scegliere il tipo di rappresentazione più efficace.
    4) La SNA non si presta a essere usata con dati che cambiano in tempo reale: è gioco forza che si facciamo delle fotografia a intervalli anche piuttosto lontani tra di loro (giorni o settimane).
    Parliamone: sono incuriosito dai domini rumeni… Ciao. Nicola

  4. carino steamgraph anche se non riesco a farlo funzionare…anche a voi da problemi?

  5. idea (e progetto) interessante… i miei due centesimi alla discussione:

    quello che dice Daniel sulle possibili limtazioni tecniche e’ vero e potrebbe essere rilevante perche’ puo’ influenzare la quantita e qualita dei dati grezzi che si raccolgono e dunque il tipo di analisi che si iresce a fare a valle. Vedi le faq delle API (dove si dice che l’accesso a tutto lo stream di twit viene dato solo se serve), e la descrizione delle API “straming” che e’ ora in alpha.

    Per l’arricchimento delle meta-informazioni ci sono alcuni strumenti di analisi lessicale che possono aiutare a determinare la struttura delle frasi ed estrarre alcuni dati in piu’ rispetto ai vari hashtag o retweet (e.g. date, luoghi, …), ti volevo segnalare ad esempio http://pypi.python.org/pypi/topia.termextract/ .

    il discorso sulla SNA e’ poi ancora piu’ interessante proprio perche’ applicato ad un ambiente dinamico (e tutto sommato poco “strutturato”) come twitter obbligherebbe a cercare nuovi punti di vista (o meglio nuove “dimensioni” da misurare).

  6. … forse il commento e’ stato mangiato dal filtro antispam, ripeto senza links 😐

    idea (e progetto) interessante… i miei due centesimi alla discussione:

    quello che dice Daniel sulle possibili limtazioni tecniche e’ vero e potrebbe essere rilevante perche’ puo’ influenzare la quantita e qualita dei dati grezzi che si raccolgono e dunque il tipo di analisi che si iresce a fare a valle. Vedi le faq delle API (dove si dice che l’accesso a tutto lo stream di twit viene dato solo se serve), e la descrizione delle API “straming” che e’ ora in alpha.

    Per l’arricchimento delle meta-informazioni ci sono alcuni strumenti di analisi lessicale che possono aiutare a determinare la struttura delle frasi ed estrarre alcuni dati in piu’ rispetto ai vari hashtag o retweet (e.g. date, luoghi, …), ti volevo segnalare ad esempio topia.termextract .

    il discorso sulla SNA e’ poi ancora piu’ interessante proprio perche’ applicato ad un ambiente dinamico (e tutto sommato poco “strutturato”) come twitter obbligherebbe a cercare nuovi punti di vista (o meglio nuove “dimensioni” da misurare).

    P.S. da dove si comincia?

  7. @luca. Non saprei: personalmente non l’ho mai usato
    @Federico Bo. Appena torno a Roma, lo sento… grazie 🙂
    @Luca Mearelli. Volendo iniziare, direi che si può partire dal fare un po’ di scouting per vedere cosa già esiste, cosa è stato sperimentato, cosa si può integrare in termini di soluzioni già esistenti e così di seguito. Probabilmente la cosa più semplice è un wiki (io uso con grande soddisfazione wikispaces che trovi ottimo) in cui iniziare a mettere un po’ di cose.