Sistemi basati su conoscenza Linguaggio naturale: grammatiche Prof. M.T. PAZIENZA a.a
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
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
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