View
109
Download
0
Category
Preview:
Citation preview
ETELVINAUM GERADOR DE PERSONAGENS PARA INSTANT MESSAGING
Eduardo Jorge Costa Ribeiro
Universidade do MinhoDepartamento de Informática
AGEN
DA
1. Apresentação do projecto e objectivos
2. Arquitectura da Etelvina
i. Motor da Etelvina
ii. Módulos , configurações e linguagem de configuração de
módulos
3. Base de conhecimento da Etelvina
i. Motivação
ii. Utilização de conhecimento na aplicação
iii. Extracção de conhecimento da Wikipédia
4. Conclusões e trabalho futuro
1.APRESEN
TAÇÃO D
O PRO
JECTO E O
BJECTIVOS
O que é a Etelvina?
• Uma plataforma de criação de Elizas
• Totalmente configurável
A Etelvina é também a personagem criada ao longo do projecto, que permite demonstrar quais as potencialidades deste sistema, assim como servir de base para novas personagens.
Objectivos do projecto
i. Tornar a Etelvina uma presença funcional, sempre disponível num cliente de Instant Messaging.
ii. Construir uma ferramenta configurável, flexível e expansível, em que seja fácil a um qualquer utilizador compor módulos obtendo o comportamento desejado.
iii. Permitir o desenvolvimento de módulos com conhecimento próprio.
Exemplos de ferramentas úteis
•Calculadora
•Dicionários
•Tradutores automáticos
•Consulta de estado metereológico em
determinada localidade
•Outros
O que é uma Eliza?
Uma Eliza é um programa de computador que tem como objectivo simular um interlocutor a ter uma conversa com um ser humano, e deve o seu nome devido ao primeiro programa do género a surgir.
2.ARQ
UICTECTU
RA DA ETELVINA
Esquema geral da arquitectura da Etelvina
i.M
OTO
R DA ETELVINA
Motor da Etelvina: o que é?
•Módulo central da aplicação
•Desenvolvido de forma a permitir a ligação de
novos módulos
•Configurável através de um ficheiro XML
Funções do motor
•Controlar o fluxo de mensagens
•Interligar e executar os vários módulos que
compõem uma personagem
•Armazenar informações sobre os utilizadores
ligados à Etelvina
Exemplo de um ficheiro de configuração do motor
<etelvina> <general> <connection> <protocol>xmpp</protocol> <username>utilizadorX</username> <password>password</password> <displayname>Etelvina</displayname> <status>Supercalifragilisticoexpialidous</status> <hostname>talk.google.com</hostname> <port>5222</port> </connection> <database>etelvinaDB.db</database> <numberMessagesSaved>15</numberMessagesSaved> <numberRepetitionsAllowed>1</numberRepetitionsAllowed> <takeTimeToAnswer>true</takeTimeToAnswer> <timeToAnswerPerChar>0.3</timeToAnswerPerChar> <timeLimitToAnswer>5</timeLimitToAnswer> <defaultAnswerIsKnowledgement> true </defaultAnswerIsKnowledgement> </general> <modules> <module name="Etelvina::Meteo" <module conffile="meteorologia.conf"/> <module conffile="personalidade.conf"/> <module name="Etelvina::MatExp" <module conffile="matExp.conf"/> <module name="Chess::Game" <module conffile="xadrez.conf"/> </modules></etelvina>
ii.M
ÓD
ULO
S, CON
FIGU
RAÇÕES E LIN
GU
AGEM
DE
CON
FIGU
RAÇÃO D
E MÓ
DU
LOS
Linguagem para criação de regras
Composto por três tipos de instruções:
a. Mensagens de entrada
b. Blocos de código
c. Mensagens de saída
Módulo da Etelvina: o que é?
•Bloco de regras que definem os comportamentos
da personagem
Tipos de regras
1. Regras de acção-reacção
2. Regras de acção-computação-reacção
3. Regras de acção-computação-reacção computada
ii.M
ÓD
ULO
S, CON
FIGU
RAÇÕES E LIN
GU
AGEM
DE
CON
FIGU
RAÇÃO D
E MÓ
DU
LOS (CO
NT.)
Sintaxe das regras
Bloco de PerguntasInicia-se por "P:" e é seguido pelo texto a reconhecer como mensagem de entrada.Pode conter expressões regulares escritas em Perl.
Bloco de CódigoBloco opcional, que se inicia por "C:".Permite a escrita de código numa linguagem semelhante a Perl.
Bloco de RespostasBloco que contém o texto a devolver como resposta. Inicia-se por "R:".
Exemplo de regras
P: OláP: OiR: Olá
P: O meu nome é <nome,MWORD>.R: Olá <nome>!
P: Qual é o teu nome?P: Como te chamas?P: Nome?R: Eu chamo-me Etelvina.R: Eu sou a Etelvina.
P: Quantos anos tens?P: Qual a tua idade?C: $$idade = getIdade(14,02,1974);R: Tenho <idade> anos.R: Quantos anos me dás?R: Já tenho <idade>.
P: Qual a temperatura em <localidade,MWORD>?P: Em <localidade,MWORD>, quantos graus estão?C: $$valor = temperatura($$localidade);R: Em <localidade> estão <valor>ºC.R: Estão <valor>ºC em <localidade>.
Utilização de variáveis em regras
Bloco de Perguntas<nomeVariável,regExp>
Bloco de Código$$nomeVariável
Bloco de Respostas
<nomeVariável>
3.BASE D
E CON
HECIM
ENTO
DA ETELVINA
• Evitar mensagens de entrada do utilizador não possuam resposta
Ter um tratamento que possibilite respostas quando não existe regras associadas
• Obter informações para responder questões dos utilizadores sobre variados temas
Valorização da diversidade e actualidade
• Armazenamento local para evitar constantes pesquisas em tempo de execução
Motivação para a criação de uma base de conhecimento
ii. UTILIZAÇÃO
DE CO
NH
ECIMEN
TO N
A APLICAÇÃOEsquema geral de utilização de conhecimento na aplicação
ii.EXTRACÇÃO
DE CO
NH
ECIMEN
TO DA W
IKIPÉDIA
Extracção de informação de infoboxes Extracção de informação de páginas genéricas
Chave Valor
nome FOX Portugal
nome completo Fox International Channels Portugal Lda
imagem Ficheiro:FOX wordmark-orange.svg
descricao Televisão por assinatura
país PRT
fundação 2003
pertence a Fox Broadcasting Company
proprietário News Corporation
slogan ''A Casa das Séries''
cobertura TV por Cabo, Satélite e IPTV
site http://www.fox.pt/
{{Info/Rede de televisão|nome = FOX Portugal|nome completo = Fox International Channels Portugal Lda|imagem = [[Ficheiro:FOX wordmark-orange.svg|200 px]]|descricao = [[Televisão por assinatura| Assinatura]]|país = {{PRT}}|fundação = [[2003]]|pertence a = [[Fox Broadcasting Company]]|proprietário = [[News Corporation]]|slogan = ''A Casa das Séries''|cobertura = TV por Cabo, Satélite e IPTV|site = http://www.fox.pt/}}
Excepções:
1. Páginas com redireccionamentos
2. Páginas de desambiguação
4.CO
NCLU
SÕES E TRABALH
O FU
TURO
Conclusões
• Estrutura criada é expansível e configurável
• Configurações fáceis de alterar, com muitas potencialidades devido à utilização de código Perl
• Encadeamento de conversas não é trivial
• Base de conhecimento construída simples
Trabalho Futuro
• Criação de uma ferramenta para validação da sintaxe de configurações
• Contextualização de conversas
• Reacção a eventos do utilizador
• Suporte a conversas multi-utilizador
• Suporte a um maior número de linguagens de programação
• Extracção de informação de mais fontes e mais complexa
ETELVINAUM GERADOR DE PERSONAGENS PARA INSTANT MESSAGING
Eduardo Jorge Costa Ribeiro
Universidade do MinhoDepartamento de Informática
Recommended