Вы находитесь на странице: 1из 49

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CENTRO DE INFORMTICA

Jorge Henrique Cordeiro Linhares

Usain Bots: Uma proposta de construo de


chatterbots por meio de um servio web

Trabalho de Graduao

RECIFE, DEZEMBRO DE 2016

UNIVERSIDADE FEDERAL DE PERNAMBUCO


CENTRO DE INFORMTICA

Jorge Henrique Cordeiro Linhares

Usain Bots: Uma proposta de construo de


chatterbots por meio de um servio web

Projeto de Graduao apresentado no


Centro de Informtica da Universidade
Federal
de
Pernambuco, como
requisito parcial para a obteno do
grau de Bacharel em Sistemas de
Informao.
Orientador: Vinicius Cardoso Garcia

RECIFE, DEZEMBRO DE 2016

UNIVERSIDADE FEDERAL DE PERNAMBUCO


CENTRO DE INFORMTICA

Jorge Henrique Cordeiro Linhares

Usain Bots: Uma proposta de construo de


chatterbots por meio de um servio web

Projeto de Graduao apresentado no


Centro de Informtica da Universidade
Federal
de
Pernambuco, como
requisito parcial para a obteno do
grau de Bacharel em Sistemas de
Informao.
Orientador: Vinicius Cardoso Garcia
Aprovado em: ____/____/____.

BANCA EXAMINADORA

____________________________________________________
Vinicius Cardoso Garcia
Universidade Federal de Pernambuco

____________________________________________________
Kiev Santos da Gama
Universidade Federal de Pernambuco

RECIFE, DEZEMBRO DE 2016

Agradecimentos
Agradeo primeiramente a Deus em reconhecimento de que todas as coisas so Dele,
para Ele e por Ele.
Agradeo a minha famlia por todo incentivo, amor, dedicao e pacincia
Agradeo ao meu orientador Vincius Garcia pela sua disponibilidade e por todo o apoio
fornecido.
Agradeo a minha namorada Sandrine pela compreenso e por estar sempre presente
para me ajudar.
Agradeo a todos os professores do CIn por todo o conhecimento e dedicao fornecidos
durante o curso.
Agradeo aos meus amigos pelo incentivo e apoio durante toda a graduao.

Resumo
Atualmente os avanos tecnolgicos esto engajando a gerao, no s de novos meios
tecnolgicos, mas como tambm reanimando tecnologias que acabaram por ser
inviabilizadas em seu surgimento. Seja devido a falta de recursos de hardware ou de
processamento suficientes para suprir a sua existncia. Isto ocorreu com a Inteligncia
artificial, oriunda dos anos 50-60, que ressurge ao mercado com grande poder de
inovao para as empresas e com uma variedade vasta de subcampos, definidos em um
escopo geral como mecanismos de aprendizagem e percepo. O processamento de
linguagem natural (PLN), um dos subcampos que em conjunto com a lingustica, estuda
os problemas da gerao e compreenso automtica de lnguas humanas naturais.
Seguindo esta linha de pesquisa, esto inseridos os chatterbots (bots), que so
ferramentas tecnolgicas que se utilizam de processamento de linguagem natural para
suprir uma necessidade de dilogo automatizado com os seres humanos. Este trabalho
prope a compreenso e estudo dos mtodos de PLN para a construo de bots, assim
como o desenvolvimento de um servio web capaz de gerenciar bots e transmitir todas
suas caractersticas e essncias. A utilizao do servio ser demonstrada de maneira
prtica com o CIn Bot, um bot que ir atender as demandas e necessidades dos alunos
de graduao do Centro de Informtica.
Palavras chave: Chatterbots, processamento de linguagem natural, sistemas de
recuperao da informao.

Abstract
Currently, the technological advances are engaging not only generation of new
technological means, but also reviving technology that turned out to be unfeasible in its
emergence. Whether due to lack of hardware resources or enough processing to supply its
existence. This occurred with the artificial intelligence, from 70's and 80's, which
resurfaces to the market with great power of innovation for companies and with a vast
variety of subfields, defined in a general scope as mechanisms of learning and perception.
The natural language processing (NLP) is one of the subfields that, in conjunction with
Linguistics, studies the problems of automatic generation and understanding of natural
human languages. Following this line of research are inserted the chatterbots (bots), which
are technological tools that use natural language processing to meeting for a need for
automated dialogue with human beings. This paper proposes the understanding and study
of the methods of PLN for construction of bots, as well as the development of a web
service capable of managing bots and pass all its characteristics and essences. The use
of the service will be demonstrated in a practical way with the CIn Bot, a bot that will meet
the demands and needs of undergraduates of Center for Informatics.
Keywords: Chatterbots, natural processing language, Information retrieval systems.

Sumrio
1. Introduo

15

1.1 Motivao

15

1.2 Objetivos

15

1.2.1 Gerais

15

1.2.2 Especficos

16

1.3 Organizao do trabalho


2. Fundamentao Terica
2.1 Inteligncia Artificial
2.1.1 The Imitation Game
2.2 Chatterbots

16
17
17
18
19

2.2.1 Contexto histrico

19

2.2.2 Caractersticas e Classificaes

20

2.2.3 Modelos de aquisio de conhecimento

21

2.3 Processamento de Linguagem Natural

22

2.3.1 Nveis de entendimento

22

2.3.2 Processamento

23

2.3.2.1 Aplicaes

23

2.3.2.3 Estratgias

24

3. Usain Bots
3.1 Proposta

27
27

3.1.1 Aplicao das caractersticas de um bot

27

3.1.2 Modelo de aquisio de conhecimento

28

3.2 Arquitetura
3.2.1 Node.js e Express

28
28

3.2.1.1 Arquitetura do Node.js

28

3.2.1.2 Arquitetura MVC com Node.js e Express

29

3.3 Usain Bots

31

3.3.1 Mdulo de Comunicao

31

3.3.2 Mdulo de Controle

31

3.3.2.1 Mecanismo de autenticao

32

3.3.2.2 Controladores

33

3.3.2.3 Modelos e Base de dados

33

3.3.3 Mdulo de Processamento de Linguagem Natural

36

3.3.3.1 Extrao

36

3.3.3.2 Classificador

36

3.3.3.3 Pesagem

37

3.3.4 Mdulo de extrao de dados


3.4 Consideraes finais
4. Utilizao do Usain Bots na construo do bot do CIn
4.1 Arquitetura

38
39
40
40

4.1.2 Controlador

40

4.1.3 View

41

4.2 Utilizao do servio

41

4.2.1 Identificao de abertura e cumprimento

42

4.2.2 Identificao de questionamento e proposio de sugestes

42

4.2.3 Identificao de questionamento e sem resposta vivel

43

4.2.4 Identificao de agradecimento

43

4.2.5 Funes extras

44

4.2.6 Identificao de encerramento

45

5. Concluso e trabalhos futuros

46

Lista de Tabelas
Tabela 1 - Algumas definies de inteligncia artificial, organizadas em quatro categorias

17

Tabela 2 - Categoria de bots

21

Lista de Figuras
Figura 1 - O processo de recuperao da informao

24

Figura 2 - Orquestrao de solicitao-resposta do Node.js

29

Figura 3 - Modelo de solicitao e resposta do Usain Bots

30

Figura 4 - Representao lgica da arquitetura do Usain Bots

31

Figura 5 - Arquivo auth.js e mtodo isAuthenticated

32

Figura 6 - Mapeamento de rotas do controlador bot.js

33

Figura 7 - Esquema MongoDB da coleo de dados "Aplicao"

33

Figura 8 - Esquema MongoDB da coleo de dados "Bot"

34

Figura 9 - Representao visual de um "Documento"

34

Figura 10 - Esquema MongoDB da coleo de dados "Documento"

35

Figura 11 - Esquema MongoDB da coleo de dados "Evento"

35

Figura 12 - Esquema MongoDB da coleo de dados "Notcia"

