• Nenhum resultado encontrado

Chat Bot – o diagnóstico de bolso

N/A
N/A
Protected

Academic year: 2021

Share "Chat Bot – o diagnóstico de bolso"

Copied!
160
0
0

Texto

(1)

Universidade de Tr´

as-os-Montes e Alto Douro

Chat Bot – o Diagn´

ostico de Bolso

Disserta¸c˜

ao de Mestrado em Engenharia Inform´

atica

Por

Duarte Rui Afonso Gomes Tavares do Amaral

Orientador: Professor Doutor Eduardo Jos´

e Solteiro Pires

Co-orientador: Professor Doutor Jos´

e Paulo Barroso de Moura

Oliveira

(2)
(3)

Chat Bot – o Diagn´

ostico de Bolso

Por

Duarte Rui Afonso Gomes Tavares do Amaral

Orientador: Professor Doutor Eduardo Jos´

e Solteiro Pires

Co-orientador: Professor Doutor Jos´

e Paulo Barroso de Moura

Oliveira

Disserta¸c˜ao submetida `a

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO para obten¸c˜ao do grau de

MESTRE

em Engenharia Inform´atica, de acordo com o disposto no

Regulamento Geral dos Ciclos de Estudo Conducentes ao grau de Mestre da Universidade de Tr´as-os-Montes e Alto Douro

(4)
(5)

Orienta¸c˜ao Cient´ıfica :

Professor Doutor Eduardo Jos´e Solteiro Pires

Professor Auxiliar com Agrega¸c˜ao do Departamento de Engenharias

Universidade de Tr´as-os-Montes e Alto Douro

Professor Doutor Jos´e Paulo Barroso de Moura Oliveira

Professor Associado com Agrega¸c˜ao do Departamento de Engenharias

Universidade de Tr´as-os-Montes e Alto Douro

(6)
(7)

Aos meus pais, Rui Amaral e Alcina Gomes

(8)
(9)

UNIVERSIDADE DE TR ´AS-OS-MONTES E ALTO DOURO Mestrado em Engenharia Engenharia Inform´atica

Os membros do J´uri recomendam `a Universidade de Tr´as-os-Montes e Alto Douro a aceita¸c˜ao da disserta¸c˜ao intitulada “Chat Bot – o Diagn´ostico de Bolso” realizada por Duarte Rui Afonso Gomes Tavares do Amaral para satisfa¸c˜ao parcial dos requisitos do grau de Mestre.

Novembro 2019

Presidente: Professor Doutor Lu´ıs Filipe Leite Barbosa,

Professor Auxiliar da Escola de Ciˆencias e Tecnologias da Universidade de Tr´as-os-Montes e Alto Douro

Vogais do J´uri: Professor Doutor Miguel Francisco Martins de Lima, Professor Adjunto da Escola Superior de Tecnologia e Gest˜ao de Viseu do Instituto Polit´ecnico de Viseu

Professor Doutor Eduardo Jos´e Solteiro Pires,

Professor Auxiliar com Agrega¸c˜ao do Departamento de Engenharias da Universidade de Tr´as-os-Montes e Alto Douro

(10)
(11)

Chat bot - o Diagn´

ostico de Bolso

Duarte Rui Afonso Gomes Tavares do Amaral Submetido na Universidade de Tr´as-os-Montes e Alto Douro para o preenchimento dos requisitos parciais para obten¸c˜ao do grau de

Mestre em Engenharia Inform´atica

Resumo — Os chat bots s˜ao aplica¸c˜oes que pretendem simular a intera¸c˜ao com seres humanos com o intuito de responder `as perguntas colocadas de forma a que os utilizadores fiquem com a impress˜ao de que est˜ao a interagir com outro ser humano. Atualmente, este tipo de aplica¸c˜oes tˆem tido um crescimento significativo em diversas ´

areas, desde a ´area do entretenimento `a ´area da sa´ude. Face a esta expans˜ao, os chat bots tˆem sido frequentemente integrados em aplica¸c˜oes web e em aplica¸c˜oes m´oveis, atrav´es de sistemas de mensagens que fazem parte dessas aplica¸c˜oes.

Esta disserta¸c˜ao tem como objetivo global desenvolver e implementar um chat bot para realizar diagn´osticos m´edicos.

A disserta¸c˜ao come¸ca por apresentar um levantamento de materiais e conceitos sobre chat bot bem como de algumas aplica¸c˜oes em diferentes ´areas, passando para aplica¸c˜oes similares na ´area da sa´ude.

Descreve-se todo o processo de desenvolvimento da plataforma de chat bot. Este processo come¸ca pela fase de levantamento de pressupostos, onde s˜ao identificados os requisitos das aplica¸c˜oes, os casos de uso, a modela¸c˜ao da base de dados e a identifica¸c˜ao da arquitetura e tecnologias utilizadas.

Posteriormente, ´e descrito todo o processo de cada uma das aplica¸c˜oes desenvolvidas e o processo de testes com utilizadores, no qual, atrav´es de question´arios, ´e recolhido um conjunto de dados para avaliar o chat bot desenvolvido. Os resultados obtidos a partir destes dados revelam que o chat bot proposto consegue efetuar diagn´osticos com uma fiabilidade consider´avel tendo por base as mensagens trocadas com o utilizador.

Palavras Chave: Chatbot, Sistemas Inteligentes, Sistemas de Apoio `a Decis˜ao

(12)
(13)

Chat bot - the pocket diagnosis

Duarte Rui Afonso Gomes Tavares do Amaral Submitted to the University of Tr´as-os-Montes and Alto Douro

in partial fulfillment of the requirements for the degree of Master of Science in Informatic Engineering

Abstract — Chat bots are applications that aim to simulate interaction with humans in order to answer questions posed so that users are under the impression that they are interacting with another human being.

Presently, these applications have grown significantly in many areas, from entertain-ment to healthcare. In light of this expansion, chat bots have often been integrated into web applications and mobile applications via messaging systems that are part of these applications.

This dissertation global objective is to develop and implement a chat bot to perform medical diagnostics.

The dissertation begins by presenting a survey of materials and concepts about chat bots as well as some applications in different areas, passing to similar applications in the health area.

The whole process of developing the chat bot platform is described. This process begins with a software specification phase, where application requirements, use cases, database modeling, and identification of the architecture and technologies adopted are identified.

Subsequently, the entire process of each of the developed applications and the user testing process are described, in which, through questionnaires, a set of data is collected to evaluate the developed chat bot. The results obtained from this data show that the proposed chat bot can perform diagnostics with considerable reliability based on the messages exchanged with the user.

Key Words: Chat Bot, Inteligent Systems, Decision Making Systems.

(14)
(15)

Agradecimentos

Come¸co por agradecer ao Professor Doutor Eduardo Jos´e Solteiro Pires, orientador, e ao Professor Doutor Jos´e Paulo Barroso de Moura Oliveira, co-orientador, pela motiva¸c˜ao, ideias, sugest˜oes e orienta¸c˜oes prestadas durante a elabora¸c˜ao desta disserta¸c˜ao.

Aos meus pais, Rui Amaral e Alcina Gomes, `a minha av´o, Ana Gomes, e restante fam´ılia por todo o apoio prestado durante a elabora¸c˜ao desta disserta¸c˜ao.

Ao Daniel Sousa, Marco do Vale, Tiago Favas, Mariana Montenegro, Rui Miguel, Cristiano Santos e demais amigos e colegas pela amizade e simpatia.

Um agradecimento especial `a D.a Isabel Esp´ırito do Santo da Taberna do Estudante.

Por ´ultimo, um agradecimento aos membros da Tuna Acad´emica da Universidade de Tr´as-os-Montes.

A todos, um sincero obrigado!

UTAD, Duarte Rui Afonso Gomes Tavares do Amaral

Vila Real, 29 de Setembro de 2019

(16)
(17)

´Indice geral

Resumo xi

Abstract xiii

Agradecimentos xv

´Indice de tabelas xxi

´Indice de figuras xxiii

Gloss´ario e acr´onimos xxvii

1 Introdu¸c˜ao 1 1.1 Motiva¸c˜ao . . . 2 1.2 Objetivos . . . 2 1.3 Organiza¸c˜ao da disserta¸c˜ao. . . 3 2 Materiais e M´etodos 5 2.1 Chat Bot . . . 5

2.1.1 Contextualiza¸c˜ao Hist´orica . . . 6

2.1.2 Classifica¸c˜ao dos chat bots . . . 6

2.1.3 Algoritmos baseados em Information Retrieval Based Models . 7

2.1.4 Algoritmos baseados no modelo Generativo. . . 11

2.1.5 Frameworks e bibliotecas de chat bots . . . 13

2.2 Racioc´ınio Baseados em Casos . . . 13

(18)

2.3.1 Processos do Processamento de Linguagem Natural . . . 17

2.3.2 Frameworks e bibliotecas . . . 18

2.4 Arquitetura REST . . . 20

2.5 Notas Finais . . . 21

3 Aplica¸c˜oes dos chat bots 23 3.1 Aplica¸c˜oes gerais . . . 23

3.2 Aplica¸c˜oes na ´area da sa´ude . . . 24

3.3 Chat bots de diagn´ostico . . . 25

3.4 Notas Finais . . . 27

4 Levantamento de Requisitos 29 4.1 Requisitos das aplica¸c˜oes . . . 29

4.2 Casos de Uso . . . 33 4.2.1 Back Office . . . 33 4.2.2 Aplica¸c˜ao M´ovel . . . 41 4.2.3 Servi¸co Web . . . 45 4.3 Modela¸c˜ao de Dados . . . 51 4.3.1 Conceito de Utilizador . . . 53 4.3.2 Conceito de Chat . . . 54

4.3.3 Conceito de Patologias e Sintomas . . . 56

4.3.4 Conceito de Respostas do Bot . . . 60

4.3.5 Conceito Triagem . . . 61

4.4 Arquitetura do chat bot . . . 61

4.5 Tecnologia utilizada. . . 62 4.6 Notas Finais . . . 64 5 Implementa¸c˜ao da Plataforma 65 5.1 Back Office . . . 65 5.1.1 M´odulo de Autentica¸c˜ao . . . 66 5.1.2 M´odulo do Utilizador . . . 68

5.1.3 M´odulo do Profissional de Sa´ude . . . 71

5.2 Aplica¸c˜ao m´ovel . . . 78

5.2.1 M´odulo de Autentica¸c˜ao . . . 79

5.2.2 M´odulo do Utilizador . . . 80

5.2.3 M´odulo de Chat Logs . . . 80

5.2.4 M´odulo do Chat . . . 82

(19)

5.3 Servi¸co Web . . . 83

5.3.1 Gest˜ao de pedidos . . . 83

5.3.2 Processamento de informa¸c˜ao do Chat Bot . . . 87

5.4 Notas Finais . . . 94

6 Testes e Resultados 95 6.1 M´etricas de Desempenho . . . 95

6.2 Metodologia dos Testes . . . 98

6.3 Base de dados de teste . . . 98

6.4 Amostra Populacional . . . 101

6.5 Resultados dos Testes. . . 103

6.6 Resultados dos Question´arios . . . 105

6.7 Conclus˜oes . . . 113

7 Conclus˜ao e trabalho futuro 115 7.1 Conclus˜ao . . . 115

7.2 Trabalho Futuro. . . 116

Referˆencias bibliogr´aficas 117

A Question´ario 123

(20)
(21)

´Indice de tabelas

2.1 Tabela de compara¸c˜ao entre as algumas bibliotecas e API’s de PLN . 19

3.1 Tabela comparativa das v´arias aplica¸c˜oes . . . 26

6.1 Matriz de contingˆencia . . . 96

6.2 Patologias na base de dados com a classifica¸c˜ao de n˜ao urgente . . . . 99

6.3 Patologias na base de dados com a classifica¸c˜ao de pouco urgente . . 100

6.4 Patologias na base de dados com a classifica¸c˜ao de urgente . . . 100

6.5 Patologias na base de dados com a classifica¸c˜ao de urgente . . . 101

6.6 Resultados dos testes `as patologias . . . 104

