NLP: parole

Transcript

NLP: parole
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 è