36

Figura 13 - Processamento de Linguagem Natural

36

Figura 14 - Mtodo getContentWiki do coletor geral

38

Figura 15 - Mtodo getNews do coletor especfico do CIn Bot

39

Figura 16 - Controlador app.js do CIn Bot

40

Figura 17 - Controlador Chat.js do CIn Bot

41

Figura 18 - View chat.html do CIn Bot

41

Figura 19 - CIn bot: Identificao de abertura e cumprimento

42

Figura 20 - CIn bot: Identificao de questionamento

42

Figura 21 - CIn bot: Ao de engajamento por sugesto

43

Figura 22 - CIn bot: Identificao de questionamento sem resposta vivel

43

Figura 23 - CIn bot: Identificao de agradecimento

44

Figura 24 - CIn bot: Identificao de notcias e eventos

44

Figura 25 - CIn bot: Identificao de encerramento do dilogo

45

Captulo 1

1. Introduo
Este captulo apresentar a motivao necessria para a realizao deste trabalho,
objetivos a serem atingidos e a maneira ao qual foi estruturado, a fim de auxiliar um bom
entendimento ao leitor.

1.1 Motivao
O avanos tecnolgicos sobre a comunicao, informao e interao humana tem
trazido consigo vrias contribuies para a sociedade. Como resultado desses avanos,
hoje temos agentes inteligentes1 que sabem a rotina das pessoas, os seus gostos e
desejos. Os esforos necessrios para o desenvolvimento destas solues acontecem em
funo da Inteligncia Artificial, uma cincia que estuda mtodos para desenvolver uma
maior interao entre o ser humano e a mquina, da maneira mais natural possvel. Uma
destas maneiras, acontece por meio dos chatterbots que representam ferramentas de
software que funcionam por meio de um terminal de dilogo, apresentando um
comportamento conversacional humano em um determinado domnio de conhecimento.
Entretanto, fazer a mquina compreender e propor um dilogo em linguagem natural no
uma tarefa simples. Para isso, estas ferramentas tecnolgicas se utilizam de
processamento de linguagem natural, uma subrea da inteligncia artificial que tem se
dedicado a analisar e promover a compreenso.
Levando em considerao a capacidade que essas ferramentas tm em interagir
com o ser humano por meio de dilogo e pela sua capacidade de adaptao a novos
domnios de conhecimento, de vivel a elaborao de um servio inteiramente dedicado
a construo destas ferramentas com a aplicao de tcnicas bem estabelecidas de PLN,
de maneira que se torne possvel elaborar um modelo vigente de construo e
gerenciamento de bots a partir de um servio web.

1.2 Objetivos
1.2.1 Gerais
O objetivo deste trabalho compreender e trabalhar conceitos inerentes inteligncia
artificial, mais precisamente sobre o processamento de linguagem natural para a criao
de um servio web de criao e gerenciamento de bots.
1

"Agente inteligente Wikipdia, a enciclopdia livre." 2011. 22 Nov. 2016


<https://pt.wikipedia.org/wiki/Agente_inteligente>

15

1.2.2 Especficos
Este trabalho possui como objetivos especficos:
Desenvolvimento de uma arquitetura de software que siga a proposta de um
servio web que atenda as caractersticas e essncias dos bots.
Analisar recursos dos servio web proposto por este trabalho na aplicao cliente
do Centro de Informtica (CIn) da Universidade Federal de Pernambuco (UFPE).
Aplicar tcnicas e estratgias de Processamento de Linguagem Natural em um
Sistema de Recuperao da Informao.

1.3 Organizao do trabalho


O presente trabalho est organizado em 5 captulos, dos quais o primeiro trata-se da
introduo e os 4 demais podem ser descritos abaixo:
Captulo 2 apresenta um conjunto de definies sobre Processamento de
Linguagem Natural, Inteligncia Artificial e Chatterbots.
Captulo 3 apresenta o modelo de servio web para bots proposto.
Captulo 4 apresenta a aplicao do modelo de servio web para bots por meio do
bot do CIn.
Captulo 5 so apresentados consideraes finais do trabalho assim como as
propostas para trabalhos futuros.

16

Captulo 2

2. Fundamentao Terica
Este captulo abordar conhecimentos essenciais para a boa compreenso e
continuidade deste trabalho. Propondo uma viso geral sobre os temas: Chatterbots,
Inteligncia Artificial, Processamento de Linguagem Natural e Application Programming
Interface.

2.1 Inteligncia Artificial


Desde sua origem, a inteligncia artificial (artificial intelligence ou IA) nunca avanou tanto
como ultimamente. Diversas empresas de tecnologia esto ampliando o seu arsenal de
pesquisa e se apoiando na criao de novos recursos e servios em nuvem que do a
inteligncia artificial todo o poder de processamento e armazenamento que ela outrora
no possua. A definio de IA foi modelada com o passar dos anos. A tabela 1
representa 8 definies de inteligncia artifical sobre os mais diversas perspectivas [15]
onde a parte superior da tabela se relacionam a processos de pensamento e raciocnio,
enquanto as definies da parte inferior se referem ao comportamento. As definies do
lado esquerdo medem o sucesso em termos de fidelidade ao desempenho humano,
enquanto as definies do lado direito medem o sucesso comparando-o a um conceito
ideal de inteligncia, chamado de racionalidade.
Pensando como um humano

Pensando racionalmente

O novo e interessante esforo para fazer os


computadores pensarem (...) mquinas com
mentes, no sentido total e literal.
(Haugeland, 1985)

O estudo das faculdades mentais pelo uso de


modelos computacionais. (Charniak e
McDermott, 1985)

[Automatizao de] atividades que


associamos ao pensamento humano,
atividades como a tomada de decises, a
resoluo de problemas, o aprendizado...
(Bellman, 1978)

O estudo das computaes que tornam


possvel perceber, raciocinar e agir. (Winston,
1992)

Agindo como seres humanos

Agindo racionalmente

A arte de criar mquinas que executam


funes que exigem inteligncia quando
executadas por pessoas. (Kurzweil, 1990)

Inteligncia Computacional o estudo do


projeto de agentes inteligentes. (Poole et al.,
1998)

O estudo de como os computadores podem


fazer tarefas que hoje so melhor
desempenhadas pelas pessoas. (Rich and

AI... est relacionada a um desempenho


inteligente de artefatos. (Nilsson, 1998)

17

Knight, 1991)
Tabela 1 - Algumas definies de inteligncia artificial, organizadas em quatro categorias [15].

2.1.1 The Imitation Game


O levantamento das perspectivas da inteligncia artificial so resultados de um esforo
inicial proposto por Alan Turing em 1950 com o The Imitation Game [18], que tinha como
um dos seus objetivos definir um conceito comum de IA no existente at ento. Turing
afirmou que:
No sabemos definir precisamente o que inteligncia e,
consequentemente, no podemos definir o que inteligncia
artificial. Entretanto, embora no tenhamos uma definio de
inteligncia, podemos assumir que o ser humano inteligente.
Portanto, se uma mquina fosse capaz de se comportar de tal forma
que no pudssemos distingui-la de um ser humano, essa mquina
estaria demonstrado algum tipo de inteligncia que, nesse caso, s
poderia ser inteligncia artificial.

Em The Imitation Game, Turing elaborou um teste que hoje considerado determinstico
para aferir se uma mquina pode ser considerada ou no uma IA. Neste teste, Turing
promoveu por meio de um terminal de dilogo, uma comunicao entre homem e
mquina. Se aps algumas perguntas e respostas o ser humano no conseguisse
distinguir que estava dialogando com uma mquina, ento, esta mquina poderia ser
considerada verdadeiramente uma inteligncia artificial. Ainda no artigo The Imitation
Game, Turing trabalhou reas de conhecimentos que hoje so consideradas a base da
inteligncia artificial, so elas:
Processamento de linguagem natural (PLN): Representa a tentativa de extrair
uma representao de significado mais completo de um texto. O PLN tipicamente
faz uso de conceitos lingusticos, tal como a explorao da estrutura gramatical de
um texto [9]. Esta rea de estudo um dos focos deste trabalho e ser melhor
detalhada na seo 2.3.
Representao de conhecimento: Estuda como o conhecimento pode ser
representado e manipulado simbolicamente de forma automatizada por programas
de raciocnio. Mais informalmente, a parte da AI que se preocupa com o
pensamento, e como esses podem contribuir para o comportamento inteligente [1].
Raciocnio automatizado: Se refere a uma subrea da IA que estuda formas de
simular raciocnio lgico por meio de mtodos computacionais [13].

