SlideShare a Scribd company logo
1 of 231
Download to read offline
IL LINGUAGGIO DELL’ODIO
SUI SOCIAL NETWORK
Cataldo Musto
Università degli Studi di Bari – Dipartimento di Informatica
Liceo Scientifico Statale ‘Piero Bottoni’ – Milano
Progetto Alternanza Scuola-Lavoro «Una bussola contro l’intolleranza»
17 Gennaio 2018
Chi sono
Chi sono (dark side)
Chi sono @UniBa
Semantic Web Access and Personalization
http://www.di.uniba.it/~swap
Chi sono @UniBa
Semantic Web Access and Personalization
http://www.di.uniba.it/~swap
Chi sono @UniBa
Semantic Web Access and Personalization
http://www.di.uniba.it/~swap
Information Retrieval
Chi sono @UniBa
Semantic Web Access and Personalization
http://www.di.uniba.it/~swap
Recommender Systems
Recommender Systems
Recommender Systems
La Mappa dell’Intolleranza
La Mappa dell’Intolleranza
Silvia Brena
Prof. Giovanni Semeraro
Cataldo Musto
Prof. Vittorio Lingiardi
Nicola Carone
Prof.ssa Marilisa D’Amico
Cecilia Siccardi
La Mappa dell’Intolleranza – Obiettivo
Analizzare i contenuti
pubblicati in Rete, individuare
post di natura intollerante
(omofoba, razzista, sessista,
etc.) e geo-localizzare questi
contenuti.
La Mappa dell’Intolleranza – La Genesi
(American)
Hate Map
Progetto della
Humboldt State University
http://users.humboldt.edu/mstephens/hate/hate_map.html
La Mappa dell’Intolleranza – La Genesi
La Mappa dell’Intolleranza – La Genesi
1854
John Snow utilizza
una mappa per
analizzare le cause
dell’epidemia di colera
di Londra
1854  2018
Cosa è cambiato in 164 anni ?
A desk in the 80s
Evolution of the Desk
Social Networks
Cosa è cambiato?
Paradigmi comportamentali
consolidati sono stati
radicalmente modificati
dall’uso delle nuove tecnologie
(Conclave 2005 vs Conclave 2013)
Cosa è cambiato?
Paradigmi comportamentali
consolidati sono stati
radicalmente modificati
dall’uso delle nuove tecnologie
Cosa è cambiato?
Social Networks
Meccanismi per la
costruzione di relazioni
sociali (es. amicizia)
sono stati radicalmente
stravolti dai social
networks
Social Networks
(…anche i
rapporti di
coppia!)
Social Networks
I social network hanno cambiato le modalità con cui condividiamo,
produciamo ed acquisiamo le informazioni
Teoria dei Sei Gradi di Separazione
Ogni persona sulla Terra è collegata a qualunque altra
attraverso un «percorso» di cinque persone
https://it.wikipedia.org/wiki/Sei_gradi_di_separazione
Teoria dei Sei Gradi di Separazione
Ogni persona sulla Terra è collegata a qualunque altra
attraverso un «percorso» di cinque persone
Su Facebook: 4.74 (nel 2011)
https://it.wikipedia.org/wiki/Sei_gradi_di_separazione
Numero di Dunbar
Numero medio di «connessioni» attive nel corso della vita: 150
Quanti amici avete su Facebook?
Is this real?
Social Networks
I social network agiscono da enormi «contenitori» di dati
Social Networks
I social network vengono quotidianamente utilizzati per
condividere informazioni su gusti, preferenze, relazioni
sociali, sensazioni, etc.
Social Networks
Social Networks
Black Mirror episodio 3x01
I social networks dicono chi sei?
Social Networks
Quali sono le conseguenze?
Informazione prodotta
in un minuto sul Web
Dati prodotti in un anno
Trend 2010  2020
Dati Prodotti in un anno
67% delle persone controlla il proprio
telefono anche se non ci sono notifiche
29% delle persone sostiene di non
poter vivere senza il proprio telefono
(2012)
(Source: Adrian C.Ott,
The 24-hour customer)
we can handle 126 bits
of information/day
we deal with 393bits of
information/day
ratio: more than 3x
Information Overload
… in digital life
Information Overload
… in digital life
Information Overload
(4482 sneakers!)
Information Overload
… in real life
Paradox of Choice (Barry Schwartz)
https://www.ted.com/talks/barry_schwartz_on_the_paradox_of_choice?language=it
Information Overload
Obstacle
Or
Opportunity?
Information Overload
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
(Francis Bacon, 17° secolo)
Scientia
Potentia Est
Knowledge is power!
La conoscenza (e dunque il potere) è nei dati!
Dove è oggi la conoscenza?
Sul Web!
I possessori della conoscenza, oggi
Asimmetria Informativa
“Information asymmetry deals with the
study of decisions in transactions where one
party has more or better information than the
other. This creates an imbalance of
power in transactions”
J.Stiglitz
Nobel Prize 2001
I processi decisionali (e gli algoritmi) basati su «conoscenza» estratta dai
dati sono un’applicazione concreta del principio dell’Asimmetria Informativa
Applicazioni…basate su asimmetria informativa
“A team of scientists, engineers and
technicians from Google, all
volunteers, is cooperating with
UNICEF to cross all this data to other
elements, ranging from weather
conditions to travel flows, and as a
result identify and view any new
outbreaks.”
Applicazioni…basate su asimmetria informativa
Prevenzione dei crimini - Londra
Significative Riduzioni nel Numero di
Furti (-33%), Crimini (-21%)
e violazioni di proprietà privata (-12%).
Applicazioni…basate su asimmetria informativa
Algoritmi  Microscopi
L’introduzione di algoritmi per l’estrazione e
l’analisi di contenuti prodotti in Rete ha la
valenza dell’introduzione del microscopio
Micro-fenomeni, apparentemente
complessi da spiegare, possono essere
analizzati con nuove chiavi di lettura!
Applicazioni…inattese
Applicazioni…inattese
Applicazioni…pericolose
Applicazioni…pericolose
Applicazioni…pericolose
Dove stiamo andando?
1984
George Orwell
Dove stiamo andando?
Dove stiamo andando?
La Rete è oggi simile al Panopticon?
Progetto di Prigione (Jeremy Bentham, 1871)
La Mappa dell’Intolleranza
La «nostra» asimmetria informativa
Perché una «Mappa» dell’Intolleranza?
• 7 giovani su 10 (69,9%) l’hanno sperimentato in prima
persona
• il 90% degli intervistati (89,4%) ne ha un’opinione negativa.
• 13% ammette di aver insultato un Vip sui social network
almeno una volta.
• Solo il 21% lo disapprova totalmente gli insulti nei confronti
dei vip e meno del 10% segnalerebbe alla piattaforma il
contenuto offensivo
• il 10% degli intervistati dice di aver rivolto insulti sul web a
ragazzi della stessa età.
• il 28% di quelli pronti a mettere alla gogna un coetaneo sul
web non lo farebbe se avesse la persona di fronte.
• Ancora meno se il destinatario del commento è un
personaggio famoso: neanche 1 su 3 (il 32%) se la sentirebbe
di ripetere quanto detto sul social al diretto interessato.
Fonti: indagine dell’Osservatorio Giovani dell’Istituto Toniolo
sul tema “Diffusione, uso, insidie dei social network” e
Indagine di Generazioni Connesse realizzata da Skuola.net e
Università di Firenze
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Risalire la Piramide della Conoscenza
Metodologia
Connessione ai
Social Network
Estrazione dei
Contenuti
Individuazione dei
Tweet di natura
intollerante
Localizzazione dei
Tweet
Costruzione
delle
Mappe
1. Connessione ai Social Network
Ogni social network offre degli strumenti (detti API,
Application Programming Interface) per estrarre le
informazioni prodotte sulle piattaforme.
2. Estrazione dei Contenuti
Omofobia
Antisemitismo
Razzismo
Violenza contro le Donne
Disabilità
Islamofobia
Definizione delle «dimensioni dell’intolleranza»
Con che criterio abbiamo estratto i Tweet?
Come facciamo a capire se un Tweet è intollerante?
2. Estrazione dei Contenuti
Definizione di un lessico per un ognuna delle dimensioni
dell’intolleranza
2. Estrazione dei Contenuti
76 termini sensibili, definiti dal gruppo
di psicologia dell’Università di Roma La Sapienza
2. Estrazione dei Contenuti
3. Individuazione dei Tweet intolleranti
Problemi
Semantica
Ambigua
Sentiment
Positivo
Tweet non
Geolocalizzati
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
Entrambi contengono la parola chiave «nano», ma solo il primo è
un tweet di natura intollerante
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
Entrambi contengono la parola chiave «nano», ma solo il primo è
un tweet di natura intollerante
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
I contenuti testuali possono avere una semantica
ambigua. I computer non sono in grado di comprendere
il significato dei contenuti.
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
(evidenze recenti ☺)
3. Individuazione dei Tweet intolleranti
Semantica Ambigua
Soluzione: utilizzo di algoritmi di analisi semantica per la
comprensione del testo e filtraggio dei Tweet non intolleranti.
3. Individuazione dei Tweet intolleranti
Calcolo del ‘sentiment’
I contenuti postati in Rete hanno un sentiment (una polarità)
associata. Ovviamente siamo interessati ai contenuti aventi
polarità negativa!
3. Individuazione dei Tweet intolleranti
Calcolo del ‘sentiment’
Entrambi contengono la parola chiave «nano», ma solo il primo è
un tweet di natura intollerante. Il secondo Tweet è ironico.
3. Individuazione dei Tweet intolleranti
Calcolo del ‘sentiment’
Soluzione: utilizzo di algoritmi di «sentiment analysis» per la
comprensione della «polarità» del testo e filtraggio dei Tweet
non intolleranti.
4. Geo-localizzazione dei contenuti
Soluzione: utilizzo di semplici tecniche per la localizzazione dei
contenuti, al fine di aumentare il numero di Tweet geolocalizzati
Problema: una piccolissima
percentuale dei Tweet contiene
informazioni sulla localizzazione
5. Generazione delle Mappe
Anno Tweet Totali Tweet Geo
2015 ~2 milioni ~40k
2016 ~3 milioni ~110k
5. Generazione delle Mappe
Violenza contro le Donne Disabilità
Razzismo Anti-Semitismo
(mappe edizione 2015)
5. Generazione delle Mappe
Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci
hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di
picchi di Tweet intolleranti
5. Generazione delle Mappe
Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci
hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di
picchi di Tweet intolleranti
5. Generazione delle Mappe
Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci
hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di
picchi di Tweet intolleranti
Come abbiamo «costruito» le mappe?
CrowdPulse
Una piattaforma per l’analisi semantica di contenuti sociali
CrowdPulse
CrowdPulse
Permette di visualizzare i risultati delle analisi e
delle estrazioni dati (es. mappe, grafici temporali,
tag cloud dei termini, etc.)
CrowdPulse
Permette di generare le analisi creando dei
«progetti»
CrowdPulse
 La piattaforma è basata sul concetto di plug-in
 Un plug-in è un piccolo programma che effettua
