SlideShare a Scribd company logo
1 of 81
Download to read offline
Università degli studi di Torino
FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI
Corso di laurea in Informatica

Tecnologie semantiche per l'annotazione e l'analisi
del contenuto emozionale dei testi
(Semantic

techniques for the annotation and analysis
of emotional contents in text documents)

Relazione di Tirocinio

Relatore:
Prof. Daniele Paolo Radicioni

Anno Accademico 2010-2011

Candidato:
Stefano Peiretti
Ai miei genitori, a mio fratello Federico
e ai miei nonni, Salvatore e Maria,
per avermi aiutato e incoraggiato
nelle difficoltà incontrate in questi anni.
Al mio relatore, Prof. Daniele Paolo Radicioni,
per la disponibilità, la pazienza, l'incoraggiamento
e per avermi aiutato nell'implementazione
del sistema descritto e nella stesura di questa tesi.
Ai miei amici.
Indice
1 Introduzione...................................................................................................5
1.1 Descrizione del problema.......................................................................5
1.2 Motivazioni............................................................................................6
1.3 Argomenti trattati...................................................................................7
2 Sentiment Analysis.........................................................................................8
2.1 Fondamenti scientifici............................................................................9
2.1.1 Modello dell'Opinion Mining.........................................................9
2.1.2 Classificazione del sentimento.....................................................12
2.1.3 Opinion Mining basato sulle caratteristiche.................................13
2.2 Determinazione dell'orientamento dei termini.....................................19
2.3 Determinazione della soggettività dei termini.....................................20
2.4 Progetti per il Sentiment Analysis........................................................21
3 SentiWordNet e WordNet-Affect.................................................................21
3.1 WordNet...............................................................................................21
3.1.1 La nascita di WordNet..................................................................22
3.1.2 Forme di parole e significato........................................................23
3.1.3 Le relazioni di WordNet...............................................................24
3.1.4 I nomi di WordNet........................................................................25
3.1.5 Gli aggettivi di WordNet..............................................................30
3.1.6 I verbi di WordNet........................................................................30
3.2 Descrizione di SentiWordNet...............................................................31
3.2.1 Una breve storia di SentiWordNet................................................33
3.2.2 Lo sviluppo di SentiWordNet 3.0.................................................34
3.2.3 Struttura del database...................................................................37
3.3 Descrizione di WordNet-Affect............................................................40
3.3.1 Lo stato dell'arte dei lessici affettivi.............................................40
3.3.2 Lo sviluppo di WordNet-Affect e del suo nucleo.........................42
3.3.3 L'estensione del nucleo con le relazioni di WordNet...................44
4 Sviluppo del software..................................................................................46
4.1 Utilizzo del parser TUP........................................................................49
4.1.1 Sotto-moduli del parser................................................................50
4.1.2 Chunker........................................................................................50
4.1.3 Analisi della coordinazione..........................................................51
4.1.4 Dipendenze verbali.......................................................................52
4.2 Utilizzo di MultiWordNet....................................................................53
4.2.1 Descrizione di MultiWordNet......................................................55
4.2.2 Architettura del database..............................................................56
4.3 Implementazione dell'algoritmo di Lesk per la disambiguazione dei
termini polisemici (WSD)...........................................................................65
1
4.4 La griglia emozionale di Ekman..........................................................68
4.5 Un formato XML per l'output dell'annotatore......................................72
5 Conclusioni..................................................................................................75

2
Indice delle illustrazioni
Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche....................11
Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche.......................12
Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche ........12
Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese
per la costruzione del comparativo............................................................................16
Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del
comparativo...............................................................................................................17
Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del
comparativo...............................................................................................................17
Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese
per la costruzione del superlativo..............................................................................18
Figura 8: Matrice lessicale di WordNet......................................................................22
Figura 9: I synset primitivi........................................................................................28
Figura 10: Relazione tra concetti primitivi................................................................29
Figura 11: Relazione tra i nomi in WordNet..............................................................29
Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet..........31
Figura 13: Esempio di rappresentazione del termine “interesting”
in SentiWordNet........................................................................................................32
Figura 14: Esempio di rappresentazione dell'aggettivo “estimable”
in SentiWordNet........................................................................................................32
Figura 15: Esempio di rappresentazione del verbo “short” in SentiWordNet.............32
Figura 16: Struttura del data base di SentiWordNet...................................................38
Figura 17: Esempio di dati in SentiWordNet.............................................................38
Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet.......39
Figura 19: A-labels con i rispettivi synset di esempio................................................43
Figura 20: Categorie e termini...................................................................................44
Figura 21: Architettura del sistema TUP....................................................................49
Figura 22: Matrice lessicale multilingua di MultiWordNet........................................55
Figura 23: Architettura di MultiWordNet...................................................................56
Figura 24: Tipi di relazioni in MultiWordNet............................................................59
Figura 25: L'algoritmo di Lesk..................................................................................66
Figura 26: Come funziona il metodo disambiguate...................................................67
Figura 27: Formato del file XML creato dal programma...........................................73

3
Figura 28: Albero del file XML creato dal programma..............................................74
Figura 29: File XML creato dal programma dando in input un file con delle
recensioni..................................................................................................................74

4
1 Introduzione
In questa tesi sarà illustrato il lavoro di progettazione e realizzazione di un sistema
software per l'annotazione e l'analisi del contenuto emozionale dei testi.

1.1 Descrizione del problema
Il web contiene molte opinioni riguardo svariati argomenti (prodotti, personaggi
famosi, film, …) espresse in appositi siti. Di conseguenza, il problema del Sentiment
Analysis (chiamato anche Opinion Mining), di cui mi sono occupato principalmente
nel periodo di tirocinio, è stato oggetto di interesse in questi ultimi anni. Il materiale
usato per il test del programma, progettato e implementato durante il periodo di stage,
riguarda recensioni di film e di ristorazione.
I siti spesso associano dei meta-dati ad ogni recensione indicando quanto questa
sia positiva o negativa. Ma l'opinione del lettore può essere diversa da quella di colui
che ha scritto la recensione. Ad esempio, il giudizio del lettore potrebbe essere
influenzato dalla trama di un film, mentre i recensori potrebbero ritenere più
importanti altri aspetti, come i caratteri dei protagonisti. Di conseguenza, il lettore è
costretto a leggere molte recensioni fino a trovare quella che più gli interessa.
Il problema può essere suddiviso in quattro sotto-problemi:
•

Identificare le caratteristiche di un prodotto

•

Identificare le opinioni sulle caratteristiche

•

Determinare la polarità delle opinioni

•

Ordinare le opinioni sulla base delle loro intensità

Il sistema che ho progettato tratta solo un sottoinsieme di tutte le possibili

5
annotazioni semantiche dei meta-dati: in particolare al momento annota le coppie
<nome, aggettivo> e da ogni coppia costruisce una tripla <nome, aggettivo, griglia
dei valori delle emozioni che l'utente attribuisce a ogni coppia nome-aggettivo>. In
particolare, il sistema utilizza il TUP (Turin University Parser) per analizzare uno
stream continuo in input (letto da un file o da tastiera) in modo da determinare la sua
struttura grammaticale grazie ad una data grammatica formale.
L'obiettivo del tirocinio è stato quello di capire come possono essere classificate
le emozioni che compaiono in un testo di recensione e di sviluppare un programma
che sia in grado di acquisire le emozioni che l'utente percepisce dalla combinazione
nome-aggettivo, leggendo lo stream dato in input, tramite l'esplicita richiesta di
inserimento da tastiera. I risultati saranno salvati in un documento XML che conterrà
l'output prodotto dal software.

1.2 Motivazioni
Individuare, analizzare e annotare il contenuto emozionale dei testi è un problema
difficile soprattutto per i calcolatori, che possono commettere vari tipi di errori.
Errori nel giudicare l'opinione di una frase del tipo “Ho evitato un incidente” rispetto
all'opinione della frase “Ho causato un incidente”.
Il sistema sopra descritto si occupa di individuare e annotare in maniera
automatica solo le coppie nome-aggettivo presenti in una certa frase. Il sistema è
attualmente in fase di testing. L'individuazione di questi errori, commessi durante
l'elaborazione dei file, è molto importante sia per valutare le prestazioni del sistema
sia per correggere questi errori. Serve quindi uno strumento che permetta di
distinguere in maniera rapida e semplice la differenza tra frasi ambigue.

6
1.3 Argomenti trattati
La tesi si articola in:
Capitolo 1: Viene illustrato il Sentiment Analysis con i relativi studi effettuati, la
determinazione dell'orientamento e della soggettività dei termini e le soluzioni
possibili al problema.
Capitolo 2: Vengono presentati SentiWordNet e WordNet-Affect con un'excursus
su WordNet, il loro sviluppo, la classificazione dei sentimenti, i pregi e i difetti.
Capitolo 3: Viene spiegato il lavoro svolto durante il tirocinio. Si inizia con una
descrizione dei metodi usati e dei principi seguiti nella costruzione del software.
Segue la presentazione del TUP (Turin University Parser), di MultiWordNet, della
griglia emozionale usata per la memorizzazione dei valori delle emozioni, la struttura
dell'xml creato e il funzionamento del software per l'individuazione e l'analisi dei
sentimenti contenuti nei testi.
Capitolo 4: Contiene le conclusioni e i possibili lavori futuri sul programma
sviluppato durante il tirocinio.

7
2 Sentiment Analysis
Le informazioni testuali possono essere classificate in due categorie: i fatti e le
opinioni. I fatti sono affermazioni oggettive sulle entità e sugli eventi che accadono
quotidianamente. Le opinioni, invece, sono affermazioni soggettive che riflettono i
sentimenti e le percezioni delle persone sugli eventi.
Con il termine Sentiment Analysis ci si riferisce a un recente campo di ricerca nel
settore del Trattamento Automatico del Linguaggio il cui scopo è quello di
identificare e classificare informazioni di tipo soggettivo che possono essere presenti
all'interno di documenti testuali di vario tipo. Dato, quindi, un insieme di documenti
testuali che contengono pareri su un oggetto, si vogliono estrarre gli attributi e i
componenti dell'oggetto commentato in ogni documento e da questi si vuole
determinare se i commenti sono positivi., negativi o neutri.
Prima del WWW (World Wide Web), quando un individuo aveva bisogno di
prendere una decisione, chiedeva pareri a parenti e amici, mentre, quando
un'organizzazione aveva bisogno di trovare opinioni del pubblico sui suoi prodotti e
servizi conduceva delle interviste. Con l'avvento del Web si possono postare
recensioni di prodotti sui siti commerciali e i propri pareri sui forum, sulle
discussioni tra i gruppi e sui blog. Ma trovare opinioni sul Web può essere arduo
poiché esiste un gran numero di fonti e ognuna di esse contiene molte informazioni.
È molto difficile, quindi, per un lettore umano trovare le fonti, estrarne frasi
pertinenti, leggerle e a volte tradurle, riassumerle e organizzarle in forme utilizzabili.
Il Sentiment Analysis, conosciuto anche con il nome di Opinion Mining, nasce
con l'esigenza di rendere meno difficile all'utente la ricerca di opinioni sul Web. Le
ricerche in questo campo sono iniziate con l'individuare parole che esprimono un
sentimento (ad esempio grande, meraviglioso, disgustoso, orrido, bello,...) per poi
lavorare su tali parole identificando i loro orientamenti semantici e la loro
soggettività.

8
2.1 Fondamenti scientifici
2.1.1

Modello dell'Opinion Mining

In generale, le opinioni possono essere espresse su ogni cosa, ad esempio, un
prodotto, un servizio, un individuo, un'organizzazione o un evento.
Il termine “oggetto” è usato per denotare l'entità sulla quale si commenta. Un
oggetto è costituito da un insieme di componenti (o parti) e un insieme di attributi.
Ogni componente può anche avere i suoi sotto-componenti e il suo insieme di
attributi e così via. In questo modo l'oggetto può essere gerarchicamente decomposto
sulla base delle relazioni. Un oggetto è, quindi, un'identità che può essere un
prodotto, una persona, un evento o un'organizzazione. Esso è associato a una coppia,
O: (T, A) in cui T è una gerarchia o tassonomia di componenti (o parti) e
sotto-componenti di O, e A è un insieme di attributi di O. Ogni componente ha il suo
proprio insieme di sotto-componenti e attributi. In questa struttura gerarchica ad
albero, la radice è l'oggetto stesso. Ogni nodo è un componente o sotto-componente
dell'oggetto. Ogni link è una delle parti del rapporto e ogni nodo è associato a un
insieme di attributi. Un parere può essere espresso in qualsiasi nodo e su qualsiasi
attributo del nodo.
Il termine “caratteristiche” è usato per rappresentare entrambi i componenti e gli
attributi. Si noti che in questa definizione l'oggetto in sé è anche una caratteristica,
che è la radice dell'albero. Si considera quindi un documento d, che può essere una
recensione del prodotto, un post sul forum o un blog che valuta un particolare oggetto
O. Nel caso più generale, d è costituito da una sequenza di frasi d = <s 1, s2, …, sm>.
L'opinione, valutata su una caratteristica f di un oggetto O in un documento d, è un
gruppo di frasi, una di seguito all'altra, nello stesso documento d, che esprime
un'opinione positiva o negativa su f.

9
È possibile che una sequenza di frasi esprima un opinione su un oggetto o su una
sua caratteristica. È anche possibile che una singola frase esprima opinioni su più di
un oggetto o sulle sue caratteristiche. Un esempio può essere la frase “E il risultato
che si ottiene è ottimo, anche grazie all’alchimia che si è creata tra i due perfetti
protagonisti”.
L'orientamento semantico di un'opinione su una caratteristica f stabilisce se il
parere è positivo, negativo o neutro. Mettendo insieme le cose, possono essere
definiti un modello per un oggetto e un insieme di opinioni sulle caratteristiche
dell'oggetto. Tutto ciò si chiama il modello Opinion Mining basato sulle
caratteristiche: un oggetto O è rappresentato con un insieme finito di caratteristiche,
F={f1, f2, …, fn}, che include l'oggetto stesso. Ogni carattestica fi ∈ F può essere
espressa con un insieme finito di parole o frasi W i, che sono sinonimi. Cioè esiste un
insieme di insiemi di sinonimi W = {W1, W2, …, Wn} per le n caratteristiche. In un
documento d che valuta un oggetto O, un titolare j dell'opinione commenta su un
sottoinsieme di caratteristiche Sj ⊆ F. Per ogni caratteristica fk ∈ Sj sulla quale il
titolare j commenta, lui/lei sceglie una parola o una frase da W k per descrivere la
caratteristica ed esprime un'opinione positiva, negativa o neutra su f k. Il compito
dell'opinion mining è quello di scoprire tutte queste cose nascoste e pezzi di
informazione da un documento dato. L'output sarà un insieme di quadruple ognuna
delle quali è denotata da (H, O, f, SO), in cui H è il proprietario dell'opinione, O
l'oggetto, f la caratteristica dell'oggetto e SO è l'orientamento semantico dell'opinione
espressa sulla caratteristica f in un frase di d. Le opinioni neutre vengono ignorate
poiché non sono utili.
I problemi che possono essere identificati:
1. L'estrazione delle caratteristiche dell'oggetto che sono state commentate in
ogni documento d ∈ D.
2. Determinare se i pareri sulle caratteristiche sono positive, negative o neutre.

10
3. Raggruppamento dei sinonimi delle caratteristiche (come titolari di opinioni
diverse possono usare parole diverse o una frase per esprimere la stessa
caratteristica).
Ci sono molti modi di utilizzare i risultati del data mining. Un modo
semplice è quello di produrre una sintesi, basata sulle caratteristiche, dei
pareri sull'oggetto.

Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche

Questa figura riassume le opinioni in una serie di recensioni di una particolare
macchina fotografica digitale. I titolari dell'opinione sono stati omessi. Nella figura,
"CAMERA" rappresenta la macchina fotografica stessa (gerarchicamente, il nodo
radice dell'oggetto). 125 commenti hanno espresso pareri positivi e 7 giudizi negativi
sulla fotocamera. La "Qualità dell'immagine" e le "Dimensioni" sono due
caratteristiche del prodotto. 123 recensioni hanno espresso pareri positivi, e solo 6
recensioni negative sulla qualità delle immagini a differenza delle 82 positive e 10
negative sulle dimensioni della fotocamera. Con tale sintesi, l'utente può facilmente
vedere cosa pensano i clienti sulla fotocamera digitale. Se l'utente è molto interessato
a una particolare funzione, può eseguire il drill down (funzione che permette di
penetrare nei dati a diversi livelli di gerarchie) seguendo il collegamento
<individual sentences> per capire se piace o no ai consumatori.

11
Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche

Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche

2.1.2

Classificazione del sentimento

La classificazione del sentimento è stato ampiamente studiata nell'elaborazione
del linguaggio naturale (NLP). Dato un insieme di documenti D, si determina se ogni
documento d ∈ D esprime un parere positivo o negativo su un oggetto. Per esempio,
dato un insieme di recensioni di film, il sistema li classifica in recensioni positive e
negative. Questo è chiaramente un problema di apprendimento per la classificazione.
Questo approccio è simile ma anche diverso da quello classico che classifica i
documenti in classi per tema predefinito, ad esempio, la politica, scienze, e lo sport.
In base alla classificazione, le parole sono molto importanti. Le parole stesse che
indicano opinione positiva o negativa sono importanti. Esempi di parole sono:
grande, eccellente, straordinario, orribile, cattivo, peggio, ...
Ci sono molte tecniche esistenti ma la maggior parte di esse riguardano forme di

12
apprendimento per la classificazione. Esistono algoritmi specifici per la
classificazione del sentimento che sfruttano opinioni, parole e frasi insieme a
funzioni di punteggio.
Ogni documento di valutazione (ad esempio una recensione) si concentra su un
oggetto O e contiene solo opinioni di un titolare dell'unico parere. In questo modo la
classificazione del sentimento determina fondamentalmente l'orientamento semantico
del parere espresso sull'oggetto O in ogni documento che soddisfa le ipotesi espresse
sopra.
Oltre al livello di documento per la classificazione del sentimento, i ricercatori
hanno anche studiato la classificazione a livello della frase, cioè, hanno classificato
ogni frase come una frase soggettiva o oggettiva e/o come espressione di un parere
positivo o negativo. Analogamente alla classificazione a livello di documento, la
classificazione del sentimento a livello di frase non considera le caratteristiche
dell'oggetto che sono state commentate in una frase. Le frasi composte sono un
problema per un'approfondita analisi. Tali frasi, spesso, esprimono più di un'opinione,
ad esempio, "La storia del film s'intreccia, attraverso metafore o esplicite parodie,
con i reali problemi di cui al giorno d'oggi può soffrire un qualsiasi marchio
pluridecennale che ha lasciato un segno e rischia di sprofondare in un ricordo sterile e
passivo.".

2.1.3

Opinion Mining basato sulle caratteristiche

Classificare i testi a livello di documento o a livello di frase non dice quello che il
titolare dell'opinione esprime. Avere un documento positivo su un oggetto non
significa che il parere è positivo su tutti gli aspetti o sulle caratteristiche dell'oggetto.
Analogamente, avere un documento negativo non significa che l'oggetto non piace
per niente. In un documento, il titolare dell'opinione scrive, generalmente, sia gli
aspetti positivi sia quelli negativi dell'oggetto, anche se il sentimento generale di
quell'oggetto può essere positivo o negativo. Per ottenere questi aspetti in dettaglio,
bisogna andare al livello di funzionalità.

13
Sulla base del modello presentato precedentemente, esistono tre tipi di
opinion mining:
1. Identificare le caratteristiche dell'oggetto: ad esempio, nella frase "La qualità
delle immagini di questa fotocamera è straordinario ", la caratteristica
dell'oggetto è" la qualità delle immagini ". È possibile sia un approccio
supervisionato sia senza supervisione. La tecnica trova sostanzialmente
sostantivi frequenti e sintagmi nominali, come caratteristiche, che di solito
sono le caratteristiche originali. L'estrazione di molte informazioni tecniche
sono altresì applicabili, per esempio, nei campi condizionali casuali (CRF),
nei modelli di Markov (HMM), e in molti altri.
2. Determinare gli orientamenti dell'opinione: questa attività determina se i
pareri sulle caratteristiche sono positive, negative o neutre. Nella frase citata
nel punto 1, il parere sulla "qualità dell'immagine" è positivo. Si può usare un
approccio basato sul lessico che utilizza fondamentalmente l'opinione su
parole e frasi in una frase per determinare l'orientamento di un parere su una
caratteristica. È possibile anche un approccio di etichettatura, uno
supervisionato e uno senza supervisione.
3. Raggruppamento dei sinonimi: le caratteristiche stesse dell'oggetto possono
essere espresse con parole o frasi diverse.
L'esprimere direttamente pareri positivi o negativi su un oggetto o sulle sue
caratteristiche è solo una forma di valutazione. Confrontare, invece, l'oggetto con
altri oggetti simili è ancora un'altra forma di valutazione. Una frase di esempio può
essere "Tom è migliore di Peter". In generale, una frase comparativa esprime una
relazione basandosi sulle somiglianze o differenze tra gli oggetti.
In inglese, per i confronti tra oggetti o persone si usano le forme comparative e
superlative degli aggettivi o degli avverbi. La struttura di un comparativo
normalmente consiste nell'utilizzo di un aggettivo o di un avverbio, più il suffisso -er,

14
o il modificatore "more" o "less" davanti all'aggettivo o all'avverbio. La struttura di
un superlativo normalmente è composta dall'aggettivo o dall'avverbio, più il suffisso
-est, o il modificatore "most" o "least" prima dell'aggettivo o dell'avverbio.
In italiano per il comparativo si fa precedere l'aggettivo dall'avverbio più
(comparativo di maggioranza), meno (comparativo di minoranza) o uguale
(comparativo di uguaglianza) oppure con forme particolari ad esempio
grande → maggiore. Per il superlativo italiano invece si utilizzano le regole della
figura 6. L'estrazione del confronto tra le frasi è costituito essenzialmente
dall'identificazione delle caratteristiche degli oggetti confrontati e dal valutare se
sono caratteristiche opposte.
Per confrontare l'uso degli aggettivi in italiano e in inglese per la costruzione della
forma comparativa ci serviamo della tabella seguente che elenca le principali
possibilità:

15
1)

2)

3)

4)

Per indicare una maggiore intensità di un
aggettivo lo si fa precedere dall'avverbio più
(comparativo di maggioranza)
Per indicare una minore intensità di un
aggettivo lo si fa precedere dall'avverbio
meno (comparativo di minoranza)

Questo vino è
più forte
di/che quello
Questo vino è
meno forte di
quello
Questo vino è
Per indicare un'intensità simile di un
tanto (così)
aggettivo lo si fa precedere dall'avverbio
forte quanto
tanto (o così) (comparativo di uguaglianza)
(come) quello
con una forma particolare
normale
comparativo
grande
maggiore
piccolo
minore
buono
migliore
cattivo
peggiore
precedente anteriore
seguente
posteriore
interno
interiore
basso
inferiore
esterno
esteriore
alto
superiore

superlativo
massimo
minimo
ottimo
pessimo
primo
ultimo
intimo
infimo
estremo
supremo

This wine is
stronger
than that one
This wine is
less strong than
that one
This wine is as
strong
as that one

idiomatic

Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese
per la costruzione del comparativo

Alcuni avverbi e locuzioni avverbiali possono avere il grado comparativo e
superlativo, come gli aggettivi; sono gli avverbi di modo (eccetto quelli terminanti
in -oni) e alcuni di tempo, di luogo e di quantità
Es. più chiaro - chiarissimo, più tardi - tardissimo, più vicino - vicinissimo, più in
fretta - assai in fretta, più terra terra - assai più terra terra

16
Certi avverbi hanno forme particolari di comparativo e superlativo (come gli
aggettivi corrispondenti). Essi sono:

bene
male
grandemente
internamente
bassamente
altamente

meglio
peggio
maggiormente
interiormente*
inferiormente
superiormente*

ottimamente
pessimamente
massimamente
intimamente
infimamente
supremamente

Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del comparativo

Alcuni avverbi e locuzioni avverbiali possono avere forme alterate:
bene
male
adagio
poco
tardi
piano

benino, benone
malino, maluccio, malaccio
adagino
pochino, pochetto, pochettino
tardino, tarduccio
pianino

Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del comparativo

17
Per il superlativo invece:
con l'aggiunta del suffisso
-issimo alla forma plurale del
maschile di un aggettivo
a) caldi (caldo), grandi (grande)
1)
di un nome
b) amici (amico)
alla forma in "i" di un avverbio
c) *mali, *subiti (subito, male)

