Analisadores Gramaticais em Prolog

Propaganda
Analisadores Gramaticais em Prolog
(Projeto de pesquisa)∗
Luiz Arthur Pagani
http://people.ufpr.br/arthur
[email protected]
Resumo
Neste texto, apresenta-se ao Departamento de Lingüística, Letras
Vernáculas e Clássicas, da Universidade Federal do Paraná, um pro jeto
de pesquisa no qual diversas técnicas para a implementação de analisadores gramaticais em Prolog serão avaliadas.
Este recenseamento
dos analisadores gramaticais visa a embasar o trabalho que vem sendo
desenvolvido para a implementação de modelos computacionais para
as Gramáticas Categoriais.
Introdução
Ao contrário do que acontece nas áreas da Lingüística Computacional e do
Processsamento Automático de Língua Natural, nas quais uma máquina precisa executar por si só uma análise gramatical, na tradição dos estudos puramente lingüísticos sempre se deu mais atenção à gramática e à análise gramatical do que ao processo de construção da análise gramatical. Os lingüistas elaboram gramáticas para as línguas, que depois justicam as análises
gramaticais para determinadas expressões lingüísticas (as expressões gramaticais) e a exclusão das expressões que não fazem parte da língua descrita
(as expressões agramaticais); no entanto, eles normalmente pressupõem que
a aplicação destas gramáticas na construção destas análises gramaticais não
O presente texto foi preparado no sistema L T X, através de uma de suas implementações para Linux o TeTEX e de um ambienteE de integração de trabalho (
, ) o Kile ambos instalados em computadores funcionando
com o sistema operacional Kurumin; tudo dentro das diretrizes do chamado
. Expresso assim o meu reconhecimento à enorme equipe anônima que desenvolve todos
esses recursos e os disponibilisa gratuitamente.
A
∗
Integrated
Desktop Environment IDE
software li-
vre
1
precisa receber o mesmo tratamento explícito e formal que costuma ser dispensado principalmente às gramáticas.
Contudo, este processo de construção de análises gramaticais a partir de
uma gramática constitui uma questão bastante complexa, que merece a atenção dos lingüistas, e que ainda pode servir como um dos possíveis critérios
para se avaliar gramáticas, além do tradicional critério de economia, postulado por Chomsky (segundo o qual uma gramática seria melhor que outra
quando a primeira analisa as mesmas expressões lingüísticas que a segunda,
mas empregando uma quantidade menor de regras): se uma gramática exige
uma operação que é impossível de se realizar, esta gramática é pior do que
outra que só recorre a operações realizáveis; ou ainda, se uma gramática
exige uma operação de realização mais custosa do que a outra, e ambas têm
a mesma abrangência empírica e só diferem nesta operação, então a gramática que permite a realização de análises gramaticais menos custosa é melhor
do que a outra.
Além disso, a observação das condições para a construção de análises gramaticais é pertinente para a compreensão do processamento lingüístico humano: quando sabemos que determinadas operações só podem se realizar de
um determinado jeito, e não de outro, somos capazes de postular que, dadas
certas limitações na produção efetiva das expressões lingüísticas e na compreensão de seu signicado, esse processamento lingüístico é (in)compatível
com algum tipo de gramática; um exemplo deste tipo de compromisso entre uma gramática e seu processamento aparece em gramáticas de estrutura
sintagmática com regras recursivas à esquerda (como
SN → SN SP ,
por
exemplo) processadas por analisadores gramaticais descendentes (que partem
das regras para chegar à expressão analisada) e da esquerda para a direita
(que satisfazem o lado direito das regras de reescrita a partir do símbolo
mais à esquerda), que entram em recursão inntia, já que sempre é possível
reescrever um SN por um SN SP (SN =⇒ SN SP =⇒ SN SP SP =⇒
. . . =⇒ SN SP . . . SP ).
Vale lembrar também que, ao aprendermos o funcionamento de determinados algoritmos computacionais, estamos ainda nos capacitando melhor
para testar empiricamente, na Lingüística, algumas previsões feitas pela chamada metáfora computacional das ciências cognitivas.
2
1
Fundamentos
1.1
Análise Gramatical
Ainda que a dimensão mais evidente de uma manifestação lingüística seja a
sua seqüenciação no tempo,
1 o eixo sintagmático também dispõe de uma se-
gunda perspectiva; nas palavras de Lyons [7, p. 78], as relações sintagmáticas
não pressupõem necessariamente uma ordenação das unidades em seqüência
linear, de maneira que a realização substancial de um elemento deva preceder, no tempo, a realização de outro elemento. Nas palavras de Gra [6,
2 os sintagmas não são uma simples sucessão de palavras individuais,
p. 76],
mas são constituídos por grupos de palavras hierarquicamente organizados.
Assim, para descobrir esta organização hierárquica, normalmente chamada
de estrutura de constituintes, os lingüistas recorrem a diversos testes para
constatar a maior ou menor coesão entre os elementos dos supostos grupos, como os testes de comutação, de coordenação, de clivagem e mesmo de
passivização, que servem para determinar a estrutura de constituintes (ou
estrutura sintagmática), como por exemplo em Lyons [7, ps. 219226] (apresentado de uma maneira um pouco intuitiva), Gra [6, ps. 7591], Mioto,
Silva & Lopes [10, ps. 4549], ou mesmo Chierchia [2, cap. 3]. Através deste
tipo de teste, é possível observar, nas sentenças abaixo, que
uma mulher
é
um consituinte, já que ele se mantêm coeso em todas as posições que ele
ocupa nas referidas sentenças.
1. Todo homem ama uma mulher.
2. Uma mulher, todo homem ama.
3. É uma mulher que todo homem ama.
4. Uma mulher é amada por todo homem.
Estas duas dimensões do eixo sintagmático parecem car ainda mais claras na lingüística computacional, já que certas operações só podem ser realizadas depois que esta dimensão secundária é revelada. Gazdar e Mellish
[5, p. 5], por exemplo, se referem exatamente a isto quando dizem que:
Rero-me aqui ao fato de que as enunciações são constituídas pelo encademanto temporal de fones
Esta citação de [6] e as de [5], que serão usadas a seguir, foram todas traduzidas por
mim.
1
2
3
os objetos lingüísticos são objetos estruturados.
Mas eles não
manifestam explicitamente sua estrutura. A compreensão do signicado de uma sentença depende essencialmente de uma habilidade, que provavelmente é inconsciente para o falante nativo da
língua em questão, em reconstruir esta estrutura.
Neste caso, os autores mencionam explicitamente um aspecto cognitivo
da gramática: a construção mental de uma representação gramatical.
No
entanto, mesmo para aqueles que não estão diretamente interessados nas
manifestações cognitivas lingüísticas, não há como fugir de uma representação gramatical, ainda que ela seja considerada apenas uma entidade teórica:
da mesma maneira que a reconstrução mental da estrutura gramatical ajuda
a explicar nossas capacidades lingüísticas, a construção teórica de uma estrutura de constituintes nos ajuda a explicar as relações entre as expressões
lingüísticas.
1.2
Gramática
Uma análise gramatical não é um objeto aleatório: ela segue critérios bastante especícos que a relacionam com uma certa expressão lingüística, determinados pelo que se convencionou chamar de gramática. Uma apresentação deste tipo de concepção de gramática é feita, por exemplo, por Gazdar
e Mellish [5, p. 100]:
O conjunto de expressões lingüísticas compostas em uma língua
natural não é nito, portanto não podemos simplesmente listá-
uma máquina lenta, uma máquina muito
lenta, uma máquina muito muito lenta, . . . ). Até onde se sabe,
las uma-a-uma (cf.
nenhuma língua natural é uma língua nita. O domínio das construções que tornam uma língua innita normalmente é bastante
grande. Em português, uma palavra como
e
nos permite com-
binar um número indeterminado de sintagmas, e as sentenças
relativas podem conter sintagmas verbais que podem conter sintagmas nominais, que por sua vez podem conter outras sentenças
relativas . . . .
Por isso, precisamos de sistemas formais (ou seja, matemáticos)
que denam os membros de conjuntos innitos de expressões
lingüísticas e atribuam uma estrutura a cada um dos membros
destes conjuntos. Estes sistemas formais são as
4
gramáticas.
A relação entre a gramática e a análise gramatical também é reconhecida por Gazdar e Mellish [5, p. 101] da seguinte maneira: Da perspectiva
do PLN [Processamento de Língua Natural], o estudo da gramática é um
ramo da representação do conhecimento: uma gramática é apenas uma maneira de representar determinados aspectos do que conhecemos sobre uma
língua e que é explícito e formal o suciente para ser compreendido por uma
máquina.
1.3
Analisador Gramatical
Da noção de gramática como representação do conhecimento lingüístico e
da determinação da estrutura hierárquica das expressões lingüísticas, Gazdar e Mellish [5, p. 5] denem o que é um analisador gramatical (parser ):
um artefato computational que infere estrutura a partir de uma seqüência
gramatical de palavras é conhecido como
analisador gramatical,
e a maior
parte da história do PLN nos últimos 20 anos foi dedicada à formulação de
analisadores gramaticais.
A distinção entre gramática e analisador gramatical pode ser equiparada
à distinção entre competência e desempenho: a gramática estaria no domínio da competência, enquanto o analisador gramatical estaria relacionado ao
desempenho. Pode-se perceber esse tipo de distinção nas seguintes palavras
de Gazdar e Mellish [5, p. 5]: Conceitualmente, o analisador gramatical e a
gramática são coisas de tipos bem distintos: uma gramática é apenas uma
denição abstrata de um conjunto de objetos estruturados bem-formados,
enquanto que um analisador gramatical é um algoritmo ou seja, um conjunto preciso de instruções para se chegar a tais objetos.
Nesse sentido, esta distinção remete diretamente a toda uma discussão
que tem ocorrido no âmbito da psicolingüística moderna sobre a relação entre
a gramática e o analisador gramatical. Nesta discussão, podemos encontrar
posições que vão da separação radical entre gramática e analisador (como
a proposta pela hipótese da competência forte, de Bresnan [1]) à negação
desta separação (como geralmente acontece nas propostas coneccionistas),
passando por posições intermediárias que defendem uma distinção teórica
mediada por um processo de pré-compilação da gramática a ser empregada
pelo analisador (como a de Merlo [9]).
1.4
Prolog
A escolha do Prolog como linguagem de programação é bastante natural para
quem lida com o PLN, já que este foi um dos principais motivos que levou
5
à criação desta linguagem. Além disso, para um lingüista acostumado com
o cálculo de predicados, o Prolog é uma linguagem bastante simples de se
aprender, porque ela é fortemente inspirada num subconjunto decidível do
cálculo de predicados de primeira ordem.
Finalmente, talvez o melhor de todos os motivos para escolher o Prolog
seja a disponibilidade das fontes. Além do já mencionado livro de Gazdar e
Mellish [5], podemos mencionar ainda os livros de Pereira e Shieber [11], de
Covington [3], de Dougherty [4] e de Matthews [8], todos dedicados exclusivamente ao PLN em Prolog.
2
Proposta
2.1
Objetivos
O objetivo principal deste projeto é o de propor o recenseamento das várias técnicas de implementação de analisadores gramaticais disponíveis em
Prolog. Depois que os algoritmos forem identicados nas fontes citadas, eles
serão minuciosamente compreendidos tanto em seu funcionamento quanto
em suas limitações. Para esse m, além dos critérios normalmente empregados relacionados à estrutura sintática, serão consideradas ainda questões
de ordem da interpretação semântica, já que um dos principais motivos da
postulação deste projeto é o embasamento para a implementação de modelos computacionais para as Gramáticas Categoriais, que se caracterizam pelo
respeito ao princípio de composicionalidade (que prevê que o signicado de
uma expressão complexa deve ser resultado exclusivamente dos signicados
das expressões mais simples que a compõem e da forma como estas expressões mais simples se combinam; ou, dito de outra maneira, que cada operação
sintática deve corresponder a uma operação semântica); além disso, questões
relativas à possibilidade de aplicação destes modelos computacionais para a
explicação do comportamento lingüístico humano também serão levadas em
consideração.
Como um objetivo secundário, pretende-se que os resultados deste recenseamento sejam disponibilizados através de uma página de internet, a ser
sediada no endereço
http://people.ufpr.br/arthur.
Além disso, ainda
em relação à divulgação, espera-se que os conteúdos sejam reunidos em formato de livro a ser submetido a algumas editoras para publicação.
6
2.2
Cronograma
Como a maior parte do trabalho consistirá na resenha de livros, deu-se preferência para a organização do cronograma baseada nas obras resenhadas.
Assim, os livros devem ser lidos e comentados na seguinte ordem:
•
2006:
•
3
junho a agosto: resenha de [11]
setembro a novembro: resenha de [5]
dezembro: férias
2007
janeiro e fevereiro: continuação da resenha de [5]
março e abril: resenha de [4]
maio a julho: resenha de [3]
agosto e setembro: resenha de [8]
outubro e novembro: revisão das informações disponibilizadas na
internet
•
dezembro: férias
2008
janeiro a abril: preparação do manuscrito do livro
maio: preparação do relatório nal do projeto
Referências
[1] Joan Bresnan, editor.
lations.
The Mental Representation of Grammatical Re-
The MIT Press, Cambridge, Massachusetts, 1982.
[2] Gennaro Chierchia.
Semântica.
Edunicamp & Eduel, Campinas & Lon-
drina, 2003. Traduzido por Luiz Arthur Pagani, Lígia Negri e Rodolfo
Ilari.
O cronograma inicial era para apenas um ano e se iniciava em abril de 2006. No
entanto, como o projeto só foi aprovado em reunião departamental no dia 18 de maio de
2006, postergou-se seu início para junho de 2006; e atendendo o parecer apresentado nesta
reunião, que recomendava que o projeto fosse executado em mais tempo, o cronograma
foi extendido para dois anos.
3
7
[3] Michael A. Covington.
grammers.
Natural Language Processing for Prolog Pro-
Prentice Hall, Englewood Clis, 1994.
Natural Language Computing An English Generative Grammar in Prolog. Lawrence Erlbaum Associates, Hillsdale,
[4] Ray C. Dougherty.
NJ, 1994.
Natural Language Processing in Prolog An Introduction to Computational Linguistics. Addison-Wesley,
[5] Gerald Gazdar and Chris Mellish.
Wokingham, 1989.
[6] Giorgio Gra.
[7] John Lyons.
Sintassi.
Il Mulino, Bologna, 1994.
Introdução à Lingüística Teórica.
Ed. Nacional & EDUSP,
São Paulo, 1979. Trad. Rosa Virgínia Mattos e Silva & Hélio Pimentel.
[8] Clive Matthews.
rough Prolog.
[9] Paola Merlo.
An Introduction to Natural Language Processing th-
Longman, London, 1998.
Parsing with Principles and Classes of Information.
Kluwer, Dordrecht, 1996.
[10] Carlos Mioto, Maria Cristina Figueiredo Silva, and Ruth Elisabeth Vasconcellos Lopes.
Manual de Sintaxe.
Insular, Florianópolis, 1999.
[11] Fernando C. N. Pereira and Stuart M. Shieber.
Language Analysis.
CSLI, Stanford, 1987.
8
Prolog and Natural-
Download