La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione."— Transcript della presentazione:

1 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

2 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 riferimento A. Lenci, S. Montemagni, V. Pirrelli Testo e Computer. Elementi di linguistica computazionale, Carocci, 2005

3 3 Strumenti e risorse per lanalisi 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 formali logica, matematica, statistica, algoritmica software linguaggi di programmazione, strumenti e ambienti di sviluppo

4 DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Esplorare i dati linguistici

5 5 Ricerche avanzate nei corpora Espressioni 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

6 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

7 7 RE e Pattern Matching In Perl una RE è unespressione della forma / / Uso delle espressioni regolari in Perl 1.Si definisce un pattern tramite una RE 2.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)

8 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 REEsempi di matching /testo/ /a/ il testo del corpus il cane di Mario è nero /mark up/ mark up del testo /Linguistica/ la Linguistica Computazionale la linguistica computazionale

9 9 Classe di caratteri Un insieme di caratteri tra parentesi quadre è una RE che definisce una classe di caratteri disgiunti REDefinizioneEsempi di matching /[st]/il carattere s o il carattere tla sintassi il tempo /[ ]/qualsiasi cifra2 parole /[Ll]inguistica/linguistica o Linguisticala Linguistica Computazionale la linguistica computazionale ATTENZIONE!!! - Una classe di caratteri sta sempre per un solo carattere /[st]/il carattere s o tla sintassi il tema /st/la stringa stla sintassi il tema /[123]/il carattere 1 o 2 o /123/la stringa di caratteri

10 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 REDefinizioneEsempi di matching /[a-z]/qualsiasi lettera minuscolala sintassi il tempo /[0-9]/qualsiasi cifra2 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]/

11 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 REDefinizioneEsempi 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

12 12 Classe di caratteri Alcune utili abbreviazioni per classi di caratteri REClasse 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: \ttabulazione \na capo

13 13 Alternativa Loperatore | esprime la disgiunzione tra due RE (operatore di alternativa) REDefinizioneEsempi 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 loperatore di alternativa /ab|c/la stringa ab o il carattere c

14 14 Moltiplicatori I seguenti simboli sono usati in una RE per specificare quante volte deve comparire il carattere che li precede immediatamente: / ?/ il carattere precedente è opzionale (occorre 0 o 1 volta) / */ il carattere precedente occorre 0 o n volte (Kleene Star) / +/ il carattere precedente occorre 1 o n volte REDefinizioneEsempi di matching /ba?rio/la stringa brio o bario (la a è opzionale) brio bario berio /tokens?/lultimo carattere s è opzionale token tokens tokened

15 15 Moltiplicatori REDefinizioneEsempi di matching /ba*/il carattere b seguito da 0 o n a b ba baa baaa baaaabaaaaa … /[0-9]*/un numero infinitamente lungo, composto da 0 a n cifre la repubblica /[0-9][0-9]*/un numero infinitamente lungo che deve contenere almeno una cifra la repubblica /[0-9]+/un numero infinitamente lungo che deve contenere almeno una cifra /ba+/il carattere b seguito da 1 o n a ba baa baaa baaaabaaaaa …

16 16 Moltiplicatori Moltiplicatori avanzati: / {n,m}/ il deve occorrere almeno n volte e al massimo m volte / {n,}/ il deve comparire almeno n volte /carattere>{n}/ il deve comparire esattamente n volte REDefinizioneEsempi 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

17 17 Sostituzione di stringhe in Perl s/ / / compie la sostituzione solo sul primo match effettuato s/…/…/g sostituzione globale RETesto originarioNuovo testo s/é/e/…non so il perchénon so il perche s/ab*c/ad/abbbbbbc ac ad s/a/i/g s/a/i/ cavallo civillo civallo

18 18 Wildcard La RE /./ corrisponde a qualsiasi carattere (eccetto il ritorno-a-capo) REDefinizioneEsempi di matching /b.s/qualsiasi stringa di tre caratteri che inizia con b e termina con s bas bbs b3s b!s b sb,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 lautobus /.*/qualsiasi stringa (compresa quella vuota) lintero corpus, anche se vuoto

