INTRODUZIONE ALLA LINGUISTICA COMPUTAZIONALE E LABORATORIO
Modulo MODULO B: STRUMENTI DI ANALISI DEL LINGUAGGIO NATURALE

Anno accademico 2023/2024 - Docente: MISAEL MONGIOVI'

Risultati di apprendimento attesi

Secondo i descrittori di Dublino studenti e studentesse dovranno, alla fine del corso, acquisire:

1)      Conoscenza e comprensione: Gli studenti acquisiranno le basi del pensiero computazionale e della filosofia della programmazione strutturata in Python (primo modulo). Inoltre è previsto l’apprendimento delle principali tecniche per l’elaborazione del testo attraverso l’utilizzo del linguaggio Python (secondo modulo).

2)      Capacità di applicare conoscenza e comprensione: gli studenti acquisiranno la capacità di risolvere algoritmicamente semplici problemi sia dal punto di vista formale che applicando gli strumenti forniti dal linguaggio di programmazione Python, realizzando così semplici programmi (primo modulo).

3)      Autonomia di giudizio: i contenuti saranno trasmessi con esempi di casi concreti, allo scopo di sollecitare le personali intuizioni degli apprendenti.

4)       Abilità comunicative: gli studenti acquisiranno capacità di descrivere appropriatamente, analizzare e discutere con altri problemi di programmazione e loro soluzioni.

5)      Capacità di apprendimento: gli studenti svilupperanno la capacità di applicare il pensiero computazione ad un’ampia famiglia di problemi e di utilizzare librerie di programmi in Python attraverso lo studio della loro documentazione

Modalità di svolgimento dell'insegnamento

L'insegnamento sarà svolto attraverso delle lezioni frontali in cui verranno presentati i contenuti del corso, anche attraverso delle dimostrazioni pratiche di programmazione in aula. L’insegnamento prevede l’applicazione dei concetti attraverso l’utilizzo del linguaggio Python. Lo studente avrà a disposizione ulteriori ore di lezione frontale durante le quali avrà la possibilità di perfezionare la propria preparazione sulla programmazione strutturata in Python. Inoltre, lo studente avrà a disposizione una piattaforma di apprendimento attraverso la quale sarà possibile esercitarsi durante le ore di studio e autovalutarsi sui contenuti appresi a lezione. La medesima piattaforma fornisce un valido strumento per la preparazione all'esame.

Prerequisiti richiesti

Lo studente che accede al corso dovrà conoscere i fondamenti dell'Informatica. In particolare, lo studente dovrà avere dimestichezza con il concetto di informazione e con i principi di funzionamento del sistema di elaborazione e del sistema operativo.

Frequenza lezioni

Obbligatoria.

Contenuti del corso

Il corso è diviso in due moduli principali.

Nel primo modulo lo studente apprenderà le basi del pensiero computazione e della programmazione nel linguaggio Python. Apprenderà l’utilizzo dei costrutti di base, delle funzioni, della ricorsione, dei file e delle principali strutture di dati disponibili in Python. Il secondo modulo del corso ha lo scopo di fornire gli strumenti essenziali per l’elaborazione del testo e del linguaggio naturale a partire dalla normalizzazione del testo, fino alla rappresentazione semantica delle parole e delle frasi ed al loro utilizzo per la classificazione.  Il programma include la divisione in token, lo stemming e la lemmatizzazione, il Part-Of-Speech tagging ed il Named Entity Recognition, utilizzando le librerie di Python NLTK e spaCy. Si proseguirà con l'acquisizione di competenze sull'accesso ai corpora di NLTK, al dizionario WordNet ed ai dataset disponibili su HuggingFace. Si introdurranno gli elementi di base per il trattamento di dati e matrici attraverso pandas e numpy. Saranno acquisite inoltre competenze sulla rappresentazione semantica delle parole mediante word embeddings a partire dal word embedding statico e introducendo l'embedding contestuale e di un intero testo. Si tratteranno gli elementi di base della classificazione di testi e si introdurranno le metriche per la classificazione utilizzando la libreria scikit-learn.

