• Nenhum resultado encontrado

UFAM - Engenharia da Computação

N/A
N/A
Protected

Academic year: 2022

Share "UFAM - Engenharia da Computação"

Copied!
49
0
0

Texto

(1)

UFAM - Engenharia da Computação

DESENVOLVIMENTO DE UM ASSISTENTE PARA INFORMAÇÕES E LOCALIZAÇÕES NA UNIVERSIDADE FEDERAL DO AMAZONAS

William Almeida Robert

Monografia de Graduação apresentada à Coordenação de Engenharia da Computação, UFAM, da Universidade Federal do Amazonas, como parte dos requisitos necessários à obtenção do título de Engenheiro da Computação.

Orientadores: Eduardo James Pereira Souto

Manaus Dezembro de 2020

(2)

DESENVOLVIMENTO DE UM ASSISTENTE PARA INFORMAÇÕES E LOCALIZAÇÕES NA UNIVERSIDADE FEDERAL DO AMAZONAS

William Almeida Robert

MONOGRAFIA SUBMETIDA AO CORPO DOCENTE DO CURSO DE ENGENHARIA DA COMPUTAÇÃO DA UNIVERSIDADE FEDERAL DO AMAZONAS COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO.

Aprovada por:

________________________________________________

Prof. Dr. Eduardo James Pereira Souto

________________________________________________

Prof. Dr. Rafael Giusti

________________________________________________

Prof. Dr. André Luiz da Costa Carvalho

Manaus Dezembro de 2020

(3)

Robert, William Almeida

Desenvolvimento de um Assistente para Informações e Localizações na Universidade Federal do Amazonas/William Almeida Robert. - Manaus:

UFAM, 2020.

IX, 4 p.: il.; 29; 7cm.

Orientador: Eduardo James Pereira Souto

Monografia (graduação) - UFAM / Curso de Engenharia da Computação, 2020.

Referências Bibliográficas: p. 4 - 4.

1. Chatbot. 2. Processamento de Linguagem Natural. 3. Interface de usuário.

Principais. I. Eduardo James Pereira Souto

II. Universidade Federal do Amazonas, UFAM, Curso de Engenharia da Computação. III. Título.

(4)

Agradecimentos

Agradeço aos meus pais, Wilde Marinho Robert e Edna M. T. A. de Almeida Robert, que me proporcionaram todas as oportunidades de estudo e aprendizado que tive. Ao meio irmão Wilken Almeida Robert pelo apoio e suporte.

Agradeço ao meu orientador Professor Eduardo James Pereira Souto pela orientação neste projeto e oportunidades de aprendizado durante a jornada acadêmica.

Por fim agradeço a todos os professores que tive na Universidade Federal do Amazonas por todo o aprendizado, apoio, compreensão e incentivos que me deram nestes anos de graduação.

(5)

Resumo da Monografia apresentada à UFAM como parte dos requisitos necessários para a obtenção do grau de Engenheiro.

DESENVOLVIMENTO DE UM ASSISTENTE PARA INFORMAÇÕES E LOCALIZAÇÕES NA UNIVERSIDADE FEDERAL DO AMAZONAS

William Almeida Robert Dezembro/2020 Orientadores: Eduardo James Pereira Souto Curso: Engenharia da Computação

Este trabalho desenvolve um sistema de chatbot que atua como um assistente para dar informações institucionais e localizações na Universidade Federal do Amazonas. Para isso, foram utilizadas as linguagens de programação Python e JavaScript, além de técnicas e ferramentas de processamento de linguagem natural para identificação de intenções e entidades na fala do usuário. Também foi elaborada uma base de perguntas para treinar o modelo de chatbot, um banco de dados contendo informações das respostas e um conjunto de frases para realização de testes. A partir da avaliação do modelo foram obtidas métricas de desempenho que demostraram uma boa eficácia em reconhecer corretamente intenções e entidades na base de teste. Por meio destes resultados pôde-se demonstrar a boa capacidade do chatbot em cumprir o objetivo proposto ao retornar corretamente as informações solicitadas pelo usuário.

Palavras-chave: Processamento de Linguagem Natural, Chatbot, Intenção, Entidade.

(6)

Abstract of Monograph presented to UFAM as a partial fulfillment of the requirements for the degree of Engineer

DEVELOPMENT OF AN ASSISTANT FOR INFORMATION AND LOCATIONS AT THE FEDERAL UNIVERSITY OF AMAZONAS

William Almeida Robert December/2020

Advisors: Eduardo James Pereira Souto Course: Computer Engineering

This work develops a chatbot system that acts as an assistant to give institutional information and locations at the Federal University of Amazonas. For that, Python and JavaScript programming languages were used, as well as natural language processing techniques and tools to identify intentions and entities in the user's speech. A question base was also developed to train the chatbot model, a database containing information on the responses and a set of phrases for testing. Permonance metrics were obtained from the evaluation of the model, which demonstrated a good efficiency in correctly recognizing intentions and entities in the test base. Through these results, it was possible to demonstrate the chatbot's good ability to fulfill the proposed objective by correctly returning the information requested by the user.

Keywords: Natural Language Processing, Chatbot, Intent, Entity.

(7)

Lista De Figuras

Figura 1-Modelo generativo...15

Figura 2-Modelo baseado em recuperação...15

Figura 3-Modelo de conversação do chatbot...19

Figura 4-Exemplo de história para localização da reitoria...20

Figura 5-Interface para interação com o chatbot...21

Figura 6-Requisição POST da aplicação web enviando mensagem ao chatbot...22

Figura 7-Resposta do chatbot recebida pela aplicação web...22