18

Aprendizado de mquina: Aprendizagem de mquina est na interseo de


cincia da computao, engenharia e estatstica. Uma ferramenta que pode ser
aplicada a muitos problemas. Qualquer campo que precise interpretar e agir sobre
dados pode se beneficiar de tcnicas de aprendizagem de mquina. [7].

2.2 Chatterbots
Fundamentados pelo Teste de Turing, os chatterbots, so ferramentas software capazes
de propor um dilogo com o ser humano em linguagem natural. Este dilogo se d por
meio da capacidade de compreenso e simulao do seu comportamento. Simon Laven
definiu os chatterbots como [9] , ... um programa que tenta simular a conversa escrita,
com o interlocutor, tentando, pelo menos temporariamente, se fazer passar por um ser
humano. Esta percepo vem se sustentando at os dias de hoje, o objetivo dos
chatterbots se misturam com os objetivos da inteligncia artificial, no que se refere a
proximidade do comportamento humano, pois esta at hoje uma referncia
incontestvel de inteligncia.

2.2.1 Contexto histrico


Com o passar dos anos e com a evoluo da tecnologia, os chatterbots se modelaram
aos novos conceitos vigentes. Podemos analisar a evoluo dessas ferramentas por uma
viso histrica das aplicaes que foram desenvolvidas e que marcam a sua gerao,
como [2,3]:
Primeira Gerao: Os chatterbots da primeira gerao so caracterizados pela
utilizao de regras gramaticais simples e casamento de padres. Uma tcnica que
visa identificar se em um frase escrita pelo interlocutor possui uma estrutura
especfica, com o objetivo de conceber resposta aos padres encontrados. O
chatterbot ELIZA criado em 1966 por Joseph Weizenbaum, um dos precursores
desta gerao e seu papel era simular um psicanalista rogeriano2 em uma
conversa com um paciente, o instigando com perguntas sobre as questes que ele
mesmo levanta.
Segunda Gerao: A segunda gerao, baseada em tcnicas de inteligncia
artificial, como redes neurais lembrada pelo JULIA, de Michael Mauldin. Este
chatterbot representava um personagem dentro de um jogo de computador de
multi-interlocutors. Seu objetivo era de simular um jogador que auxiliava os demais
jogadores durante o decorrer do desfecho do jogo.
Terceira Gerao: A terceira e mais recente gerao de chatterbots baseada no
uso de linguagens de marcao para a construo de bases de conhecimento.

"A Abordagem Centrada na Pessoa (ACP)"


https://psicologado.com/abordagens/centrada-na-pessoa/a-abordagem-centrada-na-pessoa-acp . Acessado
em 11 dez. 2016.

19

Utilizam a linguagem AIML (Artificial Intelligence Markup Language). Seu maior


representante A.L.I.C.E (Artificial Linguistic Internet Computer Entity).
Este trabalho difere em parte das geraes e prope uma nova perspectiva de
construo de chatterbots como um sistema de recuperao da informao, que se
mostra como uma novo segmento para construo de bots [16]. O Objetivo de propor
um mtodo adaptativo para construo de bots baseado em prticas de PLN.

2.2.2 Caractersticas e Classificaes


Analisando como os chatterbots surgiram, se faz necessrio uma melhor compreenso
sobre quais caractersticas podem ser consideradas fundamentais em um olhar
generalista sobre tudo aquilo que um bot pode representar. Como podemos ver [11]:
Autonomia: Esta uma das principal caracterstica para um bot, se refere a
capacidade que ele tem sobre o controle de suas prprias aes, de modo que a
interferncia humana seja mnima ou inexistente.
Pr-atividade: esperado que o bot responda aos estmulos da conversao, por
tanto de sua responsabilidade prover a iniciativa necessria para estimular a
conversar e atingir os seus objetivos.
Continuidade temporal: Diz respeito a contnua disponibilidade do bot sobre os
seus servios.
Capacidade Social: a capacidade que o bot tem de se comunicar com os seres
humanos ou com at mesmo outros bots.
Capacidade de adaptao: Fala sobre a capacidade de adaptao de um bot em
relao a mudana de seu comportamento com base na experincia. A adaptao
pode ser relativa ao ambiente ou no sentido de melhorar a sua interao com o
interlocutor.
Flexibilidade: Um bot com flexibilidade no executa aes pr-definidas, pois
possui a capacidade de escolher dinamicamente as aes e a sequncia de aes
em resposta a um estado do ambiente.
Carter: Possui personalidade e estado emocional.
Em uma viso da representatividade de um bot, possvel analisar em sua maior parte
caractersticas e essncias humanas, tambm fazendo parte o atendimento domnios de
conhecimentos que podem variar de acordo com sua finalidade. Existem hoje diversos
tipos de bots sobre os mais variados domnios de conhecimento, como pode ser visto na
Tabela 2.

20

Categoria

Caractersticas

Academic bots

Relacionados aos assuntos acadmicos como sites de professores


ou laboratrios

Design bots

Possuem ferramentas e habilidades para a produo de outros bots


e agentes inteligentes

Commerce bots

Desempenham atividades de comrcio na internet

Fun bots

Divertem interlocutors atravs de jogos, ambientes virtuais e


personagens de realidade virtual

Government bots

Buscam informaes em site governamentais

Knowledge bots

Congrega agentes inteligentes, agentes de informao, agentes da


web e muitas ferramentas inteligentes de busca

News bots

Criam jornais personalizados e clips de artigos de jornais do mundo


inteiro

Search bots

Bots e agentes inteligentes de busca na Internet

Shopping bots

Fazem compras e comparaes de preos para internautas

Stock bots

Monitoram o mercado de aes e mandam mensagens sobre os


ltimos preos e tendncias

Update bots

Avisam ao interlocutor quando um site especificado foi atualizado


ou modificado

Chatter bots

So programas que simulam uma conversa com um ser humano


Tabela 2 - Categoria de bots [10]

Naturalmente os bots podem ter um ou mais domnios e sua base de conhecimento


, tambm uma caracterstica de um bot o auto conhecimento, sendo capaz de
responder perguntas como: "Qual o seu nome?" e "Qual o seu propsito?".
3

2.2.3 Modelos de aquisio de conhecimento


Em termos de base de conhecimento, um dos desafios para os bots est no processo de
aquisio de novos conhecimentos, um bot est hoje limitado ao seu contexto de domnio,
isso diz respeito capacidade que ele tem em conseguir suprir a necessidade de
conhecimento do interlocutor sobre o domnio ao qual o bot foi desenvolvido. Em muitas
vezes o bot acaba por no atender as expectativas por no possuir uma base de
3

"Base de conhecimento Wikipdia, a enciclopdia livre."


https://pt.wikipedia.org/wiki/Base_de_conhecimento. Acessado em 11 dez. 2016.

21

conhecimento ampla, sendo assim, as tcnicas de aquisio de conhecimento servem


para este propsito. So elas [14]:
Aquisio natural de conhecimento: Essa forma prov que um bot possa
adquirir conhecimento de maneira natural, ou seja, por meio do dilogo que
realizado. Contudo, isso requer um mecanismo que identifique que o interlocutor
est propondo um novo conhecimento.

Aquisio impositiva de conhecimento: Uma outra maneira representada pela


