Lezione 1
Introduzione alla linguistica computazionale
Prof Alessandro Lenci
Prof Felice Dell'Orletta
La linguistica computazionale è un ambito di ricerca interdisciplinare che riesce a combinare la linguistica, l’informatica, la scienza cognitiva, la psicologia e la matematica, e in cui i ricercatori hanno come obiettivo quello di applicare metodi scientifici e informatici per studiare il funzionamento del linguaggio umano, con un approccio innovativo.
Nella linguistica computazionale si tratta il linguaggio come un oggetto della natura che può essere studiato quantitativamente, computazionalmente, sfruttando algoritmi per studiare le proprietà della sua struttura e del suo utilizzo.
Un'altra area di interesse della linguistica computazionale è la creazione di applicazioni che servirebbero a dotare i computer di capacità pratiche per avere a che fare con il nostro linguaggio, la sua interpretazione e la comunicazione tramite quest’ultimo.
Applicazioni pratiche
Idealmente, le applicazioni per la comprensione del linguaggio utilizzano metodi molto diversi dagli esseri umani: SIRI, ad esempio, cerca di interpretare le nostre domande utilizzando algoritmi molto diversi da quelli che usiamo noi quando reggiamo una conversazione con un interlocutore.
La linguistica computazionale permette di affrontare ricerche di carattere linguistico attraverso:
- Metodi e strumenti informatici per la rappresentazione e gestione di grandi quantità di dati linguistici: si tratta quindi di una rappresentazione digitale del testo e della codifica e annotazione di informazioni linguistiche.
- Ricerche ed esplorazioni avanzate del testo: ricerche di informazioni testuali e dati linguistici, nonché la visualizzazione dell’informazione nel testo.
- Metodi matematici e statistici: analisi quantitative dei dati linguistici.
Le potenzialità “standard” del computer possono essere usate per la gestione e l’analisi dei dati linguistici, ma non bastano, poiché di base il computer non conosce il linguaggio naturale, ovvero non ha alcuna conoscenza riguardo alla sua struttura.
Un po’ di storia
La linguistica computazionale italiana è nata a Pisa nel 1950 circa, quando un gesuita dal nome di Padre Roberto Busa (1913-2011) convinse un editore di IBM di NY (Thomas Watson) ad analizzare testi con l'utilizzo di un computer a schede perforate, unico metodo disponibile al tempo.
In Italia i primi studi sono stati svolti a Pisa, che dedica alla linguistica computazionale un centro di ricerca al CNR (ILC-CNR). Un altro punto di riferimento per questa disciplina è l’AILC ovvero l’Associazione Italiana di Linguistica Computazionale (2014).
Siamo circondati di dati linguistici testuali. (BIG DATA): quando parliamo di BIG DATA, una percentuale molto significativa sono dati di realtà testuali (social, documenti, wikipedia, giornali online, libri): sono dati non strutturati, quindi quando abbiamo grandi quantità di testo sono generati da e fatti per essere compresi da esseri umani, ma con così grandi quantità di dati testuali occorrono molte persone che se ne occupino. Es: riconoscere le fake news. È facile riconoscere una notizia spam (prodotta automaticamente), dati ad esempio gli errori ortografici.
Quelle più complicate da riconoscere sono quelle simili alle notizie vere, perciò richiedono un'analisi più attenta.
Opinion mining
Tecniche utilizzate per analisi del marketing o analisi politica.
La linguistica computazionale è nata negli anni 50 con lo scopo di tradurre documenti russi relativi alla guerra fredda. Una delle prime applicazioni di una tecnica chiamata Information Extraction è stata utilizzata in documenti relativi al terrorismo.
Il trattamento automatico del testo è importante anche sul piano umanistico: in questo senso la linguistica computazionale è di diritto parte delle Digital Humanities, in quanto si impegna attraverso analisi testuale a comprendere i meccanismi del linguaggio umano.
Questi testi, essendo tantissimi, devono essere analizzati tramite tecniche automatiche e quantitative: attraverso analisi statistiche e quantitative possiamo estrarre informazioni potenzialmente utili per un'analisi linguistica in modo più veloce e funzionale.
Infatti cosa fa la linguistica computazionale per quanto riguarda l'analisi delle strutture linguistiche? Studia metodi per raccogliere, trattare dal punto di vista testuale, rappresentare grandi quantità di dati linguistici. Una volta che abbiamo testi digitalizzati propriamente dobbiamo avere metodi per cercare ed estrarre dal testo ciò che ci interessa ai fini dello studio.
Altri metodi matematici e statistici, poi, ci permettono di analizzare quantitativamente i dati linguistici.
Essenzialmente questi tipi di task non richiedono agli strumenti nessuna informazione su come funziona il linguaggio; quando facciamo un'analisi quantitativa del testo e contiamo le parole, non serve nessuna particolare informazione o abilità linguistica della macchina: sono normali metodi applicabili su qualsiasi dato.
Se però non abbiniamo queste normali capacità delle macchine ad una parziale conoscenza della struttura del linguaggio naturale il lavoro risulta inutile, visto che, come abbiamo già visto, il computer di base non conosce il nostro linguaggio, non ha alcuna conoscenza riguardo alla sua struttura.
Questo problema può presentarsi in caso di:
- Forme superficiali vs. lessemi: (navigare all'infinito e tutte le forme del paradigma).
- Ambiguità morfosintattiche (stato inteso come nome comune, o part. passato del verbo essere o part. passato del verbo stare).
- Ambiguità semantiche (un'unica parola con più significati semanticamente differenti).
Il problema è superare quell'apparente banalità: avere a che fare con una macchina che deve comprendere queste differenze e queste ambiguità ci fa rendere conto di quanto in realtà non sia banale.
Conoscenze linguistiche del computer
Quali conoscenze linguistiche deve possedere il computer?
- Articolare e decodificare i suoni di una lingua (fonetica articolatoria e acustica, fonologia, prosodia, ecc.).
- Conoscere le parole di una lingua, la loro struttura e la loro organizzazione (lessico e morfologia).
- Comporre le parole in espressioni linguistiche complesse (sintagmi, frasi, ecc.) (sintassi).
- Assegnare significati alle espressioni linguistiche semplici e complesse (semantica lessicale e composizionale).
- Usare le frasi nei contesti, situazioni e modi appropriati agli scopi comunicativi (pragmatica).
Natural language processing
Il Natural Language Processing (NLP) o Trattamento Automatico del Linguaggio (TAL) è ciò che cerca di dotare il computer di conoscenze linguistiche per progettare programmi e sistemi informatici. Si occupa di progettare applicativi di vari tipi (correttore ortografico - sistemi come SIRI) che possono renderlo in grado di assistere l'uomo in compiti linguistici, a seconda delle diverse strutture, contesti e forme in cui questo viene utilizzato.
Tipi di applicativi e funzioni:
- Correttori ortografici, grammaticali, ecc.
- Recupero “intelligente” di documenti (Information Retrieval).
- Riconoscimento automatico del parlato, Automatic Speech Recognition (ASR).
- Sintesi automatica della voce, Text-To-Speech (TTS).
- Estrazione automatica di informazione da testi, Information Extraction (IE).
- Interrogare documenti attraverso domande in linguaggio naturale, Question Answering (QA).
- Traduzione (semi)-automatica di testi, Machine translation.
- Interazione (conversazione) uomo-macchina multimodale, Chat Bot.
Quando si parla di NLP il computer deve avere tutte le conoscenze elencate in precedenza per poter lavorare correttamente.
Rapporto tra linguistica computazionale e IA
Il campo delle intelligenze artificiali (IA) è il cappello sotto cui si può inserire la disciplina della Linguistica Computazionale. Fino a 6, 7 anni fa, il termine IA andava evitato, poiché portava con sé un'accezione negativa, contrariamente ai giorni attuali, in cui si tratta di un termine di uso comune e che simboleggia il progresso tecnologico in maniera positiva. Il campo delle IA attrae infatti speranze di evoluzione, ma allo stesso tempo è sinonimo di minacce continue.
In realtà in qualche modo ci sono delle app che sono a tutti gli effetti applicazioni di IA:
- SIRI: riconoscere la voce e ci mette a disposizione la possibilità di dialogare con un dispositivo informatico.
- Strumenti come IPM Watson.
- Strumenti di traduzione automatica come GOOGLE TRANSLATE. (si basa su modelli di tipo statistico: Google in realtà non comprende intelligentemente il testo che deve tradurre, semplicemente utilizza statistiche di strutture di frase in una certa lingua per poi tradurli e restituirli in un’altra).
Ciò che ancora manca a questi strumenti e sistemi, anche da un punto di vista probabilistico, è la possibilità di conoscenza e di comprensione del contesto, fondamentale per una corretta comunicazione e utilizzo del linguaggio fra parlante e interlocutore; manca quindi una conoscenza di tipo semantico, che coincide più in generale con una conoscenza della realtà extralinguistica.
Ad esempio, manca la conoscenza degli idiomi (strutture idiomatiche), così come la conoscenza di frasi marcate, topicalizzate, più tipiche delle lingua parlata. La conoscenza e il metodo di lavoro di questi sistemi sono perciò molto fragili, e c’è pertanto ancora molto margine di errore nel modo in cui le macchine lavorano con il linguaggio naturale, poiché la lingua è intrinseca di strutture che magari sono statisticamente poco probabili, inusuali, ma ugualmente molto importanti, e serve ancora molto lavoro prima che le macchie possano interiorizzare, capire e restituire risultati corretti riguardo queste strutture, così come ovviare a queste mancanze linguistiche.
Se un dato non è presente o è presente in minima parte in un testo, questi dato non viene compresi dalla macchina, perciò essa dipende fortemente dalle statistiche e dagli algoritmi su cui lavora e svolge il task richiesto. Questi strumenti hanno già raggiunto notevoli capacità rispetto all'uso del linguaggio naturale, ma ci accorgiamo che la strada è ancora lunga, pur facendo già cose sorprendenti.
Deep Learning
Deep Blue e Watson (sistema di Question Answering) (da IBM): si tratta di un sistema di Question Answering che nel ebraico del 2011 sconfisse i campioni di Jeopardy!, un gioco televisivo dove i partecipanti dovevano rispondere a delle domande.
Watson aveva a sua disposizione centinaia di milioni di documenti scaricati, processati e indicizzati per permettergli di trovare le risposte corrette a determinati problemi e domande su qualsiasi argomento.
Watson ora fa parte del business di AI come strumento di ausilio ai medici per fare diagnosi mediche, quindi in un campo specifico e reale, sia per ragioni anche linguistiche (servono competenze per gestire una determinata variante linguistica).
Si tratta di un nuovo motore nel campo delle IA: sono le reti neurali, vale a dire un algoritmo di apprendimento automatico. Non è una cosa nuova di per sé, è solo la variante di algoritmi che sono sul mercato già dagli anni '80, ma che non sono mai usciti dai laboratori. Ciò che rende i Deep Learning così elevati in termini di prestazioni è l'enorme quantità a disposizione di dati.
“We don’t have better algorithms. We just have more data.” (Google’s Research Director Peter Norvig) "Non abbiamo migliori algoritmi, abbiamo soltanto più dati."
“The learning algorithms reaching human performance on complex tasks today are nearly identical to the learning algorithms that struggled to solve toy problems in the 1980s, though the models we train with these algorithms have undergone changes that simplify the training of very deep architectures [...] The age of 'Big Data' has made machine learning much easier” (Goodfellow, Bengio, Courville (2016), Deep Learning, MIT Press)
Film ispirati a questi argomenti: 2001 HER HAL e Samantha sono ancora lontani, ma molti applicativi di NLP sono ormai disponibili (anche commercialmente) come componenti di sistemi di AI: tutto questo ha un crescente impatto sociale, nonché tecnologico ed economico (Ingegneria del Linguaggio). La presenza e la disponibilità di nuovi strumenti dotati di “capacità linguistiche” ha permesso di metterli a disposizione per l’analisi dei dati linguistici e per l’ausilio nella gestione e nel trattamento dell’informazione.
Lezione 2
Dati linguistici: Elemento di base per l'analisi linguistica
I dati linguistici sono i prodotti del linguaggio che sono oggetto di un processo di analisi (computazionale) e che formano l’evidenza empirica per lo sviluppo di modelli e teorie linguistiche. Si studia come funziona il linguaggio, qual è la sua organizzazione, come viene usato, come viene appreso, ecc.
Il linguista computazionale raccoglie dati linguistici e usa metodi formali (logici, matematici, statistici, ecc.) e strumenti informatici per analizzare i dati raccolti e ricostruire l’organizzazione e struttura del linguaggio.
In particolare, quello che contraddistingue il linguista computazionale è proprio il metodo con cui tratta i dati per renderli conformi alle analisi. I metodi sono prevalentemente di tipo informatico, poiché volti a costruire programmi applicativi che siano in grado di elaborare e trattare i dati in modo da renderli simili al linguaggio umano.
Fonti dei dati linguistici
- Le “Intuizioni linguistiche” dei parlanti: Es. giudizi di grammaticalità, giudizi semantici, ecc. La frase “L’uomo correva velocemente” è grammaticale? La parola “cane” è più semanticamente simile a “gatto” oppure a “treno”?
- Il linguista computazionale sottopone un campione di persone a dei test il cui fine è evidenziare particolari proprietà delle strutture linguistiche (grammaticalità, semantica). Questi test rendono esplicita la conoscenza implicita che i parlanti hanno di una lingua. Ci interessa, infatti, la loro immediata intuizione, la quale permette di riconoscere e dare giudizi di grammaticalità e giudizi semantici.
- In molti casi, però, è importante ricordare che le nostre intuizioni di parlanti su determinati fatti linguistici non sono apolari, non sono come i booleani, quindi non esiste una risposta giusta e una sbagliata.
- Questi test, inoltre, non contengono giudizi metalinguistici: sono test che può fare un qualsiasi uomo e non necessariamente un linguista, purché sia un parlante di una determinata lingua oggetto di studio.
- I testi prodotti dai parlanti: Per testo si intende qualsiasi prodotto dell’attività linguistica dei parlanti elaborato o trascritto come sequenza di caratteri: lo scopo è esaminare le loro produzioni linguistiche spontanee, il loro utilizzo del linguaggio in molteplici contesti comunicativi. I prodotti del linguaggio sono tantissimi: si può trattare di una lezione, di un post, di una poesia, un sms: ogni contesto comunicativo è una produzione linguistica, cioè è traducibile graficamente in un testo analizzabile.
Differenza tra tipologie di dati linguistici
Le intuizioni linguistiche che si possono raccogliere tramite test sono tipicamente dati linguistici controllati: a priori viene scelta una serie di dati linguistici che viene poi controllata in base ai fattori/fenomeni che si vogliono analizzare in quel momento, perciò è giusto dire che il linguista costruisce dei dati a seconda del fenomeno che deve indagare. Quello che fanno i linguisti è quindi creare un contesto sperimentale e situazioni idealizzate.
I testi prodotti dai parlanti sono invece dati linguistici ecologici, ovvero prodotti in contesti reali e non appositamente per uso scientifico, ma semplicemente in contesti comunicativi. I dati linguistici sono quindi fortemente adattati ai vari contesti, nel loro "habitat naturali", e portano con loro tante cose che li rendono "sporchi" (es. errore ortografico in un SMS).
Questi due aspetti sono due lati opposti di una dialettica tipica della metodologia scientifica:
- Dati astratti dal loro contesto reale di uso (troppo perfetti), che perdono la loro naturalezza.
- Dati che, al contrario, sono "sporchi", ma naturali.
In linguistica questo problema è particolarmente sentito, poiché ci sono diversi modelli e teorie del linguaggio che a loro volta hanno privilegiato un tipo o l'altro di dati linguistici. Resta il fatto che sono importanti entrambi.
Dati linguistici controllati: Le intuizioni linguistiche sono preferite da un approccio linguistico formale “razionalista” di derivazione chomskiana (Grammatica Generativa) e per la psicolinguistica. In questo caso l’obiettivo dell’indagine linguistica è ricostruire le conoscenze che un parlante «ideale» ha della lingua (la sua competenza).
I fenomeni tipici dell’uso linguistico (chiamati performance) sono considerati “rumore” da cui è necessario fare astrazione, motivo per cui si preferisce eseguire un’analisi che mette in primo piano i dati linguistici controllati. Questo fatto porta al fenomeno dei cosiddetti “Esperimenti linguistici “in vitro”: spesso, infatti, l’eccessivo grado di idealizzazione e astrazione porta a differenze notevoli con quello che sarebbe l’uso effettivo del linguaggi. A questo proposito, si presenta una forte necessità di raccogliere una grande quantità di giudizi per avere dati affidabili.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto esame Linguistica Computazionale, prof. Lenci, libro consigliato Testo e Computer di A. Lenci, S. Montema…
-
Linguistica
-
Linguistica
-
Linguistica