Sei sulla pagina 1di 16

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMTICA PROGRAMA DE PS-GRADUAO EM COMPUTAO Disciplina: Arquiteturas Especiais de Computadores Professor

Dr. Philippe Olivier Alexandre Navaux

Processamento de linguagem natural: princpios bsicos e a implementao de um analisador sinttico de sentenas da lngua portuguesa
por FABIO ABREU DIAS DE OLIVEIRA

Sumrio
Resumo 1. Introduo 2. Processamento de linguagem natural 2.1. Histrico 2.2. Etapas do processo 2.2.1. Anlise morfolgica 2.2.2. Anlise sinttica 2.2.3. Anlise semntica 2.2.4. Pragmtica 2.3. Exemplo de processamento 3. Implementao de um analisador sinttico de sentenas da lngua portuguesa 3.1. Processamento simblico da lngua natural 3.2. Prolog como linguagem para processamento de lnguas naturais 3.3. Implementao 4. Concluses Bibliografia Consultada Resumo

Este trabalho apresenta as principais questes que devem ser resolvidas quando da implementao de sistemas processadores de linguagens naturais. No intuito de pr em prtica o estudo realizado, implementou-se um analisador sinttico de sentenas escritas em portugus. O analisador recebe na entrada uma sentena e, como sada, indica se a sentena est sintaticamente correta ou no e, se estiver, mostra a rvore sinttica da mesma. Tal analisador foi implementado em Prolog e baseou-se em um subconjunto da gramtica da lngua portuguesa. Face s caractersticas da linguagem Prolog, o analisador aqui implementado pode ser facilmente estendido, agregando novas regras gramaticais e novas entradas no dicionrio lxico. [Voltar ao sumrio]

1. Introduo
A tarefa de processar uma linguagem natural permite que os seres humanos comuniquem-se com os computadores da forma mais "natural" possvel, utilizando a linguagem com a qual mais esto habituados. Elimina-se, desta maneira, a necessidade de adaptao a formas inusitadas de interao, ou mesmo o aprendizado de uma linguagem artificial, cuja sintaxe costuma ser de difcil aprendizado e domnio, a exemplo das linguagens de consulta a bancos de dados. O processamento da linguagem natural emerge nos dias atuais como um instigante e desafiador campo de pesquisa. A motivao para tal estudo fundamenta-se no aperfeioamento da interao homemmquina, a qual ainda motivo de preocupao para muitos usurios, tendo em vista sua complexidade. Os prognsticos para o futuro revelam a existncia de mquinas capazes de compreender a lngua natural, sendo capazes, por exemplo, de atender a comandos expressos na linguagem falada por usurios. Ademais, o desenvolvimento de modelos computacionais da lngua natural permitir um maior processamento de informaes, visto que a maior parte do conhecimento humano est registrado na forma lingstica. O carter interdisciplinar do processamento de linguagem natural ilustra o nvel de complexidade normalmente requerido s abordagens desenvolvidas, as quais se utilizam de conceitos de inteligncia artificial, teoria da computao, compiladores, lingstica computacional e de outras disciplinas. Basicamente, as aplicaes dos sistemas que tratam a lngua natural podem ser divididas em duas classes: aplicaes baseadas em texto e aplicaes baseadas em dilogos. Exemplos de aplicaes baseadas em texto so sistemas que procuram documentos especficos em uma base de dados (exemplo: encontrar livros relevantes em uma biblioteca), tradutores de documentos, e sistemas que resumem textos (exemplo: produzir 3 pginas resumidas de um livro de 100 pginas). Com relao s aplicaes baseadas em dilogos, pode-se citar as interfaces de linguagem natural para bancos de dados, os sistemas tutores e os sistemas que interpretam e respondem a comandos expressados em linguagem escrita ou falada.

Para um sistema ser considerado um tratador da lngua natural, duas condies devem ser satisfeitas: um subconjunto de entrada e/ou sada do sistema codificado em uma linguagem natural; o processamento da entrada e/ou a gerao da sada baseada no conhecimento sobre aspectos sintticos, semnticos e/ou pragmticos de uma linguagem natural. Observa-se, principalmente com a segunda condio, a exigncia da interpretao do contedo de uma sentena, sendo que esta condio no satisfeita nos sistemas que processam a linguagem natural puramente como strings (por exemplo, editores de texto e pacotes estatsticos). [Voltar ao sumrio]

