Sviluppo di un
validatore visuale
di annotazioni
semantiche
automatiche
Roberto Navigli
Università di Roma Dipartimento
“La Sapienza”
di Informatica
Annotazioni 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
annotatore umano
algoritmo di WSD
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.
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Word 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
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Analizzare i sensi del dizionario di
riferimento
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Algoritmi 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 (knowledgebased)
 Richiedono un’ampia quantità di risorse
lessicali (ad es. WordNet, CyC, ecc.)
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Structural Semantic
Interconnections (SSI)
Roberto
Navigli
bottle#1
V
rel
ate
ki
d-t
nd
o
-o
f
-to
d
e
t
rela
drink#1
N coffee#4
N
N
beverage#1
bar#2
N
N
milk#1
tabletop#1
rt
has-pa
N
N
table#2
kind-of
Dipartimento di Informatica
Università di Roma “La Sapienza”
f
d-o
kin
• 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
N counter#1
SSI (2)
• Dato un contesto di He drank a coffee with milk at the bar
T=[drink, coffee, milk, bar]
parole
Roberto
Navigli
drink#1
N
milk#1
tabletop#1
N
beverage#1
-to
d
ate
l
e
r
rt
has-pa
N
bar#2
N
N
table#2
kind-of
Dipartimento di Informatica
Università di Roma “La Sapienza”
f
d-o
kin
SSI sceglie per
ciascuna parola wi il
senso nel dizionario
che massimizza le
interconnessioni
semantiche con gli
altri sensi scelti
V
N coffee#1
related-to
T = [w1, w2, …, wn]
rel
ate
ki
d-t
nd
o
-o
f
d-to
relate
bottle#1
-to
N
d
e
t
rela
N counter#1
Il 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
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
I grafi in input
• Memorizzati sotto forma di file xml. Esempio:
<?xml version=“1.0” ?>
<wordnet version=“2.0”>
Offset del senso
di WordNet scelto
<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>
Cammini tra S e S’, rispettivamente sensi di
</wordnet>
due parole, w e w’, tali che w ≠ w’
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Formato 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
simboli del tipo di arco
• Ad esempio:
<path>
07452170r04209815#04212274~03003536~02692036
</path>
codifica (i nodi “interni” hanno un colore differente):
N
coffee#1
related-to
kind-of
has-part
kind-of
N
N
N
table#2
counter#1
tabletop#1
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
N
bar#2
Legenda 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>
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Strumenti 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
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Partire da un esempio
• Un buon esempio su cui costruire il
tool è GraphEd.java che si trova nella
cartella:
examples\org\jgraph\example
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Interfaccia 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
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Le 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:
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.
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
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());
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Salvataggio del grafo
visualizzato in formato SVG
• Formato SVG (Scalable Vector Graphics)
 W3C: www.w3.org/TR/SVG/
 Adobe SVG viewer: http://www.adobe.com/svg/
<svg>
<circle x=“10” y=“1”></circle>
<circle x=“25” y=“24”></circle>
<circle x=“30” y=“33”></circle>
</svg>
• Potete basarvi su JGraphPad, che carica e salva
SVG
 www.jgraph.com/jgraphpad.html
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Contesti con layout dei nodi
modificato
• 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>
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Disposizione automatica dei
nodi
• 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/Gra
phLayout/
 http://directory.google.com/Top/Science/Math/
Combinatorics/Software/Graph_Drawing/
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Evidenziazione di cammini
drink#1
N
milk#1
tabletop#1
N
beverage#1
-to
d
ate
l
e
r
r
has-pa
N
N coffee#1
t
related-to
V
rel
ate
ki
d-t
nd
o
-o
f
d-to
relate
bottle#1
-to
N
d
e
t
rela
N
N
table#2
kind-of
Roberto
Navigli
bar#2
Dipartimento di Informatica
Università di Roma “La Sapienza”
f
d-o
kin
• 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)
N counter#1
Evidenziazione di cammini
drink#1
N
milk#1
tabletop#1
N
beverage#1
-to
d
ate
l
e
r
rt
has-pa
N
N coffee#1
related-to
V
rel
ate
ki
d-t
nd
o
-o
f
d-to
relate
bottle#1
o
N
ed-t
t
a
l
re
N
N
table#2
kind-of
Roberto
Navigli
bar#2
Dipartimento di Informatica
Università di Roma “La Sapienza”
f
d-o
kin
• 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)
N counter#1
Validazione
• 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#1
coffee#4
x
coffee#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”
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Salvataggio della
validazione
• Il file salvato è ancora un file di contesti e può
essere aperto successivamente per un’ulteriore
validazione
Indica la correzione apportata
• Esempio:
dal validatore con il tasto
<?xml version=“1.0” ?>
<wordnet version=“2.0”>
destro del mouse
<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>
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Struttura del progetto
Interfaccia grafica
(menu, toolbar,
menu contestuale)
Caricamento,
memorizzazione e
salvataggio dei
contesti validati
Disposizione
automatica dei
nodi
Salvataggio del
grafo in SVG
Evidenziazione
dei cammini
Roberto
Navigli
Dipartimento di Informatica
Università di Roma “La Sapienza”
Scarica

Sviluppo di un validatore visuale di annotazioni semantiche