• Nenhum resultado encontrado

ESTUDO DE CASO

No documento RENAN CAPARICA NORONHA (páginas 50-62)

Para validar o modelo proposto, foi elaborado um roteiro de perguntas separadas em diferentes casos de teste. A interação com chatbot neste estudo de caso está limitada a conversas baseadas em texto, ou seja, todas as conversas no estudo de caso foram realizadas por meio de texto digitado em uma plataforma digital disponibilizada pelo Dialogflow.

No primeiro caso de teste pretende-se utilizar linguagem coloquial em cada pergunta, e espera-se que o chatbot mantenha o fluxo da conversa. Este caso de teste tem como intuito exemplificar como é esperado que um pedido de pizza normal prossiga.

No segundo caso de teste pretende-se também utilizar linguagem informal, porém as frases contêm mais informações sobre o pedido, o usuário toma a iniciativa de informar o que deseja, ao invés de esperar o chatbot perguntar as informações que faltam através da função de spot-filling. Espera-se que o chatbot seja capaz de extrair várias informações de uma frase de forma precisa e correta para não atrapalhar o fluxo da conversa.

No terceiro caso de teste foi fornecido o mínimo de informações possível a cada interação com o chatbot. Espera-se que o chatbot pergunte ao usuário as informações necessárias para completar o pedido. Esta abordagem busca demonstrar e testar a configuração de spot-filling do chatbot, demonstrando que um pedido não é finalizado antes de obter as informações necessárias.

No quarto caso de teste pretende-se simular a indecisão de um usuário, que decide trocar o sabor de sua pizza. É esperado que o chatbot reconheça a troca do sabor, e atualize a informação corretamente. Este caso de teste tem como intuito demonstrar a capacidade do chatbot de entender o contexto da pergunta do usuário.

No quinto caso de teste foi demonstrado outras funcionalidades do chatbot, como informar os sabores de pizza disponíveis, ou o horário de funcionamento da pizzaria. Espera-se que mesmo durante um pedido, o chatbot seja capaz de informar o cardápio ou o horário de funcionamento da pizzaria sem perder as informações sobre o pedido em si.

No sexto caso de teste pretende-se fazer um pedido de pizza juntamente com a saudação inicial, e também apenas o pedido de pizza, sem a saudação inicial. Espera-se que o chatbot se comporte normalmente e prossiga com o pedido. Esta abordagem busca demonstrar um limite no modelo do chatbot.

No sétimo caso de teste foi feito um pedido de uma pizza, porém durante a escolha da bebida, o usuário tenta alterar o sabor de sua pizza. Espera-se que o chatbot altere o sabor da pizza, repita o pedido da pizza como confirmação, e continue com a escolha da bebida. Esta abordagem também procura demonstrar outro limite na modelagem da conversa do chatbot.

No oitavo caso de teste pretende-se utilizar linguagem informal, porém algumas palavras contêm erros ortográficos propositais. Espera-se que o chatbot entenda o significado das palavras com erros ortográficos, pois o mesmo é esperado de um ser humano. Este caso de teste tem como intuito mostrar do algoritmo do Google Dialogflow, e sua capacidade de entender palavras com erros ortográficos que um ser humano também conseguiria interpretar.

1. Caso de Teste

a. Pergunta: “Boa noite”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Olá! Como posso te ajudar?” b. Pergunta: “quero pedir uma pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor você gostaria?” c. Pergunta: “quatro queijos”

Resposta esperada: Pergunta o tamanho da pizza Resposta recebida: “Qual tamanho você quer pedir?”

d. Pergunta: “grande”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza grande de quatro queijos está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

e. Pergunta: “não”

Resposta esperada: Finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “Sem problemas, sua pizza fica pronta daqui 40 minutos.”

2. Caso de Teste a. Pergunta: “oi”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Oi! Como posso te ajudar?” b. Pergunta: “quero uma pizza grande de margarita”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza grande de margherita está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

c. Pergunta: “sim, uma coca 2 litros”

Resposta esperada: Repete o pedido de bebida e finaliza a conversa informando o tempo de espera do pedido

d. Resposta recebida: “1 coca-cola 2 litros confirmada. Seu pedido ficará pronto em aprox. 40 minutos.”

3. Caso de Teste

