Ex.2 Analisi Computazionale di un Corpus per lo Studio di Fenomeni Linguistici

Esercizio incentrato su metodologie NLP, modellazione linguistica e riflessione critica sul trattamento computazionale del linguaggio:


Titolo: Analisi Computazionale di un Corpus per lo Studio di Fenomeni Linguistici

Obiettivi formativi:

Applicare tecniche di elaborazione del linguaggio naturale (NLP) a dati linguistici.

Costruire e interrogare un corpus annotato.

Valutare criticamente gli strumenti NLP alla luce delle teorie linguistiche.


Consegna dell’esercizio

Scegli o costruisci un corpus (dimensione minima: 50.000 token) coerente per ambito e varietà linguistica (es. italiano giornalistico, letterario, parlato trascritto, social media, ecc.). Svolgi le seguenti attività:


  1. Preparazione e annotazione del corpus

Descrivi il dominio, la varietà linguistica, il genere testuale e il tipo di dato.

Effettua le seguenti operazioni di preprocessing:

Tokenizzazione e normalizzazione

POS tagging e lemmatizzazione (es. con spaCy, UDPipe o Stanza)

Parsing dipendente o costituente

In alternativa (o in aggiunta), utilizza un corpus già annotato in formato CoNLL-U (es. UD Treebanks) e adattalo alle tue finalità.


  1. Analisi linguistica computazionale

Scegli uno (o più) dei seguenti assi di indagine:

Morfosintassi: distribuzione di categorie grammaticali, ambiguità lessicale o tagger errors.

Sintassi: schemi ricorrenti, misure di complessità sintattica, dipendenze.

Lessico: misure di densità e ricchezza, distribuzioni di lemma, analisi TF-IDF.

Semantica computazionale: Named Entity Recognition, word embeddings, topic modeling.

Pragmatica/dialogo (se corpus dialogico): turni, marcatori discorsivi, atti linguistici computazionalizzati.


  1. Modellazione e visualizzazione

Implementa script in Python o R per estrarre pattern, calcolare statistiche e generare visualizzazioni (matplotlib, seaborn, spaCy displaCy, networkx, ecc.).

Crea almeno due visualizzazioni significative (reti sintattiche, istogrammi, mappe semantiche, ecc.).

Spiega il processo e le scelte metodologiche.


  1. Discussione critica

Redigi un saggio (1000–1500 parole) in cui:

Interpreti i risultati ottenuti dal punto di vista linguistico.

Rifletti sui limiti e i bias dello strumento NLP adottato (ad es. coverage del modello, errori sistematici, disallineamenti tra teoria e computazione).

Proponi estensioni o miglioramenti (es. training di modelli, uso di dizionari lessicali, risorse semantiche come WordNet o BabelNet).


Strumenti suggeriti

Python: NLTK, spaCy, Stanza, UDPipe, sklearn, matplotlib, seaborn

Corpus linguistici: Universal Dependencies, ItWac, TUT (Turin University Treebank), CORIS/CODIS

Visualizzazione: displaCy, seaborn, matplotlib, Gephi (per grafi sintattici)


Consegna finale

Una cartella compressa con:

Il corpus (o subset) annotato e documentazione

Script di analisi/commentati o notebook Jupyter

Le visualizzazioni (formato PNG/SVG o integrato)

Il saggio critico in PDF


Criteri di valutazione

Accuratezza tecnica e replicabilità (30%)

Aderenza linguistica e solidità delle ipotesi (30%)

Qualità delle visualizzazioni e dell’interpretazione (20%)

Capacità critica e riflessiva (20%)

Codice sorgente per ipynb

Contiene un workflow base con spaCy per:

  • analizzare un testo italiano,
  • visualizzare la struttura sintattica,
  • estrarre i lemmi più frequenti.