Figura 8-Resultado da seleção da intent ‘icomp’ com nível de confiança...25

Figura 9-Exemplo de definição de intent e entities...26

Figura 10-Esquema do banco de dados contendo as respostas do chatbot...26

Figura 11-Action Informação retorna a resposta para a intenção atual...27

Figura 12-Action Localização retorna a resposta estruturada com as coordenadas de um local...28

Figura 13-Usuário perguntando uma localização...29

Figura 14-Exibição da localização solicitada em mapa Google...30

Figura 15-Demostração do chatbot em uma conversa sobre informação institucional...30

Figura 16-Exemplo de mensagens de teste para o modelo...32

(8)

Lista de Tabelas

Tabela 1-Intenções de informações sobre a UFAM...23

Tabela 2-Intenções de localizações na UFAM...24

Tabela 3-Classificação de Intenções...33

Tabela 4-Classificação das Entidades...34

(9)

Lista de Equações

Equação 1-Taxa de Acerto do classificador de intenções...31

Equação 2-Cálculo da métrica precisão...31

Equação 3-Cálculo da métrica revocação...32

Equação 4-Cálculo da métrica f1-score...32

(10)

Sumário

1 Introdução...10

1.1 OBJETIVOS...11

1.1.1 Objetivo Geral...11

1.1.2 Objetivos Específicos...11

1.2 ORGANIZAÇÃO DO DOCUMENTO...12

2 Referencial Teórico...13

2.1 PROCESSAMENTO DE LINGUAGEM NATURAL...13

2.2 COMPREENSÃO DE LINGUAGEM NATURAL...13

2.3 CHATBOT...14

2.3.1 Classificação de chatbots...14

2.3.1.1 Modelo Generativo...15

2.3.1.2 Modelo baseado em recuperação...15

2.3.2 Classificação de linguagem natural...16

2.3.2.1 Intenção...17

2.3.2.2 Entidade...17

3 Desenvolvimento do Chatbot...18

3.1 ARQUITETURA DO SISTEMA DE CHATBOT...18

3.2 DESCRIÇÃO DO MODELO...20

3.2.1 Formatação da Mensagem...21

3.3 GERAÇÃO DE CONVERSAS...23

3.3.1 Classificação das Intenções...23

3.3.2 Reconhecimento de Entidades...25

3.4 GERAÇÃO DAS RESPOSTAS...25

3.4.1 Informações Gerais...27

3.4.2 Localizações...28

3.5 APLICAÇÃO WEB...28

4 Resultados...31

4.1 PROTOCOLO EXPERIMENTAL...31

4.2 BASE DE DADOS...32

4.3 RESULTADOS...33

5 Conclusões e Trabalhos Futuros...35

(11)

Referências Bibliográficas...37

Apêndice A – Base de Teste...40

Apêndice B – Análise de Intenções...43

Apêndice C – Análise de Entidades...45

Apêndice D – Base de Treino...46

(12)

Capítulo 1

1 Introdução

No contexto de um mundo globalizado e cada vez mais conectado, torna-se indispensável o uso de tecnologias de informação e comunicação em nosso cotidiano. Dentre diversas inovações que melhoram o acesso às informações destacam-se os sistemas de chatbots. Esses sistemas simulam uma interação semelhante à humana, conversando de maneira empática e trazendo as interações homem-máquina próximas às interações entre pessoas (NAOUS; HOKAYEM; HAJJ, 2020).

O interesse por tecnologia de chatbot tem crescido de forma expressiva com uso de assistentes em sites na web e outras aplicações. Grandes empresas também apostam na comercialização de suas assistentes como Siri(Apple)1, Cortana(Microsof)2, Alexa(Amazon)3, Google Assistant(Google)4 (AUGELLO; GENTILE; DIGNUM, 2017). Os chatbots já são usados em diversos contextos na nossa sociedade como na educação e ensino a distância (EaD)(BARROS; GUERREIRO, 2019), na área da saúde em tratamento de doenças crônicas (OLIVEIRA et al., 2019), no comércio eletrônico (NURSETYO; SETIADI; SUBHIYAKTO, 2018), dentre outros. Essa tecnologia também é aplicada em locais públicos como parques, shoppings e museus, com intuito de fornecer informações às pessoas que passam por esses locais.

Na Universidade Federal do Amazonas (UFAM), por possuir uma área extensa, é comum que pessoas que transitam pelo campus não saibam a localização de um departamento, bloco ou restaurante, por exemplo. Muitos alunos, especialmente os recém- ingressos, também possuem dificuldade para acessar informações sobre a universidade como departamentos, calendários, programas institucionais, dentre outros.

1 Assistente pessoas Siri: Disponível em: https://www.apple.com/br/siri/

2 Assistente pessoas Cortana: Disponível em: https://www.microsoft.com/pt-br/windows/cortana 3 Assistente pessoas Alexa: Disponível em: https://developer.amazon.com/pt-BR/alexa

4 Assistente pessoas Google Assistent: Disponível em: https://assistant.google.com/

(13)

Tendo em vista que esses empecilhos trazem dificuldades à comunidade acadêmica e ao público que frequenta a universidade, este projeto visa a elaboração de um sistema de chatbot que atue como um assistente para obter localizações e informações ao público na UFAM.

1.1 OBJETIVOS

1.1.1 Objetivo Geral

Este trabalho tem como objetivo geral o desenvolvimento de um sistema de chatbot capaz auxiliar a comunidade acadêmica na consulta de informações institucionais e localizações dentro da Universidade Federal do Amazonas.

1.1.2 Objetivos Específicos

● Desenvolver um módulo de sistema para detecção de intenções e entidades para mensagens do usuário.

