Consorzio ICoN – Italian Culture on the NetUniversita di Bari, Cassino, Catania, Genova, I.U.L.M., Milano Statale,
Napoli L’Orientale, Padova, Parma, Pavia, Perugia per Stranieri, Pisa,
Roma La Sapienza, Roma Tor Vergata, Roma Tre, Salerno, Siena per
Stranieri, Teramo, Torino, Trento e Venezia
Corso di Laurea in Lingua e Cultura italiana per
stranieri
[Classe 5 delle lauree in Lettere]
UTILIZZAZIONE DI
“HIDDEN MARKOV MODELS” ED
ALTRI MODELLI PER IL
TAGGING DELL’ITALIANO
Relatore: Candidato:
Chiarissimo Professor Alessandro Lenci Tiago Tresoldi
Anno Accademico 2006-2007
Indice
1 Introduzione 5
2 Il processo di tagging 7
2.1 Tokens e tipi . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Le tag-sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Tipi di taggers . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Unigramma . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 “Hidden Markov Models” . . . . . . . . . . . . . . . . 11
2.3.3 “Maximum-Entropy” (“Massima Entropia”) . . . . . . 11
2.3.4 “Transformation-Rules” (Apprendimento basato su tra-
sformazioni motivate da errori) . . . . . . . . . . . . . 12
2.3.5 “Example-Based” (“Modelli basati su esempi”) . . . . 13
2.3.6 Altri tipi di tagger . . . . . . . . . . . . . . . . . . . . 13
2.4 Valutazione dell’accuratezza di un tagger . . . . . . . . . . . . 14
3 Markov Models (“Catene di Markov”) 15
3.1 Catene di Markov non nascoste . . . . . . . . . . . . . . . . . 16
3.2 Catene di Markov nascoste . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Esempio di una Catena di Markov nascosta . . . . . . 18
3.2.2 Algoritmo di Viterbi . . . . . . . . . . . . . . . . . . . 19
3.2.3 Difficolta per l’utilizzo degli HMM . . . . . . . . . . . 20
3.3 Implementazione . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Metodi di Estimation e Discounting 23
4.1 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Metodi di calcolo di probabilita . . . . . . . . . . . . . . . . . 24
4.2.1 Maximum-Likelihood Estimator . . . . . . . . . . . . . 24
4.2.2 Laplace and Lidstone Estimators . . . . . . . . . . . . 25
3
INDICE
4.2.3 Good-Turing Discounting . . . . . . . . . . . . . . . . 26
4.2.4 Witten-Bell Discounting . . . . . . . . . . . . . . . . . 27
4.2.5 Absolute Discounting . . . . . . . . . . . . . . . . . . . 27
4.2.6 Linear Discounting . . . . . . . . . . . . . . . . . . . . 27
4.2.7 Held-Out Estimation e Cross Validation . . . . . . . . 27
4.3 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Analisi empirica 31
5.1 Corpus utilizzato . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Taggers utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.4 Un’alternativa: tagger per votazione . . . . . . . . . . . . . . 35
6 Conclusione 39
Bibliografia 41
4
Capitolo 1
Introduzione
Il part-of-speech tagging, processo di classificazione grammaticale automati-
ca delle parole di un testo, e una delle piu importanti tappe per qualsiasi
sistema di Natural Language Processing (NLP) 1. Infatti, oltre al fatto che
la maggior parte delle funzionalita avanzate dipendano da una classificazio-
ne grammaticale e strutturale esente da errori e senza ambiguita, i metodi
sviluppati per quest’ultima sono, non di rado, estesi ad altri tipi di valuta-
zione ed assegnazione, tra i quali ricordiamo l’analisi semantica ([Bird04]) e
la trascrizione fonetica da corpora ortografici ([Amaral98]).
Scopo di questa tesi e comprovare la possibilita di utilizzare gli “Hidden
Markov Models”2 (HMM) per la classificazione grammaticale di testi in ita-
liano, discutendone le prestazioni. A tal fine, viene introdotto il campo del
tagging tramite una breve descrizione dei principali metodi disponibili (ca-
pitolo 2), a cui segue una descrizione teorica e pratica degli HMM (capitolo
3). I principali metodi di estimation e discounting vengono discussi a parte
(capitolo 4), poiche, come esposto nel capitolo 3, costituiscono il punto di
principale difficolta per il modello scelto. Il capitolo 5 presenta un’analisi
empirica delle prestazioni di un tagger HMM sviluppato a dimostrazione di
questa tesi; tali prestazioni vengono confrontate con quelle di altri tipi di
taggers. Un metodo per la combinazione dei diversi risultati viene esamina-
to a conclusione del capitolo, affiancato da un’analisi dell’accuratezza e da
alcuni suggerimenti per ricerche future.
Per il lavoro, e stata utilizzata una versione ridotta di un corpus forma-
1“Trattamento computazionale di linguaggio naturale”2“Modelli Nascosti di Markov”, ma data la grande diffusione della terminologia inglese
in Italia abbiamo deciso di non tradurre l’espressione.
5
Introduzione
to da sezioni di articoli de La Repubblica, fornito dall’Istituto di Lingui-
stica Computazionale del Consiglio Nazionale Ricerche, diviso in un’area di
training ed una di test. Le caratteristiche di questo corpus, che d’ora in avan-
ti chiameremo RepubblicaRidotto, e le loro implicazioni nei risultati ottenuti
sono discussi in 5.1.
6
Capitolo 2
Il processo di tagging
Come visto nel capitolo 1, il part-of-speech tagging, o piu semplicemente
tagging , e una delle principali tappe per qualsiasi sistema di NLP, dato che
esso viene frequentemente utilizzato come tappa intermedia, utile a rive-
lare la struttura inerente al testo in analisi ([Manning-Schutze99]). Que-
ste informazioni relative alla “struttura inerente” vengono espresse tramite
tags (“etichette”), generalmente attribuite ad ogni singola parola; tali tags
informano la classificazione grammaticale delle parti che compongono il testo,
come nell’esempio di seguito1.
Inconsueto/A-MS allarme/S-MS alla/E-FS Tate/SPNN
Gallery/SPNN :/PU una/RIFS sala/S-FS ha/V-S3IP
dovuto/V-MSPR essere/V-F sgomberata/V-FSPR per/E
una/RIFS fuga/S-FS di/E gas/S-MN tossico/A-MS da/E
una/RIFS scultura/S-FS moderna/A-FS in/E vetro/S-MS
che/P-NN simboleggia/V-S3IP /PU i/RDMP
pericoli/S-MP della/E-FS vita/S-FS /PU ./PU
Si noti come tutte le parole (o, piu precisamente, tutti i tokens, come
descritto in 2.1) vengono classificate: in particolare, non si distingue, a questo
scopo, tra “segni di punteggiatura”, “numeri” e “parole”.
Compito di un tagger (il programma che effettua la classificazione au-
tomatica) e attribuire la tag corretta anche nei molti di casi di ambiguita,
come ad esempio la parola “essere” che, dipendendo dalla funzione eserci-
tata, deve essere classificata come “sostantivo maschile” oppure come “verbo
1Estratto da RepubblicaRidotto; gli elementi a sinistra sono le parole dall’articolo, gli
elementi a destra le tags corrette.
7
Il processo di tagging
infinito”. L’accuratezza (“precisione”) di un tagger (si veda 2.4) dipende da
fattori quali la lingua, il genere testuale e l’insieme di tags utilizzate (si veda
2.2); per l’italiano, le nostre sperimentazioni hanno dimostrato che persino
per i tagger piu semplici la precisione si situa attorno a 85%. Queste pre-
stazioni possono essere migliorate con taggers piu elaborati, ma a partire
da 92-94% il miglioramento delle prestazioni diventa molto difficile, a causa
principalmente delle ambiguita intrinseche dei testi, oltre che alla propria
classificazione adoperata (si pensi alle occasioni in cui neppure gli esperti
concordano su una classificazione grammaticale). Prestazioni vicine al 95%
di accuratezza (una tag sbagliata su venti) sono comunque fattibili e molti
tagger sono capaci di classificare correttamente intere frasi. Si deve ricordare
che una revisione umana delle tags assegnate automaticamente e piu veloce
e meno dispendiosa di un tagging completamente manuale.
2.1 Tokens e tipi
Nel discutere sul tagging, e fondamentale distinguere fra tokens e tipi : i
primi sono le singole occorrenze, “concrete”, di parti del testo; i secondi,
come indicato dal nome, sono tipi “astratti” di tokens, ai quali rimandano
tutti i tokens uguali in apparenza.
Ad esempio, la frase “La sposa si sposa.” e costituita da cinque di-
versi tokens che si succedono in un ordine preciso (“La”, “sposa”, “si”,
“sposa” e “.”), ma soltanto da quattro tipi “astratti” senza un ordine spe-
cifico (“.”, “la”, “si” e “sposa”)2. Non e dunque difficile capire che le tags
vengano assegnate non ai tipi, ma ai singoli tokens (in questo caso, il primo
token “sposa” e un sostantivo, mentre il secondo un verbo); infatti, ogni
token “concreto” avra sempre una e solo una tag corretta3.
Data la distinzione fra tokens e tipi, e possibile dedurre che in ogni corpus
il numero dei primi sara maggiore del numero degli ultimi: nella sezione di
training del RepubblicaRidotto, per esempio, vi sono 184.047 tokens e 26.187
tipi (si veda 5.1).
2In molte occasioni, non si distingue tra lettere maiuscole e minuscole nell’ambito dei
tipi.3Una discussione grammaticale piu rigorosa ed un’analisi empirica piu attenta por-
rebbero seri limiti a quest’ultima affermazione, ma per il campo del tagging possiamo e
dobbiamo partire da questo postulato.
8
2.2 Le tag-sets
2.2 Le tag-sets
Il tagging attribuisce ad ogni token una tag che, normalmente, riporta infor-
mazioni grammaticali4, ma non vi e alcuna determinazione o obbligo quanto
a tipi o gradi di classificazione. Gli insiemi di tags possibili adottati da un
modello vengono chiamati tag-sets e possono presentare gradi di dettaglio
diversi: si va da una distinzione minima fra “nomi”, “verbi” ed “altro” ad
una classificazione estremamente dettagliata, comprendente caratteristiche
secondarie come la distinzione tra nomi maschili e femminili o fra tempi ver-
bali. Il tag-set impiegato dal corpus RepubblicaRidotto e di quest’ultimo tipo:
molto dettagliato, con piu di 150 tags diverse per la sezione di training5.
Il tag-set adoperato influisce direttamente sull’accuratezza e sulla scelta
del tipo di tagger da utilizzare: infatti, se da una parte tag-sets di dimensioni
ridotte permettono, in teoria, maggiori accuratezze giacche l’ambiguita per
i tipi viene necessariamente ridotta, d’altra parte questa medesima ambi-
guita ridotta puo rendere difficile la generalizzazione di contesti da parte dei
taggers, poiche gli esempi analizzati vengono semplificati fino a confondersi.
In pratica, i taggers finiscono per non essere capaci di creare modelli validi,
perche incapaci di distinguere le diverse situazioni presentate.
2.3 Tipi di taggers
Le prime ricerche in campo di Natural Language Processing, fra il 1960 e il
1985, utilizzavano un approccio razionalista ([Manning-Schutze99]): i taggers
erano, in essenza, una serie di regole compilate manualmente che imitavano
i processi mentali di classificazione delle parole. Risultati non sempre sod-
disfacenti ed elevati costi di elaborazione, alleati al progresso delle capacita
di calcolo disponibili, fecero sı che in anni recenti l’interesse si sia indirizzato
ad un approccio che si potrebbe definire “empirista” ([Manning-Schutze99],
[Bird04]): sono ormai diffusi sistemi che cercano di creare automaticamente
(valendosi in modo speciale dei campi della probabilita e della statistica) mo-
delli di tagging dai risultati molte volte sorprendenti vista la loro semplicita
([Bird04]).
4Vi sono modelli che lavorano con altre classificazioni, quali la distinzione semantica o
l’identificazione di limiti frasali, che non verranno considerati in questa tesi.5E difficile indicare con precisione il numero totale di tags del tag-set di questo corpus,
poiche viene utilizzato un sistema di tags componibili.
9
Il processo di tagging
Il funzionamento di questi tipi di taggers e diviso in due fasi: una prima,
piu lenta, di training (“allenamento”) su corpora con tags verificate manual-
mente (dette golden tags, “tags auree”), ed una seconda fase che esegue il
tagging dei testi.
Ecco qui di seguito le descrizioni dei principali tipi di taggers disponi-
bili, molti dei quali sono stati utilizzati comparativamente durante la valu-
tazione del nostro tagger HMM (capitolo 5). Per maggiori informazioni, si
raccomandano [Schroder02], [Jurafsky-Martin00] e [Bird04].
2.3.1 Unigramma
I tagger Unigramma sono i taggers statistici piu semplici: ad ogni token vie-
ne assegnata la tag piu comune per il suo tipo (secondo la frequenza rilevata
durante il training), senza analisi del contesto di occorrenza o della funzione
sintattica esercitata6. Ad esempio, nel corpus RepubblicaRidotto un token
“la” verra segnalato da un tagger Unigramma sempre quale “articolo de-
terminativo femminile”, la tag piu comune per il suo tipo, senza considerare
altre classificazioni possibili quale “pronome personale complemento”. Nei
molti casi in cui il tagger Unigramma rilevi un token “raro” (ossia di un
tipo non comparso durante la fase di training e percio sconosciuto), gli viene
assegnata la tag piu frequente o, in sistemi piu elaborati, la tag piu comune
tra i tokens rari7.
La descrizione del funzionamento di questo tagger potrebbe provocare
una diffidenza istintiva a riguardo: un tagger “inutile” perche troppo limita-
to e semplice. Si tratta pero di un sistema efficace: molti tipi non presentano
alcuna ambiguita (per il corpus RepubblicaRidotto, il 92% dei tipi e limitata
ad una sola tag) e in generale la tag piu comune e quella corretta per la mag-
gior parte dei casi rimanenti; nel RepubblicaRidotto, ad esempio, “la” funge
da articolo il 98% delle volte. Di conseguenza, i risultati sono abbastanza
soddisfacenti, como dimostrato nel capitolo 5.
6Vi sono estensioni a questo tipo, che includono nell’analisi sia tokens che antecedono
quello in questione sia, a volte, tokens che lo seguono. Ad ogni modo, la tag assegnata e
sempre la piu probabile o, in altri termini, la piu comune.7Poiche la tag piu comune sara normalmente quella per i segni di punteggiatura, anche
se, salvo pochissime eccezioni, i tokens rari si restringono alle categorie grammaticali
aperte: nomi, aggettivi, verbi ed avverbi.
10
2.3 Tipi di taggers
2.3.2 “Hidden Markov Models”
Gli Hidden Markov Models sono il modello dominante nel campo del rico-
noscimento del parlato ([Jurafsky-Martin00] e [Schroder02]) e vengono uti-
lizzati con frequenza nel campo della classificazione grammaticale (si veda
[Manning-Schutze99], oltre a [Schroder02] e [Bird04]).
Si tratta di un tipo di tagger fondamentalmente statistico, che considera
le sequenza di tokens fornita come risultato (“emissione”) di una catena sot-
tostante e non direttamente osservabile (da cui il nome hidden, “nascosta”)
di tags. I modelli sono composti dalle probabilita statistiche, calcolate du-
rante la fase di training, di “trasmissione” (passaggio da una tag all’altra)
e “emissione” (token como risultato di una tag sottostante). Tra i vantaggi
di questo tagger elenchiamo la velocita di esecuzione e l’accuratezza general-
mente buona, soprattuto nei casi in cui i modelli considerano il contesto e
l’ambiguita specifica di ogni tipo ([Jurish03]).
Questo tagger e il tema centrale di questa tesi, e viene discusso piu
profondamente nel capitolo 3.
2.3.3 “Maximum-Entropy” (“Massima Entropia”)
I taggers a Massima Entropia, anch’essi essenzialmente statistici, sono il tipo
piu studiato ed utilizzato oggi, date le prestazioni frequentemente eccellenti
ed il fatto che essi limitano alcuni problemi di interdipendenza statistica
comuni ad altri tipi di taggers quali gli HMM ([Schroder02]).
I taggers a Massima Entropia partono da un principio teorico che puo
essere ridotto alla “regola del piu semplice”: tra le molte possibilita di di-
stribuzione probabilistica, la migliore e in generale la piu semplice o, in ter-
mini statistici, quella che considera esclusivamente i casi osservati durante il
training (senza accomodare casi non osservati ma teoricamente possibili). A
questa caratteristica deve il tagger il suo nome: l’entropia, nel campo della
“teoria dell’informazione”, e una misura quantitativa dell’incertezza inerente
ad un “contenuto di informazione”; quanto maggiore l’entropia, minore l’in-
certezza. Nelle parole di uno dei primi autori a trattare questo tipo di tagger,
Ratnaparkhi (1998), riportate da [Schroder02]:
“We shall not make any additional assumptions besides the ex-
plicit ones. From all admissible probability distributions, the
11
Il processo di tagging
one that maximizes the entropy (or “uncertainty”) is the most
appropriate choice.”8
2.3.4 “Transformation-Rules” (Apprendimento basa-
to su trasformazioni motivate da errori)
Questo tipo di tagger (piu conosciuto in Italia con la terminologia inglese
“Error-driven transformation-based learning”) puo essere considerato il di-
scendente empirico dei primi tipi di tagger razionalisti. Infatti, dopo una
classificazione iniziale (normalmente con un metodo statistico semplice quale
un tagger Unigramma), una serie di iterazioni elabora una lista di regole di
transformazione (del tipo “se viene rilevato il contesto C, assegna al token
G la tag T”), le quali, applicate successivamente ai risultati della classi-
ficazione iniziale, correggono gli errori commessi, con l’aumento gradativo
dell’accuratezza. Per spiegare questo tipo di tagger, Bird ([Bird04]) utilizza
la metafora di un pittore, che dipinge i colori principali sottostanti e suc-
cessivamente apporta modifiche man mano piu piccole, fino ad ottenere il
risultato desiderato.
Il funzionamento puo essere dimostrato con alcune delle regole di trasfor-
mazione generate sul nostro corpus di lavoro RepubblicaRidotto:
rare(0) → tag(0) = SPNN
tag(−1) = V-S3IP, word(0) = che → tag(0) = C
tag(−1) = S-FS, tag(0) = S-FS → tag(0) = A-FS
La prima regola di trasformazione indica che se il tagger incontra un
token raro, deve assegnargli la tag per “nome proprio” (“SPNN”)9. La seconda
regola, piu complessa, informa che se un verbo indicativo presente alla terza
persona del singolare (“V-S3IP”) viene seguito da un token di tipo “che”,
a quest’ultimo deve essere assegnata la tag “C” (“congiunzione”). Infine, la
terza regola indica che se, dopo le prime tappe di tagging, vengono incontrati
due sostantivi femminili (“S-FS”) di seguito (indici −1 e 0, dove 0 indica il
8“Non dobbiamo ammettere niente oltre a cio che e esplicito. Fra tutte le distribuzioni
di probabilita ammissibili, quella che massimiza l’entropia (o “incertezza”) e la scelta piu
appropriata.”9Ed un’analisi dei corpora rivela che “SPNN” e proprio la tag piu comune in questo caso.
12
2.3 Tipi di taggers
token analizzato e −1 l’anteriore), il secondo deve essere “trasformato” in
“aggettivo femminile” (tag “A-FS”).
Il grande vantaggio di questo tipo di tagger, oltre alla capacita di studiare
e spiegare con facilita i suoi modelli, e la possibilita di intervenire nelle regole
di trasformazione da esso generate. Infatti, queste ultime sono normalmente
analizzate da esperti prima della fase di tagging, che affiancano nuove regole
di trasformazione create ad hoc.
2.3.5 “Example-Based” (“Modelli basati su esempi”)
I tagger basati su esempi presentano similarita con i tipi “Massima Entro-
pia” ed “Error-Driven”. Essi, pero, non generano modelli formati da regole
astratte e da generalizzazioni, ma liste di esempi e contesti incontrati; i con-
tenuti e le frequenze di queste liste vengono comparati con le occorrenze nel
testo fornito per il tagging ([Zavrel-Daelemans97]). E importante precisa-
re che i tipi di esempi da rilevare sono specificati in un momento anteriore
al training e l’accuratezza dipende in gran parte dall’adeguatezza di queste
specificazioni.
2.3.6 Altri tipi di tagger
Vi sono alcuni altri tipi di taggers che meritano di essere mezionati per la
loro relativa diffusione, tra cui:
• taggers per espressioni regolari, i quali sono costituiti da regole ela-
borate perlopiu manualmente che analizzano soltanto la composizione
testuale delle parole (quali suffissi, lettere maiuscole ecc.) ([Bird04] e
[Jurafsky-Martin00]);
• taggers per reti neurali, nei quali modelli computazionali che imitano il
funzionamento delle reti neurali biologiche (“nodi” che ricevono uno o
piu valori ed emettono un solo valore) vengono mutati ad ogni iterazione
da un processo stocastico, con l’obiettivo di migliorarne continuamente
le prestazioni ([Schroder02]);
• taggers per regole finite, simili ai taggers descritti in 2.3.4, nei quali
una serie di regole di classificazione e di trasformazione viene immessa
manualmente per essere applicata ai tokens ([Jurafsky-Martin00]).
13
Il processo di tagging
2.4 Valutazione dell’accuratezza di un tagger
Il principale metodo di valutazione di un tagger e la sua “accuratezza”, che
chiameremo ϕ. Essa e data dall’equazione:
ϕ =# tags corrette
# tags di riferimento=
∑ni=1
Gi = {ti}
n(2.1)
dove n e il numero di tokens nella sequenza, t1 . . . tn le golden tags e
G1 . . . Gn la sequenza di tags attribuita dal tagger in valutazione. Il tagger
Unigramma, per esempio, ha attribuito nel corpus RepubblicaRidotto la tag
corretta a 42.503 tokens su 47.830: un’accuratezza di 88%.
14
Capitolo 3
Markov Models (“Catene di
Markov”)
Gli Hidden Markov Models (HMM), sono un modello statistico di tipo sto-
castico (ossia non deterministico), nei quali la catena di simboli osservati
(nel nostro caso i tokens) viene considerata un risultato “emesso” da una
catena non osservabile di stati sottostanti (nel nostro caso le tags). Questa
seconda catena, detta “nascosta”, puo essere calcolata a partire da matrici
di probabilita elaborate durante il training : fra le possibili catene di stati
nascosti, sara considerata corretta quella che presenti la piu alta probabilita
combinata tra la sucessione dei suoi stati e l’emissione dei simboli osservati.
Le matrici di probabilita sono essenzialmente due: una matrice A detta
“transition”, che contiene le probabilita di passaggio da uno stato all’altro
(per il linguaggio naturale, la probabilita di successione da una categoria
grammaticale all’altra) e una matrice B detta “emission”, che contiene le
probabilita di produzione di ogni simbolo a partire dagli stati sottostanti.
Molte probabilita di queste matrici sono e possono essere nulle (per esempio
la probabilita di uno stato “preposizione” emettere un simbolo “bambino”).
Rabiner ([Rabiner90]) descrive una terza matrice π o “priors”, riguardante
la probabilita per ogni stato di essere alla testa di una catena nascosta (nel
nostro caso, la probabilita per ogni categoria grammaticale di iniziare una
frase), ma questa matrice puo essere generalizzata in A come la transizione
da un “non stato” allo stato in questione.
15
Markov Models (“Catene di Markov”)
3.1 Catene di Markov non nascoste
In genere, le Catene di Markov non nascoste non hanno simboli da osservare
e, percio, non vi e matrice di emission: siccome gli stati sono disponibili,
qualsiasi proprieta statistica puo essere calcolata direttamente.
Per esemplificare, possiamo costruire una Catena di Markov a partire
dalle parole del libro Cuore, di Edmondo De Amicis. Se consideriamo le
lettere come stati che compongono catene (“parole”), possiamo ottenere sia
una matrice di priors sia una di emissions, riportate frammentariamente di
seguito, con le quali calcolare le probabilita di formazione delle parole.
Frammento di “priors” (π)
a 7,05% g 2,96% n 2,70% r 2,42%
b 1,91% j 0,00% o 1,11% t 3,28%
c 8,26% m 5,24% q 1,82% z 0,05%
Frammento di “transitions” (A)
a e i o u m s
a 0,00% 1,55% 2,83% 0,02% 0,30% 4,39% 4,97%
m 30,39% 19,97% 18,24% 13,70% 1,68% 3,71% 3,71%
t 15,95% 14,07% 14,73% 20,27% 6,62% 0,05% 0,00%
L’analisi delle probabilita riportate per la matrice π rivela che lo stato con
piu alta probabilita di iniziare una catena e “c”, con quasi un decimo dei casi,
al passo che per lo stato “j” la probabilita puo essere considerata nulla; dal
frammento della matrice A e possibile scoprire, ad esempio, che la vocale piu
comune dopo una “m” e “a”. Alcune probabilita riportate non sono intuitive,
quali la transizione “t→m”, ma vengono confermate da un’analisi del corpus
utilizzato (nel caso specifico, l’alta frequenza della parola “aritm etica”).
I frammenti riportati permettono dimostrare il calcolo della probabilita
di una sequenza di stati, quale la parola “mamme”1:
m a m m e
∅ → m × m → a × a → m × m → m × m → e =
5, 24% × 30, 39% × 4, 39% × 3, 71% × 19, 97% = 0, 00052%
1Applicazioni piu rigorose potrebbero considerare altre probabilita, quali l’essere collo-
cato in coda alle catene (l’inverso della matrice π, ossia la transizione da uno stato ad un
“non stato”).
16
3.2 Catene di Markov nascoste
Figura 3.1: Hidden Markov Model
che risulta avere una probabilita statistica del 0,00052%. Si noti come
questo calcolo non consideri la frequenza o la probabilita reali di occorrenza di
una parola (parole non esistenti ma corte avranno, in genere, una probabilita
piu grande che parole esistenti ma lunghe); dal punto di vista statistico,
soltanto le probabilita di transizione e emissione vengono considerate.
3.2 Catene di Markov nascoste
Le Catene di Markov nascoste sono Catene di Markov i cui stati non sono
osservabili direttamente. In un processo di questo tipo, si postula che ogni
stato emetta un simbolo o, in casi piu rari, una sequenza di simboli che
deve comunque essere analizzata come una singola entita2. E importante
precisare che i simboli possono essere condivisi tra diversi stati: nel campo
del linguaggio naturale, ad esempio, un simbolo “sposa” puo essere emesso
sia da uno stato nascosto “sostantivo” (“la sposa si sposa”) sia da uno
stato nascosto “verbo” (“la sposa si sposa”).
2Alcuni casi ancora piu speciali permettono che gli stati emettano un “non simbolo” o,
in altre parole, che non producano simboli.
17
Markov Models (“Catene di Markov”)
Il funzionamento di una Catena di Markov nascosta e dimostrato grafica-
mente nella figura 3.13, dove x1, x2 e x3 rappresentano gli stati non osservabili
(le tags, nel nostro caso), y1, y2 e y3 rappresentano i simboli emessi (i tipi
di token), a12, a21 e a23 rappresentano le transizioni fra stati (matrice A, la
sucessione di categorie grammaticali) e b1, b2 e b3 le emissioni di simboli da
parte di stati (matrice B, i processi di “produzione” di tokens).
3.2.1 Esempio di una Catena di Markov nascosta
Bird ([Bird04]) cita [Huang et alii]4 nel fornire un esempio semplice ma
completo di HMM, che adatteremo qui.
Si immagini l’elaborazione di un HMM per l’analisi di mercati di valori.
Vengono ammessi due stati nascosti: bull (“toro”) e bear (“orso”), rispet-
tivamente momenti in cui il mercato si trova in una fase di crescita e in
una fase di ritrazione. I simboli disponibili sono di tre diversi tipi, ottenuti
ogni giorno dal totale dei valori negoziati: in crescita, in diminuizione ed
invariabile. Ognuno dei due stati puo emettere, con probabilita diverse, uno
qualsiasi fra questi simboli. Si immagini che una fase di training sui dati
di funzionamento di un mercato in particolare abbia elaborato le seguenti
matrici di probabilita5:
Transition (A)
bull bear
bull 70% 30%
bear 45% 55%
Emission (B)
crescita ↑ dimuizione ↓ invariabile ↔
bull 50% 20% 30%
bear 25% 50% 25%
Dall’analisi di un’ipotetica catena di simboli “invariabile - crescita - di-
minuizione - diminuizione - crescita - diminuizione”, ottenuta durante sei
3Grafico ottenuto dal sito Wikipedia, versione in inglese dell’articolo sui
Hidden Markov Models , il 6 maggio 2007.4Il quale, purtroppo, non siamo riusciti a reperire.5Per mantere l’esempio semplificato, abbiamo considerato una matrice π con uguali
probabilita del 50% per i due stati.
18
3.2 Catene di Markov nascoste
giorni consecutivi di analisi, possiamo calcolare la catena di stati nascosti
piu probabile: “bull - bull - bear - bear - bear - bear”.
giorno 1 giorno 2 giorno 3 giorno 4 giorno 5 giorno 6
↔ ↑ ↓ ↓ ↑ ↓
bull bull bear bear bear bear
La probabilita complessiva di questa catena di stati e del 0,135%, un
valore che puo sembrare troppo ridotto, anche se si considera che vi sono
ben 64 catene possibili (26 = 64, per i 2 stati possibili in una catena di lun-
ghezza 6). Questo valore e pero normale, soprattutto quando un’analisi piu
attenta del calcolo delle probabilita rivela che, al contrario di molte distribu-
zioni probabilistiche, la sommatoria delle probabilita per un HMM non e del
100%. Infatti, oltre alla probabilita di emissione per ogni simbolo, vi e un
numero perlomeno uguale di probabilita di transition da computare, le quali
invariabilmente diminuiscono la probabilita finale6.
L’esempio e utile per chiarire che in molti contesti, fra cui il tagging, gli
HMM sono soltanto un modello matematico che e adeguato ai fini per i quali
e utilizzato, senza costituire l’imitazione di un modello reale. Questo e par-
ticolarmente valido per i casi in cui gli stati non sono “stati concreti” di un
modello, ma classificazioni e categorie per simboli: anche se uno studio atten-
to delle matrici di probabilita puo rivelare molte regole sintattiche e perfino
semantiche, non vi sono “veri” stati di categorie grammaticali nascoste che
emettano parole per formare testi.
3.2.2 Algoritmo di Viterbi
Si e detto che uno dei vantaggi dei tagger HMM e la velocita di tagging ;
questo grazie ad un metodo di calcolo che permette di trovare rapidamente
la catena sottostante di maggior probabilita, chiamato Algoritmo di Viterbi
([Rabiner90] e [Manning-Schutze99]). Elaborato negli anni Sessanta, il Vi-
terbi riduce il numero di calcoli necessari a tal punto che, senza di esso, non
sarebbe possibile utilizzare gli HMM nella pratica.
Questa importanza viene spiegata dal fatto che, anche se il calcolo delle
probabilita richiede soltanto moltiplicazioni (o addizioni, nel caso di probabi-
lita logaritmiche), per moltissimi campi di applicazione quali il part-of-speech
6In verita vi sono casi in cui una probabilita sia del 100%, ma sono rarissimi nel campo
del part-of-speech tagging.
19
Markov Models (“Catene di Markov”)
tagging il calcolo delle probabilita individuali di ogni catena richiederebbe ca-
pacita di calcolo elettronico irreali. Se adoperato un tag-set come quello del
RepubblicaRidotto, di circa 150 tags, una sequenza di soli 10 tokens (come una
frase cortissima) richiederebbe il calcolo di piu di 5.000 miliardi di miliardi
di catene possibili, con perlomeno il doppio di moltiplicazioni7.
L’Algoritmo di Viterbi (sia nella versione “tradizionale” o in quelle piu re-
centi “Iterative Viterbi Decoding” e “Lazy Viterbi Algorithm”) e un metodo
che risolve questo problema tramite la “programmazione dinamica”: parten-
do dai due principi che la maggior parte dei calcoli siano troppo improbabili
e che molti di essi sarebbero ripetuti moltissime volte, l’Algoritmo di Viter-
bi effettua una serie di calcoli preliminari e costruisce la catena sottostante
stato dopo stato, considerando una sola transizione e emissione alla volta8.
In teoria, questo algoritmo non puo garantire che la catena da esso in-
dividuata quale “piu probabile” sia, in effetti, la piu probabile fra tutte.
Soltanto tramite un calcolo esaustivo di tutte le catene nascoste possibili po-
tremmo avere questa garanzia, il che, oltre ad impraticabile, non e necessario
per i nostri fini. I risultati ottenuti con l’Algoritmo di Viterbi sono infat-
ti corretti nella maggior parte dei casi, e nei pochissimi casi restanti sono
sufficientemente attendibili.
3.2.3 Difficolta per l’utilizzo degli HMM
Sono tre le difficolta per l’utilizzo degli HMM che meritano di essere discus-
se in questa tesi: il valore numerico estremamente ridotto delle probabilita
ottenute, le dimensioni delle matrici di probabilita (in modo speciale del-
la matrice di emissione) e l’occorrenza di simboli non osservati durante il
training.
Come abbiamo visto, le probabilita calcolate tramite gli HMM sono estre-
mamente ridotte: dipendendo delle dimensioni del tag-set e delle catene di
simboli osservate, persino per le catene piu probabili i risultati si situano
non di rado nei miliardesimi di miliardesimi. Oltre ad essere poco pratici
per fornire indicazioni comprensibili sulle probabilita, questi valori provoca-
7Ovviamente la stragrande maggioranza di queste catene di stati, quali una composta
da soli verbi, sarebbe estremamente improbabile se non impossibile, ma non vi e un modo
di identificare queste catene “inutili” a priori.8Anche se, ed e importante ricordarlo, i calcoli preliminari permettono, fino ad un
certo punto, di controllare l’effetto che ogni nuovo stato stipulato avra nella probabilita
complessiva della catena.
20
3.2 Catene di Markov nascoste
no errori di underflow : non capaci di usare valori troppo piccoli, i calcolatori
li trasformano in zero assoluto ed impediscono l’esecuzione dell’Algoritmo di
Viterbi9. La soluzione per questo problema e semplice: vengono calcolati i
logaritmi di tutte le probabilita percentuali che, oltre ad escludere il rischio
di underflow poiche i valori passano a situarsi quasi esclusivamente nella fa-
scia [−4 . . . 0), permettono i calcoli delle probabilita totali tramine addizioni
e non moltiplicazioni (un’operazione piu veloce).
Le dimensioni delle matrici sono il secondo problema da considerare; esse,
infatti, crescono esponenzialmente con la complessita dei tag-set utilizzati e,
soprattutto, con il numero di simboli rilevati durante la fase di training. L’e-
laborazione sul corpus RepubblicaRidotto, con un tag-set da 150 tags diverse
e 50000 diversi tipi di tokens, risulta in una matrice di emissione con piu di
7 milioni di valori. Espresso in termini computazionali, sarebbero necessari
circa 28 Mb soltanto per questa matrice.
La prima alternativa a questo problema e di utilizzare soltanto le proa-
bilita non nulle, poche se comparate al totale di probabilita. Questo metodo
richiede una organizzazione della memoria piu complessa, che verifichi l’esi-
stenza di ogni probabilita richiesta rendendola come zero in caso negativo.
La seconda alternativa e di utilizzare soltanto i valori piu significativi: nel
caso del linguaggio naturale, si potrebbero scartare tutte le probabilita per le
parole poco frequenti, limitando le dimensioni del vocabolario (per esempio
a 10.000 tipi) o determinando una frequenza minima per l’inclusione (come
un minimo di tre occorrenze nel corpus).
Limitare le dimensioni del vocabolario aggrava un fenomeno comunque
inevitabile: l’occorrenza durante il tagging di parole non osservate durante il
training. E comune, infatti, che una sequenza di tokens contenga tipi non os-
servati o scartati per economia di memoria; nel corpus RepubblicaRidotto, ad
esempio, 8% dei tokens dell’area di test sono di questo tipo. Tra le soluzioni
per questo problema, come l’analisi puramente morfolessicale dei tokens, la
migliore e il calcolo di una “probabilita per tipi rari”10. Questo calcolo e ef-
fetuato con “estimators” (perche stimano la probabilita dei tokens rari dalle
altre probabilita) oppure con “metodi di discounting” (perche allocano una
9Oltre al fatto che tutti i valori sono resi uguali, dipendendo dal momento in cui avviene
l’underflow l’algoritmo effettuara divisioni per zero.10Si deve precisare che non si tratta di un valore unico per tutto l’HMM, ma unico per
distribuzione di proprieta; in 3.2.1, ad esempio, verrebbe calcolata una “probabilita per
tipi rari” per ogni linea delle tabelle riportate.
21
Markov Models (“Catene di Markov”)
percentuale per tokens rari detraendola dalle probabilita calcolate). Questi
metodi vengono esaminati nel capitolo 4.
3.3 Implementazione
Per la nostra implementazione di un software per il tagging via HMM, si
e cominciato consultando la bibliografia a riguardo ([Manning-Schutze99],
[Jurafsky-Martin00], [Rabiner90]) ed alcune implementazioni disponibili sot-
to licenza GNU GPL 2, quali [Bird04] (in linguaggio Python) e [Jurish03]
(in linguaggio C++) e, in modo particolare, [Schroder02] e [Kanungo99]
(entrambi in linguaggio C).
La nostra versione11 e stata scritta in linguaggio C a partire da modifiche
apportate a [Kanungo99]. La stesura di questo software, combinata all’analisi
delle versioni alternative ed a modifiche minori apportate a [Schroder02], ha
permesso una comprensione maggiore delle particolarita degli HMM.
L’obiettivo e stato quello di sviluppare un software per la realizzazione
delle varie sperimentazioni necessarie per questa tesi; dopo la conclusione,
pero, si e investigata la possibilita di continuare lo sviluppo del software
proposto da [Schroder02]12.
Per la gestione della memoria, oltre ad un attento studio delle tecniche
proposte in [Kernighan-Ritchie88], abbiamo deciso per strutture di dati piu
semplici, che combinano le due alternative presentate in 3.2.3: vengono scritte
in memoria solamente le probabilita non nulle (l’organizzazione e controllata
da un semplice ma efficace hash table) e per il trattamento degli eventi rari
viene utilizzato il metodo di “Cross-Validation” (si veda 4.2.7).
11Disponibile all’indirizzo http://hermes.sf.net/12Le nostre prime modificazioni sono disponibili a http://hermes.sf.net/acopost.html
22
Capitolo 4
Metodi di Estimation e
Discounting
Come introdotto in 3.2.3, il principale problema per i tagger HMM e il cal-
colo della probabilita per eventi non osservati durante il training, quali un
simbolo (tipo) sconosciuto o una transizione fra stati (tags) poco probabile,
ma valida e possibile. Si tratta, in fondo, dello stesso problema discusso
in 3.3 sulle dimensioni in memoria del modello: se da una parte e vero che
non sia necessario riferire esplicitamente in un modello tutti gli eventi in-
contrati, quali un cognome straniero, d’altra parte e anche vero che eventi
poco probabili meritano una particolare attenzione, poiche saranno rilevati
in praticamente tutti i testi forniti ad un tagger.
Oltre a questo, non di rado molti degli errori commessi da un tagger, sia
HMM o di altro tipo, sono conseguenza diretta di un evento poco probabile
o “raro” classificato erroneamente che provoca un “effetto domino” di tags
incorrette.
4.1 Esempio
Il problema del calcolo delle probabilita e infatti molto piu complesso di
quanto possa sembrare a prima vista. Molti autori, quali [Sampson07], usano
una metafora semplice ma efficace di “osservazione di animali” per spiegare
la questione; sembra che la pratica si sia originata con Alan Turing ed il suo
metodo di discounting, discusso in 4.2.3.
Si immagini un turista in Africa; questo turista decide di calcolare le
23
Metodi di Estimation e Discounting
probabilita di osservazione per ogni animale che vedra (o, in termini proba-
bilistici, “osservera”) durante un safari. Dopo alcuni minuti, egli ha osser-
vato 10 animali: 5 giraffe, 3 rinoceronti e 2 elefanti. Se gli fossero chieste
le probabilita di osservazione di ogni animale, la sua risposta immediata po-
trebbe essere di 50% di probabilita di osservazione per giraffe (5÷10), 30%
per rinoceronti (3÷10) e 20% per elefanti (2÷10). Purtroppo questo metodo
di stima, denominato “Maximum-Likelihood Estimator” e discusso in 4.2.1,
presenta un grande problema: esso annulla la probabilita di osservare altri
tipi di animali, come leoni (0÷10 = 0%), soltanto perche non osservati du-
rante questa sorta di training. Un’alternativa immediata, simile al metodo
“Lidstone Estimator” discusso in 4.2.2, sarebbe determinare una percentua-
le, per esempio 10%, da assegnare a tutti gli animali non osservati e detrarla
dalle probabilita calcolate per i primi (ottenendo 45%, 27% e 18% per giraffe,
rinoceronti ed elefanti, rispettivamente).
Pur migliore, anche questa soluzione non e perfetta. Oltre alla difficolta
nel determinare la giusta percentuale da riservare, il fatto che venga assegnata
la medesima probabilita ad ogni animale non osservato comporta, in primo
luogo, che la somma delle probabilita oltrepassi il limite logico del 100%
(per esempio, con giraffe, rinoceronti, elefanti, leoni e zebre avremmo 45%
+ 27% + 18% + 10% + 10% = 110%). In secondo luogo, il calcolo non
terrebbe conto del tipo di animale non osservato: per il nostro turista in
Africa, questo significherebbe che le probabilita di osservare un leone o un
pinguino sarebbero teoricamente uguali.
4.2 Metodi di calcolo di probabilita
4.2.1 Maximum-Likelihood Estimator
Il “Maximum-Likelihood Estimator” (MLE) e il metodo piu semplice per
calcolo delle probabilita: partendo dal principio che tutti gli eventi possibili
siano stati osservati durante il training, la percentuale di probabilita puo
essere ottenuta facilmente tramite la divisione del numero di occorrenze di
un evento Cw per il numero totale di eventi N .
Anche se perfetto per le distribuzioni in cui tutti i tipi di eventi possibili
sono stati osservati, l’MLE e estremamente inadatto negli altri casi quali il
tagging di linguaggio naturale, poiche esso assegna una probabilita di 0% a
tutti gli “eventi” non osservati. Il problema e particolarmente grave per i
24
4.2 Metodi di calcolo di probabilita
tagger tipo HMM, nei quali probabilita di 0% provocano una divisione per
zero durante l’esecuzione dell’algoritmo di Viterbi, rendendo impossibile il
tagging.
PMLE(w1 . . . wn) =C(w1 . . . wn)
N(4.1)
4.2.2 Laplace and Lidstone Estimators
La prima alternativa al metodo dell’MLE (4.2.1) fu il “Laplace Estimator”,
conosciuto anche con il nome di “aggiungi uno”. In questo metodo il cal-
colo dell’MLE e esteso in maniera tale che tutti gli eventi non conosciuti
producano una probabilita positiva, grazie ad una costante nel numeratore:
PLap(w1 . . . wn) =C(w1 . . . wn) + 1
N + B(4.2)
dove B e il numero di tipi rilevati durante la fase di training.
Anche se costituisce un’alternativa valida rispetto all’MLE, il “Laplace
Estimator” presenta anch’esso alcuni punti deboli nel calcolo delle probabi-
lita. Oltre al fatto che, come in pressoche tutti i tipi di “estimators” dispo-
nibili, ad ogni singolo evento non conosciuto viene attribuita la medesima
probabilita, il “Laplace Estimator” pecca per la sua caratteristica distintiva:
il valore invariabile aggiunto a qualsiasi tipo di distribuzione. La costante
del numeratore, infatti, non tiene conto delle caratteristiche del modello a
cui viene applicata (quali il numero di tokens, il numero di simboli e l’entro-
pia), allocando troppo o insufficiente spazio per gli eventi non osservati, a
seconda del caso. Questo problema e particolarmente evidente nella matrice
B dei tagger HMM: la probabilita di incontrare un segno di punteggiatura
o una preposizione non osservati durante il training e cosı bassa al punto di
essere insignificante; al contrario, la percentuale allocata da questa costante
per sostantivi e verbi non osservati e solitamente insufficiente.
Un’evoluzione del “Laplace Estimator”, che risolve in parte i problemi
evidenziati di quest’ultimo, e il “Lidstone Estimator”, nel quale sia la co-
stante 1 sia il numero di tipi vengono moltiplicati per una costante λ con
valore nella fascia (0 . . . 1) che puo essere modificata a seconda del tipo di
distribuzione che si sta calcolando (il che permette, ad esempio, di riservare
una percentuale maggiore di discount per i sostantivi ed una minore per le
preposizioni). In ogni caso, come dimostrato in [Manning-Schutze99], anche
25
Metodi di Estimation e Discounting
per questo tipo di “estimator” vi sono obiezioni: e necessario, a sua volta,
stimare (in pratica, indovinare) valori accettabili di λ per ogni caso (anche se
un’analisi dei corpora disponibili puo fornire indicazioni positive a riguardo)
e le probabilita ottenute sono sempre lineari come i risultati ottenuti tramite
l’MLE, senza concordare con le distribuzioni empiriche a basse frequenze (si
pensi alla Legge di Zipf ed alla Formula di Mandelbrot, da essa derivata,
discusse in [Manning-Schutze99]).
PLid(w1 . . . wn) =C(w1 . . . wn) + λ
N + Bλ(4.3)
4.2.3 Good-Turing Discounting
Questo metodo fu elaborato da Alan Turing durante i suoi lavori di analisi
crittografica e pubblicato dopo la Seconda Guerra Mondiale dal suo colla-
boratore Irving Good. Si tratta di un metodo empirico, che alloca una per-
centuale per gli eventi non osservati a partire dall’analisi delle frequenze nel
corpus di training ; in poche parole, la percentuale e funzione della frequenza
di tipi che sono rilevati una sola volta, poiche anch’essi, prima della loro uni-
ca occorrenza, erano “eventi non osservati”. In maniera inversa, il tipo piu
frequente e postulato con una frequenza uguale a zero, giacche nessun altro
tipo potrebbe avere una frequenza piu grande della sua [Manning-Schutze99].
In termini matematici, il “Good-Turing estimator” viene espresso:
Se C(w1 . . . wn) = r > 0
PGT (w1 . . . wn) =r∗
Ndove r∗ =
(r + 1)S(r + 1)
S(r)(4.4)
Se C(w1 . . . wn) = 0
PGT (w1 . . . wn) =1 −
∑∞
r=1Nr
r∗
N
N0
≈N1
N0N(4.5)
In generale, comunque, viene utilizzato un approccio piu semplice denomi-
nato “Simple Good-Turing”, che combina le due equazioni sopra, presentato
da Gale e Sampson (si veda [Sampson07]) [Manning-Schutze99].
26
4.2 Metodi di calcolo di probabilita
4.2.4 Witten-Bell Discounting
Il “Witten-Bell” e un metodo di discounting relativamente semplice ma che,
in casi particolari, presenta ottimi risultati. Il suo funzionamento e alquanto
semplice: gli “eventi” che sono stati osservati una sola volta sono conside-
rati esempi di “eventi rari”; ad essi viene distribuita una massa percentuale
uniforme che si rifa al MLE. Questa percentuale e sucessivamente detratta
dagli “eventi” con piu di una osservazione, per garantire che la sommatoria
sia uguale al 100%.
4.2.5 Absolute Discounting
L’“Absolute Discounting” e anch’esso un metodo semplice ed in molti casi
efficace, che detrae un valore δ da tutti gli “eventi” con probabilita positiva,
distribuendo ugualmente la somma di queste detrazioni ad eventi sconosciuti.
Da categorie numericamente limitate, come preposizioni e segni di punteg-
giatura, risulteranno piccole somme di δ e dunque una detrazione minore; da
categorie a piu alta entropia, quali sostantivi, saranno ricavate somme piu
grandi da distribuire ad “eventi” non conosciuti.
Come nel caso del λ per il “Lidstone Estimator”, la grande difficolta per
questo metodo e individuare un valore adatto di δ. Anche in questo caso
l’evidenza empirica dell’applicazione a corpora di test e la successiva analisi
dei risultati puo fornire indicazioni estremamente valide.
4.2.6 Linear Discounting
Il “Linear Discounting” e un metodo che presenta affinita sia con il “Laplace
Estimator” sia con l’“Absolute Disconting”. In questo metodo, infatti, una
massa percentuale del totale di probabilita viene ottenuta dagli eventi con
probabilita positiva ed e riservata a eventi sconosciuti, ai quali e distribuita.
4.2.7 Held-Out Estimation e Cross Validation
L’“Held-Out Estimation” e un metodo che calcola empiricamente le probabi-
lita di occorrenza, con una particolare attenzione per gli eventi non osservati.
Funziona tramite una divisione previa del corpus di training in due parti:
una, normalmente piu grande, per il training ed una seconda, minore, per la
verifica dei risultati ottenuti con la prima parte. In pratica, questa seconda
27
Metodi di Estimation e Discounting
parte viene utilizzata come esempio delle sequenze che verranno sottoposte
all’estimator : confrontando la sua precisione su questa quanto agli eventi non
osservati, vengono aggiustate le matrici di probabilita per ottenere risultati
piu vicini a questa sperimentazione empirica.
Il “Cross Validation” e un metodo similare all’“Held-Out Estimation”,
che invece di dividere il corpus di training in due, utilizza l’intero corpus sia
per il training che per la verifica della sua precisione.
4.3 Esempio
Per una dimostrazione con alcuni fra i metodi che abbiamo descritto, si e
effettuata una sperimentazione di calcolo di probabilita di tipi di tokens sul
testo della Commedia dantesca: le prime due parti, Inferno e Purgatorio,
hanno formato il nostro corpus di training, mentre la terza, Paradiso, e stata
utilizzata come corpus di verifica. Non si tratta di una sperimentazione
definitiva o conclusiva: i corpora sono molto ridotti in termini computazionali
(circa 82.000 tokens per l’Inferno e per il Purgatorio e circa 40.000 per il
Paradiso), poco vari in termini diafasici, diastratici e diacronici, ma molto
specifici nel linguaggio adoperato (grande quantita di parole “rare”).
I risultati per un elenco di 23 parole selezionate casualmente sono ri-
portati nella tabella che segue, in logaritmi delle percentuali di probabilita;
“Gold” indica i valori di frequenza ottenuti empiricamente sulla terza parte
dell’opera, “Lap” la probabilita secondo il “Laplace Estimator”, “CV” se-
condo il “Cross-Validation”, “WB” secondo il “Witten-Bell” e “GT” secon-
do il “Good-Turing”1. L’ultima linea riporta la sommatoria delle differenze
logaritmiche per le parole considerate: quanto minore, migliori i risultati
ottenuti.
L’analisi dei risultati dimostra che fra i quattro metodi utilizzati il miglior
risultato ottenuto e stato quello del “Cross-Validation”, con un sorprendente
secondo posto per il “Laplace” (vista l’ampia diffusione del “Good-Turing”
e le molte obiezioni al metodo “Laplace”, come in [Manning-Schutze99], la
nostra aspettativa era di avere il “Good-Turing” al primo o secondo posto).
1L’MLE non poteva essere utilizzato data la presenza di parole “rare” nel corpus di
verifica che risultebbero in sommatorie infinite di differenze; il miglior risultato per il
“Lidstone”, comprovato empiricamente tramite iterazioni, era un λ di valore uguale ad 1
(dunque, un “Laplace”) ed i metodi di “Linear” e “Absolute Discounting” non sono stati
utilizzati perche meno comuni.
28
4.3 Esempio
Come gia specificato, questi risultati non sono particolarmente significativi
fuori dal contesto di analisi, ma servono soprattutto a dimostrare che il trat-
tamento degli eventi rari e possibile e, selezionando il metodo di calcolo e gli
eventuali parametri corretti, fornisce risultati accettabili e sufficientemente
precisi.
Parola Gold Lap CV WB GT
Bernardo -3,7496 -4,9671 -4,4437 -4,9671 -4,9126
Buondelmonti -4,5947 -4,9671 -4,4437 -4,9671 -4,9126
Cristo -3,0150 -4,0129 -3,9911 -4,0640 -4,0096
Dio -2,8023 -3,1410 -3,1003 -3,1476 -3,0932
contra -3,5533 -3,4900 -3,5056 -3,5047 -3,4503
disse -3,0896 -2,7216 -2,8631 -2,7241 -2,6697
esce -3,8958 -3,9671 -3,9574 -4,0129 -3,9585
etterna -3,4186 -3,9671 -3,9817 -4,0129 -3,9585
guise -4,5947 -4,9671 -4,4437 -4,9671 -4,9126
il -2,1699 -2,3256 -2,2328 -2,3266 -2,2722
io -2,1429 -2,1385 -2,0902 -2,1391 -2,0847
mortal -3,4186 -4,1890 -4,3350 -4,2681 -4,2138
nascosta -4,5947 -4,6661 -4,7738 -4,9671 -4,9126
ombra -3,3906 -3,3139 -3,1777 -3,3237 -3,2693
patio -4,2937 -4,9671 -4,4437 -4,9671 -4,9126
produce -3,9927 -4,4900 -4,8949 -4,6661 -4,6117
quasi -3,1968 -3,5521 -3,5326 -3,5692 -3,5148
questo -2,6503 -3,0033 -3,0514 -3,0081 -2,9537
rimarreste -4,5947 -4,9671 -4,4437 -4,9671 -4,9126
sia -3,4186 -3,1542 -3,1783 -3,1609 -3,1065
tedesche -4,5947 -4,9671 -4,4437 -4,9671 -4,9126
tu -2,5455 -2,4758 -2,4749 -2,4772 -2,4228
uscissi -4,5947 -4,9671 -4,4437 -4,9671 -4,9126
Sommatoria 8,7591 7,1464 9,4517 8,8525
29
Capitolo 5
Analisi empirica
Al fine di valutare l’accuratezza del tagger HMM sviluppato per questa tesi
(3.3), si e condotta una serie di sperimentazioni su tale accuratezza dei risul-
tati sia durante lo sviluppo che dopo di esso. Presenteremo in questo capitolo
i risultati finali di queste sperimentazioni, paragonandoli a quelli ottenuti da
altri tipi di taggers.
5.1 Corpus utilizzato
Come descritto nel capitolo 1, e stato utilizzato un corpus con frasi estratte
da articoli di La Repubblica, che per fini di sperimentazione e stato diviso in
un’area di training ed una di test1. Per entrambe le aree sono state svilup-
pate due diverse versioni: una prima “standard”, nella quale il testo veniva
riportato esattamente come apparso sugli articoli, ed una seconda “norma-
lizzata”. Per il campo del tagging, la “normalizzazione” e frequentemente
costituita da una semplice conversione di tutte le lettere maiuscole in minu-
scole; questo processo presenta il vantaggio di diminuire il numero di tipi e,
di conseguenza, di tokens rari e migliora l’accuratezza finale alcuni tipi di
taggers. Le caratteristiche dei corpora utilizzati sono riportate nella tabella
in seguito.
1Non e infatti raccomandibile valutare un modello sullo stesso corpus in cui e stato
effettuato il training, perche “troppo adatto” al testo in esame. In questi casi l’accu-
ratezza finale sarebbe falsamente elevata sia per le prestazioni di ogni tagger sia per la
comparazione fra i taggers stessi.
31
Analisi empirica
Corpus Numero di tipi Numero di tokens
training “standard” 26.188 192.230
training “normalizzato” 23.252 192.230
test “standard” 11.363 49.941
test “normalizzato” 10.443 49.941
Si tratta di un corpus di piccole dimensioni per il nostro campo di appli-
cazione (le dimensioni si situano normalmente sui milioni di tokens) e non
variato in termini di genere testuale. Combinate al grado di dettaglio del
tag-set utilizzato, con piu di 150 tags diverse, queste caratteristiche han-
no influito negativamente sulle accuratezze ottenute (corpora piu estesi ed
un tag-set piu semplice avrebbero risultato in accuratezze migliori) ma, allo
stesso tempo, hanno permesso un’analisi delle prestazioni in condizioni non
ottimali. In questo senso, le particolarita dei corpora hanno permesso una
valutazione piu rigorosa dei modelli di tagger in scrutinio.
5.2 Taggers utilizzati
Sono stati utilizzati i seguenti tipi di taggers:
• Un tagger di tipo Unigramma, scritto in linguaggio Python secondo il
funzionamento descritto in [Bird04];
• Un tagger di tipo “Error-driven”, parte dell’insieme di taggers “ACO-
POST” ([Schroder02], [Baroni04]);
• Un tagger di tipo “Maximum-Entropy”, parte dell’insieme di taggers
“ACOPOST” ([Schroder02], [Baroni04]);
• Un tagger di tipo “Transformation-Rules”, modificato da quello distri-
buito nell’insieme di taggers “ACOPOST”, ([Schroder02], [Baroni04]);
• Vari taggers di tipo HMM, fra i quali la nostra implementazione e
le varie descritte in 3.3; i risultati qui riportati si riferiscono ad una
versione modificata del tagger presentato da [Jurish03], piu veloce.
E opportuno sottolineare che i risultati ottenuti, benche metodologica-
mente validi, riguardono soltanto le implementazioni sopra descritte e soltan-
to i corpora utilizzati. In particolare, l’accuratezza generale di un qualsiasi
modello non dovra essere giudicata esclusivamente da questi dati.
32
5.3 Risultati
5.3 Risultati
Per ogni tagger, e stato elaborato un modello per il corpus “standard” ed
uno per il corpus “normalizzato”. Le velocita di esecuzione di ogni tagger,
salvo il tagger Unigramma2, sono state le seguenti3:
Tagger Corpus Velocita (s) tokens/s
Error-driven standard 578,04 82,74
normalizzato 516,54 92,59
Maximum-Entropy standard 83,39 573,50
normalizzato 83,11 575,48
Transformation-Rules standard 13,28 3600,84
normalizzato 14,70 3253,52
HMM standard 6,97 6861,28
normalizzato 4,26 11217,16
Le accuratezze per i corpus di test, a partire da modelli elaborati sui
corpus di training corrispondenti, sono state le seguenti:
Tagger Corpus Tokens corretti ϕ
Unigram standard 42.503 88,86%
normalizzato 42.746 89,37%
Error-Driven standard 44.905 93,88%
normalizzato 44.842 93,75%
Maximum-Entropy standard 42.653 89,17%
normalizzato 42.443 88,73%
Transformation-Rules standard 44.007 92,00%
normalizzato 43.803 91,58%
HMM standard 44.295 92,60%
normalizzato 44.536 93,11%
L’esposizione dell’accuratezza sui singoli tokens puo essere affiancata da
un’altrettanto, se non piu, significativa esposizione dei risultati sulle sin-
gole frasi che compongono il corpus di “test” (2.111 in tutto). La media
di accuratezza riportata per le frasi e aritmetica e σ indica la deviazione
standard.:
2Non riportato perche scritto in Python e comparativamente troppo lento.3Ottenuti su un computer Intel Celeron da 2.1GHz, 256 Mb di memoria su sistema
Linux 2.6.
33
5.4 Un’alternativa: tagger per votazione
Tagger Corpus Frasi corrette Media σ
Unigramma standard 16,72% 87,95% 10,07
normalizzato 21,26% 89,39% 3,85
Error-Driven standard 33,68% 92,76% 9,22
normalizzato 35,62% 93,61% 7,30
Maximum-Entropy standard 18,42% 88,91% 9,23
normalizzato 19,23% 89,22% 8,12
Transformation-Rules standard 28,04% 91,22% 9,80
normalizzato 29,79% 91,87% 8,19
HMM standard 29,03% 91,68% 9,20
normalizzato 33,64% 92,99% 7,66
L’analisi dei risultati dimostra che, in generale, le accuratezze dei taggers
sono abbastanza simili ed infatti la maggior parte dei modelli, se ben co-
struiti, offrono prestazioni che ne permettono l’applicazione pratica. E parti-
colarmente interessante allestire un tagger per Transformation-Rules, poiche
le regole di trasformazione da esso individuate posso essere applicate an-
che ai risultati ottenuti degli altri tagger, come dimostrato in [Schroder02] e
[Baroni04].
I tagger per HMM si dimonstrano un’alternativa validissima non soltan-
to per le prestazioni (che, lo ricordiamo, in questo caso sono estremamente
dipendenti dal tipo di corpus utilizzato) ma per la velocita di tagger e di
training : infatti, anche per corpora estesi queste richiedono sempre pochi
secondi quando ben implementate. Gli HMM sono, percio, tra i modelli
disponibili piu interessanti, specialmente se i tempi richiesti per le loro im-
plementazioni vengono paragonati ai tempi necessari per sistemi piu esigenti
quali gli “Error-Driven” ed i “Transformation-Rules”; anche se l’implementa-
zione che abbiamo utilizzato per quest’ultimo tipo potrebbe essere migliorata,
le circa sei ore necessarie per completare il training (un modello di circa 700
regole) dimostrano che l’utilizzo di quest’ultimo non e sempre praticabile.
5.4 Un’alternativa: tagger per votazione
Sono comuni nella bibliografia (si veda [Schroder02], [Baroni04], [Bird04] e
[Manning-Schutze99]) suggerimenti per l’allestimento di taggers per votazio-
ne, partendo dal principio che, in un gruppo di taggers diversi applicati sul
medesimo testo, la maggior parte di essi concordera sulla tag correta per ogni
35
Analisi empirica
token. Viene percio allestita una “votazione”, nella quale ogni tagger segnala
ad un programma per il conteggio la tag da esso attribuita ad ogni token; la
tag con maggior numero di voti e considerata quella corretta.
Vi sono due metodi di votazione possibili: uno “democratico”, nel quale
il voto di ogni tagger ha un medesimo peso, ed uno “non democratico”,
nel quale il voto di alcuni taggers ha un peso piu grande rispetto agli altri.
Dalle nostre sperimentazioni, i sistemi “non democratici” sembrano avere un
piccolo vantaggio di accuratezza sui primi; vi e pero la difficolta di stabilire
quali debbano essere i pesi attribuiti al voto di ogni tagger 4. Questi possono
essere stimati, in parte, dall’analisi delle accuratezze dei taggers votanti, in
modo speciale dall’accuratezza sui tokens rari5:
Tagger Corpus Tokens corretti Accuratezza
Unigram standard 797 ÷ 3852 20,69%
normalizzato 687 ÷ 3289 20,88%
Error-Driven standard 2754 ÷ 3852 71,49%
normalizzato 2479 ÷ 3289 75,37%
Maximum-Entropy standard 2450 ÷ 3852 63,60%
normalizzato 2215 ÷ 3289 67,34%
Transformation-Rules standard 1499 ÷ 3852 38,91%
normalizzato 1363 ÷ 3289 41,44%
HMM standard 1774 ÷ 3852 46,05%
normalizzato 1577 ÷ 3289 47,94%
La tabella evidenzia caratteristiche importanti dei taggers scelti: l’accu-
ratezza del tagger Unigramma e, come ci si aspetterebbe dalla sua semplicita,
abbastanza ridotta, ma le prestazioni medie dei taggers per “Transformation-
Rules” e per HMM sono affiancate da prestazioni eccellenti dai taggers di tipo
“Error-Driven” e di tipo “Maximum-Entropy”.
Per sperimentare l’accuratezza di un tagger per votazione, abbiamo scrit-
to una implementazione in Python6, nella quale il peso per il voto di ogni
tagger e stato stipulato a partire dall’accuratezza generale sul corpus di “test”
4Ed infatti sistemi “non democratici” nei quali i pesi sono mal attribuiti possono
presentare accuratezze significativamente peggiori rispetto ai sistemi “democratici”.5Si noti come, in questo caso, abbiamo analizzato l’accuratezza sui corpora di test ; per
un’analisi piu valida dei risultati dei tagger per votazione sarebbe necessario un corpus
relativo ad una terza area “test di test”.6Disponibile all’indirizzo http://hermes.sf.net/
36
5.4 Un’alternativa: tagger per votazione
e dall’accuratezza sui tokens rari; il peso e infatti diverso nei casi in cui il
tipo rilevato sia raro, attribuendo un valore piu grande ai taggers “Error-
driven” e “Maximum-Entropy” ed uno praticamente insignificante al tagger
Unigramma.
L’accuratezza di questo tagger per votazione e stata di 94,91%, con 41%
delle frasi correttamente classificate. La media di accuratezza per le frasi e
stata del 94,61%, con deviazione standard di 6,95. Si tratta di una presta-
zione elevata, specialmente quando considerato il numero di frasi classificate
correttamente, e che potrebbe essere migliorata da un’investigazione piu at-
tenta sui pesi da attribuire per il voto di ogni tagger in ogni caso. In negativo,
il tempo necessario per eseguire questo tagger (il tempo di esecuzione com-
binato di tutti i taggers piu il tempo per la “votazione”) fa sı che in molti
casi la sua maggior accuratezza possa essere preterita in favore di tempi di
esecuzione minori.
Figura 5.2: Accuratezze per i tipi di tagger utilizzati.
37
Capitolo 6
Conclusione
In questo lavoro abbiamo trattato dell’utilizzazione degli Hidden Markov
Models ed altri modelli per il part-of-speech tagging dell’italiano, le cui pre-
stazioni sono state messe a confronto.
Si e dimostrato come la teoria sottostante agli HMM (tra cui la difficolta
per il trattamento di parole nuove e sconosciute), benche matematicamente
complessa, puo essere spiegata facilmente tramite esempi pratici. L’analisi
delle prestazioni ha infine dimostrato come gli HMM siano tra i piu interes-
santi metodi per il tagging dell’italiano, giacche, anche se superati da alcuni
tipi di taggers in accuratezza, la loro velocita di training e tagging e fra le
migliori.
Un possibile sviluppo del nostro lavoro e la creazione di “interfacce”,
“grafiche” o via Internet, che permettano a qualsiasi ricercatore eseguire
rapidamente il tagging su grandi quantita di testo, eventualmente utilizzando
i nuovi testi proposti come ulteriore corpus di training tramite metodi quali
il Baum-Welch ([Bird04]).
39
Bibliografia
[Amaral98] R. Amaral, P. Carvalho, D. Caseiro, I. Trancoso e L. Oli-
veira, “Anotacao fonetica automatica de corpora de fala transcritos
ortograficamente”, IST/Inesc Lisbona. (1998).
[Baroni04] M. Baroni, “Trained models for tagging Italian tex-
ts with the ACOPOST taggers”, all’indirizzo internet
http://sslmit.unibo.it/ baroni/ita acopost models.html il 6 maggio
2007. (2004).
[Bird04] S. Bird, “NLTK-Lite: Efficient Scripting for Natural Language Pro-
cessing”, in Proceedings of the 4th International Conference on Natural
Language Processing (ICON), pp. 11-18. (2004).
[Brill93] E. Brill, “Automatic Grammar Induction and Parsing Free Text:
A Transformation-Based Approach”, in Proceedings of the 31st Annual
Meeting of the ACL. (1993).
[Clarkson-Rosenfeld97] P.R. Clarkson e R. Rosenfeld, “Statistical Language
Modeling Using the CMU-Cambridge Toolkit”, in Proceedings of the
ESCA Eurospeech. (1997).
[Jurafsky-Martin00] D. Jurafsky e J.H. Martin, “Speech and Language
Processing”, Prentice Hall. (2000).
[Jurish03] B. Jurish, “A hybrid approach to part-of-speech tagging”,
Final Report of Project Kollokationen im Worterbuch, Berlin-
Brandenburgische Akademie der Wissenschaften. (2003).
[Kanungo99] T. Kanungo, “UMDHMM: Hidden Markov Model Toolkit”, in
“Extended Finite State Models of Language”, Cambridge University
Press. (1999).
BIBLIOGRAFIA
[Kernighan-Ritchie88] B.W. Kernighan e D.M. Ritchie, “The C Program-
ming Language, 2. ed.”, Prentice Hall. (1988).
[Manning-Schutze99] C.D. Manning e H. Schutze, “Foundations of
Statistical Natural Language Processing”, The MIT Press. (1999).
[Rabiner90] L.R. Rabiner, “A tutorial on hidden markov models and selected
applications in speech recognition”, in Readings in Speech Recognition.
(1990).
[Schroder02] I. Schroder, “A Case Study in Part-of-Speech Tagging Using
the ICOPOST Toolkit”, Department of Computer Science, University
of Hamburg (2002).
[Zavrel-Daelemans97] J. Zavrel e W. Daelemans, “Memory-Based Learning:
Using Similarity for Smoothing”, Proceedings of the Thirty-Fifth An-
nual Meeting of the Association for Computational Linguistics and
Eighth Conference of the European Chapter of the Association for
Computational Linguistics. (1997).
Sitografia
[Sampson07] G. Sampson, http://www.grsampson.net/RGoodTur.html, ot-
tenuto il 6 maggio 2007.
42