16 TÍTULO: SISTEMA INTERATIVO INTELIGENTE - SII CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE DE TECNOLOGIA DE CARAPICUIBA AUTOR(ES): AMÓS CORCINO DOS SANTOS, DANYELLE FERREIRA GARDIANO, GABRIEL HIPÓLITO CABRAL ORIENTADOR(ES): ANDREIA CRISTINA GRISOLIO MACHION, RODRIGO BOSSINI TAVARES MOREIRA, SILVIA MARIA FARANI COSTA
RESUMO O aprendizado de linguagens de programação representa uma dificuldade para boa parte dos estudantes de cursos de ciências exatas e tecnológicas (BOTELHO, 2008). Existem diversos recursos tecnológicos com o objetivo de auxiliar os estudantes a melhorarem seu desempenho, dentre os quais destacam-se os Sistemas Tutores Inteligentes (STI). As arquiteturas dos STI variam entre diferentes sistemas, sendo que alguns empregam gerenciamento de diálogos, visando tornar o seu uso mais agradável ao estudante. Para que o gerenciamento de diálogos apresente características como manutenção do tema abordado, percepção da mudança de tema e intenções do usuário, foi desenvolvido o recurso Estado da Informação EI (TRAUM & LARSSON, 2003), que permite agregar aos gerenciadores de diálogos soluções que viabilizam a conversa com seres humanos ou outros sistemas. Com base na arquitetura dos STI e aplicando o recurso Estado da Informação, foi desenvolvido o Sistema Interativo Inteligente SII, que tem por objetivo auxiliar estudantes no aprendizado dos conceitos básicos da linguagem de programação C. Utilizando uma interface amigável e no formato de chat, o SII apresenta, por meio de uma conversa com o usuário, os dados contidos em sua base de conhecimentos. INTRODUÇÃO A maioria dos cursos de ciências exatas e tecnológicas possui em sua grade curricular, disciplinas que envolvem linguagens de programação. Para a maioria dos estudantes, essas disciplinas são problemáticas, pois requerem raciocínio lógico e habilidades matemáticas, além de familiaridade com regras da gramática da própria linguagem escrita e falada (BOTELHO, 2008). Para auxiliar os estudantes, surgiram nos anos 50, sistemas orientados ao ensino, chamados Computer Aided Instruction (CAI) e Intelligent Computer Aided Instruction (ICAI). No início da década de 80 esses programas evoluíram para os Sistemas Tutores Inteligentes (STI) (BOTELHO, 2008), que têm a premissa de simular um tutor humano na tentativa de melhorar o aprendizado, provendo feedback aos estudantes, conforme exploram o conteúdo. A ideia inicial desse tipo de sistema era simular o que seria considerado um ensino adequado e de fácil
aprendizado para os usuários, de acordo com dados de pesquisas sobre métodos didáticos e sobre cada domínio incluído no sistema (GOULART & GIRAFFA, 2001). Com o passar do tempo, surgiram vários STI, voltados a diversos domínios de conhecimento. O uso de gerenciadores de diálogos para interfaces homem-máquina não é um estudo recente. Duas pessoas conseguem estabelecer entre si um diálogo eficiente e eficaz. Para que um diálogo seja estabelecido com um ou mais computadores, sistemas gerenciadores de diálogos são necessários. Isso porque possibilitam, entre outras coisas, a conversão do diálogo no nível da linguagem humana para instruções objetivas interpretadas pelo computador, que permitem a execução de tarefas e a solução de problemas. (McROY et al, 1999). A aplicação de gerenciadores de diálogos em sistemas computacionais tem como um de seus objetivos o aprimoramento da interface com o usuário, além da redução da quantidade de controles visuais. Existem sistemas com essa funcionalidade para várias aplicações, como por exemplo, o aplicativo ProGuide (AREIAS & MENDES, 2007) que é utilizado em conjunto com outros sistemas, como ferramenta adicional, visando construir os diálogos que serão enviados aos usuários. Tendo em vista os aspectos de STI observados, pretende-se neste projeto desenvolver uma ferramenta para auxiliar estudantes dos semestres iniciais de ciências exatas e tecnológicas em seus estudos sobre conceitos básicos da Linguagem C, tendo como base as arquiteturas clássicas dos STI, incluindo um módulo gerenciador de diálogos baseado no conceito de Estados de Informação (TRAUM & LARSSON, 2003), para realizar a interação com os estudantes. Esta ferramenta é chamada Sistema Interativo Inteligente (SII). OBJETIVO GERAL Este projeto tem como objetivo principal a construção de uma ferramenta baseada na arquitetura clássica de STI voltados para linguagens de programação, incluindo um gerenciador de diálogos, visando auxiliar os alunos em suas séries iniciais com os estudos sobre conceitos básicos da linguagem C.
OBJETIVOS ESPECÍFICOS A fim de cumprir o objetivo geral especificado, tem-se os seguintes objetivos específicos: Modelar um repositório de dados suporte para a aplicação; Desenvolver um gerenciador de diálogos com base em Estados de Informação; Definir uma arquitetura baseada na arquitetura clássica dos STIs, incluindo um gerenciador de diálogos; Construir uma interface amigável para o estudante. DESENVOLVIMENTO Primeiramente, foi feita uma análise dos detalhes intrínsecos na comunicação entre humanos, no idioma português do Brasil, identificando-se expressões-chave contidas nas frases que denotam a sua natureza (afirmação, interrogação etc.). Com base nesses dados, desenvolveu-se o método aplicado neste projeto, que consiste em identificar o tipo de frase por meio das expressões-chave contidas nela, retirar essas expressões da frase e considerar as palavras restantes como o tópico do assunto sobre o qual o usuário quer conversar. Foi construído um banco de dados de expressões-chave comumente encontradas em frases escritas em português e também um repositório de dados de conhecimentos sobre linguagem C. O processamento do SII consiste então em identificar o sentido da frase e o tópico do assunto, buscar conhecimentos em seu repositório que atendam à requisição feita pelo usuário, fazer inferências, a fim de identificar possíveis ideias opostas entre o que o usuário afirma e o que está na base de conhecimentos, também identificar consequências e finalmente, gerar uma frase de resposta ao usuário. Repositórios de dados adicionais foram criados como apoio para as funcionalidades do sistema, a saber: Sinônimos, Silogismos e Usuários. Para a execução dessas tarefas, o sistema conta com uma interface do tipo janela de chat, onde o usuário digita suas frases para o sistema e recebe também por escrito as respostas do sistema.
O processamento das frases é feito no gerenciador de diálogos (Figura 1), composto por seis módulos: Estado da Informação (TRAUM & LARSSON, 2003); Entrada; Interpretador; Motor de buscas e inferências; Gerador de respostas; Saída. Figura 1 Arquitetura Funcional do SII A seguir, são descritos em detalhes cada módulo do gerenciador de diálogos. Estado da Informação O Estado da Informação - EI (TRAUM & LARSSON, 2003), é uma estrutura de dados concebida para fins de apoio funcional aos gerenciadores de diálogos. Estruturas desse tipo podem conter tantos campos quantos forem necessários para a funcionalidade do projeto, os quais são acessados, tanto para
escrita quanto para leitura, dependendo do momento em que o programa se encontra, interpretando frases do usuário ou gerando frases para resposta. Além disso, elas podem armazenar dados como a frase de entrada do usuário, o tema atual da conversa, se o usuário apresenta tendências de satisfação ou insatisfação, o horário da última frase trocada e quem a gerou (usuário ou sistema), entre outros. Com o uso do EI, é possível, por exemplo, manter continuidade na conversa, sem que seja necessário ao usuário repetir a todo momento qual o tema do assunto, pois esse é escrito no EI, para uso no decorrer da conversa. Ao se detectar uma mudança de tema, esse campo é atualizado com o novo valor. Inúmeras variações na implementação do EI podem ser encontradas nos projetos existentes. Sabe-se que quanto mais complexo e repleto de campos, maior a sua eficiência em colaborar com o estabelecimento de um diálogo bem-sucedido entre um ser humano e o computador (TRAUM & LARSSON, 2003). No SII, os elementos que compõem o EI são: Frase digitada, Afirmação, Negação, Questão, Saudação, Domínio, Assunto, Tópico, Conhecimentos, Consequência, Último Domínio, Último Assunto, Último Conhecimento e Resposta. Entrada O módulo Entrada serve como ponte entre a interface visual do sistema e o Gerenciador de Diálogos. Os dados inseridos pelo usuário são processados primeiramente por este módulo. Suas funções são: Avaliar o texto inserido pelo usuário: Caso o texto seja uma string vazia, ou uma sequência de caracteres que o algoritmo avalie como texto sem sentido, este módulo rejeita a entrada de dados do usuário. Neste caso, o sistema emite uma mensagem explicando o ocorrido e solicita que seja digitado algo que faça sentido; Definir o domínio: Há ocasiões nas quais o usuário define o domínio da conversa manualmente. O módulo entrada é responsável por receber o nome do domínio escolhido pelo usuário e enviá-lo ao EI para atualização do domínio.
Registrar a frase digitada: Quando o usuário digita uma frase que é aprovada pelo analisador de textos, este módulo a envia ao EI para atualização da frase. Interpretador O Interpretador, idealizado e desenvolvido pelos autores do projeto SII, detém funcionalidades de análise textual que dependem diretamente dos ajustes feitos pelo administrador do sistema. Suas funções são: Identificar o sentido da frase do usuário (questão, afirmação, negação, saudação); Identificar qual o domínio e o tópico a serem pesquisados pelo sistema para que atenda este usuário. A inteligência deste módulo reside na capacidade de identificar o sentido das frases do usuário, além de determinar o tópico ou assunto a ser considerado pelo sistema. Motor de Buscas e Inferências O Motor de Buscas e Inferências, ou simplesmente Motor é o módulo responsável por localizar os conhecimentos adequados para o contexto do diálogo entre o usuário e o sistema. Além de encontrar conhecimentos adequados, verifica a existência de relações de causa e consequência decorrentes do contexto atual da conversa, por meio do cadastro de silogismos, preenchido pelo usuário administrador. A inteligência deste módulo reside na capacidade de prever consequências ou determinar causas para as situações comentadas durante o diálogo, e também no fato de o motor reconhecer sinônimos de palavras. Assim, os usuários não são obrigados a digitar em suas consultas exatamente os termos existentes na base de conhecimentos, e o administrador não é obrigado a digitar várias versões do registro de um conhecimento, utilizando palavras diferentes para atender à forma de escrever do usuário. Basta preencher um cadastro de sinônimos. Essas funcionalidades, junto aos algoritmos de comparação de palavras e localização de expressões em textos, garantem ao sistema uma capacidade de adaptação imediata à forma de escrever do usuário, quer utilize palavras que não
estão diretamente escritas nos registros de conhecimentos, quer escreva com alguns erros de ortografia. Gerador de Respostas No Gerador de Respostas ocorre a penúltima etapa de processamento, antes que a resposta final seja enviada ao usuário. As tarefas deste módulo incluem: Acrescentar expressões de concordância ou discordância ao conhecimento selecionado pelo Motor; Adicionar expressões que sirvam de ligação entre o conhecimento selecionado e a conclusão ou consequência, se existir alguma; Acrescentar expressões indicando a espera de uma nova pergunta do usuário; Gerar uma mensagem ao usuário conduzindo o diálogo em caso de nenhum tópico ter sido identificado na última frase recebida. Saída O módulo Saída é o último estágio do Gerenciador de Diálogos do SII. Neste módulo, são executadas as seguintes tarefas: Enviar ao usuário a frase digitada, precedida do nome do usuário; Enviar ao usuário a resposta gerada pelo sistema, precedida do identificador SII -> ; Enviar ao usuário o nome do domínio atual; No início da conversa, enviar ao usuário a mensagem de boas-vindas. Essa tarefa é executada assim que o módulo Saída é iniciado pela primeira vez; Limpar os campos utilizados no Estado da Informação, preparando-o para a próxima iteração do diálogo. Armazenamento dos Dados O SII opera com algoritmos de pesquisa e comparação de textos que oferecem alguns diferenciais se comparados às pesquisas comumente realizadas por meio de instruções SQL. Por exemplo, é possível retornar um resultado satisfatório para uma pesquisa, mesmo que haja erros de digitação, ou mesmo que o repositório de dados possua apenas sinônimos do termo digitado. Caso o sistema precise encontrar o termo laco, com o uso desses algoritmos, o resultado será
satisfatório, podendo retornar laço, loop ou estrutura de repetição (MIZRAHI, 1990). Seria possível trabalhar esses algoritmos em conjunto com SGBD s relacionais, porém, toda a funcionalidade de pesquisa dos SGBD s ficaria subutilizada. Sendo assim, o SII emprega o sistema de arquivos do sistema operacional como base de dados, o que dispensa a instalação de um SGBD, facilita a portabilidade do projeto e oferece um resultado satisfatório na pesquisa e comparação de textos. A Figura 2 mostra a estrutura hierárquica dos domínios inseridos no SII. Figura 2 Estrutura Hierárquica da Base de Conhecimentos Ferramentas de desenvolvimento Para o desenvolvimento do SII, foi selecionada somente a IDE Delphi, da Embarcadero (antigamente da Borland), que utiliza Object Pascal como linguagem de programação e ambiente de desenvolvimento visual. O Banco de Dados foi implementado em arquivos de texto, conforme já citado. RESULTADOS Como resultado do desenvolvimento do SII, obteve-se um sistema rápido, leve, de fácil portabilidade e intuitivo, além de versátil no que se refere à sua configuração. A Figura 3 mostra a tela que permite o cadastro de novos domínios na base de dados.
Figura 3 Inserção do Domínio Linguagem C Ao ser testado, o SII causou boa impressão em todos os usuários, além de ter se mostrado uma boa boa ferramenta de apoio aos estudos. Ele foi capaz de responder a questionamentos feitos de diversas formas, inclusive com frases muito curtas, mal formuladas ou com erros de ortografia por parte do usuário. A Figura 4 exibe um exemplo de tela de diálogo. Figura 4 Tela de Chat do SII CONSIDERAÇÕES FINAIS O desenvolvimento do SII trouxe aprendizado e conhecimentos de grande valor, visto que o trabalho no campo da inteligência artificial é considerado como um
dos pilares da tecnologia para a sociedade contemporânea. Foi uma tarefa árdua, trabalhosa, porém gratificante, sobretudo pelo fato de exigir a superação das dificuldades e da falta de informações claras e detalhadas neste campo. O desenvolvimento empírico eleva a capacidade de reagir a situações adversas e intensifica a criatividade. Do ponto de vista técnico, considera-se que os objetivos inicialmente propostos foram todos atingidos, pelo que se considera o projeto SII como bem-sucedido. Versões futuras podem ser consideradas, como a integração com sistemas de conversão de voz em fala e vice-versa, o que permitiria a sua utilização como aplicativo mobile via voz. FONTES CONSULTADAS AREIAS, C.; MENDES, A. A tool to help students to develop programming skills. International Conference on Computer Systems and Technologies CompSysTech 07-2007 (http://ecet.ecs.uni-ruse.bg/cst07/ - 09/07/2015, 20h32) BOTELHO, C. Sistemas Tutores no Domínio da Programação. Revista de Informática Aplicada, vol. IV, nº01 JAN/JUN 2008 (http://www.ria.net.br/index.php/ria/article/viewfile/34/34-10/07/2015, 19h55) GOULART, R.; GIRAFFA, L. Arquiteturas de Sistemas Tutores Inteligentes. Faculdade de Informática, PUCRS Brasil - 2001 (www.inf.pucrs.br 17/12/2015, 22h55) McROY, S.; et al. Building Intelligent Dialogue Systems. Natural Language and Knowledge Representation Research Group University of Wisconsin-Milwaukee 1999 (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.480.1575&rep=rep1&type =pdf 22/02/2016, 20h05) MIZRAHI, V. Treinamento em Linguagem C Curso Completo, Módulo 1. 1. ed. Makron Books, 1990, 127 p. TRAUM, D.; LARSSON, S. The Information State Approach to Dialogue Management. University of Southern California Institute for Creative Technologies, Department of Linguistics, Gothenburg University, 2003. (http://people.ict.usc.edu/~traum/papers/traumlarsson.pdf - 19/11/2014, 19h36)