Trabalho 05
João B. dos S. Junior
joao@icmc.sc.usp.br
Wanderley Gazeta
gazeta@icmc.sc.usp.br


Apresentação
Objetivos
PLN
Script
Casos de Teste
Conclusões
Referências



Introdução à Inteligência Artificial - SCE-5774
Universidade de São Paulo - USP
Instituto de Ciências Matemáticas e de Computação - ICMC
Programa de Mestrado e Doutorado em Ciência da Computação



Apresentação

Este trabalho faz parte do programa da disciplina de Introdução à Inteligência Artificial, do Programa de Mestrado e Doutorado em Ciência da Computação, do Instituto de Ciências Matemáticas e de Computação, da Universidade São Paulo, como parte dos requisitos de avaliação da disciplina, que está sendo ministrada neste primeiro semestre de 1999 pela Profa. Dra. Sandra Maria Aluísio.

Voltar ao Início



Objetivos

Este trabalho está inserido no contexto estudo do Processamento de Linguagem Natural, que se caracteriza como uma subárea da Inteligência Artifical. Neste ponto, são objetivos deste trabalho:

Apresentar os aspectos teóricos básicos sobre Processamento de Linguagem Natural (PLN)
Apresentar as principais características do sistema VT_SAM, desenvolvido por Schank
Implementar um script para um domínio de aplicação específico
Apresentar casos de teste do script construído, quando executado no ambiente do VT_SAM
Voltar ao Início


Processamento de Linguagem Natural (PLN)

O Processamento de Linguagem Natural é uma subárea da Inteligência Artificial responsável pela construção de mecanismos que permitam a interpretação, em nível computacional, de sentenças muito utilizadas na linguagem do ser humano.

Para que haja o processamento de linguagem natural, deve-se partir do princípio de que é necessário estabelecer um domínio de aplicação específico e criar uma gramática que possa ser entendida e interpretada por um componente processador. No contexto deste trabalho, utilizou-se do formalismo DCG para representar cláusulas de uma gramática para um subconjunto de sentenças da língua portuguesa. O trecho abaixo apresenta uma parte da especificação DCG.

ptrans --> [Verbo], {pertence_lista(Verbo,[foi,saiu])}.
mtrans --> [Verbo], {pertence_lista(Verbo,[pediu])}.
atrans --> [Verbo], {pertence_lista(Verbo,[entregou])}.
ingest --> [Verbo], {pertence_lista(Verbo,[comeu,bebeu])}.
artigo_definido(masculino,singular) --> [o].
artigo_definido(masculino,plural) --> [os].
artigo_definido(feminino,singular) --> [a].
artigo_definido(feminino,plural) --> [as].
artigo_indefinido(masculino,singular) --> [um].
artigo_indefinido(masculino,plural) --> [uns].
artigo_indefinido(feminino,singular) --> [uma].
artigo_indefinido(feminino,plural) --> [umas].

Construída a gramática, sua aplicação pode ser observada quando se utiliza as expressões definidas no processamento de uma sentença. Neste ponto, observa-se a necessidade de um script que aborde a forma como a gramática deve ser utilizada, bem como de um ambiente processador e interpretador de sentenças, no caso o VT_SAM, conforme apresentado nas próximas seções.


Voltar ao Início



Scripts

Um script é um roteiro que deve ser fornecido a um interpretador de linguagem natural para que seja gerado, como saída, um conjunto de frases que represente eventos que ocorrem em um determinado domínio de aplicação.

No contexto deste trabalho, definiu como domínio de aplicação as situações que ocorrem em um pizzaria. Os seguintes eventos foram especificados para o domínio:

. um cliente vai de algum lugar para a pizzaria;
. ao chegar na pizzaria, o cliente entra pela porta e senta-se em uma mesa;
. o cliente é, então, atendido por um graçon que lhe mostra o cardápio;
. o cliente pede uma pizza e uma bebida ao garçon;
. o garçon traz a pizza e a bebida para o cliente;
. o cliente pede a conta para o garçon;
. o garçon traz a conta para o cliente;
. o cliente paga a conta;
. o cliente sai da pizzaria e vai para outro lugar.