delle operazioni
 Immaginiamolo come un mattoncino Lego
CrowdPulse
 La piattaforma è basata sul concetto di plug-in
 Un plug-in è un piccolo programma che effettua delle
operazioni
 Immaginiamolo come un mattoncino Lego
 Esempi di plug-in disponibili
 Estrazione messaggi da Twitter
 Estrazione post da Facebook
 Riconoscimento della Lingua
 Elaborazione e Analisi del Testo
 Identificazione del «topic» (politica, sport, tecnologia, etc.)
 Sentiment Analysis
 Geolocalizzazione degli Utenti
 Geolocalizzazione dei Contenuti
 etc…
CrowdPulse
 Come utilizziamo i plug-in ?
CrowdPulse
 Come utilizziamo i plug-in ?
 La piattaforma è basata sul concetto di
progetto
 Un progetto è una sequenza di plug-in, ordinati
in modo da permetterci di ottenere il risultato
che ci interessa
CrowdPulse
Sulla sinistra abbiamo l’elenco dei progetti.
Cliccando sul nome è possibile visualizzare il contenuto dei
progetti (i plug-in e l’ordine in cui devono essere eseguiti).
CrowdPulse
Un progetto CrowdPulse
CrowdPulse
Terminata la definizione del
progetto, si clicca su «Save» in
alto e poi su «Run» in basso.
Il progetto è in esecuzione!
CrowdPulse
Terminata la definizione del
progetto, si clicca su «Save» in
alto e poi su «Run» in basso.
Il progetto è in esecuzione!
Una volta lanciato il progetto, possiamo
controllare la sua esecuzione.
Cliccando su «Runs e Logs» si possono controllare
le singole esecuzioni del progetto. In alto abbiamo
quelle attualmente in esecuzione (Now Running),
in basso quelle che sono state eseguite in passato
(Past Executions)
CrowdPulse Cliccando sul nome del progetto è possibile leggere dei dettagli relativi
all’esecuzione del progetto.
CrowdPulse
Quando l’esecuzione del progetto è completata, verrà visualizzata la scritta
«Execution: Completed» e il progetto finirà nell’elenco delle Past Executions.
Come costruiamo un progetto?
CrowdPulse – Un esempio di progetto
Social
Extractor
Data
Persister
CrowdPulse – Un esempio di progetto
Social
Extractor
Data
Persister
Questo è il più semplice progetto CrowdPulse. Estraiamo dei dati e li
salviamo sul nostro computer, per poterli visualizzare.
CrowdPulse – Un esempio di progetto
Social
Extractor
Data
Persister
Nel gergo di CrowdPulse ogni plug-in che vogliamo inserire in un
progetto si chiama «nodo» , mentre invece la sequenza di operazioni si
definisce in funzione di alcuni «archi» che collegano dei nodi.
CrowdPulse – Un esempio di progetto
Social
Extractor
Data
Persister
Come si traduce tutto questo in CrowdPulse?
Un progetto CrowdPulse
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
process  definisce il nome del progetto e il
nome del file su cui salvare il «log» di
esecuzione
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
process  definisce il nome del progetto e il
nome del file su cui salvare il «log» di
esecuzione
nodes  indica quali sono i plug-in che
vogliamo utilizzare
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
process  definisce il nome del progetto e il
nome del file su cui salvare il «log» di
esecuzione
nodes  indica quali sono i plug-in che
vogliamo utilizzare
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
process  definisce il nome del progetto e il
nome del file su cui salvare il «log» di
esecuzione
nodes  indica quali sono i plug-in che
vogliamo utilizzare
Un progetto CrowdPulse
Ogni progetto CrowdPulse è
composto da tre parti
process  definisce il nome del progetto e il
nome del file su cui salvare il «log» di
esecuzione
nodes  indica quali sono i plug-in che
vogliamo utilizzare
edges  indica qual è l’ordine con cui vengono
eseguiti
Proviamo a costruire un progetto insieme!
CrowdPulse – Una «piccola» HateMap
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
Tutorial 0
Lanciamo CrowdPulse
Tutorial 1
Plug-in di Estrazione Dati da Twitter
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
Step 1: Estrazione Dati da Twitter
Social Extractor
Source
Extraction
Heuristics
Step 1: Definire la sorgente
Social Extractor
Source
Extraction
Heuristics
Step 1: Definire la sorgente
Social Extractor
Source
Extraction
Heuristics
Step 2: Definire i criteri
Content
User
Geo
#democrats
#www2015
@barack_obama
@comunefi
#earthquake #traffic
Content+Geo
Page
Group
Social Extractor
Source
Extraction
Heuristics
Step 2: Definire i criteri
Content
User
Geo
#democrats
#www2015
@barack_obama
@comunefi
#earthquake #traffic
Content+Geo
Page
Group
Come procediamo all’estrazione?
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Estrazione dei Messaggi (Tweet)
Salvataggio dei Mesaggi (Tweet)
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Estrazione dei Messaggi (Tweet)
Salvataggio dei Mesaggi (Tweet)
Come possiamo modificare il progetto?
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Estrazione dei Messaggi (Tweet)
Salvataggio dei Mesaggi (Tweet)
Come possiamo modificare il progetto?
1) Definite il vostro lessico
IMPORTANTE: separate le parole con la
virgola. L’ultima parola non deve avere la
virgola!
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Omofobia
Antisemitismo
Razzismo
Violenza contro le Donne
Disabilità
Islamofobia
Suggerimento: scegliete un aspetto che volete analizzare e definite il vostro
lessico! Anche 5-10 termini sono sufficienti
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Estrazione dei Messaggi (Tweet)
Salvataggio dei Mesaggi (Tweet)
Come possiamo modificare il progetto?
2) Date un nome al progetto in
corrispondenza della voce ‘db’
IMPORTANTE: ricordatelo perché servira
nei prossimi passi (es. «mappa-cataldo»)
Tutorial 1 – Estrazione Dati
Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
Quali sono i nodi?
Estrazione dei Messaggi (Tweet)
Salvataggio dei Mesaggi (Tweet)
3) Cliccate su «Save» in alto e poi
premete il bottone «Run» in basso
Avete appena lanciato il vostro primo
progetto ☺
Tutorial 1 – Estsrazione Dati
Una volta lanciato, potete controllarne l’esecuzione.
Attendete qualche minuto il
completamento dell’esecuzione!
Possiamo visualizzare i dati?
Tutorial 1 – Estrazione Dati
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Tutorial 1 – Estrazione Dati
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Cliccate su ‘Data Visualization’
Tutorial 1 – Estrazione Dati
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Selezionate ‘Message Timeline’
Tutorial 1 – Estrazione Dati
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
In basso cliccate su ‘Database’ e selezionate il nome del
progetto che avete indicato prima
Tutorial 1 – Estrazione Dati
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Stiamo visualizzando quanti dati abbiamo estratto!
Tutorial 2
Plug-in di Elaborazione del Testo
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
CrowdPulse – Text Processing
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
CrowdPulse – Text Processing
A cosa ci serve elaborare il testo?
CrowdPulse – Text Processing
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Quali sono i nodi?
Recupero dei Tweet
Tokenizzazione
Salvataggio dei Tweet
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Quali sono i nodi?
Recupero dei Tweet
Tokenizzazione?????
Salvataggio dei Tweet
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Quali sono i nodi?
Recupero dei Tweet
Tokenizzazione?????
Salvataggio dei Tweet
La tokenizzazione è l’operazione in cui
un testo (es. un Tweet) viene suddiviso
in singole parole, per poterle
analizzare e visualizzare
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Come modifichiamo il progetto?
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
Come modifichiamo il progetto?
Sostituite il nome del vostro progetto
a «inserire-nome-db».
Salvate, lanciate e controllate
l’esecuzione!
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Cliccate su ‘Data Visualization’
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Selezionate ‘Word Cloud’
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
In basso cliccate su ‘Database’ e selezionate il nome del
progetto che avete indicato prima
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Il risultato è soddisfacente? No!
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Il risultato è soddisfacente? No!
Molte parole non significative sono inserite nella Word Cloud.
Quali sono queste parole?
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Il risultato è soddisfacente? No!
Molte parole non significative sono inserite nella Word Cloud.
Articoli, Avverbi, Congiunzioni…anche punteggiatura! Queste parole si chiamano STOP WORDS
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Il risultato è soddisfacente? No!
Molte parole non significative sono inserite nella Word Cloud.
Dobbiamo eliminarle!
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords»
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords»
Quali sono i nodi?
Recupero dei Tweet
Rimozione StopWords
Salvataggio dei Tweet
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords»
Quali sono i nodi?
Recupero dei Tweet
Rimozione StopWords
Salvataggio dei Tweet
Come funziona?
La rimozione delle stopwords
confronta il testo con un
«dizionario» di parole che non ci
interessa visualizzare. Le parole di
troppo vengono eliminate!
Tutorial 2 – Elaborazione Testo
Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords»
Ricordate i modificare il nome!
Sostituite il nome del vostro
progetto a «inserire-nome-db».
Salvate, lanciate e controllate
l’esecuzione!
Tutorial 2 – Elaborazione del Testo
Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
Numerosi termini non rilevanti (es. «che», «non», etc.) sono stati eliminati, rendendo la
visualizzazione molto più significativa
Tutorial 3
Plug-in di Sentiment Analysis
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
CrowdPulse – Sentiment Analysis
Sentiment Analysis
Motivazioni
Questo Tweet cerca di convogliare una «opinione» ?
Sentiment Analysis
Motivazioni
Questo Tweet cerca di convogliare una «opinione» ?
SI
Sentiment Analysis
Un esempio
Sentiment Analysis
Un esempio
Sentiment: :-(
Sentiment Analysis
Un esempio
Sentiment: :-(
In numerose applicazioni è di fondamentale
importanza capire l’opinione degli individui verso
ciò di cui parlano!
Sentiment Analysis
Cosa ci serve per sviluppare un algoritmo?
Sentiment Analysis
Cosa ci serve per sviluppare un algoritmo?
Sentiment Analysis
Lessici
Sono dei vocabolari
Che associano a ciascun termine uno score
Questo score è detto «polarità»
gioia ?
rabbia ?
Sentiment Analysis
Lessici
Sono dei vocabolari
Che associano a ciascun termine uno score
Questo score è detto «polarità»
gioia +++
rabbia ---
Sentiment Analysis
Utilizzando questi «vocabolari» è possibile
associare uno score a ciascun termine
Sentiment Analysis
Un semplice algoritmo
 Intuizione
 La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla
polarità delle frasi che la compongono.
Sentiment Analysis
Un semplice algoritmo
 Intuizione
 La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla
polarità delle frasi che la compongono.
 Come ricaviamo le frasi?
 Ogni qual volta identifichiamo un segno di punteggiatura o delle
congiunzioni.
Sentiment Analysis
Un semplice algoritmo
 Intuizione
 La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità
delle frasi che la compongono.
 Come ricaviamo le frasi?
 Ogni qual volta identifichiamo un segno di punteggiatura o delle congiunzioni.
 Esempio
 Non mi piace questo cibo, è terribile
 Frasi = 2
Sentiment Analysis
Un semplice algoritmo
 Intuizione
 La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità
delle frasi che la compongono.
 Come ricaviamo le frasi?
 Ogni qual volta identifichiamo un segno di punteggiatura o delle congiunzioni.
 Esempio
 Non mi piace questo cibo, è terribile
 Frasi = 2
{
{
Sentiment Analysis
Un semplice algoritmo
 Come calcoliamo la polarità (il sentiment) ?
 Il sentiment di un contenuto testuale è pari alla somma del sentiment delle
frasi che la compongono
 Intuitivamente: se in un testo abbiamo due frasi «positivi», l’intero testo sarà
positivo. Viceversa se abbiamo una porzione di testo positiva e una negativa
cerchiamo di capire qual è la parte «dominante»
Sentiment Analysis
Un semplice algoritmo
 Come calcoliamo la polarità (il sentiment) ?
 Il sentiment di un contenuto testuale è pari alla somma del sentiment delle
frasi che la compongono
 Intuitivamente: se in un testo abbiamo due frasi «positive», l’intero testo sarà
positivo. Viceversa se abbiamo una porzione di testo positiva e una negativa
cerchiamo di capire qual è la parte «dominante»
pol(T) = ∑pol(fi)
i=1
testo frasi
F={f1…fk}
Sentiment Analysis
Un semplice algoritmo
 Come si calcola la polarità di una frase?
 Il sentiment di una frase è pari alla somma del sentiment delle parole che la
compongono!
pol(fi) = ∑score(tj)
j=1
termine
Ti={t1…tn}
Sentiment Analysis
Un semplice algoritmo
 Come si calcola la polarità di una frase?
 Il sentiment di una frase è pari alla somma del sentiment delle parole che la
compongono!
 Come calcoliamo score(tj) ?
 Utilizzando i lessici !
pol(fi) = ∑score(tj)
j=1
termine
Ti={t1…tn}
Sentiment Analysis
Un semplice algoritmo
 Come si calcola la polarità di una frase?
 Il sentiment di una frase è pari alla somma del sentiment delle parole che la
compongono!
 Un banale algoritmo di sentiment analysis scorre i termini presenti in una frase,
ignora quelli «neutri» e determina la polarità sommando la polarità dei singoli
termini
 Ovviamente l’algoritmo ha anche dei piccoli accorgimenti, ad esempio se viene trovata una
negazione
pol(fi) = ∑score(tj)
j=1
termine
Ti={t1…tn}
Sentiment Analysis
Esempi
Frase Sentiment
Non mi piace questo cibo, è terribile NEGATIVO
Adoro questo ristorante POSITIVO
Domani parto per Milano NEUTRO
Mi piace la pizza, ma odio la verdura
Bari è una città bellissima ma un po’ caotica
Ma qui le metro non arrivano mai ?!?
Davvero bello stare un’ora in coda. Mah!
Sentiment Analysis
Esempi
Frase Sentiment
Non mi piace questo cibo, è terribile NEGATIVO
Adoro questo ristorante POSITIVO
Domani parto per Milano NEUTRO
Mi piace la pizza, ma odio la verdura NEUTRO
Bari è una città bellissima ma un po’ caotica
Ma qui le metro non arrivano mai ?!?
Davvero bello stare un’ora in coda. Mah!
Sentiment Analysis
Esempi
Frase Sentiment
Non mi piace questo cibo, è terribile NEGATIVO
Adoro questo ristorante POSITIVO
Domani parto per Milano NEUTRO
Mi piace la pizza, ma odio la verdura NEUTRO
Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO
Ma qui le metro non arrivano mai ?!?
Davvero bello stare un’ora in coda. Mah!
Sentiment Analysis
Esempi
Frase Sentiment
Non mi piace questo cibo, è terribile NEGATIVO
Adoro questo ristorante POSITIVO
Domani parto per Milano NEUTRO
Mi piace la pizza, ma odio la verdura NEUTRO
Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO
Ma qui le metro non arrivano mai ?!? NEGATIVO
Davvero bello stare un’ora in coda. Mah!
Sentiment Analysis
Esempi
Frase Sentiment
Non mi piace questo cibo, è terribile NEGATIVO
Adoro questo ristorante POSITIVO
Domani parto per Milano NEUTRO
Mi piace la pizza, ma odio la verdura NEUTRO
Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO
Ma qui le metro non arrivano mai ?!? NEGATIVO
Davvero bello stare un’ora in coda. Mah! NEGATIVO
Algoritmi così semplici non sono in grado di identificare correttamente il sentiment
in presenza di ironia o in presenza di frasi senza termini «polarizzati». Sono
necessari algoritmi più sofisticati!
Calcoliamo il ‘sentiment’ dei nostri Tweet?
Tutorial 3 – Calcolo del Sentiment
Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment»
Tutorial 3 – Calcolo del Sentiment
Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment»
Quali sono i nodi?
Recupero dei Tweet
Calcolo del Sentiment
Salvataggio dei Tweet
Tutorial 3 – Calcolo del Sentiment
Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment»
Quali sono i nodi?
Recupero dei Tweet
Calcolo del Sentiment
Salvataggio dei Tweet
Come al solito modificate i nomi dei
progetti, salvate e lanciate
Controlliamo i risultati appena ha
terminato!
Tutorial 3 – Calcolo del Sentiment
Clicchiamo su «View» per visualizzare i risultati
Clicchiamo su «View»  e poi selezioniamo «Bar Chart» (grafico a barre)
oppure «Pie Chart» (grafico a torta) nell’elenco dei grafici sotto la voce
«Sentiment»
Tutorial 3 – Calcolo del Sentiment
Clicchiamo su «View» per visualizzare i risultati
Selezioniamo il nome del progetto e poi visualizziamo i risultati!
Tutorial 3 – Calcolo del Sentiment
Clicchiamo su «View» per visualizzare i risultati
Tutorial 3 – Calcolo del Sentiment
Clicchiamo su «View» per visualizzare i risultati
Cliccando invece su Timeline possiamo vedere l’evoluzione temporale
Possiamo provare a fare delle analisi
un po’ più complesse?
Tutorial 3 – Calcolo del Sentiment
In quali giorni si è utilizzato più spesso un termine?
Quale è il sentiment associato?
Clicchiamo su «filter on»  selezioniamo «tokens» e poi inseriamo nel campo «search» il nome
del termine che ci interessa analizzare singolarmente
Tutorial 3 – Calcolo del Sentiment
In quali giorni si è utilizzato più spesso un termine?
Quale è il sentiment associato?
Attraverso questa visualizzazione possiamo vedere il «picco» delle menzioni
di quel concetto nei dati estratti.
Tutorial 4
Plug-in di Geo-localizzazione
Social
Extractor
Text Processing
Sentiment
Analysis
Geolocalization Data Persister
CrowdPulse – Geolocalizzazione
Tutorial 4 – Geolocalizzazione Contenuti
Cliccando su «Admin» troverete un progetto «tutorial-4-geolocalization»
Ricordate di modificare i nomi dei progetti (‘db’) prima
di salvare e lanciare il progetto!
Il progetto richiede molti minuti per la sua esecuzione!
Tutorial 4 – Geolocalizzazione Contenuti
Visualizzazione Risultati
Selezioniamo «map» come tipologia di visualizzazione e poi selezioniamo il nostro progetto
Conclusioni
Conclusioni
 I moderni strumenti informatici per l’estrazione e l’analisi dei dati
permettono di analizzare fenomeni complessi con nuove chiavi di
lettura!
 Algoritmi = Microscopi!
 Innumerevoli applicazioni e funzionalità
 Monitoraggio brand
 Profilazione Utente
 Smart Cities
http://www.di.uniba.it/~swap/musto
cataldo.musto@uniba.it
@cataldomusto
Contatti
Grazie!

More Related Content

Similar to Il Linguaggio dell'Odio sui Social Network

Cmplx school spoleto_ve_reti3su3_22ago2016
Cmplx school spoleto_ve_reti3su3_22ago2016Cmplx school spoleto_ve_reti3su3_22ago2016
Cmplx school spoleto_ve_reti3su3_22ago2016Valerio Eletti
 
Uso consapevole della Rete
Uso consapevole della Rete Uso consapevole della Rete
Uso consapevole della Rete Emma Pietrafesa
 
Mauro Alovisio bullismo e cyberbullismo odg milano
Mauro Alovisio  bullismo e cyberbullismo  odg milanoMauro Alovisio  bullismo e cyberbullismo  odg milano
Mauro Alovisio bullismo e cyberbullismo odg milanoMauro Alovisio
 
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?�Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?�
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?Marco Giacomello
 
The Italian Hate Map - Matera
The Italian Hate Map - MateraThe Italian Hate Map - Matera
The Italian Hate Map - MateraCataldo Musto
 
SCIENCE 2.0 Scientific research in the time of social media
SCIENCE 2.0 Scientific research in the time of social mediaSCIENCE 2.0 Scientific research in the time of social media
SCIENCE 2.0 Scientific research in the time of social mediaDavide Bennato
 
Social Network ed adolescenti
Social Network ed adolescenti Social Network ed adolescenti
Social Network ed adolescenti Alberto Di Capua
 
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longoValentina Longo
 
Storie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesseStorie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesseCSP Scarl
 
Informatica umanistica 2016-3
Informatica umanistica   2016-3Informatica umanistica   2016-3
Informatica umanistica 2016-3Stefano Lariccia
 
Reti, memetica e contagio di idee e comportamenti - parte 3/3
Reti, memetica e contagio di idee e comportamenti - parte 3/3Reti, memetica e contagio di idee e comportamenti - parte 3/3
Reti, memetica e contagio di idee e comportamenti - parte 3/3Valerio Eletti
 
Famiglie e social media: istruzioni per l'uso
Famiglie e social media: istruzioni per l'usoFamiglie e social media: istruzioni per l'uso
Famiglie e social media: istruzioni per l'usoGiovanni Gentili
 
Cyberbullismo e molestie on line
Cyberbullismo e molestie on line Cyberbullismo e molestie on line
Cyberbullismo e molestie on line Emma Pietrafesa
 
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...Simone Aliprandi
 
Internet a misura di bambino
Internet a misura di bambinoInternet a misura di bambino
Internet a misura di bambinoMarco Marcellini
 
IT's possible. IT's an opportunity
IT's possible. IT's an opportunityIT's possible. IT's an opportunity
IT's possible. IT's an opportunityPierfranco Ravotto
 
Storie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitoriStorie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitoriCSP Scarl
 

Similar to Il Linguaggio dell'Odio sui Social Network (20)

Cmplx school spoleto_ve_reti3su3_22ago2016
Cmplx school spoleto_ve_reti3su3_22ago2016Cmplx school spoleto_ve_reti3su3_22ago2016
Cmplx school spoleto_ve_reti3su3_22ago2016
 
Lm terni pietrafesa_consapevolezza_uso
Lm terni pietrafesa_consapevolezza_usoLm terni pietrafesa_consapevolezza_uso
Lm terni pietrafesa_consapevolezza_uso
 
Uso consapevole della Rete
Uso consapevole della Rete Uso consapevole della Rete
Uso consapevole della Rete
 
Mauro Alovisio bullismo e cyberbullismo odg milano
Mauro Alovisio  bullismo e cyberbullismo  odg milanoMauro Alovisio  bullismo e cyberbullismo  odg milano
Mauro Alovisio bullismo e cyberbullismo odg milano
 
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?�Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?�
Google Glass & Privacy: quali i rischi futuri per i nostri dati personali?
 
The Italian Hate Map - Matera
The Italian Hate Map - MateraThe Italian Hate Map - Matera
The Italian Hate Map - Matera
 
SCIENCE 2.0 Scientific research in the time of social media
SCIENCE 2.0 Scientific research in the time of social mediaSCIENCE 2.0 Scientific research in the time of social media
SCIENCE 2.0 Scientific research in the time of social media
 
Social Network ed adolescenti
Social Network ed adolescenti Social Network ed adolescenti
Social Network ed adolescenti
 
Facebook e lo studente
Facebook e lo studenteFacebook e lo studente
Facebook e lo studente
 
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo
#eprivacy 2014 Educazione digitale e cyberbullismo Avv.longo
 
Amicizia su Internet
Amicizia su InternetAmicizia su Internet
Amicizia su Internet
 
Storie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesseStorie dal futuro: persone e cose sempre connesse
Storie dal futuro: persone e cose sempre connesse
 
Informatica umanistica 2016-3
Informatica umanistica   2016-3Informatica umanistica   2016-3
Informatica umanistica 2016-3
 
Reti, memetica e contagio di idee e comportamenti - parte 3/3
Reti, memetica e contagio di idee e comportamenti - parte 3/3Reti, memetica e contagio di idee e comportamenti - parte 3/3
Reti, memetica e contagio di idee e comportamenti - parte 3/3
 
Famiglie e social media: istruzioni per l'uso
Famiglie e social media: istruzioni per l'usoFamiglie e social media: istruzioni per l'uso
Famiglie e social media: istruzioni per l'uso
 
Cyberbullismo e molestie on line
Cyberbullismo e molestie on line Cyberbullismo e molestie on line
Cyberbullismo e molestie on line
 
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...
PSND; E-security e privacy; Educazione ai social media (formazione docenti) -...
 
Internet a misura di bambino
Internet a misura di bambinoInternet a misura di bambino
Internet a misura di bambino
 
IT's possible. IT's an opportunity
IT's possible. IT's an opportunityIT's possible. IT's an opportunity
IT's possible. IT's an opportunity
 
Storie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitoriStorie dal futuro: persone e cose sempre connesse - per genitori
Storie dal futuro: persone e cose sempre connesse - per genitori
 

More from Cataldo Musto

MyrrorBot: a Digital Assistant Based on Holistic User Models for Personalize...
MyrrorBot: a Digital Assistant Based on Holistic User Models forPersonalize...MyrrorBot: a Digital Assistant Based on Holistic User Models forPersonalize...
MyrrorBot: a Digital Assistant Based on Holistic User Models for Personalize...Cataldo Musto
 
Fairness and Popularity Bias in Recommender Systems: an Empirical Evaluation
Fairness and Popularity Bias in Recommender Systems: an Empirical EvaluationFairness and Popularity Bias in Recommender Systems: an Empirical Evaluation
Fairness and Popularity Bias in Recommender Systems: an Empirical EvaluationCataldo Musto
 
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...Cataldo Musto
 
Exploring the Effects of Natural Language Justifications in Food Recommender ...
Exploring the Effects of Natural Language Justifications in Food Recommender ...Exploring the Effects of Natural Language Justifications in Food Recommender ...
Exploring the Effects of Natural Language Justifications in Food Recommender ...Cataldo Musto
 
Exploiting Distributional Semantics Models for Natural Language Context-aware...
Exploiting Distributional Semantics Models for Natural Language Context-aware...Exploiting Distributional Semantics Models for Natural Language Context-aware...
Exploiting Distributional Semantics Models for Natural Language Context-aware...Cataldo Musto
 
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...Cataldo Musto
 
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...Cataldo Musto
 
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph Embeddings
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph EmbeddingsHybrid Semantics aware Recommendations Exploiting Knowledge Graph Embeddings
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph EmbeddingsCataldo Musto
 
Natural Language Justifications for Recommender Systems Exploiting Text Summa...
Natural Language Justifications for Recommender Systems Exploiting Text Summa...Natural Language Justifications for Recommender Systems Exploiting Text Summa...
Natural Language Justifications for Recommender Systems Exploiting Text Summa...Cataldo Musto
 
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA Risponde
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA RispondeL'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA Risponde
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA RispondeCataldo Musto
 
Explanation Strategies - Advances in Content-based Recommender System
Explanation Strategies - Advances in Content-based Recommender SystemExplanation Strategies - Advances in Content-based Recommender System
Explanation Strategies - Advances in Content-based Recommender SystemCataldo Musto
 
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...Cataldo Musto
 
ExpLOD: un framework per la generazione di spiegazioni per recommender system...
ExpLOD: un framework per la generazione di spiegazioni per recommender system...ExpLOD: un framework per la generazione di spiegazioni per recommender system...
ExpLOD: un framework per la generazione di spiegazioni per recommender system...Cataldo Musto
 
Myrror: una piattaforma per Holistic User Modeling e Quantified Self
Myrror: una piattaforma per Holistic User Modeling e Quantified SelfMyrror: una piattaforma per Holistic User Modeling e Quantified Self
Myrror: una piattaforma per Holistic User Modeling e Quantified SelfCataldo Musto
 
Semantic Holistic User Modeling for Personalized Access to Digital Content an...
Semantic Holistic User Modeling for Personalized Access to Digital Content an...Semantic Holistic User Modeling for Personalized Access to Digital Content an...
Semantic Holistic User Modeling for Personalized Access to Digital Content an...Cataldo Musto
 
Holistic User Modeling for Personalized Services in Smart Cities
Holistic User Modeling for Personalized Services in Smart CitiesHolistic User Modeling for Personalized Services in Smart Cities
Holistic User Modeling for Personalized Services in Smart CitiesCataldo Musto
 
A Framework for Holistic User Modeling Merging Heterogeneous Digital Footprints
A Framework for Holistic User Modeling Merging Heterogeneous Digital FootprintsA Framework for Holistic User Modeling Merging Heterogeneous Digital Footprints
A Framework for Holistic User Modeling Merging Heterogeneous Digital FootprintsCataldo Musto
 
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?Cataldo Musto
 
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...Cataldo Musto
 
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...Cataldo Musto
 

More from Cataldo Musto (20)

MyrrorBot: a Digital Assistant Based on Holistic User Models for Personalize...
MyrrorBot: a Digital Assistant Based on Holistic User Models forPersonalize...MyrrorBot: a Digital Assistant Based on Holistic User Models forPersonalize...
MyrrorBot: a Digital Assistant Based on Holistic User Models for Personalize...
 
Fairness and Popularity Bias in Recommender Systems: an Empirical Evaluation
Fairness and Popularity Bias in Recommender Systems: an Empirical EvaluationFairness and Popularity Bias in Recommender Systems: an Empirical Evaluation
Fairness and Popularity Bias in Recommender Systems: an Empirical Evaluation
 
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...
Intelligenza Artificiale e Social Media - Monitoraggio della Farnesina e La M...
 
Exploring the Effects of Natural Language Justifications in Food Recommender ...
Exploring the Effects of Natural Language Justifications in Food Recommender ...Exploring the Effects of Natural Language Justifications in Food Recommender ...
Exploring the Effects of Natural Language Justifications in Food Recommender ...
 
Exploiting Distributional Semantics Models for Natural Language Context-aware...
Exploiting Distributional Semantics Models for Natural Language Context-aware...Exploiting Distributional Semantics Models for Natural Language Context-aware...
Exploiting Distributional Semantics Models for Natural Language Context-aware...
 
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...
Towards a Knowledge-aware Food Recommender System Exploiting Holistic User Mo...
 
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...
Towards Queryable User Profiles: Introducing Conversational Agents in a Platf...
 
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph Embeddings
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph EmbeddingsHybrid Semantics aware Recommendations Exploiting Knowledge Graph Embeddings
Hybrid Semantics aware Recommendations Exploiting Knowledge Graph Embeddings
 
Natural Language Justifications for Recommender Systems Exploiting Text Summa...
Natural Language Justifications for Recommender Systems Exploiting Text Summa...Natural Language Justifications for Recommender Systems Exploiting Text Summa...
Natural Language Justifications for Recommender Systems Exploiting Text Summa...
 
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA Risponde
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA RispondeL'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA Risponde
L'IA per l'Empowerment del Cittadino: Hate Map, Myrror, PA Risponde
 
Explanation Strategies - Advances in Content-based Recommender System
Explanation Strategies - Advances in Content-based Recommender SystemExplanation Strategies - Advances in Content-based Recommender System
Explanation Strategies - Advances in Content-based Recommender System
 
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...
Justifying Recommendations through Aspect-based Sentiment Analysis of Users R...
 
ExpLOD: un framework per la generazione di spiegazioni per recommender system...
ExpLOD: un framework per la generazione di spiegazioni per recommender system...ExpLOD: un framework per la generazione di spiegazioni per recommender system...
ExpLOD: un framework per la generazione di spiegazioni per recommender system...
 
Myrror: una piattaforma per Holistic User Modeling e Quantified Self
Myrror: una piattaforma per Holistic User Modeling e Quantified SelfMyrror: una piattaforma per Holistic User Modeling e Quantified Self
Myrror: una piattaforma per Holistic User Modeling e Quantified Self
 
Semantic Holistic User Modeling for Personalized Access to Digital Content an...
Semantic Holistic User Modeling for Personalized Access to Digital Content an...Semantic Holistic User Modeling for Personalized Access to Digital Content an...
Semantic Holistic User Modeling for Personalized Access to Digital Content an...
 
Holistic User Modeling for Personalized Services in Smart Cities
Holistic User Modeling for Personalized Services in Smart CitiesHolistic User Modeling for Personalized Services in Smart Cities
Holistic User Modeling for Personalized Services in Smart Cities
 
A Framework for Holistic User Modeling Merging Heterogeneous Digital Footprints
A Framework for Holistic User Modeling Merging Heterogeneous Digital FootprintsA Framework for Holistic User Modeling Merging Heterogeneous Digital Footprints
A Framework for Holistic User Modeling Merging Heterogeneous Digital Footprints
 
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?
eHealth, mHealth in Otorinolaringoiatria: innovazioni dirompenti o disastrose?
 
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
 
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...
A Multi-Criteria Recommender System Exploiting Aspect-based Sentiment Analysi...
 

Il Linguaggio dell'Odio sui Social Network

  • 1. IL LINGUAGGIO DELL’ODIO SUI SOCIAL NETWORK Cataldo Musto Università degli Studi di Bari – Dipartimento di Informatica Liceo Scientifico Statale ‘Piero Bottoni’ – Milano Progetto Alternanza Scuola-Lavoro «Una bussola contro l’intolleranza» 17 Gennaio 2018
  • 4. Chi sono @UniBa Semantic Web Access and Personalization http://www.di.uniba.it/~swap
  • 5. Chi sono @UniBa Semantic Web Access and Personalization http://www.di.uniba.it/~swap
  • 6. Chi sono @UniBa Semantic Web Access and Personalization http://www.di.uniba.it/~swap
  • 8. Chi sono @UniBa Semantic Web Access and Personalization http://www.di.uniba.it/~swap
  • 13. La Mappa dell’Intolleranza Silvia Brena Prof. Giovanni Semeraro Cataldo Musto Prof. Vittorio Lingiardi Nicola Carone Prof.ssa Marilisa D’Amico Cecilia Siccardi
  • 14. La Mappa dell’Intolleranza – Obiettivo Analizzare i contenuti pubblicati in Rete, individuare post di natura intollerante (omofoba, razzista, sessista, etc.) e geo-localizzare questi contenuti.
  • 15. La Mappa dell’Intolleranza – La Genesi (American) Hate Map Progetto della Humboldt State University http://users.humboldt.edu/mstephens/hate/hate_map.html
  • 17. La Mappa dell’Intolleranza – La Genesi 1854 John Snow utilizza una mappa per analizzare le cause dell’epidemia di colera di Londra
  • 18. 1854  2018 Cosa è cambiato in 164 anni ?
  • 19. A desk in the 80s
  • 22.
  • 23. Cosa è cambiato? Paradigmi comportamentali consolidati sono stati radicalmente modificati dall’uso delle nuove tecnologie (Conclave 2005 vs Conclave 2013)
  • 24. Cosa è cambiato? Paradigmi comportamentali consolidati sono stati radicalmente modificati dall’uso delle nuove tecnologie
  • 26. Social Networks Meccanismi per la costruzione di relazioni sociali (es. amicizia) sono stati radicalmente stravolti dai social networks
  • 28. Social Networks I social network hanno cambiato le modalità con cui condividiamo, produciamo ed acquisiamo le informazioni
  • 29. Teoria dei Sei Gradi di Separazione Ogni persona sulla Terra è collegata a qualunque altra attraverso un «percorso» di cinque persone https://it.wikipedia.org/wiki/Sei_gradi_di_separazione
  • 30. Teoria dei Sei Gradi di Separazione Ogni persona sulla Terra è collegata a qualunque altra attraverso un «percorso» di cinque persone Su Facebook: 4.74 (nel 2011) https://it.wikipedia.org/wiki/Sei_gradi_di_separazione
  • 31. Numero di Dunbar Numero medio di «connessioni» attive nel corso della vita: 150 Quanti amici avete su Facebook?
  • 33. Social Networks I social network agiscono da enormi «contenitori» di dati
  • 34. Social Networks I social network vengono quotidianamente utilizzati per condividere informazioni su gusti, preferenze, relazioni sociali, sensazioni, etc.
  • 36. Social Networks Black Mirror episodio 3x01 I social networks dicono chi sei?
  • 38.
  • 39. Quali sono le conseguenze?
  • 40. Informazione prodotta in un minuto sul Web
  • 41. Dati prodotti in un anno
  • 42. Trend 2010  2020 Dati Prodotti in un anno
  • 43. 67% delle persone controlla il proprio telefono anche se non ci sono notifiche 29% delle persone sostiene di non poter vivere senza il proprio telefono (2012)
  • 44.
  • 45. (Source: Adrian C.Ott, The 24-hour customer) we can handle 126 bits of information/day we deal with 393bits of information/day ratio: more than 3x Information Overload
  • 46. … in digital life Information Overload
  • 47. … in digital life Information Overload (4482 sneakers!)
  • 49. Paradox of Choice (Barry Schwartz) https://www.ted.com/talks/barry_schwartz_on_the_paradox_of_choice?language=it Information Overload
  • 50.
  • 52.
  • 53. Risalire la Piramide della Conoscenza
  • 54. Risalire la Piramide della Conoscenza
  • 55. Risalire la Piramide della Conoscenza
  • 56. Risalire la Piramide della Conoscenza
  • 57. Risalire la Piramide della Conoscenza
  • 58. Risalire la Piramide della Conoscenza
  • 59. (Francis Bacon, 17° secolo) Scientia Potentia Est Knowledge is power!
  • 60. La conoscenza (e dunque il potere) è nei dati!
  • 61. Dove è oggi la conoscenza?
  • 63. I possessori della conoscenza, oggi
  • 64.
  • 65. Asimmetria Informativa “Information asymmetry deals with the study of decisions in transactions where one party has more or better information than the other. This creates an imbalance of power in transactions” J.Stiglitz Nobel Prize 2001 I processi decisionali (e gli algoritmi) basati su «conoscenza» estratta dai dati sono un’applicazione concreta del principio dell’Asimmetria Informativa
  • 66. Applicazioni…basate su asimmetria informativa “A team of scientists, engineers and technicians from Google, all volunteers, is cooperating with UNICEF to cross all this data to other elements, ranging from weather conditions to travel flows, and as a result identify and view any new outbreaks.”
  • 68. Prevenzione dei crimini - Londra Significative Riduzioni nel Numero di Furti (-33%), Crimini (-21%) e violazioni di proprietà privata (-12%). Applicazioni…basate su asimmetria informativa
  • 69. Algoritmi  Microscopi L’introduzione di algoritmi per l’estrazione e l’analisi di contenuti prodotti in Rete ha la valenza dell’introduzione del microscopio Micro-fenomeni, apparentemente complessi da spiegare, possono essere analizzati con nuove chiavi di lettura!
  • 77. Dove stiamo andando? La Rete è oggi simile al Panopticon? Progetto di Prigione (Jeremy Bentham, 1871)
  • 78. La Mappa dell’Intolleranza La «nostra» asimmetria informativa
  • 79.
  • 80. Perché una «Mappa» dell’Intolleranza? • 7 giovani su 10 (69,9%) l’hanno sperimentato in prima persona • il 90% degli intervistati (89,4%) ne ha un’opinione negativa. • 13% ammette di aver insultato un Vip sui social network almeno una volta. • Solo il 21% lo disapprova totalmente gli insulti nei confronti dei vip e meno del 10% segnalerebbe alla piattaforma il contenuto offensivo • il 10% degli intervistati dice di aver rivolto insulti sul web a ragazzi della stessa età. • il 28% di quelli pronti a mettere alla gogna un coetaneo sul web non lo farebbe se avesse la persona di fronte. • Ancora meno se il destinatario del commento è un personaggio famoso: neanche 1 su 3 (il 32%) se la sentirebbe di ripetere quanto detto sul social al diretto interessato. Fonti: indagine dell’Osservatorio Giovani dell’Istituto Toniolo sul tema “Diffusione, uso, insidie dei social network” e Indagine di Generazioni Connesse realizzata da Skuola.net e Università di Firenze
  • 81.
  • 82.
  • 83. Risalire la Piramide della Conoscenza
  • 84. Risalire la Piramide della Conoscenza
  • 85. Risalire la Piramide della Conoscenza
  • 86. Risalire la Piramide della Conoscenza
  • 87. Risalire la Piramide della Conoscenza
  • 88. Metodologia Connessione ai Social Network Estrazione dei Contenuti Individuazione dei Tweet di natura intollerante Localizzazione dei Tweet Costruzione delle Mappe
  • 89. 1. Connessione ai Social Network Ogni social network offre degli strumenti (detti API, Application Programming Interface) per estrarre le informazioni prodotte sulle piattaforme.
  • 90. 2. Estrazione dei Contenuti Omofobia Antisemitismo Razzismo Violenza contro le Donne Disabilità Islamofobia Definizione delle «dimensioni dell’intolleranza»
  • 91. Con che criterio abbiamo estratto i Tweet? Come facciamo a capire se un Tweet è intollerante?
  • 92. 2. Estrazione dei Contenuti Definizione di un lessico per un ognuna delle dimensioni dell’intolleranza
  • 93. 2. Estrazione dei Contenuti 76 termini sensibili, definiti dal gruppo di psicologia dell’Università di Roma La Sapienza
  • 94. 2. Estrazione dei Contenuti
  • 95. 3. Individuazione dei Tweet intolleranti Problemi Semantica Ambigua Sentiment Positivo Tweet non Geolocalizzati
  • 96. 3. Individuazione dei Tweet intolleranti Semantica Ambigua
  • 97. 3. Individuazione dei Tweet intolleranti Semantica Ambigua Entrambi contengono la parola chiave «nano», ma solo il primo è un tweet di natura intollerante
  • 98. 3. Individuazione dei Tweet intolleranti Semantica Ambigua Entrambi contengono la parola chiave «nano», ma solo il primo è un tweet di natura intollerante
  • 99. 3. Individuazione dei Tweet intolleranti Semantica Ambigua I contenuti testuali possono avere una semantica ambigua. I computer non sono in grado di comprendere il significato dei contenuti.
  • 100. 3. Individuazione dei Tweet intolleranti Semantica Ambigua (evidenze recenti ☺)
  • 101. 3. Individuazione dei Tweet intolleranti Semantica Ambigua Soluzione: utilizzo di algoritmi di analisi semantica per la comprensione del testo e filtraggio dei Tweet non intolleranti.
  • 102. 3. Individuazione dei Tweet intolleranti Calcolo del ‘sentiment’ I contenuti postati in Rete hanno un sentiment (una polarità) associata. Ovviamente siamo interessati ai contenuti aventi polarità negativa!
  • 103. 3. Individuazione dei Tweet intolleranti Calcolo del ‘sentiment’ Entrambi contengono la parola chiave «nano», ma solo il primo è un tweet di natura intollerante. Il secondo Tweet è ironico.
  • 104. 3. Individuazione dei Tweet intolleranti Calcolo del ‘sentiment’ Soluzione: utilizzo di algoritmi di «sentiment analysis» per la comprensione della «polarità» del testo e filtraggio dei Tweet non intolleranti.
  • 105. 4. Geo-localizzazione dei contenuti Soluzione: utilizzo di semplici tecniche per la localizzazione dei contenuti, al fine di aumentare il numero di Tweet geolocalizzati Problema: una piccolissima percentuale dei Tweet contiene informazioni sulla localizzazione
  • 106. 5. Generazione delle Mappe Anno Tweet Totali Tweet Geo 2015 ~2 milioni ~40k 2016 ~3 milioni ~110k
  • 107. 5. Generazione delle Mappe Violenza contro le Donne Disabilità Razzismo Anti-Semitismo (mappe edizione 2015)
  • 108. 5. Generazione delle Mappe Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di picchi di Tweet intolleranti
  • 109. 5. Generazione delle Mappe Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di picchi di Tweet intolleranti
  • 110. 5. Generazione delle Mappe Oltre alle mappe, sono state prodotte delle analisi linguistiche e temporali che ci hanno permesso di analizzare meglio le dinamiche degli utenti in corrispondenza di picchi di Tweet intolleranti
  • 112. CrowdPulse Una piattaforma per l’analisi semantica di contenuti sociali
  • 114. CrowdPulse Permette di visualizzare i risultati delle analisi e delle estrazioni dati (es. mappe, grafici temporali, tag cloud dei termini, etc.)
  • 115. CrowdPulse Permette di generare le analisi creando dei «progetti»
  • 116. CrowdPulse  La piattaforma è basata sul concetto di plug-in  Un plug-in è un piccolo programma che effettua delle operazioni  Immaginiamolo come un mattoncino Lego
  • 117. CrowdPulse  La piattaforma è basata sul concetto di plug-in  Un plug-in è un piccolo programma che effettua delle operazioni  Immaginiamolo come un mattoncino Lego  Esempi di plug-in disponibili  Estrazione messaggi da Twitter  Estrazione post da Facebook  Riconoscimento della Lingua  Elaborazione e Analisi del Testo  Identificazione del «topic» (politica, sport, tecnologia, etc.)  Sentiment Analysis  Geolocalizzazione degli Utenti  Geolocalizzazione dei Contenuti  etc…
  • 119. CrowdPulse  Come utilizziamo i plug-in ?  La piattaforma è basata sul concetto di progetto  Un progetto è una sequenza di plug-in, ordinati in modo da permetterci di ottenere il risultato che ci interessa
  • 120. CrowdPulse Sulla sinistra abbiamo l’elenco dei progetti. Cliccando sul nome è possibile visualizzare il contenuto dei progetti (i plug-in e l’ordine in cui devono essere eseguiti).
  • 122. CrowdPulse Terminata la definizione del progetto, si clicca su «Save» in alto e poi su «Run» in basso. Il progetto è in esecuzione!
  • 123. CrowdPulse Terminata la definizione del progetto, si clicca su «Save» in alto e poi su «Run» in basso. Il progetto è in esecuzione! Una volta lanciato il progetto, possiamo controllare la sua esecuzione. Cliccando su «Runs e Logs» si possono controllare le singole esecuzioni del progetto. In alto abbiamo quelle attualmente in esecuzione (Now Running), in basso quelle che sono state eseguite in passato (Past Executions)
  • 124. CrowdPulse Cliccando sul nome del progetto è possibile leggere dei dettagli relativi all’esecuzione del progetto.
  • 125. CrowdPulse Quando l’esecuzione del progetto è completata, verrà visualizzata la scritta «Execution: Completed» e il progetto finirà nell’elenco delle Past Executions.
  • 126. Come costruiamo un progetto?
  • 127. CrowdPulse – Un esempio di progetto Social Extractor Data Persister
  • 128. CrowdPulse – Un esempio di progetto Social Extractor Data Persister Questo è il più semplice progetto CrowdPulse. Estraiamo dei dati e li salviamo sul nostro computer, per poterli visualizzare.
  • 129. CrowdPulse – Un esempio di progetto Social Extractor Data Persister Nel gergo di CrowdPulse ogni plug-in che vogliamo inserire in un progetto si chiama «nodo» , mentre invece la sequenza di operazioni si definisce in funzione di alcuni «archi» che collegano dei nodi.
  • 130. CrowdPulse – Un esempio di progetto Social Extractor Data Persister Come si traduce tutto questo in CrowdPulse?
  • 132. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti
  • 133. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti process  definisce il nome del progetto e il nome del file su cui salvare il «log» di esecuzione
  • 134. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti process  definisce il nome del progetto e il nome del file su cui salvare il «log» di esecuzione nodes  indica quali sono i plug-in che vogliamo utilizzare
  • 135. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti process  definisce il nome del progetto e il nome del file su cui salvare il «log» di esecuzione nodes  indica quali sono i plug-in che vogliamo utilizzare
  • 136. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti process  definisce il nome del progetto e il nome del file su cui salvare il «log» di esecuzione nodes  indica quali sono i plug-in che vogliamo utilizzare
  • 137. Un progetto CrowdPulse Ogni progetto CrowdPulse è composto da tre parti process  definisce il nome del progetto e il nome del file su cui salvare il «log» di esecuzione nodes  indica quali sono i plug-in che vogliamo utilizzare edges  indica qual è l’ordine con cui vengono eseguiti
  • 138. Proviamo a costruire un progetto insieme!
  • 139. CrowdPulse – Una «piccola» HateMap Social Extractor Text Processing Sentiment Analysis Geolocalization Data Persister
  • 141. Tutorial 1 Plug-in di Estrazione Dati da Twitter
  • 142. Social Extractor Text Processing Sentiment Analysis Geolocalization Data Persister Step 1: Estrazione Dati da Twitter
  • 145. Social Extractor Source Extraction Heuristics Step 2: Definire i criteri Content User Geo #democrats #www2015 @barack_obama @comunefi #earthquake #traffic Content+Geo Page Group
  • 146. Social Extractor Source Extraction Heuristics Step 2: Definire i criteri Content User Geo #democrats #www2015 @barack_obama @comunefi #earthquake #traffic Content+Geo Page Group
  • 148. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
  • 149. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction»
  • 150. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi?
  • 151. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi? Estrazione dei Messaggi (Tweet) Salvataggio dei Mesaggi (Tweet)
  • 152. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi? Estrazione dei Messaggi (Tweet) Salvataggio dei Mesaggi (Tweet) Come possiamo modificare il progetto?
  • 153. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi? Estrazione dei Messaggi (Tweet) Salvataggio dei Mesaggi (Tweet) Come possiamo modificare il progetto? 1) Definite il vostro lessico IMPORTANTE: separate le parole con la virgola. L’ultima parola non deve avere la virgola!
  • 154. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Omofobia Antisemitismo Razzismo Violenza contro le Donne Disabilità Islamofobia Suggerimento: scegliete un aspetto che volete analizzare e definite il vostro lessico! Anche 5-10 termini sono sufficienti
  • 155. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi? Estrazione dei Messaggi (Tweet) Salvataggio dei Mesaggi (Tweet) Come possiamo modificare il progetto? 2) Date un nome al progetto in corrispondenza della voce ‘db’ IMPORTANTE: ricordatelo perché servira nei prossimi passi (es. «mappa-cataldo»)
  • 156. Tutorial 1 – Estrazione Dati Cliccando su «Admin» troverete un progetto «tutorial-1-extraction» Quali sono i nodi? Estrazione dei Messaggi (Tweet) Salvataggio dei Mesaggi (Tweet) 3) Cliccate su «Save» in alto e poi premete il bottone «Run» in basso Avete appena lanciato il vostro primo progetto ☺
  • 157. Tutorial 1 – Estsrazione Dati Una volta lanciato, potete controllarne l’esecuzione. Attendete qualche minuto il completamento dell’esecuzione!
  • 159. Tutorial 1 – Estrazione Dati Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
  • 160. Tutorial 1 – Estrazione Dati Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Cliccate su ‘Data Visualization’
  • 161. Tutorial 1 – Estrazione Dati Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Selezionate ‘Message Timeline’
  • 162. Tutorial 1 – Estrazione Dati Cliccando su «View» possiamo cominciare a visualizzare i dati estratti In basso cliccate su ‘Database’ e selezionate il nome del progetto che avete indicato prima
  • 163. Tutorial 1 – Estrazione Dati Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Stiamo visualizzando quanti dati abbiamo estratto!
  • 164. Tutorial 2 Plug-in di Elaborazione del Testo
  • 166. Social Extractor Text Processing Sentiment Analysis Geolocalization Data Persister CrowdPulse – Text Processing A cosa ci serve elaborare il testo?
  • 167. CrowdPulse – Text Processing
  • 168. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer»
  • 169. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer» Quali sono i nodi? Recupero dei Tweet Tokenizzazione Salvataggio dei Tweet
  • 170. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer» Quali sono i nodi? Recupero dei Tweet Tokenizzazione????? Salvataggio dei Tweet
  • 171. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer» Quali sono i nodi? Recupero dei Tweet Tokenizzazione????? Salvataggio dei Tweet La tokenizzazione è l’operazione in cui un testo (es. un Tweet) viene suddiviso in singole parole, per poterle analizzare e visualizzare
  • 172. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer» Come modifichiamo il progetto?
  • 173. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2-tokenizer» Come modifichiamo il progetto? Sostituite il nome del vostro progetto a «inserire-nome-db». Salvate, lanciate e controllate l’esecuzione!
  • 174. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Cliccate su ‘Data Visualization’
  • 175. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Selezionate ‘Word Cloud’
  • 176. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti In basso cliccate su ‘Database’ e selezionate il nome del progetto che avete indicato prima
  • 177. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti
  • 178. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Il risultato è soddisfacente? No!
  • 179. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Il risultato è soddisfacente? No! Molte parole non significative sono inserite nella Word Cloud. Quali sono queste parole?
  • 180. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Il risultato è soddisfacente? No! Molte parole non significative sono inserite nella Word Cloud. Articoli, Avverbi, Congiunzioni…anche punteggiatura! Queste parole si chiamano STOP WORDS
  • 181. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Il risultato è soddisfacente? No! Molte parole non significative sono inserite nella Word Cloud. Dobbiamo eliminarle!
  • 182. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords»
  • 183. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords» Quali sono i nodi? Recupero dei Tweet Rimozione StopWords Salvataggio dei Tweet
  • 184. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords» Quali sono i nodi? Recupero dei Tweet Rimozione StopWords Salvataggio dei Tweet Come funziona? La rimozione delle stopwords confronta il testo con un «dizionario» di parole che non ci interessa visualizzare. Le parole di troppo vengono eliminate!
  • 185. Tutorial 2 – Elaborazione Testo Cliccando su «Admin» troverete un progetto «tutorial-2b-stopwords» Ricordate i modificare il nome! Sostituite il nome del vostro progetto a «inserire-nome-db». Salvate, lanciate e controllate l’esecuzione!
  • 186. Tutorial 2 – Elaborazione del Testo Cliccando su «View» possiamo cominciare a visualizzare i dati estratti Numerosi termini non rilevanti (es. «che», «non», etc.) sono stati eliminati, rendendo la visualizzazione molto più significativa
  • 187. Tutorial 3 Plug-in di Sentiment Analysis
  • 188. Social Extractor Text Processing Sentiment Analysis Geolocalization Data Persister CrowdPulse – Sentiment Analysis
  • 189. Sentiment Analysis Motivazioni Questo Tweet cerca di convogliare una «opinione» ?
  • 190. Sentiment Analysis Motivazioni Questo Tweet cerca di convogliare una «opinione» ? SI
  • 193. Sentiment Analysis Un esempio Sentiment: :-( In numerose applicazioni è di fondamentale importanza capire l’opinione degli individui verso ciò di cui parlano!
  • 194. Sentiment Analysis Cosa ci serve per sviluppare un algoritmo?
  • 195. Sentiment Analysis Cosa ci serve per sviluppare un algoritmo?
  • 196. Sentiment Analysis Lessici Sono dei vocabolari Che associano a ciascun termine uno score Questo score è detto «polarità» gioia ? rabbia ?
  • 197. Sentiment Analysis Lessici Sono dei vocabolari Che associano a ciascun termine uno score Questo score è detto «polarità» gioia +++ rabbia ---
  • 198. Sentiment Analysis Utilizzando questi «vocabolari» è possibile associare uno score a ciascun termine
  • 199. Sentiment Analysis Un semplice algoritmo  Intuizione  La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità delle frasi che la compongono.
  • 200. Sentiment Analysis Un semplice algoritmo  Intuizione  La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità delle frasi che la compongono.  Come ricaviamo le frasi?  Ogni qual volta identifichiamo un segno di punteggiatura o delle congiunzioni.
  • 201. Sentiment Analysis Un semplice algoritmo  Intuizione  La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità delle frasi che la compongono.  Come ricaviamo le frasi?  Ogni qual volta identifichiamo un segno di punteggiatura o delle congiunzioni.  Esempio  Non mi piace questo cibo, è terribile  Frasi = 2
  • 202. Sentiment Analysis Un semplice algoritmo  Intuizione  La polarità di un testo (es. un Tweet, o un post su Facebook) dipende dalla polarità delle frasi che la compongono.  Come ricaviamo le frasi?  Ogni qual volta identifichiamo un segno di punteggiatura o delle congiunzioni.  Esempio  Non mi piace questo cibo, è terribile  Frasi = 2 { {
  • 203. Sentiment Analysis Un semplice algoritmo  Come calcoliamo la polarità (il sentiment) ?  Il sentiment di un contenuto testuale è pari alla somma del sentiment delle frasi che la compongono  Intuitivamente: se in un testo abbiamo due frasi «positivi», l’intero testo sarà positivo. Viceversa se abbiamo una porzione di testo positiva e una negativa cerchiamo di capire qual è la parte «dominante»
  • 204. Sentiment Analysis Un semplice algoritmo  Come calcoliamo la polarità (il sentiment) ?  Il sentiment di un contenuto testuale è pari alla somma del sentiment delle frasi che la compongono  Intuitivamente: se in un testo abbiamo due frasi «positive», l’intero testo sarà positivo. Viceversa se abbiamo una porzione di testo positiva e una negativa cerchiamo di capire qual è la parte «dominante» pol(T) = ∑pol(fi) i=1 testo frasi F={f1…fk}
  • 205. Sentiment Analysis Un semplice algoritmo  Come si calcola la polarità di una frase?  Il sentiment di una frase è pari alla somma del sentiment delle parole che la compongono! pol(fi) = ∑score(tj) j=1 termine Ti={t1…tn}
  • 206. Sentiment Analysis Un semplice algoritmo  Come si calcola la polarità di una frase?  Il sentiment di una frase è pari alla somma del sentiment delle parole che la compongono!  Come calcoliamo score(tj) ?  Utilizzando i lessici ! pol(fi) = ∑score(tj) j=1 termine Ti={t1…tn}
  • 207. Sentiment Analysis Un semplice algoritmo  Come si calcola la polarità di una frase?  Il sentiment di una frase è pari alla somma del sentiment delle parole che la compongono!  Un banale algoritmo di sentiment analysis scorre i termini presenti in una frase, ignora quelli «neutri» e determina la polarità sommando la polarità dei singoli termini  Ovviamente l’algoritmo ha anche dei piccoli accorgimenti, ad esempio se viene trovata una negazione pol(fi) = ∑score(tj) j=1 termine Ti={t1…tn}
  • 208. Sentiment Analysis Esempi Frase Sentiment Non mi piace questo cibo, è terribile NEGATIVO Adoro questo ristorante POSITIVO Domani parto per Milano NEUTRO Mi piace la pizza, ma odio la verdura Bari è una città bellissima ma un po’ caotica Ma qui le metro non arrivano mai ?!? Davvero bello stare un’ora in coda. Mah!
  • 209. Sentiment Analysis Esempi Frase Sentiment Non mi piace questo cibo, è terribile NEGATIVO Adoro questo ristorante POSITIVO Domani parto per Milano NEUTRO Mi piace la pizza, ma odio la verdura NEUTRO Bari è una città bellissima ma un po’ caotica Ma qui le metro non arrivano mai ?!? Davvero bello stare un’ora in coda. Mah!
  • 210. Sentiment Analysis Esempi Frase Sentiment Non mi piace questo cibo, è terribile NEGATIVO Adoro questo ristorante POSITIVO Domani parto per Milano NEUTRO Mi piace la pizza, ma odio la verdura NEUTRO Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO Ma qui le metro non arrivano mai ?!? Davvero bello stare un’ora in coda. Mah!
  • 211. Sentiment Analysis Esempi Frase Sentiment Non mi piace questo cibo, è terribile NEGATIVO Adoro questo ristorante POSITIVO Domani parto per Milano NEUTRO Mi piace la pizza, ma odio la verdura NEUTRO Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO Ma qui le metro non arrivano mai ?!? NEGATIVO Davvero bello stare un’ora in coda. Mah!
  • 212. Sentiment Analysis Esempi Frase Sentiment Non mi piace questo cibo, è terribile NEGATIVO Adoro questo ristorante POSITIVO Domani parto per Milano NEUTRO Mi piace la pizza, ma odio la verdura NEUTRO Bari è una città bellissima ma un po’ caotica LEGGERMENTE POSITIVO Ma qui le metro non arrivano mai ?!? NEGATIVO Davvero bello stare un’ora in coda. Mah! NEGATIVO Algoritmi così semplici non sono in grado di identificare correttamente il sentiment in presenza di ironia o in presenza di frasi senza termini «polarizzati». Sono necessari algoritmi più sofisticati!
  • 213. Calcoliamo il ‘sentiment’ dei nostri Tweet?
  • 214. Tutorial 3 – Calcolo del Sentiment Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment»
  • 215. Tutorial 3 – Calcolo del Sentiment Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment» Quali sono i nodi? Recupero dei Tweet Calcolo del Sentiment Salvataggio dei Tweet
  • 216. Tutorial 3 – Calcolo del Sentiment Cliccando su «Admin» troverete un progetto «tutorial-3-sentiment» Quali sono i nodi? Recupero dei Tweet Calcolo del Sentiment Salvataggio dei Tweet Come al solito modificate i nomi dei progetti, salvate e lanciate Controlliamo i risultati appena ha terminato!
  • 217. Tutorial 3 – Calcolo del Sentiment Clicchiamo su «View» per visualizzare i risultati Clicchiamo su «View»  e poi selezioniamo «Bar Chart» (grafico a barre) oppure «Pie Chart» (grafico a torta) nell’elenco dei grafici sotto la voce «Sentiment»
  • 218. Tutorial 3 – Calcolo del Sentiment Clicchiamo su «View» per visualizzare i risultati Selezioniamo il nome del progetto e poi visualizziamo i risultati!
  • 219. Tutorial 3 – Calcolo del Sentiment Clicchiamo su «View» per visualizzare i risultati
  • 220. Tutorial 3 – Calcolo del Sentiment Clicchiamo su «View» per visualizzare i risultati Cliccando invece su Timeline possiamo vedere l’evoluzione temporale
  • 221. Possiamo provare a fare delle analisi un po’ più complesse?
  • 222. Tutorial 3 – Calcolo del Sentiment In quali giorni si è utilizzato più spesso un termine? Quale è il sentiment associato? Clicchiamo su «filter on»  selezioniamo «tokens» e poi inseriamo nel campo «search» il nome del termine che ci interessa analizzare singolarmente
  • 223. Tutorial 3 – Calcolo del Sentiment In quali giorni si è utilizzato più spesso un termine? Quale è il sentiment associato? Attraverso questa visualizzazione possiamo vedere il «picco» delle menzioni di quel concetto nei dati estratti.
  • 224. Tutorial 4 Plug-in di Geo-localizzazione
  • 226. Tutorial 4 – Geolocalizzazione Contenuti Cliccando su «Admin» troverete un progetto «tutorial-4-geolocalization» Ricordate di modificare i nomi dei progetti (‘db’) prima di salvare e lanciare il progetto! Il progetto richiede molti minuti per la sua esecuzione!
  • 227. Tutorial 4 – Geolocalizzazione Contenuti Visualizzazione Risultati Selezioniamo «map» come tipologia di visualizzazione e poi selezioniamo il nostro progetto
  • 229. Conclusioni  I moderni strumenti informatici per l’estrazione e l’analisi dei dati permettono di analizzare fenomeni complessi con nuove chiavi di lettura!  Algoritmi = Microscopi!  Innumerevoli applicazioni e funzionalità  Monitoraggio brand  Profilazione Utente  Smart Cities
  • 230.