UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Sandra Mantovani Relatore: Prof. Riccardo Martoglia Anno Accademico 2007/2008
filmfilm Ambito di ricerca dagli anni 50 Ambito di ricerca dagli anni 50 Assegna il significato corretto ad un termine ambiguo di un Assegna il significato corretto ad un termine ambiguo di un testo, a seconda del suo contesto testo, a seconda del suo contesto proiezioneCinemaproiezioneCinema datadata incassoincassosalasala 3 significati 15 significati 6 significati 3 significati Elimina le ambiguità dei termini contenuti in schemi utilizzando algoritmi ispirati a quelli di WSD Il processo può avvenire sia in modo manuale che automatico
Word Sense Disambiguation Schema Disambiguation Adattare STRIDER al multilinguismo Ricerca ed analisi di: fonti di conoscenza esterne fonti di conoscenza esterne strumenti linguistici strumenti linguistici Implementazione e valutazione dellestensione per la lingua italiana
STRIDER STRIDER Fonti di conoscenza esterne e strumenti linguistici Fonti di conoscenza esterne e strumenti linguistici Progetto ed estensione di STRIDER Progetto ed estensione di STRIDER Prove sperimentali Prove sperimentali
Annota automaticamente schemi in diversi formati Annota automaticamente schemi in diversi formati Utilizza fonti di conoscenza esterne Utilizza fonti di conoscenza esterne rispetto alle quali annotare gli schemi per stimare le similarità tra termini dizionario motore di ricerca o dizionario strutturato Memorizza il significato corretto accanto ad ogni termine
incassoincasso filmfilm proiezioneCinemaproiezioneCinema salasala datadata AA film#2film#2 BB CC 1.Pellicola cinematografica o fotografica, striscia di celluloide … 2. Opera cinematografica, lungometraggio … proiezione di un f. al cinema; f. dazione; provento del f.; … proiezione di un f. al cinema; f. dazione; provento del f.; … …… sim( A, B ) = bassa sim( A, C ) = alta f. in bianco e nero; f. a colori; f. a 35 mm … f. in bianco e nero; f. a colori; f. a 35 mm … Pellicola strisciacelluloide colori Opera lungometraggio proiezionecinemaazione provento
INPUT Schema annotato Schema in inglese WordNet OUTPUT
STRIDER STRIDER Fonti di conoscenza esterne e strumenti linguistici Fonti di conoscenza esterne e strumenti linguistici Progetto ed estensione di STRIDER Progetto ed estensione di STRIDER Prove sperimentali Prove sperimentali
Dizionari Strutturati ad ipernimi Non strutturati ClassiciCollaborativi Machine-generated Valutazione delle caratteristiche: facilità dinterrogazione facilità dinterrogazione numero di lemmi numero di lemmi ricchezza delle definizioni ricchezza delle definizioni presenza di esempi presenza di esempi SCOPO: Raccogliere le definizioni relative ai termini Usati da STRIDER
SCOPO: Estrarre i sostantivi dalle definizioni dei termini Valutazione delle caratteristiche: facilità dinterrogazione facilità dinterrogazione linguaggio linguaggio efficacia efficacia incassoincasso filmfilm proiezioneCinemaproiezioneCinema salasala datadata 2. opera cinematografica, lungometraggio di genere narrativo: proiezione di un f. al cinema; f. dazione, provento del f. operalungometraggiogenere azione Strumenti: Stemmer Part-Of-Speech Tagger Database di parole categorizzate proiezionecinema provento
Dizionari: De Mauro Paravia De Mauro Paravia Il Sabatini Coletti Il Sabatini Coletti di Google di Google Strumenti linguistici: Database Morph-it! inserito nel DBMS MySQL Database Morph-it! inserito nel DBMS MySQL
STRIDER STRIDER Fonti di conoscenza esterne e strumenti linguistici Fonti di conoscenza esterne e strumenti linguistici Progetto ed estensione di STRIDER Progetto ed estensione di STRIDER Prove sperimentali Prove sperimentali
F1: Preparazione di schemi in lingua italiana RF01: Lingua, dizionario ed esempi RF02: Connessione e richiesta pagina web RF03: Estrazione delle definizioni RF04: Estrazione dei nomi
SELECT DISTINCT lemma FROM morphit WHERE tipo = n AND termine = Inserimento del DB Morph-it! nel DBMS MySQL Inserimento del DB Morph-it! nel DBMS MySQL Stemmer + Pos Tagger Stemmer + Pos Tagger Studio finalizzato alla creazione di indici ottimizzati Studio finalizzato alla creazione di indici ottimizzati Modifica del tag-set Modifica del tag-set opera opere;opere; cinematografica;cinematografica; null
DizDeMauroParavia.java Implementazione di Dizionario.java per il Dizionario on-line De Mauro Paravia Implementazione di Dizionario.java per il Dizionario on-line De Mauro Paravia DizDeMauroParavia.java DizSabatiniColetti.java DizGoogle.java Dizionario.java WebConnection.java Definizioni.javaNomi.java import java.net.*; import java.io.*; public class WebConnection { String Url = new String(""); public WebConnection(String U) { Url=U; } public String Connetti() throws IOException { BufferedInputStream text = import java.net.*; import java.io.*; public class WebConnection { String Url = new String(""); public WebConnection(String U) { Url=U; } public String Connetti() throws IOException { BufferedInputStream text = Dizionario.java Interfaccia Interfaccia Flusso principale Flusso principale Crea le URL Crea le URL DizSabatiniColetti.java Implementazione di Dizionario.java per il Dizionario on-line il Sabatini Coletti Implementazione di Dizionario.java per il Dizionario on-line il Sabatini Coletti DizGoogle.java Implementazione di Dizionario.java per il Dizionario machine- generated di Google Implementazione di Dizionario.java per il Dizionario machine- generated di GoogleWebConnection.java Crea la connessione WEB Crea la connessione WEB Salva la pagina ricevuta Salva la pagina ricevutaDefinizioni.java Estrae definizioni dalla pagina HTML Estrae definizioni dalla pagina HTML Metodo diverso per ogni dizionario Metodo diverso per ogni dizionarioNomi.java Estrae i sostantivi dalle definizioni Estrae i sostantivi dalle definizioni Interroga il DB Morph-it per verificare i sostantivi Interroga il DB Morph-it per verificare i sostantivi import java.util.ArrayList; public interface Dizionario { public ArrayList lavora(); public String CreaUrl(String p); public ArrayList getDefinizioni(); public Boolean CercaGenere(String ris) public ArrayList ricerca(String d); } import java.util.ArrayList; public interface Dizionario { public ArrayList lavora(); public String CreaUrl(String p); public ArrayList getDefinizioni(); public Boolean CercaGenere(String ris) public ArrayList ricerca(String d); } import java.util.ArrayList; import java.io.Serializable; public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String(" paravia.it/"); ArrayList lista; String parola; import java.util.ArrayList; import java.io.Serializable; public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String(" paravia.it/"); ArrayList lista; String parola; import java.util.ArrayList; import java.io.Serializable; public class DizSabatiniColetti implements Dizionario, Serializable { private String Diz_Url = new String(" re.it/dizionario_italiano/"); ArrayList lista; String parola; ArrayList definiz= import java.util.ArrayList; import java.io.Serializable; public class DizSabatiniColetti implements Dizionario, Serializable { private String Diz_Url = new String(" re.it/dizionario_italiano/"); ArrayList lista; String parola; ArrayList definiz= import java.util.ArrayList; import java.io.Serializable; public class DizGoogle implements Dizionario, Serializable { private String Diz_Url = new String(" gle.it/"); ArrayList lista; String parola; ArrayList definiz import java.util.ArrayList; import java.io.Serializable; public class DizGoogle implements Dizionario, Serializable { private String Diz_Url = new String(" gle.it/"); ArrayList lista; String parola; ArrayList definiz import java.util.ArrayList; public class Definizioni { String parola = new String(""); String ris = new String(""); ArrayList example= new ArrayList (); public Definizioni(String p, String r){ parola=p; ris=r; } import java.util.ArrayList; public class Definizioni { String parola = new String(""); String ris = new String(""); ArrayList example= new ArrayList (); public Definizioni(String p, String r){ parola=p; ris=r; } import java.util.ArrayList; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.DriverManager; public class Nomi { public Connection conn=null; public Nomi(){ try{ conn= DbConnection(); } import java.util.ArrayList; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.DriverManager; public class Nomi { public Connection conn=null; public Nomi(){ try{ conn= DbConnection(); }
Schema in inglese INPUTOUTPUT Schema annotato Schema in italiano Morph-it!MySQLMorph-it!MySQL WordNet De Mauro Paravia Il Sabatini Coletti Google import java.util.ArrayList; import java.io.Serializable; public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String(" paravia.it/"); ArrayList lista; String parola; import java.util.ArrayList; import java.io.Serializable; public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String(" paravia.it/"); ArrayList lista; String parola; Internet
STRIDER STRIDER Fonti di conoscenza esterne e strumenti linguistici Fonti di conoscenza esterne e strumenti linguistici Progetto ed estensione di STRIDER Progetto ed estensione di STRIDER Prove sperimentali Prove sperimentali
Schemi SQL Schemi SQL Valutazione dellefficacia Valutazione dellefficacia Precision P(M): numero di termini corretti entro lm-esima posizione Precision P(M): numero di termini corretti entro lm-esima posizione Dizionari Dizionari Il dizionario 3 non è sempre applicabile a tutti gli schemi Il dizionario 3 non è sempre applicabile a tutti gli schemi monotematici politematici P(1) P(2) P(3) P(1) P(2) P(3) 1: De Mauro Paravia 2: Il Sabatini Coletti 3: di Google
Confronto dellefficacia dei tre diversi dizionari Confronto dellefficacia dei tre diversi dizionari Valutazione del contributo degli esempi nelle definizioni Valutazione del contributo degli esempi nelle definizioni Stima dellefficacia al variare della dimensione del Stima dellefficacia al variare della dimensione del contesto del grafo contesto del grafo Effetti della variazione nella navigazione del grafo Effetti della variazione nella navigazione del grafo Stima dellefficacia variando i pesi degli archi del grafo Stima dellefficacia variando i pesi degli archi del grafo
Maggiore efficacia del dizionario 2 rispetto al dizionario 1 Anche il numero 3 ha efficacia paragonabile a quella dei dizionari classici Dizionario 2 raggiunge P(3) = 1
Gli esempi forniscono un contributo fondamentale Il Dizionario 2 è sempre più efficace del Dizionario 1
adattamento di STRIDER al multilinguismo, mantenendo nella stessa versione implementazioni per lingue diverse; ricerca ed analisi dei dizionari e degli strumenti linguistici per la lingua italiana; creazione di un POS Tagger utilizzando Morph-it!; implementazione modulare dellestensione per la lingua italiana, utilizzando tre dizionari differenti; valutazione dellefficacia della nuova versione su schemi SQL di molteplici argomenti e dimensioni, variando il contesto dei termini. implementazione di estensioni per qualsiasi altra lingua, seguendo i ragionamenti già effettuati per litaliano; valutazione dellefficacia utilizzando dizionari in lingua inglese non strutturati ad ipernimi; valutazione dellefficacia utilizzando dizionari strutturati ad ipernimi in lingua italiana; valutazione dellefficacia utilizzando i dizionari collaborativi; implementazione di funzionalità di feedback per gli algoritmi che non utilizzano la struttura ad ipernimi.