









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
Schemi riassuntivi ma completi di Linguistica Computazionale.
Tipologia: Appunti
1 / 15
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!










● è una branca della linguistica QUINDI l’idea è che esiste una regolarità nella lingua QUINDI non parliamo a caso ○ lavora con la lingua utilizzando le capacità computazionali di un computer ○ progetta un’interazione tra macchine - computer - linguaggio umano ○ obiettivo: sviluppare modelli computazionali della lingua ■ capire i significati ■ creare linguaggio naturale (Siri) ■ tradurre automaticamente ■ analizzare / generare testi ● “computare” = calcolare → secondo Leibniz durante una controversia non si deve discutere MA sedersi e dirsi "calculemus" QUINDI ottenere una sola risposta attraverso una serie di passaggi QUINDI possiamo creare modelli formali computabili del linguaggio ● “computazionale” richiama le discipline che usano ○ la capacità di calcolo dei computer ○ gli strumenti e metodologie dell’informatica ● Chat GPT: esempio di applicazione della linguistica computazionale ○ grande modello linguistico sviluppato da Open AI ○ è un chatbot che permette di conversare con un programma QUINDI è addestrata con uno scopo preciso ○ migliore in inglese MA ANCHE altre lingue ○ dibattito etico ■ innumerevoli vantaggi (es. text summarization) ■ svantaggi (usi sbagliati nelle scuole / pericolosi / errori possibili / pregiudizi)
● modello di AI capace di rappresentare la conoscenza il funzionamento del linguaggio ○ schematizza e replica le interazioni* basate sul linguaggio naturale umano ○ si basa su regole linguistiche / statistiche / machine learning ○ è una lista di istruzioni per il computer PER renderlo capace di interagire con / attraverso il linguaggio naturale ● “modello” = rappresentazione concettuale astratta e semplificata di un fenomeno PER ○ spiegare un fenomeno ○ fare previsioni su un fenomeno ○ generare nuovi dati “ben formati” MA per essere utilizzabile deve saper generalizzare QUINDI a partire da casi particolari deve saper estrarre tendenze → ogni modello comporta una riduzione dell’informazione ● 2 tipi di modelli
FORMALI (es. modello matematico epidemiologico)
INFORMALI (es. modello di Jakobson)
= insieme finito di simboli e regole di combinazione che definiscono la sintassi del modello stesso ● interpretabili indipendentemente dal contesto ● utilizzabili dalle macchine ● sono descrizioni rigorose / matematiche / precise di un fenomeno ● utilizza calcoli, logica, algebra, statistica
● espressi in linguaggio naturale / attraverso segni interpretabili ● dipendono dal contesto per essere interpretati da un lettore umano ● lavorano in modo più qualitativo / descrittivo / teorico
N.B. anche la grammatica può essere pensata come modello ○ = insieme di regole che semplificano il dato linguistico ○ può essere un modello ■ informale (es. un libro di grammatica) ■ formale = che descrive la sintassi di una lingua con regole precise ● * diversi livelli di interazione tra uomo e macchina
● = campo di ricerca della AI che si occupa di sviluppare modelli computazionali che usino e comprendano il linguaggio umano per risolvere task linguistici ● in it. TAL = Trattamento Automatico del Linguaggio ● è interdisciplinare INFATTI coinvolge ○ linguistica teorica (quali sono le parti del disc / senso di una parola) ○ linguistica formale / matematica (come formalizzare modelli capaci di risolvere i problemi del NLP) ○ ingegneria dei software (come creare programmi efficienti) ● tasks dell’NLP → si possono dividere in 3 categorie principali
● forma di intelligenza tipica delle macchine e la sua relazione con l’intelligenza umana ● si occupa di creare macchine intelligenti che sappiano replicare le capacità umane ● la linguistica computazionale è parte della AI INFATTI questa disciplina viene applicata in diversi modi ○ in ambiti di ricerca sul linguaggio ○ applicazioni concrete fatte attraverso la tecnologia e l’industria
● “corpus” → 2 definizioni
○ bilanciamento → corpus per essere rappresentativo deve includere testi diversi MA in modo equilibrato ● discipline che lavorano con i corpora ○ linguistica computazionale ■ i corpora sono fonte di dati per modelli di elaborazione del linguaggio naturale e NLP PER creare modelli probabilistici / statistici che affrontano i task dell’NLP MA caratterizzato da distribuzione diseguale di fenomeni QUINDI spesso si preferisce usare una grande quantità di dati rispetto al bilanciamento / rappresentatività ○ literary computing: studio dello stile o del contenuto di testi letterari ○ corpus linguistic: studio empirico della lingua sulla base di dati concreti
● per i computer il testo è una sequenza di caratteri ● il computer lavora solo con numeri binari: 0 e 1 → un testo è leggibile da un PC SE il carattere è scritto in una sequenza di bit (di 0 e 1) MA per fare ciò si usa un sistema di codifica standard PERCHÉ tutti i computer devono saper interpretare i caratteri allo stesso modo ● “carattere” = unità di base di un sistema di scrittura ○ è un concetto astratto PERCHÉ ■ confini tra cos’è un carattere e cosa non è può variare → es. “q” e “A” sono lo stesso carattere o due diversi? ■ per il computer non è importante la sua forma grafica (font, dimensione, colore) PERCHÉ vede solo il codice associato → il carattere è associato a determinati glifi ● come vengono codificati i caratteri? per trasformare caratteri in numeri servono: ○ repertorio di caratteri (lista di caratteri necessari per scrivere in una lingua) ○ set di caratteri (tabella che associa un numero a ogni carattere) ○ punto di codice (numero associato a un carattere in uno spazio di codifica) ○ codifica (metodo con cui un numero viene tradotto in una sequenza di bit – 0 e 1 – e memorizzato nel computer) ● quanti caratteri possiamo esprimere? ○ se usiamo 8 bit (8 cifre binarie): 256 caratteri (2^8 = 256) ○ se usiamo 7 bit e ne teniamo 1 come codice di controllo: 128 caratteri (2^7 = 128)
● ASCII (American Standard Code for Information Interchange) ○ 1° standard di codifica (nato nel 1963) ○ usa 7 bit per rappresentare i caratteri QUINDI solo 128 simboli CONSEGUENZA: basta per inglese MA non per le altre lingue CONSEGUENZA: create delle estensioni per supportare altre lingue: ISO- ■ usa 8 bit → 256 caratteri ■ esistono diverse versioni
Esercizio pratico: trovare i participi passati nella Divina Commedia È necessario trovare tutte le parole che terminano in -ato, -eto, ito, -oto, -uto. Prima scriviamo regex per trovare tutte le parole che finiscono in -to: [aeiou]to → MA problema: così trova anche le forme all’interno delle parole QUINDI specificare che -to deve essere alla fine delle parole: [aeiou]to\b
● si individuano 2 tipi di errori per migliorare le regex
Esempio pratico: trovare parole che finiscono per vocale nella Divina Commedia Non vengono trovate tutte perché alcune può essere che siano seguite da segni di punteggiatura. Soluzione: [aeiou]\W+$
● “ground truth” ○ = analisi già fatta da qlc e presa per buona ○ su di essa misuriamo le competenze del sistema computazionale
LA TOKENIZZAZIONE: ● token ○ = unità fondamentale nel quale si segmenta il testo per l’analisi ○ in italiano normalmente è ogni forma di parola separata con uno spazio MA ci sono eccezioni e zone grigie ■ “c’era” → 2 token ■ “New York” → dipende ● tokenizzazione = processo attraverso cui segmentiamo il testo in parole e simboli (token) ○ modo per le aziende di proteggere dati sensibili ATTRAVERSO la trasformazione di dati sensibili in dati non sensibili (token) ○ tokenizzatore = programma che esegue la tokenizzazione ○ ≠ sentence splitting = processo di segmentazione del testo in frasi (gruppo di token) ○ caratteristiche della tokenizzazione
● con un corpus (insieme di testi) tokenizzato possiamo ○ usare la statistica per esplorarlo ○ studiare quanto è ricco un testo o un corpus dal pdv lessicale ○ capire quali sono le parole più frequenti ○ capire se ci sono regolarità statistiche (es. se esiste un certo stile) ● cosa osserviamo quando studiamo un testo? → le parole che si possono studiare guardando il comportamento dei token ● possiamo prendere in considerazione diverse nozioni di “parola” ○ token = parola-unità QUINDI ogni parola nel testo (ripetizioni incluse) ○ type = parola-tipo ripetute ■ = ogni parola unica nel testo, ogni forma specifica ■ es. il gatto dorme e i gatti giocano → sia “gatto” sia “gatti” sono types ○ lemma = parola-lemma ■ la forma base di una parola → contata una volta ■ es. andai, andremo, andando appartengono al medesimo lemma: andare
type vs lemma nella frase: il gatto dorme e i gatti giocano
○ parole grammaticali = aiutano a strutturare il discorso MA non danno il contenuto comunicativo al testo ○ parole piene / lessicali = forniscono il senso ● definizioni da sapere ○ vocabolario (V) ■ = lista di parole-tipo (type) presenti in un corpus / testo ■ la formula |V 1 | indica il numero di parole-tipo nella lista ○ corpus (T) = lista dei token (parole-unità) attestati ○ hapax (VT^1 ) = lista di parole-tipo attestate una volta sola
● per catturare la ricchezza lessicale si usa la token type ratio (TTR) ○ rapporto tra numero delle parole tipo di un corpus e il numero totale dei token ○ se TTR è alto (vicino a 1) → testo ha vocabolario molto vario ○ se TTR è basso (vicino a 0) → testo ha molte parole ripetute
● creta nel 1939 da George K. Zipf ○ descrive come vengono distribuite le parole in un testo o in un corpus linguistico ○ ipotizza che le grandezze variano secondo una proporzionalità fissa → “la frequenza di una parola qualunque è più o meno uguale alla frequenza della parola più frequente, diviso il rango della parola che stiamo considerando” QUINDI la frequenza di una parola è inversamente proporzionale alla sua posizione nel rango
● se trasformiamo questi valori in logaritmi diventa:
● perché la legge Zipf è importante ○ è una caratteristica di tutte le lingue naturali ○ la distribuzione zipfiana si osserva anche in altri fenomeni sociali ○ dice che la frequenza delle parole non dipende direttamente dal contenuto da comunicare ○ ha conseguenze per lo studio e il trattamento delle lingue
dove:
● esempio in cui l’identificazione automatica delle parole chiave può tornare utile → Corpus dell’Old Bailey ○ collezione di atti processuali di una delle principali corti penali di Londra INFATTI raccoglie i verbali di oltre 200 000 processi dal 1674 fino al 1913 ○ case: ragazzo vuole capire quali sono gli aggettivi che più frequentemente sono associati ad alcune parole chiave
● concordanze ● espressioni regolari (Regex)
● serve per sapere quante parole lessicali ci sono in un corpus QUINDI per aggiungere info linguistiche ad un testo ATTRAVERSO etichette ○ tagset = insieme delle etichette usate per annotare → nessun’altra etichetta al di fuori di quelle del tagset è ammessa ○ vengono aggiunte a un testo rispettando un formato QUINDI si seguono delle linee guida (grammatica, manuale su come annotare) ● ogni aspetto linguistico di un testo può essere annotato → ci sono diversi livelli linguistici di annotazione ○ lessicale (token, lemmi) ○ morfologico (separare suffissi e prefissi dalle parole) ○ sintattico (classificare per parti del discorso le parole / marcare le relazioni sintattiche) ○ semantico (distinguere i sensi delle parole / classi semantiche / ruoli semantici) ○ pragmatico (marcare gli atti linguistici / atti dialogici) ○ testuale (si possono annotare pronomi / anafore / connettivi) ● possiamo etichettare ○ gruppi di token già etichettati ○ token etichettati ○ relazioni etichettate tra gruppi di token
Questa slide rappresenta il tipico workflow, cioè la sequenza di operazioni nel lavoro di annotazione raccomandato per creare annotazioni e utilizzarle per addestrare dei modelli
Non si tratta di un ciclo semplice perché comprende un sottociclo nelle fasi 1-
MA facendo in modo di dare a annotatori diversi uno stesso testo PER comparare il loro lavoro nella fase 2.1 di evaluate ○ vediamo se i diversi annotatori hanno lavorato coerentemente (evaluate) → fase in cui si calcola l’ Inter-annotator Agreement ■ si quantifica il grado di accordo degli annotatori ■ si lavora sulla riconciliazione delle divergenze POI si arriva alla “Gold standard” ■ annotazione manuale finale ■ è quello che viene prodotto alla fine della seconda fase → questa annotazione viene usata per le fasi di addestramento dei modelli automatici e per testare le loro performance ○ 2.2 revise: se il grado di accordo è basso abbiamo un problema con le linee guida QUINDI occorre chiarire i concetti e lavorare a produrre istruzioni migliori ■ si torna alla fase di model e annotate ■ si prosegue solo quando si ha raggiunto un grado di accordo accettabile
● serve ad aggiungere info grammaticali alle parole di un testo ● ci aiuta a capire meglio come funzionano le parole nella frase ● può essere ○ manuale QUINDI annotatori esperti etichettano testi seguendo linee guida ○ automatica QUINDI fatta da software e algoritmi ● elementi fondamentali nell’annotazione morfosintattica
● è un framework → modello per annotazione linguistica con regole specifiche ○ prodotto da una comunità che produce un treebank PER elaborare linee guida per l’annotazione ● è un corpus di treebank (corpus delle regole) INFATTI offre 183 treebank per 104 lingue ● costituito su 3 principi ○ formalismo a dipendenza (relazioni sintattiche tra le parole) ○ lessicalismo (annotazione delle parole) ○ recuperabilità (è sempre possibile ricostruire il testo originale)
● = processo di creazione / trasf / selez delle caratteristiche / features PER migliorare le prestazioni di un modello machine learning ○ procedimento in cui trasformiamo il testo in numeri ○ aiutata da tecniche come lemmatizzazione / uso di specifici dizionari ○ migliora la qualità dati, può ridurre complessità, aiuta a trovare pattern nascosti ● questi numeri li useremo in una funzione di classificazione → identifichiamo un peso (w) per ogni feature (x) COSICCHÉ ogni x 1 abbia il suo w 1 , ogni x 2 il suo w 2 ecc…
MA vogliamo che “z” sia compreso tra 0 e 1 PER farlo leggere al modello per la classificazione CONSEGUENZA: entra in gioco la funzione logistica sigmoide
○ per minimizzare al minimo l’errore / differenza tra y 1 e y ■ loss function (funzione di perdita) ■ algoritmo di ottimizzazione (gradiente decrescente che aggiorna i valori di w) ○ durante la regressione logistica ■ 80% dati → per addestramento (training) ■ 10% dati → prestazioni (development) ■ 10% dati → per il test PER evitare l’overfitting
● viene confrontato il modello con uno stato dell’arte (SOTA) PER valutare la sua performance di classificazione QUINDI per vedere se il nuovo modello è più accurato e innovativo di quelli esistenti
VALUTARE UN MODELLO ● = verificare le prestazioni di un modello su dati mai visti ● 2 tipi di valutazione ○ qualitativa (esperti valutano azioni modello) ○ quantitativa (con metrica / misure ben definite e oggettive) ● suddivisione dati ○ dati di addestramento (per insegnare al modello) ○ dati di validazione (per evitare che il modello impari a memoria) ○ dati di test (per vedere quanto il modello funzioni bene sui nuovi dati) ● una forma di valutazione è con la creazione di una matrice di confusione* (confusion matrix) ○ tabella che serve a visualizzare il confronto tra ■ le predizioni fatte dal modello (orizzontale) ■ le classificazioni reali degli esperti (verticale) ○ ha 4 valori ■ VP = vero positivo → modello ha predetto giusto ■ VN = vero negativo → modello ha predetto qlc che non c’è e aveva ragione ■ FP = falso positivo → modello ha sbagliato PERCHÉ trovato qlc che non c’era ■ FN = falso negativo → modello ha sbagliato PERCHÉ non ha trovato qlc che c’era
● metriche principali per valutare:
○ accuratezza:
○ precisione:
○ recall:
● utile per analisi successive INFATTI elimina molta ambiguità ● consiste nell’assegnare a ogni toke una parte del discorso (nome, verbo…) ● i sistemi più avanzati usano reti neurali ○ modelli matematici ispirati al funzionamento del cervello umano ○ sono composte da nodi (neuroni) organizzati in strati ■ strato di input (riceve i dati iniziali) ■ strato nascosto (elabora info combinando dati) ■ strato di output (produce il risultato finale) → ogni nodo riceve i valori di ingresso > esegue calcoli > passa risultato a strato success ○ primi modelli neurali: anni 50 POI esplosione nel 2010 GRAZIE A capacità di calcolo più elevate dei computer
● compito del NLP che consiste nel tradurre e classificare parole o frasi che indicano oggetti specifici del mondo reale (nomi persona, città, aziende…) ● “entità nominata” (NE) ○ = parola o espressione che si riferisce in modo preciso a qlc di specifico e importante ○ spesso si tratta di nomi propri MA può includere anche espressioni nominate ○ possono estendersi su più token o essere annidate una dentro l’altra ● fondamentali per l’estrazione di info e supporto per compiti avanzati ● es. Leonardo Da Vinci ha dipinto la Gioconda a Parigi ○ Leonardo Da Vinci → persona ○ Gioconda → opera d’arte ○ Parigi → città ● caratteristiche NER ○ segmentazione del testo QUINDI trovare dove inizia / finisce entità nel testo ○ definizione delle etichette alle entità ● formato IOB ○ metodo comune utile per segmentare il testo MA non permette di registrare le entità annidate ○ es. Leonardo (B), Da (I), Vinci (O), dipinse la Gioconda (B) a Parigi (B)
○ una volta riconosciute le entità si deve capire a quale sign / oggetto specifico si riferiscono QUINDI collega il nome al giusto riferimento (spesso usando il database) → spesso usando fonti come WIkipedia e database online ○ es. “Alessandria” → D’Egitto o quella a Torino? ○ le entità possono essere classificate in