Elga Von Weissendorf - Inteligência artificial em um chat bot
-
Upload
derek-budde -
Category
Software
-
view
348 -
download
0
description
Transcript of Elga Von Weissendorf - Inteligência artificial em um chat bot
Aplicação do conceito de
Inteligência Artificial em um ChatBot
Trabalho Prático da disciplina de Inteligência Artificial
Derek Budde, A21000230
Lu ís Fontes, A21003874
J. Ricardo , A21001874
Trabalho de grupo, no âmbito da Disciplina de Inteligência Artificial, que pertente conceptualizar o desenvolvimento de um sistema do tipo “ChatBot” onde será possível dar uso aos diversos conteúdos apreendidos ao longo das aulas teóricas e práticas assim, como demonstrar conhecimentos adquiridos no percurso académico até ao presente terceiro ano.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
CONTEÚDO
Controlo de versões .................................................................................................................................................................3
EQUADRAMENTO .....................................................................................................................................................................4
Chatbot ..................................................................................................................................................................................4
O que é um chatbot? ......................................................................................................................................................4
E qual a relevância de um “chatbot” para demonstração de assimilação de conteúdos no âmbito da
disciplina de Inteligência Artificial?..............................................................................................................................5
Nec essidade de chatbot’s ..............................................................................................................................................5
ESTRUTURA CHATBOT..............................................................................................................................................................6
Interpretador AIML..............................................................................................................................................................6
Recursão ...........................................................................................................................................................................7
Arquitetura do chatbot aiml..........................................................................................................................................8
Implementação em C# ..................................................................................................................................................... 10
Modulo interpretadores AIML........................................................................................................................................ 11
Módulo da base de conhecimento ................................................................................................................................ 12
Personalidade ............................................................................................................................................................... 12
Módulo de expressões Faciais ........................................................................................................................................ 13
Módulo Regular Expression ............................................................................................................................................ 14
Módulo Voz Text-to-Speech ........................................................................................................................................... 15
Módulo Word Frequency e Emotion analysis.............................................................................................................. 16
Análises de emoções ................................................................................................................................................... 17
Suporte academico ao algoritimo modificado........................................................................................................ 18
Desafios CHATBOT’S .............................................................................................................................................................. 19
Conclusão ................................................................................................................................................................................ 19
Referencias.............................................................................................................................................................................. 20
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
CONTROLO DE VERSÕES
Pré-requisitos AIMLbot2.5
Microsoft SAPI 5 ou 4 RealSpeak TTS engine - ScanSoft Steffi_Dri40_16kHz
Versão Autor/Alterado Por Data de
Alteração
Descrição da
Versão
1.1 Derek Budde & Luís Fontes & J. Ricardo Fernandes 31-12-2012 AIMLBot
1.2 Derek Budde & Luís Fontes & J. Ricardo Fernandes 31-12-2012 Expressões Faciais
1.3 Derek Budde & Luís Fontes & J. Ricardo Fernandes 31-12-2012 Voz,TTR, Analise de emoções
1.4 Derek Budde & Luís Fontes & J. Ricardo Fernandes 31-12-2012 Versão de
entrega
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
EQUADRAMENTO
CHATBOT
O QUE É UM CHATBOT?
Trata-se de um programa de computador que tem como objetivo simular uma conversa real
com o utilizador, respondendo às perguntas realizadas pelo último, recorrendo a uma base
de conhecimento previamente construída e antecipando uma resposta espectável de um
humano, recorrendo a algoritmos do âmbito da Inteligência Artificial. Quanto mais evoluída
for esta base de conhecimento melhor será a resposta emitida pelo chatbot, ou seja mais
“humanizada”.
É uma entidade de inteligência artificial capaz de simular uma pessoa através do
Processamento da Linguagem Natural (PLN).
Existem vários tipos de chatbot, conforme a sua funcionalidade.
São exemplos:
Chatbots de Entretenimento - ELIZA, dialogo tipo chat
Chatbots de Ajuda - FAQ, responder sobre um determinado assunto
Chatbost Comerciais de ajuda ao consumidor - Suporte técnico
Chatbots Comerciais de Marketing - Representar a empresa e produtos
Chatbots sem classificação - ULTRA-HAL, assistente pessoal, aprendizagem, podem discar
um número, realizar tarefas, etc.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
E QUAL A RELEVÂNCIA DE UM “CHATBOT” PARA DEMONSTRAÇÃO DE ASSI MILAÇÃO DE
CONTEÚDOS NO ÂMBITO DA DISCIPLINA DE IN TELIGÊNCIA ARTIFICIA L?
Muitas poderiam ser as abordagens escolhidas para a realização de um trabalho prático no
âmbito da disciplina em questão, mas foi de unanime entre os elementos deste grupo de
trabalho que teria ser um “chatbot,
A aplicação em causa permite não só aplicação dos conteúdos aprendidos no que toca à
construção e desenvolvimento de bases de conhecimento, como nos leva um pouco mais
além, para domínios um pouco mais discutíveis e também presentes nos conhecimentos
assimilados durante as aulas, como sendo por exemplo a construção de uma
“personalidade” e a construção de mecanismos que realizem aprendizagem por meio de
interação com utilizadores.
Foi também nosso propósito com esta abordagem conhecer e apreender conceitos reais e
utilizados no dia-a-dia, sendo surpreendente a conclusão de como a “inteligência artificial”
está embebida nas nossas vidas, nomeadamente e a título de exemplo em muitos “chatbot”
de diversos sítios na internet, que são visitados diariamente por milhares de utilizadores.
NECESSIDADE DE CHATBOT’S
É nosso entendimento que para além de várias vertentes praticas e comerciais como
por exemplo esclarecimento de dúvidas em site, e/ou recomendação de produtos a
“navegadores web”, o “chatbot” pode ser muito mais útil, e consideramos então como uma
“necessidade” a criação de “chatbot’s” com reatividade muito específica para diversos
públicos-alvo como sendo por exemplo na Educação para a estimular e fomentar a
aprendizagem, e também por exemplo para a população mais idosa como meio de ligação e
também de aprendizagem de novas tecnologias.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
ESTRUTURA CHATBOT
INTERPRETADOR AIML
O AIML basea-se em SGML e XML que compões a base de conhecimento e regras de um
chatbot. Uma da grande vantagem desta linguagem é seu alto índice de reaproveitamento
de sua base de conhecimento.
O AIML utiliza como técnica a procurar de palavras-chave na pergunta, que possam ser
anexadas a um assunto ou a uma resposta anterior, facilitando o direccionamento da
conversa.
A linguagem AIML são módulos que se chamam de categorias.
Cada categoria possui um padrão de entrada, que compara à sentença digitada pelo
usuário, e um padrão de resposta, que é usado para estruturar uma sentença a ser
retornada ao usuário.
Esse padrão de resposta utiliza tags de marcação para a sua construção.
Ilustração 1 – AIML representação da linguagem
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
Ilustração 2 - AIML conceito visual de resposta
As principais tags do AIML são:
<aiml> incia e termina um bloco programado em AIML
<category> identifica uma “unidade de conhecimento” na base de conhecimento
<pattern> identifica um padrão de mensagem simples freqüentemente utilizado
por usuários.
<template> contém a resposta para uma mensagem do usuário.
RECURSÃO
O maior sucesso da linguagem AIML, conjuntamente com as tags de definição de contexto, é a tag <srai>. Funciona de uma maneira similar a um salto incondicional utilizado em muitas linguagens de programação (goto), permitindo que a resposta a uma determinada pergunta possa ser redirecionada a uma categoria em que a mesma já foi respondida.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
Ilustração 3 - AIML categorias
Para solucionar o tratamento da forma verbal, como na pergunta 'Como eu crio um google
grupo?' (primeira pessoa), é utilizado o arquivo de substituições disponível no interpretador
ProgramD [Bush, 2009].
Ilustração 4 - AIML substituições
ARQUITETURA DO CHATBOT AIML
Ilustração 5 - AIML arquitectura
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
O interpretador AIML é um módulo fundamental para o funcionamento do chatbot. Tem como tarefa receber como entrada as sentenças digitadas pelos usuários, e buscar na base AIML uma categoria cujo o padrão de entrada seja o mais adequado para a sentença atual. Em seguida, o interpretador monta a resposta que será devolvida ao usuário. Verifica se existem tags a serem processadas no template de saída dessa categoria. Em caso afirmativo, ele executa essas tags, buscando na base de conhecimento, quando necessário, informações adicionais para completar a sentença de saída.
Ilustração 6 - AIML módulos internos da arquitectura
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
IMPLEMENTAÇÃO EM C#
Para a implementação da aplicação é necessário a concepção de uma estrut ura definida
para a boa organização e funcionalidade do código a ser escrito.
Assim teremos:
Modulo Interpretador AIML Base de conhecimento (em inglês)
Modulo de Expressões Faciais Modulo de Voz Text-to-Speech (TTS)
Modulo Regular Expression (pattern)
Modulo Word Frequency e Emotion Analysis
Ilustração 7 - Representação da estrutura do programa
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MODULO INTERPRETADORES AIML
O módulo interpretador é alcançado pela implementação da API AIMLBot, este recebe e
retorna uma sentença conforme o próprio processamento da frase introduzida pelo diálogo
com o utilizador.
Como representado no diagrama acima este módulo recebe a sentença de palavras após um
pré processamento do módulo (Regular Expression). A própria API se encarrega de procurar
e analisar as possíveis respostas a serem retornadas a função.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MÓDULO DA BASE DE CONHECIMENTO
Os ficheiros baseam-se em SGML e XML que compões a base de conhecimento e regras de
um chatbot. Uma da grande vantagem desta linguagem é seu alto índice de
reaproveitamento de sua base de conhecimento.
O AIML utiliza como tecnica a procurar de palavras-chave na pergunta, que possam ser
anexadas a um assunto ou a uma resposta anterior, facilitando o direcionamento da
conversa.
Ilustração 8 - Base de conhecimento
PERSONALIDADE
É possivel configurar a personalidade do bot, tal como gostos,genero e hobbies.
O ficheiro settings.xml guardara essas configurações.
Ilustração 9 - Personalidade configuração
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MÓDULO DE EXPRESSÕES FACIAIS
Este módulo é responsável por classificar as interjeições contidas na frase enviada pelo
usuário. As interjeições são palavras invariáveis que exprimem estados emocionais, ou mais
abrangente: sensações e estados de espírito. Podem ter significado diferente consoante a
implementação na frase.
Ilustração 10 - Estrutura Expressão Facial
Exemplo Texto enviado - “Ouch, My Brain Hurts!” Texto recebido - ouch my brain hurts Compara na BD – ouch Recebe Categoria da BD – pain, annoyance Random Seleciona – pain Gráficos “pain” - "C2", "E1“ Random Seleciona - "E1“
Imagem alterada para E1.png
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MÓDULO REGULAR EXPRESSION
Normalização do texto e dos caracteres especiais inseridos, algoritmo utilizado NLP Word
and Text Manipulation e Regular Expressions.
Exemplo:
Texto Enviado - Olá, *mundo!!!
1. fase – Olá *mundo
2. fase – Ola mundo
3. fase – ola mundo
Ilustração 11 - Diagrama Modulo Regular Expression
// eliminacao de caracters invalidos e normalizacao das maiusculas
Regex regEx2 = new Regex(pattern2);
string preWords1 = regEx2.Replace(inputBox.Text,
replacement).ToLower();
getOutput(preWords1);
// eliminacao de non-ASCII characters
Regex regEx3 = new Regex(pattern3);
string preWords2 = regEx3.Replace(preWords1, replacement2);
// separacao da pontuacao
string[ preWords3 = Regex.Split(preWords2, pattern1,
RegexOptions.IgnorePatternWhitespace);
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MÓDULO VOZ TEXT-TO-SPEECH
Com a implementação do TTS do Sistema Operacional Windows é possivel utilizar a voz
padrão do computador para a leitura das frases. A voz de saída é inglês com sotaque
alemão, para que o Chatbot possa adquir uma maior personalidade.
Ilustração 12 - Diagrama TTS
No exemplo demonstra a entrada de uma string e a leitura do texto através da
funcionalidade TTS do sistema.
– -
–
-
string answer = "Elga" + " - " + answerBot + "\r\n";
_speech.SelectVoice("ScanSoft Steffi_Dri40_16kHz");
_speech.SpeakAsync(answerBot);
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
MÓDULO WORD FREQUENCY E EMOTION ANALYSIS
-
No exemplo acima observamos que a interjeição “oh”, ocorre 1 vez na primeira l inha, 2
vezes na segunda linha e 1 vez na terceira linha, isso significa que com o constante uso desta
interjeição o usuário está expressando um sentimento durante o diálogo. Com esta
observação, podemos utilizar o algoritimo de Type-Token Ratio, para determinar uma
emoção com base na frequência em que a interjeição está sendo utilizada.
Ilustração 13 - Modulo TTR e Emotion Analysis
Estado emocional parcial = interjeições na frase
Estado emocional global =
Exemplo: Freq. Rank 1 - oh boy! 1 1 2 - oh, that hurts, oh! 2 1
3 - oh, that hurts? 1 1
Nº de frequências = 4 Nº de rank = 3
Total emocional =
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
ANÁLISE DE EMOÇÕES
-
-
- - –
–
Ilustração 14 – Possíveis resultados de um diálogo
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
SUPORTE ACADEMICO AO ALGORITIMO MODIFICADO
Keyword Spotting Technique The keyword pattern matching problem can be described as the problem of finding occurrences of keywords from a given set as substrings in a given string. This problem has
been studied in the past and algorithms have been suggested for solving it. In the context of emotion detection this method is based on certain predefined keywords. These words are
classified into categories such as disgusted, sad, happy, angry, fearful, surprised etc. Process of Keyword spotting method.
Lexical Affinity Method
Detecting emotions based on related keywords is an easy to use and straightforward method.
Lexical Affinity approach is an extension of keyword spotting technique; it assigns a
probabilistic ‘affinity’ for a particular emotion to arbitrary words apart from picking up emotional keywords.
These probabilities are often part of linguistic corpora, but have disadvantages; firstly the
assigned probabilities are biased toward corpus-specific genre of texts, secondly it misses out emotional content that resides deeper than the word-level on which this technique
operates. For example the word ‘accident’, having been assigned a high probability of indicating a negative emotion, would not contribute correctly to the emotional assessment of phrases like ‘I avoided an accident’ or ‘I met my girlfriend by accident’.
Ilustração 15 - Representação Gráfica
Texto extraído do documento original, citado nas referências do projecto, divulgado para
consulta publica de académicos.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
DESAFIOS CHATBOT’S
Um chatbot também apresenta desafios, sendo a principal delas o fato de que é um
programa de computador e não é capaz de pensar e aprender da mesma forma que um ser
humano o faz. Como a quantidade de sentenças que um ser humano pode produzir é
praticamente infinita, dificilmente um software será capaz de lidar com todos os tipos de
input fornecido pelos usuários.
Porém, apesar das limitações, esse tipo de programa não pode ser desprezado como
ferramenta auxiliar no ensino. O potencial para o uso dessa tecnologia é enorme não só na
área da educação, como também para qualquer área que necessite de consulta `a bases de
dados, como atendimento ao cliente, suporte on-line, etc.
Conforme comentado em (PALAZZO, 1997): “O PLN é da maior importância para o
desenvolvimento de ferramentas para a comunicação homem-máquina em geral e para a
construção de interfaces SBCs em particular”. Por SBCs Palazzo refere-se a Sistemas
Baseados em Conhecimento.
CONCLUSÃO
Embora o módulo de interpretação contém o algoritmo de procura em árvore, muitas das
decisões de resposta ainda se mantém iguais aos primeiros modelos a nível de NLP.
Houve muitas tentativas em conseguir reproduzir a fala em linguagem natural, mas vem se
verificando impossível alcançar um grau satisfatório, apesar dos avanços alcançados a nível
de programação.
Neste projecto foi demonstrado como utilizar vários módulos para complementar o
processo de IA em chatbots desde a implementações de algoritmos NLP (Word and Text
Manipulation e Regular Expressions) , bem como o processo de decisão facial que podemos
assumir como um decisão interactiva de escolha, consoante interjeições utilizadas pelo
usuário.
Para trabalhos futuros a implementação de reconhecimento facial com OpenCV para C#
através de uma webcam mostra-se muito aliciante, possibilitando o bot responder também
a expressões emocionais por parte do utilizador.
Assim conclui-se que só tal nível de satisfação poderá ser alcançado através de um conjunto
de outros sensores para que o chatbot responda de uma forma natural.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
REFERENCIAS
AIMLBot (Program#) - http://aimlbot.sourceforge.net/
Natural language processing - http://nlpdotnet.com/
Informação & Sociedade: Estudos v. 18, n. 2, 2008. CHATTERBOT: Conceito,
Características, tipologia e Construção; Rafaela Lunardi, Comarella, Ligia Maria
Arruda Café, Universidade Federal de Pernambuco Centro de informática pós-
graduação em ciência da computação; Recife, 2003
Um chatterbot para aquisição automática de perfil do usuário; Thiago José Marques Moura, Dissertação de Mestrado, Universidade Federal de Pernambuco,Recife 03 -2003
Chatterbots podem ser úteis ? ; Jefferson Mendes Silva, Faculdade de tecnologia de
são paulo - São Paulo – Brasil 2012
TTR-http://www.speech-therapy-information-and-resources.com/type-token-
ratio.html
Word Counting - http://www.devcurry.com/2010/07/count-repeated-words-in-
list.html
Revista CEFAC - On-line version ISSN 1982-0216 - Types e tokens na aquisição típica
de linguagem por sujeitos de 18 a 32 meses falantes do português brasileiro,
http://www.scielo.br/scielo.php?pid=S1516-18462011
005000058&script=sci_arttext
Towards Socialized Machines: Emotions and Sense of Humour in Conversational
Agents, Michal Ptaszynski, Pawel Dybala, Shinsuke Higuhi, Wenhan Shi,Rafal Rzepka
and Kenji Araki, Hokkaido University, Japan
Computational Models of Emotion - Stacy Marsella, Jonathan Gratch and Paulo
Petta. In Scherer, K.R., Bänziger,.
T., & Roesch, E. (Eds.) A blueprint for an affectively competent agent: Cross -
fertilization between Emotion Psychology.
APLICAÇÃO DO CONCEITO DE INTELIGÊNCIA ARTIFICIAL EM UM CHATBOT 24 de Janeiro de 2013
Affective Neuroscience, and Affective Computing. Oxford: Oxford University Press,
2010 http://people.ict.usc.edu/~marsella/publications/bytopic.html
The Many Faces by Lachyen - http://lachyen.deviantart.com/art/The-Many-Faces-
45804641
EMOTION DETECTION FROM TEXT - Shiv Naresh Shivhare1 and Prof. Saritha
Khethawat2 , 1Department of CSE and IT, Maulana Azad National Institute of
Technology, Bhopal, Madhya Pradesh, 2Department of CSE and IT, Maulana Azad
National Institute of Technology, Bhopal, Madhya Pradesh, India
http://airccj.org/CSCP/vol2/csit2237.pdf