Il corso ha l’obiettivo di fornire una introduzione ai moderni approcci per il recupero delle informazioni da una collezione di documenti. Descrive l’architettura dei moderni sistemi ed evidenzia le problematiche che il progettista deve affrontare durante la progettazione e la realizzazione dei moderni motori di ricerca e dei sistemi di recupero delle informazioni.
Prerequisiti
Lo studente dovrebbe possedere una conoscenza di base dell’architettura di Internet e del Web, essere in grado di sviluppare applicativi utilizzando linguaggi orientati agli oggetti (preferibilmente Java), sapere implementare semplici strutture dati, quali pile, code, liste e alberi.
Metodi didattici
Il corso prevede lezioni frontali e una serie di sessioni di laboratorio finalizzate alla realizzazione di un progetto per il recupero delle informazioni
Verifica Apprendimento
Prova scritta e progetto
Testi
Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Introduction to Information Retrieval, Cambridge University Press. 2008. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to algorithms Risorse online
Contenuti
Strutture dati avanzate per il recupero delle informazioni (Linked List, Hash Table, Binary Tree, B-Tree, Binary Heap); L’architettura dei moderni sistemi di recupero delle informazioni Gestione del dizionario e delle Posting List (Tokenization, Stemming, l’algoritmo di Porter, Linguistic Preprocessing) Metodi di ottimizzazione per il recupero delle informazioni Tipi di indice (BiWord Index, Positional Index, Permuterm Index, k-Gram Index, Soundex Index) Strutture dati per i dizionari (Prefix Tree, Prefix Binary Tree, Prefix B-Tree) L’individuazione degli errori sintattici e semantici (Edit Distance; K-Gram Overlap, Jaccard Similarity Coefficient) Algoritmi per la costruzione degli indici (Blocked Sort Based Indexing Algorithm, Single Pass In Memory Indexing Algorithm, Algoritmi di Indexing distribuiti, Indici Dinamici) Tecniche di compressione degli indici (Heaps Law, Zipf’s Law, Dictionary Compression; Postings File Compression; Gamma Code) Individuazione dei duplicati (Fingerprint, Shingling, Signature, Min Hashing) Ranking dei documenti (ricerca pesata, Inverse Document Frequency) Rappresentazione dei documenti in forma vettoriale (Bag of Word, Word Embedding, Document Embedding) Similitudine e distanza dei documenti (Cosine Distance, Jaccard Distance, Edit Distance) Il Word Embedding per l’analisi sintattica e semantica dei documenti, la sentiment analysis, la classificazione del testo e dei documenti, la predizione delle parole successive Reti neurali per il Word Embedding (Word2Vec, Continuous Bag of Words, SkipGram) Reti neurali per il Document Embedding (Doc2Vec, Distributed Memory Model Of Paragraph Vectors, Paragraph Vector With A Distributed Bag Of Words, FastText) Solr Sistemi di recupero delle immagini, tecniche di estrazione delle features delle immagini (Local Binary Pattern, Haar Wavelet Transform, Histogram of Oriented Gradient) Database documentali e MongoDB
Lingua Insegnamento
INGLESE
Altre informazioni
Il materiale didattico sarà disponibile sulla pagina Kiro dell’insegnamento