19 19 Ingordigia e pigrizia I moltiplicatori in Perl sono ingordi (greedy) fanno sempre matching con la stringa più lunga possibile /x+/axxxxxxxbaxxxxxxxb /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

20 20 Raggruppamento e memoria Le parentesi tonde servono per raggruppare stringhe di caratteri da moltiplicare: REDefinizioneEsempi di matching /(ab)+/una o più stringhe abab abab ababab /ab+/una a seguito da una o più bab 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 \ (1 = contenuto della prima coppia di parentesi; 2 = contenuto della seconda coppia di patentesi, ecc.)

21 21 Raggruppamento e memoria REDefinizioneEsempi 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.

22 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?

23 23 Ancore Le ancore sono caratteri speciali che specificano dove deve comparire il pattern di testo da cercare /^ /il deve comparire allinizio di una linea / $/il deve comparire alla fine di una linea REDefinizioneEsempi di matching /cane$/la stringa cane quando compare alla fine di una linea …cane¶ il cane di Mario /^La/la stringa La quando compare allinizio 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 …

24 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 dallaltra o un carattere di classe \W o linizio (fine) riga ¶La macchina in giardino¶ REDefinizioneEsempi 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

25 25 Precedenza I moltiplicatori, le parentesi, lalternativa, 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 ancoreata ^ $ \b Alternativa| Le parentesi ( ) permettono di alterare lordine di precedenza /a|b+/vs./(a|b)+/

26 DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Rappresentare i dati linguistici

27 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)

28 28 La codifica digitale del testo Il testo e la sua organizzazione titolo capitolo testo intestazione

29 29 La codifica digitale del testo Il 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.

30 30 La codifica digitale del testo Le avventure di Pinocchio Capitolo I Come 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

31 31 La codifica digitale del testo Il 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 linformazione implicitamente veicolata dalla formattazione del testo relativa a: –le coordinate meta-testuali >il nome dellautore, il titolo, ecc. –la struttura e organizzazione testuale >la suddivisione logica in sezioni, capitoli, paragrafi, ecc. nessun guadagno di informazione linformazione sulla struttura linguistica rimane implicita e nascosta (come nel testo originale)

32 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

33 33 Codifica di alto livello Interpretazione 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 sullinformazione esistono vari livelli e gradi di interpretazione tipografica, extratestuale, linguistica, ecc. Codifica di alto livello processo attraverso cui viene resa esplicita uninterpretazione del testo la codifica permette di rendere machine readable informazioni sul testo e tratti del testo che altrimenti non sarebbero elaborabili dal computer

34 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 è unentità 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 lautore, la data di produzione, la finalità del testo, ecc. struttura linguistica (implicita nel testo!!) informazioni morfologiche, sintattiche, semantiche

35 35 Perché codificare? La gerarchia dellinformazione 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 dellinformazione Informazione Informazione = dati + interpretazione (struttura) Conoscenza Conoscenza = informazione + teoria Dati La gerarchia dellinformazione

36 36 La gerarchia dellinformazione benzina, 4 cil. in linea cc 130 kW (180 CV) 02 Nm (20,6 kgm) manuale a 5 rapporti anteriore 205/50 R 17 4,35/1,76/1,42 m Motori: benzina, 4 cil. in linea Cilindrata: cc Potenza max: 130 kW (180 CV) Coppia max: 02 Nm (20,6 kgm) Cambio: manuale a 5 rapporti Trazione: anteriore Pneumatici: 205/50 R 17 Dimensioni: 4,35/1,76/1,42 m dati di un auto informazione su un auto conoscenza sulle auto (struttura, funzionamento, tipologie, ecc.)

37 37 dati linguistici informazione linguistica conoscenza linguistica le parole di un testo lorganizzazione strutturale e linguistica di un testo la conoscenza della lingua modelli della lingua Perché codificare? La gerarchia dellinformazione 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

38 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.)

39 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à

40 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 lutente 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

41 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 linformazione strutturale è rappresentata attraverso laggiunta 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 linformazione linguistica

42 42 Come codificare? I linguaggi di marcatura Le avventure di Pinocchio Storia di un burattino Carlo Collodi Parte prima Come 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. mark-up per la codifica di informazione strutturale

