lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante...

38
Metalinguaggi a.a. 2016-2017 - Laurea Magistrale in Teoria dei Linguaggi e della Comunicazione Audiovisiva di Espressioni regolari, Automi a Stati Finiti e Linguaggi di Markup

Transcript of lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante...

Page 1: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Metalinguaggi

a.a. 2016-2017 - Laurea Magistrale in Teoria dei Linguaggi e della Comunicazione Audiovisiva

di Espressioni regolari, Automi a Stati Finiti e Linguaggi di Markup

Page 2: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

di Espressioni regolari, Automi a Stati Finiti e Linguaggi di Markup

Page 3: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Espressioni Regolari

Page 4: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Pattern Matching

Page 5: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Pattern Matching

Page 6: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

in un testo T vengono ricercate le stringhe che corrispondono a un pattern p (schema)

Pattern Matching

Page 7: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Pattern Matching

Page 8: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Pattern Matching

Page 9: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Ricerche più raffinate

◉cercare tutte le parole che terminano in -ato

◉le parole con al massimo 3 lettere

◉le frasi che iniziano con un articolo

◉le sequenze di numeri che formano una data

◉le frasi fatte da esattamente 6 parole

◉ecc...

Page 10: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

strumento ideale per:

◉ ricercare pattern testuali elaborati

◉sostituire testo

Espressioni Regolari (RE)

Page 11: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Pattern

RE PATTERN

carattere /a/ “il cane”

stringa intera /cane/ “il cane mangia la pappa”

multiword /mark up/“il linguaggio di mark up” “il linguaggio di markup”

case sensitive /Cane/“Cane che non sei altro!” “il cane mangia la pappa”

Page 12: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Classi di caratteri

RE PATTERN

la lettera i oppure b /[ib]/ “l"aiuola” “l"ebano”

i numeri 1,2 o 3 /[123]/“1 kg di farina” “33 trentini”

Unisa o unisa /[Uu]nisa/“Unisa” “unisa”

? /[Ll]inguistic[aoi]/ ?

Page 13: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Alternativa tra RE

RE PATTERN

la stringa cane o la stringa gatto

/cane|gatto/ “cane” “gatto”

due re [Uu]nisa|[Ll]inguistic[ao] ?

Page 14: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Intervalli

RE PATTERN

qualsiasi lettera minuscola

/[a-z]/ “l"aiuola” “ebano”

qualsiasi lettera minuscola o maiuscola

/[A-Za-z]/"Linguistica" "linguistico"

qualsiasi numero /[0-9]/“1 kg di farina” “33 trentini”

Page 15: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Diverso da

RE PATTERN

non la lettera a /^a/ “bonobo”

“78”

non una lettera minuscola

/[^a-z]/“Linguistica” “92 leopardi”

non un numero da 2 a 5 /[^2-5]/“1 kg di farina”

“cavolfiore”

Page 16: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Abbreviazioni

\t tabulazione \n a capo

\w /[a-zA-Z]/ \W /[^a-zA-Z]/

\d /[0-9]/ \D /[^0-9]/

\s /\t\s/ \S /[^\t\s]/

Page 17: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Problemacome trovare i belati in corpus di dialoghi tra pecore?

bebeeee

beeeeeeeeee

bee

Page 18: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Moltiplicatori

/ba+/ 1<a<n “b”, “ba”, “baa”, “baaaaaaaa”

/ba*/ 0<a<n “b”, “ba”, “baaaaa”

/baa*/ 0<a<n “b”, “ba”, “baa”, “baaaaaaaa”

/tokens?/ 0<s<1 “token”, “tokens”

Page 19: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Wildcard

/./ qualsiasi carattere "a", "9", " ", "?", "-", "j", "£"...

/a.s/ qualsiasi stringa di 3 caratteri che inizia per a e finisce per s

"abs", "a#s", "a s", "a,s", "a_s"

/t.*s/qualsiasi stringa che inizia per