● Criar uma base de treino contendo modelos de perguntas que o sistema deve receber.

● Criar uma base de dados com informações da UFAM para geração das respostas do chatbot.

● Elaborar uma interface de usuário que permita a interação do público com o chatbot.

(14)

1.2 ORGANIZAÇÃO DO DOCUMENTO

Este trabalho encontra-se organizado organizado em cinco capítulos:

● Capítulo 2: Fundamentação teórica que aborda os conceitos utilizados na elaboração do projeto, contendo as definições de processamento de linguagem natural, modelos de construção do chatbot e classificação de intenções e entidades.

● Capítulo 3: Aborda o desenvolvimento do projeto, elaboração do chatbot e interface de usuário.

● Capítulo 4: Descreve a elaboração dos experimentos de avaliação de desempenho do modelo criado e análise dos resultados.

● Capítulo 5: Apresenta a conclusão do trabalho, considerações finais e trabalhos futuros.

(15)

Capítulo 2

2 Referencial Teórico

2.1 PROCESSAMENTO DE LINGUAGEM NATURAL

O processamento de linguagem natural (PLN) pode ser definido por um conjunto de técnicas computacionais para análise automática e representação da linguagem humana (CAMBRIA; WHITE, 2014). Também conhecida por linguística computacional, o PLN pode ser utilizado para propósitos como a comunicação entre humano e máquina, ou mesmo entre humanos, como nos tradutores de idioma automáticos (HIRSCHBERG; MANNING, 2015).

O PLN é um campo interdisciplinar. Ele combina a ciência da computação, inteligência artificial, ciência cognitiva, dentre outros. Entre suas principais aplicações incluem-se o reconhecimento de fala, análise léxica, tradução de máquina, análise de sentimentos etc(DENG; LIU, 2018).

2.2 COMPREENSÃO DE LINGUAGEM NATURAL

Os serviços de Compreensão de Linguagem Natural (do inglês, Natural Language Understandig) tem se tornado cada vez mais populares. Esses serviços se baseiam na extração de informações estruturadas a partir de entradas de linguagem natural não estruturada dos usuários. (BRAUN et al., 2017). Dessa forma, a NLU consegue extrair padrões de uma frase dita por uma pessoa, podendo identificar palavras-chave de intenções.

Alguns dos serviços mais populares de NLU atualmente são: DialogFlow5, Amazon Lex6,

5 DialogFlow, disponível em: https://dialogflow.cloud.google.com/

6 Amazon Lex, disponível em: https://aws.amazon.com/pt/lex/

(16)

Rasa7. Este último é um dos mais populares pois, diferentes dos demais, é um projeto de código aberto e possibilita um maior controle dos dados utilizados no modelo.

2.3 CHATBOT

O uso de interfaces chatbot tem se tornado muito comum ultimamente. Parte dessa popularização pode ser atribuída, em grande parte, pelos avanços no aprendizado de máquina (ML), popularização das plataformas de chat e Compreensão de Linguagem Natural como um serviço(BRAUN et al., 2017).

2.3.1 Classificação de chatbots

Atualmente existem diversos parâmetros que podem ser utilizados para a classificação de um chatbot. Umas das classificações utilizadas é o conceito de domínio aberto e domínio fechado. Em um domínio aberto o chatbot pode falar de quaisquer assuntos e responder adequadamente. No domínio fechado, o chatbot é especializado em responder assuntos específicos e pode falhar em outros assuntos (NAZ; ÖZDEMIR; ZEYDAN, 2018).

Embora no domínio aberto, o modelo se propõe a abordar qualquer tipo de assunto, ele ainda depende de um conjunto de regras específicas para funcionar. Por tentar abranger escopos muito grandes, ele acaba não gerando respostas satisfatórias em diversos casos.

No domínio fechado, os chatbots possuem aplicações específicas como: e-commerce, assistente de banco, guia informativo, entre outros. Ao atuar em escopos limitados, esses sistemas conseguem operar em suas áreas de maneira muito mais eficiente e precisa. Os chatbots de domínio fechado podem ser descritos como modelo generativo ou modelo baseado em recuperação.

7 Rasa, disponível em: https://rasa.com/

(17)

2.3.1.1 Modelo Generativo

O modelo generativo (Figura 1) é capaz analisar e aprender com as mensagens de entrada detectando padrões no texto. Isto permite que novas respostas sejam geradas além das resposta predefinidas (BROWNLEE, 2019). Desta forma, o modelo generativo é capaz de retornar respostas novas que não foram previamente inseridas no modelo.

O modelo é baseado em uma aproximação da distribuição dos dados de treino de tal forma que ele seja o mais próximo possível destes dados(LI et al., 2018). No entanto, para que que o modelo consiga gerar respostas de forma satisfatória, é necessária uma grande quantidade de dados de diálogos para treino. Se a base de treino for muito pequena, o modelo pode gerar diversos erros gramaticais(KIM et al., 2018).

2.3.1.2 Modelo baseado em recuperação

O modelo baseado em recuperação (Figura 2) atua com um conjunto pré-definido de resposta. Ele é capaz de retornar a resposta mais adequada para cada pergunta feita.

(SHRIDHAR, 2017).

Figura 1-Modelo generativo.

(18)

Quando recebe uma entrada do usuário, o modelo baseado em recuperação retorna candidatos às respostas a partir de um banco de respostas e faz uma ranqueamento das que possuem maior similaridade de contexto com a resposta certa (YU WU et al., 2018). Na maioria das vezes, as repostas fornecidas pelo modelo são bem estruturadas, uma vez que são escritas por seres humanos e não geradas pelo modelo. No enteando, se o modelo não for capaz de ranquear corretamente as similaridades entre perguntas e respostas, ele pode retornar respostas fora de contexto(ZHANG et al., 2020). Uma vez que o modelo é altamente dependente das respostas pré-definidas, sua otimização está atrelada ao aumento da base de respostas e dos contextos definidos.

