L`elaborazione del linguaggio naturale Grammatiche di Chomsky e
Transcript
L`elaborazione del linguaggio naturale Grammatiche di Chomsky e
L’elaborazione del linguaggio naturale • • • • • fondamenti teorici dell’intelligenza artificiale: la capacità di elaborare simboli è alla base del comportamento intelligente. L’esempio di elaborazione simbolica che in misura maggiore caratterizza gli esseri umani è senza dubbio il linguaggio verbale. comparsa del linguaggio: avvenuta tra 100 e 200 mila anni fa-> salto evolutivo che ha differenziato l’homo sapiens, la nostra specie, da tutte le altre specie di ominidi. Linguaggio e intelligenza sono fenomeni strettamente interconnessi. Lo stesso test di Turing assume che un eventuale computer intelligente deve sapere comunicare mediante il linguaggio naturale, come facciamo noi esseri umani. Sin dalle origini uno degli obiettivi principali dell’intelligenza artificiale e’ stato lo sviluppo di programmi in grado di produrre e comprendere discorsi in linguaggio naturale. A dire il vero, i primi passi mossi in questa direzione furono motivati più da interessi pratici che da stimoli teorici. Infatti, alcuni fra i primi finanziamenti che arrivarono ai progetti di ricerca nell’allora nascente campo dell’intelligenza artificiale furono attratti dalla prospettiva di sviluppare dei sistemi di traduzione automatica tra varie lingue, la cui applicazione commerciale era (ed è ) evidente. Le ricerche sulla elaborazione del linguaggio naturale (natural language processing) costituiscono uno dei settori di punta dell’intelligenza artificiale ed, in particolare, della linguistica computazionale. Grammatiche di Chomsky e analisi automatica del linguaggio naturale L’elaborazione automatica del linguaggio naturale prende le mosse dalla teoria linguistica di Noam Chomsky, una delle personalità scientifiche più rilevanti del nostro secolo. Secondo Chomsky la capacità che ogni essere umano ha di capire e produrre frasi e discorsi nella sua lingua è dovuta ad un insieme di conoscenze presenti nella sua mente: definiamo questo insieme di conoscenze implicite competenza linguistica. Tale competenza è almeno in parte inconsapevole: infatti la maggior parte delle persone sono in grado di produrre e capire le frasi corrette, così come di individuare immediatamente gli usi scorretti della loro lingua, pur senza sapere il modo in cui questo avviene. Inoltre, essa deve essere innata: non si spiegherebbe altrimenti la velocità con cui un bambino in pochi anni riesca a parlare una lingua in modo sostanzialmente corretto semplicemente imitando chi lo circonda. 1 Grammatiche di Chomsky e analisi automatica del linguaggio naturale La competenza linguistica, a sua volta, si suddivide in tre componenti: competenza fonologica: capacità di un parlante di produrre e capire i suoni della lingua parlata; competenza sintattica: capacità produrre o riconoscere frasi grammaticalmente corrette; competenza semantica: capacità di assegnare o di estrarre significato dalle frasi. Tutte queste capacità derivano dalla presenza nelle mente di un insieme di regole ben precise, che sono simili alle regole di un sistema formale. Per vari motivi, nella loro teoria della lingua Chomsky e i suoi seguaci hanno assegnato un ruolo prioritario alla competenza sintattica. È grazie ad essa che ogni parlante è in grado di percepire immediatamente che (a) «il gatto mangia il topo» è una frase grammaticalmente corretta, mentre (b) «il gatto topo il mangia» non lo è. Grammatiche di Chomsky e analisi automatica del linguaggio naturale Questo riconoscimento è determinato dal fatto che nella formazione di una frase (o nel processo simmetrico di comprensione di una frase) vengono seguite delle regole formali che complessivamente costituiscono la grammatica di una lingua. Tali regole, che si articolano in diversi gruppi (o componenti), vengono applicate (non necessariamente in modo sequenziale) per arrivare alla costruzione di frasi corrette, o alla verifica di frasi pronunciate da altri parlanti. Il gruppo principale di regole (o componenti di base) della teoria chomskiana determina la struttura generale di una frase e dà conto del fatto che ognuno è in grado di raggruppare in modo intuitivo le parole che la compongono in gruppi funzionali detti sintagmi. 2 Le Grammatiche di Chomsky Def. Una grammatica formale e' un sistema G = <VT,VN,P,S> caratterizzato da: VT (Σ) alfabeto finito di simboli detti terminali, VN alfabeto di simboli non terminali (variabili, categorie sintattiche), P, detto insieme di produzioni, e' una relazione binaria finita su (VT∪VN)*°VN°(VT∪VN)* × (VT∪VN)* <α,β>∈P si indica con α→β S∈VN e' detto assioma. Le Grammatiche di Chomsky Esempio. G=<{a,b,c},{S,B,C},P,S> Def. Il linguaggio generato da una grammatica e' l' insieme delle stringhe di terminali ottenibili con una sequenza finita di passi di riscrittura consistenti nell' applicazione delle regole di produzione con P consistente delle seguenti produzioni S → aS S→B B → bB B → bC C → cC C→c genera L(G) = {anbmch | n 0, m,h 1} 3 Grammatiche formali o grammatiche a struttura sintagmatica Le grammatiche a struttura sintagmatica (Phrase Structure Grammars o PSG's) vennero introdotte da Chomsky per fornire una classificazione dei linguaggi, preliminarmente alla caratterizzazione formale del linguaggio naturale. Una PSG è costituita dalla quadrupla G = (VT, VN, S, P) dove V= ∈ ∈ α --> β con α ∈ V+ e β ∈ V* Grammatiche di Chomsky e analisi automatica del linguaggio naturale raggruppare le parole dell’esempio (a) in questo modo: «Il gatto» - « mangia il topo». Ma vediamo, attraverso un esempio concreto, la forma che possono assumere queste regole. F SN – SV SN DET – N SV V – SN DET il N gatto, topo V mangia 4 Grammatiche di Chomsky e analisi automatica del linguaggio naturale Così espresse, le regole possono sembrare un po’ oscure. Ma acquistano subito il loro significato se le interpretiamo in questo modo: una frase (F – nel nostro eempio, ‘il gatto mangia il topo’) consiste di: - un sintagma nominale (SN – nel nostro esempio ‘il gatto’) seguito da - un sintagma verbale (SV, nel nostro esempio ‘mangia il topo’) un SN (nel nostro esempio ‘il gatto’ oppure ‘il topo’) è costituito da: - un determinante (DET, nel nostro esempio ‘il’) e da - un nome (N, nel nostro esempio ‘gatto’ o ‘topo’) un SV (nel nostro esempio ‘mangia il topo’) è costituito da: - un verbo (V – nel nostro esempio ‘mangia’) seguito da - un SN (nel nostro esempio ‘il topo’) un DET è un elemento del seguente insieme: (il) un N è un elemento del seguente insieme: (gatto, topo) un V è un elemento del seguente insieme: (mangia) Grammatiche di Chomsky e analisi automatica del linguaggio naturale • le regole vengono applicate per passi successivi a partire dalla prima • alcune regole possono essere applicate più volte se necessario • fino ad arrivare a una regola che a destra contenga un simbolo terminale Simbolo terminale: un simbolo che non può essere ulteriormente scomposto Possiamo verificare senza troppi sforzi che queste regole ci consentono di generare la frase (a) e non la frase (b). Per rendercene conto usiamo la classica rappresentazione ad albero con cui di norma i linguisti rappresentano la struttura sintagmatica di una frase. 5 Albero di Derivazione Data una grammatica formale, si dirà che una stringa appartiene al linguaggio corrispondente se esiste una derivazione nella grammatica dal simbolo iniziale a quella stringa. L' ordine di applicazione delle produzioni è irrilevante, mentre è rilevante la relazione che ogni produzione istituisce fra i simboli. Per le grammatiche CF e quelle regolari tale relazione è esprimibile mediante una struttura detta "ad albero". Data la grammatica G = (V, T, S, P) l' albero di derivazione di una stringa si ottiene nel modo seguente: ogni suo nodo ha un' etichetta che è un simbolo di V l' etichetta della radice è S ogni nodo non terminale ha un' etichetta che è in (V -T) ogni nodo terminale ha un' etichetta che è in T se un nodo con etichetta x ha come discendenti diretti, nell' ordine i nodi con etichetta x 1, .........., xk allora x --> x1 ........xk è in P. Albero Sintattico 6 Grammatiche formali o grammatiche a struttura sintagmatica Si dirà, quindi, L (G) il linguaggio generato da G, l' insieme delle stringhe su T che possono essere derivate da S in G, cioè L (G) = ! ∈ ∗, −∗−> Così, ad esempio, se VT = {il, cane, gatto, insegue, morde} VN = {S, NP, VP, Det, N, V} P = {S --> NP VP, NP --> Det N, VP --> V NP, Det --> il, N --> cane, N --> gatto, V --> insegue, V --> morde} Avremo: L (G) = {il cane rincorre il gatto, il gatto rincorre il cane, il cane morde il gatto, il gatto morde il cane, il cane rincorre il cane, il gatto rincorre il gatto, il cane morde il cane, il gatto morde il gatto} Grammatiche di Chomsky e analisi automatica del linguaggio naturale Non si riesce a generare la frase «il gatto topo il mangia». Neanche la frase «il gatto il topo mangia», che suona un po’ strana, ma è comunque ammissibile in italiano. Alle regole generative del componente di base nelle teoria di Chomsky si affiancano altre regole che applicate alla frase standard la trasformano in diversi modi corretti (ad esempio rendono la frase passiva: «Il topo è mangiato dal gatto»). Un programma non avrebbe difficoltà ad usare regole come queste per: - generare frasi o, - data una frase, analizzarla al fine di ricostruire la sua struttura e verificare se essa è tra quelle ammesse dalla grammatica: questi programmi si chiamano parser, o analizzatori sintattici, e sono alla base di tutti i sistemi di elaborazione del linguaggio naturale. Se dunque fosse possibile costruire grammatiche generativetrasformazionali per una data lingua, avremmo un metodo efficiente ed elegante per realizzare un programma in grado di elaborare almeno la sintassi di quella lingua. Tuttavia il compito di costruire queste grammatiche si è rivelato assai più improbo di quanto Chomsky non ritenesse. Attualmente esistono porzioni di grammatica abbastanza complete per varie lingue (soprattutto l’inglese), ma si è lontani dall’obiettivo di una formalizzazione completa. 7