insero direta na base de conhecimento. Nesta tcnica o conhecimento contido na
base de dados da aplicao se d de maneira impositiva pelo desenvolvedor ou
detentor do bot.

Extrao do conhecimento da Web: comum a utilizao de mecanismo


extratores de contedo da web, como fruns e Wikis. Neste tipo de aquisio
utilizado algum sistema de extrao de contedo ou at mesmo adotada a tcnica
de web scraping4, que visa extrair de uma pgina web contedos de relevncia que
posteriormente sero moldados para que se adequem estrutura da base de
dados.

2.3 Processamento de Linguagem Natural


Podemos aferir que as reas de conhecimentos levantadas por Turing e sobre o seu teste
envolvendo chatterbots encadearam uma enorme quantidade de pesquisas na IA, em
funo do objetivo deste trabalho, PLN em uma forma mais detalhada, trata-se da rea de
conhecimento que em conjunto com a lingustica, estuda os problemas da gerao e
compreenso automtica de lnguas humanas naturais, observando aspectos de
comunicao humana como sons, palavras, sentenas e discursos, considerando
formatos e referncias, estruturas e significados, contextos e usos [1]. Diante disso, este
trabalho ir realizar um levantamento sobre seus conceitos.

2.3.1 Nveis de entendimento


O PLN no algo simples, devido a difcil tarefa de fazer a mquina compreender e se
comunicar sobre a complexidade e ambiguidade de linguagem natural. Contudo, a fim de
solucionar esta problemtica o PLN fixa as suas razes para estudar os mais diferentes
nveis de entendimento da linguagem, que so [5, 22]:
Fontico: Parte da lingustica focada no estudado e nas variedades de
relacionamento das palavras e os sons que elas produzem no ato da fala.

"Web scraping - Wikipedia." https://en.wikipedia.org/wiki/Web_scraping. Acessado em 11 dez. 2016.

22

Morfolgico: Diz respeito a identificao das palavras em uma sentena.


Analisando as suas unidades de significado primitivo e na classificao em
categorias morfolgicas.
Sinttico: Semelhante ao nvel morfolgico, o nvel sinttico define a estrutura de
uma frase, sobre o papel individual de cada palavra em um sentena.
Semntico: Estuda o relacionamento das palavras com seus significados e de
como eles so combinados para formar os significados das sentenas.
Pragmtico: Parte da lingustica que estuda a linguagem no contexto de sua
utilizao, o uso de frases e sentenas em diferentes contextos, afetando o
significado.

2.3.2 Processamento
2.3.2.1 Aplicaes
Sendo o respaldo lingustico de fundamental importncia para o PLN, tambm
necessrio compreender a utilizao tcnica desses conhecimentos em aplicaes reais.
Esta seo do trabalho ser abordada uma sntese sobre os tipos mais comuns de
aplicaes de PLN. So eles [6]:
Sistemas de sumarizao automtica: Esses sistemas caracterizam-se por gerar
extratos (justaposio de pores do texto fonte) ou resumos (texto gerado a
partir de um plano de resumo) de um ou mais textos de acordo, por exemplo, com
uma determinada taxa de compresso.
Sistemas de traduo automtica: Partem de um texto fonte, escrito em uma
lngua natural x, e produzem um texto alvo, ou seja, uma verso do texto fonte em
uma lngua y. A adoo de sistemas de traduo automtica em bots aumenta a
abrangncia de atendimento novas lnguas naturais.
Dentre as aplicaes de PLN, este trabalho ir implementar um Sistemas de
recuperao de informao (RI), estes sistemas tratam essencialmente de indexao,
busca e classificao de documentos textuais, com o objetivo de satisfazer a necessidade
da informao expressas atravs de consultas [1]. Dentre os componentes essenciais de
um RI esto o interlocutor, a necessidade da informao e uma coleo de documentos.
Estes documentos podem ser representados por qualquer fonte de acesso textos, seja
um pgina Web, um arquivo de texto ou a representao de ambos em uma base de
dados.
A representao do processo de recuperao da informao pode ser vista na
Figura 1, onde possvel observar que a interface com o interlocutor e o sistema de

23

gerenciamento de base de dados (SGBD) para a coleo de documentos compem as


extremidades do processo. Contudo, necessrio atenuar para todo o fluxo que ocorre
entre esses dois componentes, onde a necessidade do interlocutor convertida em termo
lgico entendvel pela mquina, resultando em busca pelos documentos que condizem
com esse termo e que j se encontram indexados de maneira ordenada devido a
utilizao da tcnica de arquivo ou lista invertida5 .

Figura 1 - O processo de recuperao da informao (Adaptado de Baeza Yates & Ribeiro Neto,
1999, p, 10)

A aplicao real de um modelo de processo de RI proposto sobre a realidade dos


bots pode ser visto mais detalhadamente na seo 3.3.
2.3.2.2 Estratgias
As aplicaes em PLN mesmo tendo objetivos distintos, acabam por utilizar estratgias
semelhantes para obter um melhor desempenho, essas estratgias so adotadas no
decorrer do processamento de linguagem natural. Aqui sero abordadas as estratgias
mais comuns e que podem ser aplicadas para fins de construo de um RI. So eles [6]:
Etiquetagem: part-of-speech tagger ou etiquetador gramatical, que diz respeito
tcnica aplicada de se atribuir etiquetas a um texto, a fim de facilitar a aplicao do
conhecimento lingustico. Existem etiquetadores morfolgicos, aquelas aos quais
definem categorias morfolgicas como substantivos e adjetivos, como
etiquetadores sintticos, aquelas aos quais atribuem indicaes sintticas como
sujeito e objeto, e etiquetadores semnticos, que indicam os papis dos itens
lexicais na sentena, como agente, processo e estado.
5

"Listas invertidas Wikipdia, a enciclopdia livre." https://pt.wikipedia.org/wiki/Listas_invertidas. Acessado


em 8 dez. 2016.

24

Normalizao morfolgica (Stemming): Ocorre na reduo dos itens lexicais


atravs de conflao, que significa a combinao da representao de dois ou
mais termos em um nico termo, utilizando a remoo dos sufixos e prefixos das
palavras resultando em sua forma radical. A utilizando da normalizao
conhecida como pelo morfolgica em um bot impacta na diminuio da variao
das palavras, o que leva ao melhor processamento comparativo. Em caso da
utilizao da tcnica de casamento de padro, esse procedimento pode fazer com
que mais sentenas possam se adequar ao mesmo padro escrito.
Eliminao dos stopwords: Os stopwords so palavras funcionais, como artigos,
conectivos e preposies. Estes itens lxicos muitas vezes acabam tirando o poder
de performance do processo de linguagem natural. A adoo dessa tcnica em
bots da terceira gerao por exemplo, pode resultar em uma melhora expressiva
no casamento das regras (gatilhos) contidos em arquivos .xml.
Tokenizao: Esta tcnica consiste na quebra de um texto em segmentos
chamados tokens, estes segmentos so unidades lingusticas, tais como palavras,
sinais de pontuao ou nmeros alfanumricos. Em PLN este processo
necessrio para realizar uma anlise morfolgica sobre uma palavra (segmento). O
exemplo abaixo mostra como ocorre o processo de tokenizao:
Frase: "A casa 16 amarela e bonita!"
A

casa

16

amarela

bonita

Aplicao de mtodos estatsticos: Os mtodos estatsticos so muitos, eles


surgem da necessidade da aferio de problemticas especficas, como por
exemplo, a determinao por meio matemtico de um coeficiente de importncia
de uma palavra dentro de um texto, medido pela quantidade de repeties que a
palavra obteve em uma frase. Um dos grandes desafios para os bots est em
mensurar o quanto uma palavra pode ser importante dentro de frase, com esse
conhecimento ele pode aferir qual possvel resposta pode atingir melhor as
expectativas de um interlocutor.
Diante da vasta quantidade de tcnicas e estratgias a serem aplicadas em sistemas de
PLN necessrio uma avaliao mais detalhadas de quais combinaes de tcnicas
podem resultar em no alcance mais concreto do objetivo traado pelo sistema de PLN.

