elga von weissendorf - inteligência artificial em um chat bot

21
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.

Upload: derek-budde

Post on 24-Jun-2015

344 views

Category:

Software


0 download

DESCRIPTION

Neste projecto demonstra 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.

TRANSCRIPT

Page 1: 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.

Page 2: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 3: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 4: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 5: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 6: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 7: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 8: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 9: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 10: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 11: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 12: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 13: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 14: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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);

Page 15: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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);

Page 16: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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 =

Page 17: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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

Page 18: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 19: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 20: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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.

Page 21: Elga Von Weissendorf -  Inteligência artificial em um chat bot

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