UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Facoltà di Scienze Matematiche, Fisiche e Naturali Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica Corso di Laurea in Informatica
Sandra Mantovani Sandra Mantovani
Relatore:
Relatore:
Prof. Riccardo Martoglia Prof. Riccardo Martoglia
Anno Accademico 2007/2008 Anno Accademico 2007/2008
filmfilm filmfilm
Ambito di ricerca dagli anni ‘50 Ambito di ricerca dagli anni ‘50
Assegna il Assegna il significato corretto significato corretto ad un ad un termine ambiguotermine ambiguo di un di un testo,testo, a seconda del suo contestoa seconda del suo contesto
proiezioneCinema proiezioneCinema proiezioneCinema proiezioneCinema
datadata
datadata incassoincassoincassoincasso salasalasalasala
3
3 significat3 significat 3 significat significat
15 significat1515 significat 15 significat significat 6 significat66 significat
6 significat significat
3 significat33 significat 3 significat significat
Elimina le ambiguità dei
Elimina le ambiguità dei terminitermini contenuti
contenuti in schemiin schemi utilizzando utilizzando algoritmi ispirati a quelli di WSD algoritmi ispirati a quelli di WSD
Il processo può avvenire sia in Il processo può avvenire sia in modo manuale che
modo manuale che automaticoautomatico
Word Sense Disambiguation Schema DisambiguationWord Sense Disambiguation Schema Disambiguation
Adattare STRIDER al multilinguismo Adattare STRIDER al multilinguismo
Ricerca ed analisi di:
Ricerca ed analisi di:
fonti di conoscenza esternefonti di conoscenza esterne
strumenti linguisticistrumenti linguistici
Implementazione e Implementazione e
valutazione dell’estensione valutazione dell’estensione per la
per la lingua italianalingua italiana
• STRIDERSTRIDER
• Fonti di conoscenza esterne e strumenti linguisticiFonti di conoscenza esterne e strumenti linguistici
• Progetto ed estensione di STRIDERProgetto ed estensione di STRIDER
• Prove sperimentaliProve sperimentali
AnnotaAnnota automaticamente schemi in diversi formati automaticamente schemi in diversi formati
Utilizza Utilizza fonti di conoscenza esternefonti di conoscenza esterne
rispetto alle quali rispetto alle quali annotare gli schemi
annotare gli schemi per stimare le per stimare le similarità tra termini similarità tra termini
dizionario
dizionario motore di ricercamotore di ricerca oo
dizionario strutturato dizionario strutturato Memorizza il significato corretto
Memorizza il significato corretto accanto ad ogni termine
accanto ad ogni termine
incasso incasso incasso
incasso filmfilmfilmfilm proiezioneCinema proiezioneCinema proiezioneCinema proiezioneCinema
salasala salasala datadata
datadata
AA
film#2 film#2 film#2 film#2
BB
CC
1.1. “Pellicola cinematografica o fotografica, “Pellicola cinematografica o fotografica, striscia di celluloide …”
striscia di celluloide …”
2. “Opera cinematografica, lungometraggio …”
2. “Opera cinematografica, lungometraggio …”
proiezione di un f. al cinema; f. d’azione; proiezione di un f. al cinema; f. d’azione;
provento del f.; … provento del f.; …
……
……
sim( A , B ) = sim( A , B ) =
bassa bassa
sim( A , C ) = alta 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
Pellicola striscia
striscia celluloidecelluloide
colori colori Opera
Opera lungometraggiolungometraggio proiezione
proiezione cinemacinema azioneazione provento
provento
INPUT INPUT
Schema Schema annotato annotato Schema Schema annotato annotato Schema in
Schema in
inglese inglese
Schema in Schema in
inglese inglese
WordNet WordNet
OUTPUT OUTPUT
• STRIDERSTRIDER
• Fonti di conoscenza esterne e strumenti linguisticiFonti di conoscenza esterne e strumenti linguistici
• Progetto ed estensione di STRIDERProgetto ed estensione di STRIDER
• Prove sperimentaliProve sperimentali
Dizionari Dizionari
Strutturati ad Strutturati ad
ipernimi
ipernimi Non strutturatiNon strutturati
Classici
Classici CollaborativiCollaborativi
Machine-generated
Valutazione delle
Valutazione delle caratteristichecaratteristiche::
facilità d’interrogazionefacilità d’interrogazione
numero di lemminumero di lemmi
ricchezza delle definizioniricchezza delle definizioni
presenza di esempipresenza di esempi
SCOPO:
SCOPO: Raccogliere le definizioni relative ai termini Raccogliere le definizioni relative ai termini
Usati da STRIDER Usati da STRIDER
SCOPO:
SCOPO: Estrarre i sostantivi dalle definizioni dei termini Estrarre i sostantivi dalle definizioni dei termini
Valutazione delle
Valutazione delle caratteristichecaratteristiche::
facilità d’interrogazionefacilità d’interrogazione
linguaggio linguaggio
efficaciaefficacia incasso
incasso incasso
incasso filmfilmfilmfilm proiezioneCinema proiezioneCinema proiezioneCinema proiezioneCinema
salasala salasala datadata
datadata
2. “opera cinematografica, lungometraggio di genere 2. “opera cinematografica, lungometraggio di genere narrativo: proiezione di un f. al cinema; f. d’azione, narrativo: proiezione di un f. al cinema; f. d’azione, provento del f.
provento del f.
opera
opera lungometraggiolungometraggio generegenere azione azione
Strumenti:
Strumenti:
Stemmer
Part-Of-Speech Tagger
Database di parole categorizzate
proiezione
proiezione cinemacinema provento
provento
Dizionari Dizionari : :
De Mauro ParaviaDe Mauro Paravia
Il Sabatini ColettiIl Sabatini Coletti
di Google di Google
Strumenti linguistici Strumenti linguistici : :
Database Database Morph-it!Morph-it! inserito nel DBMS MySQL inserito nel DBMS MySQL
• STRIDERSTRIDER
• Fonti di conoscenza esterne e strumenti linguisticiFonti di conoscenza esterne e strumenti linguistici
• Progetto ed estensione di STRIDERProgetto ed estensione di STRIDER
• Prove sperimentaliProve 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 SELECT DISTINCT lemma FROM morphit
FROM morphit WHERE tipo = ‘n’
WHERE tipo = ‘n’
AND termine = AND termine =
Inserimento del DB Morph-it! nel DBMS MySQLInserimento del DB Morph-it! nel DBMS MySQL
StemmerStemmer + + Pos TaggerPos Tagger
Studio finalizzato alla creazione di Studio finalizzato alla creazione di indici ottimizzatiindici ottimizzati
Modifica del Modifica del tag-settag-set
opera opera
‘opere‘‘‘opere’;cinematograficacinematografica’; ’;’;
nullnull
DizDeMauroParavia.java DizDeMauroParavia.java
Implementazione di Implementazione di Dizionario.java per il
Dizionario.java per il Dizionario on-line “De Dizionario on-line “De Mauro Paravia”
Mauro Paravia”
DizDeMauroParavia.java
DizDeMauroParavia.java DizSabatiniColetti.javaDizSabatiniColetti.java DizGoogle.javaDizGoogle.java
Dizionario.java Dizionario.java WebConnection.java
WebConnection.java
Definizioni.java
Definizioni.java Nomi.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 Dizionario.java
InterfacciaInterfaccia
Flusso principaleFlusso principale
Crea le URLCrea le URL
DizSabatiniColetti.java DizSabatiniColetti.java
Implementazione di Implementazione di Dizionario.java per il
Dizionario.java per il Dizionario on-line “il Dizionario on-line “il Sabatini Coletti”
Sabatini Coletti”
DizGoogle.java DizGoogle.java
Implementazione di Implementazione di Dizionario.java per il
Dizionario.java per il Dizionario machine- Dizionario machine- generated di Google™
generated di Google™
WebConnection.java WebConnection.java
Crea la connessione Crea la connessione WEB WEB
Salva la pagina ricevutaSalva la pagina ricevuta Definizioni.java
Definizioni.java
Estrae definizioni dalla Estrae definizioni dalla pagina HTML
pagina HTML
Metodo diverso per Metodo diverso per ogni dizionario
ogni dizionario Nomi.java
Nomi.java
Estrae i sostantivi dalle Estrae i sostantivi dalle definizioni
definizioni
Interroga il DB Morph-it Interroga il DB Morph-it per verificare i sostantivi per verificare i sostantivi
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);
} 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);
} 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;
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;
import java.util.ArrayList;
import java.io.Serializable;
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=
import java.util.ArrayList;
import java.io.Serializable;
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=
import java.util.ArrayList;
import java.io.Serializable;
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.util.ArrayList;
import java.io.Serializable;
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.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;
} 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;
}
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 Schema in
inglese inglese
Schema in Schema in
inglese inglese
INPUT
INPUT OUTPUTOUTPUT
Schema Schema annotato annotato Schema Schema annotato annotato Schema in
Schema in
italiano italiano
Schema in Schema in
italiano italiano
Morph-it!
Morph-it!
MySQL MySQL
WordNet
WordNet De MauroDe Mauro Paravia
Paravia Il SabatiniIl Sabatini Coletti Coletti
Google Google
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;
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;
Internet Internet
• STRIDERSTRIDER
• Fonti di conoscenza esterne e strumenti linguisticiFonti di conoscenza esterne e strumenti linguistici
• Progetto ed estensione di STRIDERProgetto ed estensione di STRIDER
• Prove sperimentaliProve sperimentali
SchemiSchemi SQL SQL
Valutazione dell’Valutazione dell’efficaciaefficacia
PrecisionPrecision P(M): numero di termini corretti entro l’m-esima P(M): numero di termini corretti entro l’m-esima posizione
posizione
Dizionari Dizionari
Il dizionario 3 non è sempre applicabile a tutti gli schemiIl dizionario 3 non è sempre applicabile a tutti gli schemi monotematici
monotematici politematici 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 dell’efficacia dei tre diversi Confronto dell’efficacia dei tre diversi dizionaridizionari
Valutazione del contributo degli Valutazione del contributo degli esempiesempi nelle definizioni nelle definizioni
Stima dell’efficacia al variare della Stima dell’efficacia al variare della dimensione deldimensione del contestocontesto del grafo del grafo
Effetti della variazione nella Effetti della variazione nella navigazionenavigazione del grafo del grafo
Stima dell’efficacia variando i Stima dell’efficacia variando i pesi degli archipesi degli archi del grafo del grafo
Maggiore efficacia
Maggiore efficacia del dizionario del dizionario 22 rispetto al dizionario 1 rispetto al dizionario 1 Anche il numero
Anche il numero 3 3 ha ha efficacia paragonabile a quella efficacia paragonabile a quella dei dizionari classici
dei dizionari classici Dizionario
Dizionario 2 2 raggiunge raggiunge P(3) = 1P(3) = 1
Gli Gli esempi esempi forniscono un forniscono un
contributo contributo
fondamentale fondamentale
Il Dizionario 2 è Il Dizionario 2 è
sempre più sempre più
efficace
efficace del del Dizionario 1 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 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.