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.