6.7 Matriz de contingˆencia dos resultados dos testes . . . 104

(22)
(23)

´Indice de figuras

2.1 Chat Bot Elizabeth . . . 10

2.2 Exemplo de um codificador e descodificador Sequence to Sequence . . 12

2.3 Diagrama do Algoritmo de RBC . . . 15

4.1 Diagrama de Casos de Uso - Pacote do BackOffice . . . 33

4.2 Diagrama de Casos de Uso do m´odulo do Utilizador . . . 34

4.3 Diagrama de Casos de Uso do m´odulo de Autentica¸c˜ao . . . 35

4.4 Diagrama de Casos de Uso da Aplica¸c˜ao M´ovel . . . 41

4.5 Diagrama de Casos de Uso do Servi¸co Web (Packages) . . . 46

4.6 Diagrama de Casos de Uso do Servi¸co Web (Chat). . . 46

4.7 Diagrama de Casos de Uso do Servi¸co Web (Gestor de Pedidos) . . . 47

4.8 Diagrama EER da BD da Plataforma . . . 52

4.9 Diagrama EER do Utilizador . . . 53

4.10 Diagrama EER do Chat . . . 55

4.11 Diagrama EER da Patologia . . . 57

4.12 Diagrama EER do Sintoma . . . 58

4.13 Diagrama EER das Respostas Bot . . . 60

4.14 Diagrama EER da Triagem . . . 61

(24)

5.4 Listagem dos chatlogs . . . 70

5.5 Detalhes do chat . . . 71

5.6 Listagem das doen¸cas . . . 72

5.7 Detalhes das Doen¸cas . . . 73

5.8 Listagem dos Sintomas . . . 74

5.9 Visualiza¸c˜ao de um sintoma . . . 75

5.10 Visualiza¸c˜ao das formas alternativas de um sintoma . . . 76

5.11 Listagem das respostas do bot . . . 77

5.12 Listagem da sec¸c˜ao do Dicion´ario . . . 78

5.13 Autentica¸c˜ao da Aplica¸c˜ao . . . 79

5.14 Registo do utilizador . . . 80

5.15 M´odulo do Chat Logs. . . 81

5.16 M´odulo do chat . . . 82

5.17 Formato de um ficheiro JSON preenchido na inicializa¸c˜ao do chat . . 83

5.18 Formato do ficheiro JSON de resposta `a inicializa¸c˜ao do chat . . . 84

5.19 Formato do Ficheiro JSON em pedidos HTTP POST de autentica¸c˜ao 85

5.20 Formato do Ficheiro JSON em pedidos HTTP RESPONSE da auten-tica¸c˜ao . . . 86

5.21 Formato do Ficheiro JSON em pedidos HTTP POST no pedido de chatlogs . . . 86

5.22 Formato do Ficheiro JSON em pedidos HTTP RESPONSE no pedido de chat logs . . . 87

5.23 Fluxo do input do utilizador . . . 88

5.24 Mensagens associadas ao processo de diagn´ostico. . . 89

5.25 Mensagens associadas ao processo de verifica¸c˜ao de intera¸c˜oes . . . . 90

5.26 Diagrama do algoritmo de processamento de texto . . . 92

6.1 Amostra Populacional . . . 101

6.2 Faixa Et´aria da Amostra Populacional . . . 102

(25)

6.3 Habilita¸c˜oes Liter´arias da Amostra Populacional . . . 102

6.4 Distribui¸c˜ao das patologias durante os testes . . . 103

6.5 Distribui¸c˜ao de diagn´osticos . . . 103

6.6 Dados sobre da facilidade de utiliza¸c˜ao da Aplica¸c˜ao M´ovel . . . 106

6.7 Dados sobre a interatividade de utiliza¸c˜ao da Aplica¸c˜ao M´ovel . . . . 106

6.8 Dados sobre a dificuldade de intera¸c˜ao do utilizador com a aplica¸c˜ao . 107

6.9 Dados sobre a dificuldade de compreens˜ao das perguntas do chat bot . 107

6.10 Dados sobre a dificuldade de compreens˜ao das respostas do chat bot . 108

6.11 Dados sobre a clareza da informa¸c˜ao da prestada pela Aplica¸c˜ao . . . 108

6.12 Dados sobre a expectativas dos utilizadores sobre as respostas do bot 109

6.13 Dados sobre o tempo de resposta do bot . . . 109

6.14 Dados sobre a opini˜ao est´etica da aplica¸c˜ao. . . 110

6.15 Dados sobre o conceito de chat bot dos utilizadores . . . 110

6.16 Dados sobre os chat bots utilizados pelos utilizadores . . . 111

6.17 Dados sobre a utiliza¸c˜ao aplica¸c˜oes similares . . . 111

6.18 Dados sobre as aplica¸c˜oes similares conhecidas . . . 112

6.19 Dados sobre a opini˜ao de utilidade de chats bots . . . 112

6.20 Dados sobre a eventual recomenda¸c˜ao da aplica¸c˜ao a terceiros . . . . 113

(26)
(27)

Gloss´

ario e acr´

onimos

Gloss´

ario de termos

Back Office — Software utilizado para a gest˜ao de um sistema. Front Office — Software utilizado para interagir com um sistema. Input — Acto de entrada de dados num sistema computacional. Output — Acto de sa´ıda de dados num sistema computacional.

Symptom Checker – Software que permite a dete¸c˜ao de condi¸c˜oes medicas atrav´es da indica¸c˜ao de sintomas.

(28)

Sigla Expans˜ao

ACC Accuracy

AMIL Artificial Intelligence Markup Language

API Application Programming Interface

BACC Balanced Accuracy

BD Base de Dados

CRUD Create, Read, Update and Delete

EER Enhanced entity-relationship

FN Falso Negativo

FP Falso Positivo

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protocol

IA Inteligˆencia Artificial

ID Identificador

IRBM Information Retrieval Based Model

LUIS Language Understanding

JSON JavaScript Object Notation

PLN Processamento de Linguagem Natural

PPV Predicted Positive Value

RBC Racioc´ınio Baseado em Casos

REST Representational State Transfer

TNR True Negative Rate

TPR True Positive Rate

SGBD Sistema de Gest˜ao de Base de Dados

SMT Statistical Machine Translation

(continua na p´agina seguinte)

(29)

Sigla Expans˜ao

URL Uniform Resource Locator

URI Uniform Resource Identifier

VN Verdadeiro Negativo

VP Verdadeiro Positivo

(30)
(31)

1

Introdu¸c˜

ao

O chat bot ´e uma aplica¸c˜ao que simula a intera¸c˜ao entre seres humanos com o intuito de responder `as perguntas colocadas de forma a que os utilizadores fiquem com a impress˜ao que est˜ao a dialogar com outro ser humano, sendo que criam uma resposta, a partir de uma base de dados (BD), e apresentam-na ao utilizador que colocou a quest˜ao.

