Sistemi basati su conoscenza Linguaggio naturale: grammatiche Prof. M.T. PAZIENZA a.a. 2001-2002 Linguaggio Naturale Necessità di definire una grammatica formale • Dinamicità della lingua • Non grammaticalità di alcune espressioni • Comprensibilità del messaggio anche se scorretto formalmente I linguaggi formali sono assunti essere adatti a gestire i linguaggi naturali, ma con molti limiti e problemi Linguaggio Naturale • Definiamo lessico l’insieme delle parole ammissibili del vocabolario della lingua • Le parole sono raggruppate in categorie o parti del discorso (nome, articolo, pronome,verbo,…) • Classi aperte (nomi, verbi, aggettivi) • Classi chiuse (pronomi, avverbi, articoli, preposizioni, congiunzioni) Grammatica del linguaggio • S-> NP VP S congiunzione S • NP -> Pronome Sostantivo Articolo Sostantivo Cifra Cifra NP PP NP RelClause • VP-> Verbo VP NP VP Aggettivo VP PP VP Avverbio • PP -> Preposizione NP • RelClause -> that VP Analisi sintattica • Ricostruzione della struttura della frase di un enunciato, data una grammatica • Foresta di analisi: lista ordinata di Alberi di analisi • Algoritmi di parsing: approccio top-down e bottom-up Analisi di un enunciato Descrivere grammatiche BNF (problemi) • Descrive stringhe (senza significato) • Descrive grammatiche libere da contesto S->NP VP Sostantivo-> odore … … … Grammatica logica Logica del primo ordine • Gestisce “stringhe con significato” • Ogni nonterminale diventa predicato unario vero per stringhe che sono sintagmi di quella categoria NP( s1 ) VP( s2 ) S (Concatena( s1 , s2 )) ( s " odore"...) Sos tan tivo( s ) Grammatiche a clausole definite DCG Una grammatica logica permette inferenze non limitate (quindi approccio risolutivo costoso, necessaria una limitazione) Nelle grammatiche a clausole definite (DCG) ogni formula deve essere una clausola definita (in forma di Horn ha un solo atomo come conseguente e un atomo o una congiunzione di zero o più atomi come antecedente) Con il formalismo DCG una grammatica è definita in termini di logica del primo ordine Grammatiche a clausole definite DCG Sul lato sinistro un singolo nonterminale (aumentato o meno) Sul lato destro di una regola: • I simboli nonterminali possono essere aumentati con argomenti (semantica) in più NP(s,sem) • Una variabile può apparire sul lato destro di una regola DCG • Un test logico tra graffe può apparire sul lato destro di una regola. Grammatiche a clausole definite DCG Sul lato destro di una regola: • ……. • Un test logico tra graffe può apparire sul lato destro di una regola Cifra(sem)->sem [ 0 sem 9] Numero(sem)->Cifra(sem) Numero(sem)-> Numero(sem1)Cifra(sem2) [sem=10*sem1+sem2] Grammatiche Se non si distinguono i casi (ruoli sintat. e concord.) le grammatiche possono generare anche frasi sgrammaticate (overgenerazione) Es. Io dare te la penne Non è vero che qualunque NP si combina con qualunque VP e questo con qualunque PP in qualsiasi ordine L’introduzione di nuove regole che considerino i casi farebbe esplodere (nel numero) le grammatiche Grammatiche aumentate 1. Parametrizzare le regole ed aggiungere delle variabili permette di mantenere cost. il num. di regole di una grammatica (costo computazionale) e risolve anche il problema delle concordanze. Esempio (in inglese) S->NP(nominativo) VP …. 2. Sottogategorizzare i verbi Esempio (in inglese) PP->Preposizione NP(accusativo) Sottocategorizzazione verbale Analisi dei complementi (sintagmi obbligatori che seguono un verbo all’interno del sintagma verbale) • Lista di sottocategorizzazione (lista di categorie che il verbo accetta prioritariamente e che lo caratterizzano) • Aggiunti (sintagmi non dominati del verbo: spazio e tempo) E’ possibile che un verbo abbia più di una lista di sottocategorizzazione / E’ possibile che un sostantivo abbia più di una categoria Sottocategorizzazioni verbali Sottocategorizzazioni verbali Aumentare la catergoria VP con un appropriato argomento di sottocategorizzazione (complementi necessari a formare un VP completo) VP(sottocat)-> VP([NP!sottocat]) NP(accusativo) !VP([Aggettivo!sottocat])Aggettivo !VP([PP!sottocat]) PP !Verbo(sottocat)[] Sottocategorizzazioni verbali