Linguistica computazionale
La linguistica computazionale (LC) è quella parte dell’intelligenza artificiale che si occupa del linguaggio naturale (linguaggio umano) e di simulare il comportamento linguistico dei parlanti, cioè svolgere task come:
- Tradurre un testo da una lingua sorgente ad una lingua target (machine translation → il primo task che si è cercato di risolvere)
- Rispondere a domande (question answering)
- Identificare la presenza di opinioni o particolari informazioni (opinion mining, sentiment analysis, information extraction)
- Rispondere a comandi vocali
L’Artificial Intelligence nasce nel '56, contestualmente alla nascita dei PC e a quella della LC. L’espressione fu coniata da un matematico (John McCarthy) e il suo scopo è far fare alle macchine delle cose che richiederebbero l’intelligenza se fossero fatte dagli uomini. Tra i primi a parlare di AI c’è Turing, che formulò il famoso test di Turing (o imitation game).
AI nella cultura popolare
Molti libri e film hanno proposto macchine dotate di capacità di linguaggio e ragionamento simili a quelle umane, come: “2001 – Odissea nello Spazio” [la macchina è capace di pensare e comunicare come l’uomo]; “Blade Runner” [le macchine sono replicanti, ossia esseri simili agli uomini nell’aspetto e nella capacità di provare emozioni]; “Interstellar” [l’intelligenza artificiale dialoga con i protagonisti].
Natural Language Processing
Dato che la LC si occupa di simulare il comportamento linguistico è sinonimo di Natural Language Processing; in realtà la LC si occupa di costruire risorse linguistiche che contengono la conoscenza di cui i sistemi necessitano per funzionare.
Perché ci serve la linguistica computazionale?
Esistono troppe informazioni perché gli esseri umani possano accedere a tutte; gran parte di esse sono in forma testuale (linguaggio naturale) e le troviamo nei giornali, nei social media, nelle leggi, etc. Questa informazione deve poter essere gestita in forma di big data ed è questo il motivo per cui la LC è importante. Oggi, abbiamo diversi esempi di applicazione della LC: smartphone, navigatori rispondono ai comandi vocali; motori di ricerca trovano i documenti che ci servono; correttori ortografici correggono quello che scriviamo o completano le parole mentre scriviamo.
Linguistica umana vs. linguistica computazionale
Ciò che è facile per un umano potrebbe essere difficile/impossibile per un computer, e viceversa. Ad esempio, leggere, tradurre e riassumere milioni di pagine è impossibile in tempi brevi per un umano, ma fattibile in tempi brevi per un pc; comprendere il contenuto di un romanzo è facile per un umano, ma non fattibile per un pc; scoprire cosa pensano di un politico gli utenti Twitter è facile per un umano, fattibile per un pc. “Fattibile” significa che il pc riesce a svolgere il task, ma in maniera approssimativa.
Dati strutturati vs. dati non strutturati
Come si vedrà nel doc.4, il computer ha difficoltà ad accedere a dati eterogenei e non strutturati, al contrario di un umano, perché non è capace di distinguere l’informazione dal rumore. Un task di NLP è la simulazione di un comportamento linguistico umano che comporta una forma di comprensione del contenuto linguistico del testo. Tuttavia, il modo in cui un computer “comprende” un testo è molto diverso dal modo in cui lo comprende un essere umano; per questo, per costruire un sistema di NLP è necessario conoscere il comportamento linguistico che si vuole simulare.
Nel passato si è sviluppata l’idea di cervello come macchina e si è pensato alla possibilità di costruire macchine in grado di pensare e di esprimersi in linguaggio umano. MA: cervello umano e pc non fanno le stesse cose nello stesso modo, infatti alcuni problemi linguistici sono facili per gli umani, ma molto difficili per i pc, come:
- Soluzione di anafore: “The soldiers killed the women. They (=essi/esse) were buried (sepolti/sepolte) next day”. Chi è stato sepolto? I soldati o le donne? È necessario risolvere l’anafora per arrivare a una traduzione.
- Identificazione di significati in base alla conoscenza del mondo: “The box was in the pen” → “La scatola era nella penna”; occorre fare riferimento alla conoscenza del mondo, in cui le scatole sono più grandi delle penne, per capire che “pen” va tradotto con “gabbia”. Una macchina non ha conoscenza del mondo!
- Rispetto di norme conversazionali: “Ciao Maria, come stai? Dimmi qualcosa” → “Ciao Giorgio. Sto bene. Qualcosa”. La risposta viola un principio conversazionale, che un umano, invece, avrebbe rispettato.
Teorie all’origine della LC
Esiste una grammatica universale?
Se esistesse una struttura basilare comune a tutte le lingue, allora esse si potrebbero trattare con teorie e sistemi simili. Secondo la teoria della Grammatica Universale (Chomsky) esistono principi grammaticali condivisi da tutti gli esseri umani in quanto innati. Chomsky propose questa teoria per spiegare l’acquisizione del linguaggio in presenza di stimoli limitati (povertà dello stimolo): il bambino può imparare bene e rapidamente la sua lingua madre perché ha già innata parte della conoscenza necessaria a usare il linguaggio. L’esposizione ad una particolare lingua naturale completa quella parte innata della conoscenza della lingua.
Inoltre, la GU spiega che chi parla fluentemente una lingua sa quali espressioni sono accettabili e quali inaccettabili in quella lingua, anche se a questa persona non vengono proposte espressioni inaccettabili o se vengono fatte occasionalmente le espressioni non corrette non vengono segnalate come tali.
Chomsky, che propone l’idea dell’innatismo e universalità della grammatica, propone un’idea già presente nel pensiero di Bacone (XVII secolo) e di molti filosofi del linguaggio, secondo cui il linguaggio sta dentro la mente umana. Le idee di Chomsky e della scuola generativista hanno influenzato pesantemente la LC! Secondo la tradizione della corpus linguistics la GU non esiste, ma quando affrontiamo problemi relativi alla LC dobbiamo per forza pensare che esista, perché per costruire degli algoritmi ci si deve basare su degli assunti teorici. Gli approcci interlingua della MT si basano sulla possibilità di formulare principi universali per tutte le lingue esistenti; l’interlingua è un’astrazione da tutte le lingue e si è rivelato fallimentare perché è difficile formulare un’interlingua sufficientemente astratta e, allo stesso tempo, rappresentativa.
Il generativismo ha prevalso nella LC fino alla fine del ‘900, determinando la nascita di approcci rule-based. Dalla fine del ‘900 si sono imposti orientamenti basati su dati empirici e statistici ispirati ai corpora, determinando la nascita degli approcci corpus-based.
Competence vs. performance
Un’altra distinzione di Chomsky è quella tra competence e performance:
- Competence: capacità linguistica idealizzata; fa parte delle proprietà mentali e psicologiche umane; può essere osservata solo tramite l’introspezione e quindi non fa riferimento a evidenze empiriche. Ha a che fare con la dimensione soggettiva del parlante come singolo e non considera il fatto che sia inserito all’interno di una comunità.
- Performance: uso del linguaggio nella produzione di frasi nella comunicazione quotidiana. Può essere studiata solo tramite osservazione diretta delle produzioni dei parlanti e comporta il riferimento a evidenze empiriche. Tiene conto della dimensione della comunicazione e di aspetti ad essa legati, come la presenza di rumore.
In passato i sistemi di NLP tenevano conto solo della competence, senza considerare il contesto della comunicazione; oggi, invece, considerano la performance e considerano il contesto comunicativo, e tollerano gli errori dei parlanti. Chomsky si focalizzò più sulla competence e questo influenzò la LC, dove fino al XX secolo non si utilizzarono approcci derivanti dalla performance. Egli criticò le teorie basate sulla performance, come la corpus linguistics, che studia il linguaggio tramite la raccolta di campioni che lo rappresentino: i corpora (=insieme di dati linguistici prodotti dai parlanti).
Le critiche di Chomsky e le risposte alle critiche
- Un corpus può rappresentare un linguaggio? No, perché il numero di frasi di un linguaggio è infinito, mentre un corpus ne contiene un numero finito, oltre che casuale. Risposta: Un corpus può adeguatamente rappresentare un linguaggio se contiene un campione statisticamente significativo di esso. Non occorre che contenga tutte le frasi di un linguaggio, ma una sua porzione abbastanza ampia da contenere esempi di tutte le strutture di tale linguaggio.
- Perché studiare il linguaggio tramite osservazione diretta invece che introspezione? Nella nostra mente abbiamo tutte le strutture corrette del linguaggio, mentre lo stesso non si può dire per un corpus. Risposta: Solo l’osservazione diretta ci può rendere conto di come il linguaggio è realmente usato, del fatto che i parlanti riescono a comunicare tra loro nonostante errori e rumore. Inoltre, solo l’osservazione diretta ci mostra anche quanta importanza statistica ha ogni struttura (i.e. quanto è rara o frequente) e quanto il linguaggio varia da un parlante all’altro.
Assunti fondamentali della LC
- Il trattamento del linguaggio richiede conoscenza linguistica: ciò è stato sottovalutato nella costruzione dei primi sistemi di NLP. In seguito, molta attenzione è stata posta alla rappresentazione e acquisizione della conoscenza linguistica. Il sistema di NLP assume che la conoscenza sia formalizzata in regole, ma il modo in cui esse vengono ottenute incide su vari aspetti.
- Teorie e sistemi vanno di pari passo: per sviluppare un sistema di NLP si parte da una teoria di riferimento che cerca di spiegare il comportamento linguistico e guida la formulazione degli algoritmi. Viceversa, un sistema può essere sviluppato per validare una teoria linguistica.
- La conoscenza linguistica si può organizzare in livelli gerarchici: la LC ha sempre evidenziato la presenza di relazioni gerarchiche tra i diversi aspetti della lingua (sintassi, semantica, morfologia, etc).
-
Appunti di Intelligenza artificiale
-
Appunti di Intelligenza artificiale
-
Appunti Informatica per umanisti
-
Appunti di intelligenza artificiale