2.3.2 Classificação de linguagem natural

Para um chatbot compreender uma mensagem em linguagem natural, ele precisa utilizar técnicas de extração de características e padrões em seus termos. Para isso, o modelo procura classificar os termos na mensagem e compreender seu significado. A classificação é feita a fim de identificar as Intenções e as Entidades.

Figura 2-Modelo baseado em recuperação.

(19)

2.3.2.1 Intenção

No contexto de sistemas de chatbot, o termo ‘intenção’ (do inglês intent) pode ser definido como o motivo ou a razão do usuário. É a intenção do que ele busca a partir da mensagem dita e do que ele espera receber a partir da interação com o chatbot. Tomando como exemplo um sistema de chatbot para reservas em hotéis, se a mensagem do usuário for:

“procurando um hotel 1 fev – 3 fev”, podemos dizer que a intenção dele é “buscar hotel”. Se o chatbot extrair corretamente essa intenção da mensagem, ele deve retornar resultados de hotéis ao usuário(LI et al., 2019).

Para classificar uma intenção, faz-se o uso de funções classificadoras. Uma das mais comuns é a máquina de vetores de suporte (SVM). Ela é uma ferramenta de aprendizado de máquina supervisionado que gera um hiperplano que divide as amostras em categorias (CAHN, 2017). Logo, o SVM procura criar categorias que englobem os dados de entrada de maneira que os dados semelhantes fiquem na mesma categoria.

2.3.2.2 Entidade

Uma entidade para um sistema de chatbot é um repositório de várias informações similares que ficam agrupadas por categorias como: nome, idade, sexo, local, data, etc. Os chatbots utilizam esses dados como um conhecimento prévio para tentar identificar termos específicos nas mensagens do usuário(JURCZYK, 2019).

Uma das técnicas utilizadas para detecção de entidades é o reconhecimento de entidades por nome (NER). Para fazer o reconhecimento são criados rótulos para elementos nas frases como: pessoas, lugares, grupos, locais etc. Por exemplo, na frase: ‘Jhon comprou duas mil ações da Microsoft em julho’, podemos rotular os termos da forma: ‘Jhon’ – nome,

‘duas mil’ – número, ‘Microsoft’ – organização, ‘julho’ – data (CAHN, 2017).

Outra maneira de fazer o reconhecimento das entidades é através do Conditional random fields (CRF). Os CRF são modelos estatísticos que levam em consideração as características intermediárias entre os rótulos da NER (LEE; CHOI, 2018).

No desenvolvimento do modelo proposto neste projeto, utilizou-se o CRF para reconhecimento de entidades nas frases visto que ele possui um bom desempenho para entiedades customizadas.

(20)

Capítulo 3

3 Desenvolvimento do Chatbot

Neste capítulo será apresentado um modelo de chatbot capaz de auxiliar o público da Universidade Federal do Amazonas com informações gerais da instituição e localização de departamentos e setores do campus.

O modelo apresentado consegue diferenciar as intenções do usuário dentro do contexto de uma frase em linguagem natural. Ele considera as perguntas feitas pelos usuário em duas categorias: informações gerais sobre a universidade e localização no campus.

Uma vez delimitado o escopo da aplicação, optou-se pela utilização de um domínio fechado. Nesse contexto, o sistema é capaz de produzir conversas para problemas particulares definidos entre informações e localizações da Ufam. Mensagem introduzidas pelo usuário que estejam fora desse contexto serão consideradas como fora do escopo, respondendo ao usuário que não conseguiu compreender.

O sistema foi implementado na linguagem de programação Python e Javascript utilizando-se bibliotecas existentes de aprendizado de máquinas e frameworks de código aberto como o RASA NLU8, uma ferramenta para classificação de intenções e extração de entidades.

3.1 ARQUITETURA DO SISTEMA DE CHATBOT

O chatbot implementado neste projeto é um modelo baseado em recuperação (do inglês Retrieval-Based Model) previamente treinado para retornar a melhor resposta em um

8 Ferramente RASA NLU. Disponível em: https://www.chatbot.com/help/overview/what-is-entity

(21)

conjunto de respostas predefinidas. A Figura 3 demonstra a forma como o modelo de conversação interpreta uma mensagem do usuário e gera uma resposta.

Figura 3-Modelo de conversação do chatbot.

(22)

3.2 DESCRIÇÃO DO MODELO

A construção do chatbot é baseada no modelo de histórias. Nesse contexto, uma história pode ser definida como um conjunto de interações entre o usuário e o assistente, ou seja, cada história é um caminho por onde uma conversa pode seguir. A Figura 4 apresenta um modelo de história que seria seguida caso o usuário quisesse obter a localização da reitoria da UFAM.

Nessa aplicação o usuário interage no front end de uma aplicação web executada em um navegador de internet. Esta é projetada para receber entradas de texto do teclado e exibir as mensagens na tela conforme visto na Figura 5.

Figura 4-Exemplo de história para localização da reitoria.

(23)

3.2.1 Formatação da Mensagem

Durante o funcionamento da aplicação é executado um serviço local HTTP do modelo de conversação utilizando a biblioteca Rasa. Ao mesmo tempo a interface web roda em um navegador de internet exibindo a tela de conversa. As duas partes da aplicação se comunicam através de métodos GET e POST utilizando API REST. Podemos observar um envio de mensagem ao chatbot na Figura 6 utilizando o método POST.

