Your SlideShare is downloading. ×
Università degli studi di Torino
FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI
Corso di laurea in Informatica

Tecnol...
Ai miei genitori, a mio fratello Federico
e ai miei nonni, Salvatore e Maria,
per avermi aiutato e incoraggiato
nelle diff...
Indice
1 Introduzione...................................................................................................5
...
4.4 La griglia emozionale di Ekman..........................................................68
4.5 Un formato XML per l'ou...
Indice delle illustrazioni
Figura 1: Esempio di una sintesi di opinioni basata sulle caratteristiche....................11...
Figura 28: Albero del file XML creato dal programma..............................................74
Figura 29: File XML cr...
1 Introduzione
In questa tesi sarà illustrato il lavoro di progettazione e realizzazione di un sistema
software per l'anno...
annotazioni semantiche dei meta-dati: in particolare al momento annota le coppie
<nome, aggettivo> e da ogni coppia costru...
1.3 Argomenti trattati
La tesi si articola in:
Capitolo 1: Viene illustrato il Sentiment Analysis con i relativi studi eff...
2 Sentiment Analysis
Le informazioni testuali possono essere classificate in due categorie: i fatti e le
opinioni. I fatti...
2.1 Fondamenti scientifici
2.1.1

Modello dell'Opinion Mining

In generale, le opinioni possono essere espresse su ogni co...
È possibile che una sequenza di frasi esprima un opinione su un oggetto o su una
sua caratteristica. È anche possibile che...
3. Raggruppamento dei sinonimi delle caratteristiche (come titolari di opinioni
diverse possono usare parole diverse o una...
Figura 2: Grafico della sintesi di opinioni basata sulle caratteristiche

Figura 3: Grafico del confronto delle recensioni...
apprendimento per la classificazione. Esistono algoritmi specifici per la
classificazione del sentimento che sfruttano opi...
Sulla base del modello presentato precedentemente, esistono tre tipi di
opinion mining:
1. Identificare le caratteristiche...
o il modificatore "more" o "less" davanti all'aggettivo o all'avverbio. La struttura di
un superlativo normalmente è compo...
1)

2)

3)

4)

