3 FERRAMENTAS DE EDIÇÃO DE CATEGORIAS AIML
5.2 o PROCESSO DE TARGETING
Dando continuidade ao processo de targeting, foram recolhidos diversos logs de conversas com o chatterbot. As dificuldades de comunicação foram detectadas logo no início das conversas, tornando necessária a criação de categorias relacionadas a este contexto. A seguir serão mostrados alguns exemplos de logs recolhidos e as respectivas categorias criadas para corrigir as falhas de comunicação com o agente.
64
[Olá][ Oi Desconhecido! ]
[desconhecido?][ Você poderia fazer a sua pergunta de uma outra forma? ] [meu nome é Leticia][ Olá Leticia. ]
[muito prazer][ Não sei nada sobre "muito prazer". Ou, não entendi sua pergunta. ] [eu também sou professor][Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[eu dou aula também][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[sobre o que podemos falar?][ Infelizmente não pude entender sua última frase. ] Quadro 19 – Arquivo de log analisado
<category>
<pattern>DESCONHECIDO</pattern>
<template>É porque ainda não sei seu nome!</template> </category> <category> <pattern>MUITO PRAZER</pattern> <template>obrigado!</template> </category> <category>
<pattern>EU TAMBEM SOU PROFESSOR</pattern>
<template>Interessante, onde você leciona?</template> </category>
<category>
<pattern>EU DOU AULA *</pattern>
<template><srai>EU TAMBEM SOU PROFESSOR</srai></template> </category>
<category>
<pattern>SOBRE O QUE * FALAR</pattern>
<template><srai>ASSUNTOSCONHECIDOS</srai></template> </category>
Quadro 20 – Exemplos de categorias criadas após o processo de targeting
[tudo bom?][ Você poderia fazer a sua pergunta de uma outra forma?] [como vai?][ Não sei nada sobre "como vai". Ou, não entendi sua pergunta.]
[sobre o que vamos conversar?][ Infelizmente não pude entender sua última frase. ] [o que voce sugere?][ Não sei nada sobre "o que voce sugere". Ou, não entendi sua pergunta. ]
[qual seu nome?][ Você poderia fazer a sua pergunta de uma outra forma? ]
[qual é o seu nome?][ Não sei nada sobre "qual é o seu nome". Ou, não entendi sua pergunta.]
[qual o seu nome?][ Me chamo TheBot. ]
[que nome é esse?][ Você poderia fazer a sua pergunta de uma outra forma? ]
[de onde vem o seu nome?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
65 <category> <pattern>TUDO BOM</pattern> <template><srai>TUDOBEM</srai></template> </category> <category> <pattern>COMO VAI</pattern>
<template><srai>COMO VOCE ESTA</srai></template> </category>
<category>
<pattern>SOBRE O QUE * CONVERSAR</pattern>
<template><srai>ASSUNTOSCONHECIDOS</srai></template> </category>
<category>
<pattern>O QUE VOCE SUGERE</pattern>
<template>Eu sugiro que falemos sobre Qualidade de Software</template> </category>
<category>
<pattern>QUAL SEU NOME</pattern>
<template><srai>QUAL O SEU NOME</srai></template> </category>
<category>
<pattern>QUAL E O SEU NOME</pattern>
<template><srai>QUAL O SEU NOME</srai></template> </category>
<category>
<pattern>QUE NOME E ESSE</pattern>
<template>Vem da minha atividade!<srai>UM CHAT BOT</srai></template> </category>
<category>
<pattern>DE ONDE VEM SEU NOME</pattern>
<template>Vem da minha atividade!<srai>UM CHAT BOT</srai></template> </category>
Quadro 22 – Exemplos de categorias criadas após o processo de targeting
[eu me chamo Leticia][ Infelizmente não pude entender sua última frase. ] [me chamo Leticia][ Você tem um belo nome Leticia. ]
[prazer][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase.]
[quem é voce?][ Sou um tipo de professor on-line de Qualidade de Software.]
[como voce está hoje?][ Não sei nada sobre "como voce está hoje". Ou, não entendi sua pergunta. ]
[de onde voce é?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[o que voce faz?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[onde vc trabalha?][ Não sei nada sobre "onde voce trabalha". Ou, não entendi sua pergunta. ]
66
<category>
<pattern>EU ME CHAMO *</pattern>
<template><srai>MEU NOME E <star/></srai></template> </category> <category> <pattern>PRAZER</pattern> <template>Obrigado</template> </category> <category>
<pattern>COMO VOCE ESTA HOJE</pattern>
<template><srai>COMO VOCE ESTA</srai></template> </category>
<category>
<pattern>DE ONDE VOCE E</pattern>
<template>Sou de Santa Catarina, cidade de São José</template> </category>
<category>
<pattern>O QUE VOCE FAZ</pattern>
<template><srai>MEUSCONHECIMENTOS</srai></template> </category>
<category>
<pattern>ONDE VOCE TRABALHA</pattern>
<template>Na Univali em São José</template> </category>
Quadro 24 – Exemplos de categorias criadas após o processo de targeting
[vamos falar sobre que assunto?][ Não sei nada sobre "que assunto". Ou, não entendi sua pergunta. ]
[meu deus][ Não sei nada sobre "meu deus". Ou, não entendi sua pergunta. ]
[e a sua mãe vai bem?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[como vai a família?][ Não sei nada sobre "como vai a família". Ou, não entendi sua pergunta. ]
[voce acredita em Deus][ Você poderia fazer a sua pergunta de uma outra forma? ] [quem sao seus pais?][ Estou em constante aprimoramento, mas infelizmente não compreendi sua última frase. ]
[voce tem amigos?][ Infelizmente não pude entender sua última frase. ] Quadro 25 – Arquivo de log analisado
67
<category>
<pattern>VAMOS FALAR SOBRE QUE ASSUNTO</pattern> <template><srai>ASSUNTOSCONHECIDOS</srai></template> </category> <category> <pattern>MEU DEUS</pattern> <template><srai>CANSEI</srai></template> </category> <category>
<pattern>_ MAE VAI BEM</pattern>
<template>Vai muito bem obrigado!</template> </category>
<category>
<pattern>COMO VAI A FAMILIA</pattern>
<template>Vai muito bem obrigado!</template> </category>
<category>
<pattern>VOCE ACREDITA EM DEUS</pattern>
<template>Sim, eu acredito em Deus!</template> </category> <category> <pattern>_ PAIS</pattern> <template><srai>PAIS</srai></template> </category> <category> <pattern>_ AMIGOS</pattern> <template><srai>AMIGOS</srai></template> </category>
Quadro 26 – Exemplos de categorias criadas após o processo de targeting
Como mencionado na seção 5.1 deste capítulo, a base de conhecimento específico possui cerca de 140 conceitos. Neste trabalho optou-se por trabalhar um número menor de tópicos, buscando maior interação com o usuário. Inicialmente os tópicos escolhidos foram: Qualidade de software em si, Processo de Software, Requisitos de Qualidade, Garantia de Qualidade e Teste de Software. Procura-se ligar um assunto a outro de forma a conduzir o usuário leigo em Qualidade de Software. Os tópicos abordados em um conceito devem também fazer parte da base de conhecimento. Além disto, os conceitos devem ser abordados de forma que o chatterbot pareça um professor e não apenas um dicionário. Para isto, é preciso detalhar ao máximo cada tópico.
68
A seguir será apresentado um exemplo de modificação na base, que reflete a idéia abordada neste parágrafo. Se o usuário demonstra interesse em saber sobre qualidade, a seguinte categoria é processada:
<category>
<pattern>QUALIDADE</pattern>
<template>Qualidade de Software?</template> </category>
Quadro 27 – Exemplo de categoria - Qualidade
Neste caso, o chatterbot tenta especificar mais o assunto, indagando se o interesse é em Qualidade de Software. Se a resposta for “Sim”, a categoria abaixo analisa o contexto, e responde de acordo com o que foi solicitado:
<category>
<pattern>SIM</pattern>
<that>QUALIDADE DE SOFTWARE</that> <template>
A Qualidade de Software é uma área de conhecimento da Engenharia de Software que objetiva garantir a qualidade do software através da definição e normatização de processos de desenvolvimento. Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça às espectativas do cliente, dentro daquilo que foi acordado inicialmente. No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento, desta forma, é comum que a busca por um software de maior qualidade passe necessariamente por uma melhoria no processo de desenvolvimento.
</template> </category>
Quadro 28 – Exemplo de categoria – Qualidade de Software
A resposta sendo negativa, o chatterbot apresenta o conceito geral de qualidade, como mostra o Quadro 29.
<category>
<pattern>NAO</pattern>
<that>QUALIDADE DE SOFTWARE</that> <template>
Neste caso podemos falar de qualidade em geral: Você pode entender a qualidade como sendo a totalidade de características de uma entidade que lhe confere a capacidade de satisfazer as necessidades explícitas e implícitas. Esta definição é usada pela norma NBR ISO 8402. Para ajudar no entendimento, uma entidade pode ser uma atividade ou um processo, um produto, uma organização ou uma combinação entre eles. </template>
</category>
Quadro 29– Exemplo de categoria – Qualidade - Conceito
A Base inicial possuía 504 categorias, sendo 364 de linguagem natural e 140 de conhecimento específico. Por meio do processo de targeting, foram analisados 77
69
arquivos de log e acrescentadas 282 novas categorias, sendo 270 de linguagem natural e 12 de conhecimento específico.
O processo de targeting não possui necessariamente um fim, sendo que, o conhecimento é infinito. Haverá sempre a possibilidade de aprimorar e acrescentar conhecimento à base. Seguindo o modelo descrito neste capítulo, o objetivo é aumentar gradativamente o número de categorias, tanto de linguagem natural quanto de conhecimento específico, para que o agente possa se comunicar cada vez melhor e servir adequadamente ao seu objetivo maior que é o auxílio no ensino de Qualidade de Software, sendo incorporado à Plataforma Colaborativa de Engenharia de Software, o Projeto PLACES.
5.3 CONSIDERAÇÕES DO CAPÍTULO
Este capítulo mostrou como estava estruturada a base de conhecimento inicial, a análise dos arquivos de log, as modificações feitas e, exemplos de categorias criadas a partir desta análise. A ferramenta acelerou bastante o processo de inserção de categorias, por meio da automatização do cadastro e importação. No capítulo seguinte serão apresentadas as conclusões do trabalho através da análise de cada objetivo específico. Além disto, serão citadas as dificuldades encontradas durante o desenvolvimento do trabalho e, sugestões de trabalhos futuros.
70