Sendo um dos objetivos de um chat bot a simula¸c˜ao da intera¸c˜ao entre dois seres humanos, estes tˆem tido um aumento significativo no seu crescimento, provocando assim, uma expansibilidade da sua area de aplica¸c˜ao. Em termos de aplicabilidade, estes chat bots tˆem sido empregues desde a ´area do entretenimento, educa¸c˜ao, ajuda ao cliente at´e `a ´area da sa´ude. Frequentemente, os chat bots tˆem sido integrados com aplica¸c˜oes web, tipicamente, atrav´es de sistemas de mensagens, e tamb´em em aplica¸c˜oes m´oveis.

Como estes chat bots n˜ao necessitam de um operador humano para efetuar a in-tera¸c˜ao com outro ser humano, estes permitem que determinados processos sejam simplificados e estejam dispon´ıveis ininterruptamente, permitindo assim, o aumento da eficiˆencia dos processos e redu¸c˜ao dos custos associados se tivesse um operador humano.

(32)

O presente cap´ıtulo est´a divido em trˆes sec¸c˜oes. A sec¸c˜ao 1.1 descreve a motiva¸c˜ao que levou ao desenvolvimento desta disserta¸c˜ao. A sec¸c˜ao 1.2 define os objetivos da disserta¸c˜ao. O cap´ıtulo termina com a sec¸c˜ao 1.3, no qual ´e apresentado a estrutura do documento.

1.1

Motiva¸

ao

Atualmente, os chat bots s˜ao uma tecnologia em crescimento, e estima-se, que futuramente, este tipo de tecnologia seja integrada em alguns aspetos fundamentais da vida do ser humano bem como aspetos fundamentais da vida empresarial. Um dos fatores de interesse do desenvolvimento de chat bots prende-se com a aplica¸c˜ao desta tecnologia em ´areas cr´ıticas, como a ´area da sa´ude, dado que, este tipo de tecnologias pode vir a ter um impacto no dia a dia do utilizador como um simples assistente m´edico ou mesmo com um m´edico virtual.

Na ´area da sa´ude, a utiliza¸c˜ao de chat bots neste segmento permite apoiar os utentes e desta forma aliviar o uso de recursos dispon´ıveis, dado que, esta tecnologia permite que esteja dispon´ıvel 24h pelo facto de n˜ao necessitarem de um operador humano para interagir com os utente.

Sendo assim, os t´opicos abordados nesta sec¸c˜ao servem de motiva¸c˜ao para o desen-volvimento da presente disserta¸c˜ao.

1.2

Objetivos

A presente disserta¸c˜ao tem como objetivos os seguintes pontos:

1. Efetuar um estudo sobre os chat bots.

2. Desenvolver uma plataforma chat bot com o objetivo de simular a intera¸c˜ao entre um utilizador e um profissional de sa´ude.

(33)

1.3. ORGANIZAC¸ ˜AO DA DISSERTAC¸ ˜AO 3

1.3

Organiza¸

ao da disserta¸

ao

O documento encontra-se estruturado em sete cap´ıtulos e um apˆendice.

No presente cap´ıtulo fez-se uma introdu¸c˜ao de enquadramento e apresentou-se a motiva¸c˜ao do trabalho. No cap´ıtulo 2 descrevem-se os chat bots e apresentam-se os conceitos necess´arios `a elabora¸c˜ao da plataforma. De seguida, no cap´ıtulo 3

apresenta-se o levantamento da aplicabilidade geral dos chat bots bem como as aplica¸c˜oes similares `a proposta. No cap´ıtulo 4 faz-se o levantamento de requisitos necess´arios para o desenvolvimento da plataforma proposta. No cap´ıtulo5descreve-se toda a implementa¸c˜ao da plataforma. No cap´ıtulo 6 descreve-se a metodologia dos testes efetuados e apresentam-se os resultados dos testes. Por ´ultimo, no cap´ıtulo

7resumem-se os principais resultados alcan¸cados e enumeram-se alguns trabalhos futuros.

No apˆendice apresenta-se o question´ario utilizado durante os testes realizados `a plataforma.

(34)
(35)

2

Materiais e M´etodos

Este cap´ıtulo apresenta o levantamento do estado da arte, introduzindo assim, os conceitos necess´arios `a elabora¸c˜ao de um chat bot.

O cap´ıtulo encontra-se dividido em cinco sec¸c˜oes. Na sec¸c˜ao 2.1, introduz-se o conceito de chat bot, a sua contextualiza¸c˜ao hist´orica, os algoritmos e outros conceitos relacionados com os chat bots. A sec¸c˜ao 2.2 aborda a metodologia de Racioc´ınio Baseado em Casos (RBC) e descreve o seu princ´ıpio de funcionamento. Na sec¸c˜ao2.3

apresenta-se o estado da arte em rela¸c˜ao ao Processamento de Linguagem Natural. A sec¸c˜ao2.4 apresenta um breve resumo da arquitetura REST. O cap´ıtulo termina com a sec¸c˜ao 2.5 onde se apresentam as notas finais sobre o cap´ıtulo.

2.1

Chat Bot

O chat bot ´e uma aplica¸c˜ao que simula a intera¸c˜ao entre seres humanos com o intuito de responder `as quest˜oes colocadas por forma a que os utilizadores fiquem com a impress˜ao que est˜ao a dialogar com outro ser humano. Normalmente, os chat bots selecionam uma resposta a partir de uma BD ou geram uma resposta ao utilizador que colocou a quest˜ao.

(36)

2.1.1

Contextualiza¸

ao Hist´

orica

O conceito dos sistemas de chat bots surgiu na d´ecada de 60, no Massachusetts Institute of Technology, quando o chat bot Eliza (Weizenbaum,1966) foi desenvolvido por Weizenbaum. Este sistema pretendia simular um psiquiatra, e de facto este chat bot foi o programa pioneiro a passar no teste Turing, no qual se testa a capacidade de uma m´aquina exibir comportamentos inerentes aos seres humanos.

Em 1970, Colby (Colby,2013) desenvolve o chat bot Parry, que simulava uma pessoa paranoica e com esquizofrenia. O Parry foi considerado um chat bot mais avan¸cado do que o Eliza pois apresentava uma componente forte de atitude.

Entre 1995 e 2000, foi desenvolvido um chat bot a partir do chat bot Eliza designado de A.L.I.C.E (Shawar e Atwell, 2002). Este chat bot utiliza reconhecimento de padr˜oes que associa templates de respostas para efetuar a intera¸c˜ao com o utilizador. Recentemente, com o evoluir da tecnologia e dos sistemas de informa¸c˜oes, os chat bots tˆem sido desenvolvidos recorrendo-se a t´ecnicas mais complexas como processamento de linguagem natural, Deep Learning e Data Science bem como a integra¸c˜ao dos mesmo com outros servi¸cos.

2.1.2

Classifica¸

ao dos chat bots

Como descrito na sec¸c˜ao anterior, os chat bots s˜ao programas que simulam a intera¸c˜ao humana. Estes podem ser classificados de acordo com v´arias perspetivas, como por exemplo, o intuito do chat bot, personalidade, a forma como ´e implementado o sistema de processamento de texto, de gera¸c˜ao de respostas, e entre outras perspetivas. Sendo assim, a classifica¸c˜ao poder´a focar-se nas seguintes perspetivas:

1. Classifica¸c˜ao de acordo com o dom´ınio de conhecimento.

(37)

2.1. CHAT BOT 7

Classifica¸c˜ao de acordo com o dom´ınio de conhecimento

Tendo em conta a especificidade dos chat bots, estes podem ser classificados segundo o dom´ınio de conhecimento utilizado. De acordo com alguns investigadores, este dom´ınio pode ser divido em dois outros dom´ınios: aberto (Waltinger et al.,2011) e fechado (Ono et al., 2016).

Os chat bots designados de dom´ınio aberto s˜ao chat bots cuja base de conhecimento abrange uma vasta ´area e tˆem capacidade para responder a qualquer tipo de pergunta efetuada pelo utilizador. Por outro lado, nos chat bots de dom´ınio fechado, a sua base de conhecimento ´e mais pequena, ou seja, o seu dom´ınio de conhecimento ´e restrito a certas tem´aticas, sendo que, estes tipo de chat bots tem como objetivo resolver problemas espec´ıficos designados pelo utilizador.

Classifica¸c˜ao de acordo com os algoritmos de gera¸c˜ao de respostas

Relativamente `a implementa¸c˜ao dos chat bots, existem diversas metodologias e modelos para desenvolver o sistema de gera¸c˜ao de respostas de chat bots, destacando os seguintes modelos de implementa¸c˜ao: Information Retrieval Based Models e Generative Models.

2.1.3

Algoritmos baseados em Information Retrieval Based

Models

Os chat bot baseados em Information Retrieval Based Model (IRBM) s˜ao chat bots que aplicam algoritmos que utilizam o par padr˜ao-resposta para processar a informa¸c˜ao das mensagens e interagir com utilizador. Estes algoritmos efetuam a an´alise da mensagem do utilizador com o intuito de descobrir padr˜oes na frase de entrada que permitem determinar qual o template de resposta (Ji et al., 2014). Estes padr˜oes s˜ao definidos como frases numa BD e a correspondente resposta ´e gerada atrav´es de um template associado a esse padr˜ao.

(38)

Sendo assim, esta sec¸c˜ao descreve alguns algoritmos de chat bots baseados em IRBM.

Chat bot Eliza

O chat bot Eliza (Weizenbaum,1966) ´e um chat bot cujo algoritmo pretende simular a intera¸c˜ao com o psiquiatra. Neste algoritmo a base de conhecimento contˆem palavras-chave no qual est˜ao associadas regras podendo estas conter hierarquias ou n´umeros de precedˆencia. O algoritmo come¸ca por efetuar a an´alise do input do utilizar com o objetivo de identificar a presen¸ca das palavras-chave e atribuir um rank `

as palavras-chave identificadas. Ap´os a identifica¸c˜ao das palavras-chave, ´e escolhida a palavra-chave com o maior rank e aplicada a regra associada a essa palavra-chave. Por fim, s˜ao efetuadas as transforma¸c˜oes necess´arias ao output e apresentado o output ao utilizador.

Chat bot Elizabeth

O Elizabeth (Shawar e Atwell, 2002) ´e um chat bot cujo algoritmo ´e uma variante do chat bot Eliza. O algoritmo utiliza a informa¸c˜ao de um script em formato de ficheiro de texto. Este script est´a dividido em quarto partes:

1. As linhas de comando que reagem `as mensagens de bem-vindo, `as mensagens nulas e `as mensagens sem palavras-chaves.

2. Regras de transforma¸c˜ao input 1, no qual as palavras do input do utilizador

podem ser transformadas em palavras compat´ıveis com as palavras-chaves definidas.

3. Regras de transforma¸c˜ao de output2, no qual s˜ao corrigidos os pronomes pessoais

para o output.

1O input ´e a frase de entrada do utilizador. 2O output ´e a frase de resposta do chat bot.

(39)

2.1. CHAT BOT 9

4. Padr˜oes de palavras-chave, sendo que neste tipo existem padr˜oes simples no qual s´o ´e feito o match com uma palavra como tamb´em existem padr˜oes compostos que dependem da frase do input.

Antes de executar o processo de verifica¸c˜ao de padr˜oes, o input introduzido pelo utilizador ´e tratado sendo aplicado o m´etodo de lowercasing a todos os carateres e espa¸camento entre as palavras e removidos alguns tipos de carateres. De seguida, o processo de verifica¸c˜ao de padr˜oes ´e chamado para gerar as respostas. Este processo ´

e constitu´ıdo por trˆes fases:

A primeira fase consiste em verificar e aplicar as regras de transforma¸c˜ao sobre o input.

Na segunda fase, o algoritmo determina os padr˜oes pr´e-definidos que se encontram no input.

A terceira fase deste algoritmo aplica as regras de transforma¸c˜ao do output definidas no script. Caso n˜ao se encontrem padr˜oes, o output ser´a marcado como void ou empty.

No entanto, qualquer uma das fases anteriores efetua o registo de a¸c˜oes, se aplic´avel, a realizar ap´os a terceira fase do algoritmo.

Por ´ultimo, o chat bot apresenta o output ao utilizador.

(40)

Figura 2.1 – Chat Bot Elizabeth (philocomp.net)

Chat bot A.L.I.C.E.

O A.L.I.C.E. (Shawar e Atwell, 2002) ´e um chat bot cuja base dados ´e guardada em ficheiros AMIL sendo que utiliza um modelo de templates para responder `as queries do utilizador.