43 43 Come codificare? I linguaggi di marcatura … Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. mark-up per la codifica di informazione strutturale mark-up per la codifica di informazione linguistica +

44 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 limportazione dei dati codificati XML è la base di unintera tecnologia di linguaggi e applicazioni per il trattamento del mark-up

45 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

46 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

47 47 Una pagina HTML Le avventure di Pinocchio Carlo Collodi Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.

48 48 XML eXtensible Mark-up Language La marcatura è dettata dalla struttura logica del documento Linsieme 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

49 49 Esempio di Documento XML Le avventure di Pinocchio Carlo Collodi Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.

50 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)

51 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)

52 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 strutturata Marcatura strutturata permette di raggruppare porzioni del testo e di definirle come unità strutturali complesse, che riflettono lorganizzazione interna del testo gerarchica Marcatura gerarchica le strutture identificate nel testo possono combinarsi in maniera gerarchica ununità strutturale del testo può a sua volta contenere altre strutture incassate; quello che otteniamo è una gerarchia di strutture definibili a livelli incrementali di dettaglio

53 53 I componenti della marcatura XML gli 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 allinizio dellelemento e uno di chiusura alla fine Es: Carlo Collodi delimitatore di apertura delimitatore di chiusura Contenuto Elemento

54 54 I componenti della marcatura XML i 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 lidentificatore generico deve essere sempre specificato con lo stesso tipo di carattere, maiuscolo o minuscolo: …, …, … * … norme per la sintassi del nome degli elementi possono contenere solo lettere, cifre,., -, _ possono iniziare solo con una lettera o con _ nomi consentiti:,,, nomi proibiti:,, non esiste un limite di lunghezza per il nome di un elemento

55 55 I componenti della marcatura XML relazioni tra elementi due elementi XML possono essere annidati luno nellaltro lelemento 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 CAPITOLO SEZIONE

56 56 I componenti della marcatura XML relazioni 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 nellelemento padre LIBRO CAPITOLO SEZIONE CAPITOLO SEZIONE

57 57 I componenti della marcatura XML lelemento 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 lelemento radice è orfano e senza fratelli CAPITOLO SEZIONE CAPITOLO SEZIONE

58 58 I componenti della marcatura XML il documento XML come albero SEZIONE LIBRO CAPITOLO SEZIONE CAPITOLO SEZIONE LIBRO capitolo sezione stringa di caratteri

59 59 I componenti della marcatura XML contenuto di un elemento Il contenuto di un elemento può essere costituito da: testo libero non contenente altri elementi (dati di tipo carattere) Le avventure di Pinocchio altri elementi (detti figli) Capitolo primo C'era una volta... - Un re! - diranno subito i miei piccoli lettori.

60 60 I componenti della marcatura XML contenuto di un elemento contenuto misto (elementi+ testo) Le avventure di Pinocchio Storia di un burattino Il contenuto di un elemento può essere vuoto. Ci sono due modi di denotare un elemento vuoto: coppia di delimitatori di apertura e chiusura etichetta di elemento vuoto

61 61 I componenti della marcatura XML gli attributi Gli elementi XML possono essere dotati di attributi gli attributi rappresentano informazioni aggiuntive che specificano alcune caratteristiche dellelemento (ma che non fanno parte del contenuto del testo) nome_attributo = valore C'era una volta... 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 allinterno di un elemento Attenzione!!! Gli attributi possono comparire solo nei tag di apertura degli elementi

62 62 I componenti della marcatura XML elementi vs attributi Elemento = contenitore e classificatore del dato testuale Attributo = glossa associata al dato testuale legno nome sing masc legno Codifiche spesso interscambiabili

63 63 I componenti della marcatura XML elementi vs 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 allinterno di un elemento per gli elementi è possibile specificare lordine 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

64 64 I componenti della marcatura XML commenti 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 dellannotatore, a suoi eventuali dubbi, pro-memoria ecc. Il loro destinatario è tipicamente un lettore umano i commenti possono apparire in qualunque punto allinterno del testo con le seguenti eccezioni: non possono apparire allinterno di un delimitatore di apertura o di chiusura di un elemento non possono apparire allinterno di un commento

65 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 unistanza 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