a. Pergunta: “ola”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Oi! Como posso te ajudar?” b. Pergunta: “pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor você gostaria?” c. Pergunta: “frango com catupiry”

Resposta esperada: Pergunta o tamanho da pizza

d. Pergunta: “pequena”

Resposta esperada: Pergunta a quantidade de pizzas desejadas Resposta recebida: “Quantas pizzas?”

e. Pergunta: uma

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza pequena de frango com catupiry está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

f. Pergunta: “sim”

Resposta esperada: Pergunta qual o refrigerante desejado Resposta recebida: “Qual refri? Coca, guaraná ou sprite?” g. Pergunta: “Sprite”

Resposta esperada: Pergunta qual o tamanho do refrigerante Resposta recebida: “temos lata, 600ml, 1L e 2L, qual você vai querer?”

h. Pergunta: “lata”

Resposta esperada: Pergunta a quantidade de refrigerantes Resposta recebida: “Quantas sprite de 300ml?”

i. Pergunta: “uma”

Resposta esperada: Repete o pedido da bebida e finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “1 sprite 300ml confirmada. Seu pedido ficará pronto em aprox. 40 minutos.”

4. Caso de Teste

a. Pergunta: “boa noite”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Oi! Como posso te ajudar?” b. Pergunta: “quero uma pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor você gostaria?” c. Pergunta: “quatro queijos”

Resposta esperada: Pergunta o tamanho da pizza

Resposta recebida: “Pequena, média, grande ou gigante?”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza grande de margherita está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

e. Pergunta: “não”

Resposta esperada: Finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “Ok! Sua pizza estará pronta em aprox. 40 minutos.”

5. Caso de Teste

a. Pergunta: “boa noite”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Oi! Como posso te ajudar?” b. Pergunta: “qual o horário de atendimento de vocês”

Resposta esperada: Informa o horário de atendimento da pizzaria Resposta recebida: “Nosso horário de atendimento é de Terça a Domingo das 18h até às 23h.”

c. Pergunta: “ok, quero pedir uma pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor você gostaria? d. Pergunta: quais sabores vocês tem?”

Resposta esperada: Informa os sabores de pizza disponíveis Resposta recebida: “Estamos servindo os sabores quatro queijos, frango com catupiri, peperoni, margherita e calabresa.”

e. Pergunta: “vou querer uma de calabresa”

Resposta esperada: Pergunta o tamanho da pizza

Resposta recebida: “Pequena, média, grande ou gigante?” f. Pergunta: “grande”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza grande de calabresa está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

Resposta esperada: Finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “Sem problemas, sua pizza fica pronta daqui 40 minutos.”

6. Caso de Teste

a. Pergunta: “Boa noite, gostaria de pedir uma pizza de quatro queijos” Resposta esperada: Pergunta o sabor da pizza

Resposta recebida: “Não consegui entender, desculpe.” b. Pergunta: “quero uma pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Desculpe, mas não entendi.” 7. Caso de Teste

a. Pergunta: “boa noite”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Olá! Como posso te ajudar?” b. Pergunta: “gostaria de pedir uma pizza”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor você gostaria?” c. Pergunta: “peperoni”

Resposta esperada: Pergunta o tamanho da pizza

Resposta recebida: “Pequena, média, grande ou gigante?” d. Pergunta: “media”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza media de peperoni está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

e. Pergunta: “sim”

Resposta esperada: Pergunta qual o refrigerante desejado Resposta recebida: “Coca, guaraná ou sprite?”

f. Pergunta: “coca”

Resposta esperada: Pergunta qual o tamanho do refrigerante Resposta recebida: “temos lata, 600ml, 1L e 2L, qual você vai querer? “

Resposta esperada: Confirma a troca do sabor e pergunta novamente o tamanho do refrigerante

Resposta recebida: “Pequena, média, grande ou gigante?” h. Pergunta: “media”

Resposta esperada: Pergunta o tamanho do refrigerante Resposta recebida: “Quantas pizzas?”

i. Pergunta: “uma”

Resposta esperada: Confirma o pedido da pizza e pergunta o tamanho do refrigerante

Resposta recebida: “Seu pedido de 1 pizza media de frango com catupiri está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

j. Pergunta: “não”

Resposta esperada: Finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “Sem problemas, sua pizza fica pronta daqui 40 minutos.”

8. Caso de Teste

