Corpora e linguistica computazionale Cristina Bosco Corso di Informatica applicata alla comunicazione multimediale 2013-2014 Elaborare il linguaggio naturale Il problema della comprensione del linguaggio naturale è molto complesso per un computer. Lo è anche per gli esseri umani, in cui l’apprendimento della lingua madre è un processo lungo e articolato. Elaborare il linguaggio naturale Da un lato, esiste il problema di dotare il computer di tutta la conoscenza necessaria (acquisendola e rappresentandola). Assumendo che un linguaggio sia trattabile da un computer che contiene la conoscenza posseduta da un parlante di quella lingua. Elaborare il linguaggio naturale Dall’altro lato, esiste il problema di dotare il computer di algoritmi adeguati. Assumendo che le operazioni da fare sull’input siano ben definibili. Soluzioni Si divide il problema generale della comprensione del linguaggio in sottoproblemi, quindi: • si adottano delle astrazioni per limitare a determinati livelli la comprensione • si eseguono dei task in cui si ottiene una comprensione parziale Soluzioni? L’utilizzo delle astrazioni e la scomposizione in subtask portano vantaggi sia nell’acquisizione/rappresentazione della conoscenza sia nella costruzione degli algoritmi. Ma non risolvono del tutto il problema. Soluzioni? Utilizzare le astrazioni nell’acquisizione/ rappresentazione della conoscenza significa rappresentare il linguaggio con formalismi adatti ai vari livelli distinti. Ad es. definire chiaramente quali sono le informazioni morfologiche e quali quelle sintattiche. Soluzioni? testo rappresentazione morfologica del testo rappresentazione sintattica del testo Soluzioni? Utilizzare le astrazioni nella costruzione degli algoritmi significa dividere il trattamento del linguaggio in livelli diversi. Ad es. definire algoritmi che trattano solo la morfologia ed altri che trattano solo la sintassi. Soluzioni? PoS tagger testo Parser rappresentazione morfologica del testo rappresentazione sintattica del testo Problemi Anche assumendo le astrazioni, tuttavia il linguaggio resta difficile da trattare perchè: • è ricco di ambiguità • è usato in modo non corretto • è in continua espansione Problemi Le diverse soluzioni adottate per acquisire/rappresentare il linguaggio e per costruire gli algoritmi tengono conto dei problemi intrinseci al linguaggio. Astrazioni e rappresentazioni In questo corso ci focalizziamo sull’acquisizione e rappresentazione della conoscenza pertinente a 2 livelli di astrazione, fondamentali per la maggior parte dei task: • morfologia • sintassi Acquisizione della conoscenza Un sistema che tratta il linguaggio deve avere a disposizione la conoscenza linguistica necessaria. Ma come si mette la conoscenza dentro un sistema? Acquisizione della conoscenza Esempio: che conoscenza occorre a un PoS tagger (analizzatore morfologico) per prendere in input “il cane dorme in giardino” e restituire in output “il ART, cane NOUN, dorme VERB, in PREP, giardino NOUN” ? Acquisizione della conoscenza output = il ART, cane NOUN, dorme VERB, in PREP, giardino NOUN conoscenza = ART (il), NOUN (cane, giardino), VERB (dorme), PREP (in) Acquisizione della conoscenza Esempio: che conoscenza occorre a un parser (analizzatore sintattico) per prendere in input “il cane dorme in giardino” e restituire in output “[S [NP (il – cane)] [VP (dorme) [PP (in – giardino)]]]” ? Acquisizione della conoscenza output = [S [NP (il – cane)] [VP (dorme) [PP (in – giardino)]]] conoscenza = art + noun = NP verb + PP = VP prep + noun = PP NP + VP = S Acquisizione della conoscenza Dove si trova la conoscenza? Le soluzioni sono 2: 1) conoscenza dentro il sistema – rule-based 2) conoscenza dentro un corpus di dati linguistici – corpus-based Corpus versus rule-based SISTEMA … grammatica lessico Corpus versus rule-based SISTEMA … apprendimento grammatica lessico CORPUS Corpus versus rule-based In entrambi i casi si presuppone che il linguaggio sia governato da regole (da conoscere per trattarlo) MA: • nei sistemi corpus-based le regole sono apprese, nei rule-based sono date • nei sistemi corpus-based le regole sono probabilistiche, nei rule-based sono deterministiche Corpus versus rule-based Se le regole variano, ad es. da una lingua all’altra, da un genere testuale ad un altro, devono essere riscritte in un sistema rulebased, ma non in uno corpus-based. Approccio corpus-based • Utilizzato dai linguisti dalla fine dell’800 e tutt’ora molto diffuso • Consiste nell’apprendere dal linguaggio le regole ed irregolarità del linguaggio Approccio corpus-based • Si basa sull’idea che le co-occorrenze sono fonti importanti di informazioni sulla lingua • Si ispira all’idea di apprendimento linguistico umano, tramite esposizione a esempi e basato su criteri statistici Approccio corpus-based Esempio: Nell’analisi sintattica (parsing), di fronte all’ambiguità e quindi generazione di più strutture, per una singola frase, si ricavano dai dati linguistici i CRITERI per scegliere la migliore delle strutture generate Approccio corpus-based L’approccio corpus-based assume che buona parte del successo del linguaggio umano nella comunicazione dipende dall’abilità che gli esseri umani hanno nel gestire ambiguità ed imprecisione in modo efficiente. Approccio corpus-based Gli esseri umani riescono infatti a cogliere la corretta interpretazione di un messaggio da un insieme di stimoli di varia natura (ad es. contestuali ed emotivi) oltre che dalle parole e strutture che compongono il messaggio stesso. Approccio corpus-based L’approccio corpus-based offre inoltre la possibilità di sfruttare la conoscenza che va al di là delle parole e delle strutture che compongono il linguaggio. È quindi un modo efficiente di acquisire la conoscenza sul linguaggio. Approccio corpus-based Si assume che un CORPUS C di un linguaggio L possa contenere (~tutta) la conoscenza necessaria a trattare L, e si acquisisce la conoscenza da esso Approccio corpus-based Il processo di apprendimento offre come risultato • la conoscenza delle regole ed irregolarità del linguaggio (nonristretto) • MA SOPRATTUTTO la percezione della frequenza delle strutture linguistiche Approccio corpus-based In pratica per acquisire la conoscenza: si prende un campione di linguaggio, cioè un insieme di frasi = CORPUS si cercano nel corpus le strutture linguistiche e le loro probabilità = BASE di CONOSCENZA Approccio corpus-based In pratica un sistema corpus-based: se incontra una struttura ambigua cerca nella base di conoscenza l’informazione utile per costruire la rappresentazione più probabile della struttura Approccio corpus-based Ma come funziona un sistema statistico? ad ogni struttura S del linguaggio il sistema associa un valore di probabilità il valore di probabilità di S è dato dalla composizione delle probabilità delle parti di S Approccio corpus-based Esempio: “il cane dorme in giardino” P(il–cane: NP) = 95% P(in-giardino: PP) = 95% P(cane-dorme: VP) = 5% … Approccio corpus-based Ma come funziona un sistema statistico? la probabilità di ogni parte di una frase analizzata dipende dalla sua frequenza in un CORPUS di riferimento e dal modello statistico utilizzato Approccio corpus-based Ma come funziona un sistema statistico? Cosa è un modello probabilistico ? Serve a determinare come calcolare la probabilità di ogni risultato ottenuto dal sistema Approccio corpus-based Ma come funziona un sistema statistico? Esempio di un modello probabilistico molto usato: i bi-grammi:- per ogni coppia <a,b> di parole avremo una stima della probabilità che a e b siano associate sintatticamente (a=il e b=cane ha maggiore probabilità di occorrere che a=il e b=gatta) Approccio corpus-based i bi-grammi di “il cane dorme in giardino”: 1-il cane 2-cane dorme 3-dorme in 4-in giardino La probabilità di 1 sarà maggiore di quella di 2, quindi il sistema propone la costruzione di 1 invece che di 2. Approccio corpus-based A partire dagli anni ‘90 si sono sviluppati sistemi che apprendono la conoscenza da corpora di dati linguistici per moltissimi linguaggi. Si è progressivamente affermata anche la necessità di ANNOTARE i dati linguistici e si sono costruiti i TREEBANK. Approccio corpus-based Attualmente i TREEBANK sono le risorse linguistiche più utilizzate nel NLP. Approccio corpus-based Perché annotare i dati ? L’informazione è presente in forma implicita anche nei dati non annotati. Ma introdurre l’informazione in forma esplicita semplifica il processo di apprendimento, inoltre rende possibile la correzione. Annotazione e treebank Come annotare i dati ? Solitamente si annotano le informazioni di tipo morfologico e sintattico, più raramente quelle semantiche Annotazione e treebank Come annotare i dati ? Per ogni livello di annotazione vengono fatte delle scelte sia sulla teoria linguistica da prendere come riferimento sia sul modo in cui fisicamente mostrare i dati. Annotazione e treebank Quali dati annotare ? Occorre scegliere i testi da introdurre nel corpus in modo che siano rappresentativi del linguaggio che si vuole trattare. Annotazione e treebank Quali dati annotare ? un corpus é un campione significativo e rappresentativo di un linguaggio SE: • contiene frasi non ristrette • è “bilanciato” rispetto al genere, alla collocazione geografica e sociale, al tempo • MA non rappresenta mai TUTTO il linguaggio nel suo complesso Un progetto reale: Turin University Treebank • Obiettivo: sviluppare una risorsa linguistica, una banca di alberi sintattici per l’italiano Fasi di sviluppo del progetto • Selezione dei testi da annotare • Definizione dello schema di annotazione • Applicazione dello schema al corpus di testi (validità e consistenza) Selezione di testi in TUT • Giornali quotidiani (1.100 frasi = 18,044 tokens) • Codice civile (1.100 frasi = 28,048 tokens) • Acquis (201 frasi = 7,455 tokens) • Wikipedia (459 frasi = 14,746 tokens) • Costituzione Italiana, intera (682 frasi = 13,178 tokens) • Totale 3.452 frasi = 102.000 token Selezione in altri treebank TEXTS from PRAGUE newspapers, scientific and economic journals NEGRA newspaper Frankfurter Rundschau PENN IBM manuals, nursing notes, newspapers (Wall Street Journal), telephone conversations Definizione dello schema di annotazione • Scelta del formalismo • Scelta delle informazioni e strutture da rappresentare Struttura sintattica: scelta tra 2 aspetti • L’organizzazione delle unitá della frase (sintagmi e constituent structure) • La funzione degli elementi della frase (relazioni grammaticali e relational structure) Relational structure • Le parole della frase svolgono funzioni diverse • Le funzioni sono espresse in termini di relazioni grammaticali Relational structure ama SUBJ Giorgio OBJ Maria Constituent structure Le parole della frase sono organizzate in unità (costituenti) che a loro volta sono oggetto di una organizzazione (constituent structure) in unità più grandi ES: constituents S VP NP NP Nome-pr Verbo Nome-pr Giorgio ama Maria Constituent structure (S ) (NP ( NOME Giorgio)) (VP (VERBO ama) (NP (NOME Maria) ) ) Constituent structure Le relazioni tra le parole non sono tutte uguali: “Maria leggeva un libro in biblioteca” ES: Penn annotation ( SS SBJ ( NP - SBJ PRP I) ) (PRP ( ADVP - TMP TMP ( RB RB never) ) ( VP (VBD VBD had) DT many) (NNS NNS clients) ) ( NP (JJ ADV (DT DT a) ( NN NN day) )) ( NP - ADV )) ES: NEGRA annotation S OC HD SB NG VP MO HD ADV VVPP OA VAFIN NE NE ADV Costituenti e relazioni • La struttura relazionale include le informazioni relative all’ organizzazione della frase in unità • La struttura a costituenti non include le informazioni relative alla funzione delle parole • La struttura relazionale è più compatta Costituenti e relazioni • Sia le relazioni che i costituenti sono realizzati in modo diverso nelle diverse lingue • La struttura relazionale include la struttura argomentale La struttura argomentale • relazioni grammaticali • ruoli semantici • uguali o distinti? Le relazioni grammaticali • Identificabili da varie proprietà • Diverse nelle varie lingue Le relazioni grammaticali • Le relazioni sono realizzate diversamente nelle varie lingue, a seconda dell’uso di casi, inflessioni give someone something dare a qualcuno qualcosa Processo di annotazione MORPHO SYNT PRAGUE semisemiautomatic automatic NEGRA automatic interactive (probabilistic) PENN automatic automatic (skeletal) SEM semiautomatic Processo di annotazione in TUT • Part Of Speech tagging automatico • Correzione manuale del tagging • Parsing interattivo • Verifica e revisione Costruire un treebank Per costruire validi sistemi di analisi del linguaggio occorrono i treebank. Infatti è dimostrato che i sistemi di NLP che ottengono i migliori risultati sono quelli che prendono le informazioni da treebank) Costruire un treebank Per costruire dei treebank occorrono validi sistemi di analisi del linguaggio. È impossibile costruire treebank in modo esclusivamente manuale per motivi di tempo e di correttezza. Costruire un treebank In pratica l’annotazione dei treebank è prodotta da sistemi automatici di analisi morfologica (-4%) e sintattica (-10%) + annotatori umani che correggono le analisi prodotte in modo automatico TurinRelazioni Universityin Treebank TUT (2) Ogni relazione di TUT può essere composta di 3 elementi: • Morfo-sintattico: features che esprimono la categoria grammaticale Verb, Noun, … • Funzionale-sintattico: relazioni sintattiche come Subject, Object • Semantico: relazioni semantiche come Location, Time, Cause 1 In (IN PREP MONO) [7;PREP-RMOD-TIME] 2 quei (QUELLO ADJ DEMONS M PL) [1;PREPARG] 3 giorni (GIORNO NOUN COMMON M PL) [2;DET +DEF-ARG] 4 Sudja (|Sudja| NOUN PROPER) [7;VERBSUBJ] 5 la (IL ART DEF F SING) [4;APPOSITION] 6 zingara (ZINGARO NOUN COMMON F SING) [5;DET+DEF-ARG] 7 annunciava (ANNUNCIARE VERB MAIN IND IMPERF TRANS 3 SING) [0;TOP-VERB] 8 il (IL ART DEF F SING) [7;VERB-OBJ] 9 fallimento (FALLIMENTO NOUN COMMON M SING FALLIRE INTRANS) [8;DET+DEF-ARG] TUT Componente morfo-sintattica La nazione sogna VERB-SUBJ VERB I sogni di ricchezza NOUN NOUN-OBJ " ricchezza" VERB-OBJ della nazione " NOUN-SUBJ "Velocemente / in modo veloce" ADV-role ADV-role TUT Componente morfo-sintattica TUT Componente morfo-sintattica • Dati 944 differenti Verbi per un totale di 4.169 occorrenze nel corpus di TUT • Il 30% di questi Verbi (e le strutture predicative argomentali ad essi associate) risulta presente anche in forma nominale TUT Componente funzionale-sintattica Egli non è stato visto da nessuno ARG Egli non è stato visto da ieri MOD TUT Componente funzionale-sintattica TUT Componente semantica Da qui è partito l’assalto" LOC+FROM Succedeva dall’altra parte del mondo" LOC+IN I miliardi stanziati dal 1991" TIME Era impazzito dal dolore" REASONCAUSE Trarrà beneficio dalla bonifica" SOURCE TUT Componente semantica TUT Componente semantica • Dati 600 sintagmi preposizionali introdotti dalla preposizione DA e che svolgono il ruolo di modificatori • È stato rilevato che essi possono assumere i seguenti 7 differenti valori semantici: LOC+FROM, LOC+IN, LOC +METAPH, TIME, THEME, REASONCAUSE, SOURCE 1 In (IN PREP MONO) [7;PREP-RMOD-TIME] 2 quei (QUELLO ADJ DEMONS M PL) [1;PREPARG] 3 giorni (GIORNO NOUN COMMON M PL) [2;DET +DEF-ARG] 4 Sudja (|Sudja| NOUN PROPER) [7;VERBSUBJ] 5 la (IL ART DEF F SING) [4;APPOSITION] 6 zingara (ZINGARO NOUN COMMON F SING) [5;DET+DEF-ARG] 7 annunciava (ANNUNCIARE VERB MAIN IND IMPERF TRANS 3 SING) [0;TOP-VERB] 8 il (IL ART DEF F SING) [7;VERB-OBJ] 9 fallimento (FALLIMENTO NOUN COMMON M SING FALLIRE INTRANS) [8;DET+DEF-ARG] Applicare lo schema di annotazione a TUT significa che ogni sua frase: • viene parsificata in modo automatico dal parser TULE, sviluppato in parallelo con TUT • corretta da almeno 2 annotatori umani • verificata da tool automatici appositi • sottoposta a conversioni e applicazione di altri sistemi Ricadute del progetto TUT Utilizzo in 3 diverse direzioni: • Come raccolta di dati linguistici • Come banco di prova per sistemi di NLP • Come modello per lo sviluppo di altre risorse Ricadute del progetto TUT • Come raccolta di dati linguistici TUT ha consentito • Studi sul comportamento dei verbi della lingua italiana (estrazione di conoscenza) • Studio dell’ordine delle parole nella lingua italiana Ricadute del progetto TUT (in 3500 sentences) Ricadute del progetto TUT • Come banco di prova per sistemi di NLP TUT ha consentito di raggiungere i risultati allo stato dell’arte per il parsing dell’italiano, errore intorno al 10% • TUT è il treebank di riferimento nelle competizioni per parser di italiano (Evalita 07, 09, 11) Ricadute del progetto TUT • Come modello per lo sviluppo di altre risorse, TUT è utilizzato in: • in prospettiva cross-linguistica, è in corso di sviluppo un treebank parallelo per le lingue italiano, francese e inglese (ParTUT) • per lo studio di fenomeni legati all’espressione di sentimenti, opinioni ed emozioni, è in corso di sviluppo un corpus di testi di Twitter annotato morfologicamente (SentiTUT) Ricadute del progetto TUT • INOLTRE: TUT è stato tradotto in formati di altri treebank grazie a tool di conversione automatica • Questo ha reso possibile l’applicazione di strumenti sviluppati per tali formati ed il confronto tra paradigmi e modelli linguistici differenti nell’ambito del dibattito su quale formato si rivela più adeguato per il NLP in generale e per le diverse lingue naturali Il Turin University Treebank (TUT), ParTUT e SentiTUT sono tutti progetti dell’Interaction Models Group (L. Lesmo, C. Bosco, A. Mazzei, V. Lombardo, L. Robaldo, M. Sanguinetti) del Dipartimento di Informatica dell’Università di Torino Per ulteriori informazioni: http://www.di.unito.it/~tutreeb