a) caldissimo,
a) hottest, biggest
grandissimo
b) friendliest
b) amicissimo
c) at once
c) subitissmo, malissimo

molto (completamente,
facendo precedere l'aggettivo da tanto, assai,
2)
un avverbio
immensamente,
terribilmente ecc.) nuovo
facendo precedere l'aggettivo da
(1) il più nuovo
"il più" (1).
3)
(2) il vestito il più nuovo
Alle volte l'articolo "il" può
che ho
essere ripetuto due volte (2).
4) ripetendo l'aggettivo due volte bello bello
facendo precedere l'aggettivo da
5)
tutto pulito
tutto
acre > acerrimo
integro > integerrimo
celebre > celeberrimo
6) con una forma diversa
misero > miserrimo
benefico >
beneficentissimo
stra > straricco
sopra > sovraccarico
facendo precedere l'aggettivo da
7)
super > superfortunato
un prefisso
ultra > ultraefficiente
iper > ipersensibile
bagnato fradicio
bello da morire
in casi particolari formando una
8)
bello e buono
espressione idiomatica
brutto da morire
9) con la preposizione di

il re dei re

very new

the newest

all clean

idiomatic

extra rich
overloaded
super lucky
ultra efficient
oversensitive
soaking wet
incredibly beautiful
outright
incredibly ugly
The King of Kings

Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese
per la costruzione del superlativo

18
2.2 Determinazione dell'orientamento dei termini
Determinare l’orientamento (o polarità) consiste nel determinare se un testo
soggettivo esprime un’opinione positiva o negativa sull’argomento mentre
determinare la forza dell’orientamento consiste nel determinare quanto l’opinione
positiva o negativa sia forte (Debolmente Positiva, Mediamente, Fortemente …).
Il

determinare

l'orientamento

dei

termini

è

il

task

principale:

scrivere una risorsa con termini etichettati positivi o negativi è abbastanza facile, ma
determinare se questi termini sono soggettivi è molto arduo.
Nel 1997 Hatzivassiloglou e McKeown, tentarono di predire l’orientamento
analizzando coppie di aggettivi (unite da e, o, oppure, ...). L’intuizione di base sta nel
fatto che l’unione di aggettivi è soggetta a vincoli sull’orientamento: “e” unisce
aggettivi dello stesso orientamento mentre “ma” orientamenti opposti. Partendo da
questo concetto, si genera un grafo dove i nodi sono i termini connessi da due tipi di
archi: “uguali”, “opposti”. Si applica poi un algoritmo di clustering per partizionare il
grafo in un gruppo positivo e uno negativo.
Nel 2003 Turney, Littman partono da dei piccoli set di termini soggettivi (seed),
uno con termini positivi (buono, bello, splendente, …) e uno con termini negativi
(cattivo, brutto, disgustoso, ...). I termini vengono analizzati calcolando
l’associazione semantica del termine al seed (Pointwise Mutual Information – PMI).
L'orientamento viene dato dalla formula O(t) = Σ(t – tp) - Σ(t – tn) ovvero dato un
termine t il suo orientamento O(t) (la positività è determinata dal segno) è calcolato
dalla somma delle distanze con i componenti positivi del seed meno la somma con le
componenti negative.
Nel 2004 Kamps utilizza il grafo definito sugli aggettivi utilizzando la relazione di
sinonimia all’interno di WordNet. Determina quindi l’orientamento di un aggettivo t
comparando la lunghezza del cammino minimo tra t e la parola positiva e la
lunghezza del cammino minimo tra t e la parola negativa. Se t è più vicino alla parola

19
positiva sarà classificato come positivo, altrimenti sarà classificato come negativo.
Sempre nello stesso anno, Kim e Hovy cambiano approccio dando un punteggio
di positività e uno di negatività ai termini in modo che sia evidenziato come questi
termini possano avere orientamenti sia positivi che negativi, e con quanta forza
portano quell’orientamento. Si inizia considerando un set di termini positivi e
negativi (seed) e lo si espande aggiungendo sinonimi e antinomi. Il sistema classifica
un termine t basandosi sulla probabilità di apparire nel set espanso. Uno dei limiti di
questo metodo è che possono essere classificati solo termini che condividono
sinonimi o antinomi con i seed.

2.3 Determinazione della soggettività dei termini

Determinare la soggettività di un documento consiste nel determinare se un testo
descrive un fatto in modo oggettivo (senza opinioni) oppure esprime un’opinione
sull’argomento. Il determinare la soggettività dei termini è un task chiave che
permette di scremare i termini interessanti (Soggettivi) da quelli non interessanti
(Oggettivi).
Nel 2003 Riloff adotta un algoritmo bootstrap per determinare i nomi soggettivi.
Per il bootstrap viene usato un set di 20 termini giudicati dall’autore come fortemente
soggettivi e molto frequenti nel testo da cui il nome proviene.
Nel 2004 Baroni e Vegnaduzzo applicano l'algoritmo PMI di Turney e Littman per
determinare la soggettività dei termini. Il metodo utilizza un set di 35 aggettivi
marcati come soggettivi da un valutatore umano, per dare un punteggio di
soggettività.

20
2.4 Progetti per il Sentiment Analysis
Il Sentiment Analysis è un settore di ricerca in rapido sviluppo e di grande
importanza per l'NLP. Ma si evince come l'applicazione abbia necessariamente
bisogno di un corpus di riferimento. Assumono importanza fondamentale i progetti
che mirano a costruire dei corpus di supporto come SentiWordNet, WordNet-Affect,
OntoText, FrameNet, … In questa tesi saranno illustrati SentiWordNet e
WordNet-Affect.

3 SentiWordNet e WordNet-Affect
Per capire al meglio cosa sono e di cosa trattano SentiWordNet e WordNet-Affect
è necessaria una presentazione di WordNet. Infatti questi due progetti, che in seguito
andrò a illustrare, sono estensioni di WordNet stesso.

3.1 WordNet
WordNet è un sistema di ricerca lessicale che si basa sulle attuali teorie
psicolinguistiche formulate sulla linguistica umana. In WordNet le parole sono
disposte alfabeticamente ed i loro significati elencati tutti assieme in relazione all'uso
più frequente a differenza di un dizionario tradizionale che è basato sulle procedure
storiche di organizzazione delle informazioni lessicali.
In WordNet le informazioni sono memorizzate in base al loro significato ed alle
loro categorie sintattiche e sono legate tra loro tramite diversi tipi di relazioni.
WordNet divide il significato di una parola in due concetti: la “Word Form”, la forma
scritta e la “Word Meaning”, il concetto espresso da tale parola. Il punto di inizio
della classificazione delle parole sono le relazioni che intercorrono fra il lemma e il
significato.

21
La base della teoria sta nella matrice lessicale (figura ): nelle righe vengono
elencati i significati delle parole e nelle colonne i lemmi. La presenza di un valore
non nullo di Eij all’interno della matrice implica che la forma F j viene espressa dal
significato Mi. Se abbiamo più valori non nulli nella stessa riga siamo davanti a dei
sinonimi: forme diverse hanno stesso significato; più valori non nulli nella stessa
colonna esprimono invece un concetto di polisemia: la stessa forma F j ha più
significati.

Figura 8: Matrice lessicale di WordNet

WordNet è quindi organizzato su Relazioni Semantiche che coinvolgono le
relazioni fra significati (rappresentati in synset) e su Relazioni Lessicali che
stabiliscono le relazioni fra i singoli lemmi (le forme).

3.1.1

La nascita di WordNet

WordNet nasce nel 1985 come risultato di un progetto a cui hanno partecipato
linguisti e psicologi dell’Università di Princeton. Dall’idea iniziale di fornire
un'ulteriore risorsa on line, rispetto ad una semplice ricerca di tipo alfabetico, si è
arrivati ad un vero e proprio dizionario basato sui principi della psicolinguistica. La
differenza più evidente tra WordNet e un dizionario classico è che il primo divide il
lessico in 5 categorie sintattiche: sostantivi, verbi, aggettivi, avverbi e function words
(attualmente non trattati). I sostantivi sono organizzati in una memoria lessicale come

22
gerarchie di specializzazione (iperonimi/iponimi); i verbi sono strutturati in una
gerarchia mediante la relazione di troponimia (un verbo è troponimo di un altro verbo
quando esprime una particolare azione, per es. camminare/muoversi); gli aggettivi si
presentano invece come iperspazi n-dimensionali.

3.1.2

Forme di parole e significato

La semantica lessicale parte dal concetto che una parola è una associazione fra la
sua espressione ed i concetti che essa stessa esprime. Queste corrispondenze sono
rappresentate nella matrice lessicale. La sinonimia e la polisemia sono aspetti
complementari della Matrice Lessicale. Le relazioni sono del tipo “molti a molti”.
La matrice lessicale potrebbe essere rappresentata, in un diagramma, da due
blocchi con due frecce che partendo da questi vanno in entrambe le direzioni. I due
blocchi saranno chiamati rispettivamente “Word Meaning” e “Word Form”. Le due
frecce indicheranno che colui che parla può partire da un significato “Word Meaning”
e cercare una forma adeguata ad esprimerlo, oppure partendo da una “Word Form”
ricercarne il giusto significato. WordNet quindi si è posto l’obiettivo di voler
esprimere due diverse relazioni:
1. relazioni semantiche fra i significati
2. relazioni lessicali fra le forme.
La costruzione della base di dati si è scontrata con l’esistenza di due teorie: la
teoria costruttiva e la teoria differenziale.
Secondo la teoria costruttiva un'accurata costruzione di un concetto deve essere
supportata da un numero sufficiente di informazioni. Tali informazioni devono
consentire di caratterizzarlo in modo da poterlo distinguere da altri possibili concetti
lessicali

e

di

fornirne

una

corretta

definizione.

La teoria differenziale, molto meno rigida, esprime il fatto che la rappresentazione di
un concetto possa essere fatta solo con elementi che permettano di distinguerlo da

23
altri.
Per essere più chiari possiamo ricorrere ad un esempio:
La parola pianta ha diversi significati:
· nome generico che indica qualsiasi vegetale fornito di organi specializzati
· proiezione orizzontale di un oggetto
· parte inferiore del piede
Nella teoria costruttiva per differenziare i due significati dobbiamo fornire
abbastanza informazioni in modo da distinguerli. In quella differenziale basta fornire
una lista di forme che lo possano esprimere. Il significato M può essere espresso con
una lista di forme (F1, F2, …). In questo modo abbiamo per ogni significato una lista
di forme fra di loro in relazione di sinonimia. L’insieme viene indicato come
Synonym Set, chiamato Synset.
Ritornando al nostro esempio, per distinguere i due significati sarebbe stato
sufficiente citarne due sinonimi: vegetale per il primo, e mappa per il secondo. Nel
caso in cui non esista un sinonimo appropriato a differenziare quel significato da
altri, si fa ricorso ad una glossa ovvero una breve spiegazione del significato. Per il
terzo significato del nostro esempio si potrebbe utilizzare la glossa: parte inferiore del
piede.

3.1.3

Le relazioni di WordNet

WordNet si basa sulle relazioni semantiche fra concetti; tra quelle implementate
da WordNet esistono:
· Sinonimia: Due concetti sono fra loro sinonimi se la sostituzione di uno con
l’altro non cambia il valore di verità della frase nella quale viene fatta la sostituzione
quindi due concetti sono fra loro sinonimi in un contesto linguistico C se la

24
sostituzione di un concetto con l’altro nel contesto C non ne altera il valore di verità.
Un esempio è la parola pianta sinonimo della parola mappa.
· Antonimia: L’antonimo di una parola x viene definito quasi sempre come not x.
Le parole ricco e povero sono fra loro antonimi anche se essere non ricchi non
implica necessariamente essere poveri: infatti, si può essere né ricchi, né poveri.
· Iponimia/Iperonimia: Un concetto rappresentato dal synset {x 1, x2, x3,…} viene
detto iponimo del concetto rappresentato dal synset {y 1, y2,…} se si può accettare una
frase costruita come: Un x è un (un tipo di ) y. L’iponimia è transitiva ed è
antisimmetrica; essa genera una struttura semantica gerarchica secondo la quale gli
iponimi (concetto figlio) stanno sotto il proprio iperonimo (concetto genitore).
· Meronimia/Olonimia: è una relazione semantica, ed esprime il concetto di parte
di. {x1, x2,…} è un meronimo di un concetto rappresentato da {y 1, y2,…} se si
possono accettare frasi scritte come x è parte di y. La relazione di14 meronimia è
transitiva (con le riserve che dopo spiegheremo) e antisimmetrica e può anch’essa
essere usata per costruire relazioni gerarchiche. Ne sono esempio le parole ala e
becco. esistono varie tipologie di relazioni parte di: componente/oggetto,
elemento/insieme, porzione/intero, materiale/oggetto, azione/attività, località/area e
fase/processo.
· Relazioni Morfologiche: Un'importante classe di relazioni lessicali fra forme di
parola. Un esempio è quello del plurale dei nomi. Se un utente inserisce la parola
chiese, e lancia la ricerca, il programma non dovrebbe dare come risultato l’assenza
della parola nel DataBase. Se la parola chiese è in relazione morfologica con il suo
singolare, la ricerca viene fatta sul termine chiesa.

3.1.4 I nomi di WordNet
Un nome è costituito da un termine generale che lo descrive (iperonimo) e
dall'elenco delle sue caratteristiche. La relazione di iponimia introduce quindi il

25
concetto di ereditarietà. Un figlio eredita dal genitore tutte le caratteristiche
aggiungendone altre che lo specificano e che lo distinguono dagli altri figli. Un
esempio può essere un ciliegio è un albero e si distingue dagli altri suoi simili per la
durezza del legno, la produzione di frutti, la forma delle foglie, il tipo di radici, ecc.
Questa relazione è la base della strutturazione dei nomi in WordNet.
La relazione di iperonimia/iponimia è la relazione sulla quale si basa la teoria sul
sistema di memoria semantica. Questo sistema è di tipo gerarchico e può essere
schematizzato come un albero. La proprietà fondamentale di un albero è che un
cammino dalla radice alle foglie non debba mai essere un loop. L’albero viene
costruito seguendo la catena di termini in relazione di iponimia. La struttura creata è
una sequenza di livelli che va da molti termini specifici al livello più basso a pochi
termini generici a livello più alto. Con questo sistema si ovvia al problema della
ridondanza, soprattutto per data-base che contengono molti termini: il termine al
livello n ha tutte le proprietà del termine al livello n-1 ad esso collegato e ne
aggiunge delle altre. E così via scendendo o salendo nella scala gerarchica. Basta
quindi memorizzare solo le informazioni che caratterizzano l’oggetto stesso, mentre
si possono tralasciare quelle che già sono memorizzate per l’oggetto genitore.
In WordNet per le relazione di iperonimia/iponimia si utilizzano i simboli @ e ~:
se Wh @-> Ws allora esiste la relazione inversa W s~->Wh. Quindi se la parola W s è
un iperonimo del nome Wh allora Wh è un iponimo di Ws. La relazione semantica
@-> indica una generalizzazione mentre la relazione inversa ~-> indica una
specializzazione. Se synset della parola albero è {albero, pianta, @ conifera, ~….}
allora la parola pianta è un iperonimo di albero, ed equivale a scrivere:
albero@->pianta. Nel synset relativo alla parola pianta si troverà pianta~->albero.
Il synset della parola pianta è {pianta, flora, @ organismo, @ albero, ~…} in cui i
puntini indicano che la lista di relazione potrebbe continuare con altri termini ed i
relativi puntatori.
Sulla base della teoria del sistema gerarchico la costruzione dell’albero parte da
un'unica gerarchia, quindi la radice deve essere semanticamente piena. Di solito

26
come radice si prendere in considerazione un termine astratto come {entità} e si
inserisce {oggetto, cosa} e {idea} come suoi iponimi. Questa metodologia però porta
ad avere poco contenuto semantico. L’alternativa, adottata da WordNet, è quella di
partizionare i nomi in un insieme di synset primitivi, considerando un numero
relativamente piccolo di concetti generici da usare come radici semantiche per
costruire altrettante gerarchie separate. Nella figura …, qui di seguito, vengono
elencati i 25 synset primitivi; all’interno degli alberi generati da tali radici devono
essere contenuti tutti i vocaboli appartenenti alla categoria dei nomi della lingua
inglese. Le gerarchie create variano in grandezza e non sono fra loro mutuamente
esclusive: sono presenti anche riferimenti incrociati. Una volta scelti i concetti
primitivi, ci si è accorti che fra di essi esistevano delle relazioni.

27
Figura 9: I synset primitivi

28
Figura 10: Relazione tra concetti primitivi

Un concetto è costituito da attributi, parti e funzioni e per rappresentarli sono
necessarie anche le relazioni incrociate fra categorie lessicali diverse che saranno di
tipo diverso: nome-aggettivo, nome-nome e nome-verbo.

Figura 11: Relazione tra i nomi in WordNet

29
3.1.5 Gli aggettivi di WordNet
La categoria semantica degli aggettivi viene divisa in tre grandi gruppi:
· Aggettivi descrittivi
· Aggettivi relazionali
· Aggettivi Reference-Modifying
Un aggettivo descrittivo associa un valore a un attributo del nome cui esso è
associato. Un esempio è “casa grande”: grande è un aggettivo descrittivo riferito
all’attributo ‘dimensione’ del nome casa. Questo tipo di aggettivi è organizzato per
mezzo di uno spazio dimensionale di cui sono noti gli estremi. Per il termine
‘grandezza’ viene definita una scala di valori estesa, ad esempio, fra gli estremi
infinitesimo ed enorme. La relazione fondamentale per la definizione di queste scale
è l’antonimia.
Gli aggettivi relazionali sono aggettivi che derivano dai nomi (ad esempio
“atomico” deriva da “atomo”). Sono mantenuti in una lista distinta.
Gli aggettivi reference-modifying sono in un insieme piuttosto piccolo e
costituiscono una classe chiusa che viene mantenuta separata dagli altri aggettivi. Un
esempio è ‘Ieri ho incontrato un mio vecchio amico’. L’aggettivo vecchio può essere
riferito alla persona amica e indica che tale persona è anziana oppure può essere
riferito all’amicizia indicando che è di lunga data.

3.1.6 I verbi di WordNet
Anche i verbi sono organizzati secondo uno schema gerarchico. Nella categoria
vengono inclusi anche i “phrasal verbs”. Si suddividono in 15 files diversi: 14 relativi
ad altrettanti gruppi semantici che contengono i verbi denotanti azioni o eventi e un
file per verbi che denotano stati.

30
Le relazioni tra i verbi si basano su implicazione e opposizione. Per
l’implicazione, il tipo a cui si fa riferimento è la relazione di troponimia che
corrisponde all’iponimia per la categoria lessicale dei nomi. Un esempio di
troponimia esempio zoppicare è un modo di camminare. L’informazione
memorizzata per i verbi è del tipo predicato-argomento. Infine per ogni verbo nel
synset vengono inserite una o più “frames” che indicano le frasi in cui possono
comparire.

3.2 Descrizione di SentiWordNet
SentiWordNet è un’estensione di WordNet e assegna ad ogni synset tre punteggi:
Obj(s), Pos(s) e Neg(s), che stanno a indicare quanto oggettivi, positivi o negativi
siano quei termini. L’assunzione di fondo che permette di assegnare i punteggi ai
synset è che differenti significati di un termine portano opinioni differenti. Ogni
punteggio varia tra 0.0 e 1.0, e la loro somma è sempre 1.0. I punteggi sono anche
visibili nella rappresentazione grafica di SentiWordNet secondo questo schema
riportato nella figura sottostanta.

Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet

31
Le figure sotto riportate sono esempi di rappresentazione:

Figura 13: Esempio di rappresentazione del termine “interesting” in SentiWordNet

Figura 14: Esempio di rappresentazione dell'aggettivo “estimable” in SentiWordNet

Figura 15: Esempio di rappresentazione del verbo “short” in SentiWordNet

32
3.2.1 Una breve storia di SentiWordNet
Esistono quattro versioni differenti di SentiWordNet:
1. SENTI WORD NET 1.0, presentata da Esuli e Sebastiani nel 2006 e reso
pubblicamente disponibile per scopi di ricerca.
2. SENTI WORD NET 1.1, solo discusso dai due ricercatori nel 2007 in una
relazione tecnica che non fu mai pubblicata.
2. SENTI WORD NET 2.0, solo discusso nella tesi da Esuli nel 2008
4. SENTI WORD NET 3.0
Poiché le versioni 1.1 e 2.0 non sono state discusse ampiamente in noti
pubblicazioni formali, ci si concentra sulle differenze tra le versioni 1.0 e 3.0. La
versione 1.0 (analogamente a 1.1 e 2.0) consiste in un'annotazione del precedente
WordNet 2.0, mentre la versione 3.0 è un annotazione più recente di WordNet 3.0.
Per SentiWordNet 1.0 e 1.1, l'annotazione automatica è stata effettuata tramite una
debole

supervisione,

algoritmo

di

apprendimento

semi-supervisionato.

Contrariamente, per SentiWordNet 2.0 e 3.0 i risultati sono solo un passo intermedio
del processo di annotazione, poiché sono alimentati dal processo iterativo
random-walk che viene eseguito per la convergenza. SentiWordNet 2.0 e 3.0 è
l'output del processo random-walk dopo che è stata raggiunta la convergenza. La
versione 1.0 e 1.1 usa le glosse dei synset di WordNet come rappresentazioni
semantiche dei synset stessi, quando viene invocato il processo di apprendimento
semi-supervisionato di classificazione dei testi che classifica le glosse in categorie
Pos, Neg e Obj. Nella versione 2,0 il processo di apprendimento semi-supervisionato
è il primo passo mentre il processo random-walk è il secondo passo. In SentiWordNet
3.0

tra

il

processo

di

apprendimento

semi-supervisionato

(prima

fase)

e il processo random-walk (seconda fase) si usano invece le glosse manualmente
disambiguate dalla Princeton WordNet Corpus2 Gloss, che si assume siano
più accurate rispetto a quelle dell'ExtendedWordNet.

33
3.2.2

Lo sviluppo di SentiWordNet 3.0

Il processo di annotazione automatica, secondo il quale SentiWordNet 3.0 è
generato, è costituito da due fasi: uno step di apprendimento semi supervisionato, e
un passo random-walk.
Il primo passo è simile a quello usato per la generazione di SentiWordNet 1.0 e
consiste di quattro sotto-passi:
•

espansione dell'insieme dei seed

•

classificatore ternario

•

classificazione dei synset

•

combinazione del classificatore

Nella prima sotto-fase, vengono automaticamente espansi due piccoli insiemi di
seed (uno composto da tutti i synset contenenti sette termini paradigmaticamente
positivi e l'altro da tutti i synset contenenti sette termini paradigmaticamente
negativi) attraverso le relazioni binarie di WordNet si possono collegare synsets di
una

determinata

polarità

con

altri

synsets

o

della

stessa

polarità

o di polarità opposta e dall'aggiungere i synset così raggiunti si espandono i due
insieme iniziali. Questa espansione può essere essere eseguita con un certo "raggio",
ad esempio, con raggio k significa aggiungere all'insieme dei seed tutti i synset che
sono distanti meno di k dai membri dell'originale insieme di seed nel grafico
collettivo derivante dalle relazioni binarie considerate.
Nella seconda sotto-fase, i due insiemi di synset generati nella precedente fase
sono usati, insieme a un altro insieme assumendo di avere la proprietà Obj, come
insiemi per classificare l'oggettività dei termini. Le glosse dei synset sono usate per la
classificazione dell'oggettività. SentiWordNet 1.0 usa il modello “bag of words”,
secondo il quale la glossa è rappresentata dall'insieme delle parole che occorrono in

34
essa. In SentiWordNet 3.0 disambiguiamo manualmente le glosse rese disponibili dal
Princeton WordNet Gloss Corpus, secondo cui una glossa è attualmente una sequenza
di synset di WordNet. I classificatori di glossa sono basati tutti su quello che può
essere definito modello “bag of synsets”.
Nella terza sotto-fase, tutti i synset di WordNet (inclusi quelli aggiunti nella
seconda fase)sono classificati come appartenenti a Neg , or Obj tramite il
classificatore generato nella seconda fase.
La sotto-fase 2 può essere eseguita usando un diverso valore del parametro raggio
e
più

tecnologie
accurata

di
se,

apprendimento
piuttosto

supervisionate.
che

un

