Modelli di Markov

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