
































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
appunti di lezione con slide integrate. voto preso 28/30
Tipologia: Dispense
1 / 40
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

































ESAME: 1 ORALE OBBLIGATORIO (VALE 10 su 30) SCRITTI: 2 FACOLTATIVI 7 aprile aula 522 10:30 (sulle lezioni fatte finora) e l’altro il 19 maggio (VALE 20 su 30) 20 domande chiuse a scelta multipla l’uno (no penalità) (si fa la media tra i due scritti e si partirà con quel voto per l’orale es. 12/20 e 16/20 = 14/20).
«This book is about a new interdisciplinary field variously called computer speech and language processing or human language technology or natural language processing or computational linguistics. The goal of this new field is to get computers to perform useful tasks involving human language» -D. Jurafky & J. H. Martin La linguistica computazionale è la disciplina che si occupa di rendere I computer in grado di svolger dei compiti utili che coinvolgano il linguaggio naturale umano. La linguistica computazionale coinvolge il sapere di diverse discipline come la matematica, l’intelligenza artificiale, l’informatica… è interdisciplinare. D. Jurafky & J. H. Martin la definiscono “ nuova ” ma, in realtà, questa disciplina esiste almeno fin dal dopoguerra. È l’interazione tra uomo e computer , basata sul linguaggio naturale, ovvero quello che parliamo ogni giorno fra noi. Questa disciplina fa parte della linguistica , ovvero la scienza che studia la lingua e tutto ciò che c’è in comune tra le lingue e le loro diversità. La linguistica generale , una branca della linguistica, si occupa di che cosa sono, come sono fatte e come funzionano le lingue.
disposizione. Le lingue (naturali) sono una realizzazione pratica del linguaggio, sono tutti i sistemi linguistici esistenti ed esistiti, ed usati da un qualche gruppo sociale, sono manifestazione specifica del linguaggio verbale umano. Per un linguista generale non c’è nessuna differenza tecnica tra una lingua ed un dialetto. Perché studiamo il linguaggio? Perché è interessante, è una caratteristica propria dell’uomo. Le lingue sono sistemi di comunicazione decisivi. Capire come funzionano è una sfida scientifica fondamentale. Perché è utile, le lingue sono cruciali per comunicare. Capirne i meccanismi significa servirsene meglio. I modelli (linguistici): nel linguaggio scientifico, un modello è una rappresentazione concettuale astratta e semplificata di un fenomeno. Caratteristiche di un modello: Serve per spiegare un fenomeno che è avvenuto. Fare previsioni riguardo ad un fenomeno.
Deve saper generalizzare : estrarre tendenze dai casi particolari a partire dai quali è stato costruito che possano spiegare/predire i casi ancora ignoti. Ogni modello Modello formale vs Modello informale : Formale : Espresso in linguaggio formale : numero finito di simboli e di regole di combinazione; Interpretabile indipendentemente dal contesto; Può essere usato da una macchina. Informale : Espresso in un linguaggio naturale o attraverso segni interpretabili; Il lettore umano ha bisogno di un contesto per interpretarlo; Spesso servono anche dei commenti , o spiegazioni esplicite. Che modelli si utilizzano in linguistica? Qual è il loro ruolo? I dizionari, che astraggono e semplificano le parole che utilizziamo. La linguistica computazionale è capace di fare la lemmatizzazione : tutte le forme diverse della stessa parola (es. camminare/camminando/cammina). La grammatica è un modello informale, infatti: È una versione in scala di un fenomeno: schematizza la lingua con un insieme di enti, categorie e regole combinatorie; È esplicativa e predittiva (prevede la creazione di enunciati ben formati); Può essere informale (libro di grammatica), ma esistono anche grammatiche formali. Cosa vuol dire “computazionale”? Cosa sono i modelli computazionali? Linguaggio di programmazione : numero limitato di simboli, non cambia significato in base al contesto, serve per programmare un computer; si distingue da un linguaggio naturale perché il linguaggio naturale è estendibile e deve essere necessariamente contestualizzato per essere capito. “ Computare ” significa calcolare , e “ computazionale ” è il termine usato per tutte quelle discipline che usano la capacità di calcolo dei computer per svolgere ricerche, eseguire compiti ed effettuare previsioni. Questi passaggi sono indipendenti dalla persona che li esegue, sono sempre uguali e sono meccanizzabili (li può eseguire una macchina)! Alan Turing : Negli anni ‘30 lavora su un problema matematico: esiste un algoritmo generale che, dato un enunciato matematico, può sicuramente
(contemporaneamente a Church) dimostrò che tale algoritmo non può esistere. Algoritmo : una procedura che consiste in una sequenza di istruzioni ben definite, e che consente di eseguire un’operazione in un numero finito di passi. La procedura per eseguire una moltiplicazione o la ricerca del percorso più breve tra 2 punti sono un esempio di algoritmo.
Per un computer, un testo è semplicemente un tipo di dato , rappresentato come una sequenza di numeri, secondo un «codice» (che chiamiamo codifica ). Questa rappresentazione numerica può essere memorizzata nella memoria, o elaborata dalla ALU attraverso operazioni aritmetiche e logiche su questi dati (come: conversione di maiuscole in minuscole, ordinamento alfabetico, crittografia…). Un computer memorizza ed elabora l’informazione come una sequenza di simboli che possono assumere solo due valori: 1 e 0.
Perché un testo (o un video, un’immagine, un numero) sia memorizzabile e analizzabile da un computer, deve essere convertito in una sequenza di bit. I simboli usati per rappresentare un testo sono chiamati caratteri , e includono lettere, numeri, spazi e segni di punteggiatura. Tale operazione di conversione si chiama codifica.
Affinché i testi siano leggibili su qualsiasi computer, i caratteri devono essere codificati secondo uno standard condiviso. ASCII : L’ American Standard Code for Information Interchange (ASCII) è stato il primo standard per la codifica dei caratteri. Stabilito nel 1963 , ancora oggi è il set di riferimento sulla base del quale sono state create successive estensioni. Ogni carattere è espresso da 1 byte , ma solo 7 bit sono usati per codificare caratteri ( max 128 caratteri ). Il set è sufficiente per interpunzione, caratteri speciali (fine riga, a capo, tab..), lettere maiuscole e minuscole usate per l’inglese. Per gli alfabeti servono le estensioni: ISO-8859 : standard che estende ASCII con altri 128 caratteri (usando 8 bit ); esistono diverse estensioni ISO-8859-1 (Latin 1) ISO-859-5: cirillico Vantaggi e svantaggi : Compatibile con ASCII (👍) I vari ISO-8859 sono incompatibili tra di loro (👍), infatti il code point «200»: «È» in ISO-8859-1 (Latin 1) «Ш» in ISO-8859-5 (Cirillico) Unicode: Unicode è lo standard universale per rappresentare caratteri ed emoji. Attualmente (v. 15) include 161 alfabeti , 149.186 caratteri e 3.664 emoji. Definisce uno spazio da 0 a 1.114.111 caratteri , organizzati in piani. Il più usato è il Basic Multilingual Plane (BMP), con i primi 65.536 caratteri. Unicode non è una codifica , ma un sistema che associa caratteri a numeri! Per «tradurre» questi numeri in bit si usano diverse codifiche come: UTF-8 e UTF-. Modello linguistico computazionale : è un modello capace di rappresentare la conoscenza linguistica e il funzionamento del linguaggio; sa schematizzare e quindi (potenzialmente) replicare le interazioni basate sul linguaggio naturale umano , ad es. tra parlanti che conversano, o tra un lettore ed un testo scritto… Un modello computazionale è un modello che può essere usato da un computer , integrato in un programma eseguibile, così da rendere il computer capace di interagire con e attraverso il linguaggio. Cosa sappiamo fare con il linguaggio? «Comunicare» significa tante cose! Anche quando vogliamo svolgere un compito «semplice» (ad es. scrivere una lettera per candidarci ad un posto di lavoro) ci sono tanti aspetti che coinvolgiamo nella nostra comunicazione (aspetti formali, aspetti sociali, aspetti estetici…). NLP – Natural Language Processing : o Trattamento Automatico del Linguaggio. Campo di ricerca interdisciplinare che si occupa di creare modelli e programmi in grado di svolgere dei compiti nei diversi ambiti di interazione tra macchina e linguaggio. L’obiettivo centrale della Linguistica Computazionale è quello di sviluppare modelli computazionali della lingua , cioè modelli del
Questa applicazione, invece, interagisce con il linguaggio naturale! Per funzionare, deve analizzare le parole del messaggio e riconoscere quali rappresentano nomi di località. Inoltre, in caso di ambiguità (ad es. «Alessandria») deve decidere quale luogo rappresentare sulla mappa! Tutti compiti (task) propri del NLP… Se sono coinvolti dati testuali espressi in linguaggio naturale (test, frasi, parole nella lingua che le persone parlano tutti i giorni) e se il nostro scopo è analizzarne il contenuto o gli aspetti formali, allora può essere un compito che riguarda il NLP. Esempio di domanda: Il modello si propone di: 1. analizzare il contenuto di una serie di testi scritti in linguaggio naturale 2. classificare i testi in base a un aspetto di tale contenuto. Quindi, sì, si tratta di un’applicazione dell’NLP! I task si evolvono: la lista dei task non è fissa: è molto varia e in continua evoluzione. Alcuni di questi task sono nati o si sono imposti grazie allo sviluppo di nuove forme di comunicazione. Ad esempio, i social media hanno portato in primo piano i temi (non certo nuovi) dei comportamenti offensivi, manipolatori, o violenti. La linguistica e le lingue naturali La linguistica è lo studio scientifico delle lingue ma anche dei linguaggi. Il linguaggio è la facoltà di associare due ordii di entità: Contenuto : ciò che voglio dire. Espressione : l’espressione acustica/sonora che voglio esprimere. L’azione di parlare coinvolge una serie di organi del corpo umano che non nascono con l’obbiettivo di parlare. La linguistica è una disciplina astratta, si basa sull’ astrazione : Astrae regolarità e principi. Crea modelli del suo oggetto. Regole, strutture e gerarchie che devono essere supposte e spiegate: il parlante parla senza saperle. Queste regole devono avvicinarsi il più possibile alla realtà dei fenomeni. Identifica unità. Ad esempio la ”o” di albero nell’italiano da sola non esiste, bisogna prendere il morfema (-o) e aggiungerci una radice (alber-). L’uomo è capace di semiopoiesi , l’uomo è utente e formatore di codici. ✓ x
La lingua è un codice (un sistema di segni) comune a un emittente (codifica) e a un ricevente (decodifica). Qual è la differenza rea linguaggio umano (lingua) e linguaggio animale? Il linguaggio animale funziona a segnali, comunica in modo fortemente contestuale, non può parlare del futuro o del passato. Le lingue naturali portano con loro il punto di vista dell’utente: Feedback completo (autocorrezione). Spiazzamento (argomenti distanti nel tempo e nello spazio). Riflessività / capacità metalinguistica. Prevaricazione (si può mentire). Narrativa del codice. Codici primari e secondari La lingua (orale) è un codice primario , la scrittura è un codice secondario. Un codice secondario ha per contenuto l’espressione di un altro codice. Es. Codice primario: /’kane/ Codice secondario: Studiare la lingua La lingua può essere studiata come codice , cioè sistema organizzato di: Elementi di comunicazione: (unità di significato). Elementi sonori (che ne permettono la realizzazione concreta) [nel caso della lingua dei segni: elementi gestuali]. Regole (fono-/morfo-/sin-)tattiche per creare messaggi strutturati. Caratteristiche delle lingue naturali Discretezza : il linguaggio umano è discreto, che discrimina che crea degli elementi che hanno un inizio e una fine, gli altri sono continui (es. il linguaggio delle api). Ad esempio, un orologio analogico è continuo ed un orologio digitale è discreto. Ricorsività : il linguaggio umano è ricorsivo, che mi consente di espandere infinitamente un enunciato. Es. Maria gioca e canta e suona e ride e si diverte e… Dipendenza dalla struttura : le frasi di una lingua naturale sono molto complesse rispetto ai linguaggi informatici. I codici con stand-by possono interrompere il segnale principale, ad esempio attraverso la sintassi. Es. Luigi, dopo aver parlato con me, è andato via subito, “dopo aver parlato con me” viene messo in stand-by, definito “inciso”, la frase senza l’inciso ha ugualmente senso. La doppia articolazione : Prima articolazione : monemi - unità minime di prima articolazione, costituite da forma fonica + significato. Es. aranc-in-i Seconda articolazione : fonemi - unità minime di seconda articolazione, segmenti in cui si possono suddividere i monemi. Es. a-r-a- n-c-i-n-i Codice articolato (la lingua è un codice doppiamente articolato) Si può combinare gli elementi Si può sfruttare la posizione reciproca
La morfologia studia i meccanismi di formazione e di modifica delle parole. Questi meccanismi consentono: economia, espansione illimitata, la sincronizzazione tra emittente e ricevente. Parole: modificabili (fare, scienza, bello…). invariabili (ma, e…). Classi di modificazione morfologica Flessione FARE: faccio, facciamo, faranno, facendo… Derivazione FARE: contraffare, rarefare… Composizione FARE: falegname Composizione: processi attraverso cui due parole si saldano tra loro per dar luogo a una terza parola. I morfemi : si ottengono tramite alla segmentazione della catena sintagmatica. Come si segmenta? Sono l'unità elementare nel sistema delle forme grammaticali. I morfemi possono essere aggiunti, inseriti o premessi ai temi delle parole, distinguendosi così in suffissi, infissi, prefissi. Si confrontano più parole e le si scompongono in morfemi (che sono ricorrenti e tendenzialmente stabili dal punto di vista fonologico). Tipi di morfemi: Morfemi lessicali : buon-, cortes-, part-, … Morfemi grammaticali : -o, -mente, -ir-, … Organizzazione morfologica concatenata: morfema lessicale + morfema grammaticale. Il morfo è la forma concreta che assume un morfema. Gli allomorfi sono le diverse forme che un morfema assume e che non determinano cambiamenti nel suo significato. Morfema negazione: In-sano -> morfo in- Im-pensabile -> morfo im- Ir-realizzabile -> morfo ir- Il-logico -> morfo il- Differenza tra parola e morfema: La parola divide in una base o radice che veicola il significato lessicale della parola stessa, e una parte variabile che indica genere e numero. Il morfema veicola il significato grammaticale. Ricordiamo che il morfema è l'unità più piccola che porta significato grammaticale. La tipologia linguistica Si parla sia di meccanismi di: flessione, agglutinazione, isolanti; che possono comparire in tutte le lingue come meccanismi in sé, sia di lingue flessive, agglutinanti e isolanti , sulla base di classificazioni tipologiche che guardano al prevalere di uno di questi meccanismi grammaticali. Lingua flessiva (italiano) : in una lingua flessiva i vari morfi si aggiungono alla parola, che però non resta invariata come nel caso dell’agglutinazione; non vi è una parola base, ma una ‘radice’ lessicale che non può mai esistere in modo indipendente, cioè senza un qualche morfo aggiunto. I vari morfi possono portare un’informazione grammaticale univoca oppure no: ad es., il morfo – i
del plurale porta un’informazione univoca {plurale}, ma il morfema –iamo del verbo sintetizza più informazioni grammaticali (cioè {plurale + prima persona
segmentare un testo in unità fondamentali, senza quasi pensarci. Per noi è un’operazione triviale. Un computer non possiede queste nozioni e non è in grado da solo di svolgere questa operazione.
Le disgiunzioni: Lettere fra parentesi quadre [] Intervalli (range) [A-Z] Per cosa usiamo le regex? Trovare: identificare tutte le possibili varianti di una stringa (e.g. /wom[ae]n/ troverà sia «woman» sia «women»). Sostituire: posso «ripulire» un testo regolarizzando le varianti, cancellando informazioni non necessarie (es. numeri di pagina), correggendo errori comuni (spazi multipli).
Le regex individuano classi di caratteri: non individuano la parte del discorso di una parola, non possono sciogliere un acronimo, non disambiguano il senso di una parola, etc. /[Uu]n|[Uu]na|[Uu]n'\b/ troverà tutte le forme dell’articolo determinativo, ma non «sa» che queste forme sono articoli! Esercitazione da fare La valutazione: processo attraverso cui verifichiamo (in modo replicabile e documentato) quanto bene un modello esegue il task per cui è stato progettato. Può essere qualitativa o quantitativa. La valutazione quantitativa si basa su delle metriche che permettono di calcolare le performance del modello. Precisione e richiamo (recall) Precisone: veri positivi predetti divisi per la somma di tutti i positivi predetti (veri e falsi). La precisione misura la quantità di autentici positivi su tutti i positivi predetti. Richiamo: veri positivi predetti divisi per la somma di tutti i positivi previsti (veri positivi + falsi negativi). Il recall è più alto quanto più i falsi negativi sono ridotti. Punteggio F1: media armonica tra precisione e richiamo. Serve a dare un bilancio complessivo tra precisione e recall. Esempi:
Il pattern [Uu]n[ao']? trova 13 risultati, ovvero: 7 veri positivi 6 falsi positivi 0 falsi negativi Il pattern [Uu]n[ao'] trova 3 risultati, ovvero: 3 veri positivi 4 falsi negativi
problemi. Funzionava in realtà con un sistema molto semplice di regole e pattern Nel corso della storia poi si sono tentati due approcci:
1. Probabilistici Basati sul calcolo delle probabilità delle sequenze 2. Neurali Basati sulle architetture delle reti neurali, tra cui i transformer P (bisonte | ho talmente fame che mi mangerei anche un) come si calcolano le probabilità? Entrambi gli approcci si basano su un’idea: i modelli apprendono a stimare le probabilità studiando una grande quantità di dati linguistici prodotti nel loro habitat naturale; ovvero molti testi naturalmente prodotti dai parlanti di una lingua Corpus = collezione di testi selezionati e organizzati in maniera tale da soddisfare specifici criteri che li rendono funzionali per le analisi linguistiche. Tali criteri servono ad assicurare che il corpus sia rappresentativo (campione che rappresenta sufficientemente bene l’intero insieme di possibili produzioni linguistiche in una data lingua o in un registro di una data lingua). Oggi, i corpora disponibili online superano il miliardo di token Probabilità di un evento semplice Numero degli esiti considerati: Numero degli esiti possibili Probabilità di una parola in un contesto Numero delle occorrenze della parola nel contesto: Numero totale delle occorrenze del contesto ESEMPIO Pinocchio: Orizzontale quante volte le parole ricorrono? Verticale numero di parole che compaiono almeno una volta? 3000 parole compaiono una volta sola (è la grandissima maggioranza) Nel 1939, George Zipf ha messo delle parole su un grafico a seconda di quanto erano presenti “Legge di Zipf” Quanto più un corpora è grande, tanto più si esprime questa legge. Frequenza (di una parola) = costante (frequenza della parola più frequente): ranking (numero della parola) N- gram model 2 ipotesi di partenza: Scompongo in una serie di moltiplicazioni Assunto di Markov = diminuisco la lunghezza della frase di partenza Questi N-gram model sono sequenze di n elementi consecutivi estratti da un testo N = quanti token prendo in considerazione Bigramma (finestra di due parole) / trigramma (finestra di tre parole) MLE = Maximum Likelihood Extimation Per calcolare la probabilità di un n-gramma usiamo la sua frequenza normalizzata. Quella di un bigramma (“talmente fame”) è calcolata come P (fame | talmente) = freq (talmente fame): fare (fame talmente) Raccolta dei testi di tutte le canzoni in concorso a Sanremo in un corpus sampling = generare sulla base delle probabilità Vantaggi: Semplicità: sono semplici da capire e implementare Conoscenza: catturano una forma di conoscenza linguistica Svantaggi:
Limitatezza: sono limitati dal loro vocabolario Ripetitività: effetto “pappagallo” Pregiudizi: la loro conoscenza è informata ad una visione In inglese “biases”. I modelli in fase di training, mentre appendono una serie di probabilità, interiorizzano molto di più: associazioni ripetute tra concetti. Gli LM possono interiorizzare e ripetere pregiudizi potenzialmente odiosi e pericolosi (es: “sono principalmente gli individui appartenenti a un’etnia, un genere, una religione a svolgere alcuni mestieri o a commettere certi crimini”) Creatività = un modello deterministico, se si limita a selezionare la parola pi§ probabile, produrrà sempre la stessa scelta. Infatti, la parola più probabile del corpus dopo una sequenza simile sarà sempre la stessa, indipendentemente dal contesto Temperatura = parametro dei modelli generativi che controlla la casualità di una selezione di parole. Regola quanto un modello favorisce le parole ad alta probabilità N.B- Si può cambiare anche la temperatura di GPT, ma non dal web (Risponde sempre allo stesso modo e con le stesse identiche parole se gli faccio la stessa domanda? No, perché ha una temperatura relativamente alta e quindi offre più varietà, simulando il comportamento umano) Come si valuta un modello linguistico?
1. Valutazione estrinseca o “in vivo” 2. Valutazione intrinseca o “in vitro” Usiamo la metrica della “perplexity” e chiediamoci: “quante probabilità ci sono che questo testo sia generato dal nostro modello?” Perplexity = probabilità inversa di un testo 80% training set + 10% test set + 10% development set. Classificare Sentiment analysis: le recensioni sono positive o negative? Con questo termine si intende l’individuazione delle intenzioni emotive di chi emette un determinato messaggio. Chi ha scritto questi testi ha un atteggiamento positivo o negativo? (individua una polarità generale divisa in tre assi: positivo, neutro o negativo): domanda più generale. Che tipo di emozioni esprime un determinato testo: domanda più specifica. Questo task di NLP ha delle applicazioni concrete? Dal punto di vista commerciale (es: recensione di un prodotto) è fondamentale. In generale, è uno dei più utilizzati Per capire se le recensioni sono positive o negative abbiamo fatto una “classificazione” Obiettivo: Modello computazionale che sappia imitare la nostra competenza linguistica: sia in ambito conoscitivo che predittivo sa classificare i testi con recensioni, proprio come farebbe un umano Granularità della classificazione (cosa classifichiamo nel linguaggio?) A che livello di granularità operiamo? Quanto materiale linguistico voglio classificare? Testi: attribuiamo un’etichetta ad un testo intero Token: attribuiamo un’etichetta a ogni token (singola parola) Sezioni: classifichiamo sezioni di testi (frasi o paragrafi)
Il modello di «neurone artificiale» fu sviluppato inizialmente da McCulloch e Pitts (1943) e poi evoluto nel «perceptron» di Rosenblatt (1958), il primo in grado di apprendere dai dati.
È un metodo statistico per la classificazione, molto usato anche in linguistica computazionale. Rappresenta un esempio «classico» di apprendimento supervisionato nel Machine Learning applicato alla linguistica, grazie alla selezione di feature. È un metodo supervisionato e discriminativo , particolarmente adatto alla classificazione binaria , ma estendibile anche a problemi multinominali. Classificazione Assegna un’etichetta prestabilita (e.g. «positivo» / «negativo» a un testo) Può essere binaria o multinomiale Tipo di output: categoriali VS Regressione Assegna un valore numerico o una misurazione in un continuum Ad es. la lunghezza di una risposta, il tempo di reazione Tipo di output: numerico Classificatori discriminativi e generativi: Immaginiamo di distinguere immagini di cani e gatti Classificatore generativo Costruisci l’immagine-modello di un gatto Impara che un gatto ha: baffi, orecchie, occhi… Assegna una probabilità ad un’immagine: how cat-y is this image? Fai lo stesso per il cane Classificatore discriminativo Impara a distinguere cani da gatti. ”Oh look, dogs have collars! Let's ignore everything else!” Metodo supervisionato L’input è rappresentato da dati già analizzati (dati + soluzione) Dati sono generalmente rappresentati da una lista di variabili (features)