L'annotazione

classificatore

si

ternario

rivela
unico,

viene generato un comitato di classificatori ternari, ciascuno dei quali risultano
membri di una combinazione diversa di scelte per questi due parametri (raggio e
tecnologia di apprendimento). È nato un comitato classificatore composto di 8
membri, derivante da quattro diverse scelte di raggio (k ∈ {0,2,4,6}) e due
scelte diverse di tecnologie di apprendimento (Rocchio and SVMs). Nella fase 4 il
valore finale Pos (resp., Neg , Obj) di un synset dato viene generato come la sua
media Pos (risp., Neg, Obj) attraverso gli otto classificatori della commissione.
Il secondo step consiste nel visualizzare WordNet 3.0 come un grafico
nell'esecuzione di un processo iterattivo in cui il Pos(s) e il Neg(s), e di conseguenza
anche Pos(s), partendo dai valori trovati nel precedente step, possibilmente
cambiando ad ogni iterazione. Lo step termina quando il processo iterativo è
convergente. Il grafico usato

è implicitamente determinato su WordNet dalla

relazione binaria definiens – definiendum; in altre parole si assume l'esistenza di un
link diretto dal synset s1 al synset s2 se e solo se s1 (definiens) si trova nella glossa
del synset s2 (definiendum). L'intuizione di base è che, se la maggior parte i termini
che vengono utilizzati per definire un dato termine sono positivi (o negativi), allora vi
è un'alta probabilità che il termine in via di definizione sia positivo (o negativo). In
altre parole, positività e negatività sono visti come "fluire attraverso il grafico", dai
termini usati nelle definizioni ai termini in via di definizione.

35
Tuttavia, va osservato che, in WordNet, il definiendum è un synset, mentre il
definiens è un termine non disambiguato, poiché le glosse sono termini non
disambiguati. Per effettuare lo step abbiamo bisogno di glosse da disambiguare
contro WordNet stessa, ad esempio loro devono essere sequenze di synset WordNet.
Mentre per effettuare lo step per SentiWordNet 2.0 avevamo usato automaticamente
le glosse disambiguate fornite da ExtendedWordNet (Harabagiu et al.), per
SentiWordNet 3.0 usiamo le glosse disambiguate manualmente disponibili dal
Corpus Princeton WordNet Gloss. La matematica che sta dietro a questo passo è
descritto in Esuli e Sebastiani, 2007a.
Due
le

differenti

dimensioni

processi

della

SentiWordNet,

random-walk

positività

producendo

e

della

vengono

eseguiti

per

negatività,
diverse

due

rispettivamente,
classifiche

di
del

synset WordNet. Tuttavia, i valori numerici restituiti dal processo sono inadatti ad
essere utilizzati come punteggi finali Pos e Neg, poiché sono troppo
piccoli

(il

synset

top-ranked

per

la

positività

otterrebbe

un

-6

punteggio Pos di 8.03*10 ); di conseguenza, anche i synset positivi top-ranked
si rivelerebbero essere neutrali e solo debolmente positivi. Poiché, come abbiamo
osservato, entrambi i punteggi di positività e di negatività derivanti dal
passo di apprendimento semi-supervisionato seguono una distribuzione che
obbedisce alla legge di potenza (pochissimi synset hanno un elevato punteggio Pos /
Neg,
si

mentre
sono

moltissimi

adattati

i

synset

punteggi

sono
con

per

una

lo

funzione

più

neutri),

della

forma

Fpos(x)=a x (FNeg(x)=a x , nel caso negativo), determinando così A 1 e B1 (o A2 e B2
1

b1

2

b2

nel caso negativo), valori che meglio si adattano all'effettiva distribuzione dei valori.
I valori finali Pos(s) (Neg(s) , nel caso negativo) sono quindi determinati applicando
le Fpos(x)=a x (FNeg(x)=a x ,nel caso negativo) per la classifica della positività (o
1

della
I

b1

2

negatività)

punteggi

Obj(S)

b2

prodotto
vengono

poi

dal
assegnati

processo
in

modo

random-walk.
da

rendere

i

tre

valori riassunti in uno. Nel caso in cui Pos(s) + Neg (s)> 1 si normalizzano i due
valori

da

sommare

Obj

fino

a

36

uno

e

si

imposta

(s)

=

03.
Come esempio, nella figura la tabella riporta i primi 10 synset top-ranked positivi e i
primi 10 negativi in SentiWordNet 3.0.

3.2.3

Struttura del database

SentiWordNet è un database contenente i punteggi delle opinioni per i termini che
derivano da WordNet. È costruito usando un metodo semi-supervisionato per ottenere
i punteggi di polarità dell'opinione dal sottoinsieme di seed che sono conosciuti per
contenere la polarità dell'opinione. Ogni insieme di termini che hanno lo stesso
significato o synset è associato a tre punteggi numerici, come accennato nei
precedenti paragrafi, compresi tra i valori 0 e 1 indicando per ognuno la soggettività,
la positività e la negatività. Un'importante caratteristica di SentiWordNet è che il
grado di positività e negatività è associato a ogni termine dato ed è possibile per un
termine avere valori diversi da 0 tra il punteggio della positività e il punteggio della
negatività, secondo la seguente regola:
Per un synset si definisce:
•

Pos(s) → punteggio della positività per il synset s

•

Neg(s) → punteggio della negatività per il synset s

•

Obj(s) → punteggio dell'oggettività per il synset s

Per la regola del punteggio si applica quanto segue: Pos(s)+Neg(s)+Obj(s)=1
I punteggi positivi e negativi sono sempre dati e l'oggettività può essere implicita
dalla relazione: Obj(s)=1-(Pos(s)+Neg(s)).
Il database di SentiWordNet viene fornito come file di testo in cui i punteggi sono
raggruppati in synset e in part of speech (pos). La tabella seguente descrive una
colonna per una entry nel data base riflettendo l'opinione di un synset.

37
Figura 16: Struttura del data base di SentiWordNet

Figura 17: Esempio di dati in SentiWordNet

38
I dati in SentiWordNet vengono classificati in base alla parte del discorso, e ci
sono

notevoli

differenze

nel

livello

di

oggettività

che

un

synset

potrebbe portare, a seconda del suo ruolo grammaticale. L'informazione sulla parte
del discorso nei documenti originali per essere classificati dovranno essere estratti, in
modo che possono essere applicati i punteggi di SentiWordNet. Per ottenere questo,
un algoritmo di etichettatura della part-of-speech, può essere implementato per
classificare

automaticamente

le

parole

in

categorie

in

base

a

parti

del discorso dai documenti originali. Dopo l'operazione di tagging di semplici
documenti di testo, le informazioni devono essere analizzati in modo che si usi il data
base SentiWordNet. Questo processo richiede lo sviluppo di un'applicazione che
legge un documento “taggato” e correttamente fa corrispondere i termini e il loro tag
di part of speech al punteggio di SentiWordNet.
Quando si valutano i punteggi per un dato termine con SentiWordNet, un
problema si pone nel determinare per quale specifico synset il termine appartiene a
WordNet e che punteggio assegnargli. Un esempio si ha per il termine "pazzo", con
quattro synset in WordNet.

Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet

39
3.3 Descrizione di WordNet-Affect
WordNet-Affect è una risorsa linguistica per una rappresentazione lessicale della
conoscenza affettiva. Questa risorsa è stata sviluppata a partire da WordNet,
attraverso la selezione e l'etichettatura dei synset che rappresentano i concetti
affettivi. La computazione affettiva sta avanzando come un campo che permette una
nuova interazione uomo-macchina, oltre all'uso del linguaggio naturale. Vi è la
percezione che il futuro dell'interazione uomo-macchina sia nella sfera del
divertimento, delle emozioni, del piacere estetico, … Studiare la relazione tra il
linguaggio naturale e l'informazione affettiva e trattare la sua trattazione
computazionale diventa fondamentale.
Per lo sviluppo di WordNet-Affect si è considerato come punto di partenza
WordNet Domains, un'estensione multilingue di WordNet, sviluppato presso ITC-irst.
In WordNet Domains ogni synset è stato annotato con almeno un'etichetta dominio
(ad esempio legge, economia, politica), scelti da un insieme di circa duecento
etichette gerarchicamente organizzato. Un dominio può includere synset di diverse
categorie sintattiche: per esempio il dominio medicina raggruppa insieme i sensi dai
sostantivi, come doctor#1 (il primo senso della parola doctor) e hospital# 1, e dai
verbi come operate#7.
Per WordNet-Affect, l'obiettivo era di avere un'ulteriore gerarchia di "etichette di
dominio affettivo", indipendenti dalla gerarchia di domini, con le quali i synset
rappresentano concetti affettivi che sono annotati.

3.3.1

Lo stato dell'arte dei lessici affettivi

I primi tentativi di costruire una struttura lessicale per i termini affettivi
riguardavano lo studiare quali di questi termini rappresentano realmente delle
emozioni e quali criteri di classificazione prendere in considerazione. In particolare,
gli approcci semantici lessicali sono fondati sulla convinzione che "è possibile
inferire le proprietà emotive dalle parole che esprimono un'emozione." Questo

40
approccio è costituito da tre fasi principali. In primo luogo, vengono raccolti i termini
emotivi dai dizionari o da testi letterari e giornali. Quindi, un numero fisso di contesti
semantici sono fissati: ad esempio i termini di emozione pura oppure lo stato fisico e
cognitivo dei termini. Infine, da ogni termine viene estratto un insieme di dimensioni
affettive, utilizzando tecniche come l'analisi fattoriale o lo scaling multidimensionale.
L'approccio

lessicale

semantico

ha

mostrato

una

serie

di

importanti

questioni. Ortony e Clore hanno rivisto la letteratura sulle etichette emotive, e hanno
scoperto che il processo utilizzato per selezionare le parole emotive non ha portato
esclusivamente a un dominio di termini emotivi (ad esempio la parola “rabbia” si
riferisce ad un'emozione, a uno stato d'animo, e “confusione” ad uno stato cognitivo).
Un altro problema è stato delineato da Watson e Tellegen: in letteratura vi è un
accordo solo su due caratteristiche: “arousal” (eccitato, teso contrario di rilassato,
sonnolento) e “valence” (felice, felice contrario di triste, emozionato). Tuttavia,
queste due dimensioni non sono sufficienti ad individuare l'intera gamma di concetti
emozionali. Inoltre, le tecniche dell'approccio semantico lessicale non ci permettono
di distinguere i diversi sensi della parola stessa. Ad esempio, la parola
“surprise” può fare riferimento a un sentimento ("lo stupore si sente
quando ti succede qualcosa di totalmente inaspettato"), ad un evento ("un evento
improvviso e inaspettato"), o ad una azione ("l'agire sorprendente di qualcuno").
Pertanto, al fine di costruire una struttura per l'organizzazione del lessico affettivo,
non si possono solo utilizzare le informazioni provenienti dallo stesso lessico, ma
abbiamo bisogno di ottenere informazioni fornite da recenti ricerche scientifiche
sull'emozione. In questo approccio al lessico affettivo, il centro d'interesse non è
quello di studiare la natura delle emozioni, ma capire come i significati affettivi sono
espressi in linguaggio naturale.

41
3.3.2
Il

Lo sviluppo di WordNet-Affect e del suo
nucleo

lavoro

sul

lessico

affettivo

si

è

concentrato

sulla

realizzazione

di una risorsa che contiene un insieme di concetti affettivi correlati con parole
affettive. La disponibilità del database WordNet è un importante punto di partenza. Il
modello synset è sufficientemente semplice da fornire un'intrinseca correlazione tra
un concetto e le corrispondenti parole. Inoltre, WordNet copre l'intero lessico inglese
e fornisce una quantità straordinariamente grande delle distinzioni concettuali.
Inoltre, è particolarmente utile da un punto di vista computazionale perché è stato
sviluppato per un facile accesso e per la navigazione attraverso le sue gerarchie.
Partendo da WordNet è stato selezionato un sottoinsieme di synset (chiamato
WordNet-Affect) idonei a rappresentare concetti affettivi. Si sta attualmente puntando
a mirare l'espressività di WordNet senza introdurre modifiche nella struttura
originale. Pertanto, abbiamo aggiunto ulteriori informazioni ai synset affettivi senza
definirne di nuovi. Ugualmente al metodo per le etichette di dominio, si assegna a un
certo numero di synset di WordNet una o più etichette affettive (a-labels) che
contribuiscono a precisare il significato affettivo. Ad esempio, i concetti affettivi che
rappresentano lo stato emotivo sono individuati dai synsets contrassegnati con le
affective-label emotion. Ci sono anche altre etichette affettive per quei concetti che
rappresentano stati d'animo, situazioni che suscitano emozioni o risposte emotive.
Nella tabella della figura sottostante si può vedere la lista delle a-labels.
WordNet-Affect è stato sviluppato in due fasi. La prima fase è stata l'individuazione
di un primo "nucleo" dei synset affettivi. La seconda fase è stata l'estensione del
nucleo con le relazioni definite in WordNet.

42
Figura 19: A-labels con i rispettivi synset di esempio

Per avere un insieme iniziale di parole affettive, è stato realizzato manualmente
WordNet-Affect, composto da 539 sostantivi, 517 aggettivi, 238 verbi e 15 avverbi.
Si è iniziato a raccogliere un elenco di aggettivi con l'aiuto di dizionari mentre più
tardi sono stati aggiunti i sostantivi tramite una correlazione intuitiva con gli
aggettivi. Verbi e avverbi sono stati aggiunti in modo simile. Per ogni elemento, è
stata creata una struttura al fine di aggiungere informazioni lessicali e affettive. Le
informazioni lessicali comprendono la correlazione tra i termini inglesi e italiani,
parti del discorso (POS), definizioni, sinonimi e contrari. L'attributo POSR si
riferiscono

a

termini

aventi

differenti

POS,

ma

che

puntano

alla

stessa categoria psicologica. Ad esempio, l'aggettivo allegro è semanticamente legato
al nome di allegria, al verbo rallegrare e all'avverbio allegramente.
L'informazione affettiva è un riferimento ad uno o più delle principali tipologie di
teorie sulla rappresentazione delle emozioni discrete: teorie basate sul concetto di
valutazione cognitiva, teorie basate sulle emozioni base e teorie dimensionali. Sulla
base del lavoro di Ortony, i termini sono classificati in termini emozionali, termini
affettivi non-emozionali e termini non affettivi di stato mentale. Altri termini sono
collegati con tratti della personalità, dei comportamenti, degli atteggiamenti, degli
stati fisici o stati del corpo e dei sentimenti (come il piacere o dolore). Viene
chiamato Ortony l'attributo usato per indicare la categoria affettiva dei termini nel
database. Alcuni esempi sono riportati nella tabella sottostante.

43
Figura 20: Categorie e termini

Dal mappare i sensi dei termini in WordNet-Affect ai loro rispettivi synset, è stato
identificato il nucleo affettivo. Si è selezionato un sottoinsieme di WordNet
contenente tutti i synset nel quale c'è almeno una parola della wordlist affettiva, e ha
respinto quei synset che non sono riconosciuti come concetti affettivi.
È stato eseguito un controllo automatico di coerenza delle informazioni affettiva
all'interno dei synset. In particolare, è stato controllato se ci sono sinonimi con valori
incompatibili
che

i

delle

synset

informazioni

sono

un

buon

affettiva.

I

risultati

modello

per

la

hanno

mostrato

rappresentazione

di

concetti affettivi.
Quindi,

abbiamo

proiettato

parte

delle

informazioni

affettive

dal database Affect sui sensi corrispondenti di WordNet-Affect, come valore di un
marchio affettivo (a-label). Questa operazione non è stata completata su tutti i synset
di WordNet, sia per il valore dello slot Ortony (null per alcuni degli elementi) e
perché ci sono synsets aggiunti manualmente, oltre a quelli individuati in Affect. Per
questo motivo, si è proceduto ad un ulteriore manuale di etichettatura, al fine di
assegnare le a-labels per l'intero insieme di synset affettivi.

3.3.3

L'estensione del nucleo con le relazioni di
WordNet

In WordNet sono definite un numero fisso di relazioni lessicali (tra
parole) e semantiche (tra synset). Una volta individuato il nucleo affettivo, si è
studiato

se

e

in

quale

misura,

sfruttando

44

le

relazioni

di

WordNet,
il nucleo affettivo di WordNet-affettive potrebbe essere esteso. Per ogni relazione, si
è esaminato se si conservano i sensi affettivi (cioè se tale rapporto, applicato al synset
di

WordNet-Affect,

genera

synset

che

ancora

rappresentano

concetti affettivi). Se i synset risultanti sono membri di WordNet-Affect, la risposta è
affermativa. Ma nel caso in cui il rapporto non genera synsets inclusi nel data base,
dovrebbe essere necessario procedere al controllo manuale. Tuttavia, un esame
esplorativo ha permesso di individuare un elenco di relazioni "affidabili" (come ad
esempio antonimia e somiglianza, derivati da parole, appartenenti a parole e attributi)
per il quale si è ipotizzato che il significato affettivo è conservato per tutti gli articoli
di WordNet-Affect. Pertanto, tutti i synset ottenuti mediante l'applicazione di tali
relazioni e che non sono ancora contenuti nel WordNet-Affect sono inclusi in esso.
Per le altre relazioni (come ad esempio iperonimia, implicazione, gruppi di verbi) si è
assunto che il significato affettivo è solo parzialmente conservato. In tal caso è
necessario filtrare manualmente i synset al fine di selezionare coloro che hanno
veramente

significato

affettivo.

In

particolare,

è

utile

confrontare

informazioni affettive del database con iperonimi della gerarchia di WordNet limitata
al dominio PSICOLOGIA, per proporre arricchimento nella struttura di questa camp
semantico. WordNet-Affect al momento contiene 2874 synset e 4.787 parole.

45
4 Sviluppo del software
Il software che ho implementato nel periodo di tirocinio annota in modo
semantico ed emozionale il contenuto di un testo in un file xml in particolar modo
prendendo in considerazione le coppie <nome, aggettivo>.
All'inizio dell'esecuzione il programma richiede all'utente di inserire il nome del
file che si vuole dare in input al sistema di annotazione. Il file è sottoposto al
preprocessing che elimina da ogni frase le emoticons (come :) ;) :D e molte altre) e
tutte le parole contenute tra parentesi. Perché questa fase di preprocessing?
Semplicemente per semplificare il compito del parser, che si occupa dell'analisi
sintattica delle frasi contenute nel file.
Il sistema consente di continuare ad annotare appendendo elementi a un file xml
già esistente oppure permette di creare un nuovo file xml.
Come dominio di applicazione abbiamo scelto delle recensioni di ristoranti, sia
perché è uno degli ambiti in cui è più agevole reperire commenti e opinioni, sia
perché in questo dominio era disponibile un dataset già pronto. 1
Quindi dando in input al sistema un file di testo, il sistema estrae una frase alla
volta e la passa in input al parser (TUP) . Grazie all'analisi sintattica si estraggono le
coppie <nome, aggettivo>. A queste coppie viene aggiunta una griglia emozionale le
cui emozioni sono state individuate da Ekman. Viene chiesto all'utente di inserire da
tastiera, tramite il metodo inserimento_emotion_grounds, un valore per ogni
emozione (happyness, sadness, anger, fear, disgust e surprise) contenuta in questa
griglia di cui parleremo nel paragrafo dedicato a Ekman.
Le triple annotate sono pertanto costituite dai seguenti elementi, <nome,
cognome, griglia emozionale> e sono memorizzate per mezzo di una struttura di tipo
1 Desidero ringraziare in proposito il Dott. Di Caro per avermi inviato un dataset su cui sta
attualmente lavorando, e proveniente dal sito http://www.2spaghi.it/.

46
ArrayList. Se il primo valore della griglia emozionale è -1 la coppia <nome,
aggettivo> non viene salvata nell'ArrayList; in questo modo l'annotatore può scartare
coppie nome-aggettivo frutto di un'associazione erronea causata da errori di parsing
(per esempio nella gestione della coordinazione).
Quindi viene chiesto all'utente di inserire il nome al file xml che si sta per creare:
se il nome corrisponde al nome di un file esistente il sistema chiede se si vuole
sovrascrivere il file esistente (in questo caso il file esistente perderà tutte le
informazioni finora annotate) oppure appendere i nuovi elementi in coda alle
annotazioni già presenti. Se il nome del file invece non corrisponde al nome di
nessun file xml, viene creato un file xml con quello stesso nome scelto dall'utente.
Il metodo estrazione_triple prende in input un nodo dell'albero creato dal parser
(TUP) e una frase e da in output un ArrayList contenente le triple di ogni frase,
contenuta nel file iniziale, data in input al metodo stesso. Questo metodo si serve di
due metodi di supporto di cui il primo si occupa di estrarre il nome corrispondente
all'aggettivo individuato dal metodo chiamante mentre il secondo si occupa di trovare
l'aggettivo coordinato all'aggettivo individuato dal primo metodo di supporto che lo
invoca (ad esempio nella frase “Mi piace la casa rossa e blu nella foresta” il primo
metodo mi restituisce un ArrayList contenente solo <casa, rossa, emozioni relative
all'aggettivo rosso> aggiungendolo in coda all'ArrayList globale mentre il secondo
metodo mi restituisce un ArrayList contenente solo <casa, blu, emozioni relative
all'aggettivo blu> e lo aggiunge in coda allo stesso ArrayList globale). Nel caso non
ci fossero aggettivi coordinati il secondo metodo non viene neanche eseguito.
Vengono quindi creati due oggetti, rispettivamente Nome e Aggettivo, che
contengono il lemma e un array di synset corrispondenti. Infatti ogni metodo di
supporto, per trovare un array di synset relativi al lemma trovato, deve richiamare il
metodo cerca_in_mwn.
Il metodo cerca_in_mwn, dato in input un lemma, un POS (part-of-speech) e la
lingua, si connette al database MultiWordNet e verifica se esiste quel lemma

47
restituendo tutti i possibili synset. Nel caso il lemma non fosse presente nel data base,
viene stampato un messaggio “Il lemma - nome del lemma - non si trova nel
database”.
Nel programma si trova anche il metodo disambiguate che restituisce un oggetto
di tipo Lesk in cui vi è la descrizione e il synset di un lemma. Questo metodo serve
per la disambiguazione tra i tanti synset corrispondenti a una parola e viene utilizzato
nel metodo crea_xml per far corrispondere a ogni lemma il synset più appropriato
alla frase corrispondente con la relativa descrizione.
Il metodo crea_xml prende in input un ArrayList e il nome di un file e crea un
documento xml vuoto e un albero xml con una radice <root> a cui appende
l'elemento <annotated_corpus> a cui vengono appesi gli <annotation pair>
contententi gli elementi <name> (contiene il lemma e il synset relativo al nome) e
<adjective> (contiene il lemma, il synset e i valori della griglia di Ekman). Viene così
salvato l'albero in un file xml.
Il metodo append prende in input un ArrayList e il nome di un file ma, a
differenza del metodo crea_xml, non crea un elemento root e un elemento
annotated_corpus: crea semplicemente tutti gli annotation pairs che saranno “appesi”
all'annotated corpus del file xml esistente.

48
4.1 Utilizzo del parser TUP

Figura 21: Architettura del sistema TUP

L'analizzatore sintattico (parser) utilizzato dal sistema include quattro
componenti: il chunker, l'analizzatore della coordinazione, l'analizzatore delle
dipendenze verbali e il post-processore.
Il TUP (Lesmo L. 2009) è un sistema basato su regole, che restituisce la struttura
sintattica delle frasi in un formalismo a dipendenze. Le dipendenze sono le relazioni
sintattiche che legano una parola dominante, la testa (per esempio il verbo), alle
parole dominate (per esempio un nome). Le parole dominate sono dette anche
dipendenti. La connessione tra due parole viene rappresentata usando frecce dotate di
una direzione e di un'etichetta. L'insieme di tutte le relazioni di dipendenza di una
frase forma un albero, che ha come radice il verbo principale. I dipendenti si
differenziano in due tipologie:
1. Argomento della testa: se è obbligatorio per garantire la correttezza della
frase.
2. Modificatore: se non è necessario per la correttezza della frase.
Il TUP esegue due operazioni preliminari: l'analisi morfologica e POS tagging.
Servono a ricostruire il lemma e il part of speech. Il part of speech è una categoria
grammaticale (verbo, aggettivo, sostantivo, pronome, articolo, preposizione,
avverbio, interiezione e congiunzione), che deve essere associato a ciascuna parola in
una frase prima di procedere all'analisi sintattica. Dopo queste due operazioni

49
preliminari, si eseguono in ordine le operazioni di chunking (raggruppamento),
analisi della coordinazione e della sotto categorizzazione verbale.

4.1.1

Sotto-moduli del parser

I sotto-moduli del sistema sono costituiti dai seguenti elementi:
1. Parentesi: se il sistema lavora su singole frasi, rimuoviamo tutte le parentesi
che compaiono nella frase. Il contenuto delle parentesi viene parsificato, il
risultato di questo lavoro viene inserito nello stesso punto da cui è stata
prelevata la parentesi.
2. Chunking: il risultato è un insieme di chunk (nominale, aggettivi, etc.) tra
loro non collegati, la testa del chunk contiene un link vuoto.
3. Liste di oggetti
4. “di cui a”: se prendiamo come esempio la frase “...il commento di cui al
paragrafo successivo è molto importante...”, si assume l'esistenza di una
traccia verbale, si cerca il testo a cui si riferisce la frase “di cui a”.
5. Analisi delle congiunzioni: comporta l'individuazione e il collegamento di
ogni possibile congiunzione con le altre.
6. Allegare i dipendenti verbali.
7. Possibile correzione degli allegati preposizionali: si esamina l'intero albero,
per cercare di cambiare i collegamenti delle preposizioni ed ottenere così una
struttura migliore.
8. Post-processamento: Se alcuni oggetti sono rimasti isolati, saranno connessi
all'albero di parsificazione in questa fase.

4.1.2

Chunker

Il chunker ispeziona la frase in passi differenti, e per ogni parola prova ad
applicare ogni possibile regola di chunking, associata alla categoria della parola.

50
La categoria sintattica della testa del chunk è costituita da uno degli elementi
appartenenti alla seguente lista: Special, Punct, Adv, Predet, Conj, Adj, Num, Noun,
Pron, Art, Prep, Verb. Ogni regola di chunking rispetta il seguente formato: HeadCategory: <Position, Dependent-category, Conditions, Label>. Un esempio di questo
formato può essere:
NOUN <Precedes (ADJ qualif T),
ADJ,
(type INDEF) (agree) (dep-follows ART),
ADJ+QUANTIF-RMOD>

4.1.3

Analisi della coordinazione

In questa fase si svolgono le seguenti operazioni:
1. la ricerca del secondo sintagma che viene ritenuto il migliore:
Se il sistema incontra una congiunzione coordinativa, cerca di identificare il
candidato che sarà la testa della seconda entità da collegare.
2. la ricerca del possibile primo sintagma:
Si cerca il primo elemento che è posto a sinistra della congiunzione,
otteniamo così una serie di possibili coppie. Per esempio: <<fc 11,sc1> ,
<fc12,sc1> , … <fc21,sc2> , <fc22,sc2> ,...>.
3. la ricerca della migliore coppia:
Si applica un insieme di euristiche per trovare la coppia migliore. Queste
regole tengono conto della vicinanza tra gli oggetti della coppia e delle
caratteristiche lessicali dei verbi.
4. Ci si muove all'indietro per controllare ogni comma se in realtà è il secondo
sintagma di una congiunzione che compare precedentemente.

51
4.1.4

Dipendenze verbali

La decisione sulle strutture verbali si svolge in due fasi:
1. Una volta che sono stati definiti i confini, tutti i chunk al loro interno
vengono collegati al singolo verbo che vi compare. I confini vengono definiti
tramite l'applicazione di regole euristiche. Le regole vengono applicate da
sinistra a destra. Ogni oggetto scollegato posto a sinistra del verbo viene
assunto come suo dipendente. Gli oggetti scollegati che seguono il verbo
vengono presi come dipendenti del verbo finché non se ne trova un altro. Il
verbo trovato diventa un dipendente, se ha tempo infinito o gerundio, o se
ammette discorsi diretti.
2. Si deve scegliere un'etichetta corretta per il chunk che sarà attaccato al verbo.
Include argomenti separati da aggiungere ed assegnare all'etichetta corretta.
Le tracce vengono inserite nello spazio di ogni argomento mancante. Il
lavoro viene fatto basandosi su una gerarchia di sottocategorie verbali, che
include informazioni sui possibili argomenti e le loro realizzazioni ammesse.
Dopo questa fase ci troveremo con una struttura di parsing parzialmente
costruita, che include un insieme di chunk, sia preposizionali, modificatori,
sintagmi e alcuni verbi. I vari chunk sono i dipendenti verbali. Ogni verbo è
collegato con un insieme di dipendenti senza etichetta. L'ultima fase di
questo lavoro consiste nel determinare le etichette degli archi. Il risultato
finale di questa fase consiste nel trovare, per ogni verbo nella frase,
l'accoppiamento ritenuto migliore tra le sue dipendenze e i frame verbali
associati alle sue possibili sottocategorie. Per esempio il verbo autorizzare ha
una sola possibile sottocategoria (trans-a), dopo autorizzare segue la
preposizione “a”. Un verbo transitivo prevede anche un soggetto, un oggetto
ed un tema. Per esempio: [il terzo comma]subj autorizza [il Consiglio]obj [a
inviare aiuti alimentari]theme.

52
Il post-processing è la fase che si occupa di riempire i link relativi alla
punteggiatura e ai verbi. Consiste nell'individuare il verbo principale e se non ci sono
altri verbi disponibili, nel selezionare un'altra radice. Per la punteggiatura si
applicano varie regole, per cercare di segnare quando è possibile le parentetiche. Il
processo tiene conto della struttura dei chunk e delle frasi verbali precedentemente
stabilite.

4.2 Utilizzo di MultiWordNet
Per il sistema sviluppato si è fatto uso di MultiWordNet, una banca dati lessicale
multilingue che comprende le informazioni sulle parole inglesi e italiane. Si tratta di
un'estensione di WordNet 1.6, un database lessicale per l'inglese sviluppato presso
l'Università di Princeton. MultiWordNet contiene informazioni sui seguenti aspetti
dei lessici della lingua inglese e italiana :
•

relazioni lessicali tra concetti

•

corrispondenze tra i concetti lessicalizzati in italiano e inglese

•

campi semantici (domini)

La relazione di base lessicale in MultiWordNet è la sinonimia. Gruppi di sinonimi
vengono utilizzati per identificare i concetti lessicali, che vengono chiamati anche
synsets. Ecco un esempio di synset italiano:
{elaboratore, computer, cervello_elettronico, calcolatore}
I synset sono l'unità più importante di MultiWordNet. Molte informazioni
interessanti sono unite ad essi, come i campi semantici e le relazioni semantiche. Ad
esempio, il synset sopra appartiene al campo semantico "Computer Science" e
dispone di tre diverse relazioni semantiche:

53
Macchina has_hypernym {}
has_hyponym calcolatore_analogico {}, {} calcolatore_digitale, ecc
has_part {microchip, chip}, ecc.
La corrispondenza incrociata tra i termini inglesi e italiani è definita tra i synset:
{elaboratore, computer, cervello_elettronico, calcolatore}
corrisponde a
{computer, data_processor, electronic_computer, information_processing_system}
MultiWordNet può essere utilizzato per una varietà di compiti NLP tra cui:
•

Information Retrieval: le relazioni di sinonimia vengono utilizzati per
l'espansione della query e per migliorare il recupero dell'IR; le
corrispondenze incrociate tra i synset italiani e inglesi sono utilizzati per il
Cross Language Information Retrieval.

•

Tagging semantico: i testi sono contrassegnati con identificatori synset.

•

Chiarimento delle ambiguità: le relazioni semantiche sono utilizzate per
misurare la distanza semantica tra le parole, e possono essere utilizzate per
disambiguare il significato delle parole nei testi. Anche i campi semantici si
sono rivelati molto utili per l'attività di disambiguazione.

•

Le ontologie: MultiWordNet può essere visto come una ontologia per essere
utilizzato per una varietà di compiti NLP basata sulla conoscenza.

•

Terminologie: MultiWordNet costituisce un solido framework che sostiene lo
sviluppo di specifiche terminologie strutturate.

Al momento è disponibile la release 1.39, contenente 58.000 word meaning
italiani organizzati in 32.700 synset, oltre alle corrispondenze con i synset equivalenti
di WordNet 1.6. Al momento, il database è fornito come dump di tabelle MySQL,
insieme a un paccheto di API implementate in Java, mentre con la prossima release

54
sarà disponibile un’interfaccia html-based che utilizzerà Apache/php/MySQL.

4.2.1

Descrizione di MultiWordNet

MultiWordNet rappresenta un’estensione della matrice lessicale di WordNet in
una matrice lessicale multilingua. Viene aggiunta una terza dimensione che
rappresenta la lingua. Guardando la figura, in larghezza si trovano i lemmi specifici
di una lingua, in altezza i significati e in profondità si scorrono le lingue. Se
prendiamo come base di riferimento WordNet, la costruzione della matrice lessicale
multilingua con l’aggiunta dell’italiano consiste nel ri-mappare i lemmi italiani
secondo i synset della lingua inglese.
Il risultato è una completa ridefinizione delle relazioni lessicali (che collegano un
lemma a un synset) della lingua italiana; invece, per le relazioni semantiche vengono
mantenute il più possibile quelle definite per l’inglese.
Questa architettura è facilmente estensibile ad altre lingue.

Figura 22: Matrice lessicale multilingua di MultiWordNet

In questa matrice il concetto di synset si evolve, dunque, nel multisynset: un
significato comune alle due lingue che viene rappresentato e individuato in modo

55
univoco nel data base e di conseguenza anche nell'ontologia. Il multisynset individua
una relazione di sinonimia in senso lato tra synset equivalenti, e quindi tra i termini
che li compongono, in lingue diverse. I multisynset in pratica, essendo indipendenti
dalla lingua, rappresentano la dimensione verticale della matrice; così, le relazioni
semantiche (rappresentate con archi che collegano due synset) vengono estese in
validità a tutte le lingue.

4.2.2

Architettura del database

Il database contiene una parte comune a tutti i wordnet e una specifica per ogni
lingua che è rappresentata. Guardando la figura, la struttura è organizzata in un
modulo centrale, Common-db, e due moduli, Italian-db e English-db. Il Common-db
contiene tutte le relazioni semantiche presenti in WordNet. A livello concettuale, il
Common-db contiene anche i multisynset: in realtà questi non esistono nel database,
ma vengono implementati utilizzando lo stesso identificatore per i synset dei moduli
linguistici. Nei moduli Italian-db e English-db invece sono contenute le informazioni
lessicali, ovvero i legami tra lemmi e synset, specifiche delle lingue.

Figura 23: Architettura di MultiWordNet

Lo schema non è in grado di rappresentare le loro differenze strutturali, che si
vogliono rappresentare; inoltre si desidera poter modificare le relazioni semantiche
comuni di WordNet e aggiungerne di nuove. La soluzione che è stata adottata
consiste in una struttura a add-on: questi sovrascrivono (nel verso delle frecce) in vari
strati il database WordNet, senza modificarlo fisicamente. Il primo Semantic add-on è
incapsulato nel Common-db e si pone direttamente sopra a WordNet; esso permette
di modificare l’insieme delle relazioni semantiche comuni. Questo modulo è a sua
volta sovrascritto dai semantic add-on specifici per ciascuna lingua, che sono
incapsulati nei language-db: il loro ruolo è quello di rappresentare le relazioni

56
semantiche incompatibili con quella lingua. Le informazioni contenute in questi
ultimi add-on sono di due tipi:
•

Relazioni semantiche specifiche di una lingua;

•

Lexical gap.

I lexical gap si hanno quando un concetto, che può essere espresso con singoli
lemmi, in un'altra lingua non trova un synset corrispondente ma può essere solo
tradotto con una frase oppure espresso con un termine di significato più generico o
più specifico (denotation difference ). Ad esempio, il synset inglese associato alla
glossa “the pointed head or striking tip of an arrow” e contenente il solo termine
“arrowhead”, non trova in italiano un termine corrispondente, ma viene tradotto con
l’espressione “Punta di freccia”. In questo caso ci troviamo di fronte ad un lexical
gap, che viene rappresentato, nell'Italian-db, con un synset italiano che ha associati
solo il particolare lemma “GAP!” e la glossa “punta_di_freccia”. “GAP!” viene
implementato nel database come se fosse un lemma anche se non è un vero e proprio
termine. Quando ci si trova in uno di questi casi, il concetto mancante viene
collegato, nel language-db, ad un empty-node presente nella parte lessicale; a questo
punto ci sono due strategie differenti:
• nel caso di lexical gap, nella glossa del nodo viene riportata una traduzione del
concetto in quella lingua;
• nel caso di denotation difference, il nodo viene collegato da una o più relazioni
nearest a synset che esprimono concetti più generali/specifici.
Per le relazioni sono importate da WordNet tutte quelle semantiche e a queste si
aggiungono le relazioni di tipo nearest. L’unica relazione lessicale al momento
istanziata è la sinonimia. La figura rappresenta una tabella che riassume tutti i tipi di
relazioni presenti in MultiWordNet.
Il popolamento del data base è avvenuto in questo modo: dapprima è stato

57
integrato WordNet, separando la parte semantica, che ha riempito il Common-db, da
quella lessicale, inclusa nell'English-db. In seguito, si sono utilizzate due procedure
semi-automatiche per la costruzione dell'Italian-db che sfruttano entrambe un
dizionario bilingue italiano-inglese:
• La prima è denominata Assign-procedure e serve a individuare, dato un termine
italiano ed un suo significato, una lista dei synset inglesi più simili; i synset vengono
pesati in base ad una serie di regole di match;
• La seconda è la LG-procedure, che aiuta a trovare i lexical gap; i lexical gap
English-to-Italian possono quindi essere automaticamente esclusi dai risultati della
routine precedente, mentre quelli Italian-to-English rappresentano synset italiani per i
quali l'Assign-procedure non restituisce alcun risultato, e che perciò devono essere
aggiunti manualmente.

58
Figura 24: Tipi di relazioni in MultiWordNet

Il database descritto è stato implementato con tabelle MySQL e viene acceduto
dal sistema sviluppato tramite la connessione a jdbc:mysql://127.0.0.1/mwn-1.4.2 e
il driver com.mysql.jdbc.Driver di Java importando la libreria di Java
mwaccess.org.itc.mwn.*.

59
Attualmente il programma si connette in locale a MySQL in cui è caricato il data
base di MultiWordNet. Le tabelle che sono state importate sono:
•

common_relation.sql

124722 records

•

english_frame.sql

19543 records

•

english_index.sql

123774 records

•

english_relation.sql

18838 records

•

english_synset.sql

102101 records

•

italian_index.sql

45099 records

•

italian_relation.sql

318 records

•

italian_synset.sql

38653 records

•

semfield.sql

108038 records

•

semfield_hierarchy.sql

164 records

La tabella "common_relation" elenca tutte le relazioni semantiche che sono
comuni a tutti i linguaggi. Ogni record contiene quattro campi:
•

type: tipo della relazione (vedere anche la lista delle relazioni di
MultiWordNet e i corrispondenti simboli usati per codificarli);

•

id_source: identificatore del synset di provenienza ("pos#offset", dove pos è
"n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);

•

id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i
nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);

60
•

status: "new" se la relazione coinvolge nuovi synset, ad esempio i synset che
non sono in Princeton WordNet and sono stati creati in MultiWordNet.
Quando la relazione coinvolge i synset che sono stati definiti già in Princeton
WordNet il campo è "NULL".

Esempi:
INSERT INTO common_relation VALUES ('*','v#00001740','v#00003763',NULL);
INSERT INTO common_relation VALUES ('@','v#00002143','v#00001740',NULL);
Le tabelle "english_relation" e "italian_relation" contengono le relazioni che
dipendono dal linguaggio. Queste relazioni sono istanze delle relazioni lessicali
standard usate in Princeton WordNet (ad esempio antonimia, appartiene a, etc.).
Inoltre, queste tabelle contengono un nuovo tipo di relazione semantica creata
all'interno MultiWordNet, che si chiama "nearest". La più vicina relazione vale tra un
synset vuoto (uno spazio lessicale) di un certo linguaggio e il synset con il significato
più simile in quella lingua. Ci sono solo pochi esempi di questa relazione codificata
finora.
La tabella contiene sei campi:
•

type: tipo della relazione (vedere anche la lista delle relazioni di
MultiWordNet e i corrispondenti simboli usati per codificarli);

•

id_source: identificatore del synset di provenienza ("pos#offset", dove pos è
"n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);

•

id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i
nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);

•

w_source: il lemma originale (solo per le relazioni lessicali);

•

w_target: il target del lemma (solo per le relazioni lessicali);

61
•

status: "new” se la relazione include un nuovo synset oppure "NULL" se
include synset derivanti da Princeton WordNet.

Esempi:
INSERT

INTO

english_relation

VALUES

('!','v#00009549','v#00009666','rest','be_active',NULL);
INSERT INTO italian_relation VALUES ('|','n#N0002074','n#09593084','','','new');
Le tabelle "english_synset" e "italian_synset" contengono i synset italiani e inglesi
(molti di questi derivano da Princeton WordNet but ma altri sono nuovi). Vengono
specificate anche le lacune lessicali.
Ogni record contiene quattro campi:
•

id: identificatore synset ("pos#offset") o un identificatore di Princeton
WordNet o un nuovo identificatore synset (che incomincia con"N");

•

word: lemmi contenuti nel synset, separati da uno spazio. I token delle parole
multiple sono collegate dal carattere "_". La parola "GAP!" e
"PSEUDOGAP!" sono identificatori speciali usati per descrivere dei
lexical gaps;

•

phrase: lemmi contenuti nelle frasi, separate da uno spazio. I token delle
parole multiple sono collegate dal carattere "_".

•

gloss: la maggior parte dei synset ha una glossa, composta da una definizione
come esempio.

Esempi:
INSERT INTO english_synset VALUES ('n#00008864',' plant flora plant_life
',NULL,'a

living

organism

lacking

the

power

of

locomotion');

INSERT INTO italian_synset VALUES ('n#00043525',' GAP! ',' errore_di_calcolo
',NULL);

62
INSERT INTO italian_synset VALUES ('a#02078908',' epocale ',' che_fa_epoca ','che
caratterizza un'epoca; "una svolta epocale"');
Le tabelle "english_index" e "italian_index" contengono le liste dei lemmi inglesi
e italiani. Lo scopo di queste tabelle è richiamare molto rapidamente i synset-id e le
ricerche possibili a partire da un lemma in tutta i suoi pos.
Ogni record contiene cinque campi:
•

lemma: contenente i lemmi normalizzati. I token delle parole multiple sono
collegate dal carattere "_". La parola "GAP!" e "PSEUDOGAP!" sono
identificatori

speciali

usati

per

descrivere

dei

lexical gaps;
•

id_n: contiene la lista dei synset-id (separati da un carattere) nei quali il
lemma è contenuto come un nome;

•

id_v: contiene la lista dei synset-id nei quali il lemma è contenuto come un
verbo;

•

id_a: contiene la lista dei synset-id nei quali il lemma è contenuto come un
aggettivo;

•

id_r: contiene la lista dei synset-id nei quali il lemma è contenuto come un
avverbio;

Esempi:
INSERT INTO english_index VALUES ('shape','n#03952527 n#00015185
n#04055717 n#04562135 n#03685812 n#10430604 n#04554317','v#00474001
v#01139594 v#00095506','','');
INSERT INTO italian_index VALUES ('parlamentare',' n#07457674','
v#00518082','a#02590962',NULL);

63
La tabella "semfield" contiene uno o più etichette di dominio per ogni synset in
MultiWordNet. Le etichette di dominio sono indipendenti dal linguaggio e applicate
tra i synset inglesi e italiani. Tuttavia, per ragioni pratiche, sia le parole in inglese sia
le traduzioni italiane sono riportate come etichette di dominio.
Ogni record di questa tabella contiene due campi:
•

synset: identificatore del synset ("pos#offset");

•

english: contiene la lista delle etichette di dominio associate al synset in
inglese;

Esempi:
INSERT INTO semfield VALUES ('r#00078025','Administration Economy Law',);
INSERT INTO semfield VALUES ('n#00031741','Military',);
La tabella "semfield_hierarchy" contiene la gerachia di 169 etichette di dominio
usate per taggare i synset di MultiWordNet.
Ogni record contiene cinque campi:
•

code: numero progressivo associato a ogni dominio, da 1 a 169.

•

english: nome in inglese del dominio

•

normal: il dominio base (secondo livello della gerarchia) al quale il dominio
si riferisce nel record .

•

hypers: il diretto iperonimo del dominio

•

hypons: il diretto iponimo del dominio

64
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti

More Related Content

What's hot

Il distretto della calzetteria di Castel Goffredo
Il distretto della calzetteria di Castel Goffredo Il distretto della calzetteria di Castel Goffredo
Il distretto della calzetteria di Castel Goffredo Silvia Polimeno
 
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...La comunicazione strategica d'impresa nella logica narrativa: the corporate s...
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...Beppe di Brisco
 
Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0ULRICO HOEPLI EDITORE, MILAN
 
4 Tecnologie e società
4 Tecnologie e società4 Tecnologie e società
4 Tecnologie e societàAlessio Cornia
 
Nonni da favola
Nonni da favolaNonni da favola
Nonni da favoladenise68
 
Includere i bes con l'Apprendimento Cooperativo
Includere i bes con l'Apprendimento CooperativoIncludere i bes con l'Apprendimento Cooperativo
Includere i bes con l'Apprendimento CooperativoAnna La Prova Psicologa
 
Modulo 4. dall' integrazione all'inclusione
Modulo 4. dall' integrazione all'inclusioneModulo 4. dall' integrazione all'inclusione
Modulo 4. dall' integrazione all'inclusioneSanGiovanniDiDioWEB
 
Presentazione Tesi di Laurea Francesco Ruggieri
Presentazione Tesi di Laurea Francesco RuggieriPresentazione Tesi di Laurea Francesco Ruggieri
Presentazione Tesi di Laurea Francesco RuggieriFrancesco Ruggieri
 
(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di LaureaDaniele Di Mitri
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...TiborRacman
 
Presentazione Tesi - Cusini Andrea
Presentazione Tesi - Cusini AndreaPresentazione Tesi - Cusini Andrea
Presentazione Tesi - Cusini Andreacusionline
 
Il Terzo Settore in Italia: prima e dopo la riforma
Il Terzo Settore in Italia: prima e dopo la riforma Il Terzo Settore in Italia: prima e dopo la riforma
Il Terzo Settore in Italia: prima e dopo la riforma CLELIA SFRAPPA
 
Costruttivismo e didattica
Costruttivismo e didatticaCostruttivismo e didattica
Costruttivismo e didatticaiva martini
 
La mia tesi di laurea triennale - Beato Gianmarco
La mia tesi di laurea triennale  - Beato GianmarcoLa mia tesi di laurea triennale  - Beato Gianmarco
La mia tesi di laurea triennale - Beato GianmarcoGianmarco Beato
 
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualità
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualitàAbstract tesi - Vivere in uno Slum, dalla marginalità alla progettualità
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualitàFederica Pantò
 

What's hot (20)

Il distretto della calzetteria di Castel Goffredo
Il distretto della calzetteria di Castel Goffredo Il distretto della calzetteria di Castel Goffredo
Il distretto della calzetteria di Castel Goffredo
 
Tesi
TesiTesi
Tesi
 
Tesi Magistrale_ Abstract
Tesi Magistrale_ AbstractTesi Magistrale_ Abstract
Tesi Magistrale_ Abstract
 
Sicurezza nel sistema moda
Sicurezza nel sistema modaSicurezza nel sistema moda
Sicurezza nel sistema moda
 
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...La comunicazione strategica d'impresa nella logica narrativa: the corporate s...
La comunicazione strategica d'impresa nella logica narrativa: the corporate s...
 
Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0
 
Lyotard
LyotardLyotard
Lyotard
 
4 Tecnologie e società
4 Tecnologie e società4 Tecnologie e società
4 Tecnologie e società
 
Nonni da favola
Nonni da favolaNonni da favola
Nonni da favola
 
Includere i bes con l'Apprendimento Cooperativo
Includere i bes con l'Apprendimento CooperativoIncludere i bes con l'Apprendimento Cooperativo
Includere i bes con l'Apprendimento Cooperativo
 
Modulo 4. dall' integrazione all'inclusione
Modulo 4. dall' integrazione all'inclusioneModulo 4. dall' integrazione all'inclusione
Modulo 4. dall' integrazione all'inclusione
 
Presentazione Tesi di Laurea Francesco Ruggieri
Presentazione Tesi di Laurea Francesco RuggieriPresentazione Tesi di Laurea Francesco Ruggieri
Presentazione Tesi di Laurea Francesco Ruggieri
 
(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
 
Presentazione Tesi - Cusini Andrea
Presentazione Tesi - Cusini AndreaPresentazione Tesi - Cusini Andrea
Presentazione Tesi - Cusini Andrea
 
Il Terzo Settore in Italia: prima e dopo la riforma
Il Terzo Settore in Italia: prima e dopo la riforma Il Terzo Settore in Italia: prima e dopo la riforma
Il Terzo Settore in Italia: prima e dopo la riforma
 
Culture industry
Culture industryCulture industry
Culture industry
 
Costruttivismo e didattica
Costruttivismo e didatticaCostruttivismo e didattica
Costruttivismo e didattica
 
La mia tesi di laurea triennale - Beato Gianmarco
La mia tesi di laurea triennale  - Beato GianmarcoLa mia tesi di laurea triennale  - Beato Gianmarco
La mia tesi di laurea triennale - Beato Gianmarco
 
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualità
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualitàAbstract tesi - Vivere in uno Slum, dalla marginalità alla progettualità
Abstract tesi - Vivere in uno Slum, dalla marginalità alla progettualità
 

Viewers also liked

Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" filippo rossi
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaSergio Taddia
 
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Davide Trebbi
 
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...Alberto Scotto
 
Tesi: La comunicazione d'impresa e il marketing virale.
Tesi: La comunicazione d'impresa e il marketing virale.Tesi: La comunicazione d'impresa e il marketing virale.
Tesi: La comunicazione d'impresa e il marketing virale.Sarah Cillo
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Mario Valiante
 
Tesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaTesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaRiccardo Gnani
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerLorenzo Sfarra
 
Tesi di Laurea in Comunicazione
Tesi di Laurea in ComunicazioneTesi di Laurea in Comunicazione
Tesi di Laurea in ComunicazioneVincenzo Calabrò
 
Tesi Specialistica - Weka SMP
Tesi Specialistica - Weka SMPTesi Specialistica - Weka SMP
Tesi Specialistica - Weka SMPFabio Pustetto
 
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...Drughe .it
 
Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićJosip Mihovilovic
 
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...
I promessi sposi 3.0  Mobile User Experience & Usability nel settore dei beni...I promessi sposi 3.0  Mobile User Experience & Usability nel settore dei beni...
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...RiccardoPietra
 
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie B
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie BL'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie B
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie BStefano D'Alessandro
 
Strumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciStrumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciCarlo Signor
 

Viewers also liked (20)

Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere"
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio Taddia
 
Tesi processo st.
Tesi processo st.Tesi processo st.
Tesi processo st.
 
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
 
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...
Cloud Computing: Una Soluzione "Private" Basata Su Software IBM (Tesi di laur...
 
Tesi: La comunicazione d'impresa e il marketing virale.
Tesi: La comunicazione d'impresa e il marketing virale.Tesi: La comunicazione d'impresa e il marketing virale.
Tesi: La comunicazione d'impresa e il marketing virale.
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
 
Tesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaTesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiuta
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
 
A.Dionisi Thesis
A.Dionisi ThesisA.Dionisi Thesis
A.Dionisi Thesis
 
Tesi di Laurea in Comunicazione
Tesi di Laurea in ComunicazioneTesi di Laurea in Comunicazione
Tesi di Laurea in Comunicazione
 
Tesi Specialistica - Weka SMP
Tesi Specialistica - Weka SMPTesi Specialistica - Weka SMP
Tesi Specialistica - Weka SMP
 
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...
Il Mobbing Secondario e gli effetti sulla prole in età evolutiva - Tesi di La...
 
Tesi marino
Tesi marinoTesi marino
Tesi marino
 
Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip Mihovilović
 
Vertical Branding nella Moda
Vertical  Branding nella ModaVertical  Branding nella Moda
Vertical Branding nella Moda
 
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...
I promessi sposi 3.0  Mobile User Experience & Usability nel settore dei beni...I promessi sposi 3.0  Mobile User Experience & Usability nel settore dei beni...
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...
 
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie B
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie BL'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie B
L'audace colpo dei soliti noti. Dalla commedia all'italiana ai film di serie B
 
Strumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciStrumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idrici
 
Tecnologie di libertà
Tecnologie di libertà Tecnologie di libertà
Tecnologie di libertà
 

Similar to Tesi peiretti

Orchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPMOrchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPMMichele Filannino
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...fcecutti
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility modelsUmberto Griffo
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di PythonAmmLibera AL
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Ministry of Public Education
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture NotesRobertoMelfi
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingNicola Mezzetti
 
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - TesiIl Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - TesiFrancesco Magagnino
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeAntonella79
 
Imparare c n.104
Imparare c  n.104Imparare c  n.104
Imparare c n.104Pi Libri
 
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...Andrea Bidinost
 
Dispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaDispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaStefano Bussolon
 
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...Nicola Cerami
 
Netex learningCentral | Trainer Manual v4.4 [It]
Netex learningCentral | Trainer Manual v4.4 [It]Netex learningCentral | Trainer Manual v4.4 [It]
Netex learningCentral | Trainer Manual v4.4 [It]Netex Learning
 

Similar to Tesi peiretti (20)

Orchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPMOrchestrazione delle risorse umane nel BPM
Orchestrazione delle risorse umane nel BPM
 
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
Tecniche di Test-driven development in ambito sicurezza informatica e rilevaz...
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility models
 
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONSLEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
 
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONSLEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
LEARNING OBJECT MODELLO DI RIFERIMENTO SCORM E AUTHORING APPLICATIONS
 
Guida C# By Megahao
Guida C# By MegahaoGuida C# By Megahao
Guida C# By Megahao
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture Notes
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based Routing
 
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - TesiIl Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
Il Modello Pragmatico Elementare per lo sviluppo di Sistemi Adattivi - Tesi
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificiale
 
Imparare c n.104
Imparare c  n.104Imparare c  n.104
Imparare c n.104
 
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...
Sviluppo e studio di un algoritmo genetico per la ricerca di un intervallo di...
 
Dispensa Interazione Uomo Macchina
Dispensa Interazione Uomo MacchinaDispensa Interazione Uomo Macchina
Dispensa Interazione Uomo Macchina
 
Comunicazione in un progetto di educativa di strada con strumenti Web 2.0
Comunicazione in un progetto di educativa di strada con strumenti Web 2.0Comunicazione in un progetto di educativa di strada con strumenti Web 2.0
Comunicazione in un progetto di educativa di strada con strumenti Web 2.0
 
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
Progetto per lo sviluppo di un sistema di gestione della conoscenza per il pr...
 
Tesi
TesiTesi
Tesi
 
Netex learningCentral | Trainer Manual v4.4 [It]
Netex learningCentral | Trainer Manual v4.4 [It]Netex learningCentral | Trainer Manual v4.4 [It]
Netex learningCentral | Trainer Manual v4.4 [It]
 

Recently uploaded

Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 

Recently uploaded (18)

Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 

Tesi peiretti

  • 1. Università degli studi di Torino FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di laurea in Informatica Tecnologie semantiche per l'annotazione e l'analisi del contenuto emozionale dei testi (Semantic techniques for the annotation and analysis of emotional contents in text documents) Relazione di Tirocinio Relatore: Prof. Daniele Paolo Radicioni Anno Accademico 2010-2011 Candidato: Stefano Peiretti
  • 2. Ai miei genitori, a mio fratello Federico e ai miei nonni, Salvatore e Maria, per avermi aiutato e incoraggiato nelle difficoltà incontrate in questi anni. Al mio relatore, Prof. Daniele Paolo Radicioni, per la disponibilità, la pazienza, l'incoraggiamento e per avermi aiutato nell'implementazione del sistema descritto e nella stesura di questa tesi. Ai miei amici.
  • 3. Indice 1 Introduzione...................................................................................................5 1.1 Descrizione del problema.......................................................................5 1.2 Motivazioni............................................................................................6 1.3 Argomenti trattati...................................................................................7 2 Sentiment Analysis.........................................................................................8 2.1 Fondamenti scientifici............................................................................9 2.1.1 Modello dell'Opinion Mining.........................................................9 2.1.2 Classificazione del sentimento.....................................................12 2.1.3 Opinion Mining basato sulle caratteristiche.................................13 2.2 Determinazione dell'orientamento dei termini.....................................19 2.3 Determinazione della soggettività dei termini.....................................20 2.4 Progetti per il Sentiment Analysis........................................................21 3 SentiWordNet e WordNet-Affect.................................................................21 3.1 WordNet...............................................................................................21 3.1.1 La nascita di WordNet..................................................................22 3.1.2 Forme di parole e significato........................................................23 3.1.3 Le relazioni di WordNet...............................................................24 3.1.4 I nomi di WordNet........................................................................25 3.1.5 Gli aggettivi di WordNet..............................................................30 3.1.6 I verbi di WordNet........................................................................30 3.2 Descrizione di SentiWordNet...............................................................31 3.2.1 Una breve storia di SentiWordNet................................................33 3.2.2 Lo sviluppo di SentiWordNet 3.0.................................................34 3.2.3 Struttura del database...................................................................37 3.3 Descrizione di WordNet-Affect............................................................40 3.3.1 Lo stato dell'arte dei lessici affettivi.............................................40 3.3.2 Lo sviluppo di WordNet-Affect e del suo nucleo.........................42 3.3.3 L'estensione del nucleo con le relazioni di WordNet...................44 4 Sviluppo del software..................................................................................46 4.1 Utilizzo del parser TUP........................................................................49 4.1.1 Sotto-moduli del parser................................................................50 4.1.2 Chunker........................................................................................50 4.1.3 Analisi della coordinazione..........................................................51 4.1.4 Dipendenze verbali.......................................................................52 4.2 Utilizzo di MultiWordNet....................................................................53 4.2.1 Descrizione di MultiWordNet......................................................55 4.2.2 Architettura del database..............................................................56 4.3 Implementazione dell'algoritmo di Lesk per la disambiguazione dei termini polisemici (WSD)...........................................................................65 1
  • 4. 4.4 La griglia emozionale di Ekman..........................................................68 4.5 Un formato XML per l'output dell'annotatore......................................72 5 Conclusioni..................................................................................................75 2
  • 5. Indice delle illustrazioni Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche....................11 Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche.......................12 Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche ........12 Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del comparativo............................................................................16 Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del comparativo...............................................................................................................17 Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del comparativo...............................................................................................................17 Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del superlativo..............................................................................18 Figura 8: Matrice lessicale di WordNet......................................................................22 Figura 9: I synset primitivi........................................................................................28 Figura 10: Relazione tra concetti primitivi................................................................29 Figura 11: Relazione tra i nomi in WordNet..............................................................29 Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet..........31 Figura 13: Esempio di rappresentazione del termine “interesting” in SentiWordNet........................................................................................................32 Figura 14: Esempio di rappresentazione dell'aggettivo “estimable” in SentiWordNet........................................................................................................32 Figura 15: Esempio di rappresentazione del verbo “short” in SentiWordNet.............32 Figura 16: Struttura del data base di SentiWordNet...................................................38 Figura 17: Esempio di dati in SentiWordNet.............................................................38 Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet.......39 Figura 19: A-labels con i rispettivi synset di esempio................................................43 Figura 20: Categorie e termini...................................................................................44 Figura 21: Architettura del sistema TUP....................................................................49 Figura 22: Matrice lessicale multilingua di MultiWordNet........................................55 Figura 23: Architettura di MultiWordNet...................................................................56 Figura 24: Tipi di relazioni in MultiWordNet............................................................59 Figura 25: L'algoritmo di Lesk..................................................................................66 Figura 26: Come funziona il metodo disambiguate...................................................67 Figura 27: Formato del file XML creato dal programma...........................................73 3
  • 6. Figura 28: Albero del file XML creato dal programma..............................................74 Figura 29: File XML creato dal programma dando in input un file con delle recensioni..................................................................................................................74 4
  • 7. 1 Introduzione In questa tesi sarà illustrato il lavoro di progettazione e realizzazione di un sistema software per l'annotazione e l'analisi del contenuto emozionale dei testi. 1.1 Descrizione del problema Il web contiene molte opinioni riguardo svariati argomenti (prodotti, personaggi famosi, film, …) espresse in appositi siti. Di conseguenza, il problema del Sentiment Analysis (chiamato anche Opinion Mining), di cui mi sono occupato principalmente nel periodo di tirocinio, è stato oggetto di interesse in questi ultimi anni. Il materiale usato per il test del programma, progettato e implementato durante il periodo di stage, riguarda recensioni di film e di ristorazione. I siti spesso associano dei meta-dati ad ogni recensione indicando quanto questa sia positiva o negativa. Ma l'opinione del lettore può essere diversa da quella di colui che ha scritto la recensione. Ad esempio, il giudizio del lettore potrebbe essere influenzato dalla trama di un film, mentre i recensori potrebbero ritenere più importanti altri aspetti, come i caratteri dei protagonisti. Di conseguenza, il lettore è costretto a leggere molte recensioni fino a trovare quella che più gli interessa. Il problema può essere suddiviso in quattro sotto-problemi: • Identificare le caratteristiche di un prodotto • Identificare le opinioni sulle caratteristiche • Determinare la polarità delle opinioni • Ordinare le opinioni sulla base delle loro intensità Il sistema che ho progettato tratta solo un sottoinsieme di tutte le possibili 5
  • 8. annotazioni semantiche dei meta-dati: in particolare al momento annota le coppie <nome, aggettivo> e da ogni coppia costruisce una tripla <nome, aggettivo, griglia dei valori delle emozioni che l'utente attribuisce a ogni coppia nome-aggettivo>. In particolare, il sistema utilizza il TUP (Turin University Parser) per analizzare uno stream continuo in input (letto da un file o da tastiera) in modo da determinare la sua struttura grammaticale grazie ad una data grammatica formale. L'obiettivo del tirocinio è stato quello di capire come possono essere classificate le emozioni che compaiono in un testo di recensione e di sviluppare un programma che sia in grado di acquisire le emozioni che l'utente percepisce dalla combinazione nome-aggettivo, leggendo lo stream dato in input, tramite l'esplicita richiesta di inserimento da tastiera. I risultati saranno salvati in un documento XML che conterrà l'output prodotto dal software. 1.2 Motivazioni Individuare, analizzare e annotare il contenuto emozionale dei testi è un problema difficile soprattutto per i calcolatori, che possono commettere vari tipi di errori. Errori nel giudicare l'opinione di una frase del tipo “Ho evitato un incidente” rispetto all'opinione della frase “Ho causato un incidente”. Il sistema sopra descritto si occupa di individuare e annotare in maniera automatica solo le coppie nome-aggettivo presenti in una certa frase. Il sistema è attualmente in fase di testing. L'individuazione di questi errori, commessi durante l'elaborazione dei file, è molto importante sia per valutare le prestazioni del sistema sia per correggere questi errori. Serve quindi uno strumento che permetta di distinguere in maniera rapida e semplice la differenza tra frasi ambigue. 6
  • 9. 1.3 Argomenti trattati La tesi si articola in: Capitolo 1: Viene illustrato il Sentiment Analysis con i relativi studi effettuati, la determinazione dell'orientamento e della soggettività dei termini e le soluzioni possibili al problema. Capitolo 2: Vengono presentati SentiWordNet e WordNet-Affect con un'excursus su WordNet, il loro sviluppo, la classificazione dei sentimenti, i pregi e i difetti. Capitolo 3: Viene spiegato il lavoro svolto durante il tirocinio. Si inizia con una descrizione dei metodi usati e dei principi seguiti nella costruzione del software. Segue la presentazione del TUP (Turin University Parser), di MultiWordNet, della griglia emozionale usata per la memorizzazione dei valori delle emozioni, la struttura dell'xml creato e il funzionamento del software per l'individuazione e l'analisi dei sentimenti contenuti nei testi. Capitolo 4: Contiene le conclusioni e i possibili lavori futuri sul programma sviluppato durante il tirocinio. 7
  • 10. 2 Sentiment Analysis Le informazioni testuali possono essere classificate in due categorie: i fatti e le opinioni. I fatti sono affermazioni oggettive sulle entità e sugli eventi che accadono quotidianamente. Le opinioni, invece, sono affermazioni soggettive che riflettono i sentimenti e le percezioni delle persone sugli eventi. Con il termine Sentiment Analysis ci si riferisce a un recente campo di ricerca nel settore del Trattamento Automatico del Linguaggio il cui scopo è quello di identificare e classificare informazioni di tipo soggettivo che possono essere presenti all'interno di documenti testuali di vario tipo. Dato, quindi, un insieme di documenti testuali che contengono pareri su un oggetto, si vogliono estrarre gli attributi e i componenti dell'oggetto commentato in ogni documento e da questi si vuole determinare se i commenti sono positivi., negativi o neutri. Prima del WWW (World Wide Web), quando un individuo aveva bisogno di prendere una decisione, chiedeva pareri a parenti e amici, mentre, quando un'organizzazione aveva bisogno di trovare opinioni del pubblico sui suoi prodotti e servizi conduceva delle interviste. Con l'avvento del Web si possono postare recensioni di prodotti sui siti commerciali e i propri pareri sui forum, sulle discussioni tra i gruppi e sui blog. Ma trovare opinioni sul Web può essere arduo poiché esiste un gran numero di fonti e ognuna di esse contiene molte informazioni. È molto difficile, quindi, per un lettore umano trovare le fonti, estrarne frasi pertinenti, leggerle e a volte tradurle, riassumerle e organizzarle in forme utilizzabili. Il Sentiment Analysis, conosciuto anche con il nome di Opinion Mining, nasce con l'esigenza di rendere meno difficile all'utente la ricerca di opinioni sul Web. Le ricerche in questo campo sono iniziate con l'individuare parole che esprimono un sentimento (ad esempio grande, meraviglioso, disgustoso, orrido, bello,...) per poi lavorare su tali parole identificando i loro orientamenti semantici e la loro soggettività. 8
  • 11. 2.1 Fondamenti scientifici 2.1.1 Modello dell'Opinion Mining In generale, le opinioni possono essere espresse su ogni cosa, ad esempio, un prodotto, un servizio, un individuo, un'organizzazione o un evento. Il termine “oggetto” è usato per denotare l'entità sulla quale si commenta. Un oggetto è costituito da un insieme di componenti (o parti) e un insieme di attributi. Ogni componente può anche avere i suoi sotto-componenti e il suo insieme di attributi e così via. In questo modo l'oggetto può essere gerarchicamente decomposto sulla base delle relazioni. Un oggetto è, quindi, un'identità che può essere un prodotto, una persona, un evento o un'organizzazione. Esso è associato a una coppia, O: (T, A) in cui T è una gerarchia o tassonomia di componenti (o parti) e sotto-componenti di O, e A è un insieme di attributi di O. Ogni componente ha il suo proprio insieme di sotto-componenti e attributi. In questa struttura gerarchica ad albero, la radice è l'oggetto stesso. Ogni nodo è un componente o sotto-componente dell'oggetto. Ogni link è una delle parti del rapporto e ogni nodo è associato a un insieme di attributi. Un parere può essere espresso in qualsiasi nodo e su qualsiasi attributo del nodo. Il termine “caratteristiche” è usato per rappresentare entrambi i componenti e gli attributi. Si noti che in questa definizione l'oggetto in sé è anche una caratteristica, che è la radice dell'albero. Si considera quindi un documento d, che può essere una recensione del prodotto, un post sul forum o un blog che valuta un particolare oggetto O. Nel caso più generale, d è costituito da una sequenza di frasi d = <s 1, s2, …, sm>. L'opinione, valutata su una caratteristica f di un oggetto O in un documento d, è un gruppo di frasi, una di seguito all'altra, nello stesso documento d, che esprime un'opinione positiva o negativa su f. 9
  • 12. È possibile che una sequenza di frasi esprima un opinione su un oggetto o su una sua caratteristica. È anche possibile che una singola frase esprima opinioni su più di un oggetto o sulle sue caratteristiche. Un esempio può essere la frase “E il risultato che si ottiene è ottimo, anche grazie all’alchimia che si è creata tra i due perfetti protagonisti”. L'orientamento semantico di un'opinione su una caratteristica f stabilisce se il parere è positivo, negativo o neutro. Mettendo insieme le cose, possono essere definiti un modello per un oggetto e un insieme di opinioni sulle caratteristiche dell'oggetto. Tutto ciò si chiama il modello Opinion Mining basato sulle caratteristiche: un oggetto O è rappresentato con un insieme finito di caratteristiche, F={f1, f2, …, fn}, che include l'oggetto stesso. Ogni carattestica fi ∈ F può essere espressa con un insieme finito di parole o frasi W i, che sono sinonimi. Cioè esiste un insieme di insiemi di sinonimi W = {W1, W2, …, Wn} per le n caratteristiche. In un documento d che valuta un oggetto O, un titolare j dell'opinione commenta su un sottoinsieme di caratteristiche Sj ⊆ F. Per ogni caratteristica fk ∈ Sj sulla quale il titolare j commenta, lui/lei sceglie una parola o una frase da W k per descrivere la caratteristica ed esprime un'opinione positiva, negativa o neutra su f k. Il compito dell'opinion mining è quello di scoprire tutte queste cose nascoste e pezzi di informazione da un documento dato. L'output sarà un insieme di quadruple ognuna delle quali è denotata da (H, O, f, SO), in cui H è il proprietario dell'opinione, O l'oggetto, f la caratteristica dell'oggetto e SO è l'orientamento semantico dell'opinione espressa sulla caratteristica f in un frase di d. Le opinioni neutre vengono ignorate poiché non sono utili. I problemi che possono essere identificati: 1. L'estrazione delle caratteristiche dell'oggetto che sono state commentate in ogni documento d ∈ D. 2. Determinare se i pareri sulle caratteristiche sono positive, negative o neutre. 10
  • 13. 3. Raggruppamento dei sinonimi delle caratteristiche (come titolari di opinioni diverse possono usare parole diverse o una frase per esprimere la stessa caratteristica). Ci sono molti modi di utilizzare i risultati del data mining. Un modo semplice è quello di produrre una sintesi, basata sulle caratteristiche, dei pareri sull'oggetto. Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche Questa figura riassume le opinioni in una serie di recensioni di una particolare macchina fotografica digitale. I titolari dell'opinione sono stati omessi. Nella figura, "CAMERA" rappresenta la macchina fotografica stessa (gerarchicamente, il nodo radice dell'oggetto). 125 commenti hanno espresso pareri positivi e 7 giudizi negativi sulla fotocamera. La "Qualità dell'immagine" e le "Dimensioni" sono due caratteristiche del prodotto. 123 recensioni hanno espresso pareri positivi, e solo 6 recensioni negative sulla qualità delle immagini a differenza delle 82 positive e 10 negative sulle dimensioni della fotocamera. Con tale sintesi, l'utente può facilmente vedere cosa pensano i clienti sulla fotocamera digitale. Se l'utente è molto interessato a una particolare funzione, può eseguire il drill down (funzione che permette di penetrare nei dati a diversi livelli di gerarchie) seguendo il collegamento <individual sentences> per capire se piace o no ai consumatori. 11
  • 14. Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche 2.1.2 Classificazione del sentimento La classificazione del sentimento è stato ampiamente studiata nell'elaborazione del linguaggio naturale (NLP). Dato un insieme di documenti D, si determina se ogni documento d ∈ D esprime un parere positivo o negativo su un oggetto. Per esempio, dato un insieme di recensioni di film, il sistema li classifica in recensioni positive e negative. Questo è chiaramente un problema di apprendimento per la classificazione. Questo approccio è simile ma anche diverso da quello classico che classifica i documenti in classi per tema predefinito, ad esempio, la politica, scienze, e lo sport. In base alla classificazione, le parole sono molto importanti. Le parole stesse che indicano opinione positiva o negativa sono importanti. Esempi di parole sono: grande, eccellente, straordinario, orribile, cattivo, peggio, ... Ci sono molte tecniche esistenti ma la maggior parte di esse riguardano forme di 12
  • 15. apprendimento per la classificazione. Esistono algoritmi specifici per la classificazione del sentimento che sfruttano opinioni, parole e frasi insieme a funzioni di punteggio. Ogni documento di valutazione (ad esempio una recensione) si concentra su un oggetto O e contiene solo opinioni di un titolare dell'unico parere. In questo modo la classificazione del sentimento determina fondamentalmente l'orientamento semantico del parere espresso sull'oggetto O in ogni documento che soddisfa le ipotesi espresse sopra. Oltre al livello di documento per la classificazione del sentimento, i ricercatori hanno anche studiato la classificazione a livello della frase, cioè, hanno classificato ogni frase come una frase soggettiva o oggettiva e/o come espressione di un parere positivo o negativo. Analogamente alla classificazione a livello di documento, la classificazione del sentimento a livello di frase non considera le caratteristiche dell'oggetto che sono state commentate in una frase. Le frasi composte sono un problema per un'approfondita analisi. Tali frasi, spesso, esprimono più di un'opinione, ad esempio, "La storia del film s'intreccia, attraverso metafore o esplicite parodie, con i reali problemi di cui al giorno d'oggi può soffrire un qualsiasi marchio pluridecennale che ha lasciato un segno e rischia di sprofondare in un ricordo sterile e passivo.". 2.1.3 Opinion Mining basato sulle caratteristiche Classificare i testi a livello di documento o a livello di frase non dice quello che il titolare dell'opinione esprime. Avere un documento positivo su un oggetto non significa che il parere è positivo su tutti gli aspetti o sulle caratteristiche dell'oggetto. Analogamente, avere un documento negativo non significa che l'oggetto non piace per niente. In un documento, il titolare dell'opinione scrive, generalmente, sia gli aspetti positivi sia quelli negativi dell'oggetto, anche se il sentimento generale di quell'oggetto può essere positivo o negativo. Per ottenere questi aspetti in dettaglio, bisogna andare al livello di funzionalità. 13
  • 16. Sulla base del modello presentato precedentemente, esistono tre tipi di opinion mining: 1. Identificare le caratteristiche dell'oggetto: ad esempio, nella frase "La qualità delle immagini di questa fotocamera è straordinario ", la caratteristica dell'oggetto è" la qualità delle immagini ". È possibile sia un approccio supervisionato sia senza supervisione. La tecnica trova sostanzialmente sostantivi frequenti e sintagmi nominali, come caratteristiche, che di solito sono le caratteristiche originali. L'estrazione di molte informazioni tecniche sono altresì applicabili, per esempio, nei campi condizionali casuali (CRF), nei modelli di Markov (HMM), e in molti altri. 2. Determinare gli orientamenti dell'opinione: questa attività determina se i pareri sulle caratteristiche sono positive, negative o neutre. Nella frase citata nel punto 1, il parere sulla "qualità dell'immagine" è positivo. Si può usare un approccio basato sul lessico che utilizza fondamentalmente l'opinione su parole e frasi in una frase per determinare l'orientamento di un parere su una caratteristica. È possibile anche un approccio di etichettatura, uno supervisionato e uno senza supervisione. 3. Raggruppamento dei sinonimi: le caratteristiche stesse dell'oggetto possono essere espresse con parole o frasi diverse. L'esprimere direttamente pareri positivi o negativi su un oggetto o sulle sue caratteristiche è solo una forma di valutazione. Confrontare, invece, l'oggetto con altri oggetti simili è ancora un'altra forma di valutazione. Una frase di esempio può essere "Tom è migliore di Peter". In generale, una frase comparativa esprime una relazione basandosi sulle somiglianze o differenze tra gli oggetti. In inglese, per i confronti tra oggetti o persone si usano le forme comparative e superlative degli aggettivi o degli avverbi. La struttura di un comparativo normalmente consiste nell'utilizzo di un aggettivo o di un avverbio, più il suffisso -er, 14
  • 17. o il modificatore "more" o "less" davanti all'aggettivo o all'avverbio. La struttura di un superlativo normalmente è composta dall'aggettivo o dall'avverbio, più il suffisso -est, o il modificatore "most" o "least" prima dell'aggettivo o dell'avverbio. In italiano per il comparativo si fa precedere l'aggettivo dall'avverbio più (comparativo di maggioranza), meno (comparativo di minoranza) o uguale (comparativo di uguaglianza) oppure con forme particolari ad esempio grande → maggiore. Per il superlativo italiano invece si utilizzano le regole della figura 6. L'estrazione del confronto tra le frasi è costituito essenzialmente dall'identificazione delle caratteristiche degli oggetti confrontati e dal valutare se sono caratteristiche opposte. Per confrontare l'uso degli aggettivi in italiano e in inglese per la costruzione della forma comparativa ci serviamo della tabella seguente che elenca le principali possibilità: 15
  • 18. 1) 2) 3) 4) Per indicare una maggiore intensità di un aggettivo lo si fa precedere dall'avverbio più (comparativo di maggioranza) Per indicare una minore intensità di un aggettivo lo si fa precedere dall'avverbio meno (comparativo di minoranza) Questo vino è più forte di/che quello Questo vino è meno forte di quello Questo vino è Per indicare un'intensità simile di un tanto (così) aggettivo lo si fa precedere dall'avverbio forte quanto tanto (o così) (comparativo di uguaglianza) (come) quello con una forma particolare normale comparativo grande maggiore piccolo minore buono migliore cattivo peggiore precedente anteriore seguente posteriore interno interiore basso inferiore esterno esteriore alto superiore superlativo massimo minimo ottimo pessimo primo ultimo intimo infimo estremo supremo This wine is stronger than that one This wine is less strong than that one This wine is as strong as that one idiomatic Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del comparativo Alcuni avverbi e locuzioni avverbiali possono avere il grado comparativo e superlativo, come gli aggettivi; sono gli avverbi di modo (eccetto quelli terminanti in -oni) e alcuni di tempo, di luogo e di quantità Es. più chiaro - chiarissimo, più tardi - tardissimo, più vicino - vicinissimo, più in fretta - assai in fretta, più terra terra - assai più terra terra 16
  • 19. Certi avverbi hanno forme particolari di comparativo e superlativo (come gli aggettivi corrispondenti). Essi sono: bene male grandemente internamente bassamente altamente meglio peggio maggiormente interiormente* inferiormente superiormente* ottimamente pessimamente massimamente intimamente infimamente supremamente Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del comparativo Alcuni avverbi e locuzioni avverbiali possono avere forme alterate: bene male adagio poco tardi piano benino, benone malino, maluccio, malaccio adagino pochino, pochetto, pochettino tardino, tarduccio pianino Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del comparativo 17
  • 20. Per il superlativo invece: con l'aggiunta del suffisso -issimo alla forma plurale del maschile di un aggettivo a) caldi (caldo), grandi (grande) 1) di un nome b) amici (amico) alla forma in "i" di un avverbio c) *mali, *subiti (subito, male) a) caldissimo, a) hottest, biggest grandissimo b) friendliest b) amicissimo c) at once c) subitissmo, malissimo molto (completamente, facendo precedere l'aggettivo da tanto, assai, 2) un avverbio immensamente, terribilmente ecc.) nuovo facendo precedere l'aggettivo da (1) il più nuovo "il più" (1). 3) (2) il vestito il più nuovo Alle volte l'articolo "il" può che ho essere ripetuto due volte (2). 4) ripetendo l'aggettivo due volte bello bello facendo precedere l'aggettivo da 5) tutto pulito tutto acre > acerrimo integro > integerrimo celebre > celeberrimo 6) con una forma diversa misero > miserrimo benefico > beneficentissimo stra > straricco sopra > sovraccarico facendo precedere l'aggettivo da 7) super > superfortunato un prefisso ultra > ultraefficiente iper > ipersensibile bagnato fradicio bello da morire in casi particolari formando una 8) bello e buono espressione idiomatica brutto da morire 9) con la preposizione di il re dei re very new the newest all clean idiomatic extra rich overloaded super lucky ultra efficient oversensitive soaking wet incredibly beautiful outright incredibly ugly The King of Kings Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del superlativo 18
  • 21. 2.2 Determinazione dell'orientamento dei termini Determinare l’orientamento (o polarità) consiste nel determinare se un testo soggettivo esprime un’opinione positiva o negativa sull’argomento mentre determinare la forza dell’orientamento consiste nel determinare quanto l’opinione positiva o negativa sia forte (Debolmente Positiva, Mediamente, Fortemente …). Il determinare l'orientamento dei termini è il task principale: scrivere una risorsa con termini etichettati positivi o negativi è abbastanza facile, ma determinare se questi termini sono soggettivi è molto arduo. Nel 1997 Hatzivassiloglou e McKeown, tentarono di predire l’orientamento analizzando coppie di aggettivi (unite da e, o, oppure, ...). L’intuizione di base sta nel fatto che l’unione di aggettivi è soggetta a vincoli sull’orientamento: “e” unisce aggettivi dello stesso orientamento mentre “ma” orientamenti opposti. Partendo da questo concetto, si genera un grafo dove i nodi sono i termini connessi da due tipi di archi: “uguali”, “opposti”. Si applica poi un algoritmo di clustering per partizionare il grafo in un gruppo positivo e uno negativo. Nel 2003 Turney, Littman partono da dei piccoli set di termini soggettivi (seed), uno con termini positivi (buono, bello, splendente, …) e uno con termini negativi (cattivo, brutto, disgustoso, ...). I termini vengono analizzati calcolando l’associazione semantica del termine al seed (Pointwise Mutual Information – PMI). L'orientamento viene dato dalla formula O(t) = Σ(t – tp) - Σ(t – tn) ovvero dato un termine t il suo orientamento O(t) (la positività è determinata dal segno) è calcolato dalla somma delle distanze con i componenti positivi del seed meno la somma con le componenti negative. Nel 2004 Kamps utilizza il grafo definito sugli aggettivi utilizzando la relazione di sinonimia all’interno di WordNet. Determina quindi l’orientamento di un aggettivo t comparando la lunghezza del cammino minimo tra t e la parola positiva e la lunghezza del cammino minimo tra t e la parola negativa. Se t è più vicino alla parola 19
  • 22. positiva sarà classificato come positivo, altrimenti sarà classificato come negativo. Sempre nello stesso anno, Kim e Hovy cambiano approccio dando un punteggio di positività e uno di negatività ai termini in modo che sia evidenziato come questi termini possano avere orientamenti sia positivi che negativi, e con quanta forza portano quell’orientamento. Si inizia considerando un set di termini positivi e negativi (seed) e lo si espande aggiungendo sinonimi e antinomi. Il sistema classifica un termine t basandosi sulla probabilità di apparire nel set espanso. Uno dei limiti di questo metodo è che possono essere classificati solo termini che condividono sinonimi o antinomi con i seed. 2.3 Determinazione della soggettività dei termini Determinare la soggettività di un documento consiste nel determinare se un testo descrive un fatto in modo oggettivo (senza opinioni) oppure esprime un’opinione sull’argomento. Il determinare la soggettività dei termini è un task chiave che permette di scremare i termini interessanti (Soggettivi) da quelli non interessanti (Oggettivi). Nel 2003 Riloff adotta un algoritmo bootstrap per determinare i nomi soggettivi. Per il bootstrap viene usato un set di 20 termini giudicati dall’autore come fortemente soggettivi e molto frequenti nel testo da cui il nome proviene. Nel 2004 Baroni e Vegnaduzzo applicano l'algoritmo PMI di Turney e Littman per determinare la soggettività dei termini. Il metodo utilizza un set di 35 aggettivi marcati come soggettivi da un valutatore umano, per dare un punteggio di soggettività. 20
  • 23. 2.4 Progetti per il Sentiment Analysis Il Sentiment Analysis è un settore di ricerca in rapido sviluppo e di grande importanza per l'NLP. Ma si evince come l'applicazione abbia necessariamente bisogno di un corpus di riferimento. Assumono importanza fondamentale i progetti che mirano a costruire dei corpus di supporto come SentiWordNet, WordNet-Affect, OntoText, FrameNet, … In questa tesi saranno illustrati SentiWordNet e WordNet-Affect. 3 SentiWordNet e WordNet-Affect Per capire al meglio cosa sono e di cosa trattano SentiWordNet e WordNet-Affect è necessaria una presentazione di WordNet. Infatti questi due progetti, che in seguito andrò a illustrare, sono estensioni di WordNet stesso. 3.1 WordNet WordNet è un sistema di ricerca lessicale che si basa sulle attuali teorie psicolinguistiche formulate sulla linguistica umana. In WordNet le parole sono disposte alfabeticamente ed i loro significati elencati tutti assieme in relazione all'uso più frequente a differenza di un dizionario tradizionale che è basato sulle procedure storiche di organizzazione delle informazioni lessicali. In WordNet le informazioni sono memorizzate in base al loro significato ed alle loro categorie sintattiche e sono legate tra loro tramite diversi tipi di relazioni. WordNet divide il significato di una parola in due concetti: la “Word Form”, la forma scritta e la “Word Meaning”, il concetto espresso da tale parola. Il punto di inizio della classificazione delle parole sono le relazioni che intercorrono fra il lemma e il significato. 21
  • 24. La base della teoria sta nella matrice lessicale (figura ): nelle righe vengono elencati i significati delle parole e nelle colonne i lemmi. La presenza di un valore non nullo di Eij all’interno della matrice implica che la forma F j viene espressa dal significato Mi. Se abbiamo più valori non nulli nella stessa riga siamo davanti a dei sinonimi: forme diverse hanno stesso significato; più valori non nulli nella stessa colonna esprimono invece un concetto di polisemia: la stessa forma F j ha più significati. Figura 8: Matrice lessicale di WordNet WordNet è quindi organizzato su Relazioni Semantiche che coinvolgono le relazioni fra significati (rappresentati in synset) e su Relazioni Lessicali che stabiliscono le relazioni fra i singoli lemmi (le forme). 3.1.1 La nascita di WordNet WordNet nasce nel 1985 come risultato di un progetto a cui hanno partecipato linguisti e psicologi dell’Università di Princeton. Dall’idea iniziale di fornire un'ulteriore risorsa on line, rispetto ad una semplice ricerca di tipo alfabetico, si è arrivati ad un vero e proprio dizionario basato sui principi della psicolinguistica. La differenza più evidente tra WordNet e un dizionario classico è che il primo divide il lessico in 5 categorie sintattiche: sostantivi, verbi, aggettivi, avverbi e function words (attualmente non trattati). I sostantivi sono organizzati in una memoria lessicale come 22
  • 25. gerarchie di specializzazione (iperonimi/iponimi); i verbi sono strutturati in una gerarchia mediante la relazione di troponimia (un verbo è troponimo di un altro verbo quando esprime una particolare azione, per es. camminare/muoversi); gli aggettivi si presentano invece come iperspazi n-dimensionali. 3.1.2 Forme di parole e significato La semantica lessicale parte dal concetto che una parola è una associazione fra la sua espressione ed i concetti che essa stessa esprime. Queste corrispondenze sono rappresentate nella matrice lessicale. La sinonimia e la polisemia sono aspetti complementari della Matrice Lessicale. Le relazioni sono del tipo “molti a molti”. La matrice lessicale potrebbe essere rappresentata, in un diagramma, da due blocchi con due frecce che partendo da questi vanno in entrambe le direzioni. I due blocchi saranno chiamati rispettivamente “Word Meaning” e “Word Form”. Le due frecce indicheranno che colui che parla può partire da un significato “Word Meaning” e cercare una forma adeguata ad esprimerlo, oppure partendo da una “Word Form” ricercarne il giusto significato. WordNet quindi si è posto l’obiettivo di voler esprimere due diverse relazioni: 1. relazioni semantiche fra i significati 2. relazioni lessicali fra le forme. La costruzione della base di dati si è scontrata con l’esistenza di due teorie: la teoria costruttiva e la teoria differenziale. Secondo la teoria costruttiva un'accurata costruzione di un concetto deve essere supportata da un numero sufficiente di informazioni. Tali informazioni devono consentire di caratterizzarlo in modo da poterlo distinguere da altri possibili concetti lessicali e di fornirne una corretta definizione. La teoria differenziale, molto meno rigida, esprime il fatto che la rappresentazione di un concetto possa essere fatta solo con elementi che permettano di distinguerlo da 23
  • 26. altri. Per essere più chiari possiamo ricorrere ad un esempio: La parola pianta ha diversi significati: · nome generico che indica qualsiasi vegetale fornito di organi specializzati · proiezione orizzontale di un oggetto · parte inferiore del piede Nella teoria costruttiva per differenziare i due significati dobbiamo fornire abbastanza informazioni in modo da distinguerli. In quella differenziale basta fornire una lista di forme che lo possano esprimere. Il significato M può essere espresso con una lista di forme (F1, F2, …). In questo modo abbiamo per ogni significato una lista di forme fra di loro in relazione di sinonimia. L’insieme viene indicato come Synonym Set, chiamato Synset. Ritornando al nostro esempio, per distinguere i due significati sarebbe stato sufficiente citarne due sinonimi: vegetale per il primo, e mappa per il secondo. Nel caso in cui non esista un sinonimo appropriato a differenziare quel significato da altri, si fa ricorso ad una glossa ovvero una breve spiegazione del significato. Per il terzo significato del nostro esempio si potrebbe utilizzare la glossa: parte inferiore del piede. 3.1.3 Le relazioni di WordNet WordNet si basa sulle relazioni semantiche fra concetti; tra quelle implementate da WordNet esistono: · Sinonimia: Due concetti sono fra loro sinonimi se la sostituzione di uno con l’altro non cambia il valore di verità della frase nella quale viene fatta la sostituzione quindi due concetti sono fra loro sinonimi in un contesto linguistico C se la 24
  • 27. sostituzione di un concetto con l’altro nel contesto C non ne altera il valore di verità. Un esempio è la parola pianta sinonimo della parola mappa. · Antonimia: L’antonimo di una parola x viene definito quasi sempre come not x. Le parole ricco e povero sono fra loro antonimi anche se essere non ricchi non implica necessariamente essere poveri: infatti, si può essere né ricchi, né poveri. · Iponimia/Iperonimia: Un concetto rappresentato dal synset {x 1, x2, x3,…} viene detto iponimo del concetto rappresentato dal synset {y 1, y2,…} se si può accettare una frase costruita come: Un x è un (un tipo di ) y. L’iponimia è transitiva ed è antisimmetrica; essa genera una struttura semantica gerarchica secondo la quale gli iponimi (concetto figlio) stanno sotto il proprio iperonimo (concetto genitore). · Meronimia/Olonimia: è una relazione semantica, ed esprime il concetto di parte di. {x1, x2,…} è un meronimo di un concetto rappresentato da {y 1, y2,…} se si possono accettare frasi scritte come x è parte di y. La relazione di14 meronimia è transitiva (con le riserve che dopo spiegheremo) e antisimmetrica e può anch’essa essere usata per costruire relazioni gerarchiche. Ne sono esempio le parole ala e becco. esistono varie tipologie di relazioni parte di: componente/oggetto, elemento/insieme, porzione/intero, materiale/oggetto, azione/attività, località/area e fase/processo. · Relazioni Morfologiche: Un'importante classe di relazioni lessicali fra forme di parola. Un esempio è quello del plurale dei nomi. Se un utente inserisce la parola chiese, e lancia la ricerca, il programma non dovrebbe dare come risultato l’assenza della parola nel DataBase. Se la parola chiese è in relazione morfologica con il suo singolare, la ricerca viene fatta sul termine chiesa. 3.1.4 I nomi di WordNet Un nome è costituito da un termine generale che lo descrive (iperonimo) e dall'elenco delle sue caratteristiche. La relazione di iponimia introduce quindi il 25
  • 28. concetto di ereditarietà. Un figlio eredita dal genitore tutte le caratteristiche aggiungendone altre che lo specificano e che lo distinguono dagli altri figli. Un esempio può essere un ciliegio è un albero e si distingue dagli altri suoi simili per la durezza del legno, la produzione di frutti, la forma delle foglie, il tipo di radici, ecc. Questa relazione è la base della strutturazione dei nomi in WordNet. La relazione di iperonimia/iponimia è la relazione sulla quale si basa la teoria sul sistema di memoria semantica. Questo sistema è di tipo gerarchico e può essere schematizzato come un albero. La proprietà fondamentale di un albero è che un cammino dalla radice alle foglie non debba mai essere un loop. L’albero viene costruito seguendo la catena di termini in relazione di iponimia. La struttura creata è una sequenza di livelli che va da molti termini specifici al livello più basso a pochi termini generici a livello più alto. Con questo sistema si ovvia al problema della ridondanza, soprattutto per data-base che contengono molti termini: il termine al livello n ha tutte le proprietà del termine al livello n-1 ad esso collegato e ne aggiunge delle altre. E così via scendendo o salendo nella scala gerarchica. Basta quindi memorizzare solo le informazioni che caratterizzano l’oggetto stesso, mentre si possono tralasciare quelle che già sono memorizzate per l’oggetto genitore. In WordNet per le relazione di iperonimia/iponimia si utilizzano i simboli @ e ~: se Wh @-> Ws allora esiste la relazione inversa W s~->Wh. Quindi se la parola W s è un iperonimo del nome Wh allora Wh è un iponimo di Ws. La relazione semantica @-> indica una generalizzazione mentre la relazione inversa ~-> indica una specializzazione. Se synset della parola albero è {albero, pianta, @ conifera, ~….} allora la parola pianta è un iperonimo di albero, ed equivale a scrivere: albero@->pianta. Nel synset relativo alla parola pianta si troverà pianta~->albero. Il synset della parola pianta è {pianta, flora, @ organismo, @ albero, ~…} in cui i puntini indicano che la lista di relazione potrebbe continuare con altri termini ed i relativi puntatori. Sulla base della teoria del sistema gerarchico la costruzione dell’albero parte da un'unica gerarchia, quindi la radice deve essere semanticamente piena. Di solito 26
  • 29. come radice si prendere in considerazione un termine astratto come {entità} e si inserisce {oggetto, cosa} e {idea} come suoi iponimi. Questa metodologia però porta ad avere poco contenuto semantico. L’alternativa, adottata da WordNet, è quella di partizionare i nomi in un insieme di synset primitivi, considerando un numero relativamente piccolo di concetti generici da usare come radici semantiche per costruire altrettante gerarchie separate. Nella figura …, qui di seguito, vengono elencati i 25 synset primitivi; all’interno degli alberi generati da tali radici devono essere contenuti tutti i vocaboli appartenenti alla categoria dei nomi della lingua inglese. Le gerarchie create variano in grandezza e non sono fra loro mutuamente esclusive: sono presenti anche riferimenti incrociati. Una volta scelti i concetti primitivi, ci si è accorti che fra di essi esistevano delle relazioni. 27
  • 30. Figura 9: I synset primitivi 28
  • 31. Figura 10: Relazione tra concetti primitivi Un concetto è costituito da attributi, parti e funzioni e per rappresentarli sono necessarie anche le relazioni incrociate fra categorie lessicali diverse che saranno di tipo diverso: nome-aggettivo, nome-nome e nome-verbo. Figura 11: Relazione tra i nomi in WordNet 29
  • 32. 3.1.5 Gli aggettivi di WordNet La categoria semantica degli aggettivi viene divisa in tre grandi gruppi: · Aggettivi descrittivi · Aggettivi relazionali · Aggettivi Reference-Modifying Un aggettivo descrittivo associa un valore a un attributo del nome cui esso è associato. Un esempio è “casa grande”: grande è un aggettivo descrittivo riferito all’attributo ‘dimensione’ del nome casa. Questo tipo di aggettivi è organizzato per mezzo di uno spazio dimensionale di cui sono noti gli estremi. Per il termine ‘grandezza’ viene definita una scala di valori estesa, ad esempio, fra gli estremi infinitesimo ed enorme. La relazione fondamentale per la definizione di queste scale è l’antonimia. Gli aggettivi relazionali sono aggettivi che derivano dai nomi (ad esempio “atomico” deriva da “atomo”). Sono mantenuti in una lista distinta. Gli aggettivi reference-modifying sono in un insieme piuttosto piccolo e costituiscono una classe chiusa che viene mantenuta separata dagli altri aggettivi. Un esempio è ‘Ieri ho incontrato un mio vecchio amico’. L’aggettivo vecchio può essere riferito alla persona amica e indica che tale persona è anziana oppure può essere riferito all’amicizia indicando che è di lunga data. 3.1.6 I verbi di WordNet Anche i verbi sono organizzati secondo uno schema gerarchico. Nella categoria vengono inclusi anche i “phrasal verbs”. Si suddividono in 15 files diversi: 14 relativi ad altrettanti gruppi semantici che contengono i verbi denotanti azioni o eventi e un file per verbi che denotano stati. 30
  • 33. Le relazioni tra i verbi si basano su implicazione e opposizione. Per l’implicazione, il tipo a cui si fa riferimento è la relazione di troponimia che corrisponde all’iponimia per la categoria lessicale dei nomi. Un esempio di troponimia esempio zoppicare è un modo di camminare. L’informazione memorizzata per i verbi è del tipo predicato-argomento. Infine per ogni verbo nel synset vengono inserite una o più “frames” che indicano le frasi in cui possono comparire. 3.2 Descrizione di SentiWordNet SentiWordNet è un’estensione di WordNet e assegna ad ogni synset tre punteggi: Obj(s), Pos(s) e Neg(s), che stanno a indicare quanto oggettivi, positivi o negativi siano quei termini. L’assunzione di fondo che permette di assegnare i punteggi ai synset è che differenti significati di un termine portano opinioni differenti. Ogni punteggio varia tra 0.0 e 1.0, e la loro somma è sempre 1.0. I punteggi sono anche visibili nella rappresentazione grafica di SentiWordNet secondo questo schema riportato nella figura sottostanta. Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet 31
  • 34. Le figure sotto riportate sono esempi di rappresentazione: Figura 13: Esempio di rappresentazione del termine “interesting” in SentiWordNet Figura 14: Esempio di rappresentazione dell'aggettivo “estimable” in SentiWordNet Figura 15: Esempio di rappresentazione del verbo “short” in SentiWordNet 32
  • 35. 3.2.1 Una breve storia di SentiWordNet Esistono quattro versioni differenti di SentiWordNet: 1. SENTI WORD NET 1.0, presentata da Esuli e Sebastiani nel 2006 e reso pubblicamente disponibile per scopi di ricerca. 2. SENTI WORD NET 1.1, solo discusso dai due ricercatori nel 2007 in una relazione tecnica che non fu mai pubblicata. 2. SENTI WORD NET 2.0, solo discusso nella tesi da Esuli nel 2008 4. SENTI WORD NET 3.0 Poiché le versioni 1.1 e 2.0 non sono state discusse ampiamente in noti pubblicazioni formali, ci si concentra sulle differenze tra le versioni 1.0 e 3.0. La versione 1.0 (analogamente a 1.1 e 2.0) consiste in un'annotazione del precedente WordNet 2.0, mentre la versione 3.0 è un annotazione più recente di WordNet 3.0. Per SentiWordNet 1.0 e 1.1, l'annotazione automatica è stata effettuata tramite una debole supervisione, algoritmo di apprendimento semi-supervisionato. Contrariamente, per SentiWordNet 2.0 e 3.0 i risultati sono solo un passo intermedio del processo di annotazione, poiché sono alimentati dal processo iterativo random-walk che viene eseguito per la convergenza. SentiWordNet 2.0 e 3.0 è l'output del processo random-walk dopo che è stata raggiunta la convergenza. La versione 1.0 e 1.1 usa le glosse dei synset di WordNet come rappresentazioni semantiche dei synset stessi, quando viene invocato il processo di apprendimento semi-supervisionato di classificazione dei testi che classifica le glosse in categorie Pos, Neg e Obj. Nella versione 2,0 il processo di apprendimento semi-supervisionato è il primo passo mentre il processo random-walk è il secondo passo. In SentiWordNet 3.0 tra il processo di apprendimento semi-supervisionato (prima fase) e il processo random-walk (seconda fase) si usano invece le glosse manualmente disambiguate dalla Princeton WordNet Corpus2 Gloss, che si assume siano più accurate rispetto a quelle dell'ExtendedWordNet. 33
  • 36. 3.2.2 Lo sviluppo di SentiWordNet 3.0 Il processo di annotazione automatica, secondo il quale SentiWordNet 3.0 è generato, è costituito da due fasi: uno step di apprendimento semi supervisionato, e un passo random-walk. Il primo passo è simile a quello usato per la generazione di SentiWordNet 1.0 e consiste di quattro sotto-passi: • espansione dell'insieme dei seed • classificatore ternario • classificazione dei synset • combinazione del classificatore Nella prima sotto-fase, vengono automaticamente espansi due piccoli insiemi di seed (uno composto da tutti i synset contenenti sette termini paradigmaticamente positivi e l'altro da tutti i synset contenenti sette termini paradigmaticamente negativi) attraverso le relazioni binarie di WordNet si possono collegare synsets di una determinata polarità con altri synsets o della stessa polarità o di polarità opposta e dall'aggiungere i synset così raggiunti si espandono i due insieme iniziali. Questa espansione può essere essere eseguita con un certo "raggio", ad esempio, con raggio k significa aggiungere all'insieme dei seed tutti i synset che sono distanti meno di k dai membri dell'originale insieme di seed nel grafico collettivo derivante dalle relazioni binarie considerate. Nella seconda sotto-fase, i due insiemi di synset generati nella precedente fase sono usati, insieme a un altro insieme assumendo di avere la proprietà Obj, come insiemi per classificare l'oggettività dei termini. Le glosse dei synset sono usate per la classificazione dell'oggettività. SentiWordNet 1.0 usa il modello “bag of words”, secondo il quale la glossa è rappresentata dall'insieme delle parole che occorrono in 34
  • 37. essa. In SentiWordNet 3.0 disambiguiamo manualmente le glosse rese disponibili dal Princeton WordNet Gloss Corpus, secondo cui una glossa è attualmente una sequenza di synset di WordNet. I classificatori di glossa sono basati tutti su quello che può essere definito modello “bag of synsets”. Nella terza sotto-fase, tutti i synset di WordNet (inclusi quelli aggiunti nella seconda fase)sono classificati come appartenenti a Neg , or Obj tramite il classificatore generato nella seconda fase. La sotto-fase 2 può essere eseguita usando un diverso valore del parametro raggio e più tecnologie accurata di se, apprendimento piuttosto supervisionate. che un L'annotazione classificatore si ternario rivela unico, viene generato un comitato di classificatori ternari, ciascuno dei quali risultano membri di una combinazione diversa di scelte per questi due parametri (raggio e tecnologia di apprendimento). È nato un comitato classificatore composto di 8 membri, derivante da quattro diverse scelte di raggio (k ∈ {0,2,4,6}) e due scelte diverse di tecnologie di apprendimento (Rocchio and SVMs). Nella fase 4 il valore finale Pos (resp., Neg , Obj) di un synset dato viene generato come la sua media Pos (risp., Neg, Obj) attraverso gli otto classificatori della commissione. Il secondo step consiste nel visualizzare WordNet 3.0 come un grafico nell'esecuzione di un processo iterattivo in cui il Pos(s) e il Neg(s), e di conseguenza anche Pos(s), partendo dai valori trovati nel precedente step, possibilmente cambiando ad ogni iterazione. Lo step termina quando il processo iterativo è convergente. Il grafico usato è implicitamente determinato su WordNet dalla relazione binaria definiens – definiendum; in altre parole si assume l'esistenza di un link diretto dal synset s1 al synset s2 se e solo se s1 (definiens) si trova nella glossa del synset s2 (definiendum). L'intuizione di base è che, se la maggior parte i termini che vengono utilizzati per definire un dato termine sono positivi (o negativi), allora vi è un'alta probabilità che il termine in via di definizione sia positivo (o negativo). In altre parole, positività e negatività sono visti come "fluire attraverso il grafico", dai termini usati nelle definizioni ai termini in via di definizione. 35
  • 38. Tuttavia, va osservato che, in WordNet, il definiendum è un synset, mentre il definiens è un termine non disambiguato, poiché le glosse sono termini non disambiguati. Per effettuare lo step abbiamo bisogno di glosse da disambiguare contro WordNet stessa, ad esempio loro devono essere sequenze di synset WordNet. Mentre per effettuare lo step per SentiWordNet 2.0 avevamo usato automaticamente le glosse disambiguate fornite da ExtendedWordNet (Harabagiu et al.), per SentiWordNet 3.0 usiamo le glosse disambiguate manualmente disponibili dal Corpus Princeton WordNet Gloss. La matematica che sta dietro a questo passo è descritto in Esuli e Sebastiani, 2007a. Due le differenti dimensioni processi della SentiWordNet, random-walk positività producendo e della vengono eseguiti per negatività, diverse due rispettivamente, classifiche di del synset WordNet. Tuttavia, i valori numerici restituiti dal processo sono inadatti ad essere utilizzati come punteggi finali Pos e Neg, poiché sono troppo piccoli (il synset top-ranked per la positività otterrebbe un -6 punteggio Pos di 8.03*10 ); di conseguenza, anche i synset positivi top-ranked si rivelerebbero essere neutrali e solo debolmente positivi. Poiché, come abbiamo osservato, entrambi i punteggi di positività e di negatività derivanti dal passo di apprendimento semi-supervisionato seguono una distribuzione che obbedisce alla legge di potenza (pochissimi synset hanno un elevato punteggio Pos / Neg, si mentre sono moltissimi adattati i synset punteggi sono con per una lo funzione più neutri), della forma Fpos(x)=a x (FNeg(x)=a x , nel caso negativo), determinando così A 1 e B1 (o A2 e B2 1 b1 2 b2 nel caso negativo), valori che meglio si adattano all'effettiva distribuzione dei valori. I valori finali Pos(s) (Neg(s) , nel caso negativo) sono quindi determinati applicando le Fpos(x)=a x (FNeg(x)=a x ,nel caso negativo) per la classifica della positività (o 1 della I b1 2 negatività) punteggi Obj(S) b2 prodotto vengono poi dal assegnati processo in modo random-walk. da rendere i tre valori riassunti in uno. Nel caso in cui Pos(s) + Neg (s)> 1 si normalizzano i due valori da sommare Obj fino a 36 uno e si imposta (s) = 03.
  • 39. Come esempio, nella figura la tabella riporta i primi 10 synset top-ranked positivi e i primi 10 negativi in SentiWordNet 3.0. 3.2.3 Struttura del database SentiWordNet è un database contenente i punteggi delle opinioni per i termini che derivano da WordNet. È costruito usando un metodo semi-supervisionato per ottenere i punteggi di polarità dell'opinione dal sottoinsieme di seed che sono conosciuti per contenere la polarità dell'opinione. Ogni insieme di termini che hanno lo stesso significato o synset è associato a tre punteggi numerici, come accennato nei precedenti paragrafi, compresi tra i valori 0 e 1 indicando per ognuno la soggettività, la positività e la negatività. Un'importante caratteristica di SentiWordNet è che il grado di positività e negatività è associato a ogni termine dato ed è possibile per un termine avere valori diversi da 0 tra il punteggio della positività e il punteggio della negatività, secondo la seguente regola: Per un synset si definisce: • Pos(s) → punteggio della positività per il synset s • Neg(s) → punteggio della negatività per il synset s • Obj(s) → punteggio dell'oggettività per il synset s Per la regola del punteggio si applica quanto segue: Pos(s)+Neg(s)+Obj(s)=1 I punteggi positivi e negativi sono sempre dati e l'oggettività può essere implicita dalla relazione: Obj(s)=1-(Pos(s)+Neg(s)). Il database di SentiWordNet viene fornito come file di testo in cui i punteggi sono raggruppati in synset e in part of speech (pos). La tabella seguente descrive una colonna per una entry nel data base riflettendo l'opinione di un synset. 37
  • 40. Figura 16: Struttura del data base di SentiWordNet Figura 17: Esempio di dati in SentiWordNet 38
  • 41. I dati in SentiWordNet vengono classificati in base alla parte del discorso, e ci sono notevoli differenze nel livello di oggettività che un synset potrebbe portare, a seconda del suo ruolo grammaticale. L'informazione sulla parte del discorso nei documenti originali per essere classificati dovranno essere estratti, in modo che possono essere applicati i punteggi di SentiWordNet. Per ottenere questo, un algoritmo di etichettatura della part-of-speech, può essere implementato per classificare automaticamente le parole in categorie in base a parti del discorso dai documenti originali. Dopo l'operazione di tagging di semplici documenti di testo, le informazioni devono essere analizzati in modo che si usi il data base SentiWordNet. Questo processo richiede lo sviluppo di un'applicazione che legge un documento “taggato” e correttamente fa corrispondere i termini e il loro tag di part of speech al punteggio di SentiWordNet. Quando si valutano i punteggi per un dato termine con SentiWordNet, un problema si pone nel determinare per quale specifico synset il termine appartiene a WordNet e che punteggio assegnargli. Un esempio si ha per il termine "pazzo", con quattro synset in WordNet. Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet 39
  • 42. 3.3 Descrizione di WordNet-Affect WordNet-Affect è una risorsa linguistica per una rappresentazione lessicale della conoscenza affettiva. Questa risorsa è stata sviluppata a partire da WordNet, attraverso la selezione e l'etichettatura dei synset che rappresentano i concetti affettivi. La computazione affettiva sta avanzando come un campo che permette una nuova interazione uomo-macchina, oltre all'uso del linguaggio naturale. Vi è la percezione che il futuro dell'interazione uomo-macchina sia nella sfera del divertimento, delle emozioni, del piacere estetico, … Studiare la relazione tra il linguaggio naturale e l'informazione affettiva e trattare la sua trattazione computazionale diventa fondamentale. Per lo sviluppo di WordNet-Affect si è considerato come punto di partenza WordNet Domains, un'estensione multilingue di WordNet, sviluppato presso ITC-irst. In WordNet Domains ogni synset è stato annotato con almeno un'etichetta dominio (ad esempio legge, economia, politica), scelti da un insieme di circa duecento etichette gerarchicamente organizzato. Un dominio può includere synset di diverse categorie sintattiche: per esempio il dominio medicina raggruppa insieme i sensi dai sostantivi, come doctor#1 (il primo senso della parola doctor) e hospital# 1, e dai verbi come operate#7. Per WordNet-Affect, l'obiettivo era di avere un'ulteriore gerarchia di "etichette di dominio affettivo", indipendenti dalla gerarchia di domini, con le quali i synset rappresentano concetti affettivi che sono annotati. 3.3.1 Lo stato dell'arte dei lessici affettivi I primi tentativi di costruire una struttura lessicale per i termini affettivi riguardavano lo studiare quali di questi termini rappresentano realmente delle emozioni e quali criteri di classificazione prendere in considerazione. In particolare, gli approcci semantici lessicali sono fondati sulla convinzione che "è possibile inferire le proprietà emotive dalle parole che esprimono un'emozione." Questo 40
  • 43. approccio è costituito da tre fasi principali. In primo luogo, vengono raccolti i termini emotivi dai dizionari o da testi letterari e giornali. Quindi, un numero fisso di contesti semantici sono fissati: ad esempio i termini di emozione pura oppure lo stato fisico e cognitivo dei termini. Infine, da ogni termine viene estratto un insieme di dimensioni affettive, utilizzando tecniche come l'analisi fattoriale o lo scaling multidimensionale. L'approccio lessicale semantico ha mostrato una serie di importanti questioni. Ortony e Clore hanno rivisto la letteratura sulle etichette emotive, e hanno scoperto che il processo utilizzato per selezionare le parole emotive non ha portato esclusivamente a un dominio di termini emotivi (ad esempio la parola “rabbia” si riferisce ad un'emozione, a uno stato d'animo, e “confusione” ad uno stato cognitivo). Un altro problema è stato delineato da Watson e Tellegen: in letteratura vi è un accordo solo su due caratteristiche: “arousal” (eccitato, teso contrario di rilassato, sonnolento) e “valence” (felice, felice contrario di triste, emozionato). Tuttavia, queste due dimensioni non sono sufficienti ad individuare l'intera gamma di concetti emozionali. Inoltre, le tecniche dell'approccio semantico lessicale non ci permettono di distinguere i diversi sensi della parola stessa. Ad esempio, la parola “surprise” può fare riferimento a un sentimento ("lo stupore si sente quando ti succede qualcosa di totalmente inaspettato"), ad un evento ("un evento improvviso e inaspettato"), o ad una azione ("l'agire sorprendente di qualcuno"). Pertanto, al fine di costruire una struttura per l'organizzazione del lessico affettivo, non si possono solo utilizzare le informazioni provenienti dallo stesso lessico, ma abbiamo bisogno di ottenere informazioni fornite da recenti ricerche scientifiche sull'emozione. In questo approccio al lessico affettivo, il centro d'interesse non è quello di studiare la natura delle emozioni, ma capire come i significati affettivi sono espressi in linguaggio naturale. 41
  • 44. 3.3.2 Il Lo sviluppo di WordNet-Affect e del suo nucleo lavoro sul lessico affettivo si è concentrato sulla realizzazione di una risorsa che contiene un insieme di concetti affettivi correlati con parole affettive. La disponibilità del database WordNet è un importante punto di partenza. Il modello synset è sufficientemente semplice da fornire un'intrinseca correlazione tra un concetto e le corrispondenti parole. Inoltre, WordNet copre l'intero lessico inglese e fornisce una quantità straordinariamente grande delle distinzioni concettuali. Inoltre, è particolarmente utile da un punto di vista computazionale perché è stato sviluppato per un facile accesso e per la navigazione attraverso le sue gerarchie. Partendo da WordNet è stato selezionato un sottoinsieme di synset (chiamato WordNet-Affect) idonei a rappresentare concetti affettivi. Si sta attualmente puntando a mirare l'espressività di WordNet senza introdurre modifiche nella struttura originale. Pertanto, abbiamo aggiunto ulteriori informazioni ai synset affettivi senza definirne di nuovi. Ugualmente al metodo per le etichette di dominio, si assegna a un certo numero di synset di WordNet una o più etichette affettive (a-labels) che contribuiscono a precisare il significato affettivo. Ad esempio, i concetti affettivi che rappresentano lo stato emotivo sono individuati dai synsets contrassegnati con le affective-label emotion. Ci sono anche altre etichette affettive per quei concetti che rappresentano stati d'animo, situazioni che suscitano emozioni o risposte emotive. Nella tabella della figura sottostante si può vedere la lista delle a-labels. WordNet-Affect è stato sviluppato in due fasi. La prima fase è stata l'individuazione di un primo "nucleo" dei synset affettivi. La seconda fase è stata l'estensione del nucleo con le relazioni definite in WordNet. 42
  • 45. Figura 19: A-labels con i rispettivi synset di esempio Per avere un insieme iniziale di parole affettive, è stato realizzato manualmente WordNet-Affect, composto da 539 sostantivi, 517 aggettivi, 238 verbi e 15 avverbi. Si è iniziato a raccogliere un elenco di aggettivi con l'aiuto di dizionari mentre più tardi sono stati aggiunti i sostantivi tramite una correlazione intuitiva con gli aggettivi. Verbi e avverbi sono stati aggiunti in modo simile. Per ogni elemento, è stata creata una struttura al fine di aggiungere informazioni lessicali e affettive. Le informazioni lessicali comprendono la correlazione tra i termini inglesi e italiani, parti del discorso (POS), definizioni, sinonimi e contrari. L'attributo POSR si riferiscono a termini aventi differenti POS, ma che puntano alla stessa categoria psicologica. Ad esempio, l'aggettivo allegro è semanticamente legato al nome di allegria, al verbo rallegrare e all'avverbio allegramente. L'informazione affettiva è un riferimento ad uno o più delle principali tipologie di teorie sulla rappresentazione delle emozioni discrete: teorie basate sul concetto di valutazione cognitiva, teorie basate sulle emozioni base e teorie dimensionali. Sulla base del lavoro di Ortony, i termini sono classificati in termini emozionali, termini affettivi non-emozionali e termini non affettivi di stato mentale. Altri termini sono collegati con tratti della personalità, dei comportamenti, degli atteggiamenti, degli stati fisici o stati del corpo e dei sentimenti (come il piacere o dolore). Viene chiamato Ortony l'attributo usato per indicare la categoria affettiva dei termini nel database. Alcuni esempi sono riportati nella tabella sottostante. 43
  • 46. Figura 20: Categorie e termini Dal mappare i sensi dei termini in WordNet-Affect ai loro rispettivi synset, è stato identificato il nucleo affettivo. Si è selezionato un sottoinsieme di WordNet contenente tutti i synset nel quale c'è almeno una parola della wordlist affettiva, e ha respinto quei synset che non sono riconosciuti come concetti affettivi. È stato eseguito un controllo automatico di coerenza delle informazioni affettiva all'interno dei synset. In particolare, è stato controllato se ci sono sinonimi con valori incompatibili che i delle synset informazioni sono un buon affettiva. I risultati modello per la hanno mostrato rappresentazione di concetti affettivi. Quindi, abbiamo proiettato parte delle informazioni affettive dal database Affect sui sensi corrispondenti di WordNet-Affect, come valore di un marchio affettivo (a-label). Questa operazione non è stata completata su tutti i synset di WordNet, sia per il valore dello slot Ortony (null per alcuni degli elementi) e perché ci sono synsets aggiunti manualmente, oltre a quelli individuati in Affect. Per questo motivo, si è proceduto ad un ulteriore manuale di etichettatura, al fine di assegnare le a-labels per l'intero insieme di synset affettivi. 3.3.3 L'estensione del nucleo con le relazioni di WordNet In WordNet sono definite un numero fisso di relazioni lessicali (tra parole) e semantiche (tra synset). Una volta individuato il nucleo affettivo, si è studiato se e in quale misura, sfruttando 44 le relazioni di WordNet,
  • 47. il nucleo affettivo di WordNet-affettive potrebbe essere esteso. Per ogni relazione, si è esaminato se si conservano i sensi affettivi (cioè se tale rapporto, applicato al synset di WordNet-Affect, genera synset che ancora rappresentano concetti affettivi). Se i synset risultanti sono membri di WordNet-Affect, la risposta è affermativa. Ma nel caso in cui il rapporto non genera synsets inclusi nel data base, dovrebbe essere necessario procedere al controllo manuale. Tuttavia, un esame esplorativo ha permesso di individuare un elenco di relazioni "affidabili" (come ad esempio antonimia e somiglianza, derivati da parole, appartenenti a parole e attributi) per il quale si è ipotizzato che il significato affettivo è conservato per tutti gli articoli di WordNet-Affect. Pertanto, tutti i synset ottenuti mediante l'applicazione di tali relazioni e che non sono ancora contenuti nel WordNet-Affect sono inclusi in esso. Per le altre relazioni (come ad esempio iperonimia, implicazione, gruppi di verbi) si è assunto che il significato affettivo è solo parzialmente conservato. In tal caso è necessario filtrare manualmente i synset al fine di selezionare coloro che hanno veramente significato affettivo. In particolare, è utile confrontare informazioni affettive del database con iperonimi della gerarchia di WordNet limitata al dominio PSICOLOGIA, per proporre arricchimento nella struttura di questa camp semantico. WordNet-Affect al momento contiene 2874 synset e 4.787 parole. 45
  • 48. 4 Sviluppo del software Il software che ho implementato nel periodo di tirocinio annota in modo semantico ed emozionale il contenuto di un testo in un file xml in particolar modo prendendo in considerazione le coppie <nome, aggettivo>. All'inizio dell'esecuzione il programma richiede all'utente di inserire il nome del file che si vuole dare in input al sistema di annotazione. Il file è sottoposto al preprocessing che elimina da ogni frase le emoticons (come :) ;) :D e molte altre) e tutte le parole contenute tra parentesi. Perché questa fase di preprocessing? Semplicemente per semplificare il compito del parser, che si occupa dell'analisi sintattica delle frasi contenute nel file. Il sistema consente di continuare ad annotare appendendo elementi a un file xml già esistente oppure permette di creare un nuovo file xml. Come dominio di applicazione abbiamo scelto delle recensioni di ristoranti, sia perché è uno degli ambiti in cui è più agevole reperire commenti e opinioni, sia perché in questo dominio era disponibile un dataset già pronto. 1 Quindi dando in input al sistema un file di testo, il sistema estrae una frase alla volta e la passa in input al parser (TUP) . Grazie all'analisi sintattica si estraggono le coppie <nome, aggettivo>. A queste coppie viene aggiunta una griglia emozionale le cui emozioni sono state individuate da Ekman. Viene chiesto all'utente di inserire da tastiera, tramite il metodo inserimento_emotion_grounds, un valore per ogni emozione (happyness, sadness, anger, fear, disgust e surprise) contenuta in questa griglia di cui parleremo nel paragrafo dedicato a Ekman. Le triple annotate sono pertanto costituite dai seguenti elementi, <nome, cognome, griglia emozionale> e sono memorizzate per mezzo di una struttura di tipo 1 Desidero ringraziare in proposito il Dott. Di Caro per avermi inviato un dataset su cui sta attualmente lavorando, e proveniente dal sito http://www.2spaghi.it/. 46
  • 49. ArrayList. Se il primo valore della griglia emozionale è -1 la coppia <nome, aggettivo> non viene salvata nell'ArrayList; in questo modo l'annotatore può scartare coppie nome-aggettivo frutto di un'associazione erronea causata da errori di parsing (per esempio nella gestione della coordinazione). Quindi viene chiesto all'utente di inserire il nome al file xml che si sta per creare: se il nome corrisponde al nome di un file esistente il sistema chiede se si vuole sovrascrivere il file esistente (in questo caso il file esistente perderà tutte le informazioni finora annotate) oppure appendere i nuovi elementi in coda alle annotazioni già presenti. Se il nome del file invece non corrisponde al nome di nessun file xml, viene creato un file xml con quello stesso nome scelto dall'utente. Il metodo estrazione_triple prende in input un nodo dell'albero creato dal parser (TUP) e una frase e da in output un ArrayList contenente le triple di ogni frase, contenuta nel file iniziale, data in input al metodo stesso. Questo metodo si serve di due metodi di supporto di cui il primo si occupa di estrarre il nome corrispondente all'aggettivo individuato dal metodo chiamante mentre il secondo si occupa di trovare l'aggettivo coordinato all'aggettivo individuato dal primo metodo di supporto che lo invoca (ad esempio nella frase “Mi piace la casa rossa e blu nella foresta” il primo metodo mi restituisce un ArrayList contenente solo <casa, rossa, emozioni relative all'aggettivo rosso> aggiungendolo in coda all'ArrayList globale mentre il secondo metodo mi restituisce un ArrayList contenente solo <casa, blu, emozioni relative all'aggettivo blu> e lo aggiunge in coda allo stesso ArrayList globale). Nel caso non ci fossero aggettivi coordinati il secondo metodo non viene neanche eseguito. Vengono quindi creati due oggetti, rispettivamente Nome e Aggettivo, che contengono il lemma e un array di synset corrispondenti. Infatti ogni metodo di supporto, per trovare un array di synset relativi al lemma trovato, deve richiamare il metodo cerca_in_mwn. Il metodo cerca_in_mwn, dato in input un lemma, un POS (part-of-speech) e la lingua, si connette al database MultiWordNet e verifica se esiste quel lemma 47
  • 50. restituendo tutti i possibili synset. Nel caso il lemma non fosse presente nel data base, viene stampato un messaggio “Il lemma - nome del lemma - non si trova nel database”. Nel programma si trova anche il metodo disambiguate che restituisce un oggetto di tipo Lesk in cui vi è la descrizione e il synset di un lemma. Questo metodo serve per la disambiguazione tra i tanti synset corrispondenti a una parola e viene utilizzato nel metodo crea_xml per far corrispondere a ogni lemma il synset più appropriato alla frase corrispondente con la relativa descrizione. Il metodo crea_xml prende in input un ArrayList e il nome di un file e crea un documento xml vuoto e un albero xml con una radice <root> a cui appende l'elemento <annotated_corpus> a cui vengono appesi gli <annotation pair> contententi gli elementi <name> (contiene il lemma e il synset relativo al nome) e <adjective> (contiene il lemma, il synset e i valori della griglia di Ekman). Viene così salvato l'albero in un file xml. Il metodo append prende in input un ArrayList e il nome di un file ma, a differenza del metodo crea_xml, non crea un elemento root e un elemento annotated_corpus: crea semplicemente tutti gli annotation pairs che saranno “appesi” all'annotated corpus del file xml esistente. 48
  • 51. 4.1 Utilizzo del parser TUP Figura 21: Architettura del sistema TUP L'analizzatore sintattico (parser) utilizzato dal sistema include quattro componenti: il chunker, l'analizzatore della coordinazione, l'analizzatore delle dipendenze verbali e il post-processore. Il TUP (Lesmo L. 2009) è un sistema basato su regole, che restituisce la struttura sintattica delle frasi in un formalismo a dipendenze. Le dipendenze sono le relazioni sintattiche che legano una parola dominante, la testa (per esempio il verbo), alle parole dominate (per esempio un nome). Le parole dominate sono dette anche dipendenti. La connessione tra due parole viene rappresentata usando frecce dotate di una direzione e di un'etichetta. L'insieme di tutte le relazioni di dipendenza di una frase forma un albero, che ha come radice il verbo principale. I dipendenti si differenziano in due tipologie: 1. Argomento della testa: se è obbligatorio per garantire la correttezza della frase. 2. Modificatore: se non è necessario per la correttezza della frase. Il TUP esegue due operazioni preliminari: l'analisi morfologica e POS tagging. Servono a ricostruire il lemma e il part of speech. Il part of speech è una categoria grammaticale (verbo, aggettivo, sostantivo, pronome, articolo, preposizione, avverbio, interiezione e congiunzione), che deve essere associato a ciascuna parola in una frase prima di procedere all'analisi sintattica. Dopo queste due operazioni 49
  • 52. preliminari, si eseguono in ordine le operazioni di chunking (raggruppamento), analisi della coordinazione e della sotto categorizzazione verbale. 4.1.1 Sotto-moduli del parser I sotto-moduli del sistema sono costituiti dai seguenti elementi: 1. Parentesi: se il sistema lavora su singole frasi, rimuoviamo tutte le parentesi che compaiono nella frase. Il contenuto delle parentesi viene parsificato, il risultato di questo lavoro viene inserito nello stesso punto da cui è stata prelevata la parentesi. 2. Chunking: il risultato è un insieme di chunk (nominale, aggettivi, etc.) tra loro non collegati, la testa del chunk contiene un link vuoto. 3. Liste di oggetti 4. “di cui a”: se prendiamo come esempio la frase “...il commento di cui al paragrafo successivo è molto importante...”, si assume l'esistenza di una traccia verbale, si cerca il testo a cui si riferisce la frase “di cui a”. 5. Analisi delle congiunzioni: comporta l'individuazione e il collegamento di ogni possibile congiunzione con le altre. 6. Allegare i dipendenti verbali. 7. Possibile correzione degli allegati preposizionali: si esamina l'intero albero, per cercare di cambiare i collegamenti delle preposizioni ed ottenere così una struttura migliore. 8. Post-processamento: Se alcuni oggetti sono rimasti isolati, saranno connessi all'albero di parsificazione in questa fase. 4.1.2 Chunker Il chunker ispeziona la frase in passi differenti, e per ogni parola prova ad applicare ogni possibile regola di chunking, associata alla categoria della parola. 50
  • 53. La categoria sintattica della testa del chunk è costituita da uno degli elementi appartenenti alla seguente lista: Special, Punct, Adv, Predet, Conj, Adj, Num, Noun, Pron, Art, Prep, Verb. Ogni regola di chunking rispetta il seguente formato: HeadCategory: <Position, Dependent-category, Conditions, Label>. Un esempio di questo formato può essere: NOUN <Precedes (ADJ qualif T), ADJ, (type INDEF) (agree) (dep-follows ART), ADJ+QUANTIF-RMOD> 4.1.3 Analisi della coordinazione In questa fase si svolgono le seguenti operazioni: 1. la ricerca del secondo sintagma che viene ritenuto il migliore: Se il sistema incontra una congiunzione coordinativa, cerca di identificare il candidato che sarà la testa della seconda entità da collegare. 2. la ricerca del possibile primo sintagma: Si cerca il primo elemento che è posto a sinistra della congiunzione, otteniamo così una serie di possibili coppie. Per esempio: <<fc 11,sc1> , <fc12,sc1> , … <fc21,sc2> , <fc22,sc2> ,...>. 3. la ricerca della migliore coppia: Si applica un insieme di euristiche per trovare la coppia migliore. Queste regole tengono conto della vicinanza tra gli oggetti della coppia e delle caratteristiche lessicali dei verbi. 4. Ci si muove all'indietro per controllare ogni comma se in realtà è il secondo sintagma di una congiunzione che compare precedentemente. 51
  • 54. 4.1.4 Dipendenze verbali La decisione sulle strutture verbali si svolge in due fasi: 1. Una volta che sono stati definiti i confini, tutti i chunk al loro interno vengono collegati al singolo verbo che vi compare. I confini vengono definiti tramite l'applicazione di regole euristiche. Le regole vengono applicate da sinistra a destra. Ogni oggetto scollegato posto a sinistra del verbo viene assunto come suo dipendente. Gli oggetti scollegati che seguono il verbo vengono presi come dipendenti del verbo finché non se ne trova un altro. Il verbo trovato diventa un dipendente, se ha tempo infinito o gerundio, o se ammette discorsi diretti. 2. Si deve scegliere un'etichetta corretta per il chunk che sarà attaccato al verbo. Include argomenti separati da aggiungere ed assegnare all'etichetta corretta. Le tracce vengono inserite nello spazio di ogni argomento mancante. Il lavoro viene fatto basandosi su una gerarchia di sottocategorie verbali, che include informazioni sui possibili argomenti e le loro realizzazioni ammesse. Dopo questa fase ci troveremo con una struttura di parsing parzialmente costruita, che include un insieme di chunk, sia preposizionali, modificatori, sintagmi e alcuni verbi. I vari chunk sono i dipendenti verbali. Ogni verbo è collegato con un insieme di dipendenti senza etichetta. L'ultima fase di questo lavoro consiste nel determinare le etichette degli archi. Il risultato finale di questa fase consiste nel trovare, per ogni verbo nella frase, l'accoppiamento ritenuto migliore tra le sue dipendenze e i frame verbali associati alle sue possibili sottocategorie. Per esempio il verbo autorizzare ha una sola possibile sottocategoria (trans-a), dopo autorizzare segue la preposizione “a”. Un verbo transitivo prevede anche un soggetto, un oggetto ed un tema. Per esempio: [il terzo comma]subj autorizza [il Consiglio]obj [a inviare aiuti alimentari]theme. 52
  • 55. Il post-processing è la fase che si occupa di riempire i link relativi alla punteggiatura e ai verbi. Consiste nell'individuare il verbo principale e se non ci sono altri verbi disponibili, nel selezionare un'altra radice. Per la punteggiatura si applicano varie regole, per cercare di segnare quando è possibile le parentetiche. Il processo tiene conto della struttura dei chunk e delle frasi verbali precedentemente stabilite. 4.2 Utilizzo di MultiWordNet Per il sistema sviluppato si è fatto uso di MultiWordNet, una banca dati lessicale multilingue che comprende le informazioni sulle parole inglesi e italiane. Si tratta di un'estensione di WordNet 1.6, un database lessicale per l'inglese sviluppato presso l'Università di Princeton. MultiWordNet contiene informazioni sui seguenti aspetti dei lessici della lingua inglese e italiana : • relazioni lessicali tra concetti • corrispondenze tra i concetti lessicalizzati in italiano e inglese • campi semantici (domini) La relazione di base lessicale in MultiWordNet è la sinonimia. Gruppi di sinonimi vengono utilizzati per identificare i concetti lessicali, che vengono chiamati anche synsets. Ecco un esempio di synset italiano: {elaboratore, computer, cervello_elettronico, calcolatore} I synset sono l'unità più importante di MultiWordNet. Molte informazioni interessanti sono unite ad essi, come i campi semantici e le relazioni semantiche. Ad esempio, il synset sopra appartiene al campo semantico "Computer Science" e dispone di tre diverse relazioni semantiche: 53
  • 56. Macchina has_hypernym {} has_hyponym calcolatore_analogico {}, {} calcolatore_digitale, ecc has_part {microchip, chip}, ecc. La corrispondenza incrociata tra i termini inglesi e italiani è definita tra i synset: {elaboratore, computer, cervello_elettronico, calcolatore} corrisponde a {computer, data_processor, electronic_computer, information_processing_system} MultiWordNet può essere utilizzato per una varietà di compiti NLP tra cui: • Information Retrieval: le relazioni di sinonimia vengono utilizzati per l'espansione della query e per migliorare il recupero dell'IR; le corrispondenze incrociate tra i synset italiani e inglesi sono utilizzati per il Cross Language Information Retrieval. • Tagging semantico: i testi sono contrassegnati con identificatori synset. • Chiarimento delle ambiguità: le relazioni semantiche sono utilizzate per misurare la distanza semantica tra le parole, e possono essere utilizzate per disambiguare il significato delle parole nei testi. Anche i campi semantici si sono rivelati molto utili per l'attività di disambiguazione. • Le ontologie: MultiWordNet può essere visto come una ontologia per essere utilizzato per una varietà di compiti NLP basata sulla conoscenza. • Terminologie: MultiWordNet costituisce un solido framework che sostiene lo sviluppo di specifiche terminologie strutturate. Al momento è disponibile la release 1.39, contenente 58.000 word meaning italiani organizzati in 32.700 synset, oltre alle corrispondenze con i synset equivalenti di WordNet 1.6. Al momento, il database è fornito come dump di tabelle MySQL, insieme a un paccheto di API implementate in Java, mentre con la prossima release 54
  • 57. sarà disponibile un’interfaccia html-based che utilizzerà Apache/php/MySQL. 4.2.1 Descrizione di MultiWordNet MultiWordNet rappresenta un’estensione della matrice lessicale di WordNet in una matrice lessicale multilingua. Viene aggiunta una terza dimensione che rappresenta la lingua. Guardando la figura, in larghezza si trovano i lemmi specifici di una lingua, in altezza i significati e in profondità si scorrono le lingue. Se prendiamo come base di riferimento WordNet, la costruzione della matrice lessicale multilingua con l’aggiunta dell’italiano consiste nel ri-mappare i lemmi italiani secondo i synset della lingua inglese. Il risultato è una completa ridefinizione delle relazioni lessicali (che collegano un lemma a un synset) della lingua italiana; invece, per le relazioni semantiche vengono mantenute il più possibile quelle definite per l’inglese. Questa architettura è facilmente estensibile ad altre lingue. Figura 22: Matrice lessicale multilingua di MultiWordNet In questa matrice il concetto di synset si evolve, dunque, nel multisynset: un significato comune alle due lingue che viene rappresentato e individuato in modo 55
  • 58. univoco nel data base e di conseguenza anche nell'ontologia. Il multisynset individua una relazione di sinonimia in senso lato tra synset equivalenti, e quindi tra i termini che li compongono, in lingue diverse. I multisynset in pratica, essendo indipendenti dalla lingua, rappresentano la dimensione verticale della matrice; così, le relazioni semantiche (rappresentate con archi che collegano due synset) vengono estese in validità a tutte le lingue. 4.2.2 Architettura del database Il database contiene una parte comune a tutti i wordnet e una specifica per ogni lingua che è rappresentata. Guardando la figura, la struttura è organizzata in un modulo centrale, Common-db, e due moduli, Italian-db e English-db. Il Common-db contiene tutte le relazioni semantiche presenti in WordNet. A livello concettuale, il Common-db contiene anche i multisynset: in realtà questi non esistono nel database, ma vengono implementati utilizzando lo stesso identificatore per i synset dei moduli linguistici. Nei moduli Italian-db e English-db invece sono contenute le informazioni lessicali, ovvero i legami tra lemmi e synset, specifiche delle lingue. Figura 23: Architettura di MultiWordNet Lo schema non è in grado di rappresentare le loro differenze strutturali, che si vogliono rappresentare; inoltre si desidera poter modificare le relazioni semantiche comuni di WordNet e aggiungerne di nuove. La soluzione che è stata adottata consiste in una struttura a add-on: questi sovrascrivono (nel verso delle frecce) in vari strati il database WordNet, senza modificarlo fisicamente. Il primo Semantic add-on è incapsulato nel Common-db e si pone direttamente sopra a WordNet; esso permette di modificare l’insieme delle relazioni semantiche comuni. Questo modulo è a sua volta sovrascritto dai semantic add-on specifici per ciascuna lingua, che sono incapsulati nei language-db: il loro ruolo è quello di rappresentare le relazioni 56
  • 59. semantiche incompatibili con quella lingua. Le informazioni contenute in questi ultimi add-on sono di due tipi: • Relazioni semantiche specifiche di una lingua; • Lexical gap. I lexical gap si hanno quando un concetto, che può essere espresso con singoli lemmi, in un'altra lingua non trova un synset corrispondente ma può essere solo tradotto con una frase oppure espresso con un termine di significato più generico o più specifico (denotation difference ). Ad esempio, il synset inglese associato alla glossa “the pointed head or striking tip of an arrow” e contenente il solo termine “arrowhead”, non trova in italiano un termine corrispondente, ma viene tradotto con l’espressione “Punta di freccia”. In questo caso ci troviamo di fronte ad un lexical gap, che viene rappresentato, nell'Italian-db, con un synset italiano che ha associati solo il particolare lemma “GAP!” e la glossa “punta_di_freccia”. “GAP!” viene implementato nel database come se fosse un lemma anche se non è un vero e proprio termine. Quando ci si trova in uno di questi casi, il concetto mancante viene collegato, nel language-db, ad un empty-node presente nella parte lessicale; a questo punto ci sono due strategie differenti: • nel caso di lexical gap, nella glossa del nodo viene riportata una traduzione del concetto in quella lingua; • nel caso di denotation difference, il nodo viene collegato da una o più relazioni nearest a synset che esprimono concetti più generali/specifici. Per le relazioni sono importate da WordNet tutte quelle semantiche e a queste si aggiungono le relazioni di tipo nearest. L’unica relazione lessicale al momento istanziata è la sinonimia. La figura rappresenta una tabella che riassume tutti i tipi di relazioni presenti in MultiWordNet. Il popolamento del data base è avvenuto in questo modo: dapprima è stato 57
  • 60. integrato WordNet, separando la parte semantica, che ha riempito il Common-db, da quella lessicale, inclusa nell'English-db. In seguito, si sono utilizzate due procedure semi-automatiche per la costruzione dell'Italian-db che sfruttano entrambe un dizionario bilingue italiano-inglese: • La prima è denominata Assign-procedure e serve a individuare, dato un termine italiano ed un suo significato, una lista dei synset inglesi più simili; i synset vengono pesati in base ad una serie di regole di match; • La seconda è la LG-procedure, che aiuta a trovare i lexical gap; i lexical gap English-to-Italian possono quindi essere automaticamente esclusi dai risultati della routine precedente, mentre quelli Italian-to-English rappresentano synset italiani per i quali l'Assign-procedure non restituisce alcun risultato, e che perciò devono essere aggiunti manualmente. 58
  • 61. Figura 24: Tipi di relazioni in MultiWordNet Il database descritto è stato implementato con tabelle MySQL e viene acceduto dal sistema sviluppato tramite la connessione a jdbc:mysql://127.0.0.1/mwn-1.4.2 e il driver com.mysql.jdbc.Driver di Java importando la libreria di Java mwaccess.org.itc.mwn.*. 59
  • 62. Attualmente il programma si connette in locale a MySQL in cui è caricato il data base di MultiWordNet. Le tabelle che sono state importate sono: • common_relation.sql 124722 records • english_frame.sql 19543 records • english_index.sql 123774 records • english_relation.sql 18838 records • english_synset.sql 102101 records • italian_index.sql 45099 records • italian_relation.sql 318 records • italian_synset.sql 38653 records • semfield.sql 108038 records • semfield_hierarchy.sql 164 records La tabella "common_relation" elenca tutte le relazioni semantiche che sono comuni a tutti i linguaggi. Ogni record contiene quattro campi: • type: tipo della relazione (vedere anche la lista delle relazioni di MultiWordNet e i corrispondenti simboli usati per codificarli); • id_source: identificatore del synset di provenienza ("pos#offset", dove pos è "n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi); • id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi); 60
  • 63. • status: "new" se la relazione coinvolge nuovi synset, ad esempio i synset che non sono in Princeton WordNet and sono stati creati in MultiWordNet. Quando la relazione coinvolge i synset che sono stati definiti già in Princeton WordNet il campo è "NULL". Esempi: INSERT INTO common_relation VALUES ('*','v#00001740','v#00003763',NULL); INSERT INTO common_relation VALUES ('@','v#00002143','v#00001740',NULL); Le tabelle "english_relation" e "italian_relation" contengono le relazioni che dipendono dal linguaggio. Queste relazioni sono istanze delle relazioni lessicali standard usate in Princeton WordNet (ad esempio antonimia, appartiene a, etc.). Inoltre, queste tabelle contengono un nuovo tipo di relazione semantica creata all'interno MultiWordNet, che si chiama "nearest". La più vicina relazione vale tra un synset vuoto (uno spazio lessicale) di un certo linguaggio e il synset con il significato più simile in quella lingua. Ci sono solo pochi esempi di questa relazione codificata finora. La tabella contiene sei campi: • type: tipo della relazione (vedere anche la lista delle relazioni di MultiWordNet e i corrispondenti simboli usati per codificarli); • id_source: identificatore del synset di provenienza ("pos#offset", dove pos è "n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi); • id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi); • w_source: il lemma originale (solo per le relazioni lessicali); • w_target: il target del lemma (solo per le relazioni lessicali); 61
  • 64. • status: "new” se la relazione include un nuovo synset oppure "NULL" se include synset derivanti da Princeton WordNet. Esempi: INSERT INTO english_relation VALUES ('!','v#00009549','v#00009666','rest','be_active',NULL); INSERT INTO italian_relation VALUES ('|','n#N0002074','n#09593084','','','new'); Le tabelle "english_synset" e "italian_synset" contengono i synset italiani e inglesi (molti di questi derivano da Princeton WordNet but ma altri sono nuovi). Vengono specificate anche le lacune lessicali. Ogni record contiene quattro campi: • id: identificatore synset ("pos#offset") o un identificatore di Princeton WordNet o un nuovo identificatore synset (che incomincia con"N"); • word: lemmi contenuti nel synset, separati da uno spazio. I token delle parole multiple sono collegate dal carattere "_". La parola "GAP!" e "PSEUDOGAP!" sono identificatori speciali usati per descrivere dei lexical gaps; • phrase: lemmi contenuti nelle frasi, separate da uno spazio. I token delle parole multiple sono collegate dal carattere "_". • gloss: la maggior parte dei synset ha una glossa, composta da una definizione come esempio. Esempi: INSERT INTO english_synset VALUES ('n#00008864',' plant flora plant_life ',NULL,'a living organism lacking the power of locomotion'); INSERT INTO italian_synset VALUES ('n#00043525',' GAP! ',' errore_di_calcolo ',NULL); 62
  • 65. INSERT INTO italian_synset VALUES ('a#02078908',' epocale ',' che_fa_epoca ','che caratterizza un'epoca; "una svolta epocale"'); Le tabelle "english_index" e "italian_index" contengono le liste dei lemmi inglesi e italiani. Lo scopo di queste tabelle è richiamare molto rapidamente i synset-id e le ricerche possibili a partire da un lemma in tutta i suoi pos. Ogni record contiene cinque campi: • lemma: contenente i lemmi normalizzati. I token delle parole multiple sono collegate dal carattere "_". La parola "GAP!" e "PSEUDOGAP!" sono identificatori speciali usati per descrivere dei lexical gaps; • id_n: contiene la lista dei synset-id (separati da un carattere) nei quali il lemma è contenuto come un nome; • id_v: contiene la lista dei synset-id nei quali il lemma è contenuto come un verbo; • id_a: contiene la lista dei synset-id nei quali il lemma è contenuto come un aggettivo; • id_r: contiene la lista dei synset-id nei quali il lemma è contenuto come un avverbio; Esempi: INSERT INTO english_index VALUES ('shape','n#03952527 n#00015185 n#04055717 n#04562135 n#03685812 n#10430604 n#04554317','v#00474001 v#01139594 v#00095506','',''); INSERT INTO italian_index VALUES ('parlamentare',' n#07457674',' v#00518082','a#02590962',NULL); 63
  • 66. La tabella "semfield" contiene uno o più etichette di dominio per ogni synset in MultiWordNet. Le etichette di dominio sono indipendenti dal linguaggio e applicate tra i synset inglesi e italiani. Tuttavia, per ragioni pratiche, sia le parole in inglese sia le traduzioni italiane sono riportate come etichette di dominio. Ogni record di questa tabella contiene due campi: • synset: identificatore del synset ("pos#offset"); • english: contiene la lista delle etichette di dominio associate al synset in inglese; Esempi: INSERT INTO semfield VALUES ('r#00078025','Administration Economy Law',); INSERT INTO semfield VALUES ('n#00031741','Military',); La tabella "semfield_hierarchy" contiene la gerachia di 169 etichette di dominio usate per taggare i synset di MultiWordNet. Ogni record contiene cinque campi: • code: numero progressivo associato a ogni dominio, da 1 a 169. • english: nome in inglese del dominio • normal: il dominio base (secondo livello della gerarchia) al quale il dominio si riferisce nel record . • hypers: il diretto iperonimo del dominio • hypons: il diretto iponimo del dominio 64