66 66 Dichiarare un elemento La dichiarazione di un elemento si articola in due parti letichetta 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) Gli elementi si suddividono in contenitori che possono contenere testo altri elementi (sotto-elementi) testo ed elementi (contenuto misto) vuoti

67 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 dellelemento in corso di definizione è testo senza marcatori Esempio:

68 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 allinterno di un elemento padre attraverso indicatori di occorrenza aggiunti come suffissi al nome del sotto-elemento Simbolo DescrizioneNumero 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

69 69 Dichiarare un elemento Elemento obbligatorio deve ricorrere esattamente una volta Un libro deve avere un titolo, quindi lelemento libro deve avere un sotto-elemento titolo Esempio: titolo

70 70 Dichiarare un elemento Elemento opzionale ricorre 0 o 1 volta Un titolo può avere opzionalmente un sottotitolo, quindi lelemento titolo può avere un sotto-elemento sottotitolo Esempio: sottotitolo

71 71 Dichiarare un elemento Elemento ripetibile e obbligatorio che ricorre una o più volte Un libro ha degli autori, almeno uno Quindi lelemento libro deve contenere al suo interno una o più occorrenze del sotto-elemento autore Esempio: autore

72 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 lelemento libro può contenere al suo interno zero o più occorrenze del sotto-elemento traduttore Esempio: traduttore

73 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 Lelemento libro contiene al suo interno una sequenza di sotto- elementi: la virgola specifica che i sotto-elementi devono ricorrere allinterno dellelemento nellordine specificato Esempio: traduttore titolo sottotitolo autore

74 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 Lelemento libro contiene al suo interno una tra le alternative elencate: la barra verticale indica che i sotto- elementi rappresentano scelte alternative Esempio: ISBN codice

75 75 Dichiarazione di un elemento Modelli di contenuto complessi È possibile definire modelli di contenuto complessi raggruppando scelte alternative e/o sequenze di sotto-elementi attraverso luso di parentesi Ai sotto-elementi complessi così definiti possono essere associati indicatori di occorrenza: ad esempio, la dichiarazione (s 2 |s 3 )* indica che lelemento in corso di definizione può contenere un numero indefinito da 0 a n sotto-elementi di tipo s 2 e/o s 3 senza vincoli sullordine reciproco di occorrenza. Esempi:

76 76 Dichiarazione di un elemento Modelli 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 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 lordinamento reciproco o il numero delle loro occorrenze ad es. (#PCDATA|s 1 |s 2 )* specifica che lelemento definito può contenere qualsiasi numero ( 0) di elementi di tipo s 1 e s 2 in qualsiasi ordine, opzionalmente intervallati da dati di tipo carattere

77 77 Altri tipi di elementi Elemento vuoto Non può contenere niente (né testo né sotto-elementi) Un elemento a contenuto vuoto è dichiarato come segue esempio: Elemento jolly può contenere qualsiasi cosa esempio:

78 78 Dichiarare elementi un esempio Carlo Collodi Le avventure di Pinocchio C era una volta...- Un re! - diranno subito i miei piccoli lettori. Questo è un altro capitolo

79 79 Dichiarazione di attributi Definisce linsieme degli attributi pertinenti per la descrizione di un elemento Per ciascun attributo stabilisce vincoli sulla tipologia dei valori che può assumere fornisce informazioni circa lobbligatorietà della sua specificazione e, eventualmente, sul suo valore di default

80 80 Tipi di attributo Tipo di attributoValori associati CDATAIl valore dellattributo può contenere qualsiasi stringa di caratteri (anche spazi) (Character DATA) NMTOKEN, NMTOKENSQuesto 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). (valore 1 | valore 2 | … | valore n ) enumerated È un tipo di attributo che può assumere un valore solo tra un insieme di possibili valori definiti dallautore della DTD

81 81 Tipi di attributo Tipo di attributoValori associati IDIl valore dellattributo deve essere una sequenza di caratteri che costituisce lidentificatore univoco dellelemento a cui lattributo è associato IDREF, IDREFSIl valore dellattributo è una sequenza di caratteri che costituisce il valore dellattributo 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 dellattributo ID di un altro elemento nello stesso documento XML ENTITY, ENTITIESIl valore dellattributo deve contenere uno o più (nel caso di ENTITIES) nomi di entità, dichiarate a loro volta allinterno della DTD