2. Processamento de linguagem natural


2.1. Histrico No incio da dcada de 50, comearam a surgir os primeiros trabalhos de pesquisa concernentes ao tratamento informatizado da lngua natural. O ano de 1968, com a publicao da obra de Arthur Clark 2001 Odissia no Espao assistiu tambm ao aparecimento de um nmero de programas para a compreenso da linguagem natural. Nos anos 60, os computadores j eram capazes de aceitar e de responder a questes em ingls, com respeito a muitos assuntos (por exemplo, lgebra, medicina e relaes de parentesco), e podiam conduzir uma entrevista psiquitrica de nvel rudimentar em ingls, gals ou alemo. Quatro categorias histricas de programas em linguagem natural foram identificadas:

alguns programas (por exemplo, BASEBALL, SAD-SAM, STUDENT e ELIZA) tinham por objetivo a gerao de um nmero reduzido de resultados em domnios especficos. A simplicidade do processo permitia que muitos dos problemas da linguagem natural pudessem ser ignorados; em alguns dos primeiros sistemas, tais como o PROTO-SYNTHEX1, era armazenada uma representao do texto, recomendando-se a engenhos de indexao para auxiliar a recuperao de determinadas palavras ou frases. Como o texto armazenado podia cobrir qualquer assunto, os sistemas no eram restritos a um determinado domnio. Todavia, esses sistemas eram semanticamente fracos e no tinham poderes dedutivos; sistemas de lgica limitada (por exemplo, SIR, TLC, DEACON e CONVERSE) tinham por objetivo traduzir frases de entrada para a notao formal usada na base de dados. Aqui a inteno era permitir que se fizessem dedues a partir da informao

mantida na base de dados, mesmo que somente alguns dos processos utilizados na conversao do dia-a-dia pudessem ser explorados; os sistemas com base de conhecimento (por exemplo, o LUNAR e o SHRDLU) usavam informao sobre um assunto especfico para compreender as frases de entrada. Tais programas, alguns dos quais constituam sistemas especialistas, exibiam vrios poderes dedutivos.

Dentre os exemplos citados, destaca-se o programa ELIZA, desenvolvido por Joseph Weizenbaum, em 1966. O referido programa caracterizava-se por assumir o papel de um psiquiatra que conversava sobre os problemas de um paciente humano o usurio. Deve-se mencionar, no entanto, que o ELIZA trabalhava apenas atravs de truques semnticos, no existindo qualquer compreenso do tema sobre o qual a conversa se desenvolvia. [Voltar ao sumrio]

2.2. Etapas do processo Para que um sistema computacional interprete uma sentena em linguagem natural, necessrio manter informaes morfolgicas, sintticas e semnticas, armazenadas em um dicionrio, juntamente com as palavras que o sistema compreende. As etapas do processamento da linguagem natural esto discriminadas a seguir: 2.2.1. Anlise morfolgica O analisador morfolgico identifica palavras ou expresses isoladas em uma sentena, sendo este processo auxiliado por delimitadores (pontuao e espaos em branco). As palavras identificadas so classificadas de acordo com seu tipo de uso ou, em linguagem natural, categoria gramatical. Neste contexto, uma instncia de uma palavra em uma sentena gramaticalmente vlida pode ser substituda por outra do mesmo tipo, configurando um sentena ainda vlida (exemplo: substantivos, pronomes, verbos, etc.). Dentro de um mesmo tipo de palavra, existem grupos de regras que caracterizam o comportamento de um subconjunto de vocbulos da linguagem (exemplo: formao do plural de substantivos terminados em "o", flexes dos verbos regulares terminados em "ar", etc.). Assim, a morfologia trata as palavras quanto a sua estrutura, forma, flexo e classificao, no que se refere a cada um dos tipos de palavras. Um reconhecedor utilizado para a anlise morfolgica o autmato finito. Foi proposta uma forma de comprimir vocabulrios extensos atravs de autmatos determinsticos acclicos minimizados. O emprego do analisador morfolgico fundamental para a compreenso de uma frase, pois para formar uma estrutura coerente de uma sentena, necessrio compreender o significado de cada uma das palavras componentes [RIC 93].