Testi di riferimento

Modulo B.

Testo:

- J. Perkins, Python 3 Text Processing with NLTK 3 Cookbook, Packt Publishing, 2014, pp. 1-228.

Il testo introduce lo studente alle tecniche essenziali di elaborazione del testo e del linguaggio naturale. La seconda parte del secondo modulo, relativa al Natutal Language Processing tramite SpaCy verrà trattata seguendo dispense fornite dal docente (28 pagine) e la documentazione ufficiale di SpaCy reperibile online (https://spacy.io/usage).

 

Si ricorda che, ai sensi dell’art. 171 della legge 22 aprile 1941, n. 633 e successive disposizioni, fotocopiare libri in commercio, in misura superiore al 15% del volume o del fascicolo di rivista, è reato penale.

Per ulteriori informazioni sui vincoli e sulle sanzioni all’uso illecito di fotocopie, è possibile consultare le Linee guida sulla gestione dei diritti d’autore nelle università (a cura della Associazione Italiana per i Diritti di Riproduzione delle opere dell’ingegno - AIDRO).

I testi di riferimento possono essere consultati in Biblioteca.

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

La verifica dell’apprendimento sarà effettuata attraverso una prova pratica, la realizzazione di un progetto ed un esame orale.

La prova pratica verterà sulla risoluzione al computer di problemi computazionali su temi di programmazione di base in Python (primo modulo). Il progetto richiederà lo sviluppo di un programma in Python per l’elaborazione di testi in linguaggio naturale.(secondo modulo). La prova orale consisterà in una discussione del progetto ed una verifica delle competenze acquisite.

La valutazione terrà conto della padronanza dei contenuti e delle competenze acquisite, dell’accuratezza linguistica e proprietà lessicale, nonché della capacità argomentativa dimostrata dal/la candidato/a.

Esempi di domande e/o esercizi frequenti

Per quanto riguarda il modulo A gli studenti dovranno essere in grado di risolvere esercizi della seguente tipologia:

  • Si consideri una struttura dati (tupla o dizionario) che comprenda le seguenti informazioni: NOME STUDENTE, VOTO DI LAUREA. Fornire un algoritmo che prenda in input una sequenza di elementi organizzati nella struttura dati precedentemente indicata e restituisca l'elenco degli studenti che hanno avuto un voto di laurea non inferiore a 100 e il relativo voto conseguito.

 

  • Si consideri una struttura dati (tupla o dizionario) che comprenda le seguenti informazioni: NOME STUDENTE, VOTO DI LAUREA, CORSO DI LAUREA. Fornire un algoritmo che prenda in input una sequenza di elementi organizzati nella struttura dati precedentemente indicata e restituisca per ogni corso di laurea presente la media del voto di laurea.

 

  • Si consideri una struttura dati (tupla o dizionario) che comprenda le seguenti informazioni: NOME STUDENTE, VOTO, MATERIA. Si consideri inoltre una struttura dati che comprenda le seguenti informazioni: DOCENTE, MATERIA. Fornire un algoritmo che prenda in input una sequenza di elementi per ognuna delle strutture dati precedentemente indicate e restituisca  la media dei voti ottenuti dagli studenti per ogni docente e corso.

 

L’eserciziario e le prove assegnate nell’anno passato saranno resi disponibili attraverso la piattaforma Studium. Per quanto riguarda il modulo B, gli studenti discuteranno un progetto concordato con il docente. Durante la verifica orale i docente potrebbe porre domande sul programma quali:

  • Cosa rappresentano le metriche precision, recall ed F1 nella classificazione?
  • Cos'è la lemmatizzazione e quali strumenti possono essere usati per ottenerla?
ENGLISH VERSION