Figura 5-Interface para interação com o chatbot.

(24)

Quando uma resposta é enviada pelo chatbot, a aplicação web verifica se o texto inicia com “loc:”. Isto indica que a resposta é uma localização (Figura 7). Nesse caso, os valores de latitude e longitude são extraídos da mensagem e armazenados em variáveis do tipo ponto flutuante (float). Em seguida são utilizadas para exibir a localização em um mapa. Caso ela não inicie nesse formato, a mensagem é simplesmente exibida na interface do usuário como resposta à pergunta realizada.

Figura 6-Requisição POST da aplicação web enviando mensagem ao chatbot.

Figura 7-Resposta do chatbot recebida pela aplicação web.

(25)

3.3 GERAÇÃO DE CONVERSAS

Ao iniciar uma conversa, o assistente apresentará uma breve mensagem instrutiva requisitando que o usuário faça uma pergunta. A mensagem digitada é enviada da Interface de Usuário (UI) para o serviço Rasa. No início, a mensagem será processada pelo núcleo da ferramenta, o Natural Language Undertanding (NLU). Nesse ponto, o texto introduzido será transformado em dados estruturados. Para que isso seja possível, fornecemos previamente ao modelo exemplos de treinamento que são semelhantes às mensagem que o sistema espera receber. Os exemplos utilizados para treinar a base estão disponíveis no Apêndice D.

Dentro do escopo das intenções definas para o modelo, existem diversos grupos de exemplos de mensagens relacionadas àquele contexto específico compondo a base de treinamento. A NLU utiliza esses dados para classificar o texto que vem do usuário. O classificador do sistema utiliza a técnica de supervised embeddings. Essa técnica realiza o mapeamento dos termos em representações vetoriais de números reais. Dessa maneira, é possível capturar os aspectos semânticos e sintáticos das palavras. Como consequência, as palavras semelhantes entre a mensagem e o modelo de treino possuirão representações vetoriais semelhantes.

3.3.1 Classificação das Intenções

No modelo proposto, o uso das intenções ocorre de maneira especifica pra cada tipo de pergunta delimitada dentro do escopo de respostas possíveis. Ou seja, há uma intenção para cada resposta final que o chatbot pode retornar.

As intenções podem ser referentes às perguntas gerais como: “Quem é o reitor da UFAM” ou “Quando a UFAM foi fundada”, conforme mostrado na Tabela 1.

Tabela 1-Intenções de informações sobre a UFAM

Intenção Descrição

Fim do Período Informa a data do fim do periodo atual.

(26)

Fundação da UFAM Informa a data de fundação da Ufam

Reitor Informa o nome do reitor atual da Ufam

Informações Exibe os principais sites de informações da UFAM

As intenções podem também se referir às localizações: “Onde fica o Icomp”, “Como eu chego na FD”. Nesses casos, a intenção se refere a uma coordenada geográfica do local informado, conforme a Tabela 2.

Tabela 2-Intenções de localizações na UFAM

Intenção Descrição

Icomp Informa as coordenadas do Icomp

Reitoria Informa as coordenadas da reitoria

Faculdade de Direito Informas as coordenadas da faculdade de direito.

Faculdade de Tecnologia Informa as coordenadas da Faculdade de Tecnologia

Restaurante Universitário Informa as coordenadas do restaurante universitário

Banco do Brasil Informa as coordenadas do Banco do Brasil Banco Santander Informa as coordenadas do Banco Santander

Zezinho Informa as coordenadas do restaurante zezinho

CETELI Informa as coordenadas do CETELI

A NLU compara os vetores de mensagens e atribui um nível de confiança da classificação relacionando cada mensagem a uma intenção. Ou seja, atribui-se numericamente nível de confiança daquela mensagem pertencer a uma determinada intenção. Por fim, a NLU retorna a intenção com o maior número de confiança. Na Figura 8 podemos observar a seleção da intenção ‘icomp’ e o nível de confiança para a pergunta ‘onde fica o instituto de computação’.

Figura 8-Resultado da seleção da intenção ‘icomp’ com nível de confiança.

(27)

3.3.2 Reconhecimento de Entidades

Uma vez que o modelo proposto possui uma abordagem de utilização de intenções com alta especificidade para cada tipo de pergunta, utiliza-se aqui basicamente dois tipos de entidades: info e loc. A entidade info é utilizada para classificar todas as perguntas de informações gerais. Por exemplo, em uma das perguntas utilizadas para treino do modelo:

‘Quem é o reitor?’, a palavra ‘reitor’ é o valor da entidade info.

De maneira semelhante, ao perguntar por localizações, define-se os valores das frases como uma entidade do tipo loc. Na frase ‘Onde fica a reitoria’, a palavra ‘reitoria’ é definida como o valor da entidade loc.

3.4 GERAÇÃO DAS RESPOSTAS

Por estarmos utilizando um modelo de recuperação, as respostas do chatbot são pré- definidas. Para decidir qual resposta deve ser tomada, é feita a utilização das intenções e entidades. Na definição do escopo de treino do modelo, são definidas diversas opções de frases que podem ser ditas para cada intenção. Na Figura 9, observamos que para a intenção

‘faculdade_de_direito’ há três exemplos de perguntas referentes a esta localização. Nessa abordagem, o modelo considera todas as palavras entre colchetes como valores da entidade loc e intenção faculdade_de_direito.

(28)

O uso de diferentes valores para a mesma entidade (loc) permite que uma pergunta feita pelo usuário que seja uma variação ou combinação das perguntas definidas na Figura 9 também possa ser reconhecida pelo modelo. Ou seja, se for feita a pergunta ‘como eu chego na fd’, o modelo é capaz de entender que se trata da intent faculdade_de_direito.

