COMPUTATIONAL LINGUISTICS: DIGITAL TEXT ANALYSIS

Anno accademico
2022/2023 Programmi anni precedenti
Titolo corso in inglese
COMPUTATIONAL LINGUISTICS: DIGITAL TEXT ANALYSIS
Codice insegnamento
LM5870 (AF:393228 AR:209420)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
L-LIN/01
Periodo
II Semestre
Anno corso
1
Spazio Moodle
Link allo spazio del corso
L'insegnamento si inquadra nelle attività caratterizzanti dei percorsi Language Sciences e Linguaggio e Cognizione della Laurea Magistrale in Scienze del Linguaggio, nelle attività caratterizzanti dei percorsi English and American Literary e Cultural Studies della Laurea Magistrale in Lingue e letterature europee, americane e postcoloniali, oltre che nelle attività affini e integrative dei percorsi English Linguistics e Filologico Editoriale della Laurea Magistrale in Scienze del Linguaggio. Il suo scopo è quello di fornire allo/alla studente/essa gli strumenti tecnici fondamentali per l'analisi computazionale e per il trattamento automatico della lingua.

Obiettivi dell’insegnamento sono:

- fornire allo/alla studente/essa le tecniche di base per l'analisi computazionale dei testi
- fornire allo/alla studente/essa le tecniche di base per l'estrazione automatica di conoscenza dal testo
- introdurre lo/la studente/essa all'utilizzo del linguaggio di Programmazione Python per il trattamento di dati testuali, con particolare attenzione ad alcuni suoi moduli quali stanza e gensim
- esercitare la capacità di formulare e testare ipotesi alternative
1. Conoscenza e comprensione
- familiarità con l'ambiente di programmazione Python e con i suoi moduli spanza e gensim
- familiarità con le più comuni tecniche di annotazione automatica del testo
- acquisizione delle tecniche di base per l'estrazione di informazione linguistica da corpora
- familiarità con i principali approcci all'estrazione e rappresentazione di informazione strutturata da testo

2. Capacità di applicare conoscenza e comprensione
- conoscenza delle caratteristiche e dei limiti dei più comuni approcci per il trattamento automatico del linguaggio, in modo tale da poterli sfruttare per la propria ricerca
- utilizzo dell'ambiente di programmazione Python per lo sviluppo di moduli per il trattamento automatico del testo
- capacità di avanzare, in maniera fondata e critica, proposte originali

3. Capacità di giudizio
- capacità di mettere in atto autonomamente strategie di rafforzamento della propria competenza tecnica
- sensibilità alle problematiche tecniche e deontologiche connesse all'analisi quantitativa ed automatica del linguaggio
- capacità di valutare ipotesi in competizione e operare sintesi tra ipotesi alternative

4. Abilità comunicative
- capacità di stesura di un testo scritto di carattere argomentativo su un tema di ricerca originale
- capacità di divulgazione delle principali teorie linguistiche ad un pubblico con un background scientifico variegato
- capacità di interazione con i pari e con il docente, in modo critico e rispettoso