82 82 Modificatori per gli attributi #REQUIRED l attributo deve essere obbligatoriamente specificato nellelemento #IMPLIED la specificazione dellattributo è opzionale #FIXED permette di fissare nella dichiarazione dellattributo il valore associato a quellattributo che rimane costante e immutabile es. #FIXED valore_fisso Literal ovvero un valore predefinito – o valore di default lattributo è opzionale; se non viene reso esplicito, allelemento viene automaticamente assegnato in fase di validazione lattributo ocn il valore predefinito es. valore_default

83 83 Dichiarazioni di attributo: esempi attributo opzionale con valore predefinito attributi opzionali attributo obbligatorio

84 84 Uso di identificatori e riferimenti

85 85 Uso di identificatori e riferimenti … …

86 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

87 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 ) –se lattributo è 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 dichiarazione del tipo di documento (DocType Declaration) specifica qual è lelemento radice dellistanza 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

88 88 Dichiarazione del tipo di documento dove DTD può corrispondere a lintera DTD riportata tra parentesi quadre [ … ] ( DTD interna al documento) Esempio:

89 89 Dichiarazione del tipo di documento 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

90 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) 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 unapplicazione specifica

91 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 unistanza valida della classe di documenti definiti dalla DTD

92 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

93 93 Un esempio di DTD Le dichiarazioni di elementi, attributi ed entità possono essere anche mescolate

94 94 Un esempio di documento XML valido Le avventure di Pinocchio Storia di un burattino Carlo Collodi Parte prima Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta... Se mettiamo solo il nome del file della DTD, questa deve stare nella stessa cartella del documento XML

95 DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Annotare i dati linguistici

96 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. laggettivo non possiede un attributo di persona, o un nome quello di tempo la specifica accurata dei criteri di applicazione al testo delle categorie selezionate Lannotazione linguistica di un testo consiste nella codifica di informazione linguistica associata al dato testuale

97 97 Schemi di annotazione Elementi critici il grado di copertura dello schema; la riproducibilità dellannotazione linterazione con altri livelli di descrizione il grado di espressività dellannotazione ATTENZIONE!! il ruolo del linguista nellannotazione 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

98 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.

99 99 Anatomia di uno schema di annotazione I gradi di libertà di uno schema di annotazione gli scopi della ricerca per la quale lannotazione è progettata la teoria linguistica di riferimento la modalità (ad es. manuale, semi-automatica, ecc.) con cui lannotazione 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

100 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 - lassegnazione di categorie alle unità e relazioni linguistiche identificate in un testo (ad es. verbo, sintagma nominale, soggetto, animato, ecc.); informazione strutturale - lidentificazione 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 dellannotazione 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

101 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 linformazione categoriale come attributi XML legno legno

102 102 Annotazione e informazione categoriale Rappresentazioni XML linformazione categoriale come elementi XML legno nome sing masc

103 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 lannotazione strutturale si accompagana anche allindicazione di informazione categoriale es. tipi di costituenti

104 104 Annotazione e informazione strutturale Rappresentazioni XML Strutture sintattiche F SN Maestro Ciliegia SN falegname SV V trovò SN un pezzo SP di SN legno Strutture morfologiche mangiarlo

105 105 Annotazione e informazione relazionale Linformazione relazionale collega tra loro unità linguistiche previamente identificate (ad es. token, unità morfolessicali, costituenti sintattici) Dipendenze sintattiche Dipendenze anaforiche Maestro Ciliegia h regala il pezzo di legno i al suo h amico Geppetto j, il quale j lo i prende per fabbricarsi un burattino maraviglioso k che k sappia ballare, tirar di scherma e fare i salti mortali. un legnoMaestro Ciliegia,falegname,trovòunpezzodi legnoMaestro Ciliegia,falegname,trovòpezzodi SOGGOGGCOMP

106 106 Annotazione e informazione relazionale Rappresentazioni XML Annotazione distribuita Maestro Ciliegia falegname trovò un pezzo... Dipenzenze come attribuiti Maestro Ciliegia trovò pezzo


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

Presentazioni simili


Annunci Google