[Voltar ao sumrio]

2.2.2. Anlise sinttica Atravs da gramtica da linguagem a ser analisada e das informaes do analisador morfolgico, o analisador sinttico procura construir rvores de derivao para cada sentena, mostrando como as palavras esto relacionadas entre si. Durante a construo da rvore de derivao, verificada a adequao das seqncias de palavras s regras de construo impostas pela linguagem, na composio de frases, perodos ou oraes. Dentre estas regras, pode-se citar a concordncia e a regncia nominal e/ou verbal, bem como o posicionamento de termos na frase. Um termo corresponde a um elemento de informao (palavra ou expresso), e tratado como unidade funcional da orao, participando da estrutura como um de seus constituintes, denominados sintagmas. A anlise sinttica de uma orao em portugus deve levar em conta os seguintes sintagmas: termos essenciais (sujeito e predicado), termos integrantes (complementos verbal e nominal) e termos acessrios (adjunto adverbial, adjunto adnominal e aposto). A anlise do perodo, por sua vez, deve considerar o tipo de perodo (simples ou composto), sua composio (por subordinao, por coordenao) e a classificao das oraes (absoluta, principal, coordenada ou subordinada). Nos sistemas de processamento de linguagem natural, o maior problema a transformao de uma frase potencialmente ambgua em uma no ambgua, a qual ser utilizada pelo sistema. Esta transformao conhecida como parsing. As abordagens de linguagens formais so utilizadas com muito sucesso no estudo da anlise sinttica. Dentre estas:

Gramticas Regulares: para o processamento sinttico da linguagem natural, estas gramticas so bastante simples e facilmente reconhecidas, porm, apresentam um poder de expresso limitado (equivalente ao poder de expresso de um autmato finito). Gramticas Livres de Contexto: so muito teis no que tange descrio de gramticas em linguagem natural. Em geral, so mais poderosas que as regulares, permitindo a representao de linguagens com um certo grau de complexidade. No entanto, a dificuldade em expressar dependncias simples (exemplo: concordncia entre verbo e sintagma nominal) constitui um dos maiores problemas para sua utilizao no tratamento da lngua natural. Abordagens puramente livres de contexto no so suficientemente poderosas para captar a descrio adequada deste gnero de linguagem. Ainda assim, utilizada uma notao denominada como Definite Clause Grammar (DCG), disponvel em Prolog, para definir gramticas livres de contexto e analisar sentenas (realizar o parsing). Gramticas Sensveis ao Contexto: os problemas de dependncia expressos anteriormente so resolvidos nesta classe de gramtica. Ainda assim, as gramticas

sensveis ao contexto no abordam satisfatoriamente o tratamento de restries gramaticais [RIC 93]. O impedimento para sua utilizao, contudo, reside na questo do reconhecimento. O problema de decidir se uma sentena pertence a uma gramtica sensvel ao contexto uma funo exponencial sobre o tamanho da sentena, o que torna a implementao do procedimento de verificao uma questo complexa, do ponto de vista computacional. Cabe lembrar a existncia das gramticas irrestritas, tambm presentes na hierarquia de Chomsky, as quais no so utilizadas para a construo de interfaces em linguagem natural. A maioria das pesquisas propem, atualmente, trabalhar em modelos que se situem em um nvel intermedirio entre as gramticas livres de contexto e as sensveis ao contexto, aliando boa capacidade de representao, incluindo construes que permitam modelar dependncias, e um modelo computacional vivel. [Voltar ao sumrio]