2.4 Consideraes finais

25

Observando conceitos sobre chatterbots, inteligncia artificial e a gama de tcnicas e


estratgias atreladas a PLN, assim como, seus nveis de entendimento, aplicaes e tipos
de processamento dizem respeito a conhecimentos fundamentais para a construo da
aplicao ao qual este trabalho se prope. possvel tambm compreender que o uso de
Sistemas de Recuperao da Informao dizem respeito ao conjunto destas tcnicas com
o objetivo real e comum da necessidade da informao.
O prximo captulo visa apresentar a aplicao proposta em comparativo com os
assunto abordados at o presente momento, realizando anlise e apresentao de
modelos adaptativos realidade dos bots.

26

Captulo 3

3. Usain Bots
Este captulo abordar a proposta proposta de servio do Usain Bots, demonstrando suas
caractersticas, arquitetura e conceitos que auxiliam a construo de bots.

3.1 Proposta
O Usain Bots trata-se de um servio web sobre o conceito Open Source destinado ao
gerenciamento e processamento lgico de bots que so projetados para atender as
necessidades e caractersticas essenciais dos mesmos. So algumas caractersticas do
servio:
Arquitetura de dados para gerenciamento de bots e aplicaes cliente;
Aplicao de PLN em um Sistema de Recuperao da Informao;
Mecanismo de controle de acesso;

3.1.1 Aplicao das caractersticas de um bot

Dentre as caractersticas que dizem respeito a essncia de um bot e que podem


ser vistas na seo 2.2.1, a aplicao proposta compreende:
Autonomia: A autonomia do servio est na classificao de maneira
autnoma de intenes baseada um treinamento supervisionado.
Pr-atividade: A aplicao tem como um de seus objetivos o buscar
estmulo da conversa por meio de sugestes de novos assuntos e atravs
de questionamento realizados ao interlocutor.
Continuidade temporal: Sendo esta uma importante caracterstica de um
bot, o servio proposto conta com um tratamento de falhas que possui o
objetivo de minimizar possveis interrupes no servio.
Capacidade Social: Por meio de um protocolo de comunicao web HTTP
a aplicao prov entre seus servios a troca de interao social com
interlocutors de aplicaes clientes. Atendendo a estmulos de interao que
esto fora da base de conhecimento especfica.

27

3.1.2 Modelo de aquisio de conhecimento


Dentre os modelos de aquisio de conhecimento referenciados na seo 2.2.3, foi
adotado o modelo de aquisio impositiva do conhecimento e a extrao do
conhecimento da Web. A aplicao destes modelos compreendem a base de
conhecimento de um bot no servio. A carga de conhecimento se d por meio de uma
requisio HTTP para o servio do Usain Bots seguindo a especificao contida na
documentao6 .
Os arquivos de conhecimento so inseridos na base de dados seguindo um
conceito de documento que pode ser visto na seo 3.3.2.3, sendo a responsabilidade do
administrador do bot a sua atualizao de base de conhecimento. Em especial, a extrao
do conhecimento da Web se mostra uma forte aliada pela busca da gerao do
conhecimento de maneira mais autnoma, minimizando a necessidade de uma
interveno to direta e manual do administrador na produo de conhecimento.

3.2 Arquitetura
3.2.1 Node.js e Express
Atendendo necessidade da aplicao deste trabalho, a tecnologia Node.js foi adotada
como ferramenta que ir suprir a necessidade de desenvolvimento de um servio web.
Criada por Ryan Dahl em 2009, o Node.js uma plataforma Open Source escrita em
JavaScript e que utiliza a engine V8 do navegador Google Chrome para desenvolvimento
de aplicaes server-side com o objetivo de auxiliar os desenvolvedores a criarem
aplicaes de rede de alta flexibilidade e escalabilidade. Contudo, a fim de diminuir o
tempo de desenvolvimento de uma aplicao Node.js, este trabalho adotou tambm o
framework Express. Este framework acrescenta ao Node.js alguns componentes
essenciais para desenvolvimento de aplicaes em rede. Como por exemplo,
rastreamento de rotas, sistema de middlewares, gerenciamento de sesso e arquivos.
3.2.1.1 Arquitetura do Node.js
Para compreendermos o Node.Js se faz necessrio o entendimento de sua arquitetura e
caractersticas que o fazem. Como possvel ver na Figura 2. So eles:
E/S no bloqueante: O Node.js trabalha sobre o conceito de solicitaes de
entrada e sada no bloqueantes. Desta forma, no existe a interrupo natural de
todos os demais processos quando uma solicitao recebida [17].
Single Thread: O Node.js usa uma instncia da aplicao para gerenciar todas as
solicitaes e conexes na rede. Quando o Node.js inicializado, ele informa ao

Documentao Usain Bots - http://docs.usainbot.apiary.io/

28

sistema operacional que ele deve ser notificado quando uma nova conexo feita
e assim ativa o modo de suspenso para economia de uso da CPU [17].
Event Loop: o agente responsvel por escutar e emitir eventos da aplicao. Em
poucas palavras ele um loop infinito que a cada iterao verifica em sua fila de
eventos se um determinado evento foi emitido [12].
Libuv: Corresponde a uma biblioteca escrita em C++ responsvel pelas operaes
de entrada/sada e pelo event loop. Ela composta pela thread pool de tamanhos
fixos, onde uma thread alocada para cada operao de entrada/sada [17].
Callbacks: So eventos de retorno, funes JavaScript que so colocadas em fila
para serem chamadas quando permitidas, executando o fluxo da solicitao [12].

Figura 2 - Orquestrao de solicitao-resposta do Node.js [17]

A figura acima demonstra o processo de solicitao e resposta no Node.js. Quando


uma nova solicitao registrada pelo Node.js, o event loop delega a solicitao para as
threads de trabalho e registra os seus respectivos callbacks. A partir disso, processos de
controle da aplicao, conexo base de dados e solicitao a novos servios web so
liberados e executados de maneira assncrona, permitindo que o event loop est sempre
disponvel para receber novas solicitaes.
3.2.1.2 Arquitetura MVC com Node.js e Express
Apesar de no possuir um modelo arquitetural rgido, o Node.js em conjunto com o
Express permitem a utilizao do modelo de arquitetura de software MVC (Model, View,
Controller). Uma caracterstica forte que representa este modelo a separao da
camada lgica da aplicao da camada de apresentao. Onde cada elemento possui
papis e responsabilidades bem definidas e distintas. So alguns elementos arquitetura:

29

Model: Responsvel por definir e manipular os dados em Node.js, esta


camada est diretamente ligada ao banco de dados escolhido.
View: Representa a camada de apresentao do contedo, sendo a
camada de interao com o cliente (interlocutor).
Controller: Diz respeito a parte lgica da aplicao, tem como principal
funo executar o fluxo da aplicao e servir como intermediador entre o
model e a view.
Dispatcher: Este componente recebe as requisies HTTP e tem como
funo o processar essas solicitaes de entrada e determina qual a rota
correspondente a requisio ser executada.
Router: Diz respeito aos end-points (URIs). Este componente tem como
responsabilidade acionar os middlewares atrelados definidos para cada rota
do controlador.
Este trabalho ir compreender uma adaptao da arquitetura MVC para MC, uma vez que
servios web no exigem obrigatoriamente a implementao da camada de apresentao.
Sendo assim, o modelo representativo do processo de solicitao e resposta
representado pela Figura 3.

Figura 3 - Modelo de solicitao e resposta do Usain Bots.

30

3.3 Usain Bots


Sobre os conceitos de desenvolvimento de aplicaes Node.js, esta seo demonstra a
organizao arquitetural do servio Usain Bots, compreendendo seus principais mdulos
e componentes. A Figura 4 ilustra a arquitetura sobre um representao lgica.

