Você está na página 1de 60

Um Chatbot para o

Centro de Informtica
Victor Fontes Seara Ferraz
vfsf@cin.ufpe.br
Trabalho de Concluso de Curso

10 de Julho de 2017
1. Introduo
1.1. Motivao
1.2. Objetivos
2. Conceitos
2.1. Inteligncia Artificial
2.2. Processamento de Linguagem Natural

Sumrio
2.3. Aprendizado de Mquina
2.4. Natural Language Toolkit (NLTK)
3. Chatbots
3.1. Breve histrico
3.2. Arquiteturas
4. Trabalhos Relacionados
5. Proposta
6. Implementao da IA
6.1. Exemplos da aplicao
7. Concluso
7.1. Trabalhos Futuros
Crescente interesse em aplicativos de
conversao; [25]
Grande potencial de aceitao; [27]

Introduo Crescimento de pesquisas relacionadas ao


desenvolvimento de Chatbots com IA;
Motivao
Fazer um estudo acerca do uso de
Inteligncia Artificial (IA) no
desenvolvimento de Chatbots;

Introduo Analisar as tcnicas de


desenvolvimento de Chatbots que
Objetivos
envolvem IA e suas restries;
Demonstrar o funcionamento de
uma arquitetura de Chatbot que
utilize Inteligncia Artificial;

Introduo Investigar e propor uma arquitetura


de Chatbot capaz de entender e
Objetivos
processar informaes dentro do
contexto do CIn.
Conceitos [39]
sistemas que pensam como
humanos;

Conceitos sistemas que pensam de modo


racional;
Inteligncia Artificial sistemas que agem como humanos;
sistemas que agem racionalmente.
Teste de Turing
Loebner Prize

Conceitos
Inteligncia Artificial
Mquinas de Traduo
Teste de Turing
Anlises

Conceitos Morfolgica *
Sinttica *
Processamento de
Linguagem Natural Semntica
Pragmtica
Anlise Morfolgica
Tokenizao
Lematizao e Stemizao

Conceitos Anlise Sinttica


Etiquetagem (POS Tagging)
Processamento de
Linguagem Natural N-gramas
O/ART rato/N roeu/V a/ART roupa/N
do/PREP+ART rei/N de/PREP Roma/NPROP
./PU.

Conceitos
Processamento de
Linguagem Natural

* Exemplo do Part-Of-Speech Tagging


Extrao da Informao
rea do PLN voltada para o
reconhecimento de fatos;

Conceitos Transformao de textos


desestruturados em objetos
Processamento de
Linguagem Natural estruturados;
Extrao da Informao
Reconhecimento de Entidades
Nomeadas (NER);

Conceitos IOB (Inside-Outside-Begin)


Tagging.
Processamento de
Linguagem Natural
A sala E122 estar ocupada hoje, s
15h, para a aula de reposio de
Engenharia de Software do curso de

Conceitos Sistemas de Informao.

Processamento de
Linguagem Natural
A/O sala/O E122/B-LOCAL estar/O
ocupada/O hoje/B-DATA, s/O
15h/B-HORARIO, para/O a/O aula/O de/O

Conceitos
reposio/O de/O Engenharia/B-DISCIPLINA
de/I-DISCIPLINA Software/I-DISCIPLINA

Processamento de do/O curso/O de/O Sistemas/B-CURSO


Linguagem Natural de/I-CURSO Informao/I-CURSO.

* Exemplo de IOB Tagging


Procura entender, na prtica, como
seres humanos e demais animais
sao capazes de adquirir experincia

Conceitos e conhecimento. [32]


Aprendizado Supervisionado
Aprendizado de
Mquina TF-IDF;
Conditional Random Fields;
Support Vector Machines.
Aprendizado Supervisionado
Capaz de aprender com
exemplos; [21]

Conceitos Dados de treinamento e de


teste.
Aprendizado de
Mquina
Term Frequency - Inverse
Document Frequency (TF-IDF)
Determina a relevncia de cada

Conceitos palavra, baseando-se em todos


os documentos trabalhados;
Aprendizado de
Mquina Trabalha ao lado da
Stemizao/Lematizao
Term Frequency - Inverse
Document Frequency (TF-IDF)

Conceitos
Aprendizado de
Mquina
Conditional Random Fields (CRF)

Conceitos
Aprendizado de
Mquina
Conditional Random Fields (CRF)
Modelo discriminativo;
Constri e identifica

Conceitos relacionamentos entre diversas


observaes;
Aprendizado de
Mquina
Support Vector Machines (SVM)
Maximizar a distncia mnima
do hiperplano em relao ao

Conceitos exemplo mais prximo;


Linear SVM & Kernel SVM
Aprendizado de
Mquina
Conceitos
Aprendizado de
Mquina

* Exemplo de Linear SVM


Conceitos
Aprendizado de
Mquina

* Exemplo de Kernel SVM


Feita para o desenvolvimento de
programas voltados ao
Processamento de Linguagem

Conceitos Natural em Python;


