Natural Language Processing Parte 1: Parole…. Morfologia Controllo ortografico N-gram models 2 Marco Maggini Tecnologie per l'elaborazione del linguaggio La conoscenza sul linguaggio - 1 3 Marco Maggini Tecnologie per l'elaborazione del linguaggio La conoscenza sul linguaggio - 2 4 Marco Maggini Tecnologie per l'elaborazione del linguaggio Ambiguità • Molte fasi dell’elaborazione del linguaggio mirano all’eliminazione di ambiguità ▫ Una struttura (es. frase) è ambigua ha più interpretazioni linguistiche Una vecchia legge la regola Una vecchia signora legge il testo della regola Una vecchia legge definisce come è regolata “quella” situazione ▫ Le ambiguità possono essere a vari livelli lessicale-morfologico (vecchia - sost/agg, legge - sost/verbo, la - pron/art, regola – sost/verbo) semantico sintattico (soggetto: Una vecchia legge/Una vecchia; pred. verb.: legge/regola) 5 Marco Maggini Tecnologie per l'elaborazione del linguaggio Eliza (1966) • Sviluppato nel 1966 da Weizenbaum è uno dei primi esempi di programmi che è in grado di gestire una limitata forma di conversazione con un utente ▫ Imita le risposte di uno psicoterapeuta Rogeriano ▫ E’ un programma semplice che utilizza un meccanismo di patternmatching per elaborare la frase in ingresso e produrre la frase in uscita ▫ Di fatto non c’è nessuna ncessità di una conoscenza/modello del comportamento reale dello psicoterapeuta ▫ Funziona in modo plausibile perché simula un tipo di dialogo in cui l’agente può agire senza una reale conoscenza del mondo (la risposta è sempre costruita sulla frase dell’altro agente) ▫ E’ un primo esempio di chatterbot ▫ La cosa sorprendente è che alcune persone ritenevano che Eliza veramente capisse i loro problemi! (anche dopo che era stato spiegato il funzinamento) 6 Marco Maggini Eliza - Tecnologie per l'elaborazione del linguaggio esempio • Le risposte sono basate su script ▫ Quando non si riesce a rispondere con la piccola base di conoscenza, il motore utilizza delle regole per riformulare la domanda a partire dalla frase enunciata dal “paziente” >> Hello. How do you do. Please state your problem. >> I feel sad Tell me more about such feelings. >> My mother hates me Tell me more about your family. >> My father fled when I was young Who else in your family fled when you was young ? >> noone Really, noone ? >> Also my sister fled away Your sister ? 7 Marco Maggini Eliza – Tecnologie per l'elaborazione del linguaggio elaborazione 1 • L’input è scomposto in parole • Si applica un insieme di pre-sostituzioni pre: how what pre: you're you are • Si elencano tutte le keyword trovate in ordine discendente di peso key: remember 5 key: if 3 key: am 0 key: i 0 ▫ Le keyword sono elaborate in sequenza fino a che non si genera un output 8 Marco Maggini Eliza – Tecnologie per l'elaborazione del linguaggio elaborazione 2 • Per una data keyword si esaminano le regole di decomposizione elencate ▫ Si seleziona la prima che fa il match e se non ce ne sono si passa alla keyword successiva key: i 0 decomp: * i am* @sad * • Per la regola di decomposizione che fa il match si utilizza una delle regole di riassemblaggio elencate (si applicano a rotazione) key: i 0 decomp: * i feel * reasmb: Tell me more about such feelings. reasmb: Do you often feel (2) ? reasmb: Do you enjoy feeling (2) ? reasmb: Of what does feeling (2) remind you ? 9 Marco Maggini Eliza – Tecnologie per l'elaborazione del linguaggio elaborazione 3 • Si applicano delle post-sostituzioni post: me you post: i you post: you I • Si manda in output la stringa risultante • Lo script permette anche di definire ▫ Cosa dire all’inizio (initial) o alla fine (final) ▫ Definire una lista di sinonimi (synon: sad unhappy depressed sick) ▫ Definire cosa fare quando non si trovano keywords (key: xnone - reasmb: Please go on.) ▫ Memorizzare più ipotesi di risposta su cui poi scegliere casualmente (la regola di decomposizione inizia con $) 10 Marco Maggini Tecnologie per l'elaborazione del linguaggio Parole e morfologia • Le parole sono gli elementi base di un linguaggio ▫ Ogni applicazione per l’elaborazione automatica del linguaggio utilizza pesantemente la conoscenza lessicale ▫ Le espressioni regolari sono un possibile modello per le entità lessicali Modellare la declinazione delle parole (es. bell(a|o|e|i)) Modellare categorie lessicali (es. prezzo [09]+’.’[0-9]{2}’ ‘€) ▫ Un aspetto importante per l’analisi delle parole sono le regole morfologiche che indicano le trasformazioni a cui possono essere soggette per ottenere declinazioni diverse a partire da una stessa unità lessicale (lemma) Plurali, modi verbali Le regole morfologiche sono connesse alle regole di sillabazione (spelling rules) ▫ L’analisi morfologica mira a scomporre una parola nei suoi morfemi seeing -> see – ing, boys -> boy - s 11 Marco Maggini Tecnologie per l'elaborazione del linguaggio Analisi morfologica • L’analisi morfologica mira ad individuare le parti costituenti una parola (morfemi) data una forma in ingresso (input form o surface) ▫ Un problema simile è lo stemming che ha l’obiettivo di eliminare le variazioni delle parole riducendole a una forma base (lemma) ▫ Richiede di modellare la conoscenza morfologica dipendente dalla lingua ▫ Una soluzione alternativa è quella di elencare tutte le forme di uno stesso lemma nel dizionario E’ una soluzione potenzialmente inefficiente Ad esempio in Inglese, il suffisso –ing permette di generare il gerundio per ogni verbo e il suffisso –s permette di produrre il plurale della maggior parte di sostantivi (productive suffix) In genere i suffissi standard sono usati per i neologismi e quindi si può automaticamente estendere il dizionario (fax – faxare, click - cliccare ) Elencare tutte le varianti morfologiche di una parola può essere complesso per alcune lingue (uso delle parole composte come in Tedesco, Turco, Arabo) 12 Marco Maggini Tecnologie per l'elaborazione del linguaggio Morfemi e affissi • Un morferma è l’unità minima che porta informazione in una lingua • Si distinguono due tipologie principali di morfemi ▫ Stem – il morfema principale della parola (ne definisce il significato principale) ▫ Affixes – aggiungono significati addizionali di vario tipo prefessi – precedono lo stem (unset : un- set; in Italiano in-, ri- , dis-,…) suffissi – seguono lo stem (boys: boy –s; in Italiano –mente, -tore, -zione, -bile) infissi – si inseriscono nello stem (comuni in alcuni linguaggi – Tagalog Filippine) circumfissi – precedono e seguono lo stem (es. in Tedesco sagen [dire] ha il participio passato ge- sag -t) ▫ Prefissi e suffissi sono spesso detti morfologia concatenativa dal momento che una parola è ottenuta concatenando i morfemi ▫ Alcuni linguaggi hanno regole di costruzione più complesse e si basano quindi su una morfologia non concatenativa (es. con infissi) 13 Marco Maggini Morfologia – Tecnologie per l'elaborazione del linguaggio flessione e derivazione • Una morfologia non concatenativa è quella a template o root-and-pattern ▫ Ad esempio nelle lingue semitiche la radice di una parola consiste in una sequenza di consonanti e i morfemi derivazionali si ottengono inserendo uno specifico pattern di vocali fra le consonanti lmd [studiare/imparare]: lamad [studiò], limed [insegnò], lumad [gli fu insegnato] • Una parola può avere più di un affisso ▫ rewritten: re- writ –ten; unbelievably: un- believ –able –ly ▫ disconnetto: dis- connett –o; irragionevolmente: ir- ragionevol –mente ▫ Il numero massimo di affissi dipende dalla lingua. I linguaggi che tendono ad avere molti affissi si dicono agglutinativi (es. Turco 9-10 affissi in una parola) • Ci sono due modalità principali per formare le parole dai morfemi ▫ flessione – si combina lo stem con un morfema per ottenere una parola della stessa classe dello stem (es. in Inglese plurale –s o il passato –ed) ▫ derivazione – è la combinazione di uno stem con un morfema che risulta in una parola di classe diversa (es. compute [Verb] – computation [Noun]) 14 Marco Maggini Morfologia – Tecnologie per l'elaborazione del linguaggio flessioni in Inglese: sostantivi • Il sistema flessivo Inglese è abbastanza semplice • Solo Nomi, Verbi e alcuni aggettivi possono essere flessi con un numero di affissi molto ridotto ▫ Sostantivi plurale La maggior parte dei nomi compare nello stem base che corrisponde alla forma singolare o prende il suffisso del plurale (-s ;-es per gli stem che terminano in –s, -z, -sh, -ch, talvolta in –x e per i nomi che terminano in y preceduto da una consonante in cui la y è modificata in i -ies) genitivo sassone Si realizza on –’s per i nomi singolari e i plurali che non terminano in s (es. children’s) e con –’ per i nomi plurali regolari e alcuni nomi che terminano in s o z) 15 Marco Maggini Morfologia – Tecnologie per l'elaborazione del linguaggio flessioni in Inglese: verbi ▫ Verbi La modalità di flessione dei verbi è più complicata di quella dei sostantivi (ma in altre lingue come l’Italiano è molto più complessa) Esistono tre tipologie di verbi: verbi principali (eat,sleep,walk,…), verbi modali (can, will, may,..) e verbi primari (have, be, do) La maggior parte dei verbi principali è regolare, ovvero condividono gli stessi suffissi ciascuno con la stessa funzione stem walk kiss map cry -s form walks kisses maps cries -ing participle walking kissing mapping crying Past form or -ed participle walked kissed mapped cried per i verbi regolari conoscendo lo stem è possibile generare tutte le forme aggiungendo i suffissi e tenendo in conto di alcune regole di sillabazione 16 Marco Maggini Morfologia – Tecnologie per l'elaborazione del linguaggio flessioni in Inglese: verbi irregolari ▫ La classe dei verbi regolari è anche detta forma produttiva perché è quella usata per generare neologismi (in Italiano è la 1 declinazione con infinito in are) ▫ I verbi irregolari hanno forme di flessione non facilmente spiegabili (hanno di solito 5 forme, ma arrivano a 8 con be) Comprendono pochi verbi (circa 250) ma sono fra quelli più usati nel linguaggio stem eat catch cut -s form eats catches cuts eating catching cutting ate caught cut eaten caught cut -ing participle Past form - ed participle 17 Marco Maggini Morfologia – Tecnologie per l'elaborazione del linguaggio derivazioni in Inglese • In genere le derivazioni morfologiche sono più complesse e meno predicibili (derivazioni anche comuni non sono applicabili in generale) ▫ Sostantivizzazione - Formazione di sostantivi da verbi e aggettivi -ation compute (V) computation -ee attend (V) attendee -er kill (V) killer happy (A) happiness -ness ▫ Formazione di aggettivi da verbi e sostantivi -al computation (N) computational -able drink (V) drinkable -less fear (N) fearless 18 Marco Maggini Tecnologie per l'elaborazione del linguaggio Analisi morfologica • Un analizzatore morfologico associa ad una parola in ingresso il suo stem e delle feature (es. numero/persona/modo/tempo/…) student student +N +SG students student +N +PL cities city +N +PL children child +N +PL looks look +V +3SG look +N +PL carrying carry +V +PRES-PART taught teach +V +PAST-PART teach +V +PAST +N : Noun +PL: Plural +V : Verb +3SG : third singular person +PAST : Past form +PAST-PART : Past Participle +PRES-PART : Present Participle 19 Marco Maggini Tecnologie per l'elaborazione del linguaggio Analizzatori morfologici • Per costruire un analizzatore morfologico serve ▫ Lessico La lista degli stem e degli affissi con l’informazione base su di essi (es. se uno stem è un verbo o un sostantivo) ▫ Morfotattiche Il modello dell’ordinamento dei morfemi che spiega quali classi di morfemi possono seguire una classe di altri morfemi all’interno di una parola ▫ Regole ortografiche Le regole che descrivono le modifiche ortografiche dei morfemi quando questi vengono combinati ▫ La conoscenza sulle regole di combinazione dei morfemi in genere può essere rappresentata con automi a stati finiti (FSA) 20 Marco Maggini Analizzatori morfologici – reg-noun q0 Tecnologie per l'elaborazione del linguaggio esempio 1 plural -s q1 q2 irreg-pl-noun irreg-sg-noun • L’analizzatore assume che esistano sostantivi regolari (reg-noun) il cui plurale si ottine con il suffisso –s ▫ non modella varianti ortografiche come city-cities • L’analizzatore tratta in modo separato i sostantivi irregolari in cui il singolare (irreg-sg-noun) e il plurale (irreg-pl-noun) non sono legati in modo semplice ▫ es. mouse-mice, child-children 21 Marco Maggini Analizzatori morfologici – Tecnologie per l'elaborazione del linguaggio esempio 2 irreg-past-verb-form q0 reg-verb-stem reg-verb-stem q1 preterite -ed q3 past paticiple -ed prog -ing irreg-verb-stem q2 3-sing -s • L’analizzatore assume che esistano tre classi di stem ▫ reg-verb-stem, irreg-verb-stem, irreg-past-verb-form • Sono previste 4 classi di affissi ▫ -ed past, -ed past participle, -ing participle, 3rd singular -s 22 Marco Maggini Analizzatori morfologici – un- q0 ε q1 adj-root1 q2 -er –ly -est adj-root1 q3 adj-root2 q4 q5 -er -est Tecnologie per l'elaborazione del linguaggio esempio 3 big, bigger, biggest cool, cooler, coolest, cooly clear, clearer, clearest, clearly unclear, unclearly happy, happier, happiest, happily unhappy, unhappier, unhappiest, unhappily • Gli aggettivi possono avere ▫ un prefisso opzionale –un (ma non tutti!) ▫ una radice obbligatoria adj-root ▫ un suffisso opzionale (-er –ly –est) con eventuali aggiustamenti ortografici ▫ Gli aggettivi sono divisi in due classi a seconda se possono o meno avere il prefisso –un e il suffisso -ly (Antworth, 1990) 23 Marco Maggini Analizzatori morfologici – nouni -ize/V q0 q1 adj-al -ation/N -er/N -able/A adj-al verbk -ness/N adj-ous q7 -ive/A q8 -ative/A nounI esempio 4 i verbi che terminano in –ize possono essere sostantivati col suffisso -ation fossile-ize-ation/N -ity/N q5 verbj q4 q3 q2 Tecnologie per l'elaborazione del linguaggio q10 q6 -ly/Adv q9 -ness/N -ful/A -ly/Adv q11 • FSA per le derivazioni nominali e verbali ▫ Ci possono essere eccezioni a molte di queste regole gli aggettivi che terminano in -al o –able possono prendere il suffisso –ity o talvolta -ness natural-ness/N 24 Marco Maggini Tecnologie per l'elaborazione del linguaggio Riconoscitori/parser morfologici • Un riconoscitore morfologico può essere costruito a partire dai modelli costruiti con FSA ▫ Il riconoscitore morfologico determina se una parola appartiene alla lingua o meno ▫ Si utilizzano gli FSA che modellano le morfotattiche in cui si inseriscono dei sub-lessici che includono liste di stem I sub-lessici permettono di espandere alcuni archi (adj-root1, adj-root2,nouni,..) • In generale però interessa fare il parsing morfologico ▫ Si estrae lo stem (lemma radice) e le feature della parola Surface level cities Lexical level city+N+PL Morphological parsing 25 Marco Maggini Tecnologie per l'elaborazione del linguaggio Finite-State Transducers (FST) • La corrispondenza fra le due stringhe può essere modellata con un Finite-State Transducer ▫ Un FST definisce una relazione fra due insiemi di stringhe ▫ Corrisponde ad una estensione degli Fsa come macchina di Mealy Q = {q0,….,qN} è l’insieme degli stati Σ è un alfabeto finito di simboli complessi. Ciascun simbolo è costituito da una coppia ingresso-uscita i:o dove i è un simbolo dell’alfabeto di ingresso I e o è un simbolo dell’afabeto di uscita O (che contiene anche il simbolo ε) q0 è lo stato iniziale F ⊆ Q è l’insieme degli stati finali δ(q,i:o) è la funzione di transizione di stato ▫ Le coppie di simboli in Σ sono anche dette coppie ammissibili ▫ Un FST modella relazioni regolari, un’estensione dei linguaggi regolari a relazioni fra insiemi di stringhe 26 Marco Maggini FST - Tecnologie per l'elaborazione del linguaggio funzionamento • Si considera un FST in cui l’ingresso coincide con il livello lessicale e l’uscita con il livello di superficie ▫ nella coppia i:o, i corrisponde a un carattere dei morfemi (lexical level) e o a un carattere della parola o ε (surface level) Ogni coppia i:o indica come il simbolo di ingresso i è mappato nel simbolo di uscita o Poiché spesso un simbolo si mappa in se stesso si possono definire le coppie di default del tipo a:a come a reg-n q0 stem oun- irreg-sg-noun-form irreg -pl-n oun -form q1 q1 q1 +N:ε +N:ε +N:ε q4 q4 q4 +PL:^ s +SG: # +SG:# # # è la fine parola q7 ^s inserisce s applicando le regole ortografiche 27 Marco Maggini FST - Tecnologie per l'elaborazione del linguaggio categorie • Le transizioni etichettate con categorie di sub-lessici devono essere espanse ▫ Si deve aggiornare il lessico in modo che i plurali irregolari siano mappati correttamente nel morfema singolare reg-noun irreg-pl-noun irreg-sg-noun c:a a:a t:t g:g o:e o:e s:s e:e g:g o:o o:o s:s e:e d:d o:o g:g m:m o:i u:ε s:c e:e m:m o:o u:u s:s e:e ▫ L’automa complessivo è ottenuto mettendo in cascata o componendo il FST che mappa gli stem e quello che aggiunge gli affissi ▫ Tuttavia la concatenazione dei morfemi non funziona quando c’è una variazione di sillabazione (es. box -> boxes) Occorre applicare delle regole orotgrafiche ai confini dei morfemi Queste regole possono essere implementate con automi trasduttori 28 Marco Maggini FST – Tecnologie per l'elaborazione del linguaggio regole ortografiche • La necessità di applicare regole ortografiche ai confini dei morfemi dopo la loro concatenazione può essere modellata con un altro FST Surface level cities Intermediate level Lexical level city^s -y^s → -ies city+N+PL ▫ La regola di inserimento della E nella formazione dei plurali può essere definita con la notazione riscrivi ε con e quando compare fra (x|s|z)^ e s# (la riscrittura di ε è di fatto un inserimento) 29 Marco Maggini Tecnologie per l'elaborazione del linguaggio FST – E-insertion rule ^:ε other # z,s,x z,s,x q0 q5 other z,s,x q1 other, # other, # ^:ε z, x other→ ogni coppia i:o ammissibile che non è specificata ^:ε s ε:e q2 q3 s q4 # • La coppia ε:e fra q2 e q3 modella l’inserimento • La coppia ^:ε corrisponde all’eliminazione dei marker di inizio dei morfemi per generare la parola • L’FST applica la regola solo alle configurazioni che la prevedono lasciando inalterati gli altri casi (la regola ε:e si applica solo se si è nel contesto giusto) ▫ Lo stato q3 modella l’aver appena visto l’inserimento della e che presuppone che sia seguito da s e poi la parola termini (#) 30 Marco Maggini Tecnologie per l'elaborazione del linguaggio FST+Lexicon+Rules • Si può costruire un generatore/analizzatore morfologico mettendo insieme i moduli per l’analisi morfologica/ortografica b Lexical level 0 o l1 b Intermediate level x l2 o +N +PL 1 x ε 4 ^ Tlex 7 s # ε 0 Surface level 0 b 0 o 1 x ε e 2 4 3 s 0 Te-insert # • La stessa cascata di FST può essere usata nella modellazione lexical→surface (generazione) oppure surface→lexical (parsing) ▫ Il parsing può essere più complesso a causa delle ambiguità (risolvibili solo in base al contesto a livello di frase) box +N +PL e box +V +3SG sono entrambi parsing corretti 31 Marco Maggini Tecnologie per l'elaborazione del linguaggio SFTS • Esistono degli strumenti per generare automaticamente gli FST ▫ Stuttgart FST tools Un linguaggio di programmazione per l’implementazione di FST (SFTS-PL) Un compilatore di programmi in SFTS-PL (fst-compiler) Un insieme di strumenti per usare, stampare, confrontare FST Una libreria per FST in C++ ▫ Si possono usare RE costruite su coppie i:o per definire il FST (a:b|b:a|c:c)* mappa la stringa in ingresso in una stringa in uscita in cui i simboli c sono invariati mentre a e b sono scambiate fra loro a:b mappa a in b in modalità generazione e b in a in modalità analisi la coppia c:c può essere abbreviata in c (house|foot|mouse) <N>:<> <sg>:<> | \ (house<>:s | f o:e o:e t | {mouse}:{mice}) <N>:<> <pl>:<> 32 Marco Maggini Stemming – Tecnologie per l'elaborazione del linguaggio Porter stemmer • Uno stemmer è un analizzatore morfologico più semplice che non fa uso di un lessico ▫ Ha applicazione in Information Retrieval per normalizzare le keyword ▫ L’algoritmo di stemming proposto da Porter (1980) per l’Inglese fa uso di semplici regole di riscrittura in cascata ATIONAL → ATE (relational → relate) ING → ε se lo stem contiene una vocale (monitoring → monitor) ▫ La semplificazione rende gli stemmer soggetti a errori anche grossolani e omissioni policy → police, university → universal, organization → organ sparse … sparsity, matrices … matrix, explain… explanation (omissioni) ▫ Il miglioramento nel Retrieval è in genere basso per cui non sono molto usati 33 Marco Maggini Tecnologie per l'elaborazione del linguaggio Porter stemmer - 1 • Si definiscono ▫ consonanti (c): tutte le lettere escluse A, E, I, O, U e Y preceduto da una consonante ▫ vocali (v): A, E, I, O, U e Y non preceduto da una consonante • Si approssima ogni parola in Inglese con l’epressione regolare ▫ (C|ε)(VC)m(V|ε) dove C è una sequenza di una o più consonanti e V di vocali ▫ m è detta misura di una parola o di una parte di parola m=0 [TR][][], [][][EE], [TR][][EE] m=1 [TR][OUBL][E],[TR][EES][] m=2 [TR]([OUBL][ES])[], [PR]([IV][AT])[E] • Le regole di riscrittura hanno la forma ▫ (condition) S1 → S2 : Se una parola ha il suffisso S1 e lo stem prima di s1 soddisfa la condizione, allora si sostituisce S1 con S2 34 Marco Maggini Tecnologie per l'elaborazione del linguaggio Porter stemmer - 2 • Le condizioni possono essere le seguenti combinate con operatori logici ▫ ▫ ▫ ▫ ▫ m - la misura dello stem *S - lo stem finisce con S (analogo per altre lettere) *v* - lo stem contiene una vocale *d - lo stem finisce con una doppia consonante (-TT, -SS) *o - lo finisce con la sequenza CVC dove il secondo C non è W, X o Y (WIL, -HOP) • Lo stemmer consiste in 7 insiemi di regole applicate in sequenza 1. Sostantivi plurali e verbi in terza persona SSES → SS (caresses → caress) IES → I (ponies → poni, ties → ti) SS → SS (caress → caress) S → ε (cats → cat) 35 Marco Maggini Tecnologie per l'elaborazione del linguaggio Porter stemmer - 3 2. Passato dei verbi e gerundio (m>1) EED → EE (agreed → agree, feed → feed) (*v*) ED → ε (computed → comput, red → red) (*v*) ING → ε (monitoring → monitor, sing → sing) 1. Cleanup – nel caso di applicazione delle ultime due si applicano ulteriori regole di cleanup (rimozione doppie lettere – hopp[ing] → hop, ripristino della e finale es. AT → ATE – comput[ed] → compute) 3. (*v*) Y → I 4. happy → happi Derivazioni morfologiche I (suffissi multipli) (m>0) ATIONAL → ATE (relational → relate) (m>0) ATOR → ATE (operator → operate) (m>0) BILITI → BLE (sensibiliti → sensible) ecc… (20 regole) 36 Marco Maggini Tecnologie per l'elaborazione del linguaggio Porter stemmer - 4 5. Derivazioni morfologiche II (ulteriori suffissi multipli) (m>0) ICATE → IC (triplicate → triplic) (m>0) NESS → ε (goodness → good) ecc.. (6 regole) 6. Derivazioni morfologiche III (suffissi singoli) 7. (m>1) ENCE → ε (inference → infer) (m>1) EMENT → ε (replacement → replac) (*S or *T) & ION → ε (adoption → adopt) ecc.. (18 regole) Cleanup (m>1) E → ε (probate → probat, rate → rate) (m=1 & ! *o) E → ε (cease → ceas) (m>1 & *d*L) → [single letter] (controll → control) 37 Marco Maggini Errori ortografici – Tecnologie per l'elaborazione del linguaggio correzione/rilevazione • Data la sequenza di lettere corrispondente a una parola con errori ortografici occorre produrre la lista delle parole corrette possibili ▫ E’ un problema di trasduzione probabilistica – la parola errata può corrispondere a più forme lessicali ciascuna con una sua probabilità arrore -> ardore, arboree, arare, errore, orrore, afrore, agrore, aurore ▫ La forma del surface level è quella disponibile con l’errore ortografico, a questa corrispondono più forme lessicali • Si possono distinguere tre categorie di problemi ▫ Rilevazione di errori per non-parole – l’errore genera una parola che non appartiene al linguaggio (es. arrore) ▫ Correzione di errori per non-parole isolate ▫ Rilevazione e correzione di errori in base la contesto – Si considerano anche errori che generano parole corrette (es. fiori -> fori) 38 Marco Maggini Tecnologie per l'elaborazione del linguaggio Tipologie di errori • La tipologia di errori dipende da come è stato generato il testo ▫ battitura da tastiera (1%-3% di tasso di errore)… ma anche manoscritti ▫ riconoscimento in OCR per caratteri stampati o manoscritti (il tasso di errore è molto variabile e dipende dalla qualità della stampa/scrittura) ▫ La maggior parte degli errori sono singoli (~94% per dattiloscritti) inserimento – si aggiunge un carattere (sono -> sonno) cancellazione – si elimina un carattere (testo -> teto) sostituzione – si sbaglia carattere (errore -> ertore) trasposizione – si invertono due caratteri (questo-> quetso) ▫ Quindi buona parte degli algoritmi sono ottimizzati per gestire errori singoli La maggior parte degli errori sono errori tipografici dovuti ad errori nell’uso della tastiera (es. sostituzione di caratteri con tasti adiacenti) 39 Marco Maggini Tecnologie per l'elaborazione del linguaggio Il canale rumoroso • Gli errori si possono modellare come l’effetto di un canale rumoroso in cui entra un’istanza della forma lessicale ed in uscita si ottiene la forma del surface level word Noisy channel noisy word ▫ Occorre un modello del canale rumoroso (che tipo di errori può generare) ▫ Si può adottare un approccio di classificazione bayesiana correct-word = argmax P(word|observation) word ∈ V si sceglie la parola nel dizionario V che massimizza la probabilità che sia stata ottenuta dall’osservazione (P(w|o) realizza il modello dei possibili errori generati dal canale) ▫ 40 Marco Maggini Tecnologie per l'elaborazione del linguaggio Classificazione bayesiana • La massimizzazione del termine P(w|o) richiederebbe di poter calcolare P (w|o) per ogni parola del dizionario ▫ Si applica il teorema di Bayes per ottenere una forma più facilmente calcolabile P(w) è la probabilità a priori della parola w e può essere stimata in base alla sua frequenza in un corpus della lingua P(o|w) modella le possibili variazioni (l’osservazione o) che si possono ottenere a partire da una parola del dizionario w. Con opportune ipotesi si può costruire un modello P(o) è la probabilità a priori dell’osservazione o, ma essendo un termine a comune per tutte le parole può essere ignorato nella massimizzazione 41 Marco Maggini Tecnologie per l'elaborazione del linguaggio Stima della likelihood • La prior può essere stimata su un corpus applicando tecniche di smoothing che bilancino la stima per le parole rare (che possono non comparire nel corpus) ▫ N è il numero di parole nel corpus, |V| è il numero di parole nel dizionario. Ogni parola ha un bias di 0.5 nel conteggio. • La likelihood p(o|w) può essere stimata in base ad un modello dei possibili errori (inserimento/cancellazione/sostituzione/transposizione) dato il loro contesto ▫ Si può semplicemente stimare la probabilità che una lettera sia sostituita con un’altra usando un corpus di errori e calcolando la confusion matrix che nella posizione [‘a’,’s’] riporta il numero di volte che una ‘a’ è stata scambiata con una ‘s’ (Kernighan et al. 1990) 42 Marco Maggini Tecnologie per l'elaborazione del linguaggio Confusion matrix • Nel sistema proposto da Kernighan et al. (1990) si utilizzano 4 matrici di confusione stimate su esempi ▫ del[x,y] conta il numero di volte che i caratteri xy nella parola corretta sono stati scritti come x ▫ ins[x,y] conta il numero delle volte che il carattere x nella parola corretta è stato invece scritto come xy ▫ sub[x,y] è il numero di volte in cui x è stato scritto come y ▫ trans[x,y] è il numero di volte che xy è stato scritto come yx ▫ Con la scelta fatta gli inserimenti/cancellazioni sono ipotizzati dipendenti dal carattere precedente • Le matrici possono essere stimate con un procedimento iterativo ▫ si inizializzano le matrici con valori uguali ▫ si calcolano le correzioni usando l’ipotesi attuale o -> w ▫ si reitera usando i dati generati 43 Marco Maggini Tecnologie per l'elaborazione del linguaggio Calcolo di P(o|w) • L’algoritmo di Kernighan persuppone che ci sia stato un solo errore ▫ Data un’osservazione t si possono trovare le parole del dizionario c che possono essere ottenute a partire da c con un solo errore di quelli previsti ▫ Si può calcolare la likelihood come dove p è la posizione del carattere per cui la stringa osservata t e quella corretta c differiscono 44 Marco Maggini Tecnologie per l'elaborazione del linguaggio Minimum edit distance • Il caso generale in cui non si fanno assunzioni sul numero di errori può essere affrontato utilizzando l’idea di distanza fra stringhe ▫ Il metodo bayesiano può essere visto come una tecnica per calcolare una distanza fra coppie di stringhe La “più vicina” all’osservazione è al stringa del dizionario avente la probabilità più alta ▫ La minimum edit distance è definita come il numero minimo di operazioni di modifica necessarie a trasformare una stringa nell’altra i n t e n t i o n! i n t e n ε t i o n! e x e c u t i o n! ε e x e c u t i o n! Traccia Allineamento intention delete i ntention substitute n->e etention substitute t->x exention insert u exenution substitute n->c execution Lista delle operazioni 45 Marco Maggini Tecnologie per l'elaborazione del linguaggio Levenshtein distance • Si può assegnare un costo ad ogni operazione di modifica ▫ Nella distanza originale di Levenshtein (1966) ogni operazione ha costo 1 dL(intention,execution) = 5 ▫ Si possono usare funzioni di pesatura più complesse (ad esempio basate sulla matrice di confusione). Si ottiene l’allineamento più probabile • La minimum edit distance è calcolata con la programmazione dinamica (Bellman 1957) ▫ Il principio base è che la sequenza ottimale di operazioni di modifica per trasformare la stringa di partenza e in quella di arrivo è anche ottimale in ogni passo intermedio ▫ Se infatti esistesse un altro cammino fino ad una configurazione intermedia migliore rispetto a quello della sequenza ottimale, si potrebbe sostituirlo a quello considerato nella sequenza ottimale ottenendo un valore di costo migliore (che porta a una contraddizione) 46 Marco Maggini Tecnologie per l'elaborazione del linguaggio Calcolo della distanza • Si utilizza una matrice di distanza che ha una colonna per ogni simbolo nella sequenza obiettivo e una riga per ogni simbolo della stringa di partenza (edit-distance matrix) # e x e c u t i o n # 0 1 2 3 4 5 6 7 8 9 i n 2 2 2 3 4 5 6 7 7 7 t dist[i-1,j]+del-cost(si) 1 1 2 3 4 5 6 6 7 8 dist[i,j] = min dist[i-1,j-1]+subst-cost(si,tj) 3 3 3 3 4 5 5 6 7 8 dist[i,j-1]+ins-cost(tj) e 4 3 4 3 4 5 6 6 7 8 j-1 n 5 4 4 4 4 5 6 7 7 7 t 6 5 5 5 5 5 5 6 7 8 i 7 6 6 6 6 6 6 5 6 7 o 8 7 7 7 7 7 7 6 5 6 n 9 8 8 8 8 8 8 7 6 5 i-1 i subst ins j del 47 Marco Maggini Calcolo della distanza – Tecnologie per l'elaborazione del linguaggio subst-cost(s)=2 • Si può considerare un costo delle sostituzioni pari a 2 (corrisponde a considerare una sostituzione come applicazione di una cancellazione seguita da un inserimento) # e x e c u t i o n # 0 1 2 3 4 5 6 7 8 9 intention ! !! entention !subst(i,e) exntention !ins(x) ex☐tention!del(n) !2! !1! !1! e 4 3 4 5 6 7 8 9 10 9 ex☐ention !del(t) exention !subst(e,e) !1! !0! n 5 4 5 6 7 8 9 10 11 10 execntion !ins(c) !1! t 6 5 6 7 8 9 8 9 10 11 i 7 6 7 8 9 10 9 8 9 10 execuntion !ins(u) exec☐ution!del(n) !1! !1! i 1 2 3 4 5 6 7 6 7 8 n 2 3 4 5 6 7 8 7 8 7 t 3 4 5 6 7 8 7 8 9 8 o 8 7 8 9 10 11 10 9 8 9 n 9 8 9 10 11 12 11 10 9 8 iεnteεεntion! exεεecuεtion! 48 Marco Maggini Tecnologie per l'elaborazione del linguaggio context-sensitive spelling • Ci sono errori che risultano in parole corrette ▫ L’errore può essere evidenziato solo considerando le parole vicine (il contesto) Arrivo tra cinque minati Hai vesto il film? Sono di pessimo amore! ▫ Il problema si può solo affrontare considerando che alcune combinazioni di parole sono improbabili o meno probabili di altre ▫ In generale si può pensare di costruire un modello di linguaggio che permette di calcolare la probabilità di una data sequenza di parole ▫ Lo stesso modello può essere usato per predire qual è la parola più probabile da inserire in una sequenza incompleta ▫ Le probabilità possono essere stimate da collezioni di testi 49 Marco Maggini Tecnologie per l'elaborazione del linguaggio Word counting e N-grams • Occorre definire come si effettua il conteggio ▫ Si considerano anche gli elementi di punteggiatura? ▫ Si considerano le differenze fra maiuscole e minuscole? ▫ Si applica l’analisi morfologica/stemming? • Il modello di linguaggio più semplice (inaccurato) prevede che ogni parola compaia indipendentemente dalle altre ▫ Si considera p(word) stimata come #word/TotWords su un corpus di testi significativo ▫ Il testo è quindi visto come generato da una serie di eventi indipendenti • Un modello più accurato tiene conto delle probabilità condizionate fra parole adiacenti (bi-grammi) ▫ Si considera p(wordp|wordp-1) (es. computer acceso vs computer pera) ▫ Il modello è più accurato ma più difficile da stimare in modo preciso 50 Marco Maggini Tecnologie per l'elaborazione del linguaggio N-grammi e sequenze • Se si considerano le parole in una data posizione come eventi una frase di n parole è l’evento congiunto w1,w2,…,wn caratterizzato da una distribuzione di probabilità ▫ la probabilità si può fattorizzare applicando la regola a catena p(w1 , w2 , . . . , wn ) = p(w1 )p(w2 |w1 )p(w3 |w1 w2 ) . . . p(wn |w1 . . . wn−1 ) le probabilità p(wi|w1..wi-1) modellano la generazione delle parole date le precedenti nella frase Senza nessuna ipotesi la scrittura precedente è esattamente la stessa di quella di partenza (si applica solo la definizione di probabilità condizionata) Il problema è calcolare p(wi|w1..wi-1) dalle osservazioni, specie quando i cresce 51 Marco Maggini Tecnologie per l'elaborazione del linguaggio Modello su bi-grammi • Un’ipotesi semplificativa è considerare la dipendenza solo fra parole adiacenti ▫ In questo modo occorre solo stimare le probabilità condizionate relative ai bigrammi (coppie di parole adiacenti) ▫ Si devono quindi stimare le probabilità p(wi|wi-1) ▫ Con questa ipotesi risulta con questa ipotesi la parola p-esima della sequenza è indipendente da tutte le altre data quella che la precede L’ipotesi scelta corrisponde ad un’assunzione Markoviana, ovvero le sequenze sono generate da una catena di Markov che ha per stati le singole parole in realtà la parola p-esima dipende da tutte quelle precedenti ma attraverso la catena di scelte che vengono fatte via via 52 Marco Maggini Tecnologie per l'elaborazione del linguaggio Modello su N-grammi • Si può generalizzare il modello considerando N-grammi ▫ Si assume che una parola nella sequenza sia indipendente date le N-1 che la precedono ▫ Si applica l’approssimazione ▫ La probabilità di una sequenza è approssimata con dove si assume che le parole precedenti con indice minore di 1 siano uguali ad un simbolo speciale di “inizio sequenza”. Ad esempio per i bigrammi risulta 53 Marco Maggini Modelli N-gram - Tecnologie per l'elaborazione del linguaggio esempio • Gli N-grammi modellano dipendenze che derivano da ▫ regole grammaticali (es. ad un aggettivo segue probabilmente un nome) ▫ restrizioni semantiche (es. mangio un panino vs. mangio una chiave) ▫ restrizioni culturali (es. mangio un gatto) • Le probabilità dipendono dal contesto considerato ▫ si può modellare l’uso del linguaggio in un contesto ristretto specifico ▫ Es. Berkely Restaurant Project (Jurafsky et al., 1994) eat on eat some eat lunch eat dinner eat at eat a eat indian eat today 0.16 0.06 0.06 0.05 0.04 0.04 0.04 0.03 eat Thai eat breakfast eat in eat Chinese eat Mexican eat tomorrow eat dessert eat British 0.03 0.03 0.02 0.02 0.02 0.01 0.007 0.001 54 Marco Maggini Tecnologie per l'elaborazione del linguaggio Stima e calcolo dei modelli • Le probabilità coinvolte nei calcoli sono numeri minori di 1 ▫ La formula di combinazione è un prodotto che tende a diventare molto piccolo con potenziali problemi di underflow ▫ In genere i calcoli sono effettuati applicando il logaritmo (logprob) • La stima del modello può essere fatta contando gli N-grammi e normalizzando il conteggio usando un corpus di riferimento ▫ Ad esempio nel caso dei bigrammi al frequenza relativa è ▫ La stima con la frequenza relativa è un esempio di stima a massima verosimiglianza (Maximum Likelihood Estimation – Max P(corpus|M)) 55 Marco Maggini Tecnologie per l'elaborazione del linguaggio Limiti del LM su N-grams • L’accuratezza del modello cresce utilizzando valori di N maggiori ▫ Si modellano più precisamente i contesti sintattici/semantici ▫ Il problema però è la stima dei parametri del modello (le probabilità condizionate) ▫ Se il dizionario contiene D termini (forme di parole con inflessioni) i possibili N-grammi sono DN Un corpus “lungo” C parole contiene un numero di N-grammi uguale a C (ogni parola genera esattamente un sample per un N-gram) Per una stima corretta dei parametri occorrerebbe un corpus che cresce esponenzialmente rispetto all’ordine N degli N-gram Ad esempio con D=30000 i possibili bigrammi sono 900 milioni per cui un corpus con C=1.000.000 di parole non sarebbe adeguato a fare una stima accurata per il linguaggio in generale (sopratutto per i bigrammi più rari) Il modello risultante può quindi essere molto dipendente dal corpus usato per la stima 56 Marco Maggini Tecnologie per l'elaborazione del linguaggio Smoothing • Uno dei problemi della stima delle probabilità degli N-gram su un corpus di dimensioni limitate è che alcuni N-gram effettivamente corretti potrebbero non comparire ▫ La matrice per il calcolo delle frequenze relative dei bigrammi è in genere molto sparsa ▫ I bigrammi con zero occorrenze sarebbero considerati a probabilità 0 ▫ Analogamente la stima delle probabilità relative a N-gram con bassa frequenza è poco accurata ▫ Si possono applicare tecniche di smoothing per rivalutare gli N-gram con bassa (zero) probabilità ▫ In generale queste tecniche operano un aggiustamento del conteggio in base ad alcuni criteri 57 Marco Maggini Smoothing – Tecnologie per l'elaborazione del linguaggio add-one • La tecnica più semplice è la add-one che aggiunge 1 a tutti i conteggi ▫ E’ semplice ma non ha buone prestazioni ▫ Ad esempio per la stima delle probabilità degli unigrammi (parole singole) si utilizza #w* è il conteggio con la “correzione” add-one ▫ Per i bigrammi analogamente si ottiene la variazione in questo caso può essere significativa perché |D| può essere molto maggiore di #wp-1 (si considerano possibili tutti i bigrammi) 58 Marco Maggini Smoothing – Tecnologie per l'elaborazione del linguaggio Witten-Bell Discounting 1 • Si basa sull’osservazione che un evento non osservato è un evento che non si è ancora manifestato (ma può) ▫ La probabilità di vedere un N-gram con frequenza nulla è modellata con la probabilità di vedere un N-gram per la prima volta Si utilizza il conteggio degli eventi visti una volta T per stimare il conteggio di quelli mai visti se si sono visti molti eventi è probabile che se ne vedranno molti anche in futuro ▫ Il numero di N-gram visti per la prima volta è esattamente il numero di N-gram diversi trovati nel corpus ▫ La probabilità totale di tutti gli N-gram non visti - p(new) - è stimata da T è il numero di eventi nuovi osservati N è il numero di eventi osservati 59 Marco Maggini Smoothing – Tecnologie per l'elaborazione del linguaggio Witten-Bell Discounting 2 • Se poi si assegna uguale probabilità a tutti gli eventi non visti ▫ Si devono ridurre in modo coerente le probabilità degli eventi visti • Per i bigrammi (N-gram) i conteggi da considerare sono condizionati al contesto ▫ I conteggi da considerare sono T(wx) - numero di nuovi tipi di bigrammi osservati in cui wx è la parola precedente – e N(wx) – numero totale di bigrammi che hanno wx come parola precedente 60 Marco Maggini Smoothing – Tecnologie per l'elaborazione del linguaggio Witten-Bell Discounting 3 • La probabilità complessiva dei bigrammi riferiti a wx che non si sono osservati è ▫ Distribuendo uniformemente la probabilità su tutti i bigrammi non visti si ottiene p∗ (wi |wi−1 ) = T (wi−1 ) if (#(wi−1 wi ) = 0) Z(wi−1 )(N (wi−1 ) + T (wi−1 )) ▫ Per i bigrammi con frequenza non nulla si ottiene la probabilità 61 Marco Maggini Smoothing – Tecnologie per l'elaborazione del linguaggio Good-Turing • Si riassegna la probabilità agli N-gram con conteggio nullo (o basso) utilizzando gli N-gram con conteggi più alti ▫ Nc è il numero di N-gram che occorrono c volte (N0è il numero di bigrammi che compaiono 0 volte, N1 quelli con conteggio uguale a 1,..) ▫ La stima Good-Turing modifica il conteggio in modo tale che ad esempio il conteggio per i bigrammi non osservati (c=0) è stimato come il numero di bigrammi osservato una volta diviso per il numero di bigrammi mai osservati (dai |D|2 possibili bigrammi si tolgono quelli osservati) in genere si applica solo per c ≤ k (es. k=5) ovvero si considerano affidabili i conteggi sopra una certa soglia 62 Marco Maggini Tecnologie per l'elaborazione del linguaggio Backoff • Se non si hanno osservazioni per un particolare N-gramma si può cercare di stimare la sua statistica usando gli N-1-grammi correlati ▫ per stimare la probabilità P(wp|wp-1wp-2) si può usare la conoscenza della P(wp|wp-1) ▫ per stimare la probabilità del bigramma P(wp|wp-1) si può usare le informazioni disponibili sull’unigramma P(wp) • Le tecniche di backoff utilizzano la gerarchia fra gli N-gram per migliorare le stime ▫ Ad esempio per i trigrammi si può usare la stima 63 Marco Maggini Tecnologie per l'elaborazione del linguaggio backoff & discounting • Le tecniche di smoothing/discounting “prelevano” una parte di probabilità dagli eventi osservati per distribuirla (in modo uniforme) agli eventi non osservati ▫ Si può combinare una tecnica di smoothing che indica la parte di probabilità da assegnare agli eventi non osservati con il backoff che fornisce una modalità per ripartire la probabilità fra gli eventi considerati ▫ D’altra parte col backoff si assegna una probabilità non nulla a eventi che con la semplice stima MLE avrebbero invece una probabilità pari a zero per cui occorre ripartire questa probabilità aggiunta su tutti gli eventi ▫ La stima generale delle probabilità può essere scritta come dove θ(p) = 0 se p>0 e θ(p) = 1 se p=0 seleziona o meno il backoff 64 Marco Maggini Backoff & discounting Tecnologie per l'elaborazione del linguaggio – calcolo 1 • Le probabilità degli N-gram non nulle sono stimate con ▫ dove il conteggio con discount #* permette di poter trasferire la probabilità agli eventi non osservati ▫ La quantità di probabilità da trasferire a un dato contesto che rappresenta un (N-1)-gram è ▫ Ciascun (N-1)-gram prenderà solo una frazione di β 65 Marco Maggini Backoff & discounting Tecnologie per l'elaborazione del linguaggio – calcolo 2 • Le probabilità degli (N-1)-gram sono calcolate dai β normalizzando rispetto alla probabilità totale assegnata ▫ deriva il valore dei coefficienti α da usare nel backoff ▫ la quantità di discount applicata ad ogni N-gram e la frazione riassegnata ai singoli (N-1)-gram sono specifiche per ogni N-gram ▫ Riassumendo per i trigrammi la formula di backoff è