Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di...
-
Upload
bertrando-d-alessio -
Category
Documents
-
view
220 -
download
2
Transcript of Dipartimento di Informatica Università di Roma La Sapienza Sviluppo di un validatore visuale di...
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
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
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
Dipartimento di InformaticaUniversità di Roma “La Sapienza”
RobertoNavigli
Analizzare i sensi del dizionario di Analizzare i sensi del dizionario di riferimentoriferimento
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.)
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
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
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
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’
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
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>
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
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
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
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
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());
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>
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>
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/
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)
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)
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
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
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