a. Pergunta: “boa noiet”

Resposta esperada: Saudação ao usuário

Resposta recebida: “Olá! Como posso te ajudar?” b. Pergunta: “me da uma pizz ai”

Resposta esperada: Pergunta o sabor da pizza Resposta recebida: “Qual sabor?”

c. Pergunta: “di frango”

Resposta esperada: Pergunta o tamanho da pizza

Resposta recebida: “Pequena, média, grande ou gigante?” d. Pergunta: “grande”

Resposta esperada: Repete o pedido, e pergunta se deseja bebida Resposta recebida: “Seu pedido de 1 pizza grande de frango está sendo preparado! Você gostaria de alguma bebida junto com sua pizza?”

e. Pergunta: “sim”

Resposta recebida: “Qual refri? Coca, guaraná ou sprite?” f. Pergunta: “coca”

Resposta esperada: Pergunta o tamanho do refrigerante

Resposta recebida: “temos lata, 600ml, 1L e 2L, qual você vai querer?”

g. Pergunta: “quero uma di um litru”

Resposta esperada: Repete o pedido da bebida e finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “temos lata, 600ml, 1L e 2L, qual você vai querer?”

h. Pergunta: “me da a litrao”

Resposta esperada: Pergunta a quantidade de refrigerantes Resposta recebida: “Quantas coca-cola de 1L?”

i. Pergunta: “so uma”

Resposta esperada: Repete o pedido da bebida e finaliza a conversa informando o tempo de espera do pedido

Resposta recebida: “1 coca-cola 1L confirmada. Seu pedido ficará pronto em aprox. 40 minutos.”

A seguir será compilado uma tabela com os resultados obtidos através do roteiro de testes, informando em quais perguntas o chatbot se comportou de forma esperada e desejada, e em quais perguntas ele se comportou de forma indesejada.

Na Tabela 1 observa-se que a letra P representa respostas positivas, que estão de acordo com a resposta desejada. Já a letra N representa respostas negativas, ou seja, não apresentam uma resposta condizente com a resposta esperada. Os espaços em branco na tabela condizem a perguntas inexistentes naquele caso de teste.

a b c d e f g h i j 1. Caso de Teste P P P P P 2. Caso de Teste P P P P 3. Caso de Teste P P P P P P P P P 4. Caso de Teste P P P P P 5. Caso de Teste P P P P P P P 6. Caso de Teste N N 7. Caso de Teste P P P P P P N N N P 8. Caso de Teste P P P P P P N P P

Tabela 1 - Análise das respostas por caso de teste. Fonte: Autor.

É possível analisar a partir dos resultados obtidos que em determinados cenários, o chatbot se comporta como esperado, mantendo o fluxo da conversa e se comportando de maneira natural. Como demonstrado nos casos de teste 1 a 5, dado as circunstâncias corretas, o chatbot tem um desempenho excelente. Entretanto alguns erros aconteceram nos casos 6 a 8, devido a limitações no modelo do protótipo. Observa-se que na Tabela 1 no caso de teste 6, constata-se que todas as respostas não foram de acordo com o esperado. Isto acontece devido a forma que foi definido os intents do chatbot. O chatbot espera que o usuário envie uma saudação como início de conversa, acionando o “Default Welcome Intent”, para depois receber a intenção de pedir uma pizza, saber sobre o horário de funcionamento ou informar os sabores de pizza disponíveis. Mantendo esse modelo, o chatbot fica limitado a depender de uma saudação inicial para começar a conversa com o usuário, resultando nas duas respostas negativas do sexto caso de teste.

Já no sétimo caso de teste o chatbot perde seu contexto e todos os dados anteriores quando o usuário tenta alterar o sabor de sua pizza na pergunta “g” (Tabela 1), e volta a preencher os dados do pedido de pizza a partir do novo sabor. Isso acontece quando o usuário está no follow-up intent “pedido.pizza - sim – bebida”, e neste momento o chatbot apaga todos os dados do contexto “pizza”, onde estão salvos as informações do pedido da pizza, e inicia um novo pedido. Esperava-se do chatbot apenas a alteração do sabor da pizza e a continuidade do pedido da bebida, entretanto o chatbot não foi refinado o suficiente para incluir esta funcionalidade.