Uma vez detectada a intenção da pergunta, faz-se uso das ações. Elas são métodos que podem ser definidos para executar uma determinada ação em resposta à entrada do chatbot.

Dado que o modelo proposto atua com duas entidades, informações e localizações, fez-se o uso de duas ações para responder a cada uma delas.

As respostas para as perguntas ficam armazenadas em um banco de dados SQlite9 contendo duas tabelas: ‘informações’ e ‘locais’. Um esquema do banco de dados pode ser visto na Figura 10.

9 Banco de dados SQLite. Disponíel em: https://www.sqlite.org/

Figura 9-Exemplo de definição de intent e entities.

Figura 10-Esquema do banco de dados contendo as respostas do chatbot.

(29)

3.4.1 Informações Gerais

Considerando o contexto de uma história, uma vez que a intenção da pergunta é detectada como uma informação, faz-se a chamada da action_informacao (Figura 11). A action faz uma conexão com o banco de dados contendo as respostas e extrai o nome da intent que será utilizada para encontrar a resposta no banco. A função get_info realiza uma query SQL do tipo select na tabela ‘informações’ para pegar o campo ‘mensagem’ onde a ‘info’ é igual ao nome da intent. Por fim a resposta é exibida para o usuário.

Figura 11-Action Informação retorna a resposta para a intenção atual.

(30)

3.4.2 Localizações

De maneira semelhantes às informações gerais, em uma história com intent de localização, será chamada a action Localizacao.(Figura 12). O método faz a conexão com o banco de dados e extrai a intent atual. A função get_coord faz uma query select no banco para pegar os campos ‘latitude’ e ‘longitude’ onde o valor de na coluna ‘nome’ é igual à intent atual.

3.5 APLICAÇÃO WEB

Figura 12-Action Localizacão retorna a resposta estruturada com as coordenadas de um local.

(31)

A implementação de uma interface web foi realizada com intuito de trazer mais familiaridade para o usuário ao utilizar o chatbot. Além disso, parte da funcionalidade do modelo proposto depende de uma aplicação visual.

Ao fazer uma pergunta de localização (Figura 13), o chatbot apenas retornará uma mensagem textual com as coordenadas do local. Para exibir a localização em um mapa ao usuário, a aplicação web utiliza a API Maps JavaScript10 do Google Cloud11. Ela possibilita a exibição de mapa do Google Maps12 com um marcador de localização sobre as coordenadas que foram passadas pelo ChatBot (Figura 14).

10 API Maps JavaScript, disponível em: https://developers.google.com/maps/documentation/javascript 11 Google Cloud, disponível em: https://cloud.google.com/

12 Google Maps, disponível em: https://www.google.com.br/maps

Figura 13-Usuário perguntando uma localização

(32)

Quando o usuário pergunta uma informação institucional sobre a universidade, o chatbot retorna as informações na própria tela de mensagem conforme a Figura 15.

Figura 14-Exibição da localização solicitada em mapa Google

Figura 15-Demostração do chatbot em uma conversa sobre informação

institucional.

(33)

Capítulo 4

4 Resultados

4.1 PROTOCOLO EXPERIMENTAL

A fim de avaliar o modelo de chatbot apresentado, foram realizados testes para verificar a eficácia dos classificadores de intenção e de entidade.

Para avaliação do classificador de intenção, foram utilizadas quatro métricas de desempenho: Taxa de acerto, precisão, revocação, f1-score.

A Taxa de Acerto é uma comparação percentual do número de acertos sobre o numero total de testes para uma mesma intenção.

O cálculo da Taxa de Acerto é dado pela seguinte equação:

A métrica precisão relaciona a ocorrência de resultados verdadeiros positivos (predições corretas) e falsos positivos (mensagens classificadas como a intenção atual mas que na verdade é outra qualquer). A precisão pode ser calculada conforme a Equação 2.

A métrica revocação considera a fração da intenção ou entidade que foi corretamente classificada. Para isso, faz-se a relação entre verdadeiros positivos e falso negativos (valores

Equação 2-Cálculo da métrica precisão Precision= verdadeiros positvos

verdadeiros positvos+falsos positivos Equação 1-Taxa de Acerto do classificador de intenções.

Taxa de Acerto(%)=Intenções classificadas corretamente Total de amostras da Intenção ×100

(34)

que deveriam ter sido classificados como corretos mas foram classificados como incorretos).

A revocação pode ser calculada conforme a Equação 3.

Por fim, a métrica f1-score é calculada a partir da média harmônica das métricas precisão e revocação. Está métrica avalia a acurácia do modelo levando em conta a precisão e revocação com a mesma prioridade. Ela é calculada conforme a Equação 4.

4.2 BASE DE DADOS

Para testar o modelo, foi criada uma base de teste (Apêndice A) contendo 130 exemplos de mensagens (10 para cada intenção). A base de testes foi criada em um arquivo de texto utilizando a linguagem de marcação Markdown. A Figura 16 apresenta um exemplo de várias mensagens de teste para uma determinada intenção. Neste exemplo, as palavras entre colchetes indicam que estes termos são valores representados pela entidade entre parênteses.

Equação 3-Cálculo da métrica revocação

Recall= verdadeiros positvos

verdadeiros positvos+falsos negativos

Equação 4-Cálculo da métrica f1-score F1Score=Precision×Recall

Precision+Recall

(35)

Para gerar os resultados, foi utilizada a ferramenta rasa test nlu, da biblioteca do RASA NLU.

A ferramenta utiliza SVM para classificar as intenções e CRF para classificar as entidades.

