ETD

Archivio digitale delle tesi discusse presso l'Università di Pisa

Tesi etd-01032018-171848


Tipo di tesi
Tesi di dottorato di ricerca
Autore
FAGNI, TIZIANO
URN
etd-01032018-171848
Titolo
COMPUTING FRAMEWORKS AND APPLICATIONS FOR TEXT PROCESSING ON BIG DATA
Settore scientifico disciplinare
ING-INF/05
Corso di studi
INGEGNERIA DELL'INFORMAZIONE
Relatori
tutor Prof. Avvenuti, Marco
tutor Dott. Esuli, Andrea
Parole chiave
  • frameworks
  • text processing
  • text mining
  • big data
Data inizio appello
23/01/2018
Consultabilità
Completa
Riassunto
La grande popolarità ottenuta negli ultimi anni da Internet, e in particolare dal Web, come strumento principale di comunicazione usato dalle persone e dalle aziende, ha determinato una crescita esponenziale dei dati generati che potenzialmente potrebbero essere utilizzati a fini di analisi. Una larga parte di questi dati è di natura testuale, un tipo di contenuto non strutturato che richiede complesse analisi di tipo statistico e linguistico in modo da ottenere informazioni strutturate e semantiche rispetto ai dati analizzati. Processare elevate quantità di testo in modo efficiente non è un compito facile. I software e le librerie di text mining esistenti sono generalmente ottimizzate per eseguire il codice sequenzialmente su singole macchine. Inoltre, questi pacchetti software rendono disponibili un numero limitato di metodi o algoritmi specifici per l'analisi del testo, imponendo ai programmatori grandi sforzi in termini di integrazione di strumenti diversi al fine di poter realizzare soluzioni complesse e complete. In aggiunta a questo, nessuno strumento di big data processing fornisce librerie specializzate in grado di processare nativamente contenuti testuali. La soluzione a queste problematiche è di solito lasciata agli sviluppatori, i quali si devono ingegnare con strategie di integrazione da applicare caso per caso, senza la possibilità di utilizzare un approccio sistematico e ben definito.

In questa tesi abbiamo lavorato per superare queste limitazioni approfondendo queste tematiche su tre differenti scenari applicativi di tipo "big data". In questo contesto, vogliamo mostrare come approcciare problemi di mining su testo con strategie efficaci di integrazione di tecnologie diverse e mediante la realizzazione di strumenti software innovativi aventi lo scopo di semplificare in modo consistente il lavoro degli sviluppatori.

Nel primo scenario, focalizzato sulla realizzazione di strumenti standalone efficienti ed operanti con quantità di dati medio-piccole, per prima cosa introduciamo \jt, un framework sequenziale di processamento testuale che fornisce molte delle funzionalità che tipicamente servono ai programmatori per realizzare sperimentazioni complete su problemi di analisi del testo. Il software realizzato permette, attraverso una struttura dati chiamata Indice, di accedere e manipolare facilmente i dati indicizzati. Inoltre, mediante l'ausilio di uno stile di programmazione "plug and play", riesce a coprire tutti i passi necessari e a fornire componenti pronti per la realizzazione di una tipica pipeline di mining del testo: acquisizione dei dati, preprocessamento delle informazioni, indicizzazione dei dati, apprendimento di modelli e valutazione dei modelli appresi.

Successivamente andiamo ad analizzare due specifici casi di uso riconducibili a questo scenario applicativo e che utilizzano \jt estensivamente come strumento di base di analisi del testo nelle souzioni proposte. Nel primo caso di studio proponiamo un sistema automatico di classificazione di siti Web come strumento di supporto per il problema delle classificazione di aziende per settore industriale. Nel secondo caso di studio invece proponiamo un software in grado fare classificazione automatica di applicazioni per dispositivi mobili considerando tassonomie di classi definite dagli utenti. In entrambi i casi, usiamo alcuni dei metodi e algoritmi forniti da \jt per realizzare e valutare i sistemi proposti.

Esploriamo poi un secondo scenario applicativo dove lo scopo è processare elevate quantità di dati testuali utilizzando ambienti di esecuzione basati sia su approcci multi-thread a singola macchina sia in ambienti distribuiti. Iniziamo proponendo e valutando Processfast, una nuova libreria multi-thread di data processing che è caratterizzata dalla possibilità da parte del programatore di usare all'interno dello stesso applicativo di un approccio al parallelismo basato sia sui dati che sui task. Succesivamente presentiamo NLP4Spark, una nuova libreria distribuita costruita sopra Apache Spark che è caratterizzata da una API semplice e concisa per l'accesso e la manipolazione dei dati processati. Infine, come interessante caso di studio sulla integrazione di tecnologie "big data", facciamo vedere come progettare una applicazione su social-media in grado recuperare i dati da Twitter e di essere usata come strumento di monitoraggio/supporto per la protezione civile nella gestione di crisi dovute a catastrofi naturali o provocate dall'uomo.

Concludiamo questa tesi affrontando un terzo scenario applicativo nel quale si fa uso di metodi di deep learning su grandi quantità di dati per ottenere modelli di apprendimento particolarmente complessi. Presentiamo quindi una nuova architettura di deep learning chiamata Text2Vis che utilizza una rete neurale per fare cross-media retrieval tra testo e immagini. Il sistema è in grado di trasformare una query testuale in una query nello spazio visuale delle immagini, e successivamente di usare questa rappresentazione visuale per cercare immagini simili presenti su vaste collezioni di dati.
File