Trabalho 4: Chatbot em Prolog
Objetivo
O objetivo deste trabalho é desenvolver um chatbot em Prolog, isto é, um programa que simule um diálogo "inteligente" com um usuário.
Detalhamento
- O requisito principal é que o chatbot tenha melhorias em relação ao programa mychatbot2.pl, que foi fornecido em aula.
- As melhorias devem tornar o diálogo mais "inteligente", capacitando o programa a fornecer respostas mais apropriadas ao usuário.
- Exemplos de melhorias:
- Buscar uma palavra-chave na frase digitada pelo usuário. Usar essa palavra para selecionar uma resposta.
- Criar uma resposta usando alguma palavra digitada pelo usuário.
- Reconhecer quando o usuário digitar uma pergunta qualquer (terminada por ?). Selecionar ou criar uma resposta genérica para a pergunta.
- Reconhecer sinônimos de palavras ou frases (exemplo: se o usuário digitar 'Ola', o programa entenderá que é sinônimo de 'Oi' e responderá de acordo).
- Fazer o chatbot aprender sinônimos de palavras ou frases.
- Especializar o chatbot em alguma temática (exemplos: atendente de telemarketing, Analista de Bagé :-), atendente de assistência técnica, professor de português, etc.). Para isso, será necessário criar uma base especializada na temática e conduzir o usuário a manter um diálogo temático.
- Reconhecer alguns elementos gramaticais (verbos, advérbios, etc.).
- Usar sua criatividade :-)
- Algumas dicas:
- O formato do predicado knowledge_base (usado em mychatbot2.pl) pode ser inapropriado para certas melhorias. Você pode alterar esse formato à vontade.
- O formato de entrada de dados do usuário pode ser alterado para ficar mais fácil de processar uma frase. Por exemplo, você pode assumir que o usuário digitará suas frases na forma de lista (ex.: [como,vai,voce,?]).
- O SWI-Prolog tem vários predicados pré-definidos para manipulação de strings e listas. Para saber mais sobre isso, consulte o manual de referência do SWI-Prolog. Sobre strings em Prolog, tem também um bom artigo em: http://obvcode.blogspot.com/2008/11/working-with-strings-in-prolog.html
- Você não precisa reusar o código de mychatbot2.pl. Se desejar, você pode criar um código totalmente novo.
Entrega e avaliação
- O trabalho é individual e deverá ser entregue até dia 12/06/11, conforme as instruções gerais para entrega de trabalhos.
- Alguns trabalhos serão escolhidos para apresentação à professora no laboratório, em data a combinar.
- Quanto mais melhorias no programa, maior será a nota. As melhorias que demonstrarem mais conhecimento de Prolog serão mais valorizadas.
Material de apoio
Chatbots
- A.I. Artificial Intelligence Chatbot Tutorial
Tutorial básico sobre chatbots. Alguns links desta página estão quebrados. - A.L.I.C.E
Exemplo de chatbot. - Chatbot List
Vários exemplos de chatbots.
Prolog
- Prolog: processo de inferência e bases dinâmicas
Slides usados em aula. - Listas em Prolog
Resumo sobre listas em Prolog. - SWI-Prolog Reference Manual
Manual de referência do SWI Prolog.