Ela recebe como parâmetro a base de teste (Apêndice A), aplica as mensagens no modelo treinado e avalia os erros e acertos de cada teste. No fim, são gerados relatórios contendo as métricas descritas no item 4.1 avaliando o desempenho de todas intenções (Apêndice B) e o desempenho das entidades (Apêndice C).

4.3 RESULTADOS

A Tabela 3 mostra os resultados das métricas de avaliação, apresentadas no item 4.1, para o modelo referente às amostras de cada intenção.

Tabela 3-Classificação de Intenções Intenção Amostras Acertos

Taxa de Acerto

(%)

Precisã o

Revocação f1- score

ceteli 10 10 100 1 1 1

reitoria 10 10 100 0.77 1 0,87

faculdade_de_tecnologia 10 10 100 1 1 1

info_fundacao 10 10 100 1 1 1

info_geral 10 9 90 1 0,9 0,95

info_reitor 10 7 70 1 0,7 0,82

Figura 16-Exemplo de mensagens de teste para o modelo

(36)

info_fimPeriodo 10 10 100 1 1 1

faculdade_de_direito 10 10 100 1 1 1

icomp 10 10 100 1 1 1

ru 10 10 100 1 1 1

banco_do_brasil 10 10 100 0 1 0

santander 10 9 90 1 0 0

zezinho 10 10 100 1 1 1

De acordo com os dados apresentados na Tabela 3, temos que a média da Taxa de Acerto é de 96,15%. A média da métrica precisão é de 97,46%. A média da métrica revocação é de 96,15%. Por fim, temos como média da métrica f1-score o valor de 96,46%.

Esses valores indicam que o chatbot consegue interpretar corretamente a grande maioria dos testes e classificar corretamente as intenções do usuário. A intenção info_reitor que apresentou o pior resultado em comparação com os demais ainda teve uma taxa de acerto maior que 70%. No entanto esse valor foi inferior pois em alguns casos o classificador interpretou esta intenção como a info_reitor. Ainda assim, o resultado geral demonstra uma boa confiabilidade do modelo.

Tabela 4-Classificação das Entidades

Entidade Precisão Revocação f1-score

info 0,8 0,88 0,83

loc 0,97 0,91 0,94

A Tabela 4 apresenta os resultados das métricas de desempenho das duas entidades utilizadas neste modelo, info e loc. A métrica precisão apresenta um valor médio de 88,5%.

Para a revocação o modelo obteve uma média de 89,5%. Para o f1-score obtivemos média de 88,5%. Estes valores indicam uma boa confiabilidade em classificar corretamente as entidades na maioria das mensagens nos testes realizados. Os resultados também sugerem que o chatbot será capaz se acertar a maioria das mensagens de usuário dentro do escopo de de informações que o modelo atende.

(37)

Capítulo 5

5 Conclusões e Trabalhos Futuros

Este trabalho propôs o desenvolvimento de um sistema de chatbot capaz de fornecer informações e localizações ao público que frequenta a Universidade Federal do Amazonas.

Com a utilização de técnicas de processamento de linguagem natural, linguagem de programação Python, do framework RASA e a linguagem JavaScript, foi possível elaborar um sistema interativo de conversação que cumpre o objetivo esperado.

O chatbot desenvolvido tem o potencial de facilitar a rotina da comunidade acadêmica por ser uma ferramenta de fácil utilização que centraliza informações e procura compreender as necessidades dos usuários durante o uso.

O desenvolvimento dessa ferramenta trouxe alguns desafios como: a definição das ferramentas e linguagens que seriam melhor aplicadas para atender às especificidades do projeto e a elaboração de uma interface de usuário simples e intuitiva que pudesse atender a um público diverso. Também houve a necessidade da criação de base de perguntas esperadas que pudesse treinar a ferramenta adequadamente a fim possibilitar a compreensão das diversas formas que um usuário pode interagir com o chatbot. No entanto, por meio das pesquisas, estudos e testes realizados, foi possível a seleção das ferramentas que melhor se adequavam às características do modelo proposto. Também foram alcançado bons resultados quanto à eficiência de compreensão das mensagens e usabilidade da interface do usuário.

Conforme os resultados demonstrados na sessão 4.3, o modelo apresentou uma boa taxa de acertos para a base de teste. Para a reconhecimento de intenções, o modelo atingiu uma taxa de acertos média de 95,15%, precisão de 97,46%, revocação de 95,15% e f1-score de 96,46%. Para o reconhecimento de entidades, o modelo obteve os valores médios de precisão em 88,5%, revocação em 89,5% e f1-score de 88,5%. Dessa maneira, sendo eficaz em reconhecer adequadamente as intenções e entidades da fala do usuário, o chatbot é capaz

(38)

de compreender corretamente a maioria das perguntas e retornar a informação esperada ao usuário.

Como proposta de melhorias para futuros trabalhos, sugere-se expansão da base de informações e locais aos quais o chatbot consegue atender. Propõe-se também a implementação de um modelo generativo capaz de criar novas respostas que não tenham sido pré-definidas.

(39)

Referências Bibliográfica

AUGELLO, A.; GENTILE, M.; DIGNUM, F. An overview of open-source chatbots social skills. International Conference on Internet Scienc. Springer, Cham, p. 236–248, 2017.

BARROS, D. M. V.; GUERREIRO, A. M. Novos desafios da educação a distância:

programação e uso de Chatbots. Revista Espaço Pedagógico, v. 26, n. 2, p. 410–431, 2019.

