Você está na página 1de 60

Um Chatbot para o Centro de Informática

Um Chatbot para o Centro de Informática Victor Fontes Seara Ferraz vfsf@cin.ufpe.br Trabalho de Conclusão de

Victor Fontes Seara Ferraz

vfsf@cin.ufpe.br Trabalho de Conclusão de Curso

10 de Julho de 2017

Sumário

1. Introdução

1.1. Motivação

1.2. Objetivos

2. Conceitos

2.1. Inteligência Artificial

2.2. Processamento de Linguagem Natural

2.3. Aprendizado de Máquina

2.4. Natural Language Toolkit (NLTK)

3. Chatbots

3.1. Breve histórico

3.2. Arquiteturas

4. Trabalhos Relacionados

5. Proposta

6. Implementação da IA

6.1. Exemplos da aplicação

7. Conclusão

7.1. Trabalhos Futuros

Introdução

Motivação

Crescente interesse em aplicativos de

conversação; [25]

Grande potencial de aceitação; [27]

Crescimento de pesquisas relacionadas ao desenvolvimento de Chatbots com IA;

Introdução

Objetivos

Fazer um estudo acerca do uso de Inteligência Artificial (IA) no desenvolvimento de Chatbots;

Analisar as técnicas de desenvolvimento de Chatbots que envolvem IA e suas restrições;

Introdução

Objetivos

Demonstrar o funcionamento de uma arquitetura de Chatbot que utilize Inteligência Artificial;

Investigar e propor uma arquitetura de Chatbot capaz de entender e processar informações dentro do contexto do CIn.

Conceitos

Inteligência Artificial

Conceitos [39]

“sistemas que pensam como humanos”;

“sistemas que pensam de modo racional”;

“sistemas que agem como humanos”;

“sistemas que agem racionalmente”.

Conceitos

Inteligência Artificial

Teste de Turing

Loebner Prize

● Teste de Turing ○ Loebner Prize

Conceitos

Processamento de Linguagem Natural

Máquinas de Tradução

Teste de Turing

Análises

Morfológica *

Sintática *

Semântica

Pragmática

Conceitos

Processamento de Linguagem Natural

Análise Morfológica

Tokenização

Lematização e Stemização

Análise Sintática

Etiquetagem (POS Tagging)

N-gramas

Conceitos

Processamento de Linguagem Natural

”O/ART rato/N roeu/V a/ART roupa/N do/PREP+ART rei/N de/PREP Roma/NPROP ./PU”.

”O/ ART rato/ N roeu/ V a/ ART roupa/ N do/ PREP+ART rei/ N de/ PREP

* Exemplo do Part-Of-Speech Tagging

Conceitos

Processamento de Linguagem Natural

Extração da Informação

Área do PLN voltada para o

reconhecimento de fatos;

Transformação de textos

desestruturados em objetos

estruturados;

Conceitos

Processamento de Linguagem Natural

Extração da Informação

Reconhecimento de Entidades

Nomeadas (NER);

IOB (Inside-Outside-Begin)

Tagging.

Conceitos

Processamento de Linguagem Natural

“A sala E122 estará ocupada hoje, às

15h, para a aula de reposição de

Engenharia de Software do curso de

Sistemas de Informação”.

ocupada hoje, às 15h, para a aula de reposição de Engenharia de Software do curso de

Conceitos

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 reposição/O de/O Engenharia/B-DISCIPLINA de/I-DISCIPLINA Software/I-DISCIPLINA do/O curso/O de/O Sistemas/B-CURSO de/I-CURSO Informação/I-CURSO”.

* Exemplo de IOB Tagging

Conceitos

Aprendizado de Máquina

Procura entender, na prática, como

seres humanos e demais animais

sao capazes de adquirir experiência

e conhecimento. [32]

Aprendizado Supervisionado

TF-IDF;

Conditional Random Fields;

Support Vector Machines.

Conceitos

Aprendizado de Máquina

Aprendizado Supervisionado

Capaz de aprender com

exemplos; [21]

Dados de treinamento e de

teste.

Conceitos

Aprendizado de Máquina

Term Frequency - Inverse

Document Frequency (TF-IDF)

Determina a relevância de cada

palavra, baseando-se em todos

os documentos trabalhados;

Trabalha ao lado da

Stemização/Lematização

Conceitos

Aprendizado de Máquina

Term Frequency - Inverse

Document Frequency (TF-IDF)

● Term Frequency - Inverse Document Frequency (TF-IDF)

Conceitos

Aprendizado de Máquina

Conditional Random Fields (CRF)

Conceitos Aprendizado de Máquina ● Conditional Random Fields (CRF)

Conceitos

Aprendizado de Máquina

Conditional Random Fields (CRF)

Modelo discriminativo;

Constrói e identifica

relacionamentos entre diversas

observações;

Conceitos

Aprendizado de Máquina

Support Vector Machines (SVM)

Maximizar a distância mínima

do hiperplano em relação ao

exemplo mais próximo;

Linear SVM & Kernel SVM

Conceitos

Aprendizado de Máquina

Conceitos Aprendizado de Máquina * Exemplo de Linear SVM

* Exemplo de Linear SVM

Conceitos

Aprendizado de Máquina

* Exemplo de Kernel SVM
* Exemplo de Kernel SVM

Conceitos

Natural Language Toolkit (NLTK)

Feita para o desenvolvimento de

programas voltados ao

Processamento de Linguagem

Natural em Python;

Abstrai o fluxo de desenvolvimento

de ferramentas de linguagem

natural;

Suporte à língua portuguesa.

Chatbots

Uma aplicação pode ser considerada como um Chatbot caso ela funcione por meio de interações através de uma interface de conversação;

Chatbots

Breve Histórico

ELIZA (Joseph Weizenbaum, 1966);

PARRY (Kenneth Colby, 1972);

Jabberwacky (Rollo Carpenter, 1988); *

Cleverbot (Rollo Carpenter, 2008);

ALICE (Artificial Linguistic Internet Computer Entity, Richard Wallace, 1995); *

* Participaram do Loebner Prize

Chatbots

Breve Histórico

IBM Watson, Siri, Google Assistant;

Plataformas do Facebook, Slack e Telegram.

Chatbots

Arquiteturas

Modelos de Chatbot

Chatbots Arquiteturas ● Modelos de Chatbot

Chatbots

Arquiteturas

Modelos de Chatbot

Generativo

Deep Learning

Sequence to Sequence

(RNN, LSTM)

Baseado em Padrões/Regras

Hard-coded

AIML

ML & PLN

Chatbots

Arquiteturas

Modelo Generativo

● Modelo Generativo

Chatbots

Arquiteturas

Modelo Baseado em Regras

Base de respostas pré-definidas;

Domínio Fechado;

Reconhecimento de padrões, entidades e intenções

Chatbots

Arquiteturas

Modelo Baseado em Regras

● Modelo Baseado em Regras

* Exemplo de AIML

Chatbots

Arquiteturas

Chatbots Arquiteturas

Trabalhos

Relacionados

WIT.AI & API.AI

Plataformas de processamento e entendimento de linguagem natural, criado para auxiliar no desenvolvimento de chatbots, robôs e aplicações de IoT;

Interação via endpoints;

Trabalhos

Relacionados

Dados estruturados

JSON (JavaScript Object Notation);

”Onde sera a aula da disciplina IF1000?”

● Dados estruturados ○ JSON (JavaScript Object Notation); ”Onde sera a aula da disciplina IF1000?”

Proposta

O principal objetivo desta pesquisa é o desenvolvimento de uma arquitetura para Chatbots utilizando Inteligência Artificial, focando na Classificação de Intenções e no Reconhecimento de Entidades, com o intuito de implementar um Chatbot capaz de processar a linguagem natural e utilize de técnicas de Aprendizado de Máquina.

Implementação da IA

Part-Of-Speech Tagger (POS), treinado com CRF;

Inside Outside Begin Tagger (IOB), treinado com CRF;

Classificador de Intenções, treinado com SVM;

Uma interface para classificar intenções, identificar entidades e retornar a entrada de modo estruturado.

Implementação da IA

POS Tagging

Coleta de Dados

Seleção das classes gramaticais

Mac-Morpho (corpus oferecido pelo NLTK)

NLPNet

Pré-processamento

Seleção de features

Implementação da IA

POS Tagging

Implementação da IA ● POS Tagging

Implementação da IA

POS Tagging

● POS Tagging

Implementação da IA

POS Tagging

● POS Tagging

Implementação da IA

POS Tagging Treinamento

80% da base foi utilizada para treinamento, 20% para teste

● POS Tagging ○ Treinamento ■ 80% da base foi utilizada para treinamento, 20% para teste

Implementação da IA

IOB Tagging

Seleção de entidades

Coleta de dados

Textos gerados e classificados a mão (cerca de 300 sentenças)

Leitor criado para ler um formato específico de arquivo, contendo suas entidades;

Pré-processamento

Seleção de features

Implementação da IA

IOB Tagging

● IOB Tagging

Implementação da IA

IOB Tagging

“Onde será a aula de [DISCIPLINA Engenharia de Software] do curso de [CURSO Sistemas de Informação]?”

Implementação da IA

IOB Tagging

Implementação da IA ● IOB Tagging

Implementação da IA

IOB Tagging

Implementação da IA ● IOB Tagging

Implementação da IA

IOB Tagging Treinamento

80% da base foi utilizada para treinamento, 20% para teste

● IOB Tagging ○ Treinamento ■ 80% da base foi utilizada para treinamento, 20% para teste

Implementação da IA

Classificador de Intenções

Seleção de Intenções

Coleta de dados

Mesmo processo de leitura e geração de dados utilizado no IOB Tagger

Intenção presente no nome do arquivo

Pré-processamento

TF-IDF & Stemização

Implementação da IA

Classificador de Intenções

● Classificador de Intenções

Implementação da IA

Classificador de Intenções Treinamento

80% da base foi utilizada para treinamento, 20% para teste

● Classificador de Intenções ○ Treinamento ■ 80% da base foi utilizada para treinamento, 20% para

Implementação da IA

Exemplos

Implementação da IA Exemplos

Implementação da IA

Exemplos

Implementação da IA Exemplos

Implementação da IA

Exemplos

Implementação da IA Exemplos

Implementação da IA

Exemplos

Implementação da IA Exemplos

Implementação da IA

Exemplos

Implementação da IA Exemplos

Conclusão

Este trabalho mostrou como é desenvolvida a arquitetura de uma Chatbot utilizando Processamento de Linguagem Natural e Aprendizado de Máquina, demonstrando o quão importante é a Inteligência Artificial para o processo.

Conclusão

Trabalhos Futuros

Adicionar mais entidades e intenções relevantes ao contexto do CIn, como processos e eventos;

Implementar integrações com o Telegram, Slack ou Facebook Messenger;

Implementar um sistema de respostas utilizando técnicas de Recuperação de Informação (utilizando gensim, caso seja em python);

Conclusão

Trabalhos Futuros

Explorar a implementação do Reconhecimento de Entidades utilizando Redes Neurais Recorrentes;

Implementar um sistema de Natural Language Understanding (NLU) para melhorar o processamento do Chatbot;

Implementar uma arquitetura que utilize Sequence to Sequence e demais técnicas de Deep Learning.