Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di...

24
Dipartimento di Informatica Università di Roma “La Sapienza” Sviluppo di un Sviluppo di un validatore visuale validatore visuale di annotazioni di annotazioni semantiche automatiche semantiche automatiche Roberto Navigli Roberto Navigli

Transcript of Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di...

Page 1: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimentodi Informatica

Università di Roma “La Sapienza”

Sviluppo di un Sviluppo di un validatore visualevalidatore visuale

di annotazioni di annotazioni semantiche semantiche automaticheautomatiche

Roberto NavigliRoberto Navigli

Page 2: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Annotazioni semanticheAnnotazioni semantiche

It was a wrong number that started it, the telephone ringing three times in the dead of night, and the voice on the other end asking

for someone he was not.City of Glass – Paul Auster

It was a wrong number that started it, the telephone ringing three times in the dead of night, and the voice on the other end asking

for someone he was not.

annotatore umanoalgoritmo di WSD

Page 3: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Word Sense DisambiguationWord Sense Disambiguation• Risoluzione dell’ambiguità di una parola

w contenuta in un contesto T rispetto a un dizionario di riferimento It was a wrong number that started it, the

telephone ringing three times… C = { wrong, number, start, telephone, ring,

time } w = number

• = selezione del senso più appropriato per w rispetto al contesto T, tra i sensi disponibili nel dizionario di riferimento

Page 4: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Analizzare i sensi del dizionario di Analizzare i sensi del dizionario di riferimentoriferimento

Page 5: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Algoritmi di WSDAlgoritmi di WSD• Basati su apprendimento automatico

e “addestrati” su ampi corpora di documenti annotati a mano Richiedono un forte addestramento sul

dominio di interesse• Basati sulla conoscenza (knowledge-

based) Richiedono un’ampia quantità di risorse

lessicali (ad es. WordNet, CyC, ecc.)

Page 6: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Structural Semantic Structural Semantic Interconnections (SSI)Interconnections (SSI)

• Un algoritmo knowledge-based ideato e sviluppato nel Dipartimento di Informatica de “La Sapienza”

• Basato sul concetto di “interconnessione semantica”: due concetti sono semanticamente interconnessi se esistono uno o più cammini “significativi” che li collegano

drink#1

coffee#4

milk#1

bar#2

V

N

N

N

N

bottle#1

Nbeverage#1

Ntable#2

related-to

rela

ted

-to

kind-o

f

Ntabletop#1

has-part N counter#1

kind-of

kin

d-o

f

Page 7: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

SSI (2)SSI (2)• Dato un contesto di

parole

T = [w1, w2, …, wn]

SSI sceglie per ciascuna parola wi il senso nel dizionario che massimizza le interconnessioni semantiche con gli altri sensi scelti

He drank a coffee with milk at the barT=[drink, coffee, milk, bar]

drink#1

coffee#1

milk#1

bar#2

V

N

N

N

N

bottle#1

Nbeverage#1

Ntable#2

related-to

rela

ted

-to

kind-o

f

rela

ted-to

Ntabletop#1

has-part N counter#1

kind-of

kin

d-o

f

related-torelated-to

Page 8: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Il progettoIl progetto• Uno strumento visuale di ausilio all’utente

per validare i risultati della disambiguazione automatica: Visualizza i grafi di interconnessione tra i sensi

scelti da SSI Permette l’analisi dei cammini che collegano

tali sensi cliccando sui singoli nodi Consente la validazione di ciascun senso e, in

caso di responso negativo, permette all’utente di selezionare un senso differente

Page 9: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

I grafi in inputI grafi in input• Memorizzati sotto forma di file xml. Esempio:

<?xml version=“1.0” ?><wordnet version=“2.0”>

<context><term name=“drink” pos=“v”>01134068</term><term name=“coffee” pos=“n”>07452170</term><term name=“milk” pos=“n”>07370228</term><term name=“bar” pos=“n”>02692036</term><path>01134068@02692036</path>…<path>01134068r>02774862r07370228</path>

</context></wordnet>

Offset del sensodi WordNet scelto

Cammini tra S e S’, rispettivamente sensi didue parole, w e w’, tali che w ≠ w’

