Questa è una vecchia versione del documento!
Progetto di ASD, anno accademico 2012/13
Questo progetto viene valutato in trentesimi e sostituisce l'esame scritto del corso o il seminario, e non necessita la presentazione del mini-progetto. Può essere scelto il seguente tema oppure un argomento da concordare con il docente.
Progetto in C/C++ (o altro linguaggio da concordare con il docente) per estrarre alcune informazioni implicitamente contenute in una collezione di tweet reperita usando le “Streaming API” di Twitter disponibili pubblicamente https://dev.twitter.com/docs/streaming-apis (grazie a Luca Versari per la raccolta dei tweet). Il contenuto di tali tweet è stato filtrato in modo automatico e, pertanto, alcuni tweet potrebbero risultare poco appropriati (il docente non se ne assume responsabilità, ma l'autore del tweet).
Ciascun tweet è presentato come una riga di testo formattata, come mostrato nel seguente esempio:
{'lang': 'it', 'text': '@pamela_pascucci @Christian_nofx @isle61 @TazzioliClaudia @liviav2501 @LadyCipria @eusai1965 adoro #Roma,ogni volta è #triste doverla lasciare', 'user': {'name': '☀Dany ®', 'screen_name': 'DiComeDaniela'}, 'entities': {'symbols': [], 'user_mentions': [{'indices': [0, 16], 'name': 'Pamela Pascucci', 'screen_name': 'pamela_pascucci'}, {'indices': [17, 32], 'name': 'Christian Cavina\uf8ff♑', 'screen_name': 'Christian_nofx'}, {'indices': [33, 40], 'name': 'Francesca Grosso ', 'screen_name': 'isle61'}, {'indices': [41, 57], 'name': 'La Terry', 'screen_name': 'TazzioliClaudia'}, {'indices': [58, 69], 'name': 'livia ', 'screen_name': 'liviav2501'}, {'indices': [70, 81], 'name': 'Lady Cipria', 'screen_name': 'LadyCipria'}, {'indices': [82, 92], 'name': 'Elena Usai', 'screen_name': 'eusai1965'}], 'hashtags': [], 'urls': []}}
La sintassi è quella di attributo : valore
. Per esempio l'attributo lang
è it
a indicare che il testo del messaggio è in italiano (o per lo meno Twitter ritiene che lo sia). L'attributo text
riporta il testo spedito con il tweet, precisamente @pamela_pascucci @Christian_nofx @isle61 @TazzioliClaudia @liviav2501 @LadyCipria @eusai1965 adoro #Roma,ogni volta è #triste doverla lasciare
, dove ogni occorrenza di un simbolo @
indica un destinatario e di #
indica una parola chiave che si vuole sottolineare (chiamata hashtag). Continuando l'esame del tweet, l'attributo user
è praticamente uno struct (perché il suo valore è racchiuso tra parentesi graffe) contenente name
e screen_name
dell'utente (quest'ultimo è solitamente quello da indicare se si vuole utilizzare @
per spedirgli un tweet). Segue quindi entities
, il cui significato è lasciato come esercizio per imparare a esplorare la struttura di un tweet.
Il file ZIP compresso (circa 58 MB) contenente tali tweet è scaricabile dalla pagina del docente. In particolare, il file ZIP contiene it.txt
con 100k tweets con il formato sopra, scelti da id.json
. Per gli ardimentosi, quest'ultimo è il vero dump ottenuto da Twitter.