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.