Linguistica Computazionale Linguaggio e probabilità 21 ottobre 2014 Probabilità condizionata l P(A|B) l probabilità che si verifichi A dato che sappiamo che è avvenuto B l l Supponiamo di avere estratto un bigramma <v1, v2> e di sapere che v1 = Art. Qual è la probabilità che v2 = N? l l equivalente a determinare il valore di P(N|Art) Per stimare P(N|Art), consideriamo il rapporto tra i bigrammi <Art, N> e i bigrammi <Art, vi> (= l’insieme di tutti i bigrammi la cui prima parola è un articolo) l l l l se A e B sono dipendenti, il fatto di sapere che B è avvenuto altera la probabilità da assegnare ad A, ovvero P(A)≠P(A|B) P(N|Art) ≈ fArt, N/fArt, v i poiché in pratica fArt, v = fArt allora P(N|Art) = fArt, N/fArt i P(N|Art) = fArt, N/fArt = 18/25 = 0,72 Attenzione!!! l P(N|Art) = 0,72 P(N) = 0,2 2 Probabilità condizionata l Dato P(N|Art) = fArt, N / fArt , posso dividere numeratore e denominatore per |C|, esprimendo P(Art|N) come rapporto tra frequenze relative, ovvero tra probabilità: l l l l l P(N|Art) = fArt, N/fArt = 0,72 P(N|Art) = fArt, N/|C| / fArt/ | C| = P(Art, N) / P(Art) P(Art, N) / P(Art) = 0,18 / 0,25 = 0,72 In generale vale che (se P(B)≠0): Regola del Prodotto P( A ∩ B) P( A | B) = P( B) P( A ∩ B) = P( B) ∗ P( A | B) l ATTENZIONE!! Se A e B sono indipendenti, P(A|B) = P(A) l P(A∩B) = P(B)*P(A|B)=P(B)*P(A) 3 Probabilità congiunte probabilità di bigrammi l Ipotesi: l l l P(Art, N) ≈ fArt, N/|C| = 18/100 = 0,18 P(Art, V) ≈ fArt, V/|C| = 3/100 = 0,03 N, V e Art non sono indipendenti!!! l l l |C| = 100 fN = 20 fArt = 25 fV = 20 |bigrammi| = |C| = 100 fArt, N = 18 fArt, V = 3 P(N|Art) = 0,72 P(V|Art) = 0,12 P(N) = 0,2 P(V) = 0,2 Per calcolare la probabilità congiunta è necessario usare la probabilità condizionata l P(Art, N) = P(Art) * P(N|Art) (regola del prodotto) l l P(Art, N) ≈ fArt/|C| * fArt, N/fArt = 25/100 * 18/25 = 0,25 * 0,72 = 0,18 P(Art, V) = P(Art) * P(V|Art) (regola del prodotto) l P(Art, V) ≈ fArt/|C| * fArt, V/fArt = 25/100 * 3/25 = 0,25 * 0,12 = 0,03 4 Modelli a n-grammi l Language modelling (word prediction) l l Rispondere a questa domanda è equivalente a trovare la parola w che massimizza la seguente probabilità: l l data una sequenza di parole w1,…,wn-1, qual è la parola wn che segue la sequenza? l Il cane ha mangiato la X P(w | w1,…, wn-1) l equivale a determinare la parola w per la quale P(w1,…,wn-1,w) ha il valore maggiore I modelli a n-grammi assegnano una distribuzione di probabilità a sequenze di parole l usano n-1 parole di contesto precedente per predire n 5 Chain Rule l La regola del prodotto può essere generalizzata per calcolare la probabilità di n eventi congiunti Chain Rule P(A1,…, An ) = P(A1) ∗ P(A2 | A1 ) * P(A3 | A1, A2 ) *…* P(An | A1,…, An−1 ) l La Chain Rule permette di calcolare la probabilità di sequenze di caratteri, parole, frasi l Esperimento € l l l estrarre sequenze (stringhe) di 6 caratteri da un testo Qual è la probabilità di estrarre la stringa “azione”? l P(a,z,i,o,n,e) = P(a)*P(z|a)*P(i|a,z)*P(o|a,z,i)*P(n|a,z,i,o)*P(e|a,z,i,o,n) le probabilità possono essere stimate con le frequenze di n-grammi 6 Chain Rule l Esperimento l l Qual è la probabilità della frase “La macchina rossa insegue la bicicletta”? l l estrarre frasi di 6 parole da un testo P(la, macchina, rossa, insegue, la, bicicletta) = P(la)*P(macchina| la)*P(rossa|la , macchina)*P(insegue|la, macchina, rossa)*P(la| la, macchina, rossa, insegue)*P(bicicletta|la, macchina, rossa, insegue, la) PROBLEMA! l È difficile stimare probabilità condizionate da stringhe molto lunghe l bisogna lavorare con trigrammi, quadigrammi, ecc. 7 Stimare la probabilità di una frase l I dati sono troppo sparsi l l in Pinocchio le parole hapax sono il 54,74%; i bigrammi hapax sono 18.780 (su 24.990) (75%), e il numero degli hapax cresce se passiamo a trigrammi o quadrigrammi l Se uno dei termini della chain rule è 0, l’intera frase riceve probabilità = 0 l Problema: l come distinguere una frase “rara” ma possibile, da una impossibile (= agrammaticale) l l l Gianni crede che Maria pensi che Paolo abbia la macchina. * Paolo la ha macchina. il rischio è che a causa della sparsità dei dati ad entrambe le frasi venga assegnata probabilità = 0 8 Modelli di Markov Un modello di Markov di ordine n assume che ciascun evento Ei in una sequenza di eventi E1,…,En dipende solo da una finestra limitata di n eventi che lo precedono l l gli n eventi da cui Ei dipende rappresentano la sua storia Modello di Markov di ordine 0 l l ogni evento è indipendente dagli altri P(A1,…, An ) = P(A1) ∗ P(A2 ) *…* P(An ) Modello di Markov di ordine 1 l l ogni evento dipende solo dall’evento precedente € 1,…, An ) = P(A1) ∗ P(A2 | A1 ) * P(A3 | A2 ) *…* P(An | An−1 ) P(A Modello di Markov di ordine 2 l l € ogni evento dipende solo dai due eventi precedenti P(A1,…, An ) = P(A1) ∗ P(A2 | A1 ) * P(A3 | A1, A2 ) *…* P(An | An−2, An−1 ) 9 Modelli (catene) di Markov l l I modelli (catene) di Markov permettono di creare modelli probabilistici di sequenze linguistiche per le quali si assume che esista un particolare tipo di dipendenza tra gli elementi della sequenza Per un modello di ordine 1, vale che P(w1,…,w n ) = P(w1) ∗ P(w 2 | w1 ) * P(w 3 | w 2 ) *…* P(w n | w n−1 ) l In un modello di Markov di ordine n la probabilità di una sequenza è calcolata come il prodotto di probabilità di n+1-grammi € l l modelli di ordine 1 à bigrammi modelli di ordine n à n+1 grammi € f (< w n−1,w n >) P(w n | w n−1) = f (w n−1) P(w n | w n−i ,...,w n−1 ) = f (< w n−i ,...,w n−1,w n >) f (< w n−i ,...,w n−1 >) 10 Modelli (catene) di Markov l Qual è la probabilità di La macchina rossa insegue la bicicletta? l assunzione markoviana: la probabilità di ciascuna parola dipende solo dalla parola precedente l l modello di markov di ordine 1 P(la, macchina, rossa, insegue, la, bicicletta) = P(la)*P(macchina| la)*P(rossa|macchina)*P(insegue|rossa)*P(la|insegue)*P(bicicletta| la) l le probabilità possono essere stimate con la frequenza di bigrammi di parole in un corpus § l meno sparsi di trigrammi, ecc. P(la, macchina, rossa, insegue, la, bicicletta) ≈ f(la)/|C| * f(la, macchina)/f(la) * f(macchina, rossa)/f(macchina) * f(rossa, insegue)/ f(rossa) * f(insegue, la)/f(insegue) * f(la, bicicletta)/f(la) 11 Generative language models l Sia S un certo insieme di strutture linguistiche (es. parole, frasi, ecc.) l l l definire un modello probabilistico markoviano per S equivale ad assumere che le strutture di S sono state “generate” da un sistema probabilistico, che produce quel tipo di strutture secondo una certa distribuzione di probabilità (modelli generativi) l per ogni struttura s∈S, esiste una certa probabilità che essa venga generata dal sistema l la probabilità che venga prodotta una certa parola dipende solo da un numero n limitato di parole precedenti Definizione del modello = decidiamo l’ordine della catena markoviana Stima dei parametri = stimiamo le probabilità condizionate che compongono il modello markoviano usando n-grammi estratti da un corpus 12 Modelli di Markov in linguistica l I modelli a n-grammi sono usati per il risolvere il problema del “word prediction” l data una sequenza di parole w1,…,wn-1, qual’è la parola seguente wn? l Il cane ha mangiato la X storia l parola da predire adottare un modello di Markov di ordine 1, implica assumere che ciascuna parola dipende solo dalla parola precedente l per il “word prediction” vengono in genere adottati modelli a trigrammi (modelli di ordine 2) 13 La lingua e i modelli di markov l l Addestriamo un modello di markov di ordine n a partire da un corpus di addestramento (CA) Usiamo il modello addestrato per generare sequenze di parole l l l l l le parole vengono generate con una probabilità dipendente dai parametri del modello Modello di markov di ordine 0 l “cane il il mangia rincorso ha il e ha gatto il cane rincorso palla il ...” Modello di markov di ordine 1 l “il cane il gatto rincorre e la palla ha ricorso il gatto la palla il gatto ...” Modello di markov di ordine 2 l “il cane rincorre la palla il gatto ha rincorso il cane...” Con l’aumentare dell’ordine, le sequenze generate dal modello approssimano meglio i vincoli strutturali della lingua reale 14 Modelli di Markov in linguistica un esempio l Language recognition task - Come possiamo decidere se la stringa “action” è italiana o inglese senza avere un dizionario a disposizione? l confrontiamo la probabilità che questa stringa sia “generata” da un modello di markov per l’italiano con la probabilità che sia generata da un modello di markov per l’inglese l P(a,c,t,i,o,n) = P(a)*P(c|a)*P(t|c)*P(i|t)*P(o|i)*P(n|o) § modello di markov di ordine 1 15 Modelli di Markov in linguistica un esempio l l P(a,c,t,i,o,n) = P(a)*P(c|a)*P(t|c)*P(i|t)*P(o|i)*P(n|o) Ingredienti: due training corpora rappresentativi dell’italiano e dell’inglese con cui stimare le probabilità l ATTENZIONE! In italiano la sequenza “ct” è molto meno frequente che in inglese, e dunque P(t|c) stimata sul corpus inglese è molto maggiore che P(t|c) stimata sul corpus italiano l a parità degli altri fattori, Pitaliano(a,c,t,i,o,n) < Pinglese(a,c,t,i,o,n) § è molto meno probabile che la stringa “action” venga generata dal dal sistema probabilistico italiano che da quello inglese 16