Approximate Sequence Matching: Implementazione e Analisi Prestazionale UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Approximate Sequence Matching: Implementazione e Analisi Prestazionale Comparata di Tecniche Portabili e Efficienti Tesi di Laurea di: Marcello Pietri Relatore: Prof. Riccardo Martoglia
Ambito di ricerca: Approximate Sequence Matching Esempio: Introduzione Ambito di ricerca: Approximate Sequence Matching (Ricerca di tutte le corrispondenze approssimate tra un pattern e un testo, intendendo come testo e pattern una sequenza di simboli quali lettere, parole, nucleotidi, basi azotate, amminoacidi, etc...) Esempio: Trovare due frasi (pattern) all'interno di un libro (testo) pattern 1: “randomly choose two” pattern 2: “the arithmetic from n”
Approximate Sequence Matching Introduzione Approximate Sequence Matching (Specifica applicazione) Example Based Machine Translation (Sistema che fornisce suggerimenti tradotti per analogia, utilizzando le traduzioni passate per tradurre altre frasi dalla lingua sorgente alla lingua destinazione) Esigenza di immagazzinare ed interrogare grandi quantità di dati in modo efficiente DataBase Management System (Sistema per la gestione di una base di dati)
Obiettivi della tesi: Analisi del software Obiettivo della tesi Obiettivi della tesi: Analisi del software La progettazione del software Implementazione di tecniche portabili Estensione del sistema per il supporto a diversi DBMS (Oracle 9.2, MySQL 4,5, 5.1 e 6 , FireBird 2.1, MonetDB 5, PostgreSQL 8.2 e 8.3) Ricerca di similarità Tecniche di stemming Installazione e interfaccia utente Analisi prestazionale comparata Efficienza di inserimento dei dati Efficienza di copertura della Translation Memory Efficienza di ricerca utilizzando vari DBMS Confronto con altre tecniche di Approximate Sequence Matching Suffix tree e Suffix array
Problematiche affrontate nella tesi Analisi del software Il progetto con Unified Modelling Language Implementazione di tecniche portabili Installazione e interfaccia grafica Analisi prestazionale comparata
EXample-based TRanslation Assistant Analisi del software EXample-based TRanslation Assistant È un software EBMT sviluppato da ISGroup presso l'Università di Modena, che implementa tecniche di Approximate Sequence Matching basate su metriche di Edit Distance e algoritmi di ricerca basati su query SQL Funzionamento del sistema:
Analisi del software Il processo di stemming, ovvero l'eliminazione di parole insignificanti al fine semantico e la trasformazione delle altre in un formato standard, richiede l'accesso a grandi quantità di dati memorizzate sotto forma di tabelle nel DBMS Esempio:
La struttura del software Analisi del software La struttura del software Metrica di similarità tra frasi Flessibile (stemming) Similarità sintattica (edit distance) Similarità semantica (word sense disambiguation) Algoritmi di ricerca di similarità tra frasi Completi (whole-match e sub2-match) Efficienti (filtri ed indici ad hoc) Basati su query SQL (Java, DBMS) Algoritmi di allineamento Allineamento frasi e parole Automatici Ambiente integrato Strumenti per gestione ed analisi Translation Memory Interfaccia utente grafica
Problematiche affrontate nella tesi Analisi del software Il progetto con Unified Modelling Language Implementazione di tecniche portabili Installazione e interfaccia grafica Analisi prestazionale comparata
La struttura del software Il progetto con UML La struttura del software LE MODIFICHE Metrica di similarità tra frasi Flessibile (stemming) Similarità sintattica (edit distance) Similarità semantica (word sense disambiguation) Algoritmi di ricerca di similarità tra frasi Completi (whole-match e sub2-match) Efficienti (filtri ed indici ad hoc) Basati su query SQL (Java, DBMS) Algoritmi di allineamento Allineamento frasi e parole Automatici Ambiente integrato Strumenti per gestione ed analisi Translation Memory Interfaccia utente grafica
La raccolta dei Requisiti Funzionali Il progetto con UML La raccolta dei Requisiti Funzionali RF01– Portabilità sui vari DBMS RF02– Selezione delle impostazioni RF03– Importazione dei dati Stemmer RF04– Verifica dei dati Stemmer RF05– Creazione dell'interfaccia grafica RF06– Settaggio di User e Password RF07– Salvataggio dei parametri nel file di configurazione RF08– Caricamento del file di configurazione RF09– Informazioni sui vari DBMS Scenario d'uso Activity Diagram
Problematiche affrontate nella tesi Analisi del software Il progetto con Unified Modelling Language Implementazione di tecniche portabili Installazione e interfaccia grafica Analisi prestazionale comparata
Implementazione di tecniche portabili La portabilità Il problema della portabilità è stato analizzato in vari punti e suddiviso in due grandi classi: Portabilità per la fase di ricerca: 1. Java Inside e Java Outside (Inclusione di codice Java in Oracle JI) 2. Le connessioni (Il driver per la connessione non può essere statico) 3. L'SQL (Il codice SQL differisce tra un DBMS e l'altro) 4. Altri casi particolari (MonetDB e FireBird) Portabilità per la fase di stemming: 1. Da SQLJ a JDBC (Il codice SQLJ non è portabile su tutti i DBMS) 2. Importazione dei dati (I dati da inserire devono essere uniformi)
Implementazione di tecniche portabili Prima - dopo
Problematiche affrontate nella tesi Analisi del software Il progetto con Unified Modelling Language Implementazione di tecniche portabili Installazione e interfaccia grafica Analisi prestazionale comparata
Installazione e interfaccia utente La necessità di importare dati all'interno del DBMS utilizzato, per consentire il funzionamento del processo di Stemming, ha portato alla stesura di una nuova interfaccia grafica, così da renderlo possibile in modo veloce e trasparente.
Installazione e interfaccia utente L'introduzione di nuove caratteristiche, quali la selezione di user e password, la possibilità di salvare i dati su file di configurazione e la visione di informazioni sui vari DBMS, ha portato infine alla completa configurabilità del programma.
Problematiche affrontate nella tesi Analisi del software Il progetto con Unified Modelling Language Implementazione di tecniche portabili Installazione e interfaccia grafica Analisi prestazionale comparata
Analisi prestazionale comparata Efficienza nell'inserimento dei dataset con diversi DBMS Efficienza nell'interrogazione sui dataset con diversi DBMS Efficienza di copertura della Translation Memory Confronto con altre tecniche implementative Scelta dei dataset: “NVIDIA” (da 610 a 890 frasi per file; circa 14.000 parole). “Deluxe Paint” (da 107 a 400 frasi per file; circa 55.000 parole). “DNA” (dataset genetico; 3190, 3190, 357 e 3296 simboli per file). “WhirlPool” (650.000 parole; il libro “Moby Dick” ne contiene 218.551 ).
Efficienza nell'inserimento dei dati Analisi prestazionale comparata Efficienza nell'inserimento dei dati
Efficienza di copertura della Translation Memory Analisi prestazionale comparata Efficienza di copertura della Translation Memory
Efficienza di interrogazione - DP Analisi prestazionale comparata Efficienza di interrogazione - DP
Efficienza di interrogazione - DP Analisi prestazionale comparata Efficienza di interrogazione - DP
Efficienza di interrogazione - DP Analisi prestazionale comparata Efficienza di interrogazione - DP
Efficienza di interrogazione - WHIRL Analisi prestazionale comparata Efficienza di interrogazione - WHIRL
Efficienza di interrogazione - NV Analisi sperimentale Efficienza di interrogazione - NV
Efficienza di interrogazione - NV Analisi prestazionale comparata Efficienza di interrogazione - NV
Efficienza di interrogazione - NV Analisi prestazionale comparata Efficienza di interrogazione - NV
Analisi prestazionale comparata Confronto con altre tecniche di Approximate Sequence Matching - DNA e DP - Extra vs ACGT
Conclusioni: Sviluppi futuri: Conclusioni e sviluppi futuri Studio e analisi di algoritmi innovativi per la ricerca di similarità tra frasi; Studio e analisi di algoritmi di Stemming; Studio, implementazione e analisi di tecniche per la connessione a DBMS; Studio, installazione e analisi di numerosi DBMS; Sviluppo ed implementazione della portabilità su tutti i DBMS installati; Sviluppo ed implementazione dell'interfaccia grafica; Effettuazione e commento di numerose analisi prestazionali; Studio e analisi di nuovo software per la comparazione in analisi. Sviluppi futuri: Sviluppare il software per l'utilizzo con altre lingue; Ottimizzare ulteriormente le prestazioni inserendo procedure Pg/SQL; Implementare un metodo basato sulle tecniche sviluppate in Extra, specifico per l'ambito di ricerca genetica.
GRAZIE A TUTTI DELL'ATTENZIONE