Академический Документы
Профессиональный Документы
Культура Документы
CENTRO DE INFORMTICA
Trabalho de Graduao
BANCA EXAMINADORA
____________________________________________________
Vinicius Cardoso Garcia
Universidade Federal de Pernambuco
____________________________________________________
Kiev Santos da Gama
Universidade Federal de Pernambuco
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
16
17
17
18
19
19
20
21
22
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
27
28
3.2 Arquitetura
3.2.1 Node.js e Express
28
28
28
29
31
31
31
32
3.3.2.2 Controladores
33
33
36
3.3.3.1 Extrao
36
3.3.3.2 Classificador
36
3.3.3.3 Pesagem
37
38
39
40
40
4.1.2 Controlador
40
4.1.3 View
41
41
42
42
43
43
44
45
46
Lista de Tabelas
Tabela 1 - Algumas definies de inteligncia artificial, organizadas em quatro categorias
17
21
Lista de Figuras
Figura 1 - O processo de recuperao da informao
24
29
30
31
32
33
33
34
34
35
35
36
36
38
39
40
41
41
42
42
43
43
44
44
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
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.
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.
Pensando racionalmente
Agindo racionalmente
17
Knight, 1991)
Tabela 1 - Algumas definies de inteligncia artificial, organizadas em quatro categorias [15].
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
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.
19
20
Categoria
Caractersticas
Academic bots
Design bots
Commerce bots
Fun bots
Government bots
Knowledge bots
News bots
Search bots
Shopping bots
Stock bots
Update bots
Chatter bots
21
22
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
Figura 1 - O processo de recuperao da informao (Adaptado de Baeza Yates & Ribeiro Neto,
1999, p, 10)
24
casa
16
amarela
bonita
25
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;
27
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
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].
29
30
Seguindo a continuidade desta leitura, as prximas sees iro apresentar cada mdulo
da arquitetura, ressaltando os seus papis e caractersticas.
31
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.
33
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.
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
35
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
PD =
( 2(T / QT ) ) + ( 1( C i / QC i) )
i=1
Onde,
PD: Peso resultante de um documento n.
10
37
38
39
Captulo 4
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.
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
40
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.
13
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.
42
43
44
45
Captulo 5
46
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
49