5. Capacità di apprendimento
- capacità di acquisire facilmente dimestichezza con altri linguaggi di scripting (p.e. R, PERL, Matlab, Javascript, Julia, SQL)
- capacità di acquisire conoscenze utili per la gestione di problemi non direttamente collegati al trattamento automatico del linguaggio (p.e. per l'analisi statistica, per la creazione di siti web dinamici, per la gestione di database)
- capacità di acquisire dimestichezza con nuovi strumenti tecnologici per il trattamento automatico del linguaggio (p.e. sistemi di annotazione, tool di interrogazione di corpora)
Nozioni di base di linguistica generale (morfologia e sintassi).

Familiarità con l'uso del computer. Non è richiesta alcuna conoscenza pregressa di programmazione o di qualche software specifico.
1. Presentazione del corso / Introduzione al linguaggio Python
2. Primi passi con Python
3. Tipi di variabili
4. Manipolare dati testuali
5. Scrivere programmi strutturati
6. L'annotazione automatica dei corpora
7. Statistica descrittiva del testo / La legge di Zipf
8. Collocazioni e misure di associazione
9. Rappresentazione grafica di dati linguistici
10. Semantica Distribuzionale
11. Topic modeling
Sebbene gran parte dell'attività laboratoriale sia incentrata sul materiale didattico disponibile sulla piattaforma di e-learning di ateneo in formato Jupyter notebook, le seguenti letture forniranno allo/alla studente/essa una spiegazione più dettagliata dei concetti chiave del corso:

LETTURE DI RIFERIMENTO:

- M. Hammond (2020) Python for Linguists. Cambridge University Press
- D. Hovy (2021) Text Analysis in Python for Social Scientists. Cambridge University Press

LETTURE INTEGRATIVE:

- M. Baroni (2009) Distributions in text. In A. Lüdeling and M. Kytö (eds.), Corpus linguistics: An international handbook, Vol. 2, Mouton de Gruyter: 803-821. Available online at: http://sslmit.unibo.it/~baroni/publications/hsk_39_dist_rev2.pdf
- M. Davies (2015) Corpora: An introduction. In D. Biber and R. Reppen (eds.), The Cambridge Handbook of English Corpus Linguistics, Cambridge University Press: 11-31.
- S. Evert (2009) Corpora and collocations. In A. Lüdeling and M. Kytö (eds.), Corpus linguistics: An international handbook, Vol. 2, Mouton de Gruyter: 1212-1248 (sections 1-4). Available online at: http://www.stefan-evert.de/PUB/Evert2007HSK_extended_manuscript.pdf
- S.T. Gries and A. L. Berez (2017) Linguistic Annotation in/for Corpus Linguistics. In N. Ide and J. Pustejovsky (eds.), Handbook of Linguistic Annotation, Springer: 379-409. Available online at: http://www.stgries.info/research/2017_STG-ALB_LingAnnotCorpLing_HbOfLingAnnot.pdf
- A. Lenci (2018) Distributional Models of Word Meaning, Annual Review of Linguistics, 4: 151-171. Available online at: http://colinglab.humnet.unipi.it/wp-content/uploads/2012/12/annurev-linguistics-030514-125254.pdf
La verifica dell'apprendimento avviene attraverso lo svolgimento di una serie di esercizi di programmazione.

ESERCIZI DI PROGRAMMAZIONE (STUDENTI FREQUENTANTI)

Per gli/le studenti/esse che sono stati presenti almeno al 70% delle lezioni la verifica dell'acquisizione delle competenze informatiche avviene attraverso tre gruppi di problemi di programmazione che verranno assegnati ogni 4/5 settimane e che dovranno essere consegnati in formato telematico prima della scadenza indicata dal docente.

Il voto parziale sarà così calcolato:

- primo gruppo di problemi: 20% del voto parziale
- secondo gruppo di problemi: 40% del voto parziale
- terzo gruppo di problemi: 30% del voto parziale
- partecipazione all'attività didattica: per il calcolo di questa voce verrà chiesto agli studenti di consegnare, all'inizio di ogni sessione di laboratorio, gli esercizi di programmazione assegnati la settimana precedente. Gli studenti che non avranno cercato di rispondere ad almeno il 50% degli esercizi verranno penalizzati nella misura dell'1% del voto parziale per ogni notebook insufficiente o non consegnato (penalizzazione massima: 10% del voto parziale).

È facoltà degli/delle studenti/esse frequentanti decidere in qualsiasi momento di svolgere questa parte della valutazione con le modalità degli studenti non frequentanti. In questo caso, le prove in itinere già sostenute non verranno considerate per il calcolo del voto finale.

ESERCIZI DI PROGRAMMAZIONE (STUDENTI NON FREQUENTANTI)

Per gli/le studenti/esse non frequentanti la verifica dell'acquisizione delle competenze informatiche avviene attraverso un unico insieme di problemi di programmazione che dovrà essere consegnato in formato telematico prima della scadenza indicata dal docente.
Laboratori di apprendimento attivo. Ogni sessione sarà strutturata nel seguente modo:

- breve introduzione da parte del docente dei concetti chiave del nuovo gruppo di esercizi;
- svolgimento, da parte degli studenti, di esercizi di programmazione disponibili sulla piattaforma di e-learning di ateneo in formato Jupyter notebook.
Inglese
scritto e orale
Programma definitivo.
Data ultima modifica programma: 11/04/2022