Tesi peiretti
-
Upload
stefano-wolf -
Category
Education
-
view
427 -
download
1
description
Transcript of Tesi peiretti
Università degli studi di TorinoFACOLTÀ 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: Candidato:Prof. Daniele Paolo Radicioni Stefano Peiretti
Anno Accademico 2010-2011
Ai miei genitori, a mio fratello Federicoe ai miei nonni, Salvatore e Maria,per avermi aiutato e incoraggiato
nelle difficoltà incontrate in questi anni.
Al mio relatore, Prof. Daniele Paolo Radicioni,per la disponibilità, la pazienza, l'incoraggiamento
e per avermi aiutato nell'implementazione del sistema descritto e nella stesura di questa tesi.
Ai miei amici.
Indice 1 Introduzione...................................................................................................5
1.1 Descrizione del problema.......................................................................5 1.2 Motivazioni............................................................................................6 1.3 Argomenti trattati...................................................................................7
2 Sentiment Analysis.........................................................................................8 2.1 Fondamenti scientifici............................................................................9
2.1.1 Modello dell'Opinion Mining.........................................................9 2.1.2 Classificazione del sentimento.....................................................12 2.1.3 Opinion Mining basato sulle caratteristiche.................................13
2.2 Determinazione dell'orientamento dei termini.....................................19 2.3 Determinazione della soggettività dei termini.....................................20 2.4 Progetti per il Sentiment Analysis........................................................21
3 SentiWordNet e WordNet-Affect.................................................................21 3.1 WordNet...............................................................................................21
3.1.1 La nascita di WordNet..................................................................22 3.1.2 Forme di parole e significato........................................................23 3.1.3 Le relazioni di WordNet...............................................................24 3.1.4 I nomi di WordNet........................................................................25 3.1.5 Gli aggettivi di WordNet..............................................................30 3.1.6 I verbi di WordNet........................................................................30
3.2 Descrizione di SentiWordNet...............................................................31 3.2.1 Una breve storia di SentiWordNet................................................33 3.2.2 Lo sviluppo di SentiWordNet 3.0.................................................34 3.2.3 Struttura del database...................................................................37
3.3 Descrizione di WordNet-Affect............................................................40 3.3.1 Lo stato dell'arte dei lessici affettivi.............................................40 3.3.2 Lo sviluppo di WordNet-Affect e del suo nucleo.........................42 3.3.3 L'estensione del nucleo con le relazioni di WordNet...................44
4 Sviluppo del software..................................................................................46 4.1 Utilizzo del parser TUP........................................................................49
4.1.1 Sotto-moduli del parser................................................................50 4.1.2 Chunker........................................................................................50 4.1.3 Analisi della coordinazione..........................................................51 4.1.4 Dipendenze verbali.......................................................................52
4.2 Utilizzo di MultiWordNet....................................................................53 4.2.1 Descrizione di MultiWordNet......................................................55 4.2.2 Architettura del database..............................................................56
4.3 Implementazione dell'algoritmo di Lesk per la disambiguazione dei termini polisemici (WSD)...........................................................................65
1
4.4 La griglia emozionale di Ekman..........................................................68 4.5 Un formato XML per l'output dell'annotatore......................................72
5 Conclusioni..................................................................................................75
2
Indice delle illustrazioni
Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche....................11
Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche.......................12
Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche ........12
Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del comparativo............................................................................16
Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del comparativo...............................................................................................................17
Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del comparativo...............................................................................................................17
Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del superlativo..............................................................................18
Figura 8: Matrice lessicale di WordNet......................................................................22
Figura 9: I synset primitivi........................................................................................28
Figura 10: Relazione tra concetti primitivi................................................................29
Figura 11: Relazione tra i nomi in WordNet..............................................................29
Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet..........31
Figura 13: Esempio di rappresentazione del termine “interesting” in SentiWordNet........................................................................................................32
Figura 14: Esempio di rappresentazione dell'aggettivo “estimable” in SentiWordNet........................................................................................................32
Figura 15: Esempio di rappresentazione del verbo “short” in SentiWordNet.............32
Figura 16: Struttura del data base di SentiWordNet...................................................38
Figura 17: Esempio di dati in SentiWordNet.............................................................38
Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet.......39
Figura 19: A-labels con i rispettivi synset di esempio................................................43
Figura 20: Categorie e termini...................................................................................44
Figura 21: Architettura del sistema TUP....................................................................49
Figura 22: Matrice lessicale multilingua di MultiWordNet........................................55
Figura 23: Architettura di MultiWordNet...................................................................56
Figura 24: Tipi di relazioni in MultiWordNet............................................................59
Figura 25: L'algoritmo di Lesk..................................................................................66
Figura 26: Come funziona il metodo disambiguate...................................................67
Figura 27: Formato del file XML creato dal programma...........................................73
3
Figura 28: Albero del file XML creato dal programma..............................................74
Figura 29: File XML creato dal programma dando in input un file con delle recensioni..................................................................................................................74
4
1 Introduzione
In questa tesi sarà illustrato il lavoro di progettazione e realizzazione di un sistema
software per l'annotazione e l'analisi del contenuto emozionale dei testi.
1.1 Descrizione del problema
Il web contiene molte opinioni riguardo svariati argomenti (prodotti, personaggi
famosi, film, …) espresse in appositi siti. Di conseguenza, il problema del Sentiment
Analysis (chiamato anche Opinion Mining), di cui mi sono occupato principalmente
nel periodo di tirocinio, è stato oggetto di interesse in questi ultimi anni. Il materiale
usato per il test del programma, progettato e implementato durante il periodo di stage,
riguarda recensioni di film e di ristorazione.
I siti spesso associano dei meta-dati ad ogni recensione indicando quanto questa
sia positiva o negativa. Ma l'opinione del lettore può essere diversa da quella di colui
che ha scritto la recensione. Ad esempio, il giudizio del lettore potrebbe essere
influenzato dalla trama di un film, mentre i recensori potrebbero ritenere più
importanti altri aspetti, come i caratteri dei protagonisti. Di conseguenza, il lettore è
costretto a leggere molte recensioni fino a trovare quella che più gli interessa.
Il problema può essere suddiviso in quattro sotto-problemi:
• Identificare le caratteristiche di un prodotto
• Identificare le opinioni sulle caratteristiche
• Determinare la polarità delle opinioni
• Ordinare le opinioni sulla base delle loro intensità
Il sistema che ho progettato tratta solo un sottoinsieme di tutte le possibili
5
annotazioni semantiche dei meta-dati: in particolare al momento annota le coppie
<nome, aggettivo> e da ogni coppia costruisce una tripla <nome, aggettivo, griglia
dei valori delle emozioni che l'utente attribuisce a ogni coppia nome-aggettivo>. In
particolare, il sistema utilizza il TUP (Turin University Parser) per analizzare uno
stream continuo in input (letto da un file o da tastiera) in modo da determinare la sua
struttura grammaticale grazie ad una data grammatica formale.
L'obiettivo del tirocinio è stato quello di capire come possono essere classificate
le emozioni che compaiono in un testo di recensione e di sviluppare un programma
che sia in grado di acquisire le emozioni che l'utente percepisce dalla combinazione
nome-aggettivo, leggendo lo stream dato in input, tramite l'esplicita richiesta di
inserimento da tastiera. I risultati saranno salvati in un documento XML che conterrà
l'output prodotto dal software.
1.2 Motivazioni
Individuare, analizzare e annotare il contenuto emozionale dei testi è un problema
difficile soprattutto per i calcolatori, che possono commettere vari tipi di errori.
Errori nel giudicare l'opinione di una frase del tipo “Ho evitato un incidente” rispetto
all'opinione della frase “Ho causato un incidente”.
Il sistema sopra descritto si occupa di individuare e annotare in maniera
automatica solo le coppie nome-aggettivo presenti in una certa frase. Il sistema è
attualmente in fase di testing. L'individuazione di questi errori, commessi durante
l'elaborazione dei file, è molto importante sia per valutare le prestazioni del sistema
sia per correggere questi errori. Serve quindi uno strumento che permetta di
distinguere in maniera rapida e semplice la differenza tra frasi ambigue.
6
1.3 Argomenti trattati
La tesi si articola in:
Capitolo 1: Viene illustrato il Sentiment Analysis con i relativi studi effettuati, la
determinazione dell'orientamento e della soggettività dei termini e le soluzioni
possibili al problema.
Capitolo 2: Vengono presentati SentiWordNet e WordNet-Affect con un'excursus
su WordNet, il loro sviluppo, la classificazione dei sentimenti, i pregi e i difetti.
Capitolo 3: Viene spiegato il lavoro svolto durante il tirocinio. Si inizia con una
descrizione dei metodi usati e dei principi seguiti nella costruzione del software.
Segue la presentazione del TUP (Turin University Parser), di MultiWordNet, della
griglia emozionale usata per la memorizzazione dei valori delle emozioni, la struttura
dell'xml creato e il funzionamento del software per l'individuazione e l'analisi dei
sentimenti contenuti nei testi.
Capitolo 4: Contiene le conclusioni e i possibili lavori futuri sul programma
sviluppato durante il tirocinio.
7
2 Sentiment Analysis
Le informazioni testuali possono essere classificate in due categorie: i fatti e le
opinioni. I fatti sono affermazioni oggettive sulle entità e sugli eventi che accadono
quotidianamente. Le opinioni, invece, sono affermazioni soggettive che riflettono i
sentimenti e le percezioni delle persone sugli eventi.
Con il termine Sentiment Analysis ci si riferisce a un recente campo di ricerca nel
settore del Trattamento Automatico del Linguaggio il cui scopo è quello di
identificare e classificare informazioni di tipo soggettivo che possono essere presenti
all'interno di documenti testuali di vario tipo. Dato, quindi, un insieme di documenti
testuali che contengono pareri su un oggetto, si vogliono estrarre gli attributi e i
componenti dell'oggetto commentato in ogni documento e da questi si vuole
determinare se i commenti sono positivi., negativi o neutri.
Prima del WWW (World Wide Web), quando un individuo aveva bisogno di
prendere una decisione, chiedeva pareri a parenti e amici, mentre, quando
un'organizzazione aveva bisogno di trovare opinioni del pubblico sui suoi prodotti e
servizi conduceva delle interviste. Con l'avvento del Web si possono postare
recensioni di prodotti sui siti commerciali e i propri pareri sui forum, sulle
discussioni tra i gruppi e sui blog. Ma trovare opinioni sul Web può essere arduo
poiché esiste un gran numero di fonti e ognuna di esse contiene molte informazioni.
È molto difficile, quindi, per un lettore umano trovare le fonti, estrarne frasi
pertinenti, leggerle e a volte tradurle, riassumerle e organizzarle in forme utilizzabili.
Il Sentiment Analysis, conosciuto anche con il nome di Opinion Mining, nasce
con l'esigenza di rendere meno difficile all'utente la ricerca di opinioni sul Web. Le
ricerche in questo campo sono iniziate con l'individuare parole che esprimono un
sentimento (ad esempio grande, meraviglioso, disgustoso, orrido, bello,...) per poi
lavorare su tali parole identificando i loro orientamenti semantici e la loro
soggettività.
8
2.1 Fondamenti scientifici
2.1.1 Modello dell'Opinion Mining
In generale, le opinioni possono essere espresse su ogni cosa, ad esempio, un
prodotto, un servizio, un individuo, un'organizzazione o un evento.
Il termine “oggetto” è usato per denotare l'entità sulla quale si commenta. Un
oggetto è costituito da un insieme di componenti (o parti) e un insieme di attributi.
Ogni componente può anche avere i suoi sotto-componenti e il suo insieme di
attributi e così via. In questo modo l'oggetto può essere gerarchicamente decomposto
sulla base delle relazioni. Un oggetto è, quindi, un'identità che può essere un
prodotto, una persona, un evento o un'organizzazione. Esso è associato a una coppia,
O: (T, A) in cui T è una gerarchia o tassonomia di componenti (o parti) e
sotto-componenti di O, e A è un insieme di attributi di O. Ogni componente ha il suo
proprio insieme di sotto-componenti e attributi. In questa struttura gerarchica ad
albero, la radice è l'oggetto stesso. Ogni nodo è un componente o sotto-componente
dell'oggetto. Ogni link è una delle parti del rapporto e ogni nodo è associato a un
insieme di attributi. Un parere può essere espresso in qualsiasi nodo e su qualsiasi
attributo del nodo.
Il termine “caratteristiche” è usato per rappresentare entrambi i componenti e gli
attributi. Si noti che in questa definizione l'oggetto in sé è anche una caratteristica,
che è la radice dell'albero. Si considera quindi un documento d, che può essere una
recensione del prodotto, un post sul forum o un blog che valuta un particolare oggetto
O. Nel caso più generale, d è costituito da una sequenza di frasi d = <s1, s2, …, sm>.
L'opinione, valutata su una caratteristica f di un oggetto O in un documento d, è un
gruppo di frasi, una di seguito all'altra, nello stesso documento d, che esprime
un'opinione positiva o negativa su f.
9
È possibile che una sequenza di frasi esprima un opinione su un oggetto o su una
sua caratteristica. È anche possibile che una singola frase esprima opinioni su più di
un oggetto o sulle sue caratteristiche. Un esempio può essere la frase “E il risultato
che si ottiene è ottimo, anche grazie all’alchimia che si è creata tra i due perfetti
protagonisti”.
L'orientamento semantico di un'opinione su una caratteristica f stabilisce se il
parere è positivo, negativo o neutro. Mettendo insieme le cose, possono essere
definiti un modello per un oggetto e un insieme di opinioni sulle caratteristiche
dell'oggetto. Tutto ciò si chiama il modello Opinion Mining basato sulle
caratteristiche: un oggetto O è rappresentato con un insieme finito di caratteristiche,
F={f1, f2, …, fn}, che include l'oggetto stesso. Ogni carattestica fi ∈ F può essere
espressa con un insieme finito di parole o frasi W i, che sono sinonimi. Cioè esiste un
insieme di insiemi di sinonimi W = {W1, W2, …, Wn} per le n caratteristiche. In un
documento d che valuta un oggetto O, un titolare j dell'opinione commenta su un
sottoinsieme di caratteristiche Sj ⊆ F. Per ogni caratteristica fk ∈ Sj sulla quale il
titolare j commenta, lui/lei sceglie una parola o una frase da Wk per descrivere la
caratteristica ed esprime un'opinione positiva, negativa o neutra su fk. Il compito
dell'opinion mining è quello di scoprire tutte queste cose nascoste e pezzi di
informazione da un documento dato. L'output sarà un insieme di quadruple ognuna
delle quali è denotata da (H, O, f, SO), in cui H è il proprietario dell'opinione, O
l'oggetto, f la caratteristica dell'oggetto e SO è l'orientamento semantico dell'opinione
espressa sulla caratteristica f in un frase di d. Le opinioni neutre vengono ignorate
poiché non sono utili.
I problemi che possono essere identificati:
1. L'estrazione delle caratteristiche dell'oggetto che sono state commentate in
ogni documento d D.∈
2. Determinare se i pareri sulle caratteristiche sono positive, negative o neutre.
10
3. Raggruppamento dei sinonimi delle caratteristiche (come titolari di opinioni
diverse possono usare parole diverse o una frase per esprimere la stessa
caratteristica).
Ci sono molti modi di utilizzare i risultati del data mining. Un modo
semplice è quello di produrre una sintesi, basata sulle caratteristiche, dei
pareri sull'oggetto.
Questa figura riassume le opinioni in una serie di recensioni di una particolare
macchina fotografica digitale. I titolari dell'opinione sono stati omessi. Nella figura,
"CAMERA" rappresenta la macchina fotografica stessa (gerarchicamente, il nodo
radice dell'oggetto). 125 commenti hanno espresso pareri positivi e 7 giudizi negativi
sulla fotocamera. La "Qualità dell'immagine" e le "Dimensioni" sono due
caratteristiche del prodotto. 123 recensioni hanno espresso pareri positivi, e solo 6
recensioni negative sulla qualità delle immagini a differenza delle 82 positive e 10
negative sulle dimensioni della fotocamera. Con tale sintesi, l'utente può facilmente
vedere cosa pensano i clienti sulla fotocamera digitale. Se l'utente è molto interessato
a una particolare funzione, può eseguire il drill down (funzione che permette di
penetrare nei dati a diversi livelli di gerarchie) seguendo il collegamento
<individual sentences> per capire se piace o no ai consumatori.
11
Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche
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
Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche
Figura 3: Grafico del confronto delle recensioni di due macchine fotografiche
apprendimento per la classificazione. Esistono algoritmi specifici per la
classificazione del sentimento che sfruttano opinioni, parole e frasi insieme a
funzioni di punteggio.
Ogni documento di valutazione (ad esempio una recensione) si concentra su un
oggetto O e contiene solo opinioni di un titolare dell'unico parere. In questo modo la
classificazione del sentimento determina fondamentalmente l'orientamento semantico
del parere espresso sull'oggetto O in ogni documento che soddisfa le ipotesi espresse
sopra.
Oltre al livello di documento per la classificazione del sentimento, i ricercatori
hanno anche studiato la classificazione a livello della frase, cioè, hanno classificato
ogni frase come una frase soggettiva o oggettiva e/o come espressione di un parere
positivo o negativo. Analogamente alla classificazione a livello di documento, la
classificazione del sentimento a livello di frase non considera le caratteristiche
dell'oggetto che sono state commentate in una frase. Le frasi composte sono un
problema per un'approfondita analisi. Tali frasi, spesso, esprimono più di un'opinione,
ad esempio, "La storia del film s'intreccia, attraverso metafore o esplicite parodie,
con i reali problemi di cui al giorno d'oggi può soffrire un qualsiasi marchio
pluridecennale che ha lasciato un segno e rischia di sprofondare in un ricordo sterile e
passivo.".
2.1.3 Opinion Mining basato sulle caratteristiche
Classificare i testi a livello di documento o a livello di frase non dice quello che il
titolare dell'opinione esprime. Avere un documento positivo su un oggetto non
significa che il parere è positivo su tutti gli aspetti o sulle caratteristiche dell'oggetto.
Analogamente, avere un documento negativo non significa che l'oggetto non piace
per niente. In un documento, il titolare dell'opinione scrive, generalmente, sia gli
aspetti positivi sia quelli negativi dell'oggetto, anche se il sentimento generale di
quell'oggetto può essere positivo o negativo. Per ottenere questi aspetti in dettaglio,
bisogna andare al livello di funzionalità.
13
Sulla base del modello presentato precedentemente, esistono tre tipi di
opinion mining:
1. Identificare le caratteristiche dell'oggetto: ad esempio, nella frase "La qualità
delle immagini di questa fotocamera è straordinario ", la caratteristica
dell'oggetto è" la qualità delle immagini ". È possibile sia un approccio
supervisionato sia senza supervisione. La tecnica trova sostanzialmente
sostantivi frequenti e sintagmi nominali, come caratteristiche, che di solito
sono le caratteristiche originali. L'estrazione di molte informazioni tecniche
sono altresì applicabili, per esempio, nei campi condizionali casuali (CRF),
nei modelli di Markov (HMM), e in molti altri.
2. Determinare gli orientamenti dell'opinione: questa attività determina se i
pareri sulle caratteristiche sono positive, negative o neutre. Nella frase citata
nel punto 1, il parere sulla "qualità dell'immagine" è positivo. Si può usare un
approccio basato sul lessico che utilizza fondamentalmente l'opinione su
parole e frasi in una frase per determinare l'orientamento di un parere su una
caratteristica. È possibile anche un approccio di etichettatura, uno
supervisionato e uno senza supervisione.
3. Raggruppamento dei sinonimi: le caratteristiche stesse dell'oggetto possono
essere espresse con parole o frasi diverse.
L'esprimere direttamente pareri positivi o negativi su un oggetto o sulle sue
caratteristiche è solo una forma di valutazione. Confrontare, invece, l'oggetto con
altri oggetti simili è ancora un'altra forma di valutazione. Una frase di esempio può
essere "Tom è migliore di Peter". In generale, una frase comparativa esprime una
relazione basandosi sulle somiglianze o differenze tra gli oggetti.
In inglese, per i confronti tra oggetti o persone si usano le forme comparative e
superlative degli aggettivi o degli avverbi. La struttura di un comparativo
normalmente consiste nell'utilizzo di un aggettivo o di un avverbio, più il suffisso -er,
14
o il modificatore "more" o "less" davanti all'aggettivo o all'avverbio. La struttura di
un superlativo normalmente è composta dall'aggettivo o dall'avverbio, più il suffisso
-est, o il modificatore "most" o "least" prima dell'aggettivo o dell'avverbio.
In italiano per il comparativo si fa precedere l'aggettivo dall'avverbio più
(comparativo di maggioranza), meno (comparativo di minoranza) o uguale
(comparativo di uguaglianza) oppure con forme particolari ad esempio
grande → maggiore. Per il superlativo italiano invece si utilizzano le regole della
figura 6. L'estrazione del confronto tra le frasi è costituito essenzialmente
dall'identificazione delle caratteristiche degli oggetti confrontati e dal valutare se
sono caratteristiche opposte.
Per confrontare l'uso degli aggettivi in italiano e in inglese per la costruzione della
forma comparativa ci serviamo della tabella seguente che elenca le principali
possibilità:
15
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
1)Per indicare una maggiore intensità di un aggettivo lo si fa precedere dall'avverbio più (comparativo di maggioranza)
Questo vino è più forte di/che quello
This wine is stronger than that one
2)Per indicare una minore intensità di un aggettivo lo si fa precedere dall'avverbio meno (comparativo di minoranza)
Questo vino è meno forte di quello
This wine is less strong than that one
3)Per indicare un'intensità simile di un aggettivo lo si fa precedere dall'avverbio tanto (o così) (comparativo di uguaglianza)
Questo vino è tanto (così) forte quanto (come) quello
This wine is as strong as that one
4)
con una forma particolarenormale comparativo superlativo
grande maggiore massimo
piccolo minore minimo
buono migliore ottimo
cattivo peggiore pessimo
precedente anteriore primo
seguente posteriore ultimo
interno interiore intimo
basso inferiore infimo
esterno esteriore estremo
alto superiore supremo
idiomatic
Figura 4: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del comparativo
Certi avverbi hanno forme particolari di comparativo e superlativo (come gli
aggettivi corrispondenti). Essi sono:
Alcuni avverbi e locuzioni avverbiali possono avere forme alterate:
17
bene meglio ottimamente
male peggio pessimamente
grandemente maggiormente massimamente
internamente interiormente* intimamente
bassamente inferiormente infimamente
altamente superiormente* supremamente
Figura 5: Forme particolari degli avverbi nella lingua italiana per la costruzione del comparativo
bene benino, benone
male malino, maluccio, malaccio
adagio adagino
poco pochino, pochetto, pochettino
tardi tardino, tarduccio
piano pianino
Figura 6: Forme alterate degli avverbi nella lingua italiana per la costruzione del comparativo
Per il superlativo invece:
18
1)
con l'aggiunta del suffisso -issimo alla forma plurale del maschile di un aggettivoa) caldi (caldo), grandi (grande)di un nomeb) amici (amico)alla forma in "i" di un avverbioc) *mali, *subiti (subito, male)
a) caldissimo, grandissimob) amicissimoc) subitissmo, malissimo
a) hottest, biggestb) friendliestc) at once
2)facendo precedere l'aggettivo da un avverbio
molto (completamente, tanto, assai, immensamente,terribilmente ecc.) nuovo
very new
3)
facendo precedere l'aggettivo da "il più" (1). Alle volte l'articolo "il" può essere ripetuto due volte (2).
(1) il più nuovo(2) il vestito il più nuovo che ho
the newest
4) ripetendo l'aggettivo due volte bello bello
5)facendo precedere l'aggettivo da tutto
tutto pulito all clean
6) con una forma diversa
acre > acerrimointegro > integerrimocelebre > celeberrimomisero > miserrimobenefico > beneficentissimo
idiomatic
7)facendo precedere l'aggettivo da un prefisso
stra > strariccosopra > sovraccaricosuper > superfortunatoultra > ultraefficienteiper > ipersensibile
extra richoverloadedsuper luckyultra efficientoversensitive
8)in casi particolari formando una espressione idiomatica
bagnato fradiciobello da morire bello e buono brutto da morire
soaking wet incredibly beautiful outright incredibly ugly
9) con la preposizione di il re dei re The King of Kings
Figura 7: Tabella del confronto dell'uso degli aggettivi nella lingua italiana e inglese per la costruzione del superlativo
2.2 Determinazione dell'orientamento dei termini
Determinare l’orientamento (o polarità) consiste nel determinare se un testo
soggettivo esprime un’opinione positiva o negativa sull’argomento mentre
determinare la forza dell’orientamento consiste nel determinare quanto l’opinione
positiva o negativa sia forte (Debolmente Positiva, Mediamente, Fortemente …).
Il determinare l'orientamento dei termini è il task principale:
scrivere una risorsa con termini etichettati positivi o negativi è abbastanza facile, ma
determinare se questi termini sono soggettivi è molto arduo.
Nel 1997 Hatzivassiloglou e McKeown, tentarono di predire l’orientamento
analizzando coppie di aggettivi (unite da e, o, oppure, ...). L’intuizione di base sta nel
fatto che l’unione di aggettivi è soggetta a vincoli sull’orientamento: “e” unisce
aggettivi dello stesso orientamento mentre “ma” orientamenti opposti. Partendo da
questo concetto, si genera un grafo dove i nodi sono i termini connessi da due tipi di
archi: “uguali”, “opposti”. Si applica poi un algoritmo di clustering per partizionare il
grafo in un gruppo positivo e uno negativo.
Nel 2003 Turney, Littman partono da dei piccoli set di termini soggettivi (seed),
uno con termini positivi (buono, bello, splendente, …) e uno con termini negativi
(cattivo, brutto, disgustoso, ...). I termini vengono analizzati calcolando
l’associazione semantica del termine al seed (Pointwise Mutual Information – PMI).
L'orientamento viene dato dalla formula O(t) = Σ(t – tp) - Σ(t – tn) ovvero dato un
termine t il suo orientamento O(t) (la positività è determinata dal segno) è calcolato
dalla somma delle distanze con i componenti positivi del seed meno la somma con le
componenti negative.
Nel 2004 Kamps utilizza il grafo definito sugli aggettivi utilizzando la relazione di
sinonimia all’interno di WordNet. Determina quindi l’orientamento di un aggettivo t
comparando la lunghezza del cammino minimo tra t e la parola positiva e la
lunghezza del cammino minimo tra t e la parola negativa. Se t è più vicino alla parola
19
positiva sarà classificato come positivo, altrimenti sarà classificato come negativo.
Sempre nello stesso anno, Kim e Hovy cambiano approccio dando un punteggio
di positività e uno di negatività ai termini in modo che sia evidenziato come questi
termini possano avere orientamenti sia positivi che negativi, e con quanta forza
portano quell’orientamento. Si inizia considerando un set di termini positivi e
negativi (seed) e lo si espande aggiungendo sinonimi e antinomi. Il sistema classifica
un termine t basandosi sulla probabilità di apparire nel set espanso. Uno dei limiti di
questo metodo è che possono essere classificati solo termini che condividono
sinonimi o antinomi con i seed.
2.3 Determinazione della soggettività dei termini
Determinare la soggettività di un documento consiste nel determinare se un testo
descrive un fatto in modo oggettivo (senza opinioni) oppure esprime un’opinione
sull’argomento. Il determinare la soggettività dei termini è un task chiave che
permette di scremare i termini interessanti (Soggettivi) da quelli non interessanti
(Oggettivi).
Nel 2003 Riloff adotta un algoritmo bootstrap per determinare i nomi soggettivi.
Per il bootstrap viene usato un set di 20 termini giudicati dall’autore come fortemente
soggettivi e molto frequenti nel testo da cui il nome proviene.
Nel 2004 Baroni e Vegnaduzzo applicano l'algoritmo PMI di Turney e Littman per
determinare la soggettività dei termini. Il metodo utilizza un set di 35 aggettivi
marcati come soggettivi da un valutatore umano, per dare un punteggio di
soggettività.
20
2.4 Progetti per il Sentiment Analysis
Il Sentiment Analysis è un settore di ricerca in rapido sviluppo e di grande
importanza per l'NLP. Ma si evince come l'applicazione abbia necessariamente
bisogno di un corpus di riferimento. Assumono importanza fondamentale i progetti
che mirano a costruire dei corpus di supporto come SentiWordNet, WordNet-Affect,
OntoText, FrameNet, … In questa tesi saranno illustrati SentiWordNet e
WordNet-Affect.
3 SentiWordNet e WordNet-Affect
Per capire al meglio cosa sono e di cosa trattano SentiWordNet e WordNet-Affect
è necessaria una presentazione di WordNet. Infatti questi due progetti, che in seguito
andrò a illustrare, sono estensioni di WordNet stesso.
3.1 WordNet
WordNet è un sistema di ricerca lessicale che si basa sulle attuali teorie
psicolinguistiche formulate sulla linguistica umana. In WordNet le parole sono
disposte alfabeticamente ed i loro significati elencati tutti assieme in relazione all'uso
più frequente a differenza di un dizionario tradizionale che è basato sulle procedure
storiche di organizzazione delle informazioni lessicali.
In WordNet le informazioni sono memorizzate in base al loro significato ed alle
loro categorie sintattiche e sono legate tra loro tramite diversi tipi di relazioni.
WordNet divide il significato di una parola in due concetti: la “Word Form”, la forma
scritta e la “Word Meaning”, il concetto espresso da tale parola. Il punto di inizio
della classificazione delle parole sono le relazioni che intercorrono fra il lemma e il
significato.
21
La base della teoria sta nella matrice lessicale (figura ): nelle righe vengono
elencati i significati delle parole e nelle colonne i lemmi. La presenza di un valore
non nullo di Eij all’interno della matrice implica che la forma F j viene espressa dal
significato Mi. Se abbiamo più valori non nulli nella stessa riga siamo davanti a dei
sinonimi: forme diverse hanno stesso significato; più valori non nulli nella stessa
colonna esprimono invece un concetto di polisemia: la stessa forma Fj ha più
significati.
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
Figura 8: Matrice lessicale di WordNet
gerarchie di specializzazione (iperonimi/iponimi); i verbi sono strutturati in una
gerarchia mediante la relazione di troponimia (un verbo è troponimo di un altro verbo
quando esprime una particolare azione, per es. camminare/muoversi); gli aggettivi si
presentano invece come iperspazi n-dimensionali.
3.1.2 Forme di parole e significato
La semantica lessicale parte dal concetto che una parola è una associazione fra la
sua espressione ed i concetti che essa stessa esprime. Queste corrispondenze sono
rappresentate nella matrice lessicale. La sinonimia e la polisemia sono aspetti
complementari della Matrice Lessicale. Le relazioni sono del tipo “molti a molti”.
La matrice lessicale potrebbe essere rappresentata, in un diagramma, da due
blocchi con due frecce che partendo da questi vanno in entrambe le direzioni. I due
blocchi saranno chiamati rispettivamente “Word Meaning” e “Word Form”. Le due
frecce indicheranno che colui che parla può partire da un significato “Word Meaning”
e cercare una forma adeguata ad esprimerlo, oppure partendo da una “Word Form”
ricercarne il giusto significato. WordNet quindi si è posto l’obiettivo di voler
esprimere due diverse relazioni:
1. relazioni semantiche fra i significati
2. relazioni lessicali fra le forme.
La costruzione della base di dati si è scontrata con l’esistenza di due teorie: la
teoria costruttiva e la teoria differenziale.
Secondo la teoria costruttiva un'accurata costruzione di un concetto deve essere
supportata da un numero sufficiente di informazioni. Tali informazioni devono
consentire di caratterizzarlo in modo da poterlo distinguere da altri possibili concetti
lessicali e di fornirne una corretta definizione.
La teoria differenziale, molto meno rigida, esprime il fatto che la rappresentazione di
un concetto possa essere fatta solo con elementi che permettano di distinguerlo da
23
altri.
Per essere più chiari possiamo ricorrere ad un esempio:
La parola pianta ha diversi significati:
· nome generico che indica qualsiasi vegetale fornito di organi specializzati
· proiezione orizzontale di un oggetto
· parte inferiore del piede
Nella teoria costruttiva per differenziare i due significati dobbiamo fornire
abbastanza informazioni in modo da distinguerli. In quella differenziale basta fornire
una lista di forme che lo possano esprimere. Il significato M può essere espresso con
una lista di forme (F1, F2, …). In questo modo abbiamo per ogni significato una lista
di forme fra di loro in relazione di sinonimia. L’insieme viene indicato come
Synonym Set, chiamato Synset.
Ritornando al nostro esempio, per distinguere i due significati sarebbe stato
sufficiente citarne due sinonimi: vegetale per il primo, e mappa per il secondo. Nel
caso in cui non esista un sinonimo appropriato a differenziare quel significato da
altri, si fa ricorso ad una glossa ovvero una breve spiegazione del significato. Per il
terzo significato del nostro esempio si potrebbe utilizzare la glossa: parte inferiore del
piede.
3.1.3 Le relazioni di WordNet
WordNet si basa sulle relazioni semantiche fra concetti; tra quelle implementate
da WordNet esistono:
· Sinonimia: Due concetti sono fra loro sinonimi se la sostituzione di uno con
l’altro non cambia il valore di verità della frase nella quale viene fatta la sostituzione
quindi due concetti sono fra loro sinonimi in un contesto linguistico C se la
24
sostituzione di un concetto con l’altro nel contesto C non ne altera il valore di verità.
Un esempio è la parola pianta sinonimo della parola mappa.
· Antonimia: L’antonimo di una parola x viene definito quasi sempre come not x.
Le parole ricco e povero sono fra loro antonimi anche se essere non ricchi non
implica necessariamente essere poveri: infatti, si può essere né ricchi, né poveri.
· Iponimia/Iperonimia: Un concetto rappresentato dal synset {x1, x2, x3,…} viene
detto iponimo del concetto rappresentato dal synset {y1, 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 {y1, y2,…} se si
possono accettare frasi scritte come x è parte di y. La relazione di14 meronimia è
transitiva (con le riserve che dopo spiegheremo) e antisimmetrica e può anch’essa
essere usata per costruire relazioni gerarchiche. Ne sono esempio le parole ala e
becco. esistono varie tipologie di relazioni parte di: componente/oggetto,
elemento/insieme, porzione/intero, materiale/oggetto, azione/attività, località/area e
fase/processo.
· Relazioni Morfologiche: Un'importante classe di relazioni lessicali fra forme di
parola. Un esempio è quello del plurale dei nomi. Se un utente inserisce la parola
chiese, e lancia la ricerca, il programma non dovrebbe dare come risultato l’assenza
della parola nel DataBase. Se la parola chiese è in relazione morfologica con il suo
singolare, la ricerca viene fatta sul termine chiesa.
3.1.4 I nomi di WordNet
Un nome è costituito da un termine generale che lo descrive (iperonimo) e
dall'elenco delle sue caratteristiche. La relazione di iponimia introduce quindi il
25
concetto di ereditarietà. Un figlio eredita dal genitore tutte le caratteristiche
aggiungendone altre che lo specificano e che lo distinguono dagli altri figli. Un
esempio può essere un ciliegio è un albero e si distingue dagli altri suoi simili per la
durezza del legno, la produzione di frutti, la forma delle foglie, il tipo di radici, ecc.
Questa relazione è la base della strutturazione dei nomi in WordNet.
La relazione di iperonimia/iponimia è la relazione sulla quale si basa la teoria sul
sistema di memoria semantica. Questo sistema è di tipo gerarchico e può essere
schematizzato come un albero. La proprietà fondamentale di un albero è che un
cammino dalla radice alle foglie non debba mai essere un loop. L’albero viene
costruito seguendo la catena di termini in relazione di iponimia. La struttura creata è
una sequenza di livelli che va da molti termini specifici al livello più basso a pochi
termini generici a livello più alto. Con questo sistema si ovvia al problema della
ridondanza, soprattutto per data-base che contengono molti termini: il termine al
livello n ha tutte le proprietà del termine al livello n-1 ad esso collegato e ne
aggiunge delle altre. E così via scendendo o salendo nella scala gerarchica. Basta
quindi memorizzare solo le informazioni che caratterizzano l’oggetto stesso, mentre
si possono tralasciare quelle che già sono memorizzate per l’oggetto genitore.
In WordNet per le relazione di iperonimia/iponimia si utilizzano i simboli @ e ~:
se Wh @-> Ws allora esiste la relazione inversa W s~->Wh. Quindi se la parola Ws è
un iperonimo del nome Wh allora Wh è un iponimo di Ws. La relazione semantica
@-> indica una generalizzazione mentre la relazione inversa ~-> indica una
specializzazione. Se synset della parola albero è {albero, pianta, @ conifera, ~….}
allora la parola pianta è un iperonimo di albero, ed equivale a scrivere:
albero@->pianta. Nel synset relativo alla parola pianta si troverà pianta~->albero.
Il synset della parola pianta è {pianta, flora, @ organismo, @ albero, ~…} in cui i
puntini indicano che la lista di relazione potrebbe continuare con altri termini ed i
relativi puntatori.
Sulla base della teoria del sistema gerarchico la costruzione dell’albero parte da
un'unica gerarchia, quindi la radice deve essere semanticamente piena. Di solito
26
come radice si prendere in considerazione un termine astratto come {entità} e si
inserisce {oggetto, cosa} e {idea} come suoi iponimi. Questa metodologia però porta
ad avere poco contenuto semantico. L’alternativa, adottata da WordNet, è quella di
partizionare i nomi in un insieme di synset primitivi, considerando un numero
relativamente piccolo di concetti generici da usare come radici semantiche per
costruire altrettante gerarchie separate. Nella figura …, qui di seguito, vengono
elencati i 25 synset primitivi; all’interno degli alberi generati da tali radici devono
essere contenuti tutti i vocaboli appartenenti alla categoria dei nomi della lingua
inglese. Le gerarchie create variano in grandezza e non sono fra loro mutuamente
esclusive: sono presenti anche riferimenti incrociati. Una volta scelti i concetti
primitivi, ci si è accorti che fra di essi esistevano delle relazioni.
27
28
Figura 9: I synset 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.
29
Figura 10: Relazione tra concetti primitivi
Figura 11: Relazione tra i nomi in WordNet
3.1.5 Gli aggettivi di WordNet
La categoria semantica degli aggettivi viene divisa in tre grandi gruppi:
· Aggettivi descrittivi
· Aggettivi relazionali
· Aggettivi Reference-Modifying
Un aggettivo descrittivo associa un valore a un attributo del nome cui esso è
associato. Un esempio è “casa grande”: grande è un aggettivo descrittivo riferito
all’attributo ‘dimensione’ del nome casa. Questo tipo di aggettivi è organizzato per
mezzo di uno spazio dimensionale di cui sono noti gli estremi. Per il termine
‘grandezza’ viene definita una scala di valori estesa, ad esempio, fra gli estremi
infinitesimo ed enorme. La relazione fondamentale per la definizione di queste scale
è l’antonimia.
Gli aggettivi relazionali sono aggettivi che derivano dai nomi (ad esempio
“atomico” deriva da “atomo”). Sono mantenuti in una lista distinta.
Gli aggettivi reference-modifying sono in un insieme piuttosto piccolo e
costituiscono una classe chiusa che viene mantenuta separata dagli altri aggettivi. Un
esempio è ‘Ieri ho incontrato un mio vecchio amico’. L’aggettivo vecchio può essere
riferito alla persona amica e indica che tale persona è anziana oppure può essere
riferito all’amicizia indicando che è di lunga data.
3.1.6 I verbi di WordNet
Anche i verbi sono organizzati secondo uno schema gerarchico. Nella categoria
vengono inclusi anche i “phrasal verbs”. Si suddividono in 15 files diversi: 14 relativi
ad altrettanti gruppi semantici che contengono i verbi denotanti azioni o eventi e un
file per verbi che denotano stati.
30
Le relazioni tra i verbi si basano su implicazione e opposizione. Per
l’implicazione, il tipo a cui si fa riferimento è la relazione di troponimia che
corrisponde all’iponimia per la categoria lessicale dei nomi. Un esempio di
troponimia esempio zoppicare è un modo di camminare. L’informazione
memorizzata per i verbi è del tipo predicato-argomento. Infine per ogni verbo nel
synset vengono inserite una o più “frames” che indicano le frasi in cui possono
comparire.
3.2 Descrizione di SentiWordNet
SentiWordNet è un’estensione di WordNet e assegna ad ogni synset tre punteggi:
Obj(s), Pos(s) e Neg(s), che stanno a indicare quanto oggettivi, positivi o negativi
siano quei termini. L’assunzione di fondo che permette di assegnare i punteggi ai
synset è che differenti significati di un termine portano opinioni differenti. Ogni
punteggio varia tra 0.0 e 1.0, e la loro somma è sempre 1.0. I punteggi sono anche
visibili nella rappresentazione grafica di SentiWordNet secondo questo schema
riportato nella figura sottostanta.
31
Figura 12: Rappresentazione grafica di un termini generico in SentiWordNet
Le figure sotto riportate sono esempi di rappresentazione:
32
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
3.2.1 Una breve storia di SentiWordNet
Esistono quattro versioni differenti di SentiWordNet:
1. SENTI WORD NET 1.0, presentata da Esuli e Sebastiani nel 2006 e reso
pubblicamente disponibile per scopi di ricerca.
2. SENTI WORD NET 1.1, solo discusso dai due ricercatori nel 2007 in una
relazione tecnica che non fu mai pubblicata.
2. SENTI WORD NET 2.0, solo discusso nella tesi da Esuli nel 2008
4. SENTI WORD NET 3.0
Poiché le versioni 1.1 e 2.0 non sono state discusse ampiamente in noti
pubblicazioni formali, ci si concentra sulle differenze tra le versioni 1.0 e 3.0. La
versione 1.0 (analogamente a 1.1 e 2.0) consiste in un'annotazione del precedente
WordNet 2.0, mentre la versione 3.0 è un annotazione più recente di WordNet 3.0.
Per SentiWordNet 1.0 e 1.1, l'annotazione automatica è stata effettuata tramite una
debole supervisione, algoritmo di apprendimento semi-supervisionato.
Contrariamente, per SentiWordNet 2.0 e 3.0 i risultati sono solo un passo intermedio
del processo di annotazione, poiché sono alimentati dal processo iterativo
random-walk che viene eseguito per la convergenza. SentiWordNet 2.0 e 3.0 è
l'output del processo random-walk dopo che è stata raggiunta la convergenza. La
versione 1.0 e 1.1 usa le glosse dei synset di WordNet come rappresentazioni
semantiche dei synset stessi, quando viene invocato il processo di apprendimento
semi-supervisionato di classificazione dei testi che classifica le glosse in categorie
Pos, Neg e Obj. Nella versione 2,0 il processo di apprendimento semi-supervisionato
è il primo passo mentre il processo random-walk è il secondo passo. In SentiWordNet
3.0 tra il processo di apprendimento semi-supervisionato (prima fase)
e il processo random-walk (seconda fase) si usano invece le glosse manualmente
disambiguate dalla Princeton WordNet Corpus2 Gloss, che si assume siano
più accurate rispetto a quelle dell'ExtendedWordNet.
33
3.2.2 Lo sviluppo di SentiWordNet 3.0
Il processo di annotazione automatica, secondo il quale SentiWordNet 3.0 è
generato, è costituito da due fasi: uno step di apprendimento semi supervisionato, e
un passo random-walk.
Il primo passo è simile a quello usato per la generazione di SentiWordNet 1.0 e
consiste di quattro sotto-passi:
• espansione dell'insieme dei seed
• classificatore ternario
• classificazione dei synset
• combinazione del classificatore
Nella prima sotto-fase, vengono automaticamente espansi due piccoli insiemi di
seed (uno composto da tutti i synset contenenti sette termini paradigmaticamente
positivi e l'altro da tutti i synset contenenti sette termini paradigmaticamente
negativi) attraverso le relazioni binarie di WordNet si possono collegare synsets di
una determinata polarità con altri synsets o della stessa polarità
o di polarità opposta e dall'aggiungere i synset così raggiunti si espandono i due
insieme iniziali. Questa espansione può essere essere eseguita con un certo "raggio",
ad esempio, con raggio k significa aggiungere all'insieme dei seed tutti i synset che
sono distanti meno di k dai membri dell'originale insieme di seed nel grafico
collettivo derivante dalle relazioni binarie considerate.
Nella seconda sotto-fase, i due insiemi di synset generati nella precedente fase
sono usati, insieme a un altro insieme assumendo di avere la proprietà Obj, come
insiemi per classificare l'oggettività dei termini. Le glosse dei synset sono usate per la
classificazione dell'oggettività. SentiWordNet 1.0 usa il modello “bag of words”,
secondo il quale la glossa è rappresentata dall'insieme delle parole che occorrono in
34
essa. In SentiWordNet 3.0 disambiguiamo manualmente le glosse rese disponibili dal
Princeton WordNet Gloss Corpus, secondo cui una glossa è attualmente una sequenza
di synset di WordNet. I classificatori di glossa sono basati tutti su quello che può
essere definito modello “bag of synsets”.
Nella terza sotto-fase, tutti i synset di WordNet (inclusi quelli aggiunti nella
seconda fase)sono classificati come appartenenti a Neg , or Obj tramite il
classificatore generato nella seconda fase.
La sotto-fase 2 può essere eseguita usando un diverso valore del parametro raggio
e tecnologie di apprendimento supervisionate. L'annotazione si rivela
più accurata se, piuttosto che un classificatore ternario unico,
viene generato un comitato di classificatori ternari, ciascuno dei quali risultano
membri di una combinazione diversa di scelte per questi due parametri (raggio e
tecnologia di apprendimento). È nato un comitato classificatore composto di 8
membri, derivante da quattro diverse scelte di raggio (k ∈ {0,2,4,6}) e due
scelte diverse di tecnologie di apprendimento (Rocchio and SVMs). Nella fase 4 il
valore finale Pos (resp., Neg , Obj) di un synset dato viene generato come la sua
media Pos (risp., Neg, Obj) attraverso gli otto classificatori della commissione.
Il secondo step consiste nel visualizzare WordNet 3.0 come un grafico
nell'esecuzione di un processo iterattivo in cui il Pos(s) e il Neg(s), e di conseguenza
anche Pos(s), partendo dai valori trovati nel precedente step, possibilmente
cambiando ad ogni iterazione. Lo step termina quando il processo iterativo è
convergente. Il grafico usato è implicitamente determinato su WordNet dalla
relazione binaria definiens – definiendum; in altre parole si assume l'esistenza di un
link diretto dal synset s1 al synset s2 se e solo se s1 (definiens) si trova nella glossa
del synset s2 (definiendum). L'intuizione di base è che, se la maggior parte i termini
che vengono utilizzati per definire un dato termine sono positivi (o negativi), allora vi
è un'alta probabilità che il termine in via di definizione sia positivo (o negativo). In
altre parole, positività e negatività sono visti come "fluire attraverso il grafico", dai
termini usati nelle definizioni ai termini in via di definizione.
35
Tuttavia, va osservato che, in WordNet, il definiendum è un synset, mentre il
definiens è un termine non disambiguato, poiché le glosse sono termini non
disambiguati. Per effettuare lo step abbiamo bisogno di glosse da disambiguare
contro WordNet stessa, ad esempio loro devono essere sequenze di synset WordNet.
Mentre per effettuare lo step per SentiWordNet 2.0 avevamo usato automaticamente
le glosse disambiguate fornite da ExtendedWordNet (Harabagiu et al.), per
SentiWordNet 3.0 usiamo le glosse disambiguate manualmente disponibili dal
Corpus Princeton WordNet Gloss. La matematica che sta dietro a questo passo è
descritto in Esuli e Sebastiani, 2007a.
Due differenti processi random-walk vengono eseguiti per
le dimensioni della positività e della negatività, rispettivamente, di
SentiWordNet, producendo due diverse classifiche 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
punteggio Pos di 8.03*10-6); 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, mentre moltissimi synset sono per lo più neutri),
si sono adattati i punteggi con una funzione della forma
Fpos(x)=a1xb1 (FNeg(x)=a2xb2 , nel caso negativo), determinando così A1 e B1 (o A2 e 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)=a1xb1 (FNeg(x)=a2xb2 ,nel caso negativo) per la classifica della positività (o
della negatività) prodotto dal processo random-walk.
I punteggi Obj(S) vengono poi assegnati in modo 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 uno e si imposta (s) = 03.
36
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
38
Figura 16: Struttura del data base di SentiWordNet
Figura 17: Esempio di dati in SentiWordNet
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.
39
Figura 18: Esempio di punteggi multipli per lo stesso termine in SentiWordNet
3.3 Descrizione di WordNet-Affect
WordNet-Affect è una risorsa linguistica per una rappresentazione lessicale della
conoscenza affettiva. Questa risorsa è stata sviluppata a partire da WordNet,
attraverso la selezione e l'etichettatura dei synset che rappresentano i concetti
affettivi. La computazione affettiva sta avanzando come un campo che permette una
nuova interazione uomo-macchina, oltre all'uso del linguaggio naturale. Vi è la
percezione che il futuro dell'interazione uomo-macchina sia nella sfera del
divertimento, delle emozioni, del piacere estetico, … Studiare la relazione tra il
linguaggio naturale e l'informazione affettiva e trattare la sua trattazione
computazionale diventa fondamentale.
Per lo sviluppo di WordNet-Affect si è considerato come punto di partenza
WordNet Domains, un'estensione multilingue di WordNet, sviluppato presso ITC-irst.
In WordNet Domains ogni synset è stato annotato con almeno un'etichetta dominio
(ad esempio legge, economia, politica), scelti da un insieme di circa duecento
etichette gerarchicamente organizzato. Un dominio può includere synset di diverse
categorie sintattiche: per esempio il dominio medicina raggruppa insieme i sensi dai
sostantivi, come doctor#1 (il primo senso della parola doctor) e hospital# 1, e dai
verbi come operate#7.
Per WordNet-Affect, l'obiettivo era di avere un'ulteriore gerarchia di "etichette di
dominio affettivo", indipendenti dalla gerarchia di domini, con le quali i synset
rappresentano concetti affettivi che sono annotati.
3.3.1 Lo stato dell'arte dei lessici affettivi
I primi tentativi di costruire una struttura lessicale per i termini affettivi
riguardavano lo studiare quali di questi termini rappresentano realmente delle
emozioni e quali criteri di classificazione prendere in considerazione. In particolare,
gli approcci semantici lessicali sono fondati sulla convinzione che "è possibile
inferire le proprietà emotive dalle parole che esprimono un'emozione." Questo
40
approccio è costituito da tre fasi principali. In primo luogo, vengono raccolti i termini
emotivi dai dizionari o da testi letterari e giornali. Quindi, un numero fisso di contesti
semantici sono fissati: ad esempio i termini di emozione pura oppure lo stato fisico e
cognitivo dei termini. Infine, da ogni termine viene estratto un insieme di dimensioni
affettive, utilizzando tecniche come l'analisi fattoriale o lo scaling multidimensionale.
L'approccio lessicale semantico ha mostrato una serie di importanti
questioni. Ortony e Clore hanno rivisto la letteratura sulle etichette emotive, e hanno
scoperto che il processo utilizzato per selezionare le parole emotive non ha portato
esclusivamente a un dominio di termini emotivi (ad esempio la parola “rabbia” si
riferisce ad un'emozione, a uno stato d'animo, e “confusione” ad uno stato cognitivo).
Un altro problema è stato delineato da Watson e Tellegen: in letteratura vi è un
accordo solo su due caratteristiche: “arousal” (eccitato, teso contrario di rilassato,
sonnolento) e “valence” (felice, felice contrario di triste, emozionato). Tuttavia,
queste due dimensioni non sono sufficienti ad individuare l'intera gamma di concetti
emozionali. Inoltre, le tecniche dell'approccio semantico lessicale non ci permettono
di distinguere i diversi sensi della parola stessa. Ad esempio, la parola
“surprise” può fare riferimento a un sentimento ("lo stupore si sente
quando ti succede qualcosa di totalmente inaspettato"), ad un evento ("un evento
improvviso e inaspettato"), o ad una azione ("l'agire sorprendente di qualcuno").
Pertanto, al fine di costruire una struttura per l'organizzazione del lessico affettivo,
non si possono solo utilizzare le informazioni provenienti dallo stesso lessico, ma
abbiamo bisogno di ottenere informazioni fornite da recenti ricerche scientifiche
sull'emozione. In questo approccio al lessico affettivo, il centro d'interesse non è
quello di studiare la natura delle emozioni, ma capire come i significati affettivi sono
espressi in linguaggio naturale.
41
3.3.2 Lo sviluppo di WordNet-Affect e del suo nucleo
Il 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
Per avere un insieme iniziale di parole affettive, è stato realizzato manualmente
WordNet-Affect, composto da 539 sostantivi, 517 aggettivi, 238 verbi e 15 avverbi.
Si è iniziato a raccogliere un elenco di aggettivi con l'aiuto di dizionari mentre più
tardi sono stati aggiunti i sostantivi tramite una correlazione intuitiva con gli
aggettivi. Verbi e avverbi sono stati aggiunti in modo simile. Per ogni elemento, è
stata creata una struttura al fine di aggiungere informazioni lessicali e affettive. Le
informazioni lessicali comprendono la correlazione tra i termini inglesi e italiani,
parti del discorso (POS), definizioni, sinonimi e contrari. L'attributo POSR si
riferiscono a termini aventi differenti POS, ma che puntano alla
stessa categoria psicologica. Ad esempio, l'aggettivo allegro è semanticamente legato
al nome di allegria, al verbo rallegrare e all'avverbio allegramente.
L'informazione affettiva è un riferimento ad uno o più delle principali tipologie di
teorie sulla rappresentazione delle emozioni discrete: teorie basate sul concetto di
valutazione cognitiva, teorie basate sulle emozioni base e teorie dimensionali. Sulla
base del lavoro di Ortony, i termini sono classificati in termini emozionali, termini
affettivi non-emozionali e termini non affettivi di stato mentale. Altri termini sono
collegati con tratti della personalità, dei comportamenti, degli atteggiamenti, degli
stati fisici o stati del corpo e dei sentimenti (come il piacere o dolore). Viene
chiamato Ortony l'attributo usato per indicare la categoria affettiva dei termini nel
database. Alcuni esempi sono riportati nella tabella sottostante.
43
Figura 19: A-labels con i rispettivi synset di esempio
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 delle informazioni affettiva. I risultati hanno mostrato
che i synset sono un buon modello per la 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 le relazioni di WordNet,
44
Figura 20: Categorie e termini
il nucleo affettivo di WordNet-affettive potrebbe essere esteso. Per ogni relazione, si
è esaminato se si conservano i sensi affettivi (cioè se tale rapporto, applicato al synset
di WordNet-Affect, genera synset che ancora rappresentano
concetti affettivi). Se i synset risultanti sono membri di WordNet-Affect, la risposta è
affermativa. Ma nel caso in cui il rapporto non genera synsets inclusi nel data base,
dovrebbe essere necessario procedere al controllo manuale. Tuttavia, un esame
esplorativo ha permesso di individuare un elenco di relazioni "affidabili" (come ad
esempio antonimia e somiglianza, derivati da parole, appartenenti a parole e attributi)
per il quale si è ipotizzato che il significato affettivo è conservato per tutti gli articoli
di WordNet-Affect. Pertanto, tutti i synset ottenuti mediante l'applicazione di tali
relazioni e che non sono ancora contenuti nel WordNet-Affect sono inclusi in esso.
Per le altre relazioni (come ad esempio iperonimia, implicazione, gruppi di verbi) si è
assunto che il significato affettivo è solo parzialmente conservato. In tal caso è
necessario filtrare manualmente i synset al fine di selezionare coloro che hanno
veramente significato affettivo. In particolare, è utile confrontare
informazioni affettive del database con iperonimi della gerarchia di WordNet limitata
al dominio PSICOLOGIA, per proporre arricchimento nella struttura di questa camp
semantico. WordNet-Affect al momento contiene 2874 synset e 4.787 parole.
45
4 Sviluppo del software
Il software che ho implementato nel periodo di tirocinio annota in modo
semantico ed emozionale il contenuto di un testo in un file xml in particolar modo
prendendo in considerazione le coppie <nome, aggettivo>.
All'inizio dell'esecuzione il programma richiede all'utente di inserire il nome del
file che si vuole dare in input al sistema di annotazione. Il file è sottoposto al
preprocessing che elimina da ogni frase le emoticons (come :) ;) :D e molte altre) e
tutte le parole contenute tra parentesi. Perché questa fase di preprocessing?
Semplicemente per semplificare il compito del parser, che si occupa dell'analisi
sintattica delle frasi contenute nel file.
Il sistema consente di continuare ad annotare appendendo elementi a un file xml
già esistente oppure permette di creare un nuovo file xml.
Come dominio di applicazione abbiamo scelto delle recensioni di ristoranti, sia
perché è uno degli ambiti in cui è più agevole reperire commenti e opinioni, sia
perché in questo dominio era disponibile un dataset già pronto.1
Quindi dando in input al sistema un file di testo, il sistema estrae una frase alla
volta e la passa in input al parser (TUP) . Grazie all'analisi sintattica si estraggono le
coppie <nome, aggettivo>. A queste coppie viene aggiunta una griglia emozionale le
cui emozioni sono state individuate da Ekman. Viene chiesto all'utente di inserire da
tastiera, tramite il metodo inserimento_emotion_grounds, un valore per ogni
emozione (happyness, sadness, anger, fear, disgust e surprise) contenuta in questa
griglia di cui parleremo nel paragrafo dedicato a Ekman.
Le triple annotate sono pertanto costituite dai seguenti elementi, <nome,
cognome, griglia emozionale> e sono memorizzate per mezzo di una struttura di tipo
1 Desidero ringraziare in proposito il Dott. Di Caro per avermi inviato un dataset su cui sta attualmente lavorando, e proveniente dal sito http://www.2spaghi.it/.
46
ArrayList. Se il primo valore della griglia emozionale è -1 la coppia <nome,
aggettivo> non viene salvata nell'ArrayList; in questo modo l'annotatore può scartare
coppie nome-aggettivo frutto di un'associazione erronea causata da errori di parsing
(per esempio nella gestione della coordinazione).
Quindi viene chiesto all'utente di inserire il nome al file xml che si sta per creare:
se il nome corrisponde al nome di un file esistente il sistema chiede se si vuole
sovrascrivere il file esistente (in questo caso il file esistente perderà tutte le
informazioni finora annotate) oppure appendere i nuovi elementi in coda alle
annotazioni già presenti. Se il nome del file invece non corrisponde al nome di
nessun file xml, viene creato un file xml con quello stesso nome scelto dall'utente.
Il metodo estrazione_triple prende in input un nodo dell'albero creato dal parser
(TUP) e una frase e da in output un ArrayList contenente le triple di ogni frase,
contenuta nel file iniziale, data in input al metodo stesso. Questo metodo si serve di
due metodi di supporto di cui il primo si occupa di estrarre il nome corrispondente
all'aggettivo individuato dal metodo chiamante mentre il secondo si occupa di trovare
l'aggettivo coordinato all'aggettivo individuato dal primo metodo di supporto che lo
invoca (ad esempio nella frase “Mi piace la casa rossa e blu nella foresta” il primo
metodo mi restituisce un ArrayList contenente solo <casa, rossa, emozioni relative
all'aggettivo rosso> aggiungendolo in coda all'ArrayList globale mentre il secondo
metodo mi restituisce un ArrayList contenente solo <casa, blu, emozioni relative
all'aggettivo blu> e lo aggiunge in coda allo stesso ArrayList globale). Nel caso non
ci fossero aggettivi coordinati il secondo metodo non viene neanche eseguito.
Vengono quindi creati due oggetti, rispettivamente Nome e Aggettivo, che
contengono il lemma e un array di synset corrispondenti. Infatti ogni metodo di
supporto, per trovare un array di synset relativi al lemma trovato, deve richiamare il
metodo cerca_in_mwn.
Il metodo cerca_in_mwn, dato in input un lemma, un POS (part-of-speech) e la
lingua, si connette al database MultiWordNet e verifica se esiste quel lemma
47
restituendo tutti i possibili synset. Nel caso il lemma non fosse presente nel data base,
viene stampato un messaggio “Il lemma - nome del lemma - non si trova nel
database”.
Nel programma si trova anche il metodo disambiguate che restituisce un oggetto
di tipo Lesk in cui vi è la descrizione e il synset di un lemma. Questo metodo serve
per la disambiguazione tra i tanti synset corrispondenti a una parola e viene utilizzato
nel metodo crea_xml per far corrispondere a ogni lemma il synset più appropriato
alla frase corrispondente con la relativa descrizione.
Il metodo crea_xml prende in input un ArrayList e il nome di un file e crea un
documento xml vuoto e un albero xml con una radice <root> a cui appende
l'elemento <annotated_corpus> a cui vengono appesi gli <annotation pair>
contententi gli elementi <name> (contiene il lemma e il synset relativo al nome) e
<adjective> (contiene il lemma, il synset e i valori della griglia di Ekman). Viene così
salvato l'albero in un file xml.
Il metodo append prende in input un ArrayList e il nome di un file ma, a
differenza del metodo crea_xml, non crea un elemento root e un elemento
annotated_corpus: crea semplicemente tutti gli annotation pairs che saranno “appesi”
all'annotated corpus del file xml esistente.
48
4.1 Utilizzo del parser TUP
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
Figura 21: Architettura del sistema TUP
preliminari, si eseguono in ordine le operazioni di chunking (raggruppamento),
analisi della coordinazione e della sotto categorizzazione verbale.
4.1.1 Sotto-moduli del parser
I sotto-moduli del sistema sono costituiti dai seguenti elementi:
1. Parentesi: se il sistema lavora su singole frasi, rimuoviamo tutte le parentesi
che compaiono nella frase. Il contenuto delle parentesi viene parsificato, il
risultato di questo lavoro viene inserito nello stesso punto da cui è stata
prelevata la parentesi.
2. Chunking: il risultato è un insieme di chunk (nominale, aggettivi, etc.) tra
loro non collegati, la testa del chunk contiene un link vuoto.
3. Liste di oggetti
4. “di cui a”: se prendiamo come esempio la frase “...il commento di cui al
paragrafo successivo è molto importante...”, si assume l'esistenza di una
traccia verbale, si cerca il testo a cui si riferisce la frase “di cui a”.
5. Analisi delle congiunzioni: comporta l'individuazione e il collegamento di
ogni possibile congiunzione con le altre.
6. Allegare i dipendenti verbali.
7. Possibile correzione degli allegati preposizionali: si esamina l'intero albero,
per cercare di cambiare i collegamenti delle preposizioni ed ottenere così una
struttura migliore.
8. Post-processamento: Se alcuni oggetti sono rimasti isolati, saranno connessi
all'albero di parsificazione in questa fase.
4.1.2 Chunker
Il chunker ispeziona la frase in passi differenti, e per ogni parola prova ad
applicare ogni possibile regola di chunking, associata alla categoria della parola.
50
La categoria sintattica della testa del chunk è costituita da uno degli elementi
appartenenti alla seguente lista: Special, Punct, Adv, Predet, Conj, Adj, Num, Noun,
Pron, Art, Prep, Verb. Ogni regola di chunking rispetta il seguente formato: Head-
Category: <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: <<fc11,sc1> ,
<fc12,sc1> , … <fc21,sc2> , <fc22,sc2> ,...>.
3. la ricerca della migliore coppia:
Si applica un insieme di euristiche per trovare la coppia migliore. Queste
regole tengono conto della vicinanza tra gli oggetti della coppia e delle
caratteristiche lessicali dei verbi.
4. Ci si muove all'indietro per controllare ogni comma se in realtà è il secondo
sintagma di una congiunzione che compare precedentemente.
51
4.1.4 Dipendenze verbali
La decisione sulle strutture verbali si svolge in due fasi:
1. Una volta che sono stati definiti i confini, tutti i chunk al loro interno
vengono collegati al singolo verbo che vi compare. I confini vengono definiti
tramite l'applicazione di regole euristiche. Le regole vengono applicate da
sinistra a destra. Ogni oggetto scollegato posto a sinistra del verbo viene
assunto come suo dipendente. Gli oggetti scollegati che seguono il verbo
vengono presi come dipendenti del verbo finché non se ne trova un altro. Il
verbo trovato diventa un dipendente, se ha tempo infinito o gerundio, o se
ammette discorsi diretti.
2. Si deve scegliere un'etichetta corretta per il chunk che sarà attaccato al verbo.
Include argomenti separati da aggiungere ed assegnare all'etichetta corretta.
Le tracce vengono inserite nello spazio di ogni argomento mancante. Il
lavoro viene fatto basandosi su una gerarchia di sottocategorie verbali, che
include informazioni sui possibili argomenti e le loro realizzazioni ammesse.
Dopo questa fase ci troveremo con una struttura di parsing parzialmente
costruita, che include un insieme di chunk, sia preposizionali, modificatori,
sintagmi e alcuni verbi. I vari chunk sono i dipendenti verbali. Ogni verbo è
collegato con un insieme di dipendenti senza etichetta. L'ultima fase di
questo lavoro consiste nel determinare le etichette degli archi. Il risultato
finale di questa fase consiste nel trovare, per ogni verbo nella frase,
l'accoppiamento ritenuto migliore tra le sue dipendenze e i frame verbali
associati alle sue possibili sottocategorie. Per esempio il verbo autorizzare ha
una sola possibile sottocategoria (trans-a), dopo autorizzare segue la
preposizione “a”. Un verbo transitivo prevede anche un soggetto, un oggetto
ed un tema. Per esempio: [il terzo comma]subj autorizza [il Consiglio]obj [a
inviare aiuti alimentari]theme.
52
Il post-processing è la fase che si occupa di riempire i link relativi alla
punteggiatura e ai verbi. Consiste nell'individuare il verbo principale e se non ci sono
altri verbi disponibili, nel selezionare un'altra radice. Per la punteggiatura si
applicano varie regole, per cercare di segnare quando è possibile le parentetiche. Il
processo tiene conto della struttura dei chunk e delle frasi verbali precedentemente
stabilite.
4.2 Utilizzo di MultiWordNet
Per il sistema sviluppato si è fatto uso di MultiWordNet, una banca dati lessicale
multilingue che comprende le informazioni sulle parole inglesi e italiane. Si tratta di
un'estensione di WordNet 1.6, un database lessicale per l'inglese sviluppato presso
l'Università di Princeton. MultiWordNet contiene informazioni sui seguenti aspetti
dei lessici della lingua inglese e italiana :
• relazioni lessicali tra concetti
• corrispondenze tra i concetti lessicalizzati in italiano e inglese
• campi semantici (domini)
La relazione di base lessicale in MultiWordNet è la sinonimia. Gruppi di sinonimi
vengono utilizzati per identificare i concetti lessicali, che vengono chiamati anche
synsets. Ecco un esempio di synset italiano:
{elaboratore, computer, cervello_elettronico, calcolatore}
I synset sono l'unità più importante di MultiWordNet. Molte informazioni
interessanti sono unite ad essi, come i campi semantici e le relazioni semantiche. Ad
esempio, il synset sopra appartiene al campo semantico "Computer Science" e
dispone di tre diverse relazioni semantiche:
53
Macchina has_hypernym {}
has_hyponym calcolatore_analogico {}, {} calcolatore_digitale, ecc
has_part {microchip, chip}, ecc.
La corrispondenza incrociata tra i termini inglesi e italiani è definita tra i synset:
{elaboratore, computer, cervello_elettronico, calcolatore}
corrisponde a
{computer, data_processor, electronic_computer, information_processing_system}
MultiWordNet può essere utilizzato per una varietà di compiti NLP tra cui:
• Information Retrieval: le relazioni di sinonimia vengono utilizzati per
l'espansione della query e per migliorare il recupero dell'IR; le
corrispondenze incrociate tra i synset italiani e inglesi sono utilizzati per il
Cross Language Information Retrieval.
• Tagging semantico: i testi sono contrassegnati con identificatori synset.
• Chiarimento delle ambiguità: le relazioni semantiche sono utilizzate per
misurare la distanza semantica tra le parole, e possono essere utilizzate per
disambiguare il significato delle parole nei testi. Anche i campi semantici si
sono rivelati molto utili per l'attività di disambiguazione.
• Le ontologie: MultiWordNet può essere visto come una ontologia per essere
utilizzato per una varietà di compiti NLP basata sulla conoscenza.
• Terminologie: MultiWordNet costituisce un solido framework che sostiene lo
sviluppo di specifiche terminologie strutturate.
Al momento è disponibile la release 1.39, contenente 58.000 word meaning
italiani organizzati in 32.700 synset, oltre alle corrispondenze con i synset equivalenti
di WordNet 1.6. Al momento, il database è fornito come dump di tabelle MySQL,
insieme a un paccheto di API implementate in Java, mentre con la prossima release
54
sarà disponibile un’interfaccia html-based che utilizzerà Apache/php/MySQL.
4.2.1 Descrizione di MultiWordNet
MultiWordNet rappresenta un’estensione della matrice lessicale di WordNet in
una matrice lessicale multilingua. Viene aggiunta una terza dimensione che
rappresenta la lingua. Guardando la figura, in larghezza si trovano i lemmi specifici
di una lingua, in altezza i significati e in profondità si scorrono le lingue. Se
prendiamo come base di riferimento WordNet, la costruzione della matrice lessicale
multilingua con l’aggiunta dell’italiano consiste nel ri-mappare i lemmi italiani
secondo i synset della lingua inglese.
Il risultato è una completa ridefinizione delle relazioni lessicali (che collegano un
lemma a un synset) della lingua italiana; invece, per le relazioni semantiche vengono
mantenute il più possibile quelle definite per l’inglese.
Questa architettura è facilmente estensibile ad altre lingue.
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
Figura 22: Matrice lessicale multilingua di MultiWordNet
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.
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
Figura 23: Architettura di MultiWordNet
semantiche incompatibili con quella lingua. Le informazioni contenute in questi
ultimi add-on sono di due tipi:
• Relazioni semantiche specifiche di una lingua;
• Lexical gap.
I lexical gap si hanno quando un concetto, che può essere espresso con singoli
lemmi, in un'altra lingua non trova un synset corrispondente ma può essere solo
tradotto con una frase oppure espresso con un termine di significato più generico o
più specifico (denotation difference ). Ad esempio, il synset inglese associato alla
glossa “the pointed head or striking tip of an arrow” e contenente il solo termine
“arrowhead”, non trova in italiano un termine corrispondente, ma viene tradotto con
l’espressione “Punta di freccia”. In questo caso ci troviamo di fronte ad un lexical
gap, che viene rappresentato, nell'Italian-db, con un synset italiano che ha associati
solo il particolare lemma “GAP!” e la glossa “punta_di_freccia”. “GAP!” viene
implementato nel database come se fosse un lemma anche se non è un vero e proprio
termine. Quando ci si trova in uno di questi casi, il concetto mancante viene
collegato, nel language-db, ad un empty-node presente nella parte lessicale; a questo
punto ci sono due strategie differenti:
• nel caso di lexical gap, nella glossa del nodo viene riportata una traduzione del
concetto in quella lingua;
• nel caso di denotation difference, il nodo viene collegato da una o più relazioni
nearest a synset che esprimono concetti più generali/specifici.
Per le relazioni sono importate da WordNet tutte quelle semantiche e a queste si
aggiungono le relazioni di tipo nearest. L’unica relazione lessicale al momento
istanziata è la sinonimia. La figura rappresenta una tabella che riassume tutti i tipi di
relazioni presenti in MultiWordNet.
Il popolamento del data base è avvenuto in questo modo: dapprima è stato
57
integrato WordNet, separando la parte semantica, che ha riempito il Common-db, da
quella lessicale, inclusa nell'English-db. In seguito, si sono utilizzate due procedure
semi-automatiche per la costruzione dell'Italian-db che sfruttano entrambe un
dizionario bilingue italiano-inglese:
• La prima è denominata Assign-procedure e serve a individuare, dato un termine
italiano ed un suo significato, una lista dei synset inglesi più simili; i synset vengono
pesati in base ad una serie di regole di match;
• La seconda è la LG-procedure, che aiuta a trovare i lexical gap; i lexical gap
English-to-Italian possono quindi essere automaticamente esclusi dai risultati della
routine precedente, mentre quelli Italian-to-English rappresentano synset italiani per i
quali l'Assign-procedure non restituisce alcun risultato, e che perciò devono essere
aggiunti manualmente.
58
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
Figura 24: Tipi di relazioni in MultiWordNet
Attualmente il programma si connette in locale a MySQL in cui è caricato il data
base di MultiWordNet. Le tabelle che sono state importate sono:
• common_relation.sql 124722 records
• english_frame.sql 19543 records
• english_index.sql 123774 records
• english_relation.sql 18838 records
• english_synset.sql 102101 records
• italian_index.sql 45099 records
• italian_relation.sql 318 records
• italian_synset.sql 38653 records
• semfield.sql 108038 records
• semfield_hierarchy.sql 164 records
La tabella "common_relation" elenca tutte le relazioni semantiche che sono
comuni a tutti i linguaggi. Ogni record contiene quattro campi:
• type: tipo della relazione (vedere anche la lista delle relazioni di
MultiWordNet e i corrispondenti simboli usati per codificarli);
• id_source: identificatore del synset di provenienza ("pos#offset", dove pos è
"n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);
• id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i
nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);
60
• status: "new" se la relazione coinvolge nuovi synset, ad esempio i synset che
non sono in Princeton WordNet and sono stati creati in MultiWordNet.
Quando la relazione coinvolge i synset che sono stati definiti già in Princeton
WordNet il campo è "NULL".
Esempi:
INSERT INTO common_relation VALUES ('*','v#00001740','v#00003763',NULL);
INSERT INTO common_relation VALUES ('@','v#00002143','v#00001740',NULL);
Le tabelle "english_relation" e "italian_relation" contengono le relazioni che
dipendono dal linguaggio. Queste relazioni sono istanze delle relazioni lessicali
standard usate in Princeton WordNet (ad esempio antonimia, appartiene a, etc.).
Inoltre, queste tabelle contengono un nuovo tipo di relazione semantica creata
all'interno MultiWordNet, che si chiama "nearest". La più vicina relazione vale tra un
synset vuoto (uno spazio lessicale) di un certo linguaggio e il synset con il significato
più simile in quella lingua. Ci sono solo pochi esempi di questa relazione codificata
finora.
La tabella contiene sei campi:
• type: tipo della relazione (vedere anche la lista delle relazioni di
MultiWordNet e i corrispondenti simboli usati per codificarli);
• id_source: identificatore del synset di provenienza ("pos#offset", dove pos è
"n" per i nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);
• id_target: identificatore del target synset ("pos#offset", dove pos è "n" per i
nomi, "v" per i verbi, "a" per gli aggettivi, ed "r" per gli avverbi);
• w_source: il lemma originale (solo per le relazioni lessicali);
• w_target: il target del lemma (solo per le relazioni lessicali);
61
• status: "new” se la relazione include un nuovo synset oppure "NULL" se
include synset derivanti da Princeton WordNet.
Esempi:
INSERT INTO english_relation VALUES
('!','v#00009549','v#00009666','rest','be_active',NULL);
INSERT INTO italian_relation VALUES ('|','n#N0002074','n#09593084','','','new');
Le tabelle "english_synset" e "italian_synset" contengono i synset italiani e inglesi
(molti di questi derivano da Princeton WordNet but ma altri sono nuovi). Vengono
specificate anche le lacune lessicali.
Ogni record contiene quattro campi:
• id: identificatore synset ("pos#offset") o un identificatore di Princeton
WordNet o un nuovo identificatore synset (che incomincia con"N");
• word: lemmi contenuti nel synset, separati da uno spazio. I token delle parole
multiple sono collegate dal carattere "_". La parola "GAP!" e
"PSEUDOGAP!" sono identificatori speciali usati per descrivere dei
lexical gaps;
• phrase: lemmi contenuti nelle frasi, separate da uno spazio. I token delle
parole multiple sono collegate dal carattere "_".
• gloss: la maggior parte dei synset ha una glossa, composta da una definizione
come esempio.
Esempi:
INSERT INTO english_synset VALUES ('n#00008864',' plant flora plant_life
',NULL,'a living organism lacking the power of locomotion');
INSERT INTO italian_synset VALUES ('n#00043525',' GAP! ',' errore_di_calcolo
',NULL);
62
INSERT INTO italian_synset VALUES ('a#02078908',' epocale ',' che_fa_epoca ','che
caratterizza un\'epoca; \"una svolta epocale\"');
Le tabelle "english_index" e "italian_index" contengono le liste dei lemmi inglesi
e italiani. Lo scopo di queste tabelle è richiamare molto rapidamente i synset-id e le
ricerche possibili a partire da un lemma in tutta i suoi pos.
Ogni record contiene cinque campi:
• lemma: contenente i lemmi normalizzati. I token delle parole multiple sono
collegate dal carattere "_". La parola "GAP!" e "PSEUDOGAP!" sono
identificatori speciali usati per descrivere dei
lexical gaps;
• id_n: contiene la lista dei synset-id (separati da un carattere) nei quali il
lemma è contenuto come un nome;
• id_v: contiene la lista dei synset-id nei quali il lemma è contenuto come un
verbo;
• id_a: contiene la lista dei synset-id nei quali il lemma è contenuto come un
aggettivo;
• id_r: contiene la lista dei synset-id nei quali il lemma è contenuto come un
avverbio;
Esempi:
INSERT INTO english_index VALUES ('shape','n#03952527 n#00015185
n#04055717 n#04562135 n#03685812 n#10430604 n#04554317','v#00474001
v#01139594 v#00095506','','');
INSERT INTO italian_index VALUES ('parlamentare',' n#07457674','
v#00518082','a#02590962',NULL);
63
La tabella "semfield" contiene uno o più etichette di dominio per ogni synset in
MultiWordNet. Le etichette di dominio sono indipendenti dal linguaggio e applicate
tra i synset inglesi e italiani. Tuttavia, per ragioni pratiche, sia le parole in inglese sia
le traduzioni italiane sono riportate come etichette di dominio.
Ogni record di questa tabella contiene due campi:
• synset: identificatore del synset ("pos#offset");
• english: contiene la lista delle etichette di dominio associate al synset in
inglese;
Esempi:
INSERT INTO semfield VALUES ('r#00078025','Administration Economy Law',);
INSERT INTO semfield VALUES ('n#00031741','Military',);
La tabella "semfield_hierarchy" contiene la gerachia di 169 etichette di dominio
usate per taggare i synset di MultiWordNet.
Ogni record contiene cinque campi:
• code: numero progressivo associato a ogni dominio, da 1 a 169.
• english: nome in inglese del dominio
• normal: il dominio base (secondo livello della gerarchia) al quale il dominio
si riferisce nel record .
• hypers: il diretto iperonimo del dominio
• hypons: il diretto iponimo del dominio
64
Esempi:
INSERT INTO semfield_hierarchy VALUES
(25,'Sport','Sport','Free_Time','Badminton Baseball Basketball Cricket Football Golf
Rugby Soccer Table_Tennis Tennis Volleyball Cycling Skating Skiing Hockey
Mountaineering Rowing Swimming Sub Diving Racing Athletics Wrestling Boxing
Fencing Archery Fishing Hunting Bowling');
INSERT INTO semfield_hierarchy VALUES (29 , 'Folklore' , 'Anthropology' ,
'Ethnology' , '');
La tabella "english_frame" contiene la sotto-categorizzazione dei frame dei verbi
inglesi. Fino ad ora i verbi italiani non hanno questo tipo di informazioni.
Ogni record contiene tre campi:
• id: identificatore del synset ("v#offset");
• frame_num: identificatore della sotto-categorizzazione dei frame
• lemma: il lemma nel synset al quale è stata applicata la
sotto-categorizzazione del frame. Se la sotto-categorizzazione del frame è
applicata a tutti i lemmi nel synset, il campo contiene "*".
Esempi:
INSERT INTO english_frame VALUES ('v#00182674',2,'*');
INSERT INTO english_frame VALUES ('v#00182674',8,'get_over');
4.3 Implementazione dell'algoritmo di Lesk per la disambiguazione dei termini polisemici (WSD)
L’algoritmo di Lesk, è utilizzato per la disambiguazione di termini di tutte le
categorie sintattiche, all’interno di brevi frasi. Data la parola da disambiguare e la sua
definizione nel dizionario o la sua glossa, per ognuno dei sensi ad esso associati,
viene confrontato con le glosse degli altri termini che compaiono all’interno della
65
frase. Successivamente, al termine viene associato il significato la cui glossa presenta
il maggior numero di parole in comune con le glosse appartenenti alle altre parole.
L’algoritmo prosegue, eseguendo un processo iterativo per ogni termine, e non
considerando i sensi precedentemente assegnati. Di seguito si riporterà il codice
dell’algoritmo:
Riportiamo ora un esempio di applicazione dell’algoritmo sulla parola pine cone.
Utilizzando l’Oxford Advanced Learner’s Dictionary, si ritrovano i seguenti due
sensi per la parola pine:
• Senso 1: kind of evergreen tree with needle-shaped leaves
• Senso 2: waste away through sorrow or illness
66
Figura 25: L'algoritmo di Lesk
Per la parola cone troviamo invece tre sensi:
• Senso 1: solid body which narrows to a point
• Senso 2: something of this shape whether solid or hollow
• Senso 3: fruit of certain evergreen tree
Ognuno dei sensi della parola pine è confrontato con tutti i sensi della parola
cone. Come si nota facilmente il senso 1 di pine ha in comune la parola evergreen
tree con il senso 3 di cone. Di conseguenza questi due sensi sono scelti come i più
appropriati da assegnare alle parole pine e cone, nel caso in cui quest’ultime
compaiano insieme.
L’algoritmo di Lesk, quindi, non fa altro che contare il numero di elementi che le
glosse hanno in comune e assegna un punteggio pari al numero di parole in comune.
L’algoritmo di Lesk utilizza una window of context intorno al termine target, da
sottomettere come input all’algoritmo. In particolare è stata definita una finestra di
2n+1 parole intorno al termine target, che include ovviamente la parola target e gli n
termini subito alla sua destra e gli n subito alla sua sinistra.
Il metodo disambiguate che ho implementato sulla base di questo algoritmo
prende in input una parola e una frase e valuta qual è il termine più pertinente alla
frase. Lo mostra bene questa figura:
67
Figura 26: Come funziona il metodo disambiguate
4.4 La griglia emozionale di Ekman
Basandoci sul lavoro di un gruppo di studiosi del Media Laboratory del MIT (per
esempio (Liu, 2003)) ho adottato una griglia emozionale le cui emozioni, inserite da
tastiera dall'utente, vengono classificate nei sei tipi individuati da Paul Ekman.
Non esiste una teoria scientifica per spiegare l'origine delle emozioni.
L'osservazione scientifica sull'evoluzione emozionale risulta scarsamente sistematica.
La psicologia ha tentato di delineare una definizione operativa, una spiegazione
sperimentale, con una verificabilità empirica rispetto al manifestarsi delle emozioni.
Paul Ekman (Ekman. P.1994), incoraggiato da Tomkins, iniziò dagli anni sessanta
del Novecento, una vasta serie di ricerche, in larga misura insieme con Wallace
Friesen, sul riconoscimento dell'espressione facciale delle emozioni in varie
popolazioni americane (del nord e del sud) e tra i nativi del Borneo e della Guinea al
fine di verificare le tesi di Darwin sull'universalità delle emozioni (The Expression of
the Emotions in Man and Animals – Darwin. 1872), trovando sin dagli inizi notevoli
conferme (Ekman 1973). Vennero utilizzati vari metodi. Quello principale consisteva
nella presentazione di fotografie di espressioni facciali esprimenti emozioni ricavate
da soggetti "spontanei" oppure che si erano prestati volontariamente allo scopo, ivi
compresi adulti, bambini e anche un gruppo di pazienti psichiatrici. Tra le 3.000 foto
esaminate da Ekman e Friesen ne vennero scelte trenta relative a specifiche e isolate
(cioè "pure") espressioni di emozioni basiche di paura, rabbia, disgusto, gioia,
tristezza e sorpresa. Tali fotografie vennero fatte valutare da gruppi di giudici
statunitensi, brasiliani, cileni, argentini e giapponesi cui si chiedeva di etichettarle in
base alle sei emozioni. La percentuale di designazioni corrette fotografia-emozione fu
altissima, a testimonianza, almeno provvisoria, del carattere universale
dell'espressione di queste emozioni, e i risultati confortati da uguali, esatti,
riconoscimenti ottenuti (utilizzando ingegnosi accorgimenti) da popolazioni
illetterate del Borneo e della Guinea (Ekman e Friesen 1971).
L’esperimento è stato condotto da 21 gruppi di studio, ciascuno in uno stato
68
differente. Di questi, solo 11 stati erano di cultura occidentale.
Il risultato è stato che:
• In tutti e 21 gli stati le persone hanno associato univocamente felicità,
tristezza e disgusto.
• In 20 su 21 stati la maggioranza era d’accordo anche sulla sorpresa.
• In 19 su 21 stati la maggioranza era d’accordo sulla paura.
• In 18 su 21 stati la maggioranza era d’accordo sulla rabbia.
• In tutti i casi in cui non c’è stata concordanza, la risposta scelta è però
risultata la medesima a tutti gli altri che non erano d’accordo, formando di
fatto solo due possibili alternative.
Seppure la ricerca non escluda la possibilità che esistano altre emozioni
universalmente riconosciute, partire da una base di 6 sembra comunque un ottimo
riferimento.
Ekman ampliò la sua lista di emozioni base nel 1992 aggiungendo: divertimento,
disprezzo, contentezza, imbarazzo, eccitazione, colpa, orgoglio, sollievo,
soddisfazione, piacere sensoriale e vergogna.
Un altro studio interessante di Ekman (Ekman, 1999b) riguarda la definizione di
quali possano essere le emozioni primarie, ovvero emozioni innate nell’uomo che
non sono scomponibili ulteriormente. Giunge a definire 11 caratteristiche che
qualunque emozione primaria dovrebbe possedere:
1. Segnali universali distintivi: la presenza di una serie di segnali, o anche
solo di impulsi nervosi, che si attivano in modo chiaro in presenza di una
particolar emozione. Una parziale evidenza di questo fenomeno l’abbiamo
69
nelle espressioni emotive involontarie (Ekman e Davidson, 1990).
2. Fisiologia distintiva: ogni emozione dovrebbe essere associata ad una
risposta fisiologica specifica, includendo anche stati di alterazione interni e
configurazioni di attivazioni nervose.
3. Valutazione automatica: ovvero la capacità di distinguere una emozione
anche se non c’è l’attenzione conscia.
4. Eventi precedenti distintivi: se le emozioni si sono evolute nel tempo,
allora dovranno esserci certe configurazioni di stimoli esterni in grado di
scatenare specifiche emozioni.
5. Apparizione distintiva nella crescita: le emozioni dovrebbero apparire in
momenti differenti della crescita del bambino.
6. Presenza in altri primati: sempre avvalorando la natura evolutiva delle
emozioni, dovrebbero rivelarsi anche negli altri primati.
7. Attivazione rapida: l’espressione dell’emozione, o anche la sua sola
apparizione interiore, è così veloce da essere percepita solo dopo che si è
completamente manifestata.
8. Durata breve: la durata di una emozione è di minuti o secondi.
9. Attivazione non controllabile: non dovrebbe essere possibile controllare
consciamente l’apparizione di una emozione.
10.Pensieri e immagini distintive: dovrebbe esserci associazione fra emozioni
e certe tipologie di pensiero e di immagini mentali.
11.Esperienza soggettiva distintiva: ogni individuo è in grado di distinguere
le varie emozioni.
70
Tutti i punti di questa ipotesi non sono esclusivi: per esempio è possibile che le
emozioni primarie si rilevino anche in situazioni che non soddisfino tutti i punti.
Inoltre, alcuni di questi punti sono stati già contestati, ma comunque mantengono il
loro interesse per guidare la ricerca, pur non essendo universalmente accettati.
Dopo aver identificato un sottoinsieme di termini comuni che si riferisce alle
emozioni, si costruisce un modello affettivo del senso comune permettendo l'analisi
delle qualità affettive di un testo dell'utente. Così un modello è un'associazione di
modelli differenti con cui competere e un altro complementare. Tutti i modelli hanno
entry omogeneamente strutturate, ciascuna delle quali ha un valore della forma
seguente: [a happy, b sad, c anger, d fear, e disgust, f surprise]. In ogni tupla, a-f sono
scalari superiori a 0.0, rappresentando la grandezza della valenza di ogni entry
rispetto a una particolare emozione. Come punto di partenza prendiamo le sei
emozioni base.
Il modello che di solito si usa, rappresenta una frase dichiarativa come un frame
subject-verbo-object-object. Per esempio per la frase: “Avere un incidente pauroso”
la parola pauroso porta ad avere una griglia emozionale di questo genere
[0 happy, 0 sad, 0 anger, 1.0 fear, 0 disgust, 0 surprise]. In questo esempio, ci si
riferisce alla parola incidente come un emotion ground perché conferisce una qualità
affettiva all'evento descritto nella frase.
Questo esempio però non prende in considerazione la negazione o frasi composte
da altre frasi. La negazione viene gestita come un modificatore del soggetto, del
verbo e dell'oggetto. Se ci sono verbi composti in una frase o frasi all'interno di una
frase, allora ogni strategia di disambiguazione euristica cercherà di scegliere la parola
più rilevante e scartare tutto il resto.
La forza di questo modello è la precisione, in quanto conserva l'evento a livello di
frase. SVOO è il più specifico dei modelli, e la migliore caratteristica è che conserva
la precisione della conoscenza affettiva. SVOO non è sempre applicabile.
71
In un altro modello, i concetti sono estratti da ogni frase. A ogni concetto (verbi,
nomi e aggettivi) viene attribuito il valore dell'emozione nella frase. Ad esempio,
dalla frase: "Un incidente d'auto può essere spaventoso," viene estratto il concetto
“incidente d'auto” a cui viene associata la griglia emozionale:
[0 happy, 0 sad, 0 anger, 1.0 fear, 0 disgust, 0 surprise].
Le negazioni sono l'unione della parola "non" davanti al verbo. I sintagmi
nominali che contengono modificatori aggettivali sono generalizzati mettendo a nudo
gli aggettivi. Gli unigrammi a livello di concetto di questo modello non sono così
accurati come quelli del SVOO. Tuttavia, questo modello è più usato perché è
indipendente dalla struttura superficiale del linguaggio.
Un altro problema che si può riscontrare è sicuramente quando la frase è una
battuta ironica come la frase: “Bella questa giornata!” in un contesto in cui la
giornata è piovosa. Di conseguenza qualsiasi modello finora sviluppato non è in
grado di creare una griglia emozionale riferendosi alla realtà.
4.5 Un formato XML per l'output dell'annotatore
XML (EXtensible Markup Language) è un linguaggio di marcatura derivato dal
SGML. Un documento XML è scritto in formato testo con tag anch’essi in formato
testo, è quindi leggibile e modificabile con un comune text editor su ogni tipo di
computer. XML, come tutta la famiglia SGML, non è pensato come un linguaggio di
programmazione, anche se, data la sua generalità, nulla impedirebbe di usarlo per
memorizzare programmi.
Molte sono le sue analogie con HTML (il linguaggio di descrizione delle pagine
web), ma anche profonde e significative le differenze. Innanzitutto XML non è un
linguaggio orientato solamente alla visualizzazione, ma un formato assolutamente
generale per descrivere dati. La visualizzazione di un documento XML è solo una
delle numerose possibilità. Poiché XML, come HTML, deriva da SGML, i tag sono
scritti nello stesso modo usando le parentesi angolate <NOMETAG> </NOMETAG>
72
ma la sintassi è più rigida di quella dell’HTML: ogni tag aperto deve essere anche
chiuso, non si possono aprire e chiudere tag in un ordine “sparso”, vi è differenza tra
maiuscole e minuscole. Con questi importanti vincoli si può dimostrare che un file
XML ha una struttura ad albero. Un’utile abbreviazione permette di sostituire un tag
aperto e immediatamente chiuso <BR></BR> con un solo tag con la barra di
chiusura in fondo <BR/>.
In genere un tag XML può essere arricchito aggiungendovi degli attributi che
consistono in coppie nome-valore. La totale generalità della notazione XML permette
di usarla per descrivere praticamente qualsiasi cosa, con il vantaggio sostanziale di
una struttura sintattica univoca.
Il formato XML del file che il programma crea alla fine dell'esecuzione è il
seguente:
73
<root>
<annotated_corpus>
<annotation_pair>
<name synset_id="STRING" lemma="STRING">
word_occurring_in_text </name>
<adjective synset_id=”STRING" lemma="STRING"
hap_val="FLOATVALUE" sad_val="FLOATVALUE"
ang_val="FLOATVALUE" fea_val="FLOATVALUE"
dis_val="FLOATVALUE" sur_val="FLOATVALUE">
adj_occurring_in_text </adjective>
</annotation_pair>
<annotation_pair> … </annotation_pair>
…
</annotated_corpus>
</root>
Figura 27: Formato del file XML creato dal programma
Come tutti i file XML, anche questo file ha una struttura ad albero:
Quindi dando in input un file contenente recensioni viene creato un file XML
come questo:
74
Figura 28: Albero del file XML creato dal programma
Figura 29: File XML creato dal programma dando in input un file con delle recensioni
root
Annotated_corpus
annotation_pair
name adjective
Altri annotation pair
5 Conclusioni
In questo periodo di tirocinio ho lavorato sul problema dell'annotazione semantica
di frasi. Si tratta di un problema articolato,per cui non esistono soluzioni automatiche
pienamente soddisfacenti. Questa è la ragione per cui è utile sviluppare dei corpora
annotati: per studiare e comprendere in maniera sistematica il funzionamento dei
fenomeni linguistici.
Per sviluppare il sistema per l'annotazione è stato necessario studiare il
funzionamento di altri elementi software, come il parser a dipendenze, WordNet,
MultiWordNet, e sviluppare componenti (come il modulo per la Word Sense
Disambiguation) ad hoc. Infine ho avuto modo di approfondire il funzionamento
dell'XML e degli strumenti adatti alla creazione di dati espressi in questo formato.
La tesi si articola in 4 capitoli.
Nel primo capitolo è introdotto il problema affrontato nel tirocinio e ne sono
presentate le motivazioni.
Nel secondo capitolo ho tentato di illustrare alcuni degli elementi fondamentali e
degli approcci più rilevanti nel campo della Sentiment Analysis, con particolare
enfasi sulla determinazione dell'orientamento e sulla soggettività dei termini.
Nel terzo capitolo ho illustrato delle risorse annotate: in particolare ho discusso
SentiWordNet e WordNet-Affect, estensioni di WordNet, il loro sviluppo, la
classificazione dei sentimenti, i loro pregi e i difetti. Non poteva mancare, in questo
capitolo, un excursus su WordNet per poter capire come sono strutturate le due
estensioni descritte nel capitolo.
Nel capitolo 4, invece, viene spiegata l'implementazione del sistema: vengono
illustrati i metodi principali usati per la riuscita dell'obiettivo preposto sin dall'inizio
del mio tirocinio, ovvero quello di creare un corpus contenente tutti i possibili nomi e
75
aggettivi con i valori che l'utente assegna a ogni emozione della griglia emozionale di
Ekman, utilizzata per evitare i difetti di SentiWordNet e WordNet-Affect. Ho dovuto
utilizzare il parser TUP per la ricerca dei nomi e degli aggettivi all'interno di ogni
frase passatagli in input. L'utilizzo di MultiWordNet è servito per i synset di ogni
lemma e tramite l'algoritmo disambiguate (algoritmo inventato da Lesk) trovare i
synset dei lemmi più adeguati alla frase data in input.
In questa tesi ho solo annotato le triple <nome, aggettivo, emozioni> quindi,
questo lavoro, è un punto di inizio per poter annotare anche verbi e avverbi che, come
detto precedentemente, sono anche fondamentali in una frase. Infatti se prendiamo
come esempio la frase “Mi piace la casa in collina”, il verbo piacere esprime
un'emozione positiva e di conseguenza potrebbe già essere annotata.
76
Bibliografia
Piero Amerio, 2007. Fondamenti di Psicologia Sociale, Il Mulino 2007, pages 163-164.
Alina Andreevskaia, Sabine Bergler. 2006. Mining WordNet for fuzzy sentiment: Sentiment tag extraction from WordNet glosses. In Proceedings of EACL-06, 11th Conference of the European Chapter of the Association for Computational Linguistics, Trento, IT. Forthcoming.
J. Bates, 1994. The Role of Emotion in Believable Agents. Communications of the ACM. 37(7), pp. 122-125.
M. G. Dyer, 1987. Emotions and Their Computations: Three Computer Models. Cognition and Emotion, Vol. 1, No. 3, 323- 347.
Paul Ekman , W. V. Friesen, 1971. Constants across cultures in the face and emotion. Journal of Personality and Social Psychology 17, pp. 124-129.
Paul Ekman, R. J. Davidson, W. V. Friesen, 1990. The Duchenne smile: emotional expression and brain physiology II. Journal of Personality and Social Psychology 58, pp. 342-353.
Paul Ekman, 1993. Facial expression of emotion. American Psychologist, 48, 384-392.
Paul Ekman, 1994. The nature of emotions. Fundamental questions . New York & Oxford University.
Andrea Esuli and Fabrizio Sebastiani. 2005. Determining the semantic orientation of terms through gloss analysis. In Proceedings of CIKM-05, 14th ACM International Conference on Information and Knowledge Management, pages 617–624, Bremen, DE.
Andrea Esuli and Fabrizio Sebastiani. 2006. Determining term subjectivity and term orientation for opinion mining. In Proceedings of EACL-06, 11th Conference of the European Chapter of the Association for Computational Linguistics, Trento, IT. Forthcoming.
Andrea Esuli, Fabrizio Sebastiani. 2006. SentiWordNet: A Publicly Available Lexical Resource for Opinion Mining. Proceedings of LREC-06, 5th Conference on Language Resources and Evaluation, Genova, IT, pages 417-422.
Andrea Esuli, Stefano Baccianella, Fabrizio Sebastiani. 2010. SentiWordNet 3.0: An
77
Enhanced Lexical Resource for Sentiment Analysis and Opinion Mining. Proceedings of the Seventh conference on International Language Resources and Evaluation (LREC’10), European Language Resources Association (ELRA), Valletta, Malta, pages 2200-2204.
Vasileios Hatzivassiloglou, Kathleen R. McKeown, 1997. Predicting the semantic orientation of adjectives. In Proceedings of ACL-97, 35th Annual Meeting of the Association for Computational Linguistics, pages 174–181, Madrid, ES.
Vasileios Hatzivassiloglou, Janyce M.Wiebe, 2000. Effects of adjective orientation and gradability on sentence subjectivity. In Proceedings of COLING-00, 18th International Conference on Computational Linguistics, pages 174–181.
Jaap Kamps, Maarten Marx, Robert J. Mokken, Maarten De Rijke. 2004. Using WordNet to measure semantic orientation of adjectives. In Proceedings of LREC-04, 4th International Conference on Language Resources and Evaluation, volume IV, pages 1115–1118, Lisbon, PT.
Soo-Min Kim and Eduard Hovy. 2004. Determining the sentiment of opinions. In Proceedings of COLING-04, 20th International Conference on Computational Linguistics, pages 1367–1373, Geneva, CH.
Leonardo Lesmo, 2009. The Turin University Parser at Evalita, Dipartimento di Informatica, Università di Torino.
Michael E.Lesk. 1986. Automatic sense disambiguation using machine readable dictionaries: How to tell a pine cone from ice cream cone. In Proceeding of SIGDOC.
Bing Liu. 2008. Opinion Mining. Department of Computer Science University of Illinois at Chicago 851 S. Morgan Street Chicago.
Hugo Liu, Henry Lieberman, Ted Selker, 2002. Automatic Affective Feedback in an Email Browser. MIT Media Lab Software. Agents Group Technical Report. November.
Hugo Liu, Henry Lieberman, Ted Selker, 2003. A Model of Textual Affect Sensing using Real-World Knowledge.
Bruno Ohana. 2009. Opinion Mining with the SentiWordNet lexical resource. Dublin Institute of Technology.
Andrew Ortony, Gerard L. Clore, Allan Collins, 1988. The cognitive structure of emotions. New York: Cambridge University Press.
Bo Pang and Lillian Lee, 2004. A sentimental education: Sentiment analysis using subjectivity summarization based on minimum cuts. In Proceedings of ACL-04, 42nd Meeting of the Association for Computational Linguistics, pages 271–278, Barcelona, ES.
78
Bo Pang and Lillian Lee, 2005. Seeing stars: Exploiting class relationships for sentiment categorization with respect to rating scales. In Proceedings of ACL-05, 43rd Meeting of the Association for Computational Linguistics, pages 115–124, Ann Arbor, US.
Ellen Riloff, Janyce Wiebe, Theresa Wilson, 2003. Learning subjective nouns using extraction pattern bootstrapping. In Proceedings of CONLL-03, 7th Conference on Natural Language Learning, pages 25–32, Edmonton, CA.
P. J. Stone, D. C. Dunphy, M. S. Smith, D. M. Ogilvie, 1966. The General Inquirer: A Computer Approach to Content Analysis. MIT Press, Cambridge, US.
Hiroya Takamura, Takashi Inui, Manabu Okumura, 2005. Extracting emotional polarity of words using spin model. In Proceedings of ACL-05, 43rd Annual Meeting of the Association for Computational Linguistics, pages 133–140, Ann Arbor, US.
Peter Turney, 2002. Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews. In Proceedings of ACL-02, 40th Annual Meeting of the Association for Computational Linguistics, pages 417–424, Philadelphia, US.
Peter D. Turney and Michael L. Littman, 2003. Measuring praise and criticism: Inference of semantic orientation from association. ACM Transactions on Information Systems, 21(4):315–346.
Alessandro Valitutti, Carlo Strapparava, Oliviero Stock, 2004. Developing affective lexical resources. PsychNology Journal, 2(1):61–83.
Stefano Vegnaduzzo, 2004. Acquisition of subjective adjectives with limited resources. In Proceedings of the AAAI Spring Symposium on Exploring Attitude and Affect in Text: Theories and Applications, Stanford, US.
Hong Yu, Vasileios Hatzivassiloglou, 2003. Towards answering opinion questions: Separating facts from opinions and identifying the polarity of opinion sentences. In Proceedings of EMNLP-03, 8th Conference on Empirical Methods in Natural Language Processing, pages 129–136, Sapporo, JP.
Casey Whitelaw, Navendu Garg, Shlomo Argamon, 2005. Using appraisal groups for sentiment analysis. In Proceedings of CIKM-05, 14th ACM International Conference on Information and Knowledge Management, pages 625–631, Bremen, DE.
79