1 / 24

Sviluppo di un validatore visuale di annotazioni semantiche automatiche

Sviluppo di un validatore visuale di annotazioni semantiche automatiche. Roberto Navigli. 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.

dolph
Download Presentation

Sviluppo di un validatore visuale di annotazioni semantiche automatiche

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sviluppo di un validatore visualedi annotazioni semantiche automatiche Roberto Navigli

  2. 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. 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

  3. 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

  4. Analizzare i sensi del dizionario di riferimento

  5. 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 (knowledge-based) • Richiedono un’ampia quantità di risorse lessicali (ad es. WordNet, CyC, ecc.)

  6. Structural Semantic 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

  7. SSI (2) He drank a coffee with milk at the bar T=[drink, coffee, milk, bar] • 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

  8. 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

  9. I 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 senso di WordNet scelto Cammini tra S e S’, rispettivamente sensi di due parole, w e w’, tali che w ≠ w’

  10. 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 • Ad esempio: <path> 07452170r04209815#04212274~03003536~02692036 </path> codifica (i nodi “interni” hanno un colore differente): simboli del tipo di arco

  11. 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>

  12. 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

  13. Partire da un esempio • Un buon esempio su cui costruire il tool è GraphEd.java che si trova nella cartella: examples\org\jgraph\example

  14. 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

  15. Le prime modifiche • Forma e colore dei nodi e degli archi • Estendendo BasicGraphUI: • class MyGraphUI extends BasicGraphUI { • 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

  16. 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); } • Impostando dentro il costruttore della classe MyGraph: • setUI(new MyGraphUI());

  17. 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/ • 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>

  18. 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>

  19. 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/GraphLayout/ • http://directory.google.com/Top/Science/Math/Combinatorics/Software/Graph_Drawing/

  20. Evidenziazione 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)

  21. Evidenziazione 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)

  22. 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” coffee#1 x 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#4

  23. Salvataggio della validazione • 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 apportata dal validatore con il tasto destro del mouse

  24. Struttura del progetto Caricamento, memorizzazione e salvataggio dei contesti validati Interfaccia grafica (menu, toolbar, menu contestuale) Salvataggio del grafo in SVG Disposizione automatica dei nodi Evidenziazione dei cammini

More Related