Abstrai o fluxo de desenvolvimento
Natural Language
Toolkit (NLTK) de ferramentas de linguagem
natural;
Suporte lngua portuguesa.
Uma aplicao pode ser
considerada como um Chatbot caso
ela funcione por meio de

Chatbots interaes atravs de uma


interface de conversao;
ELIZA (Joseph Weizenbaum, 1966);
PARRY (Kenneth Colby, 1972);
Jabberwacky (Rollo Carpenter,

Chatbots 1988); *
Cleverbot (Rollo Carpenter, 2008);
Breve Histrico
ALICE (Artificial Linguistic Internet
Computer Entity, Richard Wallace,
1995); *
* Participaram do Loebner Prize
IBM Watson, Siri, Google Assistant;
Plataformas do Facebook, Slack e
Telegram.

Chatbots
Breve Histrico
Modelos de Chatbot

Chatbots
Arquiteturas
Modelos de Chatbot
Generativo
Deep Learning

Chatbots Sequence to Sequence


(RNN, LSTM)
Arquiteturas
Baseado em Padres/Regras
Hard-coded
AIML
ML & PLN
Modelo Generativo

Chatbots
Arquiteturas
Modelo Baseado em Regras
Base de respostas
pr-definidas;

Chatbots Domnio Fechado;


Reconhecimento de padres,
Arquiteturas
entidades e intenes
Modelo Baseado em Regras

Chatbots
Arquiteturas

* Exemplo de AIML
Chatbots
Arquiteturas
WIT.AI & API.AI
Plataformas de processamento e

Trabalhos entendimento de linguagem natural,

Relacionados
criado para auxiliar no
desenvolvimento de chatbots, robs
e aplicaes de IoT;
Interao via endpoints;
Dados estruturados
JSON (JavaScript Object Notation);

Trabalhos
Relacionados
Onde sera a aula da disciplina IF1000?
O principal objetivo desta pesquisa o
desenvolvimento de uma arquitetura
para Chatbots utilizando Inteligncia

Proposta
Artificial, focando na Classificao de
Intenes e no Reconhecimento de
Entidades, com o intuito de implementar
um Chatbot capaz de processar a
linguagem natural e utilize de tcnicas de
Aprendizado de Mquina.
Part-Of-Speech Tagger (POS), treinado
com CRF;

Implementao Inside Outside Begin Tagger (IOB),

da IA
treinado com CRF;
Classificador de Intenes, treinado com
SVM;
Uma interface para classificar intenes,
identificar entidades e retornar a entrada
de modo estruturado.
POS Tagging
Coleta de Dados

Implementao Seleo das classes gramaticais

da IA
Mac-Morpho (corpus oferecido
pelo NLTK)
NLPNet
Pr-processamento
Seleo de features
POS Tagging

Implementao
da IA
POS Tagging

Implementao
da IA
POS Tagging

Implementao
da IA
POS Tagging
Treinamento

Implementao 80% da base foi utilizada para

da IA
treinamento, 20% para teste
IOB Tagging
Seleo de entidades

Implementao Coleta de dados

da IA
Textos gerados e classificados a
mo (cerca de 300 sentenas)
Leitor criado para ler um
formato especfico de arquivo,
contendo suas entidades;
Pr-processamento
Seleo de features
IOB Tagging

Implementao
da IA
IOB Tagging

Implementao Onde ser a aula de [DISCIPLINA Engenharia

da IA
de Software] do curso de [CURSO Sistemas
de Informao]?
IOB Tagging

Implementao
da IA
IOB Tagging

Implementao
da IA
IOB Tagging
Treinamento

Implementao 80% da base foi utilizada para

da IA
treinamento, 20% para teste
Classificador de Intenes
Seleo de Intenes

Implementao Coleta de dados

da IA
Mesmo processo de leitura e
gerao de dados utilizado no
IOB Tagger
Inteno presente no nome do
arquivo
Pr-processamento
TF-IDF & Stemizao
Classificador de Intenes

Implementao
da IA
Classificador de Intenes
Treinamento

Implementao 80% da base foi utilizada para

da IA
treinamento, 20% para teste
Implementao
da IA
Exemplos
Implementao
da IA
Exemplos
Implementao
da IA
Exemplos
Implementao
da IA
Exemplos
Implementao
da IA
Exemplos
Este trabalho mostrou como
desenvolvida a arquitetura de uma
Chatbot utilizando Processamento de

Concluso
Linguagem Natural e Aprendizado de
Mquina, demonstrando o quo
importante a Inteligncia Artificial para
o processo.
Adicionar mais entidades e intenes
relevantes ao contexto do CIn, como
processos e eventos;

Concluso
Implementar integraes com o
Telegram, Slack ou Facebook Messenger;

Trabalhos Futuros Implementar um sistema de respostas


utilizando tcnicas de Recuperao de
Informao (utilizando gensim, caso seja
em python);
Explorar a implementao do
Reconhecimento de Entidades utilizando
Redes Neurais Recorrentes;

Concluso
Implementar um sistema de Natural
Language Understanding (NLU) para

Trabalhos Futuros melhorar o processamento do Chatbot;


Implementar uma arquitetura que utilize
Sequence to Sequence e demais tcnicas
de Deep Learning.