Figura 4 - Representao lgica da arquitetura do Usain Bots

Seguindo a continuidade desta leitura, as prximas sees iro apresentar cada mdulo
da arquitetura, ressaltando os seus papis e caractersticas.

3.3.1 Mdulo de Comunicao


O mdulo de comunicao e acesso representa a entrada e sada para servios externos,
este mdulo aplica o modelo REST7 de Application Programming Interface (API) a fim de
propor uma interface de comunicao padronizada para uso dos servios do Usain Bots.
A comunicao ocorre por meio de requisies dos mais diferentes recursos, estas
requisies so enviadas ao mdulo de controle de acesso para que o fluxo lgico do
servio possa prosseguir ou no.

3.3.2 Mdulo de Controle


Do ponto de vista lgico, este mdulo representa o fluxo de controle do servio,
compreendido pelos controladores e modelos da representao da arquitetura MVC.
Desta forma, os componentes deste mdulo influem diretamente no acesso aos outros
7

"REST Wikipdia, a enciclopdia livre." https://pt.wikipedia.org/wiki/REST. Acessado em 12 dez. 2016.

31

mdulos ou na recusa de acesso por parte de uma solicitao do cliente, podendo


tambm existir uma comunicao de acesso entre si.
3.3.2.1 Mecanismo de autenticao
Em funo da necessidade de segurana dos dados e respectivamente dos bots, o
mecanismo de autenticao da API representa a aplicao do conceito de JSON Web
Token (JWT) [8], que utiliza tokens como mecanismo de validao e autorizao, os
tokens representam um hash em base64 seguindo o modelo header, payload e signature,
onde todos esto notados em JSON. O componente header informa qual tipo de token
est sendo gerado e qual algoritmo que foi utilizado para a criptografia, o payload
corresponde ao dados que sero criptografados, e por fim, o signature como o prprio
nome diz, a assinatura do hash que no pode ser descriptografado e que armazena
tambm a validade de expirao um token, sendo ele responsvel ento por garantir a
integridade dos dados armazenados. Desta forma, a aplicao do middleware em rotas
garante a segurana de acesso e gerenciamento do bot. O mtodo isAuthenticated, visto
na Figura 5, representa a funo que faz o tratamento da autorizao de acesso.

Figura 5 - Arquivo auth.js e mtodo isAuthenticated

Em termos de aplicao cliente, foi aplicado um mtodo extra de segurana, onde


cada aplicao cliente possui um secret, que tambm corresponde a um hash em base64.
Este uma hash gerado de maneira independente sem validade de expirao e
representa a identificao mais segura de uma aplicao cliente.

32

3.3.2.2 Controladores
Os controladores so componentes de fluxo lgico do servio, capaz de orquestrar e
acionar os demais mdulos, estes so representados tambm por um mecanismos de
rastreamento de rotas como pode ser visto na Figura 6.

Figura 6 - Mapeamento de rotas do controlador bot.js

3.3.2.3 Modelos e Base de dados


Os modelos em uma arquitetura MVC esto ligados base de dados. Desta forma, uma
boa aderncia entre o modelo de dados adotado e a tecnologia do servio de
fundamental importncia. Sendo assim, a escolha pelo SGBD se fundamentou na anlise
dos critrios de dinamismo, flexibilidade e melhor compatibilidade com JavaScript
(Node.js). Seguindo estes critrios foi adotado um SGBD no SQL representado neste
trabalho pelo MongoDB8 , um dos mais relevantes SGBDs no SQL, que est no entre os
5 SGBDs mais populares no mundo, sendo primeiro lugar entre os SGBDs no SQL [4].
A compreenso dos modelos no MongoDB representada atravs de esquemas
que tem como funo determinar os atributos de uma coleo de dados juntamente com
seus tipos e caractersticas. So modelos aplicados neste trabalho:
Modelo Aplicao
O Modelo Aplicao apresentado na Figura 7, um coleo de dados que
representa uma aplicao cliente seguindo critrios de segurana vistos na seo
3.3.2.1. Este modelo composto pelo id da aplicao gerado de forma automtica
pelo MongoDB, nome e pelas credenciais de acesso secret e token.

"MongoDB for GIANT Ideas | MongoDB." https://www.mongodb.com/. Acessado em 9 dez. 2016.

33

Figura 7 - Esquema MongoDB da coleo de dados "Aplicao"

Modelo Bot
O Modelo Bot apresentado na Figura 8, um coleo de dados que representa um
bot, compreendido pelos atributos idApp, que faz referncia ao id da coleo
Aplicao, o nome do bot, a data da criao da coleo e frases de abertura,
agradecimento, encerramento, engajamento e sem resposta, que auxiliam no
processo de PLN.

Figura 8 - Esquema MongoDB da coleo de dados "Bot"

Modelo Documento
O modelo Documento, visto na Figura 10 representa um conceito de documento
compreendido pela Figura 9. Para este trabalho um documento uma parte de um
todo, considerando o todo como qualquer tipo de texto contendo um ttulo e
contedos, neste caso, podemos enxergar um documento como uma frao
composta pelo ttulo e o contedo de um texto com n ttulos e n contedos.

34

Figura 9 - Representao visual de um "Documento"

O esquema de um documento, representado pela Figura 12, composto


pelo seu id, idBot que considerado a chave de identificao da coleo de dados
Bot, o atributo tags que diz respeito ao modelo de indexao de um documento, o
atributo dataCriacao representa a o momento em que o documento foi gerado, e os
atributos uri e seletor so derivados a partir de uma coleta a uma pgina web, se
referindo respectivamente ao endereo da pgina e ao nvel de profundidade de
uma elemento HTML em uma rvore DOM9 .

Figura 10 - Esquema MongoDB da coleo de dados "Documento"

Modelo Evento e Notcia


Estes modelos so colees de dados especficas para o CIn Bot e representam a
coleo de notcias e eventos extrados do site institucional do departamento. As Figuras
11 e 12 apresentam o modelo de dados definidos para estas colees e que so
compostas pelo chave de identificao do modelo de dados Bot, ttulo da notcia ou do
evento, o endereo uri da pgina de extrao do contedo, data da postagem do evento e
resumo da notcia.

Figura 11 - Esquema MongoDB da coleo de dados "Evento"

"Modelo de Objeto de Documentos Wikipdia, a enciclopdia livre."


https://pt.wikipedia.org/wiki/Modelo_de_Objeto_de_Documentos. Acessado em 9 dez. 2016.

35

Figura 12 - Esquema MongoDB da coleo de dados "Notcia"

3.3.3 Mdulo de Processamento de Linguagem Natural


O Mdulo de PLN representa a juno dos componentes que formam o processamento
textual e de recuperao da informao. Estes esto descritos pelos componentes:
3.3.3.1 Extrao
O componente de extrao tem como finalidade atuar sobre o processamento textual,
aplicando mtodos do PLN para extrair de uma frase apenas elementos que possam ser
aproveitados para um processo de indexao de um documento ou por um tratamento de
de classificao de uma frase. As etapas deste processo podem ser vista na Figura 13 e
melhor representadas conceitualmente na seo 2.3.

Figura 13 - Processamento de Linguagem Natural

3.3.3.2 Classificador
O componente Classificador compreende a necessidade de identificao da classificao
de uma frase provinda de um interlocutor a fim de determinar qual a inteno do mesmo e
prover a continuidade do fluxo lgico para o tratamento de cada uma das seguintes
categorias:
Abertura: Identifica que a frase possivelmente uma saudao
Agradecimento: Identifica que a frase se trata de um agradecimento
Questionamento: Identifica que a frase possivelmente um questionamento
Encerramento: Identifica que a frase se trata de um encerramento de dilogo
Cumprimento: Identifica que a frase se trata de um cumprimento por parte do
cliente.

36

Este procedimento ocorre pela aplicao do algoritmo classificador Naive Bayes10 ,