Page 10: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Formato dei camminiFormato dei cammini• I cammini collegano due sensi arbitrari di

due parole w e w’ specificate con il tag <term>

• Nota bene: sono presenti tutti i cammini, non solo quelli tra i sensi scelti da SSI

• Ad esempio:<path>

07452170r04209815#04212274~03003536~02692036</path>

codifica (i nodi “interni” hanno un colore differente):

coffee#1 bar#2

N NNtable#2

N

tabletop#1

has-part N

counter#1

kind-of kind-ofrelated-to

simboli del tipo di arco

Page 11: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Legenda delle relazioniLegenda delle relazioni• All’inizio del file del grafo troviamo la

legenda dei tipi di relazioni:<wordnet version=“2.0”>

<legenda><relation symbol=“@”>kind-of</relation><relation symbol=“r”>related-to</relation><relation symbol=“#”>has-part</relation>…

</legenda><context>

…</context>

</wordnet>

Page 12: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Strumenti di baseStrumenti di base• Xerces XML

Libreria per il parsing e la gestione di file XML Disponibile all’indirizzo:

• http://xml.apache.org/xerces2-j/download.cgi Documentazione di base (DOM):

• http://xml.apache.org/xerces2-j/dom.html• Jgraph

Libreria per la visualizzazione, la gestione e la memorizzazione di grafi

Disponibile all’indirizzo:• http://www.jgraph.com

Documentazione di base: http://www.jgraph.com/docs.html• JWNL

Libreria Java per l’accesso a WordNet Disponibile all’indirizzo:

• http:// bla bla bla bla bla Documentazione di base: bla bla bla bla

Page 13: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Partire da un esempioPartire da un esempio• Un buon esempio su cui costruire il

tool è GraphEd.java che si trova nella cartella: examples\org\jgraph\example

Page 14: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Interfaccia utenteInterfaccia utente• Eliminate:

L’opzione per l’inserimento di un nuovo nodo L’opzione per l’abilitazione/disabilitazione della modalità di disegno

degli archi• Fissate la modalità di spostamento dei nodi (eliminando la

possibilità di aggiungere archi) senza possibilità di ingrandire i nodi del grafo

• Eliminate le opzioni di undo e redo, taglia/copia/incolla• Mantenete le opzioni di ingrandimento/riduzione, ma aggiungete

una barra di scorrimento nel caso in cui il grafo non entri per intero nella finestra e gestite lo scorrimento

Page 15: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Le prime modificheLe prime modifiche• Forma e colore dei nodi e degli archi

1) Estendendo BasicGraphUI:• class MyGraphUI extends BasicGraphUI {

2) Scrivendo il metodo paintCell e lavorando sui tipi di cella DefaultGraphCell, DefaultEdge, DefaultPort:

Una porta è un’area interna al nodo a partire da cui è possibile disegnare un arco che collega il nodo a un altro nodo.

DefaultGraphCell

DefaultEdge DefaultPort

Page 16: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Le prime modifiche (segue)Le prime modifiche (segue)• public void paintCell(java.awt.Graphics g, CellView view,

java.awt.geom.Rectangle2D bounds, boolean preview){

if (!(view.getCell() instanceof DefaultEdge)){

g.setColor(Color.GREEN);g.fillOval((int)bounds.getX(),

(int)bounds.getY(),(int)bounds.getWidth(),

(int)bounds.getHeight());g.setColor(Color.BLACK);

g.drawOval((int)bounds.getX(), (int)bounds.getY(),(int)bounds.getWidth(),

(int)bounds.getHeight());}else super.paintCell(g, view, bounds, preview);

}3) Impostando dentro il costruttore della classe MyGraph:

• setUI(new MyGraphUI());

Page 17: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Salvataggio del grafo Salvataggio del grafo visualizzato in formato SVGvisualizzato in formato SVG

• Formato SVG (Scalable Vector Graphics) W3C: www.w3.org/TR/SVG/ Adobe SVG viewer: http://www.adobe.com/svg/

• Potete basarvi su JGraphPad, che carica e salva SVG www.jgraph.com/jgraphpad.html

