106
DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione e la rappresentazione dei dati linguistici Alessandro Lenci Dipartimento di Linguistica

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

Embed Size (px)

Citation preview

Page 1: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

DOTTORATO IN LINGUISTICA

GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E

DELLE LINGUE MODERNE

Linguistica ComputazionaleMetodi computazionali per

l'esplorazione e la rappresentazione dei dati linguistici

Alessandro Lenci

Dipartimento di Linguistica

Page 2: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

2

Sommario Esplorare i dati linguistici

ricerche avanzate nei corpora testuali espressioni regolari

Rappresentare i dati linguistici annotazione linguistica XML schemi di annotazione

Testo di riferimentoA. Lenci, S. Montemagni, V. Pirrelli Testo e Computer. Elementi

di linguistica computazionale, Carocci, 2005

Page 3: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

3

Strumenti e risorse per l’analisi computazionale dei dati

linguistici

Il recupero di quantità significative di dati linguistici è la precondizione di ogni indagine linguistico-computazionale uso di corpora generali esistenti

Brown Corpus, Wall Street Journal, ecc. BNC PAROLE, ecc.

costruzione di un corpus specializzato per il task in oggetto

Tre requisiti per la linguistica computazionale e NLP dati linguistici

corpora di testi digitali

metodi e strumenti formalilogica , matematica, statistica, algoritmica

softwarelinguaggi di programmazione, strumenti e ambienti di sviluppo

Page 4: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

DOTTORATO IN LINGUISTICA

GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E

DELLE LINGUE MODERNE

Esplorare i dati linguistici

Page 5: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

5

Ricerche avanzate nei corporaEspressioni Regolari

Linguaggio standard per caratterizzare stringhe di testo (regular expressions, regex, re) definite da Kleene nel 1956

Strumento ideale per ricercare testo sostituire testo

Molti programmi supportano le RE: Trova e Sostituisci in Word grep in Unix Emacs e altri editors di testo

Perl è un linguaggio di programmazione che permette un trattamento estremamente avanzato e duttile delle RE

Page 6: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

6

RE e Pattern Matching Il pattern matching è la forma più elementare di elaborazione di un

testo: dato un testo T vengono cercate le stringhe in T che corrispondono ad un

pattern p un pattern è uno schema di stringhe, ovvero definisce un insieme di stringhe di

testo che soddisfano particolari criteri “le parole che iniziano con la lettera maiuscola” “le stringhe di numeri la cui seconda cifra è 2” “le linee di testo che terminano con un punto esclamativo”

le RE sono il linguaggio standard per specificare pattern di testo da ricercare

Stringa di testo qualsiasi sequenza di caratteri alfanumerici

lettere, numeri, spazi, punteggiatura, caratteri speciali, ecc.

Attenzione!!! per il pattern matching, anche gli spazi, tabulazioni, ecc. contano come caratteri

Page 7: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

7

RE e Pattern Matching In Perl una RE è un’espressione della forma

/<pattern>/

Uso delle espressioni regolari in Perl1. Si definisce un pattern tramite una RE2. La RE viene verificata su un testo e produce come risultato un valore

booleano (true-false): true = il testo contiene una stringa che corrisponde (match) al pattern false = il testo non contiene una stringa che corrisponda al patttern

Altri possibili output documenti in cui viene trovata la stringa(stringhe) corrispondente(i) al

pattern linee di testo che contengono il pattern (es. grep)

output =true saf alse

ú

Page 8: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

8

Caratteri e sequenze di caratteri Un qualsiasi carattere o sequenza di caratteri (lettere,

numeri, punteggiatura, spazi, ritorno-a-capo, caratteri speciali) è una RE

le RE sono “case sensitive”

RE Esempi di “matching”

/testo/

/a/

“il testo del corpus”

“il cane di Mario è nero”

/mark up/“mark up del testo”

“markup del testo”

/Linguistica/ “la Linguistica Computazionale”

“la linguistica computazionale”

Page 9: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

9

Classe di caratteri Un insieme di caratteri tra parentesi quadre è una RE che

definisce una classe di caratteri disgiunti

RE Definizione Esempi di “matching”

/[st]/ il carattere ‘s’ o il carattere ‘t’ “la sintassi”

“il tempo”

/[1234567890]/ qualsiasi cifra “2 parole”

/[Ll]inguistica/ ‘linguistica’ o ‘Linguistica’ “la Linguistica Computazionale”

“la linguistica computazionale”

ATTENZIONE!!! - Una classe di caratteri sta sempre per un solo carattere

/[st]/ il carattere ‘s’ o ‘t’ “la sintassi” “il tema”

/st/ la stringa ‘st’ “la sintassi” “il tema”

/[123]/ il carattere ‘1’ o ‘2’ o ‘3’ “715.478”

/123/ la stringa di caratteri ‘123’ “715.478” “674.123”

Page 10: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

10

Classe di caratteri Dentro una classe di caratteri è possibile specificare

un intervallo di caratteri in una scala usando ‘-’: /[2-5]/ il carattere 2 o 3 o 4 o 5

RE Definizione Esempi di “matching”

/[a-z]/ qualsiasi lettera minuscola “la sintassi”

“il tempo”

/[0-9]/ qualsiasi cifra “2 parole”

/[a-zA-Z]/ qualsiasi lettera minuscola o maiuscola

“la Linguistica”

“la linguistica”

Sono solo abbreviazioni: /[2-5]/ è equivalente a /[2345]/ /[a-z]/ è equivalente a /[abcdefghijklmnopqrstuvwxyz]/

Page 11: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

11

Classe di caratteri Dentro una classe di caratteri è possibile specificare che un

pattern non deve contenere un certo carattere usando il segno ‘^’: /[^2]/ qualsiasi carattere diverso da 2

RE Definizione Esempi di “matching”

/[^a-z]/ qualsiasi carattere diverso da una lettera minuscola

“la Sintassi” “il 25%”

“il tempo”

/[^st]/ qualsiasi carattere che non sia né ‘s’ né ‘t’

“2 parole”

“ssssss”

ATTENZIONE!