que por meio de um treinamento supervisionado e pela aplicao de mtodos estatsticos
encontrados no Teorema de Bayes11 consegue determinar padres nos texto que
possibilitam determinar a categoria de novos textos. Em poucas palavras, o processo
ocorre na insero de n entradas que correspondem a frases e suas respectivas
categorias previamente definidas, aps o treinamento, o algoritmo est apto a determinar
sobre qual categoria uma frase pertence. Este algoritmo foi implementado no Usain Bots
com o objetivo de reconhecimento de inteno, a fim de determinar qual a classificao
de um frase de entrada e prover comportamentos distintos para cada classificao.
3.3.3.3 Pesagem
Este componente tem como funo a anlise de uma srie de documentos provindos da
base de dados e que sero pesados para determinar qual documento atende melhor as
necessidade de um interlocutor. Sendo assim, um documento com ttulo e contedo(s)
passam previamente pelo componente de extrao com o objetivo de gerar suas
respectivas tags, essas tags correspondem ao indexador do prprio documento e so elas
que iro auxiliar no processo da recuperao da informao. Sentindo a necessidade de
buscar uma frase recm processada, a consulta ao banco de dados se d da verificao
igualitria entre frase e tags.
Uma vez coletado os documentos que correspondem uma frase, aplicado sobre
cada documento recuperado do banco de dados um mapeamento de peso pelo algoritmo
Td-idf, uma medida estatstica que avalia o quo importante uma palavra um documento
de acordo com a frequncia com que ela se repete. Desta forma, ocorre uma verificao
do peso de cada palavra de uma frase e cada um dos documentos recm recuperados.
Posteriormente ainda aplicado uma mdia ponderada para ttulo e contedos de cada
documento, onde ttulo corresponde ao peso 2 e contedo ao peso 1. Isso se torna
necessrio para suavizar a disparidade de peso que um documento com maior contedo
tem sobre um documento com menor contedo. A frmula representa o clculo final de
um peso:

PD =

( 2(T / QT ) ) + ( 1( C i / QC i) )
i=1

Onde,
PD: Peso resultante de um documento n.
10

"Naive Bayes classifier - Wikipedia." https://en.wikipedia.org/wiki/Naive_Bayes_classifier. Acessado em 9


dez. 2016.
11
"Teorema de Bayes Wikipdia, a enciclopdia livre." https://pt.wikipedia.org/wiki/Teorema_de_Bayes.
Acessado em 9 dez. 2016.

37

T : Peso resultante do algoritmo Td-Idf para o ttulo no mesmo documento n.


QT: Quantidade de palavras de um ttulo do documento n.
Ci : Peso resultante do algoritmo Td-Idf para contedo n do mesmo documento i.
QCi : Quantidade de palavras de um contedo i.
Aps isso, o algoritmo retorna a frase que possui o maior peso, entendendo-se que esta
possa atender melhor s necessidades do interlocutor.

3.3.4 Mdulo de extrao de dados


O mdulo de extrao de dados representa os componentes que atuam sobre a aquisio
do conhecimento de um bot a partir da extrao do conhecimento da web. Este mdulo
conta com coletores de uso geral, aqueles aos quais podem ser usados por qualquer bot
que pretenda extrair contedo da web, como tambm os coletores especficos, criados
apenas para a construo do CIn Bot. Em exemplo pode ser visto na Figura 14 e na
Figura 15 uma das funes que correspondem aos coletores gerais e especficos
respectivamente.

Figura 14 - Mtodo getContentWiki do coletor geral

38

Figura 15 - Mtodo getNews do coletor especfico do CIn Bot

3.4 Consideraes finais


Este captulo apresentou o conceito do Usain Bots em conjunto com sua arquitetura e
implementao, que busca facilitar o desenvolvimento de bots por meio de um servio
web, respeitando a essncia de um bot e provendo componentes que se adaptam s suas
necessidades.
O prximo captulo visa explicar o uso dos recursos propostos pelo Usain Bots em
funo da construo da aplicao cliente CIn Bot.

39

Captulo 4

4. Utilizao do Usain Bots na construo do bot


do CIn
Este captulo abordar a aplicao de uso do servio web Usain Bots em uma interface
cliente do Centro de Informtica da Universidade Federal de Pernambuco, sendo assim,
foi realizada a construo de uma aplicao web denominada CIn bot que ir consumir os
dados provindos pelo servio proposto por este trabalho.

4.1 Arquitetura
A aplicao CIn Bot foi desenvolvida tambm em uma arquitetura MVC e se deu pela
adoo do
framework front-end Angular.js12 , escolhido por sua praticidade de
implementao e por abranger um cliente HTTP embutido que facilita a comunicao a
servios externos como o do Usain Bots.

4.1.2 Controlador
O CIn bot conta com dois controladores com funes e responsabilidades distintas, so
eles:
App: Diz respeito ao controlador geral da aplicao, este compreende as
configuraes bsicas para funcionamento da aplicao, como injeo de mdulos
e rastreamento de rotas. Como pode ser visto na Figura 16.

Figura 16 - Controlador app.js do CIn Bot

Chat: O controlador Chat responsvel por aplicar o fluxo lgico do CIn Bot, com
solicitaes ao servio Usain Bots e injetando os objetos JavaScript na View
chat.html. Este pode ser representado pela Figura 17.

12

"AngularJS Superheroic JavaScript MVW Framework." https://angularjs.org/. Acessado em 12 dez. 2016.

40

Figura 17 - Controlador Chat.js do CIn Bot

4.1.3 View
No que se a camada de apresentao, o CIn bot contempla a view chat.html,
representada na Figura 18 sobre uma estrutura html necessria para uma interface de um
terminal de dilogo, compreendendo estruturas e notaes de repeties.

Figura 18 - View chat.html do CIn Bot

4.2 Utilizao do servio


O detalhamento de instalao e uso do servio do Usain Bots est contida em sua
documentao13 e pode ser utilizada segundo as necessidades da aplicao cliente. Todo
o cdigo est disponvel para futuras contribuies em:

13

Documentao Usain Bots - http://docs.usainbots.apiary.io/

41

https://github.com/jorgehclinhares/usainbots
Ser apresentado de maneira explcita critrios de uso do servio por meio da
correlao dos mesmos com as caractersticas encontradas na seo 3.1.1.

4.2.1 Identificao de abertura e cumprimento


Como proposto, a Figura 19 apresenta a aplicao que realiza sempre a abertura do
dilogo e compreende uma cumprimento por meio do interlocutor instigando a ele sobre
algum questionamento. Este critrio atende noes de pr-atividade

Figura 19 - CIn bot: Identificao de abertura e cumprimento

4.2.2 Identificao de questionamento e proposio de sugestes


A figura 20 e 21 demonstram a ao de identificao de questionamento sem mesmo a
necessidade de uso da interrogao, o servio do Usain Bots prope a resposta esperada
pelo interlocutor alm de sugestes de novos temas ao qual ele detm conhecimento.

Figura 20 - CIn bot: Identificao de questionamento

42

Figura 21 - CIn bot: Ao de engajamento por sugesto

4.2.3 Identificao de questionamento e sem resposta vivel


Como exemplificada na Figura 22, o servio do Usain Bots identificou um questionamento
que no compreendia resultados esperados na sua base de conhecimento, ento ele
informou desconhecer sobre desconhecimento do assunto e tambm props novos
assuntos como o visto na seo 5.3.2.

Figura 22 - CIn bot: Identificao de questionamento sem resposta vivel

4.2.4 Identificao de agradecimento


uma das funes do servio Usain Bots est em identificar tambm agradecimentos por
parte do interlocutor e assim retribuir de maneira igualitria o gesto proporcionado. visto

43

na Figura 23 a representao do dilogo que acrescenta a resposta um engajamento em


forma de questionamento sobre outros assuntos de interesse do interlocutor.

Figura 23 - CIn bot: Identificao de agradecimento