O algoritmo utilizado neste chat bot come¸ca por proceder `a aplica¸c˜ao dos seguintes processos no input do utilizador:

1. Processo de normaliza¸c˜ao - este processo envolve trˆes etapas:

(a) Normaliza¸c˜ao atrav´es de heur´ısticas - no qual ´e aplicado um conjunto de heur´ısticas no input para reter a informa¸c˜ao que possa ser perdida durante o processo de normaliza¸c˜ao.

(b) Sentence Splitting - no qual o input do utilizador ´e divido de acordo com determinadas regras.

(41)

2.1. CHAT BOT 11

(c) Normaliza¸c˜ao dos padr˜oes - no qual ´e removida a pontua¸c˜ao do input e de seguida s˜ao convertidas todas as letras min´usculas em mai´usculas.

2. Produ¸c˜ao de um caminho do input em cada frase - no qual ´e construido um caminho de input que contˆem o input normalizado, a resposta anterior do bot normalizada e um elemento que categoriza o input.

Findo estes processos, o algoritmo come¸ca por efetuar a interpreta¸c˜ao de cada palavra do input com intuito de obter um padr˜ao com a maior semelhan¸ca aos padr˜oes existentes na sua BD.

2.1.4

Algoritmos baseados no modelo Generativo

Os chat bots desenvolvidos recorrendo ao modelo generativo s˜ao chat bots que utilizam algoritmos de inteligˆencia artificial (e.g.: Machine Learning, Redes Neuronais, etc.) para interpretar as mensagens do utilizador e responder adequadamente ao utilizador (Ratnaparkhi,2000; Rambow et al., 2001; Bhattacharya, 2017). Sendo assim, esta sec¸c˜ao descreve brevemente alguns desses algoritmos baseados no modelo generativo.

Sequence to Sequence

O algoritmo Sequence to Sequence consiste na utiliza¸c˜ao de duas redes neuronais re-cursivas no qual uma atua com o codificador e a outra como descodificador (Sutskever et al.,2014), tal como a figura 2.2 mostra.

(42)

Figura 2.2 – Exemplo de um codificador e descodificador Sequence to Sequence (Britz)

O codificador tem como entrada uma frase que processa palavra a palavra no qual o objetivo consiste em converter a frase num vetor fixo que codifique s´o a informa¸c˜ao importante.

De seguida, o descodificador gera palavra a palavra, uma frase, sendo que ´e utilizado um vetor de contexto atrav´es de estados que influenciam a gera¸c˜ao de cada palavra.

Statistical Machine Translation

A Statistical Machine Translation (SMT) ´e um algoritmo de machine translation no qual ´e analisado linguisticamente o corpo de um texto e efetua a an´alise estat´ıstica para extrair as transi¸c˜oes entre palavras, frases e carater´ısticas de um texto (Ritter et al.,2011).

Os chat bots que utilizam SMT utilizam o input dos utilizadores e geram a resposta aplicando modelos matem´aticos baseados nas carater´ısticas do texto. Neste pro-cesso considera-se a probabilidade de um padr˜ao ter uma determinada resposta e a probabilidade de uma resposta ter um determinado padr˜ao.

Para escolher as melhores respostas dado um certo input, ´e utilizado um descodificador beam search que efetua uma pesquisa pela melhor resposta do input de acordo com o modelo logar´ıtmico-linear.

(43)

2.2. RACIOC´INIO BASEADOS EM CASOS 13

2.1.5

Frameworks e bibliotecas de chat bots

Os chat bots come¸cam a ter um papel importante e fundamental em muitas aplica¸c˜oes. Para acompanhar a crescente procura v´arias empresas desenvolveram bibliotecas e frameworks para facilitar o desenvolvimento de chat bots. Dentro destas destacam-se as seguintes:

1. Microsoft Bot Framework - ´e uma framework desenvolvida pela Microsoft para construir chat bots e integr´a-los com aplica¸c˜oes web, aplica¸c˜oes m´oveis e aplica¸c˜oes como Skype, Slack e entre outros.

2. Wit.ai - ´e uma framework concebida pela empresa Wit.AI Inc. tendo como finalidade a cria¸c˜ao de chat bots para aplica¸c˜oes web, aplica¸c˜oes m´oveis e software em sistemas inteligentes e em dispositivos wearable.

3. Dialogflow - ´e uma framework da Google LLC para elaborar chat bots. A framework permite incorporar algoritmos de machine learning da Google no chat bot e por sua vez integr´a-lo em diversas aplica¸c˜oes e plataformas.

4. Botkit - ´e uma framework desenvolvida pela Howdy teamque permite construir chat bots e integr´a-los em diversas aplica¸c˜oes e plataformas. Esta framework processa o texto recorrendo ao Microsoft LUIS e o desenvolvimento do chat bot pode ser elaborado por interface gr´afica.

2.2

Racioc´ınio Baseados em Casos

O Racioc´ınio Baseado em Casos3(RBC) ´e um paradigma de resolu¸c˜ao de problemas4

que procura efetuar a resolu¸c˜ao de problema atrav´es da reutiliza¸c˜ao do conhecimento especifico de um problema j´a existente, adaptando estes dados para resolver o problema e retendo as novas solu¸c˜oes no sistema.

3Um caso ´e a representa¸ao de uma experiˆencia ou situa¸ao contendo caracter´ısticas relevantes,

de acordo com o contexto, e a solu¸c˜ao para o resolver.

(44)

2.2.1

Tipo de Racioc´ınio Baseados em Casos

O paradigma RBC contempla uma vasta forma de metodologias para efetuar a sua implementa¸c˜ao, sendo que, se podem destacar as seguintes varia¸c˜oes do paradigma (Aamodt e Plaza, 1994):

1. Racioc´ınio Baseado em Exemplares - Esta metodologia consiste em resolver problemas atrav´es de processos de classifica¸c˜ao tendo como referˆencia um caso classificado previamente que tenha um elevado grau de similaridade ao problema proposto. Desta forma, a classe do caso previamente gravado ´e considerada como a solu¸c˜ao para o problema. ´E de notar que esta metodologia n˜ao efetua a adapta¸c˜ao da solu¸c˜ao de casos passados para o problema a resolver.

2. Racioc´ınio Baseado em Mem´oria - Este metodologia procura resolver os proble-mas acedendo `a sua mem´oria (`a sua base de conhecimento de casos) procurando uma solu¸c˜ao similar ao problema proposto.

3. Racioc´ınio Baseado em Casos - Esta metodologia efetua a resolu¸c˜ao de proble-mas atrav´es da utiliza¸c˜ao de casos.

2.2.2

Algoritmia

Em termos algor´ıtmicos, para um sistema de RBC efetuar a resolu¸c˜ao de um problema, ´

e necess´ario implementar as seguintes etapas (Osborne e Bridge,1997), como se pode observar no diagrama da figura 2.3.

(45)

2.2. RACIOC´INIO BASEADOS EM CASOS 15

Introdu¸c˜ao dos parˆametros do problema-alvo

Recupera¸c˜ao de casos relevantes1 Reutiliza¸c˜ao da solu¸c˜ao2 Revis˜ao da solu¸c˜ao3 Reten¸c˜ao da Solu¸c˜ao4

Figura 2.3 – Diagrama do Algoritmo de RBC

1. Recupera¸c˜ao - O sistema recolhe da mem´oria os casos relevantes para solucionar o problema alvo, ou seja, ap´os a introdu¸c˜ao do novo problema, este efetua a compara¸c˜ao do problema alvo com todos os casos conhecidos na BD e escolhe o mais semelhante atrav´es da utiliza¸c˜ao de fun¸c˜oes de similaridade.

2. Reutiliza¸c˜ao - Projeta a solu¸c˜ao escolhida no problema alvo, isto ´e, adapta-se da solu¸c˜ao associada `aquele caso. Geralmente a solu¸c˜ao do caso recuperado ´e passada ao novo problema diretamente como uma poss´ıvel solu¸c˜ao. No entanto, existem situa¸c˜oes em que deve transformar a solu¸c˜ao do caso anterior para o novo caso.

3. Revis˜ao - O sistema testa e avalia a solu¸c˜ao escolhida para o problema alvo e se necess´ario, no caso de insucesso, repara a solu¸c˜ao atrav´es de conhecimento espec´ıfico do dom´ınio do problema. Caso a solu¸c˜ao necessite de ser revista, o sistema ir´a examinar as diferen¸cas entre os casos, analisando quais as partes que necessitam de ser ajustadas para que a solu¸c˜ao escolhida seja adaptada para este caso. A revis˜ao do caso pode ocorrer de duas formas:

(a) O utilizador pode propor ao sistema as altera¸c˜oes a fazer no caso para que este seja uma solu¸c˜ao v´alida para o problema.

(46)

(b) O sistema ajusta as falhas do caso reutilizado e adapta-o para o novo caso alvo.

4. Reten¸c˜ao - A solu¸c˜ao poder´a ser retida como um novo caso na mem´oria do sistema. O caso ficar´a dispon´ıvel para servir de referˆencia na resolu¸c˜ao de problemas semelhantes que possam surgir.

As fun¸c˜oes de similaridade s˜ao m´etricas utilizadas nos sistemas RBC para calcular o qu˜ao aproximado ´e o caso de compara¸c˜ao ao caso de estudo, sendo que, estas podem ser dividas em trˆes tipos (Osborne e Bridge, 1997):

1. Similaridade Absoluta - no m´etodo de compara¸c˜ao entre casos segue a metodo-logia de verificar se o caso ´e ou n˜ao ´e similar ao caso de estudo sendo que os resultados destas fun¸c˜oes de similaridade poder˜ao ser expressados em booleano ou bin´ario.

2. Similaridade Relativa - no qual a compara¸c˜ao entre casos resulta na atribui¸c˜ao de um valor num´erico `a similaridade de um caso. Normalmente, o valor num´erico resultante da similaridade Relativa ´e normalizado no intervalo de [0,1].

3. Similaridade M´etrica - a compara¸c˜ao entre casos pode resultar na atribui¸c˜ao de um valor pertencente a qualquer tipo de conjunto de n´umeros, sejam eles reais ou bin´arios.

2.2.3

Frameworks e bibliotecas de RBC

Em termos de bibliotecas e frameworks de RBC destacam-se as seguintes:

1. jColibri - ´e uma framework desenvolvida pela Universidad Complutense de Madrid, que permite implementar de sistemas CBR e reutilizar o c´odigo produzido para outras aplica¸c˜oes CBR. Esta framework foi desenvolvida em Java e de acordo com os seguintes componentes (Bello-Tom´as et al., 2004):

(47)

2.3. PROCESSAMENTO DE LINGUAGEM NATURAL 17

(a) Tarefas e metodologias - este componente cont´em um conjunto de ficheiros onde est˜ao descritas as tarefas e o conjunto de m´etodos para resolver essas tarefas.

(b) Base de Casos - neste m´odulo est˜ao definidos os conectores suportados pela framework para implementar a BD a utilizar no sistema (desde uma BD de ficheiro a um Sistema de Gest˜ao de Base de Dados (SGBD)). (c) Casos - neste componente est˜ao definidos um conjunto de interfaces e

classes para suportar a abstra¸c˜ao do que ´e um caso, permitindo assim, utilizar a framework para qualquer tipo de casos.

2. myCBR - ´e uma framework desenvolvida pelo project myCBR, que permite implementar sistemas RBC e integr´a-los com outras aplica¸c˜oes. Esta framework, atrav´es da sua Workbench permite modelar, recorrendo a uma interface gr´afica, as tarefas, a base de conhecimento as fun¸c˜oes de similaridade. Atrav´es do seu SDK, ´e poss´ıvel desenvolver aplica¸c˜oes RBC utilizando os dados modelados na Workbench e efetuar a integra¸c˜ao da aplica¸c˜ao RBC com outras aplica¸c˜oes (Bach et al., 2014).

2.3

Processamento de Linguagem Natural

O Processamento de Linguagem Natural (PLN) pretende transformar a linguagem humana em compreens´ıvel e manipul´avel pelos sistemas computacionais.

2.3.1

Processos do Processamento de Linguagem Natural

Para que seja poss´ıvel implementar de um sistema PLN, ´e necess´ario que se tenha em conta os seguintes processos de an´alise textual (Brown, 1973):

1. An´alise Lexical - consiste em identificar e analisar as estruturas lexicais do texto, ou seja, verificar a estrutura lexical das palavras e identificar frases e palavras de um conjunto de frases ou par´agrafos.

(48)

2. An´alise Sint´atica - analisa gramaticalmente e a estuda a organiza¸c˜ao de modo a mapear com coerˆencia as rela¸c˜oes entre as palavras de um texto.

3. An´alise Semˆantica - an´alise e mapeamento do significado do texto. 4. An´alise Pragm´atica - interpreta¸c˜ao da mensagem que o texto transmite.

Em termos de desenvolvimento de processos de PLN, segundo os investigadores Collobert e Weston (2008), deve ter-se em conta os seguintes processos padr˜oes:

1. Part of Speech Tagging - consiste em rotular cada palavra numa determinada frase com uma fun¸c˜ao especifica.

2. Name Entity Recognition - no qual um conjunto de palavras s˜ao rotuladas com determinadas categorias.

3. Chucking - neste processo as palavras s˜ao rotuladas consoante a sua constitui¸c˜ao semˆantica.

4. Processo de Sinon´ımia - tem como fun¸c˜ao verificar se duas palavras s˜ao seman-ticamente relacionadas.

5. Processo de Rotulagem Semˆantica - consiste em identificar, nos componentes sint´aticos de uma frase, a sua fun¸c˜ao semˆantica.

6. Modelos de Linguagem - consistem em efetuar uma estimativa da probabilidade de uma palavra numa determinada sequˆencia.

2.3.2

Frameworks e bibliotecas

Atualmente, os sistemas de PLN desempenham diversas fun¸c˜oes, sendo que, s˜ao frequentemente empregues na extra¸c˜ao de informa¸c˜ao, no resumo de informa¸c˜ao, em tradu¸c˜ao m´aquina, em motores de pesquisa, entre outras.

(49)

2.3. PROCESSAMENTO DE LINGUAGEM NATURAL 19

1. IBM Watson - ´e um servi¸co web desenvolvido pela IBM Group, que fornece um conjunto de servi¸cos que permitem para desenvolver aplica¸c˜oes com suporte de PLN.

2. Microsoft LUIS - ´e um servi¸co web baseado na aprendizagem m´aquina de-senvolvido pela Microsoft Corp. que fornece um conjunto de servi¸cos para desenvolver aplica¸c˜oes de PLN.

3. Apache OpenNLP - ´e uma biblioteca desenvolvida pela Apache Software Foundationpara a linguagem de programa¸c˜ao Java, que fornece e suporta as fun¸c˜oes padr˜oes do PLN e disponibiliza um conjunto de metodologias adicionais de aprendizagem m´aquina para o PLN.

4. StanfordNLP - ´e uma biblioteca desenvolvida peloStanford NLP Group, que fornece um conjunto de fun¸c˜oes e sub bibliotecas de fun¸c˜oes PLN, sendo que, esta biblioteca pode ser utilizada em diversas linguagens de programa¸c˜ao. 5. NLTK - ´e uma biblioteca desenvolvida pelo NLTK Project para a linguagem

Python, que permite manipular dados de linguagem humana. Esta biblioteca disp˜oe de um conjunto de fun¸c˜oes, como por exemplo, tokeniza¸c˜ao, tagging, ana-lise semˆantica e entre outras, que permitem que seja poss´ıvel a implementa¸c˜ao de um programa de PLN.

A tabela 2.1 apresenta uma compara¸c˜ao entre as bibliotecas sumariadas.

Tabela 2.1 – Tabela de compara¸c˜ao entre as algumas bibliotecas e API’s de PLN

Biblioteca Open Source Plataformas e Linguagens Suportadas Componente de IA Incorporada Tipo de licen¸ca IBM Watson N˜ao Java, .NET, Python e outras Sim Subscri¸c˜ao Microsoft LUIS N˜ao C], Java, Python e NodeJS Sim Subscri¸c˜ao

Apache OpenNLP Sim Java Sim Gratuito

StanfordNLP N˜ao Java e C], Python e outras N˜ao Gratuito

NLTK Sim Phyton N˜ao Gratuito

A primeira coluna contˆem o nome da biblioteca. De seguida, a segunda coluna indica se a biblioteca ´e open source. A terceira coluna enumera as plataformas e linguagens em que a biblioteca est´a disponibilizada. Na quarta coluna ´e indicado se contˆem

(50)

algum tipo de IA. Por ´ultimo, na quinta coluna, ´e indicado o tipo de licen¸ca da biblioteca.

Como se pode verificar, a maioria das plataformas optam por n˜ao serem bibliotecas open source, sendo que, o acesso a alguma delas ´e efetuado atrav´es de um modelo de subscri¸c˜ao e a maioria suporta as linguagens de programa¸c˜ao mais comuns.

2.4

Arquitetura REST

O Representational State Transfer (REST) ´e uma arquitetura que define um conjunto de orienta¸c˜oes para desenvolver aplica¸c˜oes que utilizam o protocolo HTTP como forma de comunica¸c˜ao, tipicamente, tamb´em ´e utilizado para o desenvolvimento de servi¸cos web.

Esta tecnologia assenta em cinco princ´ıpios fundamentais e um opcional: modelo cliente-servidor, statelessness, cacheability, uniformiza¸c˜ao da interface, sistema em camadas e Code-on-Demand (Fielding e Taylor, 2000).

O primeiro princ´ıpio desta arquitetura ´e a utiliza¸c˜ao de um modelo cliente-servidor, ou seja, esta arquitetura separa a interface do utilizador e do servidor. Esta separa¸c˜ao de aplica¸c˜oes permite que o desenvolvimento das mesmas seja efetuado de forma independente e garantindo a escalabilidade do sistema.

O segundo princ´ıpio, statelessness, define que todas as comunica¸c˜oes entre o cliente e o servidor n˜ao tenham um estado definido, ou seja, cada pedido efetuado pelo cliente ao servidor tem de conter toda a informa¸c˜ao necess´aria para a interpreta¸c˜ao adequada do pedido. O facto das comunica¸c˜oes de um servi¸co baseado na arquitetura REST n˜ao ter um estado definido permite que o sistema n˜ao tenha a necessidade de verificar pedidos anteriores para interpretar o pedido atual. Adicionalmente, o sistema apresenta uma capacidade superior em recuperar de falhas parciais e em gerir os recursos do sistema, o que consequentemente, permite que haja uma maior facilidade em escalar o sistema.

(51)

2.5. NOTAS FINAIS 21

O terceiro princ´ıpio, a cacheability, permite ao sistema rotular a informa¸c˜ao como cacheable ou non-cacheable, sendo que, o sistema guarda essa informa¸c˜ao para reutilizar posteriormente.

O quarto princ´ıpio desta arquitetura assenta na uniformiza¸c˜ao da interface entre os componentes do sistema, ou seja, este princ´ıpio define a forma como a interface exp˜oe os recursos que o sistema disp˜oe bem como o formato como o recurso ´e exposto, uniformizando assim, toda a comunica¸c˜ao que o sistema realiza. Um recurso, ´e uma forma de abstra¸c˜ao dos dados, que tamb´em pode ser considerada uma forma de acesso a esses dados. O acesso ´e conseguido atrav´es de um identificador do recurso, tipicamente, um URL ou um URI, no qual ´e retornado a representa¸c˜ao de dados (e.g.: uma p´agina HTML, um ficheiro JSON, etc.).

O quinto princ´ıpio, o sistema por camadas, define que o sistema seja composto por camadas hier´arquicas de modo a que cada componente do sistema seja independente. Por ´ultimo, o princ´ıpio do Code-On-Demand, ´e um principio opcional da arquitetura REST, define que a funcionalidade dos clientes do sistema possa ser estendida atrav´es da execu¸c˜ao de c´odigo em forma de scripts, simplificando assim, as funcionalidades do cliente e permitindo que o sistema seja extens´ıvel depois de ter sido efetuado o implementado do sistema.

2.5

Notas Finais

Neste cap´ıtulo fez-se uma abordagem sobre diversos t´opicos necess´arios ao desenvol-vimento de um chat bot.

O cap´ıtulo come¸cou por abordar a tem´atica dos chat bots, descrevendo a sua defini¸c˜ao como aplica¸c˜oes que tˆem como objetivo simular a intera¸c˜ao entres seres humanos. Adicionalmente, efetuou-se uma contextualiza¸c˜ao hist´orica sobre os chat bots, a classifica¸c˜ao dos chat bots em rela¸c˜ao ao seu dom´ınio de conhecimento e a sua implementa¸c˜ao. Por fim, apresentaram-se algumas frameworks e bibliotecas para o desenvolvimento de chat bots.

(52)

De seguida, abordou-se a tem´atica do RBC, o qual ´e definido como um paradigma para a resolu¸c˜ao de problemas atrav´es de reutiliza¸c˜ao do conhecimento de um problema especifico, adaptando-o para a resolu¸c˜ao do problema atual. Este paradigma ´e frequentemente utilizado para a implementa¸c˜ao de sistemas de resolu¸c˜ao de problemas. Nesta sec¸c˜ao, tamb´em se enumeram os tipo de RBC, a sua algoritmia e as frameworks e bibliotecas existentes.

Findo a abordagem sobre os sistemas RBC, o cap´ıtulo aborda o Processamento de Linguagem Natural, apresentando uma breve defini¸c˜ao do que ´e PLN, quais os processos base a ter em conta neste sistemas, e por fim, as bibliotecas e frameworks existentes que se destacam.

Por ´ultimo, abordou-se a arquitetura REST, uma arquitetura orientada ao desenvol-vimento de aplica¸c˜oes sob o protocolo HTTP, e tipicamente, tamb´em orientada ao desenvolvimento de servi¸cos web. Nesta ´ultima sec¸c˜ao tamb´em foram apresentados os princ´ıpios da arquitetura explicitando quais as suas vantagens.

(53)

3

Aplica¸c˜

oes dos chat bots

Este cap´ıtulo descreve v´arias aplica¸c˜oes existentes de chat bots tanto em contexto gen´erico como em contexto de sa´ude e a identifica¸c˜ao de algumas semelhan¸cas ao chat bot desenvolvido no ˆambito da disserta¸c˜ao.

O cap´ıtulo est´a divido em quatro sec¸c˜oes, sendo que, na sec¸c˜ao 3.1 apresentam-se as aplica¸c˜oes de chat bots na generalidade. Na sec¸c˜ao 3.2 referem-se as aplica¸c˜oes relacionadas com a ´area da sa´ude. Na sec¸c˜ao 3.3 descreve-se as aplica¸c˜oes mais similares `a plataforma a desenvolver. Por ´ultimo, o cap´ıtulo termina com a sec¸c˜ao

3.4 onde se apresentam as notas finais.

3.1

Aplica¸

oes gerais

Atualmente, os chat bots tˆem ganho uma crescente relevˆancia no mercado tecnol´ogico sendo utilizados em diversas ´areas e servi¸cos (Shawar e Atwell, 2007) em particular: no entretenimento, em ferramentas de aprendizagem de linguagem, no com´ercio eletr´onico, em sistemas de apoio `a decis˜ao, em ferramentas de cria¸c˜ao de conte´udos, em servi¸cos de apoio ao cliente, na automatiza¸c˜ao de servi¸cos, na intera¸c˜ao cliente--empresa e nos servi¸cos de sa´ude.

(54)

Para ilustrar a versatilidade nas ´areas supracitadas destacam-se os seguintes chat bots:

1. Cleverbot (Rollo Carpenter) - ´e um chat bot desenvolvido com o objetivo de simular a intera¸c˜ao entre humanos.

2. Instalocate (Instalocate) - ´e um chat bot desenvolvido para o Facebook Messager que efetua o tracking de voos comerciais e notifica o utilizador de atrasos. 3. HealthTap (HealthTap, Inc.) - ´e um chat bot que responde a perguntas

relacionadas com sa´ude.

4. Siri (Apple Inc.), Cortona (Microft Corp.) e Alexa (Amazon.com Inc.) - ´e o conjunto de chat bots que tˆem como objetivo servirem de assistentes pessoais inteligentes, respetivamente, nos sistemas operativos iOS, Windows e Android.

3.2

Aplica¸

oes na ´

area da sa´

ude

Como foi referido no cap´ıtulo anterior, os chat bots s˜ao aplica¸c˜oes que pretendem simular a intera¸c˜ao entre os seres humanos. Sendo assim, estes na ´area da sa´ude podem ter um leque alargado de aplica¸c˜oes.

Os chat bots neste dom´ınio podem ser desenvolvidos para:

1. Assistentes pessoais de sa´ude - no qual os chat bots ser˜ao desenvolvidos com uma componente de assistente pessoal onde desempenham fun¸c˜oes como a marcar consultas, alertar de certos e determinados processos como a toma de medicamentos.

2. Emergˆencias - em casos de emergˆencias, os chat bots podem ser desenvolvidos para guiar os utilizadores para solu¸c˜oes que ajudem a tratar casos de emergˆencia. 3. Consultas - os chat bots s˜ao desenvolvidos para marcar consultas online, efetu-ando diagn´osticos probabil´ısticos e, eventualmente, reencaminhar os utilizadores para os servi¸cos de sa´ude consoante a gravidade da situa¸c˜ao.

(55)

3.3. CHAT BOTS DE DIAGN ´OSTICO 25

4. Comercio Eletr´onico na ´area farmacˆeutica - no qual os chat bots s˜ao utilizados como assistentes de venda, ajudando os utilizadores a comprar a medica¸c˜ao prescrita pelo profissional de sa´ude.

3.3

Chat bots de diagn´

ostico

Foi poss´ıvel identificar as seguintes aplica¸c˜oes com o objetivo similar aos problemas anteriormente dispostos: Baylon Healthcare (Babylon), HealthTap (HealthTap, Inc.), Pharmabot (Comendador et al., 2015), Your.Md (Your.MD Ltd.), Sensely (Sensely), Buoy Health (Buoy Health, Inc) e Florence (PACT Care BV).

A aplica¸c˜ao Babylon Healthcare ´e uma solu¸c˜ao integrada de sa´ude, desenvolvida na Gr˜a-Bretanha. Esta solu¸c˜ao cont´em um chat bot que efetua aconselhamento m´edico, sugere ao utilizador a marca¸c˜ao de consulta e realiza uma v´ıdeo-chamada com um especialista de sa´ude.

Uma das funcionalidades desta aplica¸c˜ao ´e o Babylon Check. Esta funcionalidade efetua o diagn´ostico atrav´es da utiliza¸c˜ao do feedback do utilizador. Para este efeito, a avalia¸c˜ao ´e realizada com recurso a um sistema de inteligˆencia artificial baseado em ´arvores de grafos para diagnosticar e emitir uma recomenda¸c˜ao (Middleton et al., 2016).

O Pharmabot ´e um chat bot que realiza recomenda¸c˜oes farmacol´ogicas para crian¸cas. Este chat bot emprega uma abordagem de left-right parsing para interpretar o feedback fornecido e um sistema de regras para emitir uma opini˜ao sobre o feedback (Comendador et al., 2015).

As aplica¸c˜oes HealthTap, Your.Md, Sensely, Buoy Health s˜ao um conjunto de chat bots que procuram solu¸c˜oes para os sintomas mais comuns.

A aplica¸c˜ao Florence ´e um chat bot que permite auxiliar o utilizador na sua rotina di´aria em termos de sa´ude.

(56)

descritas.

Tabela 3.1 – Tabela comparativa das v´arias aplica¸c˜oes

Aplica¸c˜ao Tipo de licen¸ca Plataformas Open source Fun¸c˜ao Algoritmia Babylon Healthcare Subscri¸c˜ao Android \ iOS N˜ao Assistente Pessoal

\ Symptom Checker

´

Arvore de Decis˜ao

HealthTap Gratuito Android \ iOS \ Web Browser N˜ao Assistente Pessoal \ Symptom

Checker

Desconhecido

Your.Md Gratuito Android \ iOS \ Web Browser N˜ao Symptom Checker Desconhecido Sensely (AskNHS) Gratuito Android \ iOS \ Web Browser N˜ao Assistente Pessoal

\ Localizador de Servi¸cos \ Symptom Checker

Desconhecido

Buoy Health Gratuito Web Browser N˜ao Symptom Checker Desconhecido Florence Gratuito Windows \ Web Browser \ Skype N˜ao Assistente Pessoal Desconhecido Pharmabot Gratuito Desconhecido Desconhecido Symptom Checker Sistema de Regras

Na primeira coluna encontra-se o nome da solu¸c˜ao. De seguida, na segunda coluna ´

e indicado qual o tipo de licen¸ca da aplica¸c˜ao. Na terceira coluna indicam-se as plataformas que suportam as aplica¸c˜oes. Na quarta coluna indica-se se a plataforma ´

e open source. Por ´ultimo, indicam-se as principais fun¸c˜oes das aplica¸c˜oes.

Como se pode verificar, das aplica¸c˜oes que se destacam, existe uma larga maioria cujo modelo de neg´ocio segue a gratuitidade da aplica¸c˜ao. Em termos de plataformas, estas aplica¸c˜oes encontram-se no ramo das plataformas m´oveis suportando os dois sistemas operativos (SO) mais comuns, o Android e o iOS. Tal como se pode observar na tabela, a maioria das aplica¸c˜oes destacam-se por serem symptom checkers sendo que algumas delas acarretam algumas funcionalidades adicionais.

Por fim, em termos algor´ıtmicos, dado que a maioria das solu¸c˜oes n˜ao s˜ao open source, n˜ao ´e poss´ıvel apurar qual o tipo de algoritmia utilizada al´em das informa¸c˜oes que transmitem ao p´ublico, com a exce¸c˜ao de duas dessas aplica¸c˜oes onde ´e poss´ıvel obter informa¸c˜ao do funcionamento atrav´es de artigos que as descrevem (Comendador et al.,2015; Middleton et al.,2016).

(57)

3.4. NOTAS FINAIS 27

3.4

Notas Finais

Neste cap´ıtulo abordaram-se alguns sistemas onde os chat bots desempenham pap´eis relevantes. Estes sistemas tˆem uma multitude de aplicabilidade desde o entreteni-mento `a educa¸c˜ao.

Na ´area da sa´ude, descreveram-se algumas aplica¸c˜oes, em particular no diagn´ostico de doen¸cas.

Em rela¸c˜ao `as aplica¸c˜oes similares `a que se pretende implementar, destacaram-se um conjunto de aplica¸c˜oes que, na sua maioria, s˜ao symptom checkers, e utilizam alguma forma de IA para efetuar os diagn´osticos, entre outras carater´ısticas.

(58)
(59)

4

Levantamento de Requisitos

Neste cap´ıtulo apresenta-se toda a documenta¸c˜ao relativa `a parte de Engenha-ria de Software para implementar as aplica¸c˜oes e plataformas necess´arias para o funcionamento do chat bot.

Este cap´ıtulo encontra-se divido em seis sec¸c˜oes. A sec¸c˜ao 4.1 efetua o levamento dos requisitos que a plataforma tem de cumprir na sua implementa¸c˜ao. Na sec¸c˜ao

4.2 procede-se `a modela¸c˜ao dos diagramas de casos de usos e `a descri¸c˜ao de cada caso de uso. Na sec¸c˜ao 4.3, modelam-se os dados relevantes atrav´es do modelo Entidade-Relacionamento antes de implementar na BD. A sec¸c˜ao 4.4apresenta as arquiteturas escolhidas para desenvolver a plataforma. Na sec¸c˜ao 4.5 abordam-se as tecnologias escolhidas para elaborar a plataforma. Por ´ultimo, a sec¸c˜ao4.6 tem as notas finais do cap´ıtulo.

4.1

Requisitos das aplica¸

oes

Para desenvolver o chat bot procedeu-se ao levantamento de requisitos relativos `a plataforma por forma a perceber e identificar todas as necessidades alusivas seu desenvolvimento.

(60)

Uma vez definidos os requisitos relativos `a implementa¸c˜ao do chat bot torna poss´ıvel o seu desenvolvimento de uma forma mais f´acil.

Para proceder ao levantamento de requisitos foi utilizado o modelo FURPS+. O modelo FURPS (Dromey, 1995) decomp˜oe as caracter´ısticas de um sistema em dois grupos de requisitos: os requisitos funcionais e os n˜ao funcionais (requisitos de usabilidade, de fiabilidade, de performance e de suporte).

Derivado do modelo FURPS, o modelo FURPS+ (Eeles,2005) identifica um conjunto adicional de requisitos, representam limita¸c˜oes a impor ao sistema. Estas limita¸c˜oes traduzem-se em requisitos de design, de implementa¸c˜ao, de interface e requisitos f´ısicos.

No levantamento de requisitos identificou-se que ´e necess´ario implementar uma plataforma de Back Office, uma aplica¸c˜ao m´ovel e um servi¸co web.

Para a implementa¸c˜ao destas trˆes aplica¸c˜oes, identificaram-se os seguintes requisitos:

1. As aplica¸c˜oes dever˜ao suportar a arquitetura REST.

2. As aplica¸c˜oes dever˜ao suportar a arquitetura cliente-servidor.

3. As aplica¸c˜oes dever˜ao efetuar a comunica¸c˜ao atrav´es de pedidos e respostas HTTP.

4. As aplica¸c˜oes dever˜ao ser compat´ıveis com o SGDB mySQL. 5. As aplica¸c˜oes dever˜ao ser escal´aveis.

6. As aplica¸c˜oes dever˜ao ter tempo de resposta curto.

Para o Back Office, foram identificados os seguintes requisitos:

1. O Back Office dever´a ser desenvolvido em C#, recorrendo `a framework ASP.NET.

(61)

4.1. REQUISITOS DAS APLICAC¸ ˜OES 31

2. O Back Office dever´a permitir efetuar a autentica¸c˜ao do utilizador. 3. O Back Office dever´a permitir efetuar o registo do utilizador.

4. O Back Office dever´a permitir que cada tipo de utilizador tenha a sua pr´opria interface.

5. O Back Office dever´a permitir a visualiza¸c˜ao e edi¸c˜ao dos dados do utilizador. 6. O Back Office dever´a permitir a consulta dos chats do utilizador.

7. O Back Office dever´a permitir a emiss˜ao de aprova¸c˜ao ou n˜ao aprova¸c˜ao da intera¸c˜ao do chat bot de um determinado chat.

8. O Back Office dever´a permitir criar, visualizar, editar e eliminar patologias. 9. O Back Office dever´a permitir criar, visualizar, editar e eliminar sintomas. 10. O Back Office dever´a permitir criar, visualizar, editar e eliminar n´ıveis de

triagem.

11. O Back Office dever´a permitir criar, visualizar, editar e eliminar respostas a utilizar pelo chat bot.

12. O Back Office dever´a permitir criar, visualizar, editar e eliminar nomenclatura alternativa para associar a patologias e sintomas.

Relativamente `a aplica¸c˜ao m´ovel, os seguinte requisitos foram identificados:

1. A aplica¸c˜ao dever´a ser desenvolvida para o sistema operativo Android. 2. A aplica¸c˜ao dever´a incluir a biblioteca Volley para as comunica¸c˜oes HTTP. 3. A aplica¸c˜ao dever´a incluir a Gradle para a resolu¸c˜ao de dependˆencias externas. 4. A aplica¸c˜ao dever´a permitir efetuar a autentica¸c˜ao do utilizador.

(62)

6. A aplica¸c˜ao dever´a permitir interagir com o chat bot.

7. A aplica¸c˜ao dever´a permitir visualizar todas a intera¸c˜oes com chat bot. 8. A aplica¸c˜ao dever´a permitir visualizar os dados do utilizador.

Por fim, para o servi¸co web (chat bot ) identificaram-se os seguintes requisitos:

1. O servi¸co web dever´a ser desenvolvido em Java, mais especificamente, em Java Enterprise Edition \ Jakarta Enterprise Edition.

2. O servi¸co web dever´a incluir o Apache Maven para a resolu¸c˜ao de dependˆencias externas.

3. O servi¸co web dever´a incluir a biblioteca JAX-WS para suportar a componente de servi¸cos web.

4. O servi¸co web dever´a incluir a biblioteca OpenNLP para o processamento de texto.

5. O servi¸co web dever´a permitir que seja efetuada a intera¸c˜ao entre o servi¸co web e uma aplica¸c˜ao.

6. O servi¸co web dever´a registar toda a intera¸c˜ao realizada.

7. O servi¸co web dever´a ser capaz de questionar o utilizador sobre determinados sintomas.

8. O servi¸co web dever´a efetuar diagn´osticos a partir dos sintomas reportados pelo utilizador.

9. O servi¸co web dever´a ter a capacidade de extrair palavras-chave para poder efetuar a avalia¸c˜ao das patologias.

10. O servi¸co web dever´a ser capaz de efetuar a triagem acompanhado de uma recomenda¸c˜ao para a triagem que foi efetuada.

(63)

4.2. CASOS DE USO 33

Alguns destes requisitos foram determinados com base nas tecnologias lecionadas no curso. No entanto, o chat bot, em alguns casos, pode ser constru´ıdo usando outras tecnologias.

4.2

Casos de Uso

Para complementar a especifica¸c˜ao da plataforma, foi modelado um conjunto de casos de uso de cada sistema pertencente `a plataforma, recorrendo a diagramas de casos de uso acompanhados com um conjunto de textos descritivos de cada casos de uso descrito nos diagramas.

Os casos de uso foram modelados tendo em conta os requisitos anteriormente identifi-cados para os seguintes sistemas: Back Office, Chat bot (Servi¸co Web) e a Aplica¸c˜ao M´ovel.

4.2.1

Back Office

O Back Office ´e o sistema respons´avel pela gest˜ao da plataforma. O sistema pode ser dividido em dois pacotes, o m´odulo do utilizador e o m´odulo da autentica¸c˜ao, tal como ´e apresentado na figura 4.1.

(64)

O pacote m´odulo do Utilizador (figura4.2) ilustra os casos de uso associados `a gest˜ao do utilizador bem como os casos de uso relacionados com a gest˜ao da plataforma.

Figura 4.2 – Diagrama de Casos de Uso do m´odulo do Utilizador

(65)

4.2. CASOS DE USO 35

registo e autentica¸c˜ao de utilizadores no Back Office.

Figura 4.3 – Diagrama de Casos de Uso do m´odulo de Autentica¸c˜ao

Autenticar Utilizador

O caso de uso Autenticar Utilizador tem como pr´e-requisitos o Utilizador ou o Profissional de Sa´ude estar registado no sistema e o Utilizador n˜ao estar autenticado. O ator que interage com o sistema ´e o Utilizador ou o Profissional de Sa´ude.

O Utilizador para efetuar o acesso ao Back Office ´e direcionado para a interface de autentica¸c˜ao. De seguida, o Utilizador insere as suas credenciais de autentica¸c˜ao no sistema. Ap´os a inser¸c˜ao das credenciais, o sistema efetua a verifica¸c˜ao dos seguintes pontos:

1. A existˆencia do utilizador na BD. 2. A validade das credenciais.

(66)

3. O formato dos dados introduzidos.

Findas as verifica¸c˜oes resulta uma das seguintes a¸c˜oes:

1. O sistema redireciona o utilizador para a interface de utilizador apropriada ao seu tipo.

2. O sistema apresenta uma mensagem de erro adequada ao tipo de erro resultante das verifica¸c˜oes efetuadas.

Registar Utilizador

O caso de uso Registar Utilizador tem como pr´e-requisito o Utilizador n˜ao se encontrar registado na plataforma.

O ator que interage com o sistema ´e o Utilizador.

Este caso de uso come¸ca quando o utilizador n˜ao se encontra registado e encontra-se na interface de autentica¸c˜ao. Nesta interface, o utilizador carrega na hiperliga¸c˜ao de registo e ´e redirecionado para a interface de registo.

O utilizador, na interface de registo, insere os dados necess´arios ao registo. Ap´os a inser¸c˜ao dos dados, o sistema efetua a verifica¸c˜ao dos seguintes pontos:

1. O formato dos dados introduzidos. 2. A validade dos dados introduzidos. 3. A existˆencia do utilizador na BD.

Desta verifica¸c˜ao resulta uma das seguintes a¸c˜oes:

(67)

4.2. CASOS DE USO 37

2. O sistema apresenta uma mensagem de erro de dados mal formatados.

3. O sistema regista o utilizador, apresentando uma mensagem de sucesso de registo e redireciona o utilizador para a interface de autentica¸c˜ao.

Gerir Perfil

O caso de uso Gerir Perfil tem como pr´e-requisito o Utilizador ou o Profissional de Sa´ude estar autenticado no sistema.

O ator que interage com o sistema ´e o Utilizador ou o Profissional de Sa´ude. O utilizador entra na interface do perfil de utilizador. Seguidamente, o sistema procura o utilizador e retorna as informa¸c˜oes de perfil do utilizador, apresentado-as na interface. Nesta interface, o sistema permite ao utilizador, editar a informa¸c˜ao relativa ao seu perfil.

Para editar o perfil, o utilizador entra na interface de edi¸c˜ao de perfil e o sistema retorna as informa¸c˜oes de perfil do utilizador e o utilizador edita as sec¸c˜oes.

De seguida, o utilizador interage com a interface para guardar as altera¸c˜oes, sendo que, o sistema efetua a valida¸c˜ao dos dados. Caso os dados editados estejam no formato correto, o sistema regista as altera¸c˜oes e redireciona o utilizador para a interface de gest˜ao de perfil. Caso contr´ario, o sistema apresenta uma mensagem de erro na interface.

Gerir Doen¸cas

O caso de uso Gerir Doen¸cas tem como pr´e-requisito o Profissional de Sa´ude estar autenticado no sistema.

O ator que interage com o sistema ´e o Profissional de Sa´ude.

O utilizador entra na interface de gest˜ao de doen¸cas, sendo que, o sistema procura por uma lista de doen¸cas e apresenta nesta interface uma listagem de doen¸cas em

(68)

forma de tabela.

Nesta interface, tem a possibilidade de criar, editar ou remover uma doen¸ca. Para criar uma nova doen¸ca, o utilizador efetua um click para a interface de cria¸c˜ao de doen¸cas. O utilizador nesta interface introduz os dados necess´arios e regista a doen¸ca no sistema. Seguidamente, o sistema valida os dados, verificando se os dados introduzidos se encontram no formato correto e se n˜ao est˜ao duplicados. Caso os dados sejam validados, o sistema regista a doen¸ca, atualiza a lista de doen¸cas e redirecionar´a o utilizador para a interface de gest˜ao de doen¸cas. Caso contr´ario, o sistema apresenta uma mensagem de erro.

Para remover uma doen¸ca, o utilizador na interface de gest˜ao de doen¸cas, carrega no bot˜ao remover associado `a doen¸ca. De seguida, o sistema procura pela doen¸ca e procede `a remo¸c˜ao da doen¸ca, efetuando a atualiza¸c˜ao da listagem das doen¸cas na interface.

Para editar a doen¸ca, o utilizador entra na interface de edi¸c˜ao de doen¸ca. O sistema procura a doen¸ca no sistema e apresenta-a na interface. De seguida, o utilizador edita os dados da doen¸ca.

Ap´os a edi¸c˜ao, o utilizador interage com a interface para guardar as altera¸c˜oes, sendo que, o sistema efetua a valida¸c˜ao dos dados. Caso os dados editados estejam no formato correto, o sistema regista as altera¸c˜oes e redireciona o utilizador para a interface de gest˜ao de doen¸cas. Caso contr´ario, o sistema apresenta uma mensagem de erro na interface.

Gerir Sintomas

O caso de uso Gerir Sintomas tem como pr´e-requisito o Profissional de Sa´ude estar autenticado no sistema.

O ator que interage com o sistema ´e o Profissional de Sa´ude.

(69)

4.2. CASOS DE USO 39

por uma lista de sintomas e apresenta a lista sob a forma de tabela.

A interface de gest˜ao, para al´em de permitir a visualiza¸c˜ao dos sintomas, permite efetuar a cria¸c˜ao, edi¸c˜ao e remo¸c˜ao de sintomas do sistema.

Para criar um novo sintoma, o utilizador entra na interface de cria¸c˜ao de sintomas. O utilizador nesta interface introduz os dados necess´arios e regista o sintoma no sistema. Seguidamente, o sistema valida os dados, verificando se os dados introduzidos se encontram no formato correto e se n˜ao est˜ao duplicados. Caso os dados estejam validados, o sistema regista o sintoma, atualiza a lista de sintomas e redirecionara o utilizador para a interface de gest˜ao de sintomas. Caso contr´ario, o sistema apresenta uma mensagem de erro.

Para remover um sintoma, o utilizador acede `a interface de gest˜ao de sintomas e efetua um click no bot˜ao remover associado ao sintoma. De seguida, o sistema procura pelo sintoma e procede `a remo¸c˜ao do sintoma, efetuando a atualiza¸c˜ao da listagem dos sintomas na interface.

Para editar o sintoma, o utilizador entra na interface de edi¸c˜ao de sintoma. O sistema procura o sintoma no sistema e apresenta-o na interface. De seguida, o utilizador edita os dados do sintoma.

Finalizando a edi¸c˜ao, o sistema efetua a valida¸c˜ao dos dados introduzidos. Caso os dados editados estejam corretamente formatados, o sistema regista as altera¸c˜oes e redireciona o utilizador para a interface de gest˜ao de sintomas. Caso contr´ario, o sistema apresenta uma mensagem de erro na interface.

Gerir Dicion´ario

O caso de uso Gerir Dicion´ario tem com pr´e-requisito o Profissional de Sa´ude estar autenticado no sistema.

O ator que interage com o sistema ´e o Profissional de Sa´ude.

Imagem

Figura 2.1 – Chat Bot Elizabeth (philocomp.net)
Tabela 2.1 – Tabela de compara¸c˜ ao entre as algumas bibliotecas e API’s de PLN
Tabela 3.1 – Tabela comparativa das v´ arias aplica¸ c˜ oes
Figura 4.1 – Diagrama de Casos de Uso - Pacote do BackOffice
+7

Referências

Documentos relacionados

nesta nossa modesta obra O sonho e os sonhos analisa- mos o sono e sua importância para o corpo e sobretudo para a alma que, nas horas de repouso da matéria, liberta-se parcialmente

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

3.3 o Município tem caminhão da coleta seletiva, sendo orientado a providenciar a contratação direta da associação para o recolhimento dos resíduos recicláveis,

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Entre os motivos para a instalação da fertirrigação, os produtores mencionaram o aumento de qualidade e produtividade da lavoura, redução de mão de obra, redução dos impactos

A par disso, analisa-se o papel da tecnologia dentro da escola, o potencial dos recursos tecnológicos como instrumento de trabalho articulado ao desenvolvimento do currículo, e

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

A finalidade do “Documento de Arquitetura de Software - DAS” é definir um modelo arquitetural para ser aplicado ao desenvolvimento dos jogos do Desafio SEBRAE, bem como