BRAUN, D. et al. Evaluating Natural Language Understanding Services for Conversational Question Answering Systems. Proceedings of the 18th Annual SIGdial Meeting on Discourse and Dialogue. Anais... In: PROCEEDINGS OF THE 18TH ANNUAL SIGDIAL MEETING ON DISCOURSE AND DIALOGUE. Saarbrücken, Germany:

Association for Computational Linguistics, 2017Disponível em:

<http://aclweb.org/anthology/W17-5522>. Acesso em: 18 dez. 2020

chatbotsBROWNLEE, J. A Gentle Introduction to Generative Adversarial Networks (GANs). Disponível em: <https://machinelearningmastery.com/what-are-generative- adversarial-networks-gans/>. Acesso em: 18 dez. 2020.

CAHN, J. CHATBOT: Architecture, Design, & Development. University of Pennsylvania School of Engineering and Applied Science Department of Computer and Information Science, p. 46, 2017.

CAMBRIA, E.; WHITE, B. Jumping NLP Curves: A Review of Natural Language Processing Research. IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE, 2014.

DENG, L.; LIU, Y. Deep Learning in Natural Language Processing. [s.l.] Springer, 2018.

HIRSCHBERG, J.; MANNING, C. Advances in natural language processing. SCIENCE, 2015.

JURCZYK, L. Entities. Disponível em: <https://www.chatbot.com/help/overview/what-is-

(40)

entity/>. Acesso em: 18 dez. 2020.

KIM, J. et al. Two-Step Training and Mixed Encoding-Decoding for Implementing a Generative Chatbot with a Small Dialogue Corpus. Proceedings of the Workshop on Intelligent Interactive Systems and Language Generation (2IS&NLG)., 2018.

LEE, W.; CHOI, J. Connecting Distant Entities with Induction through Conditional Random Fields for Named Entity Recognition: Precursor-Induced CRF. Proceedings of the Seventh Named Entities Workshop. Anais... In: PROCEEDINGS OF THE SEVENTH NAMED ENTITIES WORKSHOP. Melbourne, Australia: Association for Computational Linguistics, 2018Disponível em: <http://aclweb.org/anthology/W18-2402>. Acesso em: 18 dez. 2020

LI, B. et al. Real-world Conversational AI for Hotel Bookings. arXiv:1908.10001 [cs, stat], 26 ago. 2019.

LI, Y. et al. A Generative Model for category text generation. v. 450, p. 301–315, 2018.

NAOUS, T.; HOKAYEM, C.; HAJJ, H. Empathy-driven Arabic Conversational Chatbot.

Proceedings of the Fifth Arabic Natural Language Processing Workshop, p. 58–68, 2020.

NAZ, A.; ÖZDEMIR, A.; ZEYDAN, E. An overview of artificial intelligence based chatbots and an example chatbot application. 26th Signal processing and communications applications conference (SIU).IEEE, p. 1–4, 2018.

NURSETYO, A.; SETIADI, D. R. I. M.; SUBHIYAKTO, E. R. Smart Chatbot System for E-Commerce Assitance based on AIML. . In: 2018 INTERNATIONAL SEMINAR ON RESEARCH OF INFORMATION TECHNOLOGY AND INTELLIGENT SYSTEMS (ISRITI). Yogyakarta, Indonesia: IEEE, nov. 2018Disponível em:

<https://ieeexplore.ieee.org/document/8864349/>. Acesso em: 19 dez. 2020

OLIVEIRA, N. et al. HelpCare: Um Protótipo de ChatBot para o Auxílio do Tratamento de Doenças Crônicas. . In: ANAIS DO SIMPÓSIO BRASILEIRO DE COMPUTAÇÃO APLICADA À SAÚDE. Brasil: Sociedade Brasileira de Computação - SBC, 11 jun.

(41)

2019Disponível em: <https://sol.sbc.org.br/index.php/sbcas/article/view/6263>. Acesso em:

19 dez. 2020

SHRIDHAR, K. Rule based bots vs AI bots. Disponível em:

<https://medium.com/botsupply/rule-based-bots-vs-ai-bots-b60cdb786ffa>. Acesso em: 13 dez. 2020.

YU WU et al. Response selection with topic clues for retrieval-based chatbots.

Neurocomputing, v. 316, p. 251–261, 2018.

ZHANG, L. et al. Retrieval-Polished Response Generation for Chatbot. IEEE Access, v. 8, p.

123882–123890, 2020.

(42)

Apêndice A – Base de Teste

(43)
(44)
(45)

Apêndice B – Análise de Intenções

(46)
(47)

Apêndice C – Análise de Entidades

(48)

Apêndice D – Base de Treino

(49)

Referências

Documentos relacionados

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE EDUCAÇÃO FÍSICA E DESPORTOS. 42 Ramon Matheus dos

E mesmo quando “os abegões não surgem na lista da décima integrados nas herdades, sendo o lançamento feito no interior dos núcleos populacionais”, como era o caso

O desenvolvimento de uma revisão sistemática que possa identificar, sumarizar e ainda quantificar os fatores preditores existentes para PNVM auxiliará no entendimento destes

No caso em estudo, observa-se que 65% das famílias são compostas por quatro ou mais moradores, ou seja, são entregues moradias consideradas inadequadas, ou ainda

Este trabalho tem como objetivo geral avaliar a quantidade de água pluvial que pode ser aproveitada após infiltrar em um pavimento permeável de concreto

Os Coordenadores Setoriais, enquanto professores, procuram dar o exemplo, mas deixam claro que encontram, no seu percurso como extensionistas, esse elemento dificultador;  O

1) Serem de sua autoria o croqui e o protótipo entregues à PROEXT, bem como cede e transfere para a Universidade de Rio Verde - UniRV, sem quaisquer ônus e em