2.2.3. Anlise semntica Significados compem as estruturas criadas pelo analisador sinttico. A questo da representao do significado apresenta diversas dificuldades. Pode-se mencionar a questo dos significados associados aos morfemas componentes de uma palavra (mercado, hipermercado), a questo da ambigidade (tomar, em "tomar de algum", em "tomar um banho" ou em "tomar suco"), ou a diferenciao entre significado e sentido ("casa", "minha casa"). O analisador semntico analisa o sentido das estruturas das palavras que foram reagrupadas pelo analisador sinttico, uma vez que o analisador morfolgico permitiu identificar estas palavras individualmente. Pode-se dizer que a semntica se desdobra em semntica lxica e em semntica gramatical. A semntica lxica busca uma representao conceitual para descrever o sentido, sendo que, para construir esta representao, pode ser feita a decomposio semntica das unidades lxicas (em primitivas ou em traos semnticos), ou podem ser utilizadas redes semnticas. Esta ltima forma de representao foi originada da psicologia e leva em conta a forma como os seres humanos categorizam e memorizam conceitos. A compreenso da relao entre as palavras to importante quanto a compreenso das prprias palavras. Enfoques formais para a semntica gramatical tentam descrever o sentido de uma frase mediante a traduo de sua estrutura sinttica para uma frmula lgica-semntica. Como no existe uma correspondncia imediata e biunvoca entre sintaxe e semntica, uma mesma estrutura sinttica pode dar origem a diferentes representaes semnticas. Por exemplo, uma professora de capoeira pernambucana pode referir-se a uma pessoa nascida em Pernambuco, a qual ensina capoeira, ou a uma pessoa que ensina capoeira no estilo em que esta praticada em Pernambuco.

Em suma, denomina-se anlise semntica o processo de uma ou mais representaes semnticas s rvores de derivao. Este processo pode ocorrer em uma fase posterior, ou medida em que estas rvores so geradas. Existem trabalhos sobre sistemas semnticos para interfaces de linguagem natural, capazes de interagir com diversos programas de aplicao. [Voltar ao sumrio]

2.2.4. Pragmtica medida que se avana necessrio fazer uma interpretao do todo e no mais analisar o significado de suas partes, do ponto de vista lxico e gramatical. As ligaes anafricas (exemplo: anforas pronominais, como ele, este, etc.) e de outros fenmenos de referncia merecem resoluo. Uma certa estrutura pode no acrescentar nenhum dado de interesse na interpretao de uma sentena, ao passo que um comentrio sarcstico, como Bela camisa Fernandinho, pode Ter significado distinto do que aparenta textualmente representar, inclusive at contrariando seu sentido literal. Crenas e contextos intencionais tambm so fatores que interferem em uma resoluo semntica. Outro problema pertinente ao processamento da lngua natural o tratamento da ambigidade de estruturas complexas como anforas, elipses, etc. (fenmenos pragmticos textuais). Estes fenmenos so tratados atravs do clculo dos significados implcitos, clculo das relaes interfrsicas, dentre outros. [Voltar ao sumrio]

2.3. Exemplo de processamento Para elucidar os processos descritos anteriormente, ser dado um exemplo extrado de [RIC 93], em que as etapas ocorrem seqencialmente. Cumpre salientar que os limites entre tais etapas so obscuros, havendo casos em que todas so executadas concomitantemente. O exemplo a seguir basear-se- na seguinte frase:

Eu quero imprimir o arquivo .init do Mrio.

Anlise Morfolgica Incumbe-se o analisador morfolgico da tarefa de separar a expresso "do Mrio" no substantivo prprio "Mrio" e na preposio e artigo "de" e "o". Outrossim, este mdulo

deve reconhecer a seqncia ".init" como uma extenso de um arquivo que est funcionado como adjetivo na frase. Ainda nesta fase, todas as palavras so classificadas de acordo com suas respectivas categorias sintticas.

Anlise Sinttica A anlise sinttica precisa explorar os resultados da anlise morfolgica para criar uma descrio estrutural da frase. O objetivo deste processo (parsing) converter a lista de palavras que formam a frase em uma estrutura que defina as unidades representadas pela lista. No exemplo adotado, o resultado desta etapa est ilustrado na figura 2.1.

Figura 2.1 Resultado da anlise sinttica.

Percebe-se que a frase foi convertida em uma estrutura hierrquica, contendo unidades significativas imprescindveis anlise semntica. Tambm pode-se notar a presena de marcadores de referncias nem sempre utilizados em analisadores sintticos evidenciados na rvore sinttica entre parnteses. Cada marcador refere-se a uma entidade mencionada na frase, configurando um componente ao qual ser atribudo um significado na anlise semntica.

Anlise Semntica

A anlise semntica mapeia palavras isoladas para os objetos apropriados na base de dados e ainda cria estruturas corretas que correspondem ao modo como os significados das palavras isoladas combinam entre si. Neste exemplo, supe-se uma base de conhecimento baseada em frames que contm as unidades mostradas abaixo:

Usurio -um: *nome-login: Usurio068 instncia: nome-login: Usurio073 instncia: nome-login: F1 instncia: nome: extenso: dono: diretrio Estrut-Arq -um: Impresso -um: *agente: *objeto: Desejo -um: *agente: *objeto: Comando -um: *agente: *executor: *objeto: Este-Sistema Instncia:

Pessoa Precisa ser <string> Usurio Regina-Couto Usurio Mrio-Pires

Estrut-Arq coisas .init Usurio073 /wspires

Informao-Objeto

Evento-Fsico Precisa ser <animado ou programa> Precisa ser <objeto-informao>

Evento-Mental Precisa ser <animado> Precisa ser <estado ou evento>

Evento-Mental Precisa ser <animado> Precisa ser <animado ou programa> Precisa ser <evento>

Programa

Com base nesta representao, pode-se gerar um significado parcial do exemplo, conforme explicitado abaixo:

MR1 instncia: agente: objeto: MR2 MR3 instncia: agente: objeto: MR4 instncia: extenso dono: MR5 Instncia: Nome:

{toda frase} Desejo MR2 MR3 {Eu} {evento de impresso} {Eu} {evento de impresso} Impresso MR2 MR4 {Eu} {arquivo .init do Mrio} {arquivo .init do Mrio} Estrut-Arq .init MR5

{Mrio} {Mrio}

Pessoa Mrio

O marcador de referncia MR1 corresponde ao evento de primeiro nvel da frase. um evento de desejo, onde a pessoa que fala, denotada pelo pronome "Eu", quer que ocorra um evento de impresso, no qual esta mesma pessoa que fala imprime um arquivo cuja extenso ".init" e cujo dono Mrio.

Integrao de Discurso Embora no tivesse sido explicado este processo, alguns autores [RIC 93] o classificam com relao ao fato do significado de uma frase isolada poder depender das frases que a antecedem e poder tambm influenciar os significados das frase que vm depois dela. No exemplo considerado, mesmo que j tivesse sido descoberto sobre o que se trata a frase, ainda no se sabe que indivduos especficos esto sendo citados. Especialmente, no se sabe a quem se refere o pronome "Eu" ou o nome "Mrio". Para esclarecer estas referncias, recorre-se a um modelo de contexto do discurso, onde pode-se ficar sabendo que o usurio atual, o qual digitou a palavra "Eu", o Usurio068 e que a pessoa chamada "Mrio" o Usurio073. Uma vez definido o referente correto de Mrio, pode-se tambm determinar que arquivo est sendo mencionado: F1 o nico arquivo com extenso ".init" cujo dono Mrio.

Anlise Pragmtica

Com o trmino das etapas anteriores, poder-se-ia registrar o que foi dito como fato e encerrar o processo. Em certas frases, cujo efeito pretendido claramente declarativo, esta precisamente a atitude correta. No entanto, em outras frases, como esta do exemplo, o efeito pretendido diferente. Pode-se descobrir este efeito aplicando um conjunto de regras que caracterizam os dilogos cooperativos. Neste exemplo, considera-se que, quando o usurio afirma querer algo que o sistema capaz de executar, ento o sistema deve atender solicitao. O significado final do exemplo est mostrado abaixo:

Significado: instncia: agente: executor: objeto: P27 instncia: agente: objeto:

Comando Usurio068 Este-Sistema P27

Impresso Este-Sistema F1

A etapa final do processamento pragmtico traduzir, sempre que necessrio, a representao baseada em conhecimentos para um comando, a ser executado pelo sistema. Neste caso, esta etapa necessria, e v-se que o resultado final do processo de compreenso : lpr /wspires/coisas.init Onde "lpr" o comando de impresso do sistema operacional considerado. Todos os processos descritos so importantes em um sistema completo de compreenso da lngua natural. No entanto, nem todos programas so escritos exatamente com esses componentes. s vezes, dois ou mais so omitidos, resultando em um sistema mais fcil de criar para subconjuntos restritos de uma lngua, mas mais difcil de ampliar no caso de uma abrangncia mais extensa. [Voltar ao sumrio]

3. Implementao de um analisador sinttico de sentenas da lngua portuguesa

Antes de proceder-se implementao de um processador de linguagem natural, algumas decises precisam ser tomadas. Neste captulo, apresentar-se-o as diretrizes que conduziram a proposta aqui encerrada, juntamente com a fundamentao correlata. 3.1. Processamento simblico da lngua natural O parser proposto neste trabalho est baseado no processamento simblico da linguagem natural, em contraposio s abordagens centradas em redes neurais. Inmeras so as razes que elegeram o processamento simblico a opo mais apropriada ao problema em questo. Em primeiro lugar, o processamento simblico inerentemente voltado manipulao de regras rgidas, como so as regras gramaticais de qualquer lngua natural. Como corolrio deste fato, observa-se que as principais aplicaes da programao simblica costumam apresentar as seguintes propriedades:

raciocnio baseado em objetivos; anlise de causas; anlise gramatical.

Alm destas evidentes virtudes da programao simblica, no que tange ao processamento de linguagem natural, as redes neurais no constituem-se em uma ferramenta adequada a tal tarefa, devido s suas limitaes de processamento dependente de contexto. As redes neurais so muito eficazes no reconhecimento de objetos isolados, para cujo reconhecimento tenham sido treinadas de antemo. Em se tratando de lnguas naturais, mais importante a habilidade de aplicar regras dependentes de contexto, o que se percebe no processamento simblico. A despeito destas observaes, que foram formalmente provadas por renomados pesquisadores, dentre os quais acha-se Marvin Minsky, h quem advogue o uso de redes neurais em processadores de linguagens naturais. [Voltar ao sumrio]

3.2. Prolog como linguagem para processamento de lnguas naturais PROLOG (PROgramming in LOGic) a linguagem mais utilizada para a programao no paradigma lgico mas, afinal, por que implementar um processador de lngua natural em PROLOG, preterindo linguagens como LISP, ou mesmo C? PROLOG uma linguagem mpar, cujas propriedades vo ao encontro das necessidades que surgem quando da programao de sistemas processadores de lnguas naturais. Arrolam-se abaixo as principais caractersticas que tornam PROLOG uma escolha incontestvel:

Facilidade de modificao de estruturas de dados grandes e complexas: Esta peculiaridade de vital importncia para o armazenamento de estruturas sintticas, estruturas semnticas bem como de entradas lxicas, elementos presentes em programas que manipulam qualquer linguagem natural.

Capacidade de auto-anlise e automodificao de programas: O suporte metaprogramao muito forte em PROLOG, o que possibilita a adoo de modelos abstratos de programao. Algoritmo depth-first embutido: Para a busca das informaes concernentes a um programa PROLOG (fatos e regras), o mtodo de busca depth-first internamente utilizado em sistemas PROLOG. Este algoritmo de extrema utilidade para a implementao de analisadores sintticos, sendo adotado pela macia maioria. Incorporao de DCG (Definite Clause Grammar): DCG um formalismo que estende as gramticas livres de contexto, possibilitando a identificao e utilizao de inter-relacionamentos entre os componentes de uma regra gramatical. Alm de cobrir a principal carncia das gramticas livres de contexto, as DCGs no oneram o processamento de sentenas de tamanho considervel, como o fazem as gramticas sensveis ao contexto. Deste modo, com as DCGs tem-se um formalismo de grande capacidade de expresso, aliada eficincia. As gramticas sensveis ao contexto, quando empregadas no processamento de sentenas, denotam uma complexidade de tempo exponencial, em funo do tamanho das entradas.

Em verdade, PROLOG foi originalmente projetada para o processamento de linguagem natural, eis por que as caractersticas supradiscriminadas lhe so inerentes. As duas primeiras propriedades acima esto tambm presentes na linguagem LISP, ao passo que a linguagem C no evidencia nenhuma delas. Qualquer linguagem de programao pode ser adotada no trato de lnguas naturais; porm, algumas facilitam mais do que outras. [Voltar ao sumrio]

3.3. Implementao Como resultado deste trabalho, foi implementado um parser que gera a rvore sinttica das sentenas vlidas que lhe so submetidas. Obviamente, adotou-se um subconjunto bastante reduzido da lngua portuguesa, porm, dadas as propriedades anteriormente descritas, o programa PROLOG resultante permite facilmente a adio de novas regras gramaticais e a agregao de novas palavras ao dicionrio lxico. Alm de gerar a rvore sinttica de sentenas corretas, possvel gerar todas as sentenas reconhecidas pela gramtica definida, juntamente com as respectivas rvores sintticas. O cdigo do analisador sinttico denota todo o poder de processamento simblico de PROLOG, linguagem que proporciona solues compactas e elegantes para problemas deste tipo e para problemas recursivos em geral. A seguir, apresentam-se alguns exemplos de utilizao do analisador sinttico:

?sentenca(ArvSint,[o,comerciante,vende,batatas,velhas],[]). ArvSint= sent(suj(art(o),subst(comerciante)),pred(vtd(vende), objdir(subst(batatas),adj(velhas)))) yes ?- sentenca(Arv,[o,comerciante,vende,batatas,velha],[]). no ?- sentenca(Arv,[eu,viajas],[]). no ?- sentenca(Arv,[tu,viajas],[]). Arv = sent(suj(ppret(tu)),pred(vti(viajas))) yes ?sentenca(ArvSint,[estes,comerciantes,vendem,morangos,velhos ],[]). ArvSint= sent(suj(pdem(estes),subst(comerciantes)),pred(vtd(vendem), objdir(subst(morangos),adj(velhos)))) yes ?sentenca(ArvSint,[estes,comerciantes,vendem,morangos,velhas ],[]). no ?sentenca(ArvSint,[estes,comerciantes,vendem,morangos,velho] ,[]). no ?sentenca(ArvSint,[estas,comerciantes,vendem,morangos,velhos ],[]). ArvSint= sent(suj(pdem(estas),subst(comerciantes)),pred(vtd(vendem), objdir(subst(morangos),adj(velhos)))) yes [Voltar ao sumrio]

4. Concluses
A implementao de sistemas processadores de linguagens naturais, atravs de DCGs como formalismo gramatical, deveras facilitada. As DCGs mostram um bom desempenho na anlise de sentenas e, ademais, cobrem a principal carncia das gramticas livres de contexto, a qual a incapacidade de estabelecer e utilizar interrelaes entre os componentes de uma regra gramatical. Como se no bastasse, analisadores sintticos assim construdos podem ser facilmente estendidos atravs de truques semnticos de concepo simples. Destarte, as DCGs constituem-se em uma ferramenta que tende a tornar mais rpido o desenvolvimento de processadores de linguagens naturais. [Voltar ao sumrio]

Bibliografia Consultada
[ALL 95] ALLEN, James. Natural Language Understanding. The Benjamin/Cummings Publishing Company Inc, 1995. [CLO 97] CLOCKSIN & MELLISH. Programming in Prolog. Springer-Verlag, 1997. [COV 94] COVINGTON, M. Natural Language Processing for Prolog Programmers. Prentice-Hall, 1994. [PER 94] PEREIRA, Fernando C., GROSZ, Barbara J. Natural Language Processing. MIT Press, 1994. [RIC 93] RICH, E.; KNIGHT, K. Inteligncia Artificial. Makron Books, 1993, 722p. [STE 94] STERLING, L.; SHAPIRO, E. The Art of Prolog. MIT Press, 1994. [VAN 93] VAN LE, T. Techniques of Prolog Programming. John Wiley & Sons, 1993. [Voltar ao sumrio]

FIM

Potrebbero piacerti anche