Gramática, reconhecimento e análise gramatical Luiz Arthur Pagani 1
1 Introdução estrutura de constituintes: Uma sentença em uma língua natural é composta por estruturas, chamadas de sintagmas ou constituintes sintáticos, sendo que cada constituinte é por sua vez composto por outros constituintes. [1, p. 46; tradução minha] duplamente subjacente (estrutura hierárquica e interpretação): os objetos linguísticos são objetos estruturados. Mas eles não apresentam explicitamente suas estruturas. Qualquer interpretação do signicado de uma sentença depende essencialmente da habilidade de inferir sua estrutura uma hablidade da qual muito provavelmente o falante não tem consciência. [2, p. 5; tradução minha] 2
2 Gramática gramática: Uma gramática é uma descrição declarativa de uma língua. Ou seja, ela apenas estabelece as condições que devem ser satisfeitas para que uma cadeia de palavras seja uma expressão válida de uma língua. [3, p. 125; tradução minha] exemplo de regras gramaticais: Sintagmáticas Lexicais 1. S 5. {o, a, um, uma,..., os, as,... } 2. 6. {menino,..., bola,... } 3. V int 7. V int {correu,... } 4. V td 8. V td {chutou,... } 3
gramática independente (livre) de contexto (GIC) (context-free grammar): uma GIC é uma quádrupla (C, T, R, Σ) tal que C é o conjunto de símbolos não-terminais. Estes símbolos são usados para representar os constituintes sintáticos. T é o conjunto de símbolos terminais. o nosso caso, este conjunto vai corresponder ao conjunto de palavras da língua. R é o conjunto de regras. Cada regra tem a forma α β, tal que α é membro de C e β é uma lista nita ordenada de elementos tanto de C quanto de T : (α C, β C T ). As regras permitem a denição das estruturas em termos das subestruturas pelas quais elas são compostas. Σ é um elemento particular chamado de `símbolo inicial' ou axioma. É o símbolo que corresponde ao constituinte sintático de nível mais elevado: no nosso caso, será o símbolos S (para as sentenças). [1, p. 48; tradução minha] 4
Σ C (raiz da árvore; símbolo do qual deriva toda a árvore que representa a estrutura da sentença) de volta ao exemplo: C = {S,,,,, V int, V td } T = {o, a, um, uma,..., os, as,..., menino,..., bola,..., correu,..., chutou,... } R = Σ = S S, {o, a, um, uma,..., os, as,...},, {menino,..., bola,...}, V int, V int {correu,...}, V td, V td {chutou,...}, 5
3 Reconhecedor gramatical reconhecimento: A identicação de uma cadeia de palavras sintaticamente bem-formada é um processo conhecido como reconhecimento. [3, p. 125; tradução minha] identicação de gramatical ou agramatical exemplo: o menino correu * o menina correu uma menina chutou outra bola * uma outra bola menina chutou 6
reconhecimento de uma menina chutou outra bola: Id. Operação Justicação 1. S estado inicial 2. 1 e regra 1 3. 2 e regra 2 4. uma 3 e regra 5 5. uma menina 4 e regra 6 6. uma menina V td 5 e regra 4 7. uma menina chutou 6 e regra 8 8. uma menina chutou 7 e regra 2 9. uma menina chutou outra 8 e regra 5 10. uma menina chutou outra bola 9 e regra 6 11. estado nal 7
4 Analisador gramatical em inglês, parser instrumento para inferir estrutura: Um instrumento computacional que infere a estrutura a partir de uma cadeia gramatical de palavras é conhecido como analisador gramatical, e a maior parte da história do PL nos últimos 20 anos foi ocupado pelo desenvolvimento de analisadores gramaticais. [2, p. 5; tradução minha] 8
gramática analisador: Conceitualmente, o analisador e a gramática são coisas de tipos bem diferentes: uma gramática é apenas uma denição abstrata de um conjunto de objetos estruturados bem-formados, enquanto o analisador é um algoritmo ou seja, um conjunto preciso de instruções para se chegar a estes objetos. [2, p. 5; tradução minha] funcionamento: Modernamente, um analisador é concebido como um instrumento que toma uma gramática e uma cadeia de palavras e ou oferece uma estrutura gramatical imposta à cadeia de palavras, se a cadeia de palavras for gramatical em relação à gramática, ou não responde nada, se não for gramatical. [2, p. 5; minha tradução] 9
declarativo/procedimental: A análise e o reconhecimento, por outro lado, são processos que, a partir da descrição gramatical da língua, determina se uma determinada cadeia é uma expressão válida e, se for, qual é sua respectiva estrutura. É conceitualmente importante manter a distinção declarativo/procedimental entre gramáticas e reconhecedores/analisadores bem clara. [3, p. 125; tradução minha] ou seja, o analisador é um reconhecedor gramatical que, além de identicar a gramaticalidade (ou não), também infere a estrutura da expressão (quando for gramatical) 10
exemplos: * o menina correu * uma outra bola menina chutou S S o menino V int correu uma menina V td chutou outra bola 11
análise de o menino correu: Id. Operação Justicação 1. S estado incial 2. S 1 e regra 1 3. S 2 e regra 2 4. S 3 e regra 5 o 12
5. S 4 e regra 6 o menino 6. S 5 e regra 3 o menino V int 13
7. S 6 e regra 7 o menino V int correu 14
Referências [1] Annie Gal, Guy Lapalme, Patrick Saint-Dizier, and Harold Somers. Prolog for atural Language Processing. John Wiley & Sons, Chichester, 1991. [2] Gerald Gazdar and Chris Mellish. atural Language Processing in Prolog. Addison-Wesley, Wokingham, 1989. [3] Clive Matthews. An Introduction to atural Language Processing through Prolog. Longman, London, 1998. 15