4.2.5 Funes extras


Aos servios propostos pelo Usain Bots, foram acrescentados categorias de identificao
especficas para o CIn Bot, so elas:
Notcia: Diz respeito a identificao da inteno de uma busca pelas notcias mais
recentes.
Evento: Compreende a identificao da inteno de uma busca pelos eventos
mais recentes.
Por meio da identificao destas categorias especficas que diferem das
encontradas na seo 5.2, o CIn bot capaz de coletar por meio da tcnica de web
scraping as ltimas notcias e eventos relacionados ao Centro de Informtica da UFPE,
como por ser visto na Figura 24.

44

Figura 24 - CIn bot: Identificao de notcias e eventos

4.2.6 Identificao de encerramento


Como tambm mencionado na seo 5.2, o servio do Usain Bots identifica o
classificao encerramento como uma oportunidade de compreender que o interlocutor
deseja encerrar o dilogo, sendo assim, proposto uma despedida ao interlocutor como
pode ser vista na Figura 25.

Figura 25 - CIn bot: Identificao de encerramento do dilogo

45

Captulo 5

5. Concluso e trabalhos futuros


Devido aos esforos e estudos oriundos da dcada de 50 a Inteligncia artificial vem
evoluindo e hoje atinge um patamar ao qual a projeta como uma tecnologia que pode
trazer potencial de inovao para uma organizao, a adoo de ferramentas de IA vem
se tornando cada vez mais comum, uma destas ferramentas so os chatterbots ou bots
como foram tratados neste trabalho. Estas ferramentas se mostraram verdadeiramente
poderosas pelo seu potencial de interao direta com o ser humano, viabilizando um
canal de comunicao que pode ser explorado por inmeros contextos de uso.
O objetivo principal deste trabalho foi de compreender a essncia e conceitos que
levam a construo de um bot, a fim de propor um servio web open source que auxilia
nesta atividade. Desta forma, desenvolvedores podem centralizar os seus esforos
unicamente para construir levar o processamento lgico de um bot para a nuvem,
ocasionando em uma reduo de esforos na criao de bots como um software
centralizado.
O servio Usain Bots proposto explorou as principais necessidades de um bot,
assim como na compreenso das suas caractersticas fundamentais, da necessidade por
aquisio de conhecimento e pelas regras de identificao de inteno. Alm disso,
outras caractersticas essenciais para servio web como este, aplicando mecanismos de
controle de acesso e gerenciamento de aplicaes clientes.
As limitaes do trabalho incluem uma melhoria no mdulo de aquisio de
conhecimento da web que se adapte a novas necessidades e que resulte em uma melhor
preciso de coleta, a falta de uma dicionrio de sinnimos e adoo das demais
caractersticas de um bot em sua totalidade.
Trabalhos futuros incluem:
Implementao da capacidade de memria sobre o dilogo, fazendo com que o bot
possa recuperar informaes que j ocorreram em um dilogo.
Adio da possibilidade de conexo com outros bots, fazendo com que trocas de
conhecimento especficos entre bots possam ser viabilizadas.
Adio da caracterstica de flexibilidade e capacidade de adaptao que podem
resultar em uma maior eficincia de compreenso de um ambiente criado pelo
interlocutor. Fazendo que o bot possa responder a estmulos que no foram
previamente definidos.

46

Adio da caracterstica de carcter, fazendo com que o bot possa responder a


estmulos de sentimentos e que possa apresentar a sua prpria personalidade.
Adoo de um dicionrio de sinnimos aplicados sobre um questionamento do
interlocutor para que ocorra uma melhor chance de recuperao de um documento
no sistema de recuperao da informao.

47

Referncias Bibliogrficas
[1] BRACHMAN, Ronald J.; LEVESQUE, Hector J.. Knowledge representation and reasoning:
subttulo do livro. 1 ed. [S.L.]: MORGAN KAUFMANN, 2014. 413 p.
[2] CASTANHO, Carla Lisiane De Oliveira; WAZLAWICK, Raul Sidnei. A avaliao do uso de
chatterbots no ensino atravs de uma ferramenta de autoria. Disponvel em:
<http://www.br-ie.org/pub/index.php/sbie/article/view/160>.Acesso em: 12 jan. 2012.
[3] COMARELLA, Rafaela Lunardi; CAF, Lgia Maria Arruda. Chatterbot: conceito,
caractersticas,
tipologia
e
construo.
Disponvel
em:
<http://www.ies.ufpb.br/ojs/index.php/ies/article/view/1758>.Acesso em: 12 jan. 2012.
[4] DB-ENGINES. Db-engines ranking. Disponvel em: <http://db-engines.com/en/ranking>.
Acesso em: 12 dez. 2016.
[5] FILHO, Eustquio Czar Pereira. O uso do processamento de linguagem natural na
construo
de
chatterbots.
Disponvel
em:
<https://dcc.catalao.ufg.br/up/498/o/Eustaquio2009.pdf>. Acesso em: 12 jan. 2012.
[6] GONZALEZ, Marco; LIMA, Vera L. S. De. Recuperao de informao e processamento da
linguagem
natural.
Disponvel
em:
<http://www.inf.pucrs.br/~gonzalez/docs/minicurso-jaia2003.pdf>. Acesso em: 12 jan. 2012.
[7] HARRINGTON, Peter. Machine learning in action: subttulo do livro. 1 ed. [S.L.]: Manning,
2012. 382 p.
[8] JWT. Introduction to json web tokens. Disponvel em: <https://jwt.io/introduction/>. Acesso
em: 12 dez. 2016
[9] KAO, Anne; POTEET, Stephen R. Natural language processing and text mining. 1 ed.
[S.L.]: Springer, 2007. 272 p.
[10] LAVEN, Simon. The Simon Laven Page. Disponvel em: <http://www. simonlaven.com>.
Acesso em: 12 dez. 2016.
[11] LEONHARDT, Michelle Denise. Doroty: um chatterbot para treinamento de profissionais
atuantes
no
gerenciamento
de
redes
de
computadores.
Disponvel
em:
<http://www.lume.ufrgs.br/handle/10183/5659?locale=pt_br>.Acesso em: 12 jan. 2012.
[12]
PEREIRA, Caio Ribeiro. Node.js - aplicaes web real-time com node.js: Aplicaes
web real-time com Node.js. 1 ed. [S.L.]: Casa do Cdigo, 2014. 158 p.
[13]
PEREIRA,
Silvio
Do
Lago.
Raciocnio
automatizado.
Disponvel
<https://www.ime.usp.br/~slago/ia-raciocinioautomatizado.pdf>.Acesso em: 12 dez. 2016.

em:

48

[14] ROTHERMEL, Alessandra; DOMINGUES, Maria Jos Carvalho De Souza. Maria: um


chatterbot desenvolvido para os estudantes da disciplina mtodos e tcnicas de pesquisa
em
administrao
.
Disponvel
em:
<http://www.aedb.br/seget/arquivos/artigos07/923_artigos2007eget2.pdf>.Acesso em: 12 jan.
2012.
[15] RUSSEL, Stuart; NOVING, Peter. Inteligncia artificial.. 3 ed. [S.L.]: Campus, 2013. 1324 p.
[16] SHAWAR, Bayan Abu; ATWELL, Eric; ROBERTS, Andrew. Faqchat as an information
retrieval
system.
Disponvel
em:
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.63.8564>.Acesso em: 12 jan. 2012.
[17] SOUCI, Benjamin San; LEMAIRE, Maude. An inside look at the architecture of nodejs.
Disponvel em: <http://mcgill-csus.github.io/student_projects/submission2.pdf>.Acesso em: 12 jan.
2012.
[18] TURING, Alan Mathison. Computing Machinery and Intelligence. Disponvel em:
<https://www.csee.umbc.edu/courses/471/papers/turing.pdf/>. Acesso em: 20 nov. 2016.

49

Вам также может понравиться