Progetto del corso "Intelligenza Artificiale" (UnimiB) con lo scopo di effettuare sentiment analysis delle recensioni dei musei e clustering delle stesse
3. 1. ANALISI DEL DOMINIO
Analisi feature e featured engineering
4. 4
ANALISI DEL DOMINIO - 1
4
Il turismo è sempre più condizionato dalle opinioni dei viaggiatori precedenti ed anche i musei
stanno risentendo molto di questo trend. Le recensioni online rappresentano un tassello
fondamentale delle strategie di marketing e di promozione di un luogo.
TripAdvisor è la piattaforma di informazioni sui viaggi più grande del mondo, sulla quale è possibile
esplorare centinaia di milioni di recensioni.
Tutte le strutture che possiedono almeno una recensione su TripAdvisor hanno un rating, ovvero un
giudizio espresso da un soggetto esterno. Sul portale preso in considerazione gli utenti possono
stabilire se una determinata attività è: Excellent, Very good, Average, Poor oppure Terrible.
5. 5
ANALISI DEL DOMINIO - 2
5
Esempio di una pagina di un museo su TripAdvisor:
Esempio di una recensione
di un museo su TripAdvisor:
6. 6
ANALISI DEL DOMINIO - 3
6
I dati di interesse sono stati acquisiti dal sito Kaggle – Your Home for Data Science: una comunità
online di data scientist e professionisti dell'apprendimento automatico.
Il dataset di partenza si trova a questo indirizzo:
https://www.kaggle.com/annecool37/museum-data
Si tratta di un insieme di file in lingua inglese denominato:
Museum reviews collected from TripAdvisor –
Museum name, type, location, review, rating, rank, etc.
7. 7
ANALISI FEATURE DEL DATASET - 1
7
Il file tripadvisor_merged.CSV contiene i dati dei musei e delle relative recensioni
pubblicate su TripAdvisor:
Tipo di dato Attributo
INTEGER ID
STRING
Address, description, lenghtofvisit,. Museumname, phone num,
country, state, rankpercentage
DECIMAL
Featurecount, langtitude, latitude, rank, rating, reviewcount,
totalthingstodo
BOOLEAN Artefatti (82 attributi)
DOUBLE
PreciseRating, quote_pol_mean, quote_sub_mean,
review_pol_mean, review_sub_mean (e altri 17 attributi)
8. 8
ANALISI FEATURE DEL DATASET - 2
8
Oltre a al dataset principale, sono presenti altri 6 file con estensione .JSON:
Nome del file .JSON Descrizione
museum_categories_world Definisce le diverse categorie assegnate a ogni museo
review_content_world Raccoglie le recensioni di ogni museo
review_content_world Raccoglie i titoli delle recensioni di ogni museo
tag_clouds_world
Raccoglie le parole maggiormente usate nelle recensioni di ogni
museo
traveler_rating_world
Raccoglie il numero di rating assegnato ad ogni museo per
categoria
traveler_type_world Raccoglie il numero di visitatori di ogni museo per categoria
9. 9
FEATURED ENGINEERING
9
Per ciascuno dei musei rappresentati nel dataset tripadvisor_merged, è possibile effettuare un
collegamento con i dati presenti all’interno dei file JSON per arricchirli ulteriormente.
Le informazioni aggiuntive sono:
● Le categorie assegnate al museo;
● Le singole recensioni del museo (e i titoli di ciascuna);
● Le parole maggiormente usate nelle recensioni;
● Il rating assegnato per categoria ad ogni museo;
● Il numero di visitatori per categoria di ogni museo.
11. APPRENDIMENTO SUPERVISIONATO
11
Un sistema di apprendimento supervisionato
deve essere in grado, dato un insieme di
esempi etichettati di associarli ad una corretta
classificazione.
L’obiettivo è quello di costruire una funzione a
partire dai dati (insieme di punti annotati) che
possa essere usata per prevedere la classe dei
nuovi casi.
Ci sono due categorie di approcci principali:
classificazione e regressione. In questo
progetto, viene utilizzata la classificazione.
Ogni etichetta aggiunta sui dati è una classe
discreta che identifica il giudizio di valore.
12. SENTIMENT ANALYSIS
12
La sentiment analysis è un campo dell'elaborazione del linguaggio naturale che si occupa di
costruire sistemi per l'identificazione ed estrazione di opinioni dal testo.
Lo scopo della sentiment analysis è determinare la polarità generale di un documento, ossia
classificarlo come positivo o negativo.
L’obiettivo principale di questa sentiment analysis è:
Partendo da una singola recensione di un museo,
decretare se tale museo può essere
classificato come “positivo” o “negativo”.
13. DATA COLLECTION, CLEANING AND PREPARATION
13
Sono stati analizzati 32 musei italiani.
Manipolazioni su due file del database:
1. tripadvisor_museum_world.csv: utilizzo dei valori di latitudine e longitudine;
2. review_content_world.json: sono stati individuati solamente i musei italiani.
Il file risultante dalla combinazione dei precedenti è italian_museums.csv, composto da 5 colonne:
L’ultima colonna relativa al Sentiment è stata calcolata suddividendo il valore PreciseRating in due
insiemi identici: i valori superiori alla media dei valori del Rating sono stati etichettati con classe
POS, mentre i valori inferiori con classe NEG.
ID (univoco) MuseumName Review PreciseRating
Sentiment
(POS/NEG)
15. MODEL DEEPENING - SNOWBALL STEMMER
Snowball è un linguaggio di elaborazione di
stringhe progettato per la creazione di algoritmi
di derivazione da utilizzare nel recupero delle
informazioni.
Lo stemming è un metodo che identifica la
radice delle parole per generalizzare le
operazioni di interrogazione e selezione.
Trasforma le parole nella loro forma flessa e più
generale.
L’algoritmo derivante Porter,
basato sulla lingua inglese,
permette di estrarre i termini
di interesse presenti all’interno del
documento pre-processato
15
16. MODEL DEEPENING - DECISION TREE
16
L'albero decisionale è un classico algoritmo di
analisi predittiva per risolvere problemi di
classificazione binaria o multinomiale.
Un albero di classificazione è un albero in cui
ogni nodo interno (non foglia) è etichettato
con una funzione di input.
Gli archi provenienti da un nodo etichettato
con una funzione sono etichettati con
ciascuno dei possibili valori della funzione.
Ogni foglia dell'albero è etichettata con una
classe o una distribuzione di probabilità sulle
classi.
17. RESULT AND TUNING - 1
17
I valori di interesse per determinare la bontà della sentiment analysis sono i seguenti:
NOME FORMULA/DEFINIZIONE
Recall TruePositive/(TruePositive+FalseNegative)
Precision TruePositive/(TruePositive+FalsePositive)
Sensitivity TruePositive/(TruePositive+FalseNegative)
Specifity TrueNegative/(TrueNegative+FalsePositive)
F-measure 2*(Precision*Recall)/(Precision+Recall)
Accuracy (TruePositive+TrueNegative)/(Total Number of Prediction)
Cohen’s kappa Grado di accuratezza e affidabilità in una classificazione
ROC curve
L’area sotto la curva ROC esprime il “potere diagnostico” del
test (“diagnosticity”)
22. APPRENDIMENTO NON SUPERVISIONATO
22
Un sistema di apprendimento non
supervisionato è una tecnica di
apprendimento automatico in cui la
macchina impara dall’esperienza, senza
avere esempi e risposte di riferimento.
A differenza dell’apprendimento
supervisionato, i dati non sono annotati e
per apprendere la macchina deve estrarre le
informazioni rilevanti dai dati.
Il clustering è una delle principali tecniche di
apprendimento non supervisionato che
consiste in un insieme di metodi per
raggruppare i dati in classi omogenee.
23. K-MEANS
23
Un algoritmo di clustering di tipo partizionale è K-Means. Quando si applica questo algoritmo
bisogna conoscere a priori in quanti gruppi si vuole suddividere l’insieme.
Le funzioni chiave del cluster sono quelle relative alla similarità ed alla distanza.
L’obiettivo principale di questo clustering è:
Assegnare ogni museo al cluster corretto, basandosi su diversi
parametri come: PreciseRating, quote_pol_mean,
quote_sub_mean, review_pol_mean, review_sub_mean e class
24. DATA COLLECTION, CLEANING AND PREPARATION
24
La manipolazione eseguita sul file tripadvisor_merged.csv è composta da due fasi:
● Filtraggio: mediante Column filter, sono state filtrate le colonne di interesse della tabella;
● Assegnazione di una classe tramite delle regole: ad ogni riga è stata assegnata una classe
tramite il proprio valore di PreciseRating, compreso tra 2.781 e 4.964. Per dividere i musei in 5
classi è stata presa come unità 0.4366.
Il file risultante dalla manipolazione è tripadvisor_merged_class.csv, composto da 8 colonne:
ID MuseumName
Precise
Rating
quote_
pol_mean
quote_
sub_mean
review_
pol_mean
review_
sub_mea
n
class
26. MODEL DEEPENING – K-MEANS
26
K-Means permette di suddividere un insieme di oggetti in K gruppi sulla base dei loro attributi,
utilizzando la distanza euclidea.
Vengono generati i centri del cluster per un numero predefinito di cluster.
L’algoritmo esegue un cluster che assegna un vettore di dati a un cluster e termina quando le
assegnazioni del cluster non cambiano più.
28. Alcuni dei risultati delle altre opzioni di partizione:
Take from the top:
Partitioning Correct Wrong Accuracy Error Cohen’s kappa
95% 80 0 100% 0% ?
50% 317 476 39.97% 60.02% 0
25% 317 872 26.66% 73.39% 0
Linear sampling:
Partitioning Correct Wrong Accuracy Error Cohen’s kappa
95% 79 1 98.75% 1.25% 0.98
50% 784 9 98.86% 1.13% 0.98
25% 1216 52 95.89% 4.10% 0.94
Stratified sampling:
Partitioning Correct Wrong Accuracy Error Cohen’s kappa
95% 80 0 100% 0% 1
50% 736 57 92.81% 7.18% 0.91
25% 880 309 74.01% 25.98% 0.67
RESULT AND TUNING - 2
28
29. RESULT DISCUSSION - 1
29
Scatter plot e tabella dello scorer del miglior risultato ottenuto con partizione draw sampling.
Sull’asse x troviamo il PreciseRating e sull’asse y review_pol_mean.
Partitioning= 90%, accuracy = 100%
Class/
Cluster
Terrible Poor Average
Very
good
Excellent
Terrible 15 0 0 0 0
Poor 0 15 0 0 0
Average 0 0 17 0 0
Very good 0 0 0 14 0
Excellent 0 0 0 0 19
30. RESULT DISCUSSION - 2
30
Scatter plot e tabella dello scorer di uno dei risultati intermedi con partizione draw sampling.
Sull’asse x troviamo il PreciseRating e sull’asse y review_pol_mean.
Partitioning= 50%, accuracy = 93,06%
Class/
Cluster
Terrible Poor Average
Very
good
Excellent
Terrible 149 13 0 0 0
Poor 0 134 20 0 0
Average 0 0 131 14 0
Very good 0 0 0 153 8
Excellent 0 0 0 0 171
31. RESULT DISCUSSION - 3
31
Scatter plot e tabella dello scorer del risultato peggiore ottenuto con partizione draw sampling.
Sull’asse x troviamo il PreciseRating e sull’asse y review_pol_mean.
Partitioning= 20%, accuracy = 86,19%
Class/
Cluster
Terrible Poor Average
Very
good
Excellent
Terrible 233 23 0 0 0
Poor 0 207 44 0 0
Average 0 0 188 60 0
Very good 0 0 0 205 48
Excellent 0 0 0 0 260
33. K-MEDOIDS
33
K-Medoids è un altro algoritmo di clustering partizionale, correlato a K-Means ma più robusto al
rumore e agli outlier. K-Medoids si basa sul calcolo della distanza per individuare i punti centrali del
cluster.
L'algoritmo più utilizzato per la costruzione di cluster con K-Medoids è il Partitioning Around
Medoids (PAM).
L’obiettivo principale di questo clustering è:
Assegnare ogni museo al cluster corretto, basandosi su diversi
parametri come: PreciseRating, quote_pol_mean,
quote_sub_mean, review_pol_mean, review_sub_mean e class
35. MODEL DEEPENING - K-MEDOIDS
35
K-Medoids utilizza la distanza per calcolare i medoids, ovvero i punti più centrali dei K cluster,
dove K viene scelto a priori. Un medoide è quindi un punto di un cluster la cui dissimilarità media
rispetto a tutti gli oggetti nel cluster è minima.
In base ai dati di input, si possono utilizzare diversi tipi di distanze, le più comuni sono la distanza
euclidea e Manhattan.
L’algoritmo parte da un inizializzazione casuale dei medoidi e continua la sua esecuzione fino a
quando raggiunge una riduzione del costo negativa, a quel punto termina.
36. RESULT AND TUNING
36
La tabella riporta i risultati delle prove effettuate con K-Medoids per ottenere 5 cluster utilizzando
come metriche di distanza quella euclidea e Manhattan.
Distanza
utilizzata
Numero di
iterazioni
Correct
classified
Wrong
classified
Accuracy Error
Cohen’s
kappa
Euclidea 34 1578 7 99.55% 0.44% 0.99
Manhattan 23 1563 22 98.61% 1.38% 0.98
37. RESULT DISCUSSION - 1
37
Scatter plot e tabella dello scorer per le due metriche di distanza utilizzate.
Sull’asse x troviamo il PreciseRating e sull’asse y review_pol_mean.
Distanza euclidea
Class/
Cluster
Terrible Poor Average
Very
good
Excellent
Terrible 316 0 0 0 0
Poor 2 315 0 0 0
Average 0 2 315 0 0
Very good 0 0 2 316 0
Excellent 0 0 0 1 316
38. RESULT DISCUSSION - 2
38
Scatter plot e tabella dello scorer per le due metriche di distanza utilizzate.
Sull’asse x troviamo il PreciseRating e sull’asse y review_pol_mean.
Distanza Manhattan
Class/
Cluster
Terrible Poor Average
Very
good
Excellent
Terrible 316 0 0 0 0
Poor 9 308 0 0 0
Average 0 8 309 0 0
Very good 0 0 4 314 0
Excellent 0 0 0 1 316
40. APPLICAZIONI E SVILUPPI
40
40
Sentiment analysis:
● Individuare le parole maggiormente usate per recensire il museo in modo tale da identificare
gli eventuali punti di forza e/o problematiche;
● Creare un dataset più vasto, integrando altre recensioni per affinare i risultati e ottenerne di
maggiormente validi;
● Utilizzare raccolte di tag/parole chiave già reperibili online per svolgere lo stesso flusso anche
con recensioni differenti.
Apprendimento non supervisionato:
● Raggruppare diversi musei utilizzando altri parametri come ad esempio la tipologia di
visitatore (famiglie, coppie, singoli, per affari, con amici);
● Utilizzare al posto delle recensioni dei musei quelle relative a ristoranti, hotel e altre attività
che vengono recensite sul sito;
● Cercare un dataset con le recensioni delle città più grandi del mondo e assegnarle ad un
cluster basandosi sempre sui parametri presi in considerazione.
41. APPROCCI ALTERNATIVI - SUPERVISIONATO
41
41
Random Forest (sentiment analysis): è uno speciale classificatore formato da un insieme di
classificatori semplici, rappresentati come vettori random indipendenti e identicamente distribuiti,
dove ognuno di essi vota per la classe più popolare in input.
Alcuni risultati:
● 90%: accuracy: 0.719 (Decision Tree = 0.844)
● 85%: accuracy: 0.687 (Decision Tree = 0.708)
● 70%: accuracy: 0.686 (Decision Tree = 0.656)
● 55%: accuracy: 0.667 (Decision Tree = 0.576)
● 40% accuracy: 0.644 (Decision Tree = 0.586)
● 35% accuracy: 0.647 (Decision Tree = 0.570)
I risultati ottenuti per i settaggi elevati sono stati decisamente inferiori, mentre per quanto riguarda
i settaggi di partizione inferiori, i risultati sono migliori.
42. APPROCCI ALTERNATIVI - NON SUPERVISIONATO
42
42
● QT (Quality Threshold): si tratta di un metodo alternativo di partizionare i dati. Utilizzando
questo approccio, però, non solo non è richiesto di specificare il numero di cluster a priori, ma
è richiesta più potenza di calcolo rispetto al K-Means.
● DBSCAN (Density-Based Spatial Clustering of Applications with Noise): come l’algoritmo QT,
anche DBSCAN permette di effettuare un clustering senza conoscere a priori il numero di
cluster. Questo algoritmo si basa sulla densità perché trova il numero di cluster a partire dalla
distribuzione della densità stimata dei nodi corrispondenti. A differenza di K-Means, DBSCAN
necessita di un'attenta selezione dei suoi parametri e non funziona in maniera ottimale su
cluster con densità diverse.
43. APPROFONDIMENTO - CECILIA CONSOLI
43
43
Utilizzo di un ulteriore approccio di apprendimento automatico al flusso della sentiment analysis:
Neural Networks
L’obiettivo è quello di applicare l’approccio di apprendimento supervisionato tramite un modello di
rete neurale - MultiLayer Perceptron -per classificare un museo come “positivo” o “negativo”
partendo da una singola recensione.
Il MLP è un tipo di rete neurale feedforward: le connessioni tra le unità non formano cicli ma si
muovono in una sola direzione, in avanti, dal livello di input, attraverso il livello nascosto (o livelli
nascosti) fino al livello di output.
45. APPROFONDIMENTO - MULTILAYER PERCEPTRON
45
45
Nell’algoritmo del MLP l’output di uno strato è utilizzato come input per lo strato successivo: i
neuroni dello stesso livello non possono comunicare tra loro ma possono inviare segnali solo allo
strato successivo.
Una delle tecniche più diffuse per addestrare un MLP è l’algoritmo di backpropagation o retro-
propagazione dell’errore.
46. APPROFONDIMENTO - RESULT AND TUNING I
46
46
Alcuni dei risultati delle varie prove effettuate con partitioning 90%. Per ogni tipo di sampling, la prima
riga riporta i risultati ottenuti con i valori di default, la seconda quelli del parameter optimization loop.
Type of Sampling Hidden layers Hidden neurons Accuracy
Stratified sampling 1 10 71.88%
Stratified sampling 1 10 75%
Draw randomly 1 10 71.88%
Draw randomly 2 14 71.88%
Linear sampling 1 10 75%
Linear sampling 1 11 81.26%
Take from top 1 10 78.12%
Take from top 1 13 84.39%
47. APPROFONDIMENTO - RESULT AND TUNING II
47
47
Risultati delle varie prove effettuate con Cross Validation:
ID
N. of
validations
Type of
sampling
Correct
classified
Wrong
classified
Accuracy Error
Cohen’s
kappa
P1 10 Linear 223 95 70.12% 29.88% 0.40
P2 20 Linear 235 83 73.90% 26.10% 0.48
P3 10 Random 229 89 72.01% 27.99% 0.44
P4 20 Random 221 97 69.50% 30.50% 0.39
P5 10 Stratified 223 95 70.12% 29.88% 0.40
P6 20 Stratified 219 99 68.87% 31.13% 0.38
P7 /
Leave one
out
221 97 69.50% 30.50% 0.39
48. APPROFONDIMENTO - DISCUSSION I
48
48
Error plot e matrice di confusione del risultato migliore (p 90%)
Take from top (accuracy: 84.39%)
.
Document Class NEG POS
NEG 12 2
POS 5 13
49. APPROFONDIMENTO - DISCUSSION II
49
49
Error plot e matrice di confusione del risultato peggiore (p 30%)
Stratified sampling (accuracy: 60.09%)
.
Document Class NEG POS
NEG 69 42
POS 47 65