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 Ambito di ricerca dagli anni ‘50 Assegna il significato corretto ad un termine ambiguo di un testo, a seconda del suo contesto proiezioneCinema data incasso 6 significati film sala 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 3 significati 3 significati 15 significati Word Sense Disambiguation Schema Disambiguation Adattare STRIDER al multilinguismo Ricerca ed analisi di: fonti di conoscenza esterne strumenti linguistici Implementazione e valutazione dell’estensione per la lingua italiana • STRIDER • Fonti di conoscenza esterne e strumenti linguistici • Progetto ed estensione di STRIDER • Prove sperimentali Annota automaticamente schemi in diversi formati Memorizza il significato corretto accanto ad ogni termine Utilizza fonti di conoscenza esterne rispetto alle quali annotare gli schemi dizionario per stimare le similarità tra termini motore di ricerca o dizionario strutturato proiezioneCinema termine (proiezione, …) data incasso film sala (cinema, …) (data, …) A (incasso, …) film#2 1. “Pellicola Pellicola cinematografica o fotografica, striscia di celluloide …” B f. in bianco e nero; f. a colori colori; f. a 35 mm … 2. “Opera Opera cinematografica, lungometraggio …” azione proiezione di un f. al cinema cinema; f. d’azione; C provento del f.; … … (sala, …) sim( A , B ) = bassa sim( A , C ) = alta INPUT OUTPUT Schema annotato Schema in inglese WordNet • STRIDER • Fonti di conoscenza esterne e strumenti linguistici • Progetto ed estensione di STRIDER • Prove sperimentali SCOPO: Raccogliere le definizioni relative ai termini Usati da STRIDER Strutturati ad ipernimi Dizionari Non strutturati Classici Valutazione delle caratteristiche: facilità d’interrogazione numero di lemmi ricchezza delle definizioni presenza di esempi Machine-generated Collaborativi SCOPO: Estrarre i sostantivi dalle definizioni dei termini proiezioneCinema data incasso opera cinematografica, lungometraggio di genere 2. “opera cinema f. d’azione, azione narrativo: proiezione di un f. al cinema; provento del f. film sala Strumenti: Valutazione delle caratteristiche: Stemmer Part-Of-Speech Tagger Database di parole categorizzate facilità d’interrogazione linguaggio efficacia Dizionari: De Mauro Paravia Il Sabatini Coletti di Google Strumenti linguistici: Database Morph-it! inserito nel DBMS MySQL • STRIDER • Fonti di conoscenza esterne e strumenti linguistici • Progetto ed estensione di STRIDER • 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 Inserimento del DB Morph-it! nel DBMS MySQL Stemmer + Pos Tagger SELECT DISTINCT lemma FROM morphit WHERE tipo = ‘n’ AND termine = ‘opere’; ‘cinematografica’; null opera Studio finalizzato alla creazione di indici ottimizzati Modifica del tag-set DizDeMauroParavia.java DizSabatiniColetti.java DizGoogle.java import java.util.ArrayList; import java.io.Serializable; import java.util.ArrayList; import java.io.Serializable; import java.util.ArrayList; import java.io.Serializable; public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String("http://www.demauro paravia.it/"); ArrayList<ArrayList> lista; String parola; public class DizSabatiniColetti implements Dizionario, Serializable { private String Diz_Url = new String("http://dizionari.corrie re.it/dizionario_italiano/"); ArrayList<ArrayList> lista; String parola; ArrayList<String> definiz= public class DizGoogle implements Dizionario, Serializable { private String Diz_Url = new String("http://www.goo gle.it/"); ArrayList<ArrayList> lista; String parola; ArrayList<String> definiz 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 = WebConnection.java import java.util.ArrayList; public class Definizioni { String parola = new String(""); String ris = new String(""); ArrayList<String> example= new ArrayList<String>(); public Definizioni(String p, String r){ parola=p; ris=r; } Definizioni.java import java.util.ArrayList; public interface Dizionario { public ArrayList<ArrayList> lavora(); public String CreaUrl(String p); public ArrayList<String> getDefinizioni(); public Boolean CercaGenere(String ris) public ArrayList<String> ricerca(String d); } Dizionario.java 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(); } Nomi.java DizDeMauroParavia.java DizSabatiniColetti.java Dizionario.java DizGoogle.java WebConnection.java Definizioni.java Nomi.java Estrae Interfaccia Implementazione Crea laidefinizioni connessione sostantivi di dalla dalle Dizionario.java per il Flusso WEB pagina definizioni HTML principale Dizionario on-line “De “il Interroga Crea lelaURL Salva Metodo diverso machinepagina il DB Morph-it per ricevuta Mauro Sabatini Paravia” Coletti” generated ogni per verificare dizionario di Google™ i sostantivi import java.util.ArrayList; import java.io.Serializable; INPUT public class DizDeMauroParavia implements Dizionario, Serializable { private String Diz_Url = new String("http://www.demauro paravia.it/"); ArrayList<ArrayList> lista; String parola; Morph-it! MySQL OUTPUT Schema in inglese Schema annotato Schema in italiano Internet WordNet De Mauro Il Sabatini Paravia Coletti Google • STRIDER • Fonti di conoscenza esterne e strumenti linguistici • Progetto ed estensione di STRIDER • Prove sperimentali monotematici Schemi SQL politematici Valutazione dell’efficacia Precision P(M): numero di termini corretti entro l’m-esima posizione → P(1) P(2) P(3) 1: De Mauro Paravia Dizionari 2: Il Sabatini Coletti 3: di Google Il dizionario 3 non è sempre applicabile a tutti gli schemi Confronto dell’efficacia dei tre diversi dizionari Valutazione del contributo degli esempi nelle definizioni Stima dell’efficacia al variare della dimensione del contesto del grafo Effetti della variazione nella navigazione del grafo Stima dell’efficacia 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 Il Dizionario 2 è sempre più efficace del Dizionario 1 Gli esempi forniscono un contributo fondamentale 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 dell’estensione per la lingua italiana, utilizzando tre dizionari differenti; valutazione dell’efficacia 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 l’italiano; valutazione dell’efficacia utilizzando dizionari in lingua inglese non strutturati ad ipernimi; valutazione dell’efficacia utilizzando dizionari strutturati ad ipernimi in lingua italiana; valutazione dell’efficacia utilizzando i dizionari collaborativi; implementazione di funzionalità di feedback per gli algoritmi che non utilizzano la struttura ad ipernimi.