Per indicare una maggiore intensità di un
aggettivo lo si fa precedere dall'avverbio più
(comparativo di m...
Certi avverbi hanno forme particolari di comparativo e superlativo (come gli
aggettivi corrispondenti). Essi sono:

bene
m...
Per il superlativo invece:
con l'aggiunta del suffisso
-issimo alla forma plurale del
maschile di un aggettivo
a) caldi (c...
2.2 Determinazione dell'orientamento dei termini
Determinare l’orientamento (o polarità) consiste nel determinare se un te...
positiva sarà classificato come positivo, altrimenti sarà classificato come negativo.
Sempre nello stesso anno, Kim e Hovy...
2.4 Progetti per il Sentiment Analysis
Il Sentiment Analysis è un settore di ricerca in rapido sviluppo e di grande
import...
La base della teoria sta nella matrice lessicale (figura ): nelle righe vengono
elencati i significati delle parole e nell...
gerarchie di specializzazione (iperonimi/iponimi); i verbi sono strutturati in una
gerarchia mediante la relazione di trop...
altri.
Per essere più chiari possiamo ricorrere ad un esempio:
La parola pianta ha diversi significati:
· nome generico ch...
sostituzione di un concetto con l’altro nel contesto C non ne altera il valore di verità.
Un esempio è la parola pianta si...
concetto di ereditarietà. Un figlio eredita dal genitore tutte le caratteristiche
aggiungendone altre che lo specificano e...
come radice si prendere in considerazione un termine astratto come {entità} e si
inserisce {oggetto, cosa} e {idea} come s...
Figura 9: I synset primitivi

28
Figura 10: Relazione tra concetti primitivi

Un concetto è costituito da attributi, parti e funzioni e per rappresentarli ...
3.1.5 Gli aggettivi di WordNet
La categoria semantica degli aggettivi viene divisa in tre grandi gruppi:
· Aggettivi descr...
Le relazioni tra i verbi si basano su implicazione e opposizione. Per
l’implicazione, il tipo a cui si fa riferimento è la...
Le figure sotto riportate sono esempi di rappresentazione:

Figura 13: Esempio di rappresentazione del termine “interestin...
3.2.1 Una breve storia di SentiWordNet
Esistono quattro versioni differenti di SentiWordNet:
1. SENTI WORD NET 1.0, presen...
3.2.2

Lo sviluppo di SentiWordNet 3.0

Il processo di annotazione automatica, secondo il quale SentiWordNet 3.0 è
generat...
essa. In SentiWordNet 3.0 disambiguiamo manualmente le glosse rese disponibili dal
Princeton WordNet Gloss Corpus, secondo...
Tuttavia, va osservato che, in WordNet, il definiendum è un synset, mentre il
definiens è un termine non disambiguato, poi...
Come esempio, nella figura la tabella riporta i primi 10 synset top-ranked positivi e i
primi 10 negativi in SentiWordNet ...
Figura 16: Struttura del data base di SentiWordNet

Figura 17: Esempio di dati in SentiWordNet

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

notevoli

differenze

nel

livello...
3.3 Descrizione di WordNet-Affect
WordNet-Affect è una risorsa linguistica per una rappresentazione lessicale della
conosc...
approccio è costituito da tre fasi principali. In primo luogo, vengono raccolti i termini
emotivi dai dizionari o da testi...
3.3.2
Il

Lo sviluppo di WordNet-Affect e del suo
nucleo

lavoro

sul

lessico

affettivo

si

è

concentrato

sulla

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

Per avere un insieme iniziale di parole affettive, è stato realizz...
Figura 20: Categorie e termini

Dal mappare i sensi dei termini in WordNet-Affect ai loro rispettivi synset, è stato
ident...
il nucleo affettivo di WordNet-affettive potrebbe essere esteso. Per ogni relazione, si
è esaminato se si conservano i sen...
4 Sviluppo del software
Il software che ho implementato nel periodo di tirocinio annota in modo
semantico ed emozionale il...
ArrayList. Se il primo valore della griglia emozionale è -1 la coppia <nome,
aggettivo> non viene salvata nell'ArrayList; ...
restituendo tutti i possibili synset. Nel caso il lemma non fosse presente nel data base,
viene stampato un messaggio “Il ...
4.1 Utilizzo del parser TUP

Figura 21: Architettura del sistema TUP

L'analizzatore sintattico (parser) utilizzato dal si...
preliminari, si eseguono in ordine le operazioni di chunking (raggruppamento),
analisi della coordinazione e della sotto c...
La categoria sintattica della testa del chunk è costituita da uno degli elementi
appartenenti alla seguente lista: Special...
4.1.4

Dipendenze verbali

La decisione sulle strutture verbali si svolge in due fasi:
1. Una volta che sono stati definit...
Il post-processing è la fase che si occupa di riempire i link relativi alla
punteggiatura e ai verbi. Consiste nell'indivi...
Macchina has_hypernym {}
has_hyponym calcolatore_analogico {}, {} calcolatore_digitale, ecc
has_part {microchip, chip}, ec...
sarà disponibile un’interfaccia html-based che utilizzerà Apache/php/MySQL.

4.2.1

Descrizione di MultiWordNet

MultiWord...
univoco nel data base e di conseguenza anche nell'ontologia. Il multisynset individua
una relazione di sinonimia in senso ...
semantiche incompatibili con quella lingua. Le informazioni contenute in questi
ultimi add-on sono di due tipi:
•

Relazio...
integrato WordNet, separando la parte semantica, che ha riempito il Common-db, da
quella lessicale, inclusa nell'English-d...
Figura 24: Tipi di relazioni in MultiWordNet

Il database descritto è stato implementato con tabelle MySQL e viene accedut...
Attualmente il programma si connette in locale a MySQL in cui è caricato il data
base di MultiWordNet. Le tabelle che sono...
•

status: "new" se la relazione coinvolge nuovi synset, ad esempio i synset che
non sono in Princeton WordNet and sono st...
•

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

...
INSERT INTO italian_synset VALUES ('a#02078908',' epocale ',' che_fa_epoca ','che
caratterizza un'epoca; "una svolta epoca...
La tabella "semfield" contiene uno o più etichette di dominio per ogni synset in
MultiWordNet. Le etichette di dominio son...
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Tesi peiretti
Upcoming SlideShare
Loading in...5
×

Tesi peiretti

617

Published on

Viene illustrato il lavoro di progettazione e realizzazione di un sistemasoftware per l'annotazione e l'analisi del contenuto emozionale dei testi.

Published in: Education, Travel
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
617
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Tesi peiretti"

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

×