‘^’ ha valore negativo solo quando compare subito dopo la ‘[‘ /[2^]/ il carattere ‘2’ o ‘^’ “3^5”

Page 12: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

12

Classe di caratteri Alcune utili abbreviazioni per classi di caratteri

RE Classe di caratteri equivalente

/\d/ /[0-9]/

/\w/ /[a-zA-Z0-9_]/

/\s/ /[ \t\n]/

/\D/ /[^0-9]

/\W /[^a-zA-Z0-9_]/

/\S/ /[^ \t\n]/

Caratteri particolari:

\t tabulazione

\n a capo

Page 13: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

13

Alternativa L’operatore “|” esprime la disgiunzione tra due RE

(operatore di alternativa)

RE Definizione Esempi di “matching”

/cane|gatto/ la stringa “cane” oppure la stringa “gatto”

“il cane abbaia”

“il gatto miagola”

ATTENZIONE!

/[..]/ esprime solo la disgiunzione tra caratteri singoli /[abc]/ il carattere ‘a’ o ‘b’ o ‘c’

La disgiunzione tra stringhe deve essere espressa con l’operatore di alternativa /ab|c/ la stringa ‘ab’ o il carattere ‘c’

Page 14: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

14

Moltiplicatori I seguenti simboli sono usati in una RE per specificare quante volte deve

comparire il carattere che li precede immediatamente:

/<carattere>?/ “il carattere precedente è opzionale (occorre 0 o 1 volta)”

/<carattere>*/ “il carattere precedente occorre 0 o n volte” (Kleene Star)

/<carattere>+/ “il carattere precedente occorre 1 o n volte”

RE Definizione Esempi di “matching”

/ba?rio/ la stringa ‘brio’ o ‘bario’ (la a è opzionale)

“brio”

“bario”

“berio”

/tokens?/ l’ultimo carattere ‘s’ è opzionale

“token”

“tokens”

“tokened”

Page 15: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

15

MoltiplicatoriRE Definizione Esempi di “matching”

/ba*/ il carattere ‘b’ seguito da 0 o n ‘a’

“b” “ba” “baa” “baaa” “baaaa” “baaaaa” …

/[0-9]*/ un numero infinitamente lungo, composto da 0 a n

cifre

“2” “43” “534” “3546” “3830” “87474”

“la repubblica”

/[0-9][0-9]*/ un numero infinitamente lungo che deve contenere

almeno una cifra

“2” “43” “534” “3546” “3830” “87474”

“la repubblica”

/[0-9]+/ un numero infinitamente lungo che deve contenere

almeno una cifra

“2” “43” “534” “3546” “3830” “87474”

/ba+/ il carattere ‘b’ seguito da 1 o n ‘a’

“ba” “baa” “baaa” “baaaa” “baaaaa” …

Page 16: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

16

Moltiplicatori Moltiplicatori avanzati:

/<carattere>{n,m}/ “il <carattere> deve occorrere almeno n volte e al massimo m volte

/<carattere>{n,}/ “il <carattere> deve comparire almeno n volte /carattere>{n}/ “il <carattere> deve comparire esattamente n volte

RE Definizione Esempi di “matching”

/a{2,3}b/ la stringa formata da almeno 2 ‘a’ e al massimo da 3 ‘a’

seguita da una ‘b’

“aab”

“aaab”

“ab”

“aaaab”

/a{2}b/ la stringa formata da esattamente 2 ‘a’ e una b

“aab”

“ab”

“aaab”

Page 17: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

17

Sostituzione di stringhe in Perl s/<espressione regolare>/<nuova stringa>/

compie la sostituzione solo sul primo match effettuato s/…/…/g sostituzione globale

RE Testo originario Nuovo testo

s/é/e’/ “…non so il perché” “non so il perche’”

s/ab*c/ad/ “abbbbbbc”

“ac”

“ad”

“ad”

s/a/i/g

s/a/i/

“cavallo”

“cavallo”

“civillo”

“civallo”

Page 18: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

18

Wildcard La RE /./ corrisponde a qualsiasi carattere (eccetto il

ritorno-a-capo)

RE Definizione Esempi di “matching”

/b.s/ qualsiasi stringa di tre caratteri che inizia con ‘b’ e

termina con ‘s’

“bas” “bbs” “b3s” “b!s” “b s” “b,s” …

“baas”

/b.*s/ qualsiasi stringa che inizia per b e termina per s

“bs” “bas” “bbs” “b3s” “b!s” “b s” “b,s” “baas”

“bisogna prendere l’autobus”

/.*/ qualsiasi stringa (compresa quella vuota)

l’intero corpus, anche se vuoto

Page 19: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

19

Ingordigia e pigrizia I moltiplicatori in Perl sono ingordi (greedy)

fanno sempre matching con la stringa più lunga possibile

/x+/ “axxxxxxxb” “axxxxxxxb”

/a.*c.*/ “a xxx c xxx c xxx d” “a xxx c xxx c xxx d”

E’ possibile rendere i moltiplicatori “pigri” (lazy) facendoli seguire dal carattere “?” fanno matching con la stringa più corta possibile

/a.*?c.*/“a xxx c xxx c xxx d” “a xxx c xxx c xxx d”

Page 20: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

20

Raggruppamento e memoria Le parentesi tonde servono per raggruppare stringhe

di caratteri da moltiplicare:

RE Definizione Esempi di “matching”

/(ab)+/ una o più stringhe “ab” “ab” “abab” “ababab”

/ab+/ una “a” seguito da una o più “b” “ab” “abb” “abbb”

Le parentesi tonde memorizzano la stringa di testo corrispondente al contenuto delle parentesi la stringa viene memorizzata in una variabile temporanea

Il contenuto della variabile può essere richiamato con \<numero> (1 = contenuto della prima coppia di parentesi; 2 =

contenuto della seconda coppia di patentesi, ecc.)

Page 21: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

21

Raggruppamento e memoria RE Definizione Esempi di “matching”

/(ab)+\1/ la variabile “\1” corrisponde a qualunque stringa abbia fatto

matching con il contenuto delle parentesi

“abab”

“abababab”

“abababababab”

/(a)+(b)+\1\2/ la variabile “\1” corrisponde a qualsiasi stringa abbia fatto matching con il contenuto della prima coppia di parentesi; la variabile “\2” idem, ma

rispetto alla seconda coppia di parentesi

“abab”

“abbabb”

“aabaab”

“abbaab”

/p(.)o p\1o/ la variabile “\1” corrisponde a qualunque stringa abbia fatto

matching con il contenuto delle parentesi

“pio pio” “pao pao” “pro pro”, ecc.

“pio pao” “pao peo”

/p.o p.o/ la wildcard “.” può essere sostituita da qualsiasi carattere

“pio pio” “pio pao” “pro pso”, “pao pio”, ecc.

Page 22: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

22

Caratteri speciali Alcuni caratteri hanno un significato speciale nel

linguaggio delle RE [ ] ? * . ( ) + - / { }

Se questi caratteri fanno parte del pattern di testo da cercare, devono comparire in una RE con davanti il carattere ‘\’ (carattere di escape) /[a/ ERRORE! ‘[‘ è interpretato come operatore di disgiunzione e

manca la parentesi ‘]’ /\[a/ la stringa “[a” /a./ qualsiasi stringa di due caratteri che inizia con ‘a’

“ab” “au” as” “a1” “a?” … /a\./ la stringa di testo “a.” /cane?/ le stringhe “cane” e “can” /cane\?/ la stringa “cane?”

Page 23: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

23

Ancore Le ancore sono caratteri speciali che specificano

dove deve comparire il pattern di testo da cercare

/^<pattern>/ il <pattern> deve comparire all’inizio di una linea /<pattern>$/ il <pattern> deve comparire alla fine di una linea

RE Definizione Esempi di “matching”

/cane$/ la stringa ‘cane’ quando compare alla fine di una linea

“…cane¶”

“il cane di Mario”

/^La/ la stringa ‘La’ quando compare all’inizio di una

linea

“¶La macchina era guasta”

“il treno per La Spezia”

/^La Spezia$/ una riga che contiene solo la stringa “La Spezia”

“¶La Spezia¶”

“…a La Spezia per lavoro …”

Page 24: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

24

Ancore “\b” è un ancora che indica il confine di una parola (“\B”

indica ogni punto non confine di parola) Il confine di una parola è un punto che ha da una parte un carattere

di classe \w e dall’altra o un carattere di classe \W o l’inizio (fine) riga ¶La macchina in giardino¶

RE Definizione Esempi di “matching”

/\bcane\b/ la stringa ‘cane’ deve avere a destra e a sinistra un confine

di parola

“il cane è …”

“il canestro” “le americane sono”

/\Bcane\b/ la stringa ‘cane’ deve avere a destra (ma non a sinistra) un

confine di parola

“il cane è …”

“il canestro” “le americane sono”

confini di parola

Page 25: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

25

Precedenza I moltiplicatori, le parentesi, l’alternativa, le ancore sono

operatori permettono di costruire RE complesse a partire da altre RE

Esistono delle regole di precedenza tra gli operatori /a|b+/

Parentesi ( )Moltiplicatori ? * + {m,n}, ecc.Sequenze e ancore ata ^ $ \bAlternativa |

Le parentesi ( ) permettono di alterare l’ordine di precedenza/a|b+/ vs. /(a|b)+/

Page 26: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

DOTTORATO IN LINGUISTICA

GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E

DELLE LINGUE MODERNE

Rappresentare i dati linguistici

Page 27: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

27

La codifica digitale del testo

I computer memorizzano ed elaborano dati sotto forma di sequenze di due soli simboli 0 e 1 (cifre binarie)

Ogni tipo di informazione deve essere codificata in cifre binarie codificare informazione = associare a ciascuna unità di informazione un

codice (sequenza di cifre binarie) che la identifica in maniera univoca

I testi per essere elaborati o trasmessi da un programma devono avere una rappresentazione (codifica) binaria

Rappresentazione del testo su supporto digitale in un formato “leggibile” da un computer

Machine Readable Form (MRF)

Page 28: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

28

La codifica digitale del testoIl testo e la sua organizzazione

titolo

capitolo

testo

intestazione

Page 29: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

29

La codifica digitale del testoIl testo e la sua struttura linguistica

frase relativa

tutti = soggetto

sintagma nominale

articolo indefinito femminile singolare

stanza come luogo

V andare

pass. rem. 3 sing.

Page 30: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

30

La codifica digitale del testo

Le avventure di PinocchioCapitolo ICome andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.C'era una volta...- Un re! - diranno subito i miei piccoli lettori.- No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno.Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze.Non so come andasse, ma il fatto gli è che un bel giorno questo pezzo di legno capitò nella bottega di un vecchio falegname, il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro Ciliegia, per via della punta del suo naso, che era sempre lustra e paonazza, come una ciliegia matura.

Il testo come sequenza di caratteri

Ciascun carattere alfanumerico, di punteggiatura o di controllo che compone il testo deve essere rappresentato nei termini di un codice binario

Page 31: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

31

La codifica digitale del testoIl testo come sequenza di caratteri

“Surrogato” parziale del testo originario completa equivalenza solo dal punto di vista dei

caratteri che lo compongono perdita di informazione

l’informazione implicitamente veicolata dalla formattazione del testo relativa a:

– le coordinate meta-testuali> il nome dell’autore, il titolo, ecc.

– la struttura e organizzazione testuale> la suddivisione logica in sezioni, capitoli, paragrafi, ecc.

nessun guadagno di informazionel’informazione sulla struttura linguistica rimane implicita e

nascosta (come nel testo originale)

Page 32: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

32

La codifica digitale del testo Due livelli di codifica del testo digitale

codifica di basso livello (codifica di livello 0) riguarda la rappresentazione binaria della sequenza

ordinata dei caratteri codifica di alto livello

arricchisce il testo codificato al livello zero con informazione relativa a dimensioni strutturali– organizzazione del testo in strutture macrotestuali– articolazione del testo in strutture linguistiche

La codifica di alto livello permette di rendere esplicita qualsiasi interpretazione, anche di tipo linguistico, si voglia associareal testo

Page 33: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

33

Codifica di alto livelloInterpretazione e codifica

Interpretazione del testo informazioni che caratterizzano la struttura, contenuto, presentazione, natura

linguistica, ecc. di un testo e del suo contenuto informativo metadati

“informazione sull’informazione”

esistono vari livelli e gradi di interpretazione tipografica, extratestuale, linguistica, ecc.

Codifica di alto livello processo attraverso cui viene resa esplicita un’interpretazione del testo la codifica permette di rendere machine readable informazioni sul testo e tratti

del testo che altrimenti non sarebbero elaborabili dal computer

Page 34: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

34

Perché codificare?I motivi della codifica di alto livello

Un testo come flusso di caratteri e parole è una fonte di dati linguistici

Il testo è un’entità altamente strutturata, nella quale i dati linguistici sono correlati secondo piani di organizzazione multipli struttura del testo

l’ articolazione in sezioni, capitoli, titoli, ecc.

struttura del contesto l’autore, la data di produzione, la finalità del testo, ecc.

struttura linguistica (implicita nel testo!!) informazioni morfologiche, sintattiche, semantiche

Page 35: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

35

Perché codificare?La gerarchia dell’informazione

I dati non hanno un significato intrinseco a meno di non inserirli in uno schema o struttura che li organizza e li

trasforma in informazione

Dati = contenuto grezzo dell’informazione

Informazione

Informazione = dati + interpretazione (struttura)

Conoscenza

Conoscenza = informazione + teoria

Dati

La gerarchia dell’informazione

Page 36: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

36

La gerarchia dell’informazionebenzina, 4 cil. in linea1.997 cc130 kW (180 CV)02 Nm (20,6 kgm)manuale a 5 rapportianteriore205/50 R 174,35/1,76/1,42 m

Motori: benzina, 4 cil. in lineaCilindrata: 1.997 ccPotenza max: 130 kW (180 CV)Coppia max: 02 Nm (20,6 kgm)Cambio: manuale a 5 rapportiTrazione: anteriorePneumatici: 205/50 R 17Dimensioni: 4,35/1,76/1,42 m

dati di un auto

informazione su un auto

conoscenza sulle auto(struttura, funzionamento,

tipologie, ecc.)

Page 37: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

37

dati linguistici

informazione linguistica

conoscenza linguistica

le parole di un testo

l’organizzazione strutturale e linguistica di un testo

la conoscenza della lingua

modelli della lingua

Perché codificare?La gerarchia dell’informazione

linguistica

La codifica di alto livello permette di rendere espliciti e accessibili al computer i livelli di organizzazione strutturale di un testo e lo

trasforma in una fonte di informazione linguistica

Page 38: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

38

Cosa codificare?I contenuti della codifica di alto livello Individuare il livello di informazione da codificare

strutturale, linguistica, ecc. la codifica esplicita di informazione linguistica viene detta

annotazione del testo morfologica, semantica, sintattica, ecc.

Definire il repertorio dei tratti giudicati rilevanti per la codifica un esempio: la codifica morfo-sintattica

oggetto: codificare esplicitamente la categoria grammaticale e le proprietà morfologiche delle parole di un testo

da definire:– quali attributi codificare (cat. grammaticale, persona, genere,

numero, caso, ecc.)– quali valori possono avere i diversi attributi (numero = SING,

PLUR; caso = NOM, GEN, ecc.)

Page 39: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

39

Come codificare?I formati digitali del testo

Formato solo testo (plain text o txt) un file solo testo è costituito da una sequenza di bytes dove

ciascun byte rappresenta un carattere secondo un particolare codice

gli editori di testo sono programmi in grado di creare e leggere files di tipo solo testo

– Emacs, Blocco Note, Word Pad, ecc.> quando un editore di testo legge un file cerca di associare ogni

sequenza di bits a un carattere secondo un particolare codice

Vantaggi formato “aperto”, indipendente dal sistema operativo e dal

programma che lo ha creato massima portabilità e interscambiabilità dei testi

Svantaggi non può rappresentare aspetti relativi alla codifica di alto livello

– minima espressività

Page 40: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

40

Come codificare? I formati digitali del testo

Formati proprietari (doc, pdf, ecc.) possono essere creati, letti e interpretati solo da uno specifico

programma (es. Word, Adobe) oltre a sequenze di bits codificano caratteri, il file contiene sequenze

binarie che corrispondono a istruzioni di formattazione, codificate secondo le convenzioni di un certo programma

Vantaggi massima capacità espressiva e fruibilità per l’utente umano

– rappresenta aspetti relativi alla codifica di alto livello> ma solo per quanto riguarda la struttura testuale!!

Svantaggi formato “chiuso”, con minima portabilità e interscambiabilità codifica non per categorie testuali “astratte”, ma per modalità di

visualizzazione le informazioni linguistiche rimangono comunque implicite nel testo

Page 41: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

41

Come codificare? I linguaggi di marcatura

Codifica di alto livello con linguaggi di mark-up (linguaggi di marcatura) come XML dal punto di vista del formato digitale un testo codificato in XML è in

formato solo testo l’informazione strutturale è rappresentata attraverso l’aggiunta al testo di

etichette (o tag) di marcatura sequenze di caratteri visibili secondo una convenzione standard,

intercalati nel testo seguendo precise regole di combinazione “marcano” blocchi di testo a cui viene assegnata una determinata

interpretazione

Vantaggi portabilità e interscambiabilità dei testi codificati massimo grado di espressività

– è possibile esprimere tuttti gli aspetti della codifica di alto livello, compresa l’informazione linguistica

Page 42: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

42

Come codificare? I linguaggi di marcatura

<libro><titolo>Le avventure di Pinocchio<sottotitolo>Storia di un burattino</sottotitolo></titolo><autore>Carlo Collodi</autore><parte p_id=”1”><titolo>Parte prima</titolo><capitolo c_id=”I”><titolo> Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.</titolo><capoverso num=”p1c1c1”>C'era una volta...</capoverso><capoverso num=”p1c1c2”>- Un re! - diranno subito i miei piccoli lettori.</capoverso><capoverso num=”p1c1c3”>No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno.</capoverso><capoverso num=”p1c1c4”>Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze.</capoverso> </capitolo></parte></libro>

mark-up per la codifica di informazione strutturale

Page 43: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

43

Come codificare? I linguaggi di marcatura

<libro>…<parte><capitolo c_id=”I”><titolo>Come <parola cat=“V” tempo=“passRem”>andò</parola> che <parola cat=“N” genere=“m” num=“s”>maestro</parola> Ciliegia, falegname, trovò <sintagma tipo=”nominale”><parola cat=“artInd” genere=m” num=“s”>un</parola> pezzo di legno</sintagma>, che piangeva e rideva come un bambino.</titolo></capitolo></parte></libro>

mark-up per la codifica di informazione strutturale

mark-up per la codifica di informazione linguistica

+

Page 44: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

44

Come codificare?XML

XML (eXtensible Mark-up Language) (meta)linguaggio di marcatura

attraverso le DTD (Document Type Definition) consente di definire linguaggi di marcatura per la codifica del testo e di altri tipi di dato

con i linguaggi di marcatura, in linea di principio, non vi è limite alla tipologia di informazioni codificabili: infatti la tipologia di etichette di marcatura può essere definita in funzione delle finalità della codifica

standard affermato e diffuso facilmente elaborabile dal computer

chiara distinzione tra testo e markup ampia disponibilità di software per il trattamento di file XML

– parser, estrattori di tag, editor specializzati, ecc. facilmente interfacciabile con database per l’importazione dei dati codificati

XML è la base di un’intera tecnologia di linguaggi e applicazioni per il trattamento del mark-up

Page 45: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

45

Linguaggi di marcatura Un linguaggio di marcatura è un insieme di

convenzioni per la marcatura di testi

Marcatura di documenti la marcatura (o etichettatura) permette di rendere

esplicita un'interpretazione di un testo. storicamente

annotazioni in un testo che descrivono al tipografo come stampare o comporre una parte del testo

oggi qualsiasi tipo di codice inserito in un testo in forma

elettronica

Page 46: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

46

HTML - HyperText Markup Language

È un linguaggio di marcatura (non un metalinguaggio!) definito in termini di SGML Insieme di etichette prefissato

La marcatura non denota il “significato” ovvero la struttura “logica” di un documento che insieme di informazioni rappresenta un documento? come faccio a selezionare le informazioni rilevanti?

Studiato espressamente per il Web collegamenti ipertestuali immagini marcatura finalizzata alla presentazione del documento come pagina Web

diversi tipi di titoli, tabelle, ecc. non c’è un legame tra marcatura e tipi di informazione nel documento

Page 47: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

47

Una pagina HTML

<html><head>

<title>Le avventure di Pinocchio</title></head>

<body>

<h2>Carlo Collodi</h2>

<h1>Le avventure di Pinocchio</h1><p><p>Capitolo I</p><p><i>Come andò che Maestro

Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.</i><p></body>

</html>

Page 48: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

48

XML eXtensible Mark-up Language

La marcatura è dettata dalla struttura logica del documento

L’insieme di etichette può cambiare in base l'applicazione

Viene usato il concetto di tipo di documento specificato attraverso una Document Type Definition o DTD (è parte dello

standard XML) permette di imporre al documento una certa struttura (ovvero come si

compongono le sue parti)

Naturale successore di HTML come linguaggio per il Web più espressivo e flessibile per la visualizzazione è necessario una descrizione a parte con un altro

linguaggio (XSL) ma per lo stesso documento XML è possibile definire più visualizzazione

Page 49: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

49

Esempio di Documento XML

<libro><intestazione>

Le avventure di Pinocchio</intestazione>

<autore>Carlo Collodi</autore>

<titolo>Le avventure di Pinocchio</titolo><capitolo>

<intestazioneCapitolo>Capitolo I</intestazioneCapitolo>

<titolo>Come andò che MaestroCiliegia, falegname, trovò un pezzo di legno,

che piangeva e rideva come un bambino.</titolo></capitolo>

</libro>

Page 50: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

50

Le origini di XML

1969 Charles Goldfarb (IBM) dirige lo sviluppo di GML

1974 Charles Goldfarb inventa SGML, il padre dei linguaggi di marcatura

1986 SGML diventa uno standard ISO

(ISO 8879 ``Information Processing - Text and Office Systems - Standard Generalized Markup Language'')

1989 Tim-Berners Lee (CERN di Ginevra) inventa HTML

1995 Fondazione del World Wide Web Consortium (W3C)

Page 51: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

51

Le origini di XML

1996 Inizio dello sviluppo di XML presso il W3C

1998 XML 1.0 diventa una raccomandazione W3C

(uno standard di fatto)

1996-oggi Sviluppo di standard associati ad XML

(coordinato da W3C)

2002 XML 1.1 diventa una raccomandazione candidata W3C (Il

consorzio internazionale per la standardizzazione di linguaggi e strumenti per il WEB)

Page 52: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

52

I tratti caratterizzanti di XML Marcatura dichiarativa

usa etichette di marcatura che indicano la funzione astratta assolta dalla porzione di testo a cui si riferiscono

Marcatura strutturatastrutturata permette di raggruppare porzioni del testo e di definirle come unità

strutturali complesse, che riflettono l’organizzazione interna del testo

Marcatura gerarchicagerarchica le strutture identificate nel testo possono combinarsi in maniera

gerarchica un’unità strutturale del testo può a sua volta contenere altre strutture

incassate; quello che otteniamo è una gerarchia di strutture definibili a livelli incrementali di dettaglio

Page 53: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

53

I componenti della marcatura I componenti della marcatura XMLXML

gli elementigli elementi

Gli elementi rappresentano i blocchi costitutivi in cui si articola un testo

ogni elemento viene marcato in modo esplicito nel testo inserendo un delimitatore di apertura all’inizio dell’elemento e uno di chiusura alla fine Es: <autore>Carlo Collodi</autore>

delimitatore di apertura

delimitatore di chiusura

Contenuto

Elemento

Page 54: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

54

I componenti della marcatura I componenti della marcatura XMLXML

i nomi degli elementii nomi degli elementi

ogni tipo di elemento è identificato da un nome (etichetta o tag): il nome associato a ogni tipo di elemento è chiamato identificatore generico (generic identifier o GI)

XML è case-sensitive l’identificatore generico deve essere sempre specificato con lo stesso tipo

di carattere, maiuscolo o minuscolo: <tag>…</tag>, <TAG>…</TAG>, <Tag>…</Tag> *<tag>…</TAG>

norme per la sintassi del nome degli elementi possono contenere solo lettere, cifre, ., -, _ possono iniziare solo con una lettera o con _

nomi consentiti: <autore.libro>, <_autore>, <AUTORE-LIBRO>, <autore_1> nomi proibiti: <1autore>, <autore libro>, <autore;@?libro>

non esiste un limite di lunghezza per il nome di un elemento

Page 55: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

55

I componenti della marcatura I componenti della marcatura XMLXML

relazioni tra elementirelazioni tra elementi due elementi XML possono essere

annidati l’uno nell’altro

l’elemento più esterno è detto elemento genitore, quello interno elemento figlio

questo meccanismo di annidamento degli elementi permette la rappresentazione di strutture gerarchiche di profondità variabile

LIBRO

CAPITOLO

SEZIONE

SEZIONE

CAPITOLO

SEZIONE

SEZIONE

SEZIONE

Page 56: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

56

I componenti della marcatura I componenti della marcatura XMLXML

relazioni tra elementirelazioni tra elementi

struttura XML mal formata in quanto esiste un elemento “a cavallo” di due elementi (annidamento improprio)

in XML non è consentita la sovrapposizione tra elementi

un elemento figlio deve essere completamente incluso nell’elemento padre

LIBRO

CAPITOLO

SEZIONE

SEZIONE

CAPITOLO

SEZIONE

SEZIONE

Page 57: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

57

I componenti della marcatura I componenti della marcatura XMLXML

l’elemento radicel’elemento radice

ogni documento XML ben formato deve contenere un elemento che contiene tutti gli altri elementi (elemento radice)

la figura rappresenta una struttura mal formata in quanto in XML non è possibile avere più elementi a livello di radice

ogni documento XML deve contenere uno e uno solo elemento radice

l’elemento radice è “orfano” e senza “fratelli”

CAPITOLO

SEZIONE

CAPITOLO

SEZIONE

SEZIONE

SEZIONE

Page 58: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

58

I componenti della marcatura I componenti della marcatura XMLXML

il documento XML come alberoil documento XML come albero

SEZIONE

SEZIONE

SEZIONE

LIBRO

CAPITOLO

SEZIONE

SEZIONE

CAPITOLO

SEZIONE

SEZIONE

SEZIONE

LIBRO

capitolo

capitolo

sezione

sezione

sezione

sezione

sezione

stringa di caratteri

stringa di caratteri

Page 59: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

59

I componenti della marcatura I componenti della marcatura XMLXML

contenuto di un elementocontenuto di un elemento

Il contenuto di un elemento può essere costituito da:

testo libero non contenente altri elementi (dati di tipo carattere) <titolo>Le avventure di Pinocchio</titolo>

altri elementi (detti figli)<capitolo>

<titolo>Capitolo primo</titolo>

<capoverso>C'era una volta...</capoverso>

<capoverso>- Un re! - diranno subito i miei piccoli lettori.</capoverso>

</capitolo>

Page 60: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

60

I componenti della marcatura I componenti della marcatura XMLXML

contenuto di un elementocontenuto di un elemento

contenuto misto (elementi+ testo)<titolo>Le avventure di Pinocchio

<sottotitolo>Storia di un burattino</sottotitolo></titolo>

Il contenuto di un elemento può essere “vuoto”. Ci sono due modi di denotare un elemento vuoto: coppia di delimitatori di apertura e chiusura

<salto_pagina></salto_pagina> etichetta di elemento vuoto

<salto_pagina/>

Page 61: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

61

I componenti della marcatura I componenti della marcatura XMLXML

gli attributigli attributi

Gli elementi XML possono essere dotati di attributi gli attributi rappresentano informazioni aggiuntive che specificano alcune

caratteristiche dell’elemento (ma che non fanno parte del contenuto del testo)

nome_attributo= ”valore” <capoverso num=”1”>C'era una volta...</capoverso>

nome_attributo stesse restrizioni definite per i nomi degli elementi

i valori degli attributi devono sempre essere racchiusi tra virgolette (singole o doppie)

nel caso in cui un valore contenga al suo interno delle virgolette, allora diventa obbligatorio differenziarle da quelle più esterne

un attributo può ricorrere al massimo una volta all’interno di un elemento Attenzione!!! Gli attributi possono comparire solo nei tag di apertura degli

elementi

Page 62: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

62

I componenti della marcatura I componenti della marcatura XMLXML

elementi vs attributielementi vs attributi

Elemento = “contenitore” e “classificatore” del dato testuale

Attributo = “glossa” associata al dato testuale

<parola><orto>legno</orto><pos>nome</pos><accordo>

<num>sing</num><gen>masc</gen>

</accordo></parola>

<parola pos=”nome” num=”sing” gen=”masc” lemma=”legno”><orto>legno</orto>

</parola>

Codifiche spesso interscambiabili

Page 63: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

63

I componenti della marcatura I componenti della marcatura XMLXML

elementi elementi vsvs attributi attributi

Non è sempre facile stabilire quando preferire una codifica in termini di elementi o di attributi

gli elementi possono ricorrere più volte mentre un attributo può ricorrere al massimo una volta all’interno di un elemento

per gli elementi è possibile specificare l’ordine in cui devono apparire nel testo, mentre ciò non è possibile per gli attributi

un attributo non può descrivere strutture complesse (il valore di un attributo XML è semplicemente una stringa di caratteri), mentre questo è un tratto caratterizzante degli elementi

Page 64: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

64

I componenti della marcatura I componenti della marcatura XMLXML

commenticommenti Ogni documento XML può contenere una o più “note a margine”

dette anche, in gergo tecnico, commenti questo tipo di note non riguardano direttamente i dati da

annotare, e come tali sono ignorate da eventuali applicazioni forniscono informazioni preziose riguardo alle intenzioni

dell’annotatore, a suoi eventuali dubbi, pro-memoria ecc. Il loro destinatario è tipicamente un lettore umano

i commenti possono apparire in qualunque punto all’interno del testo con le seguenti eccezioni: non possono apparire all’interno di un delimitatore di apertura o di

chiusura di un elemento non possono apparire all’interno di un commento

<!– questo è un commento XML -->

Page 65: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

65

Document Type Definition - DTD La DTD definisce la tipologia dei marcatori XML per la codifica del

testo e le regole della loro combinazione definisce la “grammatica” del linguaggio di marcatura associato a una specifica

classe o tipo di documenti la DTD è uno schema di documento

una volta che i marcatori definiti nella DTD sono intercalati nel testo questo diventa un’istanza del tipo di documento (document instance)

La DTD è una lista non ordinata di dichiarazioni nella dtd vengono dichiarati - ovvero definiti - tutti gli oggetti necessari alla

costruzione di un linguaggio di marcatura elementi attributi entità

non importa in che ordine vengono effettuate le dichiarazioni ogni oggetto deve essere dichiarato una volta sola

Page 66: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

66

Dichiarare un elemento La dichiarazione di un elemento si articola in due parti

l’etichetta o tag che lo identifica (identificatore generico o generic identifier)

la descrizione del suo contenuto in termini strutturali, denominata modello di contenuto (o content model)

<!ELEMENT tag_elemento (modello_di_contenuto)>

Gli elementi si suddividono in “contenitori” che possono contenere

testo altri elementi (sotto-elementi) testo ed elementi (contenuto misto)

vuoti

Page 67: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

67

Dichiarare un elemento Il più semplice modello di contenuto è rappresentato da

dati di tipo carattere

Il modello di contenuto consiste nella parola riservata #PCDATA (Parsed Character data) che specifica che il contenuto dell’elemento in corso di definizione è testo senza marcatori

<!ELEMENT tag_elemento (#PCDATA)>

Esempio:<!ELEMENT autore (#PCDATA)>

Page 68: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

68

Dichiarare un elemento Il contenuto di un elemento può essere costituito

esclusivamente da sotto-elementi (o elementi figli) per i quali è possibile specificare le modalità di occorrenza

Possono essere stabilite restrizioni sul numero di volte in cui ciascun sotto-elemento può ricorrere all’interno di un elemento padre attraverso indicatori di occorrenza aggiunti come “suffissi” al nome del sotto-elemento

Simbolo Descrizione Numero occorrenze

? occorrenza opzionale 0 o 1 + occorrenza obbligatoria e ripetibile 1 * occorrenza opzionale e ripetibile 0

Se un sotto-elemento non è seguito da nessuno di questi indicatori, esso deve ricorrere esattamente una volta

Page 69: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

69

Dichiarare un elemento Elemento obbligatorio

deve ricorrere esattamente una volta

Un libro deve avere un titolo, quindi l’elemento libro deve avere un sotto-elemento titolo

Esempio:<!ELEMENT libro (titolo)>

titolo

Page 70: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

70

Dichiarare un elemento Elemento opzionale

ricorre 0 o 1 volta

Un titolo può avere opzionalmente un sottotitolo, quindi l’elemento titolo può avere un sotto-elemento sottotitolo

Esempio:<!ELEMENT titolo (sottotitolo?)>

sottotitolo

Page 71: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

71

Dichiarare un elemento Elemento ripetibile e obbligatorio

che ricorre una o più volte

Un libro ha degli autori, almeno uno

Quindi l’elemento libro deve contenere al suo interno una o più occorrenze del sotto-elemento autore

Esempio:<!ELEMENT libro (autore+)>

autore

Page 72: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

72

Dichiarare un elemento Elemento ripetibile e opzionale

che ricorre 0 o più volte

Ad esempio, un libro può avere dei traduttori oppure no

Quindi l’elemento libro può contenere al suo interno zero o più occorrenze del sotto-elemento traduttore

Esempio:<!ELEMENT libro (traduttore*)>

traduttore

Page 73: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

73

Dichiarare sequenze di sotto-elementi

Nel caso in cui i sotto-elementi di un elemento siano più di uno, è possibile specificare la loro co-occorrenza e il loro ordinamento

Un libro è articolato al suo interno in diversi tipi di informazioni: gli autori, il titolo, eventualmente il sottotitolo, eventualmente i traduttori e così via

L’elemento libro contiene al suo interno una sequenza di sotto-elementi: la virgola specifica che i sotto-elementi devono ricorrere all’interno dell’elemento nell’ordine specificato

Esempio:<!ELEMENT libro (autore+,titolo,sottotitolo?,traduttore*)>

traduttoretitolo sottotitoloautore

Page 74: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

74

Dichiarare alternative tra sotto-elementi

Un elemento padre può contenere uno a scelta tra più sotto-elementi elencati

Un libro può avere un ISBN oppure un codice

L’elemento libro contiene al suo interno una tra le alternative elencate: la barra verticale indica che i sotto-elementi rappresentano scelte alternative

Esempio:<!ELEMENT libro (ISBN | codice)>

ISBN

codice

Page 75: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

75

Dichiarazione di un elementoModelli di contenuto complessi

È possibile definire modelli di contenuto complessi raggruppando scelte alternative e/o sequenze di sotto-elementi attraverso l’uso di parentesi

Ai sotto-elementi complessi così definiti possono essere associati indicatori di occorrenza: ad esempio, la dichiarazione (s2|s3)* indica che l’elemento in corso di definizione può contenere un numero indefinito da 0 a n sotto-elementi di tipo s2 e/o s3 senza vincoli sull’ordine reciproco di occorrenza.

Esempi:

<!ELEMENT tag_elemento (s1,s2?,s3*)>

<!ELEMENT tag_elemento (s1|s2|s3)>

<!ELEMENT tag_elemento (s1+,(s2|s3)*)>

Page 76: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

76

Dichiarazione di un elementoModelli di contenuto misto

È possibile definire elementi a contenuto misto, caratterizzati dalla presenza di sotto-elementi intervallati da dati di tipo carattere Modello di contenuto particolarmente utile nella codifica di un testo

Un elemento a contenuto misto è dichiarato come segue

<!ELEMENT tag_elemento (#PCDATA|s1|...|sn)*>

Nel modello di contenuto misto: la parola riservata #PCDATA deve essere obbligatoriamente la prima della

lista i vincoli riguardano soltanto la tipologia dei sotto-elementi, e non

l’ordinamento reciproco o il numero delle loro occorrenze ad es. (#PCDATA|s1|s2)* specifica che l’elemento definito può contenere

qualsiasi numero (0) di elementi di tipo s1 e s2 in qualsiasi ordine, opzionalmente intervallati da dati di tipo carattere

Page 77: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

77

Altri tipi di elementi Elemento vuoto

Non può contenere niente (né testo né sotto-elementi)

Un elemento a contenuto vuoto è dichiarato come segue

<!ELEMENT tag_elemento EMPTY> esempio:

<!ELEMENT salto_pagina EMPTY>

Elemento jolly può contenere qualsiasi cosa esempio:

<!ELEMENT tutto ANY>

Page 78: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

78

Dichiarare elementiun esempio

<!ELEMENT libro (autore+,titolo,sottotitolo?,capitolo+)><!ELEMENT autore (#PCDATA)><!ELEMENT titolo (#PCDATA)><!ELEMENT sottotitolo(#PCDATA)><!ELEMENT capitolo(#PCDATA|verbo)*><!ELEMENT verbo(#PCDATA)>

<libro><autore>Carlo Collodi</autore><titolo>Le avventure di Pinocchio</titolo><capitolo>C‘<verbo>era</verbo> una volta...- Un re! - <verbo>diranno</verbo> subito i miei piccoli lettori.</capitolo><capitolo>Questo è un altro capitolo</capitolo>

</libro>

Page 79: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

79

Dichiarazione di attributi

Definisce l’insieme degli attributi pertinenti per la descrizione di un elemento

Per ciascun attributo stabilisce vincoli sulla tipologia dei valori che può assumere fornisce informazioni circa l’obbligatorietà della sua specificazione e,

eventualmente, sul suo valore di default

<!ATTLIST tag_elemento

tag_attributo1 tipo_valore modificatore

tag_attributon tipo_valore modificatore>

Page 80: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

80

Tipi di attributo

Tipo di attributo Valori associati

CDATA Il valore dell’attributo può contenere qualsiasi stringa di caratteri (anche spazi) (Character DATA)

NMTOKEN, NMTOKENS Questo attributo può contenere una o più (nel caso di NMTOKENS) stringhe contenenti caratteri alfanumerici (numeri e lettere) più i seguenti caratteri: ‘.’ (punto), ‘-’ (meno), ‘_’ (trattino basso), ‘:’ (due punti).

(valore1 | valore2 | … | valoren)

enumerated

È un tipo di attributo che può assumere un valore solo tra un insieme di possibili valori definiti dall’autore della DTD

Page 81: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

81

Tipi di attributo

Tipo di attributo Valori associati

ID Il valore dell’attributo deve essere una sequenza di caratteri che costituisce l’identificatore univoco dell’elemento a cui l’attributo è associato

IDREF, IDREFS Il valore dell’attributo è una sequenza di caratteri che costituisce il valore dell’attributo ID di un altro elemento nello stesso documento XML. IDREFS permette invece di specificare una lista di sequenze di caratteri ciascuna delle quali costituisce il valore dell’attributo ID di un altro elemento nello stesso documento XML

ENTITY, ENTITIES Il valore dell’attributo deve contenere uno o più (nel caso di ENTITIES) nomi di entità, dichiarate a loro volta all’interno della DTD

Page 82: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

82

Modificatori per gli attributi #REQUIRED

l’ attributo deve essere obbligatoriamente specificato nell’elemento

#IMPLIED la specificazione dell’attributo è opzionale

#FIXED permette di fissare nella dichiarazione dell’attributo il valore associato a

quell’attributo che rimane costante e immutabile es. #FIXED “valore_fisso”

Literal ovvero un valore predefinito – o valore di default

l’attributo è opzionale; se non viene reso esplicito, all’elemento viene automaticamente assegnato in fase di validazione l’attributo ocn il valore predefinito

es. “valore_default”

Page 83: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

83

Dichiarazioni di attributo: esempi

<!ATTLIST capitoloc_id ID #REQUIRED>

<!ATTLIST telefono tipo (casa|ufficio|cell) “casa”>

<!ATTLIST parola lemma CDATA #REQUIREDpos (n|v|agg|avv|art|prep) #REQUIREDnum (sing|plur) #IMPLIEDgen (fem|masc) #IMPLIEDid_parola ID #REQUIREDref_forma IDREF #IMPLIED>

attributo opzionale con valore predefinito

attributi opzionali

attributo obbligatorio

Page 84: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

84

Uso di identificatori e riferimenti<!ELEMENT biblioteca (autori,libri)><!ELEMENT autori (autore*)><!ELEMENT libri (libro*)>

<!ELEMENT autore (nome,cognome,dataNascita)><!ELEMENT nome (#PCDATA)><!ELEMENT cognome (#PCDATA)><!ELEMENT dataNascita (#PCDATA)><!ATTLIST autore ident ID #REQUIRED>

<!ELEMENT libro (titolo,data)><!ELEMENT titolo (#PCDATA)><!ELEMENT data (#PCDATA)><!ATTLIST libro scrittoDa IDREFS #REQUIRED>

Page 85: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

85

Uso di identificatori e riferimenti

<biblioteca><autori>

<autore ident=“001”> … </autore><autore ident=“002”> … </autore><autore ident=“003”> … </autore>…

</autori><libri>

<libro scrittoDa=“001”> … </libro><libro scrittoDa=“001 002”> … </libro><libro scrittoDa=“003 005 009”> … </libro>…

</libri></biblioteca>

Page 86: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

86

Struttura di un documento XML Un documento XML si articola in due parti:

prologo contiene le informazioni che permettono di

interpretare il documento come un documento XML, ricollegandolo alla corrispondente DTD (ove esista)

istanza del documento racchiude il dato testuale vero e proprio con la

relativa marcatura

ATTENZIONE! il prologo è facoltativo ma è sempre consigliabile

inserirlo nei propri documenti per favorire completezza di informazione e possibilità di validazione automatica

Page 87: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

87

Il prologo del documento XML Si articola a sua volta in due parti

dichiarazione XML (XML Declaration) fornisce informazioni sulla versione di XML utilizzata per scrivere il documento

– attributo version (il valore attuale è “1.0”) specifica il set di caratteri utilizzato per la codifica

– attributo encoding (il valore è il nome di un seto di caratteri, es. “iso-8859-1”)– se l’attributo è omesso, il documento è interpretatao coms codificato in UTF-8

indica se al documento è associata o meno una DTD esterna– attributo standalone (vali valori sono “yes” o “no”); se omesso è interpretato

come “no”

<?XML version="1.0" encoding=“iso-8859-1" standalone="no"?> dichiarazione del tipo di documento (DocType Declaration)

specifica qual è l’elemento radice dell’istanza del documento che segue associa al documento XML la relativa DTD che può essere interna o esterna al

documento è opzionale; deve essere aggiunta solo quando bisogna validare il documento XML

rispetto a una DTD

<!DOCTYPE elemento_radice DTD>

Page 88: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

88

Dichiarazione del tipo di documento

<!DOCTYPE elemento_radice DTD>

dove DTD può corrispondere a

l’intera DTD riportata tra parentesi quadre [ … ] (DTD interna al documento)

Esempio:<!DOCTYPE libro

[ <!ELEMENT libro (titolo, autore+, parte+)>

<!ELEMENT titolo (#PCDATA | sottotitolo)*>

… ] >

Page 89: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

89

Dichiarazione del tipo di documento

<!DOCTYPE elemento_radice DTD>

dove DTD può corrispondere a

un riferimento al file in cui la DTD è contenuta (DTD esterna) la sintassi del riferimento può essere

SYSTEM “URI_DTD”– URI_DTD è un nome di file oppure di un indirizzo Web– le virgolette sono obbligatorie

PUBLIC Formal_Public_Identifier “URI_DTD” nel caso il riferimento riguardi una DTD standard

<!DOCTYPE libro SYSTEM “pinocchio.dtd”>

<!DOCTYPE libro SYSTEM “http://www.unipi.it/pinocchio.dtd>”

Page 90: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

90

Dichiarazione del tipo di documento

DTD mista suddivisa in due porzioni, una interna e una esterna al documento (in

questo caso si distingue tra internal subset e external subset)

<!DOCTYPE libro SYSTEM “libro.dtd”

[ <!ELEMENT traduttore (nome,cognome)>

<!ELEMENT nome (#PCDATA)>

<!ELEMENT cognome (#PCDATA)> ] > il sottoinsieme interno viene elaborato per primo e gli viene data la

precedenza su qualsiasi sottoinsieme esterno funzionalità utile quando si ricorra a una DTD esterna, di cui si desidera

modificare alcune parti per un’applicazione specifica

Page 91: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

91

Livelli di correttezza Due livelli di correttezza di un documento XML

Documento ben formato obbedisce a tutte le regole della sintassi XML

– esiste un elemento radice– a ogni tag di apertura corrisponde uno di chiusura (senza

accavallamenti)– i valori degli attributi sono racchiusi tra virgolette– le entità sono tutte dichiarate– i caratteri speciali sono stati sostituiti da riferimenti a entità

Documento valido è ben formato rispetta la struttura prevista dalla DTD

– il documento diventa un’istanza valida della classe di documenti definiti dalla DTD

Page 92: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

92

Parser XML Parser non validanti

controllano solo se il documento XML è ben formato costruiscono un “albero” dei tag del documento

Es. Internet Explorer

Parser validanti controllano se il documento XML è ben formato

costruiscono un “albero” dei tag del documento

verificano se il documento è conforme alla DTD Es. TEI Emacs

Page 93: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

93

Un esempio di DTD<!-- dtd per un libro --> <!ELEMENT libro (titolo, autore+, parte+)><!ELEMENT titolo (#PCDATA | sottotitolo)*><!ELEMENT sottotitolo (#PCDATA)><!ELEMENT autore (#PCDATA)><!ELEMENT parte (titolo, capitolo+)><!ELEMENT capitolo (titolo, capoverso+)><!ELEMENT capoverso (#PCDATA)> <!ATTLIST parte

p_id ID #REQUIRED><!ATTLIST capitolo

c_id ID #REQUIRED><!ATTLIST capoverso

num ID #REQUIRED> <!ENTITY ograve "&#x00F2;"> <!ENTITY egrave "&#x00E8;">

Le dichiarazioni di elementi, attributi ed

entità possono essere anche mescolate

Page 94: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

94

Un esempio di documento XML valido

<?xml version=”1.0” encoding=”utf-8”?><!DOCTYPE libro SYSTEM “libro.dtd”><!-- qui comincia l’istanza del --><libro>

<titolo>Le avventure di Pinocchio<sottotitolo>Storia di un burattino</sottotitolo>

</titolo><autore>Carlo Collodi</autore><parte p_id=”cap1”>

<titolo>Parte prima</titolo><capitolo c_id=”I”><titolo> Come and&ograve; che maestro

Ciliegia, falegname, trov&ograve; un pezzo di legno, che piangeva e rideva come un bambino.</titolo><capoverso num=”p1c1c1”>C'era una volta...</capoverso>

<!-- altri capoversi del capitolo qui --></capitolo>

<!-- altri capitoli della parte qui --></parte>

<!-- altre parti qui --></libro>

Se mettiamo solo il nome del file della DTD, questa deve stare nella stessa

cartella del documento XML

Page 95: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

DOTTORATO IN LINGUISTICA

GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E

DELLE LINGUE MODERNE

Annotare i dati linguistici

Page 96: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

96

Cosa annotare?

Schema di annotazione un repertorio di categorie per la codifica, corrispondenti alla

tipologia dei tratti da rappresentare nel testo generalmente espresso nella forma di attributi e dei loro

possibili valori la definizione delle regole di compatibilità tra categorie

es. l’aggettivo non possiede un attributo di persona, o un nome quello di tempo

la specifica accurata dei criteri di applicazione al testo delle categorie selezionate

L’annotazione linguistica di un testo consiste nella codifica di informazione linguistica associata al dato testuale

Page 97: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

97

Schemi di annotazione Elementi critici

il grado di copertura dello schema; la riproducibilità dell’annotazione l’interazione con altri livelli di descrizione il grado di espressività dell’annotazione

ATTENZIONE!! il ruolo del linguista nell’annotazione testuale NON si ferma solo

alla definizione del contenuto dello schema di annotazione le modalità della sua applicazione sul testo NON rappresentano

un aspetto contingente e puramente secondario rispetto alla fase di specifica linguistica

Page 98: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

98

Livelli di annotazione Annotazione morfosintattica

categorie grammaticali, lemma, glosse morfemiche, ecc.

Annotazione sintattica costituenti, relazioni grammaticali, ecc.

Annotazione semantica sensi o categorie semantiche (es. ANIMATO), ruoli semantici (es.

AGENTE), ecc.

Annotazione pragmatica atti illocutori, relazioni anaforiche

ecc.

Page 99: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

99

Anatomia di uno schema di annotazione

I “gradi di libertà” di uno schema di annotazione gli scopi della ricerca per la quale l’annotazione è progettata la teoria linguistica di riferimento la modalità (ad es. manuale, semi-automatica, ecc.) con cui

l’annotazione viene effettuata la “granularità” della descrizione linguistica le caratteristiche stesse della lingua dei testi da annotare

esistono molteplici schemi di annotazione per ciascuno livello linguistico

Page 100: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

100

Anatomia di uno schema di annotazione

Uno schema di annotazione è la risultante della combinazione di un ristretto insieme di tipi di informazione linguistica di base, trasversali ai livelli di analisi linguistica informazione categoriale - l’assegnazione di categorie alle

unità e relazioni linguistiche identificate in un testo (ad es. verbo, sintagma nominale, soggetto, animato, ecc.);

informazione strutturale - l’identificazione nel testo di strutture che possono o essere interne a un particolare token (ad es. la sua articolazione in morfermi) o raggruppare più token (ad es. i costituenti dell’annotazione sintattica);

informazione relazionale - la definizione di relazioni tra le unità linguistiche identificate, (ad es. soggetto e oggetto diretto, le relazioni anaforiche, i ruoli semanticiecc.)

Ogni tipo di informazione pone specifici problemi di rappresentazione in XML

Page 101: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

101

Annotazione e informazione categoriale

Etichette che associano categorie o tratti linguistici alle unità identificate nel testo (o alle loro relazioni) Maestro_Ciliegia/np_ms ,/pun falegname/nc_ms ,/pun trovò/v_ s3ir

un/arti_ms pezzo/nc_ms di/prep legno/nc_ms

Rappresentazioni XML l’informazione categoriale come attributi XML<pm cat=”nc_ms”>

<orto>legno</orto>

</pm>

<pm pos=”nome” sottotipo=”nome_comune”

num=”sing” gen=”masc” lemma=”legno”><orto>legno</orto>

</pm>

Page 102: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

102

Annotazione e informazione categoriale

Rappresentazioni XML l’informazione categoriale come elementi XML<pm>

<orto>legno</orto>

<pos>nome</pos>

<accordo>

<num>sing</num>

<gen>masc</gen>

</accordo>

</pm>

Page 103: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

103

Annotazione e informazione strutturale

Identificazione delle unità strutturali del testo (sia internamente al singolo token sia tra token diversi) e la loro organizzazione in strutture gerarchiche [ [[Maestro Ciliegia]

[falegname]]

[[trovò][[un pezzo]

[di [legno]]]]]

Generalmente l’annotazione strutturale si accompagana anche all’indicazione di informazione categoriale es. tipi di costituenti

Page 104: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

104

Annotazione e informazione strutturale

Rappresentazioni XML Strutture sintattiche

<struct><cat>F</cat> <struct><cat>SN</cat> <struct><cat>SN</cat> <orto>Maestro</orto> <orto>Ciliegia</orto> </struct> <struct><cat>SN</cat> <orto>falegname</orto> </struct> </struct> <struct><cat>SV</cat> <struct><cat>V</cat> <orto>trov&#x00F2;</orto></struct> <struct><cat>SN</cat> <struct><cat>SN</cat> <orto>un</orto> <orto>pezzo</orto> </struct> <struct><cat>SP</cat> <orto>di</orto> <struct><cat>SN</cat> <orto>legno</orto> </struct></struct></struct></struct></struct>

Strutture morfologiche

<struct><orto>mangiarlo</orto><struct lemma=”MANGIARE”/><struct lemma=”LO”/>

</struct>

Page 105: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

105

Annotazione e informazione relazionale

L’informazione relazionale collega tra loro unità linguistiche previamente identificate (ad es. token, unità morfolessicali, costituenti sintattici)

Dipendenze sintattiche

Dipendenze anaforiche Maestro Ciliegiah regala il pezzo di legnoi al suoh amico Geppettoj, il qualej

loi prende per fabbricarsi un burattino maravigliosok chek sappia ballare,

tirar di scherma e fare i salti mortali.

un

legno Maestro Ciliegia, falegname, trovò un pezzo di

legno Maestro Ciliegia, falegname, trovò pezzo di

SOGG OGG COMP

Page 106: DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione

106

Annotazione e informazione relazionale

Rappresentazioni XML Annotazione distribuita<pm id=”pm_1”><orto>Maestro</orto><orto>Ciliegia</orto></pm><pm id=”pm_2”><orto>falegname</orto></pm><pm id=”pm_3”><orto>trov&#x00F2;</orto></pm><pm id=”pm_4”><orto>un</orto></pm><pm id=”pm_5”><orto>pezzo</orto></pm>...<rel tipo=”sogg” testa=”pm_3” dipendente=”pm_1”/><rel tipo=”ogg_diretto” testa=”pm_3” dipendente=”pm_5”/>

Dipenzenze come attribuiti<pm id=”pm_1” deprel=”sogg” testa=”pm_3”>

<orto>Maestro Ciliegia</orto></pm><pm id=”pm_3”><orto>trov&#x00F2;</orto></pm><pm id=”pm_5” deprel=”ogg_diretto” testa=”pm_3”>

<orto>pezzo</orto></pm>