t e finisce per sts", "tas", "tacos", "tts", "tanti

auguri a carlos"

/.*/ qualsiasi stringa, anche vuota

intera linea fino al ritorno a capo

Page 20: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Esercizi1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante

3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;" ecc.)

4. le parole che iniziano per "pre" o per "per"

5. le parole di 5 lettere che iniziano con "s" e finiscono con "o"

6. Il passato prossimo del verbo mangiare 7. le date in cui giorno, mese e anno sono tutti espressi da numeri

8. la sequenza alfanumerica dei codici fiscali

9. le url dei siti web

Page 21: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Bibliografia

◉http://regexr.com/ pagina web dove è possibile testare le espressioni regolari

◉http://www.regular-expressions.info/tools.html pagina di riferimento sulle re ed elenco di tools online e offline esistenti

◉http://stp.lingfil.uu.se/~santinim/ml/2014/JurafskyMartinSpeechAndLanguageProcessing2ed_draft%202007.pdf capitolo 2 sezione 2.1

Page 22: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Automi a Stati Finiti

Page 23: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

RE e Automi a Stati Finiti

◉ Le RE sono un metalinguaggio per la ricerca di testi.

◉ Una RE è un modo per descrivere un Automa a Stati Finiti (ASF)

◉ Ogni RE può essere descritta come un ASF e viceversa.

◉ Una RE è un modo per descrivere un linguaggio regolare

◉ Un altro modo per descrivere un linguaggio regolare è quello di usare grammatiche regolari

Page 24: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Un ASF è definito da una quintupla di elementi:

◉ Q un insieme finito di N stati q0, q1,…qn

◉ ∑ un alfabeto finito di simboli di input

◉ q0 lo stato iniziale

◉ F l’insieme degli stati finali, tali che F⊆Q

◉ δ(q,σ) la funzione di transizione tra stati, tale che dato uno stato qi∈Q (stato di partenza) e un simbolo σ ∈Σ, δ(qi,σ)=qj

(stato di arrivo)

Automi a Stati Finiti

Page 25: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Automi a Stati FinitiUn ASF è il modello astratto di una macchina in grado di riconoscere se una stringa appartiene o meno a un certo linguaggio

Page 26: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Automi a Stati FinitiUn ASF riconosce una stringa x se e solo se la testina ha letto tutti i simboli che compongono x e l’ASF si trova in uno stato finale

Page 27: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

ASF deterministici e non deterministici

Page 28: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Morfologia e ASF

Page 29: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Trasduttori a stati finitiMacchine astratte che leggono in input un insieme di stringhe X e generano in output un insieme di stringhe Y

Page 30: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Trasduttori a stati finiti

Page 31: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Bibliografia

◉http://madebyevan.com/fsm/ tool per creare ASF da browser

◉http://www.nooj-association.org/index.php software basato sugli ASF per creare grammatiche

◉http://stp.lingfil.uu.se/~santinim/ml/2014/JurafskyMartinSpeechAndLanguageProcessing2ed_draft%202007.pdf capitolo 2 sezione 2.2 (da 2.2.1 a 2.2.5)

Page 32: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Extensible Markup Language (XML)

Page 33: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Codificare un testo digitale

Page 34: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Metadati strutturali

Page 35: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Annotazione linguistica

Page 36: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Markup per codificare informazioni strutturali

Page 37: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Markup per codificare informazioni linguistiche

Page 38: lezione 1 parte2...1. tutte le vocali minuscole o maiuscole 2. le parole che iniziano per consonante 3. le parole che terminano con un segno di punteggiatura (es. "cane," "finito;"

Bibliografia & Co.

◉ descrizione storica e tecnica dei linguaggi di markup, in particolare di XML (slides): http://www.di.unipi.it/~cappelli/seminari/galdi.pdf

◉esempio di corpus annotato http://www.corpusitaliano.it/

◉pagina che comprende un elenco di corpora annotati a diversi livelli http://www.ilc.cnr.it/it/content/risorse