Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progettazione ed implementazione di un algoritmo per ricerca di similarità tra frasi Relatore: Chiar.mo Prof. Sonia Bergamaschi Correlatore: Dott.ssa Federica Mandreoli Controrelatore: Chiar.mo Prof. Paolo Tiberio Tesi di Laurea di Francesco Gavioli
Breve introduzione al lavoro svolto Il lavoro per elaborare la presente tesi è stato svolto nell’ambito di una collaborazione tra l’Università di Modena e la Logos S.p.A. Temi trattati: Aspetti della traduzione multilingua di testi Analisi delle problematiche sul reperimento di informazioni testuali e stato dell’arte Implementazione di un procedimento efficace di ricerca di similarità tra frasi all’interno di basi di dati testuali in lingua inglese
Aiuto per la traduzione . . . term_it term_en cod_settore cod_cliente codice Tabella TERMS Pre-traduzione Aiuto per la traduzione Memoria di traduzione Corrispondenza esatta Ricerca di similarità
Specifiche per la progettazione del nuovo sistema di ricerca Reperimento di frasi veramente simili Massima velocità di esecuzione Facilità di integrazione con il sistema di pre-traduzione già esistente
Analisi di strumenti utili all’implementazione del progetto Information Retrieval Ricerca in basi di dati non strutturate Inverted Index Oracle 8i interMedia Text SELECT codice FROM mia_tabella WHERE contains(text,’basi di dati’) > 0; Ricerca attraverso la primitiva “contains” Istruzioni per la costruzione di inverted index
Come valutare la similarità Normalizzazione di una frase the red balls are on the higher table red ball be high table Eliminazione di noise words Stemming Scomposizione in trigrammi red ball be high table
Implementazione del nuovo procedimento di ricerca count(codice) = numero di trigrammi in comune N = numero di trigrammi della versione normalizzata della frase da tradurre NORMALIZZATORE frase da tradurre versione normalizzata INTERROGAZIONE FUNZIONE DI MEMBERSHIP NORMALIZZATORE frase da tradurre versione normalizzata INTERROGAZIONE FUNZIONE DI MEMBERSHIP FRASI NORMALIZZATE Frase 1 normalizzata Frase 2 normalizzata . . . Frase n normalizzata NORMALIZZATORE Tabella TERMS Inverted Index term_en Frase 1 Frase 2 Frase n codice 1 2 n Indicizzazione con Oracle 8i interMedia Implementazione del nuovo procedimento di ricerca SELECT codice, count(*) FROM terms WHERE contains(norm_term,’red ball be’)>0 OR contains(norm_term,’ball be high’)>0 OR contains(norm_term,’be high table’)>0) GROUP BY codice ORDER BY 2 DESC; Preparazione della tabella contenente i dati testuali Operazioni di ricerca
Esempio di applicazione Frase da tradurre: You can also find updates and technical information, which was not available at press time, in the Release Notes. Frase reperita: You can also find updates and technical information in the Release Notes that were not available at press time Valore della funzione di membership: 0.67
Analisi statistiche Comparazione di efficacia tra il nuovo ed il vecchio procedimento Valutazione di efficienza del nuovo procedimento di ricerca
Sviluppi futuri Utilizzo del multithreading Java Ampiezza dell’N-gramma legata al numero di parole che compongono la versione normalizzata della frase da tradurre