MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito...

64
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO 1 Ten PEDRO IGOR DE ARAÚJO OLIVEIRA BRUNO VIEIRA COSTA LUCAS RICARTE ROGÉRIO TEIXEIRA FERRAMENTA DE CLASSIFICAÇÃO DE QUESTÕES PARA AUXÍLIO AO APRENDIZADO Rio de Janeiro 2018

Transcript of MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito...

Page 1: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

MINISTÉRIO DA DEFESAEXÉRCITO BRASILEIRO

DEPARTAMENTO DE CIÊNCIA E TECNOLOGIAINSTITUTO MILITAR DE ENGENHARIA

CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO

1 Ten PEDRO IGOR DE ARAÚJO OLIVEIRABRUNO VIEIRA COSTA

LUCAS RICARTE ROGÉRIO TEIXEIRA

FERRAMENTA DE CLASSIFICAÇÃO DE QUESTÕES PARA AUXÍLIOAO APRENDIZADO

Rio de Janeiro2018

Page 2: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

INSTITUTO MILITAR DE ENGENHARIA

1 Ten PEDRO IGOR DE ARAÚJO OLIVEIRABRUNO VIEIRA COSTA

LUCAS RICARTE ROGÉRIO TEIXEIRA

FERRAMENTA DE CLASSIFICAÇÃO DE QUESTÕES PARAAUXÍLIO AO APRENDIZADO

Projeto de Fim de Curso apresentado ao Curso de Graduaçãoem Engenharia de Computação do Instituto Militar de Enge-nharia, como requisito parcial para a obtenção do título deEngenheiro de Computação.

Orientador: Prof. Alex de Vasconcellos Garcia - D.Sc.

Rio de Janeiro2018

Page 3: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

c2018

INSTITUTO MILITAR DE ENGENHARIAPraça General Tibúrcio, 80 - Praia VermelhaRio de Janeiro - RJ CEP 22290-270

Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderáincluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qual-quer forma de arquivamento.

É permitida a menção, reprodução parcial ou integral e a transmissão entrebibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que es-teja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desdeque sem finalidade comercial e que seja feita a referência bibliográfica completa.

Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) edo(s) orientador(es).

005 Oliveira, Pedro Igor de AraujoO48f Ferramenta de classificação de questões para au-

xílio ao aprendizado / Pedro Igor de Araújo Oliveira,Bruno Vieira Costa, Lucas Ricarte Rogério Teixeira,orientado por Alex de Vasconcellos Garcia - Rio deJaneiro: Instituto Militar de Engenharia, 2018.

62p.: il.

Projeto de Fim de Curso (graduação) - InstitutoMilitar de Engenharia, Rio de Janeiro, 2018.

1. Curso de Graduação em Engenharia de Com-putação - projeto de fim de curso. 1. Classificaçãode texto. 2. Processamento de linguagem natural.3. Ferramenta de auxílio ao aprendizado. 4. Apren-dizado de máquina. I. Garcia, Alex de Vasconcellos. II. Título. III. Instituto Militar de Engenharia.

1

Page 4: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso
Page 5: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

AGRADECIMENTOS

Agradecemos a todas as pessoas que nos incentivaram, apoiaram e possibilita-

ram esta oportunidade de ampliar nossos horizontes.

Em especial ao Professor Orientador Dr. Alex Garcia.

3

Page 6: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

“Not everything that can be counted counts; and not everything

that counts can be counted.”

ANÔNIMO

4

Page 7: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

SUMÁRIO

LISTA DE ILUSTRAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

LISTA DE SIGLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Organização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1 Bag of Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.1.1 Classificador Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.2 Classificador SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2 Word Embeddings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.1 Redes Neurais Convolucionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.2 Redes Neurais Recorrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 OBTENÇÃO DAS BASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1 Web Scrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Pré-Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 API de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4 ARQUITETURA DA SOLUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1 Fluxo de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2 Modelagem da Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.3 Aspectos Práticos da Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5 SELEÇÃO DO CONJUNTO DE DADOS E DOS MODELOS . . . . . . . . . . 34

5.1 Seleção do Conjunto de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.2 Seleção dos Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5

Page 8: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

6 MODELOS BASEADOS EM BAG OF WORDS . . . . . . . . . . . . . . . . . . . . . 37

6.1 Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6.2 Support Vector Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7 MODELOS BASEADOS EM WORD EMBEDDING . . . . . . . . . . . . . . . . . 40

7.1 Vetorização Aglutinada por Média . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.1.1 Rede Neural Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.2 Vetorização Sequencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.2.1 Redes Convolucionais Separáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.2.2 RNN simples com células LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.2.3 Stacked RNN com células LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

8 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

9 REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

10 APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.1 APÊNDICE 1: Lista de categorias de questões . . . . . . . . . . . . . . . . . . . . . . . . 54

10.2 APÊNDICE 2: Dicionário JSON para agrupamento de categorias . . . . . . . 58

10.3 APÊNDICE 3: Lista de stopwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

6

Page 9: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

LISTA DE ILUSTRAÇÕES

FIG.1.1 Fluxograma de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

FIG.2.1 Etapas do processamento de linguagem natural . . . . . . . . . . . . . . . . . . . 18

FIG.2.2 Exemplo de representação bag of words . . . . . . . . . . . . . . . . . . . . . . . . . 19

FIG.2.3 Fórmulas do Teorema de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

FIG.2.4 Representação do modelo de SVM (fonte: Weinberger (2016)).

A figura mais à esquerda ilustra a iteração da reta vermelha se

transformando na azul para maximizar a distância até os pontos

suporte. Essa distância é ilustrada no gráfico mais à esquerda . . . . . 21

FIG.2.5 Visualização de word embedding (fonte: Google-Tensorflow (2018))

21

FIG.2.6 Neurônio artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

FIG.3.1 Sequência de operações para a aquisição de dados . . . . . . . . . . . . . . . . 25

FIG.4.1 Diagrama de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

FIG.4.2 Diagrama de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

FIG.4.3 Uso das CPUs no servidor durante um dos treinamentos . . . . . . . . . . . 33

FIG.5.1 Distribuição das categorias selecionadas . . . . . . . . . . . . . . . . . . . . . . . . . 35

FIG.5.2 Fluxograma para classificação de texto (fonte: Google-Developers

(2018)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

FIG.6.1 Matriz de confusão do conjunto de testes normalizada para o

classificador Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

FIG.6.2 Matriz de confusão do conjunto de testes normalizada para o

classificador SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

FIG.7.1 Rede Neural Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

FIG.7.2 Curva da função de custo ao término de cada epoch de treina-

mento para 50 dimensões de word embedding no modelo rede

neural simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

FIG.7.3 Matriz de confusão normalizada do conjunto de testes com o uso

de 1000 dimensões de word embedding no modelo rede neural

simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7

Page 10: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG.7.4 Diagrama sequencial das etapas realizadas na implementação

SepCNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

FIG.7.5 Esquema ilustrativo de convolução separável. Os filtros (em

amarelo) representam da esquerda para a direita o depthwise

e os pointwise. Neste exemplo, o cada palavra possui 5 dimen-

sões e cada enunciado 10 palavras. O número de filtros é 3. . . . . . . . 44

FIG.7.6 Matriz de confusão normalizada do modelo SepCNN para 50

dimensões de embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

FIG.7.7 Matriz de confusão normalizada do modelo RNN simples com

células LSTM e 50 dimensões de embedding no conjunto de

testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

FIG.7.8 Diagrama esquemático da um LSTM (fonte: Olah (2015)) . . . . . . . . . . 46

FIG.7.9 Diagrama de uma topologia do tipo stacked RNN (fonte: Cour-

sera) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

FIG.7.10 Matriz de confusão normalizada do modelo Stacked RNN e 100

dimensões de embedding no conjunto de testes . . . . . . . . . . . . . . . . . . . 48

8

Page 11: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

LISTA DE TABELAS

TAB.6.1 Métricas do modelo naive bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

TAB.6.2 Métricas do modelo SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

TAB.7.1 Métricas da rede neural simples no conjunto de testes para os

distintos números de dimensões de word embedding analisados . . . . 41

TAB.8.1 Comparação entre os classificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

9

Page 12: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

LISTA DE SIGLAS

API Application programming interface

AWS Amazon Web Services

CNN Convolutional Neural Network

CPU Central processing unit

EAD Ensino à distância

GPU Graphics Processing Unit

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protocol

IA Inteligência Artificial

JSON JavaScript Object Notation

LSTM Long Short Term Memory

NB Naive Bayes

NN Neural Network

RNN Recurrent Neural Network

SepCNN Separable Depthwise Convolutional Neural Network

SVM Support Vector Machine

TF-IDF Term Frequency-Inverse Document Frequency

VM Virtual Machine

10

Page 13: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

RESUMO

Ferramentas de auxílio ao aprendizado são usadas nas mais diversas etapas

da educação formal ou informal. Estas ferramentas costumam empregar diversas

tecnologias. Dentre elas, pode-se incluir a classificação de documentos, pois es-

sas plataformas são, em geral, grandes agregadoras de conteúdo de ensino. Para

uma melhor acessibilidade de todo esse conteúdo, é necessário que ele seja ca-

tegorizado, o que nem sempre é viável de ser realizado manualmente devido ao

grande volume e a necessidade de conhecimento técnico sobre os assuntos aborda-

dos. Nesse contexto, pode ser aplicada a Classificação Automática de Documentos,

conforme o objetivo do presente trabalho: implementar modelos consagrados de

classificação de texto, aplicando-os para a classificação de enunciados de questões

em avaliações de ensino segundo seus assuntos. A partir da exploração dessas téc-

nicas, desenvolveu-se um modelo híbrido de classificador especializado em enunci-

ados de questões.

11

Page 14: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

ABSTRACT

Learning aid tools are used in the most diverse stages of formal or informal

education. These tools usually employ various technologies. Among them, one can

include the classification of documents, since these platforms are, in general, great

aggregators of teaching content. For a better accessibility of all this content, it

needs to be categorized, which is not always feasible to be done manually due to the

large volume and the need for technical knowledge on the issues addressed. In this

context, it’s interesting to apply the Automatic Document Classification which is the

objective of the present work: to implement established text classification models,

applying them to the classification of question statements in teaching assessments

according to their subjects. From the exploration of these techniques, a hybrid

classifier model specialized in question statements was developed.

12

Page 15: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

1 INTRODUÇÃO

A resolução de questões é parte do processo de aprendizado em qualquer área

do conhecimento, pois ajuda na fixação do que foi estudado e faz com que o aluno

interaja e consiga avaliar o conhecimento sobre determinado assunto. Apesar do

elevado número de questões presentes na web, uma parcela significativa se encon-

tra dispersa, sem nenhum tipo de classificação, reduzindo seu valor de busca e sua

possibilidade de utilização pelos estudantes.

A inexistência de um método efetivo de busca e seleção de questões não classi-

ficadas num universo de dados tão extenso quanto a web representa uma barreira

no estudo e aprendizado do estudante importante, o que gera um estímulo para o

solução do problema.

1.1 MOTIVAÇÃO

A classificação de questões por assunto e dificuldade é de suma importância nas

mais variadas aplicações educacionais. Uma aplicação interessante desta técnica

trata-se das ferramentas adaptativas, nas quais o estudante pode executar baterias

de exercícios em série cujo conteúdo varia de acordo com os seus resultados, otimi-

zando o seu aprendizado. Outra aplicação da classificação de questões é direcionar

o estudo para um assunto específico que seja problemático para o estudante.

Nos processos seletivos, as questões são as principais fontes de mensuração

do conhecimento, e consistem, de modo geral, em textos e imagens justapostos,

segregados em enunciado e alternativas. A recorrência nesta forma de avaliação

permite a maior eficiência de métodos específicos de classificação quando compa-

rados a abordagens em textos genéricos.

1.2 OBJETIVOS

Este trabalho tem como objetivos a implementação, teste e comparação das prin-

cipais técnicas de classificação de texto aplicando-as em questões de concursos

públicos.

Com os resultados encontrados, busca-se construir uma ferramenta que vise

13

Page 16: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

facilitar o teste de modelos de classificação de questões, além de ser possível clas-

sificar textos genéricos.

1.3 METODOLOGIA

O trabalho será dividido em 4 etapas conforme a figura 1.1.

Crawler

Tratamento

Implementação

Análise

FIG. 1.1: Fluxograma de trabalho

A primeira etapa do trabalho corresponde ao crawler, à obtenção de dados,

para serem utilizados nos algoritmos de aprendizado de máquina. Isso é feito a

partir de Web scraping de questões de concursos públicos já rotuladas com os seus

respectivos assuntos.

Para fim de simplificação de escopo, serão consideradas apenas questões obje-

tivas, que contenham alternativas, e retiradas de uma única fonte, o site Rota dos

Concursos, conforme será detalhado mais adiante no capítulo 3.

Com esses dados, há a fase de tratamento e uma fase de processamento de

dados, que remove inconsistências e prepara uma interface adequada para os algo-

ritmos que serão aplicados posteriormente, filtrando os campos das questões que

serão utilizados para a classificação.

A terceira fase consiste na implementação dos modelos de aprendizado de má-

quina para a classificação de texto das questões. Serão utilizados diversos classifi-

cadores para cada modelo de representação de texto, que serão abordados posteri-

ormente nesse trabalho.

Nessa etapa, cada um dos métodos será otimizado para essa base de dados, va-

14

Page 17: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

lidando suas arquiteturas e seus hiperparâmetros. Com esses resultados, é possível

comparar a performance desses métodos.

Com base nessa comparação, avalia-se a viabilidade de implementar um modelo

unificado dos modelos que utilizará os resultados anteriores e determinará qual é a

melhor previsão de assunto da questão (Ensemble learning).

O escopo será limitado à classificação por assuntos. Dentro destes, a granulari-

dade será limitada ao nível de área do conhecimento, como por exemplo a computa-

ção, sem considerar as disciplinas contidas nessa área, como inteligência artificial

e mineração de dados.

A seguir, será feita uma análise de desempenho para cada modelo que pode

resultar na variação de seus hiperparâmetros implementados e tratamento do con-

junto de dados. Os resultados obtidos serão comparados, obtendo-se o algoritmo

mais preciso para a classificação de questões.

1.4 ORGANIZAÇÃO

Sobre os capítulos subsequentes, apresenta-se a seguinte distribuição de conteúdo:

• Capítulo 2 - Fundamentação Teórica: descrição dos principais conceitos utili-

zados em cada um dos algoritmos de classificação que serão implementados;

• Capítulo 3 - Obtenção da base de dados: metodologia utilizada para obtenção

e processamento da base de dados utilizada como referência no projeto;

• Capítulo 4 - Arquitetura da Solução: exposição da arquitetura feita para esse

projeto, incluindo o diagrama de atividades e a modelagem de implementação;

• Capítulo 5 - Seleção do Conjunto de Dados e dos Modelos: tópicos de dis-

cussão a respeito do conjunto de dados e dos modelos selecionados para o

desenvolvimento da ferramenta de classificação;

• Capítulo 6 - Modelos baseados em Bag of Words: descrição, metodologia de

implementação e resultados de cada um dos algoritmos baseados em bag of

words;

• Capítulo 7 - Modelos baseados em Word Embedding: descrição, metodologia

de implementação e resultados de cada um dos algoritmos baseados em word

embedding;

15

Page 18: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• Capítulo 8 - Comparação e conclusão: comparação dos resultados entre dife-

rentes modelos e algoritmos implementados no capítulo anterior.

16

Page 19: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

2 FUNDAMENTAÇÃO TEÓRICA

Aprendizado de máquina é um ramo da inteligência artificial na Ciência da Com-

putação em que se faz uso de dados para o desenvolvimento de um algoritmo por

meio de etapas de treinamento. Mais especificamente no aprendizado supervisio-

nado, estuda-se um conjunto de dados rotulados na fase de treinamento para que

o algoritmo treinado possa prever um rótulo de um dado inédito baseando-se nos

padrões já estudados. Para a classificação de textos em assuntos, o aprendizado

supervisionado é o mais utilizado, de maneira que os rótulos correspondem aos

próprios assuntos dos textos a serem utilizados no treinamento.

Contudo, uma dificuldade ao se trabalhar com um texto é o uso de uma re-

presentação computacional que seja facilmente interpretável pelos algoritmos de

aprendizado de máquina. Por isso, são utilizadas representações específicas para

esses algoritmos como Bag of Words e Word Embeddings que serão descritos nas

seções a seguir. Posteriormente, pode-se aplicar algoritmos como, por exemplo,

redes neurais que também serão descritas nas seções seguintes.

2.1 BAG OF WORDS

Bag of words não se trata de um modelo de classificação por completo, mas sim

de uma estratégia de representação do texto em que a sequência de palavras é

desconsiderada. Dessa maneira, o texto é simplificado para uma lista de palavras

distintas e a respectiva contagem de ocorrência de cada uma delas. A principal

vantagem dessa estratégia é a sua simplicidade de representação computacional,

sendo atrativa para a aplicação direta de algoritmos de aprendizado de máquina.

Contudo, para se obter uma melhor eficiência dessa estratégia, pode ser neces-

sário aplicar outras técnicas que mitiguem a perda de informação causada pelo bag

of words. Uma dessas técnicas é a remoção de palavras de parada (stop words),

pois essas palavras são utilizadas apenas para a conexão de ideias em uma frase

como preposições, artigos e conjunções e não contribuem como fonte de informa-

ção no texto. Além disso, as palavras vazias ocorrem com alta frequência e possuem

destaque ilusório na representação colapsada do bag of words. Outra técnica que

também pode ser empregada é a lematização (stemming) que corresponde a re-

17

Page 20: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

moção dos sufixos das palavras, pois estes fazem com que palavras que deveriam

ser sinônimas na representação bag of words sejam contabilizadas separadamente.

Ao remover os sufixos como gênero, tempo e número, palavras que acrescentam

a mesma informação ao texto terão suas respectivas contagens somadas em uma

única palavra sem os sufixos. A figura 2.1 mostra um exemplo dessas etapas de

pré-processamento.

FIG. 2.1: Etapas do processamento de linguagem natural

Após todas essas técnicas, pode-se extrair ainda a representação TF-IDF, Chris-

topher D. Manning e Schütze (2009b), de cada amostra de um conjunto de textos,

que trata de uma medida estatística para normalizar o peso das palavras. Nesse in-

dicador, a relevância de uma palavra em determinado contexto é representada pelo

número de vezes que a palavra ocorreu nesse contexto dividido pelo número de ve-

zes que ela aparece em todos os documentos que fazem parte do corpus analisado.

A figura 2.2 mostra um exemplo da representação de dois documentos conforme a

modelagem bag of words.

Para o modelo de bag of words, foram escolhidos dois classificadores bastante

utilizados em modelos mais simples de implementação de algoritmos de classifica-

ção de texto, o classificador NB e o classificador SVM. Ambos servirão como base

de resultados para comparação com os modelos mais avançados.

18

Page 21: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 2.2: Exemplo de representação bag of words

2.1.1 CLASSIFICADOR NAIVE BAYES

O classificador NB é um classificador probabilístico baseado no teorema de Bayes

de probabilidade. Esse algoritmo é amplamente utilizado em técnicas de aprendi-

zado de máquina por ser de fácil implementação e ainda assim possuir desempenho

aceitável e ser de rápida execução, servindo como base para comparação com ou-

tros modelos. Ele desconsidera a relação entre os dados de uma mesma amostra a

ser classificada, ou seja, as palavras do texto são independentes entre si. Por isso,

o classificador de naive Bayes se encaixa perfeitamente com a utilização do modelo

bag of words, uma vez que esse modelo considera que a ordem das palavras no

texto não tem relevância no significado do texto, e utiliza como probabilidades os

19

Page 22: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

valores obtidos da aplicação de tf-idf normalizado nesse modelo.

O teorema por trás desse algoritmo utiliza as fórmulas que podem ser vistas na

figura 2.3. A primeira fórmula é a fórmula principal desse teorema, e, no caso desse

trabalho, representa a probabilidade de um texto ser de determinada classificação,

dado que esse texto possui suas palavras. A segunda fórmula representa a caracte-

rística citada acima do algoritmo considerar a independência entre as palavras de

um mesmo texto. Com isso, é possível sabermos a probabilidade de um texto per-

tencer a tal classificação baseado na probabilidade de suas palavras serem dessa

classificação. Com essas duas fórmulas, é possível determinar a probabilidade de

um texto ser de determinada classificação, e, dentre todas as classificações, esco-

lher aquela cuja probabilidade é maior para classificar o texto.

Este classificador é popular para classificações discretas, como é o caso da

classificação de textos conforme já explorado por McCallum e Nigam (1998).

FIG. 2.3: Fórmulas do Teorema de Bayes

2.1.2 CLASSIFICADOR SVM

Conforme descrito por Joachims (1998), Support Vector Machines é um algoritmo

de aprendizado de máquina que se destaca na classificação de textos devido à sua

robustez ao lidar com dados de entrada de alta dimensionalidade e esparsos como

é o caso dos dados gerados a partir da representação bag of words. Neste modelo,

busca-se encontrar amostras que sejam representativas definição de hiperplanos

que separam os conjuntos de classes distintas, como pode ser visto na figura 2.4.

Estes dados são chamados de support vectors.

20

Page 23: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 2.4: Representação do modelo de SVM (fonte: Weinberger (2016)). A figuramais à esquerda ilustra a iteração da reta vermelha se transformando na azul paramaximizar a distância até os pontos suporte. Essa distância é ilustrada no gráficomais à esquerda

2.2 WORD EMBEDDINGS

Word embedding é a representação de palavras de um vocabulário em um espaço

n-dimensional de números reais conforme ilustra a figura 2.5. Isso permite que

palavras que são usadas de maneira similar tenham representações similares, de

maneira a capturar o significado de cada palavra de acordo com a sua posição no

espaço n-dimensional. Cada palavra é mapeada a um vetor e os valores desse vetor

são obtidos a partir de treinamentos que, em geral, envolvem redes neurais como

o skip-gram utilizado na implementação word2vec, Mikolov et al. (2013).

FIG. 2.5: Visualização de word embedding (fonte: Google-Tensorflow (2018))

21

Page 24: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

2.3 REDES NEURAIS ARTIFICIAIS

Redes Neurais são uma classe de funções em que a sua formulação matemática

foi inspirada em estruturas biológicas do cérebro. Na analogia biológica dessa

formulação, essas funções podem ser representadas no formato de um grafo em

que as estruturas básicas são chamadas neurônios.

FIG. 2.6: Neurônio artificial

Conforme a figura 2.6, um neurônio artificial é uma função y : Rn → R com en-

trada ~x =< x1, x2, x3, . . . , xn > e saída y = f(n∑

i=1

xiwi), em que f é a chamada função

de ativação, correspondendo tradicionalmente a função sigmoid, mas atualmente a

função mais utilizada é a relu (f(x) = max(0, x)).

Os parâmetros que definem a arquitetura de uma rede neural tradicional dentro

do conjunto da classe de funções são chamados hiperparâmetros. Esses parâme-

tros definem a quantidade de neurônios e as conexões entre eles que são tradicio-

nalmente organizadas segundo camadas totalmente conectadas.

Uma característica que torna as redes neurais interessantes é o fato de elas

atenderem ao Teorema da aproximação universal segundo Hornik (1991). Contudo,

o que as tornam realmente especiais no contexto de aprendizado de máquinas é a

maneira com que são encontrados os parâmetros para a aproximação de funções.

Diferentemente da aproximação de funções diferenciáveis pelo teorema de Taylor

por exemplo, existem heurísticas que permitem encontrar os parâmetros de uma

rede neural para a aproximação da função a partir de amostras pontuais, i.e., dados,

sem que seja necessário o conhecimento da função original como formulado no

teorema de Taylor.

Dessa maneira, além dos hiperparâmetros, há as duas seguintes categorias

de parâmetros em uma rede neural: parâmetros treináveis que são escolhidos a

22

Page 25: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

partir de procedimentos de treinamento envolvendo dados para a aproximação de

funções; parâmetros de entrada que correspondem aos da função que se deseja

aproximar. Uma vez encontrados parâmetros treináveis para uma aproximação sa-

tisfatória, estes são fixados e utilizam-se os parâmetros de entrada para realizar

previsões nas situações de interesse.

Uma vez que a definição de parâmetros treináveis já foi realizada, pode-se reto-

mar a análise das heurísticas que permitem determiná-los. Esse processo consiste

em um algoritmo iterativo que minimiza uma função de custo baseada na compara-

ção entre a saída da rede neural atual com dados de treinamento e os respectivos

valores reais. Esse processo é chamado método do gradiente e, conforme o próprio

nome diz, exige o cálculo do gradiente da função de custo em relação aos parâme-

tros treináveis e é viabilizado pelo algoritmo backpropagation por Rumelhart et al.

(1986). Atualmente, são utilizadas diversas técnicas para a otimização do método

do gradiente (Ruder (2016)), envolvendo desde variações na forma como as variá-

veis são atualizadas no processo iterativo quanto como inicializar os parâmetros

treináveis ou execuções em mini-batches.

2.3.1 REDES NEURAIS CONVOLUCIONAIS

Redes neurais convolucionais consistem em uma variação da arquitetura de redes

neurais tradicionais em que parâmetros treináveis podem ser reutilizados em di-

ferentes operações durante o cálculo de feedforward de uma rede neural. Isso

permite o reconhecimento de um mesmo padrão em distintos subconjuntos dos da-

dos de entrada, tornando esse tipo de arquitetura ideal para reconhecimento de

objetos em imagens conforme originalmente descrito por LeCun et al. (1999). Con-

tudo, uma variação unidimensional da rede neural convolucional também pode ser

útil no reconhecimento de padrões em textos com o auxílio de word embeddings.

2.3.2 REDES NEURAIS RECORRENTES

Conforme ilustrado por Olah (2015), redes neurais recursivas são uma extensão

das redes neurais tradicionais que visam permitir a representação de um estado

de memória no processo de feedforward da rede. Isso é especialmente útil quando

os dados de entrada dependem de uma sequência para possuírem coerência, como

ocorre no caso de um texto. A extração máxima de informação de um texto só ocorre

quando se leva em consideração a sequência das palavra, o que não é tratado no

23

Page 26: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

método bag of words por exemplo.

A representação de estado de memória em uma rede neural é viabilizada por

meio de uma célula, i.e., um conjunto de neurônios com operações que são apli-

cadas uma vez para cada elemento da sequência de um dado de entrada. Dessa

maneira, além de haver um compartilhamento de parâmetros treináveis como nas

redes neurais convolucionais, também há um estado armazenado nos neurônios da

célula que são realimentados a essa mesma célula ao executar as operações envol-

vendo o elemento seguinte da sequência, o que dá origem ao nome recorrente.

24

Page 27: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

3 OBTENÇÃO DAS BASES

A primeira etapa de implementação desenvolvida no trabalho foi a aquisição de

um conjunto de questões rotuladas de acordo com seus assuntos para se viabili-

zar a aplicação de algoritmos de classificação. Esse conjunto de dados foi obtido

por meio de web scrapping. Posteriormente, os arquivos baixados foram filtrados

e convertidos para um novo formato de maneira a se armazenar apenas os dados

de interesse. Finalmente, desenvolveu-se uma interface que faz uso de todo esse

conjunto de dados, tornando-o acessível para as demandas nos diferentes algorit-

mos de aprendizado de máquina. A figura 3.1 ilustra a sequência de operações

executadas na aquisição de dados e que serão descritas em detalhes a seguir.

FIG. 3.1: Sequência de operações para a aquisição de dados

3.1 WEB SCRAPPING

As questões utilizadas para treinamento dos modelos classificatórios foram retira-

das de um site preparatório para concursos públicos chamado “Rota dos concursos”

(rotadosconcursos.com.br). Para esta tarefa, foi implementado um script ruby que

simulava as requisições HTTP feitas por um navegador. Cada requisição realiza o

download de um arquivo HTML de uma página do site que contem exatamente uma

questão de concurso público.

Devido à grande quantidade de questões, foi utilizado um serviço de servidores

dedicados em nuvem para possibilitar as muitas horas de requisição. A quantidade

de questões também impossibilitou a manipulação dos arquivos em um único di-

retório. Desta forma foi utilizado um esquema de subpastas enumeradas de 000

25

Page 28: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

a 999 tornando a manipulação no sistema de arquivos tratável, pois os arquivos

são uniformemente distribuídos nessas subpastas por meio de uma função de hash

simples. Além disso, como o gargalo são operações de entrada e saída (I/O bound )

nas requisições, foi utilizado multithreading para otimizar o uso de CPU.

3.2 PRÉ-PROCESSAMENTO

Após o download em formato HTML, o conteúdo de cada página teve de ser isolado

em arquivos em formato JSON. Cada arquivo continha apenas os dados referentes a

uma questão, de maneira a descartar as informações referentes ao layout da página

e manter os seguintes atributos:

• id: Identificador único de cada questão;

• text: Enunciado da questão;

• subject_path: Lista de strings iniciada pela área de conhecimento abrangido

pela questão e seguida pela hierarquia de domínios abrangidos em ordem de

especificidade;

• alternatives: Lista com o texto de cada uma das alternativas caso a questão

seja de múltipla escolha;

• image_count: Contagem de imagens utilizadas no enunciado da questão. Vale

ressaltar que essa imagem pode conter até mesmo informação textual não

capturada pelo atributo text;

• concurso: Nome do concurso público do qual a questão foi extraída;

• prova: Ano em que a prova foi aplicada;

• banca: Banca referente ao concurso público da questão;

• nivel: Nível de escolaridade utilizado como pré-requisito no concurso público

em que questão foi obtida;

• answer: Alternativa correspondente a resposta correta caso a questão seja de

múltipla escolha.

Ao término desse pré-processamento, obteve-se um total de mais de 500 mil

arquivos JSON com questões.

26

Page 29: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

3.3 API DE DADOS

Como uma etapa final da sequência de operações antes de se iniciar a etapa analí-

tica, foi necessário desenvolver uma interface que fosse flexível para as diferentes

demandas de dados de treinamento/validação/teste no desenvolvimento dos algo-

ritmos de aprendizado de máquina. Para isso, foi implementada uma classe na

linguagem python (mesma utilizada para na etapa seguinte) que contivesse os da-

dos de todas as questões armazenadas inicialmente em distintos arquivos JSON em

uma única estrutura de dados em memória. Para isso, utilizou-se a estrutura de um

dataframe do pacote pandas devido a sua boa performance com o uso de operações

de broadcast em um grande conjunto de dados e a sua fácil manipulação.

Além disso, foram definidos alguns parâmetros para o construtor dessa classe,

de maneira a possibilitar o seu uso em diferente contextos de teste:

• random_state: Número inteiro utilizado como seed de aleatorização quando

for necessário distribuir arbitrariamente o conjunto de dados conforme é de-

talhado nos parâmetros frac e subset.

• frac: Determina a fração dos dados que vai ser carregada, possibilitando tanto

um uso reduzido para maior velocidade nos testes de desenvolvimento como

o uso completo para obtenção de resultados finais.

• dict_name: Nome de um arquivo JSON utilizado como dicionário para agru-

pamento de assuntos. Esse parâmetro possibilita o agrupamento de assuntos

similares, já que originalmente existem 133 áreas de conhecimento definidas

e com grande interseção entre elas, o que inviabiliza a classificação das ques-

tões até mesmo por seres humanos especialistas, pois a classificação possuiria

um caráter subjetivo. Para ilustrar a existência de domínios de conhecimento

similares, pode-se citar Engenharia de Redes e Engenharia de Telecomunica-

ções, bem como Contabilidade Privada Contabilidade Pública. Vale destacar

que o fato de ser um arquivo externo usado como dicionário flexibiliza o teste

de diferentes agrupamentos, permitindo a escolha de um agrupamento que

resulte em uma melhor performance de classificação.

• min_number_per_label: Número mínimo de amostras para cada área de co-

nhecimento após o agrupamento, as amostras referentes a assuntos com total

insuficiente são descartadas. Esse parâmetro é importante porque podem

27

Page 30: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

existir áreas de conhecimento com um número insuficiente de amostras para

realizar o treinamento de um algoritmo de classificação.

• subset: Determina se o objeto a ser instanciado terá fração de dados corres-

pondente ao treinamento, validação, teste ou todo o conjunto de dados. A

divisão desses conjuntos é feita de maneira aleatória e a consistência dessa

aleatorização para diferentes instâncias é determinada pelo parâmetro ran-

dom_state.

Além disso, a API de dados também faz uso de cache do dataframe base no

formato de um arquivo csv para evitar a releitura das centenas de milhares de

arquivos JSON sempre que for necessário criar um nova instância da classe.

Finalmente, sobre os métodos oferecidos pela API de dados, pode-se destacar

a existência de métodos que retornam estruturas com dados utilizados no treina-

mento como o enunciado de todas as questões e seus respectivos assuntos no for-

mato de string ou de one-hot-encoding.

28

Page 31: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

4 ARQUITETURA DA SOLUÇÃO

4.1 FLUXO DE ATIVIDADES

Antes de se discutir detalhes técnicos da implementação, é interessante definir um

fluxo de operações que serão realizadas pelo sistema. Isso permite uma melhor con-

textualização geral das funcionalidades a serem implementadas não só por quem

participará da sua implementação, mas também por quem será seu usuário.

Uma primeira observação sobre esse fluxo de atividades é que ele é posterior à

fase de obtenção de dados descrita no capítulo 3. A razão disso é porque a arquite-

tura descrita no presente capítulo independe da fonte de dados utilizada, buscando

uma fácil portabilidade para outros contextos de classificação de texto.

Todas as etapas a serem implementadas pelo sistema são descritas no diagrama

de atividades da figura 4.1. Esse diagrama pode ser resumido em três estágios prin-

cipais: uma fase inicial de preparação dos dados; uma segunda fase que define o

modelo do classificador e executa as etapas que precedem o treinamento; e uma

fase final em que é realizado o treinamento do modelo especificado no estágio an-

terior assim como são coletadas métricas sobre sua performance.

4.2 MODELAGEM DA IMPLEMENTAÇÃO

Nas implementações dos classificadores, existem várias etapas em comum con-

forme já ilustrado pela figura 4.1. Em virtude disso, buscou-se realizar uma imple-

mentação que satisfizesse requisitos de manutenibilidade e reusabilidade. Dessa

forma, foi elaborada uma solução focada em uma hierarquia de classes que maxi-

mizasse o reúso de implementações entre os modelos conforme ilustra o diagrama

de classes na figura 4.2.

Essa arquitetura modulariza as etapas do sistema. Um dos aspectos que se

buscou dar destaque nessa modularização foi o processamento da fonte de dados.

Isso é feito de maneira isolada em uma classe específica que pode ser facilmente

substituída por outra que implemente o carregamento de dados de outra fonte. No

diagrama de classes da figura 4.2, essa classe corresponderia a uma que substitui-

29

Page 32: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 4.1: Diagrama de atividades

ria a classe RotaDosConcursos, mantendo a mesma interface. Para tanto, essa nova

classe também deve herdar de DatasetDistributer. Depois disso, bastaria passar um

objeto dessa nova classe ao instanciar um objeto correspondente a um classificador

30

Page 33: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 4.2: Diagrama de classes

genérico que é implementado pela classe BaseModel. Isso ocorre porque a classe

BaseModel trata o objeto correspondente aos dados no seu construtor apenas no

nível da classe DatasetDistributer.

Quanto a implementação dos modelos, também trabalhou-se buscando uma mo-

dularidade para dar suporte a adição de novos classificadores. Antes no entanto,

31

Page 34: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

discutiremos qual o significado dos níveis da hierarquia de classes que implementa

essa solução.

Primeiramente, parte-se da classe abstrata BaseModel que, conforme já menci-

onado, implementa operações comuns a todos os modelos como métodos relaciona-

dos à exibição de resultados e à admissão de dados. Essa classe é então especiali-

zada de acordo com as duas estruturas de dados para a representação de texto em

concordância com as definições do capítulo 2 e também ilustradas no primeiro fork

da figura 4.1. Assim, o segundo nível dessa hierarquia é composto pelas classes

BagOfWords e WordEmbeddingModelKeras.

Em seguida, no caso de modelos que partem da representação Bag of Words,

especializa-se de acordo com o algoritmo classificador a ser utilizado, sendo este o

último nível. Já para modelos baseados em Word Embedding, esse é o penúltimo

nível e corresponde ao segundo fork (de cima para baixo) na figura 4.1. Vale ressal-

tar que apesar de somente duas abordagens para o uso da representação por Word

Embedding serem exploradas, a adição de mais uma versão seria simples graças

ao isolamento dessa etapa em uma única classe que se integra ao restante da ar-

quitetura por meio de herança. A última especialização do ramo referente a Word

Embedding define a topologia da rede neural implementada. Para os dois ramos,

novos classificadores podem ser facilmente adicionados ao último nível devido a fle-

xibilização dessa arquitetura modular. Contudo, há algumas ressalvas, a primeira

delas é que esse projeto trabalha apenas com redes neurais para a representação

Word Embedding, assim o último nível é, conforme já foi dito, responsável apenas

pela definição topológica. Além disso, a implementação foi todo feita em Python e

essa topologia deve ser feita utilizando a API Keras do pacote Tensorflow e o classi-

ficador utilizado na representação Bag of Words deve seguir a interface do pacote

Scikit-learn.

Por fim há ainda um conjunto de classes que trabalha a definição das métri-

cas que são coletadas. As mesmas métricas são coletadas independentemente da

representação numérica utilizada para o texto. Contudo, algumas especializações

são feitas porque os recursos de visualização do Tensorboard, com compatibilidade

exclusiva para o pacote Tensorflow, foram explorados somente para os modelos que

partem da representação Word Embedding.

32

Page 35: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

4.3 ASPECTOS PRÁTICOS DA IMPLEMENTAÇÃO

Um aspecto da implementação que foi de grande importância na viabilização da

execução dos treinamentos foi a facilidade de se utilizar vários núcleos de proces-

samento ao utilizar a biblioteca como scikit-learn. Isso permitiu a paralelização

utilizando vários núcleos de um servidor robusto do serviço AWS da Amazon con-

forme ilustra a figura 4.3. Além disso, o pacote Tensorflow abstrai o uso de GPUs

em um alto nível, o que também foi explorado ao utilizar os serviços da AWS.

FIG. 4.3: Uso das CPUs no servidor durante um dos treinamentos

Vale destacar que o uso dos serviços AWS foi completamente automatizado.

Isso significa que foi implementado um script que realiza as seguintes operações:

definição de toda a configuração da máquina virtual; criação de uma nova instancia

dessa máquina; realização do download do conjunto de dados preparado conforme

descrito no capítulo 3 que foi disponibilizado publicamente em um servidor de ar-

mazenamento também da Amazon; realização do download do modelo de Word Em-

bedding disponibilizado como parte do trabalho do artigo Hartmann et al. (2017);

download do código do modelo implementado como parte do presente trabalho;

execução do treinamento de um modelo selecionado; exportação das métricas para

o armazenamento em nuvem S3 da Amazon; terminação da instância da VM criada.

Por fim, visando a rastreabilidade das alterações do código durante o desenvol-

vimento e uma colaboração em equipe, todo o código foi versionado. O repositório

pode ser acessado em: github.com/brunovcosta/pfc .

33

Page 36: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

5 SELEÇÃO DO CONJUNTO DE DADOS E DOS MODELOS

5.1 SELEÇÃO DO CONJUNTO DE DADOS

Neste trabalho, foram empregados dois modelos de representação de textos distin-

tos. Cada modelo foi utilizado para gerar um descritor por questão com base no

enunciado e alternativas. Esses descritores juntos aos rótulos de disciplina servi-

ram de fonte de dados para modelos classificadores os quais foram comparados por

meio de métricas como a acurácia.

Para estabelecer um padrão de comparação entre os distintos modelos, definiu-

se um conjunto de parâmetros da API de dados descrita na seção 3.3. Dentre esses

parâmetros, pode-se destacar o uso de um dicionário de agrupamento de assuntos

conforme listado no apêndice 10.2 e um número mínimo de 10000 amostras por

categoria de enunciado. A partir desses parâmetros, as 133 classes iniciais listadas

no apêndice 10.1 foram reduzidas a apenas 9 classes conforme ilustra a figura 5.1.

5.2 SELEÇÃO DOS MODELOS

Uma grande influência na escolha dos modelos em que foi dado um maior foco de

otimização foi o guia de classificação de texto produzido por Google-Developers

(2018) e ilustrado pelo fluxograma da figura 5.2. Esse guia se trata do resultado

de anos de pesquisa em que foram executados cerca de 450 mil experimentos para

avaliar a performance de diversos modelos com diferentes hiperparâmetros e con-

juntos de dados. Assim, ele tem como objetivo evitar esforços redundantes na sele-

ção e no treinamento de modelos em novos conjuntos de dados.

O fluxograma da figura 5.2 é baseado na correlação encontrada na razão entre o

número de amostras do conjunto de dados (S) e a mediana do comprimento do texto

de cada uma dessas questões (W) para a tomada de decisão em suas bifurcações

na busca por uma acurácia ótima. No presente trabalho, a partir dos parâmetros

da API de dados já definidos, tem-se um total de 299.314 amostras e uma mediana

de 65 palavras por amostra, resultando em uma razão (S/W) de aproximadamente

4604.83. Assim, o modelo mais recomendado é o sequencial com o uso de word em-

34

Page 37: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 5.1: Distribuição das categorias selecionadas

bedding conforme ilustra a figura reffig:TextClassificationFlowchart. Além disso,

recomenda-se também o treinamento de uma camada de embedding que parta de

um modelo pré-treinado, pois um treinamento a partir de valores aleatórios exigiria

uma maior razão S/W.

O presente trabalho não se restringe a modelos sequenciais. Implementou-se

também modelos baseados em n-gramas, pois estes são modelos mais simples e

tradicionais que atuam como bons pontos de referência na comparação dos resul-

tados finais. Contudo, após uma avaliação inicial dos resultados, as recomendações

do guia (por Google-Developers (2018)) se confirmaram e os modelos sequenciais

mostraram melhores resultados. Por essa razão, em iterações posteriores dos mo-

delos, apenas os sequenciais foram explorados na busca por hiperparâmetros que

correspondessem a melhores resultados.

35

Page 38: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 5.2: Fluxograma para classificação de texto (fonte: Google-Developers (2018))

36

Page 39: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

6 MODELOS BASEADOS EM BAG OF WORDS

Para a representação bag of words, foram utilizados algoritmos classificadores

tradicionais conforme descrito em Christopher D. Manning e Schütze (2009a). Eles

atuam como uma referência de benchmarking para os modelos mais modernos que

serão discutidos na seção 7.

Como etapas de preparação da estrutura de dados a partir da representação

bag of words, foram utilizadas as seguintes técnicas de processamento de lingua-

gem natural do pacote NLTK (Natural Language Toolkit), que possui suporte para

a linguagem português brasileiro: a separação da frase em palavras, deixando-

as com letra minúscula; a remoção de stopwords (palavras de parada) desse con-

junto de palavras, apresentadas no apêndice 10.3; e a lematização das palavras

utilizando RSLPStemmer (Removedor de Sufixos da Língua Portuguesa) (Huyck e

Orengo (2001)). Após a aplicação dessas técnicas, é utilizado TF-IDF por meio da

implementação TfidfTransformer da biblioteca scikit-learn.

6.1 NAIVE BAYES

Conforme descrito na seção 2.1.1, o classificador NB foi um dos utilizados para a

representação textual bag of words. A versão utilizada nessa implementação foi a

variante multinomial que, como o próprio sugere, assume uma distribuição multi-

nomial na inferência de probabilidade. Utilizou-se a implementação da biblioteca

do scikit-sklearn, obtendo-se resultados sumarizados pela figura 6.1 e pela tabela

6.1.

TAB. 6.1: Métricas do modelo naive bayes

Métrica Conj. de Treinamento Conj. de TesteAcurácia 0.79287 0.78655F1-Score 0.77180 0.76427Precisão 0.80543 0.79806

AUC ROC 0.97163 0.96980

37

Page 40: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 6.1: Matriz de confusão do conjunto de testes normalizada para o classificadorNaive Bayes

6.2 SUPPORT VECTOR MACHINES

O segundo classificador para o modelo bag of words foi o classificador SVM, des-

crito na seção 2.1.2. A implementação escolhida para esse classificador foi também

a da biblioteca sklearn a partir do método SGDClassifier, resultando na matriz de

confusão da figura 6.2 em que as métricas são detalhadas pela tabela 6.2.

38

Page 41: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

TAB. 6.2: Métricas do modelo SVM

Métrica Conj. de Treinamento Conj. de TesteAcurácia 0.77368 0.77295F1-Score 0.74712 0.74489Precisão 0.78709 0.78676

FIG. 6.2: Matriz de confusão do conjunto de testes normalizada para o classificadorSVM

39

Page 42: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

7 MODELOS BASEADOS EM WORD EMBEDDING

Para a representação numérica de texto por word embedding foram usadas

apenas classificadores baseados em redes neurais, mas diversas topologias para

essas redes foram exploradas.

A nossa implementação faz uso de uma camada de embedding pré-treinada, o

seu treinamento é definido opcionalmente a partir de um parâmetro binário. Con-

tudo, contrariando a recomendação do fluxograma da figura 5.2, trabalha-se apenas

com os parâmetros dessa camada congelados, pois a adição da camada de embed-

ding ao conjunto de parâmetros treináveis aumenta consideravelmente o tempo de

treinamento dos modelos, o que é inviável para os nossos recursos disponíveis.

Foram utilizados vetores gerados por meio da técnica GloVe (PENNINGTON

et al., 2014) que foram treinados em língua portuguesa e disponibilizados pelo

NILC-USP (HARTMANN et al., 2017). Essa implementação foi realizada com ve-

tores de 50, 100, 300, 600 e 1000 dimensões.

7.1 VETORIZAÇÃO AGLUTINADA POR MÉDIA

Junto ao modelo de word embedding, utilizou-se uma aglutinação em que cada en-

trada V de N dimensões corresponde a média aritmética das palavras no enunciado

S da respectiva questão, ou seja:

vi =

∑w∈S glove(w)

LS

Onde vi é o i-ésimo valor de entrada para a rede em que i ∈ [1, N ] e S =

{w1, w2, · · · } é a sequência das LS palavras w no enunciado S.

7.1.1 REDE NEURAL SIMPLES

Como modelo classificador que trabalha com essas entradas aglutinadas de word

embedding, utilizou-se uma rede neural simples conforme a figura 7.1. A topologia

ilustrada por essa figura é então sucedida por camada softmax para a geração das

probabilidades de cada categoria.

A implementação utilizou a linguagem Python e a biblioteca de aprendizado de

máquinas Tensorflow, produzindo os resultados indicados na tabela 7.1.

40

Page 43: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.1: Rede Neural Simples

TAB. 7.1: Métricas da rede neural simples no conjunto de testes para os distintosnúmeros de dimensões de word embedding analisados

Dimensões Acurácia F1-Score Precisão AUC ROC50 0.7368 0.7213 0.7239 0.9497

100 0.7641 0.7552 0.7551 0.9583300 0.8014 0.7940 0.7949 0.9689600 0.8146 0.8082 0.8094 0.97241000 0.8216 0.8171 0.8183 0.9746

Apesar de não ser um modelo complexo, um ponto de destaque foi a sua capa-

cidade de generalização, pois não foi observada tendência de overfitting conforme

ilustra o gráfico da figura 7.2.

FIG. 7.2: Curva da função de custo ao término de cada epoch de treinamento para50 dimensões de word embedding no modelo rede neural simples

Além disso, como era de se esperar a partir dos resultados listados na tabela

41

Page 44: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

7.1, houve uma boa separação das classes selecionadas nas previsões. Conforme

apresenta a figura 7.3, apenas categorias que são difíceis de serem distinguidas até

mesmo por seres humanos tiveram um índice de acerto menor do que 83%. Nesses

casos, as classes majoritárias, vide figura 5.1, foram favorecidas.

FIG. 7.3: Matriz de confusão normalizada do conjunto de testes com o uso de 1000dimensões de word embedding no modelo rede neural simples

Contudo, vale ressaltar que esse é um modelo simples de rede neural e não é re-

comendado para essa aplicação, o seu propósito aqui está diretamente relacionado

42

Page 45: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

com a sua simplicidade: atuar como teste inicial de um modelo baseado em word

embedding, pois, caso existam erros, um primeiro teste com um modelo complexo

é mais difícil de ser depurado.

7.2 VETORIZAÇÃO SEQUENCIAL

Além da aglutinação por média da representação numérica de palavras por em-

bedding, também se utilizou sequencialmente a representação de cada uma das

palavras do texto. Diferentemente das versões exploradas até então, o uso sequen-

cial leva em conta a ordem com que as palavras estão dispostas ao longo do texto

para a sua classificação, sendo, portanto, capaz de capturar mais nuâncias do texto.

7.2.1 REDES CONVOLUCIONAIS SEPARÁVEIS

A implementação SepCNN foi feita utilizando 2 blocos de duas convoluções separá-

veis cada conforme a figura 7.4 e foram utilizados 64 filtros de tamanho 3 dropout

de 20%. O modelo SepCNN foi inspirados nos estudos de Chollet (2016).

FIG. 7.4: Diagrama sequencial das etapas realizadas na implementação SepCNN

Cada camada "SepConv x2"é a junção de duas etapas de depthwise/pointwise

conforme ilustra a figura 7.5.

Conforme esperado, o SepCNN apresentou bons resultados de acurácia como

pode ser notado na figura 7.6. Outra vantagem deste modelo foi sua execução mais

rápida em treinamento.

7.2.2 RNN SIMPLES COM CÉLULAS LSTM

Este modelo se trata da estrutura tradicional de uma rede neural recorrente e pos-

sui, como unidade de repetição, uma célula do tipo LSTM conforme ilustra a figura

7.8. Nesse modelo, "os neurônios"de memória da célula após o processamento de

todas as etapas recorrentes são usados como dados de entrada para uma rede neu-

ral simples idêntica ao modelo já descrito e ilustrado pela figura 7.1. A performance

43

Page 46: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.5: Esquema ilustrativo de convolução separável. Os filtros (em amarelo)representam da esquerda para a direita o depthwise e os pointwise. Neste exemplo,o cada palavra possui 5 dimensões e cada enunciado 10 palavras. O número defiltros é 3.

dessa rede neural recorrente foi intermediária quando comparada aos outros mo-

delos de redes neurais baseadas em word embeddings como pode ser visto em sua

matriz de confusão na figura 7.7.

7.2.3 STACKED RNN COM CÉLULAS LSTM

Uma sofisticação do modelo descrito na seção 7.2.2 é a adição de mais uma camada

com uma segunda célula LSTM conforme ilustra a figura 7.9. Assim, após o proces-

samento de cada entrada xt, a saída correspondente ht, conforme a figura 7.8, não

seria descartada, mas sim repassada para uma camada de dropout cujo resultado

é usado como entrada para a segunda célula LSTM. Esse modelo foi o que obteve

a melhor performance em acurácia conforme detalhado pela matriz de confusão na

figura 7.10

44

Page 47: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.6: Matriz de confusão normalizada do modelo SepCNN para 50 dimensõesde embedding

45

Page 48: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.7: Matriz de confusão normalizada do modelo RNN simples com célulasLSTM e 50 dimensões de embedding no conjunto de testes

FIG. 7.8: Diagrama esquemático da um LSTM (fonte: Olah (2015))

46

Page 49: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.9: Diagrama de uma topologia do tipo stacked RNN (fonte: Coursera)

47

Page 50: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

FIG. 7.10: Matriz de confusão normalizada do modelo Stacked RNN e 100 dimen-sões de embedding no conjunto de testes

48

Page 51: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

8 CONCLUSÃO

Como esperado, as recomendações do Google no artigo de referência se manti-

veram coerentes com os resultados atingidos. O melhor resultado com a métrica de

acurácia foi o Stacked RNN, que com o mesmo número de dimensões, obteve um re-

sultado de 87,37%, comparado aos 85,6% do RNN e aos 84,4% do SepCNN. Porém,

ao se observar o tempo de treinamento dos modelos, percebe-se que, utilizando o

mesmo número de epochs, o SepCNN tem o melhor custo/benefício, terminando seu

treinamento com apenas 12 minutos e 8 segundos, tempo consideravelmente menor

do que os modelos que utilizam RNN, que, executados nas mesmas condições, le-

varam pelo menos de 3 horas e 30 minutos para terminarem seus treinamentos. Os

valores de acurácia e tempo dos classificadores estão descrito na tabela 8.1, sendo

que os modelos de word embeddings listados utilizam palavras com 50 dimensões.

TAB. 8.1: Comparação entre os classificadores

Classificador Acurácia Tempo de treinamentoNB 0.79287 -//-

SVM 0.77368 -//-NN Simples 0.7377 04m02s

SepCNN 0.8444 12m08sRNN 0.8560 03h31m03s

StackedRNN 0.8737 06h23m15s

Outro produto relevante deste trabalho foi a ferramenta de aplicação de mode-

los de classificação que se mostra modular o suficiente para ser aplicada a diversos

contextos distintos, não se restringindo às questões utilizadas neste artigo.

Dentre os possíveis próximos trabalhos, encontram-se a continuação da ferra-

menta de testes de modelos utilizando integração contínua e automação de infra-

estrutura para tornar o processo de testes mais rápido, de modo que novos mo-

delos poderão ser testados sem preocupação de configuração de máquinas, e que

possuam um custo menor. Este tipo de implementação também possibilitaria a

expansão do número de dimensões dos modelos, podendo chegar ao uso de 1000

dimensões.

Para que a classificação tenha uso prático, é necessário que ela seja capaz de

distinguir além dos temas das questões, seus subtemas, de modo a categorizar

49

Page 52: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

ainda mais o banco de questões. Além disso, a expansão dos modelos para outros

tipos de questões diferentes do conjunto de treinamento como, por exemplo, ques-

tões de vestibulares ou exames de periódicos de escolas e este caso fica como uma

sugestão de trabalho futuro.

50

Page 53: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

9 REFERÊNCIAS BIBLIOGRÁFICAS

CHOLLET, F. Xception: Deep learning with depthwise separa-

ble convolutions. CoRR, v. abs/1610.02357, 2016. Disponível em:

<http://arxiv.org/abs/1610.02357>. Acesso em: 15 de setembro de 2018.

CHRISTOPHER D. MANNING, P. R.; SCHÜTZE, H. An Introduction to Informa-

tion Retrieval. Draft. ed. Cambridge, England: Cambridge University Press,

2009. 544 p.

CHRISTOPHER D. MANNING, P. R.; SCHÜTZE, H. Scoring, term weighting and the

vector space model. In: . An Introduction to Information Retrieval.

Cambridge, England: Cambridge University Press, 2009. p. 109–133.

GOOGLE-DEVELOPERS. Machine Learning Guides: Text classification.

Disponível em: <https://developers.google.com/machine-learning/guides/text-

classification/>. Acesso em: 28 de Julho de 2018.

GOOGLE-TENSORFLOW. Vector Representations of Words. Disponível em:

<https://www.tensorflow.org/tutorials/representation/word2vec>. Acesso em:

15 de Agosto de 2018.

HARTMANN, N.; FONSECA, E. R.; SHULBY, C.; TREVISO, M. V.; RODRIGUES, J. ;

ALUÍSIO, S. M. Portuguese word embeddings: Evaluating on word analogies

and natural language tasks. CoRR, v. abs/1708.06025, 2017. Disponível em:

<http://arxiv.org/abs/1708.06025>. Acesso em: 16 de agosto de 2018.

HORNIK, K. Approximation capabilities of multilayer feedforward networks.

Neural Networks, v. 4, n. 2, p. 251 – 257, 1991. Disponível

em: <http://www.sciencedirect.com/science/article/pii/089360809190009T>.

Acesso em: 12 de maio de 2018.

HUYCK, C.; ORENGO, V. A stemming algorithmm for the portuguese language.

In: STRING PROCESSING AND INFORMATION RETRIEVAL, INTERNATIONAL

SYMPOSIUM ON(SPIRE), 8ª., 2001. Anais... [S.l.: s.n.], 2001. Disponível em:

<doi.ieeecomputersociety.org/10.1109/SPIRE.2001.10024>. Acesso em: 14 de

julho de 2018.

51

Page 54: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

JOACHIMS, T. Text categorization with support vector machines: Learning

with many relevant features. In: MACHINE LEARNING: ECML-98, 1ª., 1998.

Anais... Berlin, Heidelberg: Springer Berlin Heidelberg, 1998, p. 137–142.

Acesso em: 17 de julho de 2018.

LECUN, Y.; HAFFNER, P.; BOTTOU, L. ; BENGIO, Y. Object recognition with

gradient-based learning. In: . Shape, Contour and Grouping in Com-

puter Vision. Berlin, Heidelberg: Springer Berlin Heidelberg, 1999. p. 319–

345. ISBN 978-3-540-46805-9.

MCCALLUM, A.; NIGAM, K. A Comparison of Event Models for Naive Bayes

Text Classification. Pittsburgh: Carnegie Mellon University, 1998. 8 p. (Rela-

tório Técnico).

MIKOLOV, T.; SUTSKEVER, I.; CHEN, K.; CORRADO, G. ; DEAN, J. Distribu-

ted representations of words and phrases and their compositionality. CoRR, v.

abs/1310.4546, 2013. Disponível em: <http://arxiv.org/abs/1310.4546>. Acesso

em: 1º de maio de 2018.

CHRISTOPHER OLAH. Understanding LSTM Networks. Disponível em:

<http://colah.github.io/posts/2015-08-Understanding-LSTMs/>. Acesso em: 12

de maio de 2018.

JEFFREY PENNINGTON AND RICHARD SOCHER AND CHRISTOPHER D. MAN-

NING. GloVe: Global Vectors for Word Representation. Disponível em:

<http://www.aclweb.org/anthology/D14-1162>. Acesso em: 14 de julho de

2018.

RUDER, S. An overview of gradient descent optimization algorithms. CoRR,

v. abs/1609.04747, 2016. Disponível em: <http://arxiv.org/abs/1609.04747>.

Acesso em: 12 de maio de 2018.

RUMELHART, D. E.; HINTON, G. E. ; WILLIAMS, R. J. Learning representations

by back-propagating errors. Nature, v. 323, p. 533 EP –, 1986. Disponível em:

<http://dx.doi.org/10.1038/323533a0>. Acesso em: 12 de maio de 2018.

KILIAN WEINBERGER. Lecture 9: SVM. Disponível em:

<http://www.cs.cornell.edu/courses/cs4780/2017sp/lectures/lecturenote09.html>.

Acesso em: 16 de setembro de 2018.

52

Page 55: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

10 APÊNDICES

53

Page 56: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

APÊNDICE 1: LISTA DE CATEGORIAS DE QUESTÕES

• Administração

• Administração Financeira e Orça-

mentária - AFO

• Administração Pública

• Agricultura/Agropecuária

• Agronomia (Ver na matéria Enge-

nharia Agronômica)

• Antropologia

• Arqueologia

• Arquitetura

• Arquivologia

• Artes

• Atualidades e Conhecimentos Ge-

rais

• Atuária / Matemática Atuária

• Auditoria

• Biblioteconomia

• Biologia

• Ciência Política

• Ciência da Computação

• Comunicação Social

• Comércio Internacional

• Conhecimentos Bancários

• Contabilidade - Analise das De-

monstrações Contábeis / Análise de

Balanço

• Contabilidade Privada

• Contabilidade Pública

• Contabilidade de Custos

• Controle Externo - CEX

• Criminologia

• Dança

• Desenho Industrial

• Direito Administrativo

• Direito Ambiental

• Direito Civil

• Direito Comercial / Empresarial

• Direito Constitucional

• Direito Eleitoral

• Direito Financeiro

• Direito Internacional

• Direito Penal

54

Page 57: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• Direito Penal Militar / Direito Pro-

cesual Penal Militar

• Direito Previdenciário

• Direito Procesual Civil

• Direito Procesual Penal

• Direito Procesual Tributário

• Direito Procesual do Trabalho

• Direito Securitário

• Direito Trabalho

• Direito Tributário

• Direito do Consumidor

• Direitos Humanos

• Economia

• Educação Física

• Enfermagem

• Engenharia (Teoria Geral)

• Engenharia Aeronáutica

• Engenharia Agronômica

• Engenharia Ambiental

• Engenharia Cartográfica e de Agri-

mensura

• Engenharia Civil

• Engenharia Eletrônica

• Engenharia Elétrica

• Engenharia Espacial

• Engenharia Florestal

• Engenharia Física

• Engenharia Hospitalar/Clínica

• Engenharia Industrial

• Engenharia Mecatrônica

• Engenharia Mecânica

• Engenharia Naval

• Engenharia Nuclear

• Engenharia Portuária

• Engenharia Química

• Engenharia Sanitária

• Engenharia de Alimentos

• Engenharia de Avaliações

• Engenharia de Materiais

• Engenharia de Pesca

• Engenharia de Produção e Egenha-

ria Industrial

• Engenharia de Qualidade

• Engenharia de Recursos Hídri-

cos/Hidráulica

• Engenharia de Redes

• Engenharia de Telecomunicações

• Engenharia de Transporte

55

Page 58: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• Engenharia de Tráfego

• Estatística

• Farmácia

• Filosofia

• Filosofia do Direito

• Finanças

• Finanças Públicas

• Fisioterapia

• Física

• Geografia

• Geologia

• História

• Informática Básica / Microinformá-

tica

• Legislação Estadual, Distrital e

Municipal

• Legislação Federal

• Legislação dos Órgãos Federais,

Estaduais, Distritais e Municipais e

dos Órgãos Internacionais

• Legislação: decretos

• Lei de Responsabilidade Fiscal -

LRF

• Língua Espanhola

• Língua Francesa

• Língua Inglesa

• Língua Portuguesa

• Línguas Outras

• Matemática

• Matemática Financeira

• Medicina

• Meio Ambiente

• Música

• Nutrição

• Oceanografia

• Odontologia

• Pedagogia

• Política Internacional

• Psicologia

• Qualidade no Atendimento

• Química

• Raciocínio lógico

• Relações Humanas

• Relações Internacionais

• Relações Públicas

• Religiões

• Secretariado Executivo

• Segurança e Saúde no Trabalho

(Teoria e Normas)

• Seguros e Reseguros

56

Page 59: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• Serviço Social

• Sociologia

• Terapia Ocupacional

• Trânsito e Serviço de Transporte

• Turismo

• Veterinária

• Vigilância Sanitária / Política de

Saúde / Serviço Único de Saúde -

SUS / Gestão em Saúde

• Ética

57

Page 60: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

APÊNDICE 2: DICIONÁRIO JSON PARA AGRUPAMENTO DE CATEGORIAS

1 {

2 "Contabilidade":[

3 "Contabilidade - Analise das Demonstracoes Contabeis / Analise

de Balanco",

4 "Contabilidade Privada",

5 "Contabilidade Publica",

6 "Contabilidade de Custos"

7 ],

8 "Direito":[

9 "Direito Administrativo",

10 "Direito Ambiental",

11 "Direito Civil",

12 "Direito Comercial / Empresarial",

13 "Direito Constitucional",

14 "Direito Eleitoral",

15 "Direito Financeiro",

16 "Direito Internacional",

17 "Direito Penal",

18 "Direito Penal Militar / Direito Processual Penal Militar",

19 "Direito Previdenciario",

20 "Direito Processual Civil",

21 "Direito Processual Penal",

22 "Direito Processual Tributario",

23 "Direito Processual do Trabalho",

24 "Direito Securitario",

25 "Direito Trabalho",

26 "Direito Tributario",

27 "Direito do Consumidor",

28 "Direitos Humanos"

29 ],

58

Page 61: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

30 "Legislacao":[

31 "Legislacao Estadual, Distrital e Municipal",

32 "Legislacao Federal",

33 "Legislacao dos Orgaos Federais, Estaduais, Distritais e

Municipais e dos orgaos Internacionais",

34 "Legislacao: decretos"

35 ],

36 "Engenharia Agronomica":[

37 "Agronomia (Ver na materia Engenharia Agronomica)"

38 ],

39 "Financas":[

40 "Matematica Financeira",

41 "Financas",

42 "Financas Publicas"

43 ]

44 }

59

Page 62: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

APÊNDICE 3: LISTA DE STOPWORDS

• de

• a

• o

• que

• e

• do

• da

• em

• um

• para

• com

• não

• uma

• os

• no

• se

• na

• por

• mais

• as

• dos

• como

• mas

• ao

• ele

• das

• à

• seu

• sua

• ou

• quando

• muito

• nos

• já

• eu

• também

• só

• pelo

• pela

• até

• isso

• ela

• entre

• depois

• sem

• mesmo

• aos

• seus

• quem

• nas

• me

• esse

• eles

• você

• essa

• num

• nem

• suas

• meu

• às

60

Page 63: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• minha

• numa

• pelos

• elas

• qual

• nós

• lhe

• deles

• essas

• esses

• pelas

• este

• dele

• tu

• te

• vocês

• vos

• lhes

• meus

• minhas

• teu

• tua

• teus

• tuas

• nosso

• nossa

• nossos

• nossas

• dela

• delas

• esta

• estes

• estas

• aquele

• aquela

• aqueles

• aquelas

• isto

• aquilo

• estou

• está

• estamos

• estão

• estive

• esteve

• estivemos

• estiveram

• estava

• estávamos

• estavam

• estivera

• estivéramos

• esteja

• estejamos

• estejam

• estivesse

• estivéssemos

• estivessem

• estiver

• estivermos

• estiverem

• hei

• há

• havemos

• hão

• houve

• houvemos

• houveram

• houvera

• houvéramos

• haja

• hajamos

• hajam

61

Page 64: MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO … - Ricarte.pdf · ministÉrio da defesa exÉrcito brasileiro departamento de ciÊncia e tecnologia instituto militar de engenharia curso

• houvesse

• houvéssemos

• houvessem

• houver

• houvermos

• houverem

• houverei

• houverá

• houveremos

• houverão

• houveria

• houveríamos

• houveriam

• sou

• somos

• são

• era

• éramos

• eram

• fui

• foi

• fomos

• foram

• fora

• fôramos

• seja

• sejamos

• sejam

• fosse

• fôssemos

• fossem

• for

• formos

• forem

• serei

• será

• seremos

• serão

• seria

• seríamos

• seriam

• tenho

• tem

• temos

• tém

• tinha

• tínhamos

• tinham

• tive

• teve

• tivemos

• tiveram

• tivera

• tivéramos

• tenha

• tenhamos

• tenham

• tivesse

• tivéssemos

• tivessem

• tiver

• tivermos

• tiverem

• terei

• terá

• teremos

• terão

• teria

• teríamos

• teriam

62