<svg> <circle x=“10” y=“1”></circle> <circle x=“25” y=“24”></circle>

<circle x=“30” y=“33”></circle> </svg>

Page 18: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Contesti con layout dei nodi Contesti con layout dei nodi modificatomodificato

• E’ possibile salvare la disposizione dei nodi del grafo all’interno del file xml dei contesti. Tale disposizione può quindi essere ricaricata dal medesimo file in seguito.

• E’ sufficiente memorizzare nel file xml le informazioni di posizione di ciascun termine:<term name=“coffee” pos=“n” x=“10” y=“20”>

07452170</term>

• Se al caricamento di un contesto nessuna posizione è specificata per i vari termini (di norma o tutti hanno una posizione o nessuno la possiede) viene applicato il layout automatico (vedi diapositiva seguente):<term name=“coffee” pos=“n”>07452170</term>

Page 19: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Disposizione automatica dei Disposizione automatica dei nodinodi

• Al caricamento di un grafo, se non è presente alcuna informazione di layout nel file xml, deve essere applicata una disposizione automatica dei nodi sul piano in modo da minimizzare il numero di archi incrociati (possibilmente = 0) http://java.sun.com/applets/jdk/1.1/demo/

GraphLayout/ http://directory.google.com/Top/Science/

Math/Combinatorics/Software/Graph_Drawing/

Page 20: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

drink#1

coffee#1

milk#1

bar#2

V

N

N

N

N

bottle#1

Nbeverage#1

Ntable#2

related-to

rela

ted

-to

kind-o

f

rela

ted-to

Ntabletop#1

has-part N counter#1

kind-of

kin

d-o

f

related-torelated-to

Evidenziazione di camminiEvidenziazione di cammini• Cliccando su un nodo,

il nodo deve essere evidenziato e i pattern (specificati in input) che collegano quel nodo ad altri nodi del grafo devono essere anch’essi messi in evidenza (ad es., più spessi o di un altro colore)

Page 21: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

drink#1

coffee#1

milk#1

bar#2

V

N

N

N

N

bottle#1

Nbeverage#1

Ntable#2

related-to

rela

ted

-to

kind-o

f

rela

ted-to

Ntabletop#1

has-part N counter#1

kind-of

kin

d-o

f

related-torelated-to

Evidenziazione di camminiEvidenziazione di cammini• Cliccando su un nodo,

il nodo deve essere evidenziato e i pattern (specificati in input) che collegano quel nodo ad altri nodi del grafo devono essere anch’essi messi in evidenza (ad es., più spessi o di un altro colore)

Page 22: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

ValidazioneValidazione• Possibilità di modificare il senso di un

concetto (tasto destro sul nodo elenco dei sensi possibili in WordNet per la parola selezionata) il grafo viene modificato sulla base della nuova selezione

• Quando l’utente modifica il senso di una parola, appare una x accanto al concetto:

coffee#4coffee#1 – “a beverage consisting of an infusion of ground coffee beans”coffee#2 – “any of several small trees and shrubs native to the tropical...”

coffee#3 – “a seed of the coffee tree; ground to make coffee”coffee#4 – “a medium to dark brown color”

coffee#1x

Page 23: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Salvataggio della Salvataggio della validazionevalidazione

• Il file salvato è ancora un file di contesti e può essere aperto successivamente per un’ulteriore validazione

• Esempio:<?xml version=“1.0” ?><wordnet version=“2.0”>

<context><term name=“drink” pos=“v”>01134068</term><term name=“coffee” pos=“n” correct=“04714068” >

07452170</term><term name=“milk” pos=“n”>07370228</term><term name=“bar” pos=“n”>02692036</term>

</context></wordnet>

Indica la correzione apportatadal validatore con il tastodestro del mouse

Page 24: Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di annotazioni semantiche automatiche Roberto Navigli.

Dipartimento di InformaticaUniversità di Roma “La Sapienza”

RobertoNavigli

Struttura del progettoStruttura del progetto

Interfaccia grafica (menu, toolbar, menu contestuale)

Caricamento, memorizzazione e salvataggio dei contesti validati

Salvataggio del grafo in SVG

Disposizione automatica dei nodi

Evidenziazione dei cammini