No contexto deste trabalho, formalizou-se o script supra-citado através do modelo de descrição de scripts do ambiente VT_SAM - um ambiente representado por um programa PROLOG ,desenvolvido por Schank e seus colaboradores. O trecho abaixo apresenta o script formalizado no ambiente do VT_SAM.

script(pizzaria,
[[ptrans,Ator,Ator,Rua,Pizzaria],
[ptrans,Ator,Ator,Porta,Mesa],
[mtrans,Ator,Cardapio,Garcon],
[atrans,Ator,Garcon,Ator,Cardapio],
[mtrans,Ator,Bebida,Garcon],
[mtrans,Ator,Pizza,Garcon],
[atrans,Ator,Garcon,Ator,Bebida],
[atrans,Ator,Garcon,Ator,Pizza],
[ingest,Ator,Pizza],
[ingest,Ator,Bebida],
[mtrans,Ator,Conta,Garcon],
[atrans,Ator,Garcon,Ator,Conta],
[atrans,Garcon,Ator,Garcon,Dinheiro],
[ptrans,Ator,Ator,Pizzaria,Rua]],

[[Ator,cliente],
[Rua,rua],
[Pizzaria,pizzariaamichi],
[Porta,porta],
[Mesa,mesa],
[Bebida,refrigerante],
[Pizza,pizza],
[Cardapio,cardapio],
[Dinheiro,dinheiro],
[Conta,conta],
[Garcon,garcon]]).

Definido o script que represente os eventos que podem ocorrer no domínio de aplicação, o próximo passo consiste em submeter o script ao ambiente interpretador, respeitando-se as regras gramaticais definidas pela notação DCG.
Click aqui para obter o ambiente VT_SAM e o script
Voltar ao Início



Casos de Teste no Ambiente VT_SAM

Conforme citado, o ambiente VT_SAM é um programa PROLOG desenvolvido por Schank e seus colaboradores, e que tem por função permitir a especificação de uma gramática e de um script, e gerar "estórias" a partir de uma sentença inicial fornecida.

Após compilar o código do VT_SAM em um ambiente de desenvolvimento PROLOG, juntamente com o script e com a gramática, deve acionar o VT_SAM para interpretação. Neste trabalho, o acionamento do VT_SAM é feito pela seguinte pergunta ao modo listener do ambiente PROLOG:

?- pizzaria.

Alguns casos de teste foram especificados para validar a implementação feita, conforme a ilustram as Figuras 01, 02 e 03. Em termos de descrição, as seguintes sentenças naturais representam os testes:
. joão comeu pizza.
. sonia foi de rua para pizzariaamichi.
. gazeta bebeu refrigerante.

Como resultado, o VT_SAM retorna uma seqüência de frases que representa uma "estória" que pode ser contada a partir da setença inicial fornecida ao programa.

Figura 01 - Caso de Teste 1: "joao comeu pizza."



Figura 02 - Caso de Teste 2: "sonia foi de rua para pizzariaamichi."



Figura 03 - Caso de Teste 3: "gazeta bebeu refrigerante."


Selecionada e ativada a base de conhecimentos, pode-se realizar operações de configuração dos componentes dessa base. Tais operações podem ser:
Voltar ao Início



Conclusões

O trabalho aqui reportado contribuiu, inicialmente, para que os autores pudessem investigar os aspectos mais importantes do Processamento de Linguagem Natural (PLN) em termos da construção de scripts e geração de seqüências de sentenças naturais (estórias).

Neste ponto, considerando-se este trabalho como um experimento, pôde-se observar o quão complexo é o processamento de sentenças em linguagem natural e quão poderosos são os sistemas que se utilizam do processamento de linguagem natural na construção, por exemplo, de interfaces usuário computador.

Por fim, vale ressaltar a importância do trabalho em termos da validação dos aspectos teóricos apresentados em sala de aula.

Voltar ao Início



Referências

ALUÍSIO, S.M.: Processamento de Linguagem Natural. Notas de Aula da disciplina de Introdução à Inteligência Artificial. ICMC-USP, 1999.
Scripts and PLN. AI Expert. N.32. 1987.

Voltar ao Início