No oitavo caso de teste, foi simulado uma pessoa que erra a digitação da palavra em algumas frases, ou que não tem conhecimento básico da língua portuguesa em outras. Observa-se que o Google Dialogflow é potente, e tem uma capacidade de entendimento avançada, conseguindo decifrar as palavras com erros ortográficos. Porém a pergunta “g” desse caso de teste não foi processada, e automaticamente foi acionado o “Default Fallback Intent”, informando o usuário que não foi possível entender a frase escrita. A pergunta seguinte (h), apesar de ter sido reconhecida, também foi escrita com erros propositais.

O Gráfico 1 apresenta os resultados do roteiro de teste de forma quantitativa, sendo em azul a porcentagem das perguntas respondidas como esperado, e em laranja a porcentagem das perguntas incorretas, separadas por caso de teste. Na última coluna observa-se a porcentagem total entre todas as perguntas corretas com todas as perguntas incorretas.

Gráfico 1 - Acertos VS Erros por Caso de Teste Fonte: Autor

Analisando os acertos e erros do chatbot, observa-se no Gráfico 1 que assim como exposta na Tabela 1, apenas os casos de teste do 6 ao 8 apresentam resposta fora do esperado, sendo o caso de teste 6 com 100% de repostas erradas, o caso de teste 7 com 30%, e o caso de teste 8 com 11%. No total houveram 45 respostas

100% 100% 100% 100% 100% 70% 89% 87% 100% 30% 11% 13% 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 1 2 3 4 5 6 7 8 Total

Acertos VS Erros por Caso de Teste

Erros Acertos

positivas, conforme o esperado, e 6 respostas negativas, contabilizando então 87% de acertos e 13% de erros.

As análises anteriores demonstram que apesar de haver um limite na capacidade de interpretação da ferramenta, os resultados apresentados são suficientes para comprovar que o Google Dialogflow entrega uma ferramenta capaz de criar conversas dinâmicas e reais, e um modelo de chatbot mais complexo traz a possibilidade de uma experiência mais fluída e real.

7 CONCLUSÃO

Neste trabalho foi feito uma síntese sobre o que significa Inteligência Artificial, e foi traçada sua história, desde os tempos de Aristóteles e o silogismo, até Alan Turing e seu famoso trabalho publicado em 1950 conhecido como o Teste de Turing. Também foi registrado os conceitos de Processamento de Linguagem Natural e sua história. Para que um computador interprete uma frase de um usuário é necessário realizar várias análises, como análise fonológica caso a entrada seja oral, análise morfológica, sintática, semântica e pragmática. Cada análise desempenha um papel na hora de entender o que um usuário está falando.

Alguns chatbots que marcaram história foram mencionados, como Eliza ou A.L.I.C.E., que utilizam um modelo de comparações da entrada do usuário com seu banco de dados, ou outros como Julia que utiliza um modelo mais parecido com o Dialogflow, utilizando redes neurais em seu sistema.

A ferramenta escolhida para o desenvolvimento do chatbot, Google Dialogflow, foi escolhida a partir da Figura 2 – Quadrante Mágico do Gartner, devido a sua relevância no mundo tecnológico, seu posicionamento como visionário no quadrante e possuir um nível gratuito de utilização da ferramenta. Foi dedicado todo um capítulo (Capítulo 5) para explicar seus recursos e funcionalidades.

Após explicar como funciona o Google Dialogflow, foi descrito o processo de desenvolvimento do chatbot, desde a criação de uma conta para acesso a ferramenta, até o detalhamento das entities, e a lógica utilizada para criação dos intents.

Submetendo o chatbot a oito casos de teste diferentes, foi possível obter resultados de seu desempenho sob diferentes cenários, analisando então seu desempenho em cada caso. Foi observado que em alguns casos, como por exemplo no sexto caso de teste, que o chatbot não apresentou resultados satisfatórios, pois não conseguiu identificar a saudação do usuário e sua intenção de pedir uma pizza na mesma frase. Entretanto os casos de teste 1 ao 5, demonstram que o protótipo teve sucesso em manter uma conversa, inclusive o oitavo caso de teste, que apesar de ter recebido uma resposta não satisfatória, demonstra que o Google Dialogflow é uma ferramenta poderosa pronta para uso, que consegue até mesmo identificar frases com erros ortográficos.

No documento RENAN CAPARICA NORONHA (páginas 50-62)

Documentos relacionados