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
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