Apache Solr: applicazioni di NLP per l'estrazione della conoscenza dal testo e dal codice sorgente

   page       attach   

I motori di ricerca svolgono un ruolo importante nel recupero delle informazioni, in quanto sono ormai lo strumento preferito dagli utenti per ricercare e gestire le informazioni desiderate. La ricerca tramite parole chiave è il paradigma di ricerca più popolare, che richiede all'utente di cercare all'interno di un intero repository sulla base di poche parole che riassumono le informazioni desiderate.
La disponibilità di repository di software open source continua a crescere, e dunque anche la necessità di strumenti in grado di analizzarli automaticamente su scala sempre più grande. L'analisi automatizzata di tali repository risulta importante, ad esempio per comprendere la struttura del software, le sue funzioni, complessità ed evoluzione, nonché per identificare le relazioni tra gli esseri umani e il software che producono, facilitando il riutilizzo
interno del codice ed il processo di refactoring.
Queste relazioni possono essere incapsulate da parole chiave e tendono a corrispondere a concetti o caratteristiche implementati dal software e sono strettamente correlati alle classi dei sistemi software. Usando questi topic come guida, uno sviluppatore può essere in grado di capire meglio e più rapidamente la struttura dei sistemi, che potrebbe non essere riflessa dalla gerarchia dei pacchetti o dalla documentazione.
Lo scopo di questa tesi è di esplorare l’utilizzo di tecnologie, quali Apache Solr e Apache Spark, per effettuare il lavoro di analisi ed estrazione dei topic. In primo luogo verrà esaminato il caso d’uso del testo in linguaggio naturale, in particolare andando ad esaminare le note delle consuntivazioni all'interno dei progetti sviluppati in azienda, e successivamente il caso d’uso del codice sorgente, andando ad esaminare direttamente il codice di progetti
open-source assieme al contenuto dei messaggi di commit.

keywordsApace Solr • Apache Spark • NLP • Knowledge Extraction • Distributed Systems