Você está na página 1de 40

UNIVERSIDADE DO VALE DO RIO DOS SINOS – UNISINOS

UNIDADE ACADÊMICA DE EDUCAÇÃO ONLINE

ESPECIALIZAÇÃO EM BIG DATA, DATA SCIENCE E DATA ANALYTICS

Antonio Marcio Adiodato de Menezes

CLASSIFICAÇÃO DE EMOÇÕES
AUTOMATIZADA E APLICÁVEL
EM TEXTOS DE EAD ESCRITOS
EM PORTUGUÊS DO BRASIL

Porto Alegre

2021
UNIVERSIDADE DO VALE DO RIO DOS SINOS – UNISINOS

UNIDADE ACADÊMICA DE PESQUISA E EDUCAÇÃO ONLINE

ESPECIALIZAÇÃO EM BIG DATA, DATA SCIENCE E DATA ANALYTICS

Antonio Marcio Adiodato de Menezes

CLASSIFICAÇÃO DE EMOÇÕES
AUTOMATIZADA E APLICÁVEL
EM TEXTOS DE EAD ESCRITOS
EM PORTUGUÊS DO BRASIL

Trabalho de Conclusão de Curso apresentado como


requisito parcial para a obtenção do título de
Especialista em Big Data, Data Science e Data
Analytics, pelo curso de Pós-Graduação Lato Sensu em
Big Data, Data Science e Data Analytics da
Universidade do Vale do Rio dos Sinos – UNISINOS.
Orientador: Prof. Dra. Isa Mara da Rosa Alves.

Porto Alegre

2021
Classificação de Emoções Automatizada e Aplicável em
Textos de EaD escritos em Português do Brasil
Antonio M. A. Menezes1
1
Universidade do Vale do Rio dos Sinos (UNISINOS)

Av. Nilo Peçanha, 1600, Boa Vista, Porto Alegre, RS – Brasil

antoniomenezes@gmail.com

Abstract. This paper aims to compare viable methods to create models capable
of classifying emotions in Brazilian Portuguese texts, particularly similar to
texts found in distance education (DE). The ISEAR corpus (The International
Survey on Emotion Antecedents and Reactions) was translated and used for the
experiments. Machine learning techniques with supervised learning were
employed. Despite the superior accuracy (89.95%) obtained through deep
learning algorithms such as BERT, the classic machine learning techniques
proved to be useful and, with less computational effort, achieved relevant results
(greater than 80% of accuracy) when combined with the Data Augmentation
technique. It is expected that all the work and lessons learned will be applicable
to the construction of emotion classifiers for the texts resulting from the
interaction of students during DE.

Resumo. Este artigo tem como objetivo comparar métodos viáveis para se criar
modelos capazes de classificar emoções em textos do Português do Brasil,
particularmente semelhantes aos textos encontrados em educação à distância
(EaD). O corpus ISEAR (The International Survey on Emotion Antecedents and
Reactions) foi traduzido e utilizado nos experimentos. Foram empregadas
técnicas de aprendizagem de máquina com aprendizado supervisionado.
Apesar da acurácia superior (89,95%) obtida por meio de algoritmos de
aprendizado profundo como BERT, as técnicas clássicas de aprendizado de
máquina mostraram-se úteis e, com menor esforço computacional, alcançaram
resultados relevantes (superiores a 80% de acurácia) quando aliadas à técnica
de Data Augmentation. Espera-se que todo o trabalho e as lições aprendidas
sejam aplicáveis à construção de classificadores de emoções para os textos
resultantes da interação de alunos durante EaD.

1. Introdução
Por volta de 1900, já havia estudos relevantes sobre as emoções, conduzidos por William
James, Carl Lange, Sigmund Freud e Charles Sherrington. No entanto, ao longo do século
XX, estranhamente, os estudiosos das áreas que formariam a futura neurociência
permaneceram sem dar o valor devido às emoções no processo do raciocínio humano.
Eram tratadas somente como fontes de perturbação [Damásio 2012]. Da mesma forma,
no contexto educacional, com a separação entre cognitivo e afetivo, as emoções eram
ditas por atrapalhar a escolarização e não era cabível que a prática pedagógica
“trabalhasse o afetivo” [Gomes 2014]. Anos mais tarde, os laboratórios de neurociência
nos Estados Unidos e Europa voltaram sua atenção aos estudos das emoções, filósofos
que tratavam sobre o tema passaram a ser mais ouvidos e o assunto caiu no gosto do
público. Hoje, por exemplo, rastrear as emoções dos alunos sobre seus cursos é essencial
para se definir políticas eficazes de engajamento discente. Além disso, para a educação à
distância (EaD), a afetividade é considerada instigadora da colaboração mútua. Estar
ciente do papel das emoções e lidar com elas é fator determinante para o sucesso dessa
modalidade de aprendizado [Baptista e Martins 2018] e [Jaques e Morais 2019].
Para a identificação das emoções contidas nas interações de participantes de EaD,
há soluções que se concentram na análise do conteúdo audiovisual, no gestual humano,
com o auxílio de técnicas em visão computacional. Porém, grande parte da interação ainda
é realizada por meio de diálogos em linguagem natural sob a forma de textos escritos.
Este trabalho está inserido nesse contexto, na detecção automatizada das emoções
expressas através de textos escritos em língua portuguesa do Brasil, com desejada
aplicação na análise dos diálogos de EaD.
A detecção dos sentimentos e estados emocionais apresenta muitos desafios
[Mohammad 2017]. As dificuldades ligam-se tanto às questões linguísticas quanto aos
aspectos computacionais para construção de soluções automatizadas. Sob a óptica da
linguagem, há as relações entre emoções, entidades e sentenças; o lado emocional
presente no uso de figuras de linguagem, ironias, metáforas [Moraes 2020]; a posição em
que as emoções estão inseridas no texto (seja no posicionamento do autor perante um
assunto, o contágio emocional que desperta sobre o leitor, ou mesmo as emoções que
personagens e outros sujeitos manifestam ao longo de uma narrativa). Há ainda as
questões quanto à construção e ao uso de léxicos e de corpora, com atributos sobre
sentimentos/emoções, polaridades, valências, graus de intensidade de cada emoção e a
riqueza dos vocabulários para uma determinada língua; palavras correspondentes em
diferentes idiomas, mas ligadas a emoções distintas. E, por fim, existem os desafios
pertinentes ao aprimoramento do desempenho, do consumo adequado de recursos
computacionais e da melhoria da acurácia das técnicas e dos algoritmos para a
classificação dos sentimentos e das emoções expressas em textos.
A análise de sentimentos é uma das diversas aplicações do processamento de
linguagem natural (PLN). Muitas vezes, essa forma de análise é confundida com a tarefa
de classificação das emoções. Diferentemente da primeira, que lida com categorias de
valores positivos, negativos e neutros, a segunda considera as emoções como uma
categoria multifacetada, conforme os trabalhos de psicólogos, como Paul Ekman, Klaus
Scherer, Robert Plutchik, Gerald L. Clore, Andrew Ortony e Allan M. Collins. É
importante diferenciar os dois tipos de aplicação. Enquanto, na análise de sentimentos, há
maior diversidade de corpora e métodos disponíveis, a classificação de emoções tende a
ser uma tarefa mais árdua. Nesse último caso, são até considerados satisfatórios métodos
com acurácias entre 60% e 70% [Einsenstein 2019]. E, quando se trata de textos em
português do Brasil, há o desafio de encontrar tanto um conjunto de dados com tamanho
representativo, que contemple a variabilidade do vocabulário desta língua e, ao mesmo
tempo, que tenha anotações sobre os tipos de emoções que se deseja considerar. A questão
em se trabalhar com a língua portuguesa brasileira, além de essencial para a EaD do
Brasil, é um fator influenciador do desempenho dos métodos de classificação. Conforme
Einsenstein (2019), para a língua inglesa, 4.000 tipos de palavras conseguem ser
representativos para 90% dos tokens de um dataset. Enquanto isso, para um corpus em
língua portuguesa (Mac-Morpho), são necessários mais que 10.000 tipos de palavras para
oferecer a mesma cobertura de 90%.
Diante de todas as questões anteriormente apresentadas, este trabalho deteve-se
especificamente em identificar melhorias ao processo de construção dos modelos, no pré-
processamento dos textos e a buscar o aprimoramento da acurácia de técnicas de detecção
de emoções em textos em português do Brasil, semelhantemente aos encontrados em
diálogos de EaD. Alguns experimentos foram realizados comparando os resultados entre
as seguintes técnicas de classificação: Regressão Logística, Naïve Bayes, SVM, NBSVM,
LSTM com Word Embeddings gerado a partir do corpus, LSTM com Word Embeddings
fornecido pelo Interinstitutional Center for Computational Linguistics (NILC), LSTM
Bidirecional e BERT.
Ao comparar alguns dos mais conhecidos algoritmos de aprendizado de máquina
quando aplicados ao problema de detecção ou classificação de emoções em textos, é
possível identificar quais técnicas se apresentam mais adequadas de acordo com
características particulares do problema, aspectos que interfiram no desempenho, com
menor ou maior esforço computacional e até mesmo na complexidade de construção e
adequação das implementações a um determinado conjunto de dados.
Por outro lado, numa perspectiva mais pragmática e utilitária, com o emprego de
algoritmos de aprendizado de máquina, torna-se viável a construção de soluções para
classificar automaticamente as emoções em textos decorrentes das interações de EaD,
sejam a partir de diálogos entre os participantes (alunos, professores e demais
colaboradores), respostas em questionários e até mesmo a partir de textos de e-mail e de
redes sociais. Com um modelo classificador de emoções, integrado aos processos de
avaliação do desempenho de plataformas de EaD, será possível correlacionar informações
objetivas (notas, faltas, atrasos) às informações subjetivas implicitamente ligadas às
emoções.
Além desta seção introdutória, que buscou delinear o problema a ser tratado e o
objetivo da pesquisa, o restante do trabalho está organizado da seguinte forma: a Seção 2
com o referencial teórico que auxiliará no entendimento de conceitos do processamento
de linguagem natural e das técnicas de aprendizado de máquina utilizadas. A Seção 3 com
os trabalhos relacionados. A Seção 4 com a delimitação e o processamento dos dados para
uso nos experimentos, além de como foram aplicadas as técnicas de classificação de
emoções. A Seção 5 com a apresentação e a análise dos resultados obtidos após a
aplicação das técnicas. E, por fim, a Seção 6 com as conclusões do trabalho.

2. Fundamentação Teórica
2.1. O papel das emoções na EaD
A Educação à Distância (EaD) evolui a cada dia propulsionada pelas necessidades
contemporâneas, pelas melhorias no seu acesso e pelo aperfeiçoamento das tecnologias
de informação e comunicação. Porém, parte desse aprimoramento da comunicação
precisa ainda se empenhar na diminuição da distância comunicacional criada pelas
plataformas de EaD. Conforme Moore e Kearsley (2007), tal distância pode ser
compreendida como "um hiato na comunicação, um espaço psicológico de compreensões
errôneas potenciais entre instrutores e alunos, que precisa ser suplantado por técnicas
especiais de ensino". A persistência desse hiato é o que tende a propiciar as experiências
eivadas de emoções negativas entre alunos. Tais situações podem contribuir para a evasão
de disciplinas e de cursos, de acordo com Moraes (2019).
Para minimizar o cenário anteriormente descrito, Moraes (2019) sugere o
emprego de interações e ferramentas para interação que intensifiquem o diálogo, com o
objetivo de incrementar o grau de motivação dos participantes, a autonomia e para
potencializar as emoções positivas na EaD.
Sendo assim, diante da relevância das emoções no processo de educação à
distância, convém compreender o que é uma emoção ou um sentimento e como podem
tais conceitos ser representados em um contexto computacional, a fim de propiciar a
elaboração de ferramentas automatizadas para a melhoria das experiências em EaD.

2.2. Emoções ou Sentimentos


Sentimentos e emoções são termos usados frequentemente como sinônimos. No entanto,
as emoções possuem determinadas características, compartilhadas entre diferentes
espécies de animais: são rápidas, espontâneas, de curta duração, ativadas por eventos
recentes ou mesmo cumulativamente e compostas por fisiologias variadas. Por outro lado,
sentimentos se expressam através de uma ou mais experiências afetivas de longa duração
[Moraes 2020]. O psicólogo Paul Ekman identificou inicialmente seis emoções
universais: alegria, medo, nojo, raiva, surpresa e tristeza [Ekman 1992]. O próprio
Ekman, além de outros pesquisadores como Robert Plutchik, Orthony, Clore e Collins
posteriormente expandiram essa lista [Acheampong 2020].
Há dois tipos de modelos de agrupamento das emoções: i) os modelos discretos,
onde as emoções são separadas em classes discretas e teoricamente independentes; e ii)
os modelos dimensionais em que as emoções não são consideradas independentes e suas
relações podem ser representadas num espaço dimensional.
Em termos práticos, como aplicações em PLN, os sentimentos são expressos
convencionalmente por polaridades, quase sempre positivas e negativas, algumas vezes,
neutras também. Quando possuem somente dois valores, os sentimentos são
representados como variáveis categóricas dicotômicas. Enquanto isso, as emoções são
retratadas por meio de variáveis categóricas nominais, com valores discretos a depender
das categorias de acordo com uma convenção adotada.

2.3. Léxicos
Recursos lexicais são fundamentais para o processamento computacional da língua. Isso
porque são recursos linguísticos organizados a partir do conteúdo semântico dos itens
lexicais (palavras), e não apenas uma ordenação alfabética. WordNet de Princeton é o
mais famoso deles. Desde cedo, com o auxílio deles, foi possível, por muitos trabalhos,
realizar tarefas de identificação e extração da informação contida em textos. Os léxicos
são componentes com informações semânticas e gramaticais sobre palavras ou outras
unidades léxicas. Diferentemente dos dicionários, conhecidos como livros impressos e
até eletrônicos, os léxicos podem fornecer tipos de informações usualmente não
encontradas nos primeiros. Uma das propostas usadas para a extração de sentimentos leva
em conta os léxicos, onde palavras ou expressões curtas estão associadas a rótulos ligados
a emoções ou sentimentos [Freitas 2013]. Nesses casos, é comum não haver uso de
mecanismo baseado em aprendizado de máquina [Eisenstein 2019].
Apesar de léxicos serem úteis, técnicas de classificação baseadas somente em
léxicos tendem a ser menos efetivos para textos curtos, principalmente quando apenas
usadas estruturas do tipo bag of words (BoW), que são coleções de pares com cada par
sendo uma palavra e um número que representa a frequência de uma palavra nos textos.
Para essas abordagens, é mais conveniente trabalhar com bag of bi-gramas (conjuntos de
pares de palavras adjacentes) [Eisenstein 2019]. Há bons exemplos de abordagens
estritamente baseadas em léxicos e com uso de n-gramas para a análise de sentimentos de
textos em português brasileiro como a proposta de Machado et al (2018), na qual ainda
faz uso de uma combinação de três léxicos: Opinion Lexicon, SentiLex e LIWC.

2.4. Corpora
Um corpus pode ser compreendido simplificadamente como um conjunto de materiais
linguísticos usados em análises. Por maior e mais completo que seja, representa uma parte
das possibilidades realizáveis da língua e do discurso [Ferreira et al 2019]. Os corpora
(plural de corpus) podem conter materiais de língua escrita (textos) ou oral (gravações de
falantes); podem ainda ser temáticos ou não, monolíngues ou não, anotados ou não. O
tema de um corpus pode abranger determinados gêneros literários, estilos, assuntos,
períodos históricos etc. As anotações são os rótulos que enriquecem um corpus. No caso
da construção de corpus sobre sentimentos ou emoções, tem-se um corpus temático.

Quadro 1 – Corpora em Português do Brasil

Descrição do Corpus Tema Anotações


1
Machado : obras completas de Machado de Assis. Textos Morfossintáticas
Literários
Mac-Morpho1: com um pouco mais de um milhão de palavras. Notícias Morfossintáticas
Floresta1: um conjunto com mais de 9.000 sentenças (mais de Notícias Morfossintáticas
200.000 palavras) inteiramente revisto por linguistas.
NILC2: contém 40 milhões de palavras. Textos em prosa. Corpus Diversos Morfossintáticas
mantido pelo projeto ReGra.
IMDB PT-BR3: corpus traduzido para o Português do Brasil. Avaliações Sentimento
Contém cerca de 49.000 avaliações de filmes. de filmes
Portuguese Tweets for Sentiment Analysis4: cerca de 800.000 Tweets Sentimento
postagens em português no Tweet.
Projeto Emoções.BR5: contém 1000 textos curtos com notícias. Esse Notícias Emoções
corpus exige solicitação prévia.
BlogSet-BR6: coleção de postagens de blogs da plataforma Blogspot, Diversos -
escritas por brasileiros. Há 3 arquivos para download. O maior
contém 7,4 milhões de postagens.

1
Disponível como pacote do NLTK
2
Disponível em http://nilc.icmc.usp.br/nilc/images/download/corpusNilc.zip
3
Disponível em https://www.kaggle.com/luisfredgs/imdb-ptbr
4
Disponível em https://www.kaggle.com/augustop/portuguese-tweets-for-sentiment-analysis
5
Disponível em https://www.ppgia.pucpr.br/~paraiso/mineracaodeemocoes/recursos.php
6
Disponível em https://www.inf.pucrs.br/linatural/wordpress/recursos-e-ferramentas/blogset-br
Atualmente, ainda que a quantidade de corpora formado por textos escritos em
língua inglesa seja consideravelmente superior aos disponíveis para a língua portuguesa
do Brasil, há diversas iniciativas e esforços na construção e manutenção de corpora em
português brasileiro. Alguns deles são apresentados no Quadro 1.
Mesmo que haja alguns corpora de grande volume para a língua portuguesa do
Brasil, é bastante escasso o número daqueles que particularmente fornecem anotações
sobre emoções, que também sejam considerados referências em estudos na área, que
disponham de tamanho suficiente, capazes de oferecer razoável cobertura de vocabulário
da língua e que, por fim, estejam publicamente disponíveis. Além disso, para o seu uso,
é importante considerar neles de onde parte a emoção associada e rotulada ao texto (do
autor, do leitor ou das personagens presentes no texto).
Diante dessas dificuldades em se encontrar um corpus em português do Brasil
com rótulos sobre emoções, é possível partir de um corpus em inglês, realizar a tradução
automática dos textos e, dessa forma, ter uma versão minimamente aceitável do mesmo
em português. Há ainda que se avaliar a qualidade de tais traduções, considerando-se a
sua temática. É esperado que textos mais curtos, menos literários e menos complexos
sejam mais simples de traduzir, principalmente por tradutores automáticos. Tais
tradutores costumam apresentar erros semânticos, com número de erros que aumentam à
medida em que se cresce a complexidade dos textos submetidos à tradução [Nowinska
2014]. Apesar disso, os tradutores mais modernos e atuais, implementados através de
redes neurais (e.g. tradutores do Facebook, Microsoft, Google), evoluíram bastante e têm
ganhado considerável confiabilidade. O uso deles se destaca, inclusive, por ser frequente
em processos de Data Augmentation (aumento e enriquecimento de um corpus através de
determinadas técnicas). Esses processos podem proporcionar maior variabilidade do
vocabulário de um corpus, por exemplo, com a tradução de seus textos para uma língua
intermediária e, depois, novamente traduzidos para a língua original (Back-Translation)
[Edunov et al 2018]. Assim os novos textos são acrescentados ao corpus original,
formando-se um corpus aumentado ou estendido.

2.5. Modelos de Representação Textual


Em diferentes tarefas envolvidas no Processamento de Linguagem Natural é necessário
converter os textos em representações apropriadas aos algoritmos computacionais.
Uma das formas de representação bem conhecida baseia-se em utilizar um modelo
de espaço vetorial. A ideia é que cada palavra do vocabulário dos textos represente uma
dimensão no espaço vetorial. Dessa forma, cada texto poderá ser representado por um
vetor composto por valores 0 ou 1 em cada uma de suas posições. As posições que
estiverem marcadas por 1 são aquelas correspondentes às palavras encontradas nesse
texto. As demais posições são marcadas por 0, indicando que as respectivas palavras do
vocabulário associadas àquelas posições não se encontram no texto. Essa estrutura é
comumente conhecida como Bag of Words (BoW) ou saco-de-palavras. No entanto, é
uma representação que não leva em consideração a posição das palavras. A posição
definida para cada palavra no vetor segue simplesmente a ordem de aparição das palavras
durante a criação do BoW.
Outra forma para a criação de vetores de palavras é baseada em uma medida
conhecida como TF-IDF. Nesse caso, duas outras medidas são combinadas para conferir
pesos às palavras de um vetor. A primeira medida é a frequência em que uma palavra
ocorre em todos os textos, conhecida como frequência do termo (TF). A outra medida
objetiva reduzir a relevância de um termo com base na frequência de ocorrência em todos
os textos. Ou seja, se a palavra é muito comum, ela não é tão especificamente importante
para um determinado texto. Essa segunda medida é conhecida como o inverso da
frequência do documento (IDF). Dessa forma, em vez de apenas armazenar 1 ou 0 em
posições do vetor que corresponde a cada texto, é possível armazenar um valor TF-IDF,
onde TFi representa a frequência de um termo i, n é o número de ocorrências de i em
todos os textos e N é o número de textos:

𝑛
𝑇𝐹𝐼𝐷𝐹𝑖 = 𝑇𝐹𝑖 × 𝑙𝑜𝑔
𝑁

Outra estrutura capaz de representar textos através de vetores é conhecida como


N-GRAM. Nesse caso, há a preocupação de armazenar sequências contíguas de termos.
1-GRAM ou unigrama é composto apenas por um termo. 2-GRAM e 3-GRAM são
conhecidos como bigrama e trigrama, respectivamente. A ideia é que vetores de N-
GRAMs sejam vetores de combinações possíveis de 1, 2, 3, N termos que aparecem
próximos. Por exemplo, o vetor de 2-GRAMs para a sentença “Quando meu filho nasceu”
é composto pelos seguintes elementos: “Quando meu”, “meu filho”, “filho nasceu”. Dessa forma,
em vez de analisar a ocorrência de palavras individuais, é possível verificar a ocorrência de cada
uma dessas combinações em todos os textos. Com 3-GRAMs, por exemplo, a repetição de
determinadas construções sintáticas compostas por sujeito + verbo + objeto tendem a ser mais
facilmente agrupadas em um conjunto de textos.
As formas de representação anteriores, apesar de úteis, possuem algumas
limitações. Uma delas é a respeito do tamanho das dimensões dos vetores que podem
tornar-se muito grandes em função de um vasto vocabulário e, quando usados em
algoritmos de aprendizado de máquina, podem degradar o desempenho. Outra limitação
é que, nos casos anteriores, são representações que descartam a ordem das palavras. E,
assim, de certa forma, perde-se grande parte da informação contextual e semântica
associada às palavras. Por conta dessas limitações, outras formas de representação foram
pensadas.
Word2Vec é um modelo que permite a representação vetorial através de
estruturas conhecidas como Word Embeddings, uma representação de palavras com base
nos contextos em que estão inseridas. Dessa forma, para palavras em contextos
semelhantes tendem a ser atribuídos significados próximos. Word2Vec é baseado em um
algoritmo de redes neurais capaz de capturar propriedades linguísticas indiretamente e
permite a criação de dois tipos de Word Embedings: Continuous Bag-of-Words (CBOW)
e Skip-Gram (SG). A dimensão do vetor resultante é estática e deve ser previamente
definida, com valores usuais como 50, 100, 300, 600, 1000 etc. O vetor CBOW é
apropriado para uso quando ao ser informado um contexto é capaz de identificar uma
palavra. Já o Skip-Gram, a partir de uma palavra, informa o contexto associado à mesma.
Há ainda outros modelos que consideram o contexto presente nos textos, como,
por exemplo, Global Vectors for Word Representation (Glove). No entanto, esse último
não foi aqui utilizado.
2.6. Aprendizado de Máquina
O aprendizado de máquina é uma das áreas em inteligência artificial que estuda a criação
de soluções computacionais voltadas à aquisição do conhecimento, reconhecimento de
padrões e apoio à tomada de decisão automatizada. As abordagens mais contemporâneas
ao processamento de linguagem natural, por exemplo, são baseadas fortemente em
aprendizado de máquina.
Um algoritmo de aprendizado de máquina é aquele que aprende a partir dos dados.
Nas palavras de Mitchell (1997), “Um programa de computador é dito capaz de aprender
a partir de uma experiência E, para algumas classes de tarefas T e com um tipo de medição
de desempenho P, se seu desempenho melhora em tarefas da classe T, quando mensurado
pelo tipo de medida P, com a experiência E”. No escopo deste trabalho, a classe de tarefas
a ser tratada é a classificação de dados, mais especificamente a classificação de textos de
acordo com a emoção expressa por seus autores.
Conforme a necessidade de supervisão e as características dos dados, as técnicas
de classificação podem ser agrupadas em: aprendizado supervisionado, aprendizado não
supervisionado e aprendizado por reforço. No aprendizado supervisionado, o algoritmo
tem à disposição uma amostra de dados com características (valores ou rótulos) a serem
aprendidos e uma função a ser calculada, durante o aprendizado. Essa função será capaz
de, a partir de um dado valor de entrada, obter um valor de saída. Ou seja, no caso da
classificação de emoções a partir de textos, essa função, ao receber um texto, o classificará
em um rótulo que represente um determinado tipo de emoção. No aprendizado não
supervisionado, normalmente não há dados rotulados a serem seguidos pelo algoritmo. A
ideia desse tipo de aprendizado é identificar um padrão. Ao final, se espera obter
agrupamentos dos dados da amostra baseado em determinados padrões encontrados pelo
algoritmo. E, por fim, no aprendizado por reforço não ocorre a experiência do
aprendizado sobre uma amostra com respostas fixas. Há, no entanto, um ambiente a ser
explorado e, em cada interação com esse ambiente, há uma retroalimentação (feedback)
que representará uma recompensa ou uma punição. O objetivo do aprendizado é
maximizar a recompensa futura.
No presente trabalho, foram empregadas técnicas de classificação baseadas em
algoritmos de aprendizado supervisionado, que, a partir de um corpus de referência, foram
capazes de detectar uma emoção associada a um texto. O aprendizado foi realizado com
a separação de parte dos dados como um subconjunto de dados para treinamento e outra
parte como subconjunto de dados de testes. Os algoritmos realizaram o aprendizado sobre
o subconjunto de treino e, assim, foram responsáveis pela criação de um modelo
classificador. Tal modelo foi avaliado sobre o subconjunto de teste, comparando-se
emoções preditas às emoções já rotuladas naquele subconjunto.
Diante da existência de vários algoritmos para a construção de classificadores, foi
conveniente realizar uma comparação entre alguns dos mais usados e apropriados ao
problema em questão. Dentre os algoritmos mais conhecidos e aplicáveis, foram
escolhidos os seguintes: i) Regressão Logística (RL), ii) Naïve Bayes (NB), iii) Support
Vector Machines (SVM), iv) Long Short-Term Memory Network (LSTM), v) SVM with
NB features (NBSVM) [Wang e Manning 2012] e vi) Bidirectional Encoder
Representations from Transformers (BERT) [Devlin et al 2018]. O algoritmo LSTM foi
avaliado sob três variações: LSTM com Word Embeddings criada a partir do próprio
corpus, LSTM com Word Embeddings fornecida pelo NILC7 e LSTM Bidirecional
(BLSTM). O algoritmo BERT utilizou o modelo BERTimbau8, um modelo de linguagem
pré-treinado para a língua portuguesa.
A regressão linear logística é uma técnica de modelagem estatística dos dados que
procura descrever, sob a forma de uma função linear, a relação entre variáveis
independentes e uma variável resposta dicotômica (ou binária). Assim, é possível estimar
a probabilidade de ocorrência de um evento. Apesar de ser originalmente usada quando
se deseja predizer valores para uma variável resposta binária, há a possibilidade em usá-
la quando a variável resposta for do tipo categórica e admita mais de dois valores
possíveis. Para isso, é usada uma generalização da RL, conhecida como Regressão
Logística Multinomial.
O teorema de Bayes permite o cálculo da probabilidade condicional. Na prática,
para esse cálculo pode ser necessário requisitar uma amostra muito grande e enorme
esforço computacional. Para simplificar o cálculo, pode-se admitir que as variáveis de
entrada sejam independentes entre si. Essa simplificação que permite deixar o cálculo
mais viável é considerada como ingênua (naive), sendo então esse novo cálculo chamado
de Naïve Bayes. Essa técnica estatística é uma das mais usadas como técnica de
classificação.
Uma máquina de vetores de suporte, em inglês support vector machine (SVM) é
composta por um conjunto de métodos de aprendizado que analisam os dados e
reconhecem padrões. É uma técnica comumente usada em problemas de classificação e
regressão. Na sua forma mais simples, o algoritmo busca identificar uma reta (ou
hiperplano, quando há mais dimensões) de separação entre duas classes distintas,
analisando dois pontos, um de cada grupo, sendo cada um desses pontos o mais próximo
da outra classe. Após encontrada a equação dessa reta, o algoritmo é capaz de classificar
um novo ponto a partir dessa função, posicionando-o em uma classe ou em outra. Quando
a variável resposta categórica admite n valores, sendo n maior que 2, a forma mais comum
é dividir o problema multiclasse em n classificações binárias. Essa divisão poder ser feita
seguindo-se uma estratégia one vs one (OvO) ou ou numa estratégia one vs rest (OvR).
Neste trabalho, foi adotado o classificador linear SVM (SVC) e a estratégia adotada foi a
OvR, que é o padrão para a classificação multiclasse desse classificador no pacote scikit-
learn.
Uma Rede Neural Recorrente (RNN) é uma rede especializada em trabalhar com
dados sequenciais. Consegue manter uma memória persistente das entradas na rede, que
acaba influenciando sua saída. No entanto, possuem dificuldade em conservar memórias
de longa duração. Para resolver esse problema foi desenvolvido um tipo específico de
RNN conhecida como Long Short-Term Memory (LSTM). Nessa última, as unidades de
soma na camada oculta de uma RNN foram substituídas por blocos de memória. Também
foram incluídos portais multiplicativos que possibilitam que células de memória LSTM
armazenem e acessem informações por longos períodos. Há ainda uma extensão das redes
LSTM, as LSTM Bidirecionais (BLSTM). Alguns defendem que elas costumam oferecer
melhor desempenho. Uma BLSTM, em vez de uma única sequência de dados, recebe

7
Disponível em http://nilc.icmc.usp.br/nilc/index.php/repositorio-de-word-embeddings-do-nilc
8
Disponível em https://github.com/neuralmind-ai/portuguese-bert
duas sequências como entradas, uma sequência na ordem original e outra na ordem
inversa. Essa característica pode permitir que contextos adicionais sejam aprendidos pela
rede.
O algoritmo Bidirectional Encoder Representations from Transformers (BERT),
baseado no uso de Transformers, é extremamente adequado ao processamento de
linguagem natural. Diferentemente das redes LSTM, não é influenciado pela alimentação
dos constituintes de uma sequência em determinada ordem, pois trabalha com sequências
inteiras. As relações contextuais entre os dados são aprendidas através de um mecanismo
conhecido como attention (atenção).

2.7. Métricas de Avaliação


Há algumas métricas de avaliação amplamente utilizadas para determinar o desempenho
de um classificador, a partir da análise dos resultados obtidos pós a execução de um
algoritmo de classificação. Algumas medidas podem ser calculadas a partir de uma matriz
de assertividade ou também chamada como matriz de confusão. Essa matriz é um quadro
que apresenta o número de previsões corretas e incorretas categorizadas por classe de
resposta. As linhas desse quadro indicam os resultados reais, enquanto as colunas
representam os resultados preditos pelo modelo. Os elementos que formam a diagonal
principal da matriz, onde a classe de resposta predita é igual à classe de resposta real,
indicam o número de classificações corretas. Os elementos situados do lado de fora dessa
diagonal representam as classificações incorretas. O Quadro 2 exemplifica uma matriz de
confusão para somente duas classes de resposta.

Quadro 2 – Matriz de Confusão com Duas Classes de Resposta

Classe Predita
Classe Real
Positivo Negativo
Positivo Verdadeiro Positivo (VP) Falso Negativo (FN)
Negativo Falso Positivo (FP) Verdadeiro Negativo (VN)

De acordo com o Quadro 2, os elementos da diagonal, as predições corretas,


compreendem Verdadeiro Positivo (VP) e Verdadeiro Negativo (VN). Um Verdadeiro
Positivo indica o número de amostras positivas corretamente classificadas, enquanto
Verdadeiro Negativo representa a quantidade de amostras corretamente classificadas
como negativo. Por outro lado, Falso Positivo (FP) são as amostras para a classe de outras
classes erroneamente classificadas como positivo e Falso Negativo (FN) são aquelas
incorretamente classificadas como negativas.
Com a matriz de assertividade, algumas medidas comumente usadas na avaliação
dos modelos de classificação podem ser calculadas: acurácia (accuracy), revocação
(recall), precisão (precision) e F1-score.
A acurácia indica a proporção de acertos (VP + VN) diante de todas as predições
possíveis:
𝑉𝑃+𝑉𝑁
𝐴𝑐𝑢𝑟á𝑐𝑖𝑎 = 𝑉𝑃+𝑉𝑁+𝐹𝑃+𝐹𝑁

A revocação ou sensibilidade informa a proporção em que uma das classes de


resposta real foi classificada corretamente:

𝑉𝑃 𝑉𝑁
𝑅𝑒𝑐𝑎𝑙𝑙 Positivo = 𝑅𝑒𝑐𝑎𝑙𝑙 Negativo =
𝑉𝑃+𝐹𝑁 𝑉𝑁+𝐹𝑃

A precisão indica qual a proporção de classificações preditas de uma classe de


resposta foi realmente correta:

𝑉𝑃 𝑉𝑁
𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 Positivo = 𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 Negativo =
𝑉𝑃+𝐹𝑃 𝑉𝑁+𝐹𝑁

A medida F1 score procura mostrar o balanço entre precisão e revocação, através


de uma média harmônica ponderada:

𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 ×𝑅𝑒𝑐𝑎𝑙𝑙
F1-Score = 2 × 𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜+𝑅𝑒𝑐𝑎𝑙𝑙

A partir do uso das métricas anteriormente citadas, é possível avaliar os resultados


obtidos com os modelos de classificadores e identificar aqueles com desempenhos
aceitáveis, considerando-se a tarefa de classificação de emoções sobre textos do
subconjunto de testes e a experiência adquirida com o aprendizado proporcionado pelo
subconjunto de treinamento.

3. Trabalhos Relacionados
Apesar de existirem alguns trabalhos para a construção de classificadores de emoções
sobre textos em português do Brasil, há ainda poucos corpora nesse idioma com anotações
sobre emoções e que estejam amplamente disponíveis para servirem como benchmark,
por exemplo. Corpora de referência são imprescindíveis para a construção de modelos a
partir das técnicas de aprendizagem supervisionada. Apesar disso, muitos trabalhos
oferecem alternativas diferentes para resolver o mesmo problema.
Diferentemente de aprendizado de máquina, há técnicas como em Martinazzo
(2010), que propôs uma abordagem baseada em léxico e com o uso de um método
estatístico conhecido como LSA (Latent Semantic Analysis), que serve para identificar as
relações entre as palavras de um texto. Essa técnica foi empregada em textos curtos de
notícias e foi alcançado um percentual de acerto de até 77% ao identificar emoções
(alegria, desgosto, medo, raiva, surpresa e tristeza).
Em Machado et al (2018), foram combinados três léxicos (Opinion Lexicon,
SentiLex e LIWC) para a construção de um novo léxico. No entanto, tal solução ofereceu
anotações apenas sobre polaridades e, apesar de alcançada uma acurácia de 78,09% para
a análise de sentimentos, são inadequadas para a detecção de emoções.
Em Santos et al (2014) foram comparados o uso da classificação a partir de léxico
(mais especificamente o léxico NRC [Mohammad e Turney 2013]) e a classificação
baseada no algoritmo de Naïve Bayes. O corpus desse experimento foi composto por
estrofes de letras de música, com parte dos textos em inglês e outra parte em português
brasileiro. Concluiu-se, por fim, que o aprendizado de máquina foi superior na
classificação de emoções.
Mais recentemente, em Kansaon et al (2019) foi descrita uma metodologia para a
detecção de emoções a partir de postagens no Twitter, em português brasileiro. Foram
avaliados os desempenhos dos algoritmos sobre outras postagens em inglês. Grande parte
desse trabalho envolveu a extração das postagens e a identificação de anotações a partir
de hashtags, emoji e emoticons e, assim, foi possível criar um corpus relevante para os
experimentos. Diferentemente da maioria das propostas, foram tratadas classes de
emoções e as relações entre emoções. A conclusão apontada foi que os algoritmos
baseados no modelo de Bayes (Naïve Bayes Multinomial Updateable, Naïve Bayes
Multinomial, Complement Naïve Bayes) apresentaram os melhores resultados dentre os
demais.
Quanto aos trabalhos relacionados somente sobre textos de língua inglesa, há uma
grande diversidade de soluções, mas foram investigados propositalmente trabalhos
ligados ao corpus ISEAR, adotado neste trabalho para a realização dos experimentos. Por
ora, convém ressaltar que a escolha do corpus foi motivada por ele possuir características
importantes, como seu balanceamento entre as classes de emoções, o formalismo no qual
foi construído e sua ampla utilização como referência em experimentos para a detecção
de emoções em textos. Há ainda diversas variáveis presentes no conjunto de dados que
especificam manifestações fisiológicas manifestadas pelos autores dos textos. Embora,
não tenham sido consideradas, podem ser importantes em outros trabalhos.
Em Kim et al (2010), foi avaliado um modelo dimensional baseado em
aprendizado não supervisionado e alcançada uma precisão de 52,80% na classificação de
emoções sobre ISEAR. Em um outro trabalho mais recente [Chaffar e Inkpen 2018], uma
implementação do algoritmo SVM obteve como melhor acurácia o valor de 62,40%. Uma
abordagem diferente foi proposta por Razek e Frasson (2017) para a construção de uma
árvore de significado dominante sobre 60% dos dados do corpus ISEAR. Foram obtidos
valores de F1-Score para cada tipo de emoção: alegria (0.58), culpa (0.50), desgosto
(0.47), medo (0.56), raiva (0.66), tristeza (0.67) e vergonha (0.55). Com esses resultados,
realizou a comparação com outros algoritmos baseados em SVM e em modelos de vetores
[Danisman e Alpkocak 2008], sendo que esse último alcançou uma acurácia de 67,40%.
Em Acheampong et al (2020) são referenciadas diversas propostas que fazem uso do
corpus ISEAR e, dentre essas, destaca-se a abordagem de Alotaibi (2019) que, com uma
técnica clássica de Regressão Logística alcançou a precisão de 86%, recall de 84% e F1-
Score de 85%, no entanto, essa abordagem considerou apenas 5 emoções dentre os 7 tipos
de emoções do corpus original, excluindo as observações anotadas com as emoções
desgosto e raiva. Destaca-se ainda mais a abordagem híbrida proposta por Poria et al
(2014) que utiliza técnicas Fuzzy de agrupamento baseadas em aprendizado não
supervisionado em combinação com a técnica de Support Vector Machines (SVM) para
classificação e atingiu 92,15% de acurácia sobre o corpus ISEAR.

4. Materiais e Métodos
4.1. Delineamento da Pesquisa
O presente trabalho pode ser caracterizado como uma pesquisa aplicada, com o objetivo
de gerar conhecimentos para a aplicação prática no contexto de detecção de emoções
contidas em diálogos de EaD, em língua portuguesa do Brasil. A pesquisa é de caráter
exploratório e experimental, isso porque são investigados e delimitados os processos que
possam influenciar positivamente na construção de modelos classificadores de emoções.

4.2. Seleção e Preparação do Corpus


A dificuldade inicial para o trabalho foi determinar um corpus com textos em português
do Brasil, com anotações sobre emoções e com tamanho suficiente a ser usado nos
experimentos. Como a intenção é que o classificador seja usado sobre textos de EaD, é
importante que esse corpus seja composto por textos de diálogos ou postagens, numa
linguagem menos literária e mais coloquial.
Outra questão relevante é que as emoções devem refletir o estado afetivo dos
autores dos textos, seus posicionamentos diante de eventos ou objetos alvos de suas
opiniões (avaliação de objetos e fatos, conceito conhecido como appraisal [Cosme
2014]). É através das funções cognitivas dos sujeitos (os alunos) que são construídas as
imagens subjetivas dos objetos junto às funções afetivas que, por sua vez, constroem a
imagem da relação desses sujeitos com aqueles objetos [Gomes 2014]. Ao pensar nos
sujeitos criadores dos textos em EaD, imagina-se que seguem o papel de estudantes, com
características específicas, formas de expressão e que compartilham alguma afetividade
associada a determinados objetos, diferentemente de um público genérico, inespecífico.
No presente trabalho, foram considerados os requisitos que se aproximassem ao
contexto dos diálogos de EaD e foram investigados corpora e léxico em português
brasileiro [Dosciatti et al 2013], [Martinazzo 2010] e em inglês [Acheampong et al 2020],
[Bostan et al 2018] que pudessem se aproximar desses requisitos. Por fim, decidiu-se pela
adoção do corpus ISEAR9 (The International Survey on Emotion Antecedents and
Reactions), construído pelo Swiss National Centre of Competence in Research.
O corpus ISEAR foi elaborado na década de 1990 por um grande grupo de
psicólogos originários de muitos países. Todo o trabalho foi dirigido por Klaus R. Scherer
e Harald Wallbott. Foram usados questionários para que estudantes descrevessem
situações em que experimentaram cada uma das sete emoções principais (alegria, medo,
raiva, tristeza, desgosto, vergonha e culpa). As respostas demonstravam a avaliação deles
para cada situação e como tinham reagido na época. O conjunto de dados final abrangeu
informações de, aproximadamente, 3000 respondentes de 37 países de todos os 5
continentes.

9
Disponível em https://www.unige.ch/cisa/research/materials-and-online-research/research-material
Um aspecto importante na escolha desse corpus é o fato de ser usado e
referenciado como benchmark por diversos trabalhos [Acheampong et al 2020], [Alotaibi
2019], [Asghar et al 2019], [Billal et al 2020], [Bostan et al 2020], [Chaffar et al 2018],
[Danisman et al 2008], [Kim et al 2010], [Poria et al 2014] e [Razek et al 2017]. Além
disso, o corpus apresenta-se relativamente balanceado, em número de linhas por classe
de emoção: alegria (1094), culpa (1093), desgosto (1096), medo (1095), raiva (1096),
tristeza (1096) e vergonha (1096). Essa característica tende a diminuir a possibilidade de
criação de um modelo enviesado, inclinado a uma determinada emoção.
As emoções do corpus ISEAR são originárias de seus autores, estudantes que
descrevem eventos que os afetaram. Semelhantemente, em diálogos de EaD, os autores
dos textos são estudantes e as emoções estão expressas em tais textos diante de situações
durante a educação à distância. Ainda que haja semelhanças, os objetos referenciados nos
textos de estudantes de EaD, provavelmente, tenderão a ser mais limitados aos assuntos
da própria EaD, dessa forma o vocabulário tenderá a ser ainda mais restrito.
Como o escopo deste trabalho é trabalhar com emoções detectadas em textos em
português do Brasil, realizou-se a tradução10 automática de todo o corpus para esse
idioma, com o uso de API de tradução do Google, através do pacote google-cloud-
translate11, sendo esse um resultado e uma contribuição importante deste trabalho.

4.3. Ambiente de Execução


Para a aplicação da análise exploratória, o pré-processamento e das técnicas, utilizou-se
o ambiente Jupiter Notebook, a linguagem de programação Python, as bibliotecas
Pandas, NLTK12, spaCy13, scikit-learn14, Keras15, ktrain16 e PyTorch17. Os códigos foram
executados parte em um computador com CPU Intel I7 2,80 GHz, 8 GB de RAM, com
aceleração GPU numa placa de vídeo NVIDIA GeForce GTX 1050Ti e outra parte no
ambiente Google Colaboratory18 (uma plataforma em nuvem, que também oferece o
Jupiter Notebook) também com uso de GPU.

4.4. Análise Exploratória e Preparação do Corpus


Após a tradução do corpus ISEAR, foi realizada a análise exploratória, através de
consultas com a biblioteca Pandas e com a criação de diagramas de nuvens de palavras,
diagramas de Pareto e diagramas de pizza. Tal análise foi conduzida recorrentemente, à
medida em que determinadas escolhas eram testadas para o pré-processamento dos textos.

10
Disponível em https://www.kaggle.com/antoniomenezes/isear-corpus-translated-to-portuguese-br
11
Disponível em https://pypi.org/project/google-cloud-translate
12
Disponível em https://www.nltk.org
13
Disponível em https://spacy.io
14
Disponível em https://scikit-learn.org
15
Disponível em https://keras.io
16
Disponível em https://github.com/amaiya/ktrain
17
Disponível em https://pytorch.org
18
Disponível em https://colab.research.google.com
Ao investigar se textos semelhantes poderiam ser classificados com diferentes
emoções, foi detectado que, em um número limitado de casos, um estudante classificou a
mesma descrição de uma situação em duas linhas do corpus, cada linha com uma emoção
diferente. Por exemplo, a mesma sentença “Amigos que torturam animais.” aparece duas
vezes, uma delas anotada como “raiva”, a outra como “desgosto”. Por outro lado, há
situações muito semelhantes, rotuladas com diferentes emoções, mas por pessoas
distintas. Tal subjetividade é inerente à anotação manual de emoções por classificadores
humanos.
Algumas palavras, ainda que aparentemente ligadas a uma emoção podem ser
significativas também para outras emoções. Uma delas é a palavra “amigo” (Figura 1).
Nesse exemplo, é particularmente normal quando um autor (código de identificação do
autor = 21013) expressou num texto que se sentiu triste pela morte de um amigo próximo
ou quando outro (código de identificação do autor = 821) sentiu medo ao estar num carro
dirigido pelo amigo bêbado. Ou seja, uma mesma palavra vincula-se a emoções em
diferentes contextos.

Figura 1 – Proporção de ocorrências da palavra amigo


associadas a diferentes emoções

Com a análise exploratória, também se detectou a necessidade de remover


algumas respostas dos estudantes que não se mostraram relevantes para a detecção de
emoções, tais como “Eu nunca senti essa emoção”, “Sem resposta”, “Sem descrição”,
“Não se aplica”, “Não sei” etc. O estado do corpus ajustado até esse ponto será aqui
delimitado como: fase de melhoria da qualidade. A partir desse momento, algumas outras
atividades foram realizadas, a fim de dar continuidade a análise exploratória e a preparar
os dados para as técnicas de classificação.
A atividade de pré-processamento de textos engloba a limpeza dos textos, com a
melhora da qualidade ao remover, por exemplo, caracteres indesejáveis ou até mesmo
erros de digitação. Envolve também a conversão de caracteres em minúsculas ou
maiúsculas, sem acentuação, a correção de codificação de caracteres, a remoção de
palavras pouco relevantes (conhecidas como stopwords), remoção de números, símbolos
e de caracteres de pontuação. Além disso, o pré-processamento permite ainda que
determinadas transformações sejam aplicadas, como por exemplo, a lematização (com
verbos transformados em seus infinitivos, substantivos e adjetivos convertidos em
masculino singular) ou a estemização (remoção de radicais, reduzindo as palavras em
seus troncos, suas formas raiz). Essas duas últimas formas de transformação possibilitam
convergir várias palavras em suas formas mais primárias.
O pré-processamento do corpus ISEAR englobou a remoção de palavras pouco
relevantes, a conversão em minúsculas, lematização e estemização. Após cada
experiência de pré-processamento, foram analisadas nuvens de palavras e diagramas de
pareto, relacionados a cada tipo de emoção. As Figuras 2 e 3 apresentam esses dois tipos
de diagramas, respectivamente, para a emoção medo. Para a geração da nuvem de
palavras, com o pacote wordcloud19, foi usado o parâmetro collocation a fim de exibir
juntas algumas sequências de palavras que existem juntas nos textos, em vez de as
apresentar separadamente no diagrama. Os demais diagramas podem ser encontrados no
Apêndice 1.

Figura 2 – Nuvem de palavras para a emoção medo

Figura 3 – Diagrama de Pareto para a emoção medo

19
Disponível em https://pypi.org/project/wordcloud
Entre lematização e estemização, preferiu-se adotar a primeira pois, durante a
aplicação inicial das técnicas de classificação, evidenciaram-se acurácias ligeiramente
inferiores quando no uso da estemização (RSLPStemmer), excetuando-se apenas no caso
da técnica de Naïve Bayes. Ainda assim, a lematização foi realizada somente sobre
adjetivos, advérbios, verbos e verbos auxiliares (aqueles que auxiliam na conjugação de
outros verbos). Cada uma dessas classes gramaticais das palavras foi identificada com o
uso da biblioteca spaCy, com suas funções de parser e identificação de partes do discurso
(PoS). Ademais, foram removidos dos textos os artigos, as conjunções, as preposições,
os pronomes, os numerais e os símbolos ($, %, §, ©, +, −, ×, ÷, = etc). Também foram
removidos os caracteres de pontuação e as stopwords, mais especificamente as indicadas
pela NLTK para o português. Antes, chegou-se a adotar a lista de stopwords da spaCy,
mas isso influenciou negativamente na acurácia, devido a remoção de muitas palavras
relevantes ao corpus. E, por fim, todas as palavras foram convertidas em minúsculas. Os
textos resultantes desse pré-processamento serão aqui denominados como PRE-1. O
código usado para se obter PRE-1 é apresentado na Figura 4.

def tratar_texto_pre1(
texto, stopwords, not_tokens_pos, com_acentos, lemmatizar,stemmizar):
texto_resultante = texto.lower()
doc = nlp(texto_resultante)
chosen_tokens = []
tokens = [token for token in doc if not token.text in stopwords]
for token in tokens:
if token.is_alpha and token.pos_ not in not_tokens_pos:
if token.pos_ in lemmatizar:
token_lemma = token.lemma_
if token_lemma not in stopwords:
if token.text in ['amigo','amigos','amiga','amigas']:
chosen_tokens.append('amigo')
elif token.text in ['casa']:
chosen_tokens.append(token.text)
elif token.text in ['morte']:
chosen_tokens.append('morrer')
else:
chosen_tokens.append(token_lemma)
elif token.pos_ in stemmizar:
token_stemm = stemmer.stem(token.text)
if token_stemm not in stopwords:
chosen_tokens.append(token_stemm)
else:
chosen_tokens.append(token.text)
texto_resultante = ' '.join(chosen_tokens).strip()
if not com_acentos:
texto_resultante = unidecode(texto_resultante)
return texto_resultante

Figura 4 - Código em Python para preparação de textos PRE-1

Convém ressaltar que, no algoritmo da Figura 4, os valores esperados para os


parâmetros “not_token_pos”, “lematizar” e “stemmizar” são listas de códigos de acordo
com os Universal POS tags. Mais especificamente, para se obter os textos no formato
PRE-1, o valor repassado para “not_token_pos” foi uma lista composta pelos códigos
NUM (numerais), PUNCT (pontuação), SYM (símbolos), ADP (preposições), CONJ
(conjunções), CCONJ (conjunção coordenada), DET (artigos determinados), PRON
(pronomes), SCONJ (conjunções subordinadas). Além disso, o valor atribuído ao
parâmetro “lematizar” foi uma lista composta por ADJ (adjetivos), ADV (advérbios),
AUX (verbos auxiliares) e VERB (demais verbos).
Mais adiante, no entanto, a partir da aplicação de técnicas baseadas em Redes
Neurais Recorrentes e Word Embeddings, foi necessário um pré-processamento mais
simplificado. Seria apenas preciso transformar os textos originais a partir da remoção de
palavras que fossem formadas por caracteres não alfabéticos ou aquelas formadas por
símbolos. Da mesma forma que para os textos PRE-1, as stopwords também foram
removidas. Esse segundo pré-processamento resultou em textos que serão denominados
aqui como PRE-2. O código empregado para a preparação desses textos encontra-se na
Figura 5.

def tratar_texto_pre2 (texto):


tokens_validos = []
doc = nlp(texto)
for token in doc:
e_valido = token.text.lower() not in all_stopwords and
token.is_alpha
if e_valido:
tokens_validos.append(token.text)
if len(tokens_validos) > 0:
return " ".join(tokens_validos)
else:
return ""

Figura 5 – Código em Python para preparação de textos PRE-2

Para uma última alternativa, como procedimento de controle, definiu-se ainda que
os textos poderiam ser utilizados pelas técnicas sem qualquer transformação, apenas com
a fase de melhoria da qualidade, comentada anteriormente. Muitos exemplos de
classificação com o algoritmo BERT sugerem o uso dos textos originais, sem pré-
processamento. Dessa forma, tais textos sem pré-processamento, apenas com a melhoria
da qualidade, serão aqui referenciados como PRE-0.
A título de ilustração, são apresentados no Quadro 3 alguns textos originais (PRE-
0) do corpus e suas contrapartidas (PRE-1 e PRE-2) resultantes após os pré-
processamentos. É conveniente destacar que a palavra “mentir” está presente em textos
associados a três diferentes emoções, sendo assim é possível inferir que, dependendo das
demais palavras em que “mentir” se encontra ligada, será possível estabelecer uma
relação com uma determinada emoção.
Quadro 3 – Exemplos de textos pré-processados

Emoção PRE-0 PRE-1 PRE-2


Alegria Quando meu filho nasceu. filho nascer filho nasceu
Culpa Quando menti para o professor mentir professor menti professor fisiologia
de fisiologia. fisiologia
Desgosto Um conferencista falou conferencista falar conferencista falou
detalhadamente sobre suas detalhadamente detalhadamente sobre
experiências sexuais. experiencias sexual experiências sexuais
Medo Quando quase colidi com outro quase colidir carro quase colidi outro carro
carro.
Raiva Quando alguém mente para mim. mentir alguém mente mim
Tristeza Depois de um exame no qual fui exame reprovar exame reprovado
reprovado.
Vergonha Alguém que me conhece muito conhecer bem Alguém conhece bem
bem descobriu que eu havia descobrir haver mentir descobriu havia mentido
mentido para ele.

4.5. Aplicação das Técnicas de Classificação sobre o Corpus Traduzido


Para a separação dos dados de treino e de teste a serem usados em cada técnica, adotou-
se a divisão dos dados em 80% (6039 linhas) para treino e os 20% (1510 linhas) restantes
para teste ou validação. Essa proporção foi a mesma usada sobre o corpus ISEAR em
Alotaibi (2019), Asghar et al (2019) e Bostan et al (2018). Há ainda casos em que se
admite até mesmo uma proporção de 90% para treino e 10% para teste, como referenciado
por Acheampong et al (2020). Essa separação dos dados foi realizada a partir da função
train_test_split do pacote scikit-learn. Na chamada dessa função, foi também repassado o
valor 42 como parâmetro random_state e usado o parâmetro stratify, para que fosse
mantida a proporção original entre as classes de emoções em ambos os conjuntos de treino
e teste.
Durante a criação dos classificadores baseados em técnicas clássicas, como
Regressão Logística, Naïve Bayes e SVM, foi possível incorporar vetores Bag of Words
e TF-IDF. Sendo assim, foram executados experimentos com essas duas representações
textuais. Enquanto isso, para os algoritmos LSTM e BLSTM foram usados Word
Embeddings treinados com o modelo Word2Vec sobre o próprio corpus ISEAR traduzido
para português brasileiro e, em outro experimento, Word Embeddings Skip-Gram com
300 dimensões, pré-treinados a partir do corpora STIL 2017, fornecidos pelo NILC. Há
ainda outro algoritmo usado nos experimentos. Ele (NBSVM) é semelhante ao SVM, mas
com características reusadas do Naïve Bayes e consegue ter bom desempenho tanto para
fragmentos de textos quanto para textos longos. Para o algoritmo BERT foi usado um
modelo pré-treinado chamado BERTimbau Base, específico para o português do Brasil.
Todas as técnicas de classificação foram aplicadas sobre os três tipos de textos
obtidos com o pré-processamento: PRE-0, PRE-1 e PRE-2. Sendo assim, os experimentos
serão referenciados por uma nomenclatura conforme o Quadro 4 e, neste, são
apresentadas apenas as descrições de experimentos conduzidos com textos PRE-1.
Quadro 4 – Experimentos (apenas sobre PRE-1)

Experimento Descrição
treinamento e teste do classificador regressão logística, utilizados os textos
RL (BoW) PRE-1
PRE-1 com a representação textual bag of words
treinamento e teste do classificador regressão logística, utilizados os textos
RL (TFIDF) PRE-1
PRE-1 com a representação textual TFIDF
treinamento e teste do classificador naïve bayes, utilizados os textos PRE-
NB (BoW) PRE-1
1 com a representação textual bag of words
treinamento e teste do classificador naïve bayes, utilizados os textos PRE-
NB (TFIDF) PRE-1
1 com a representação textual TFIDF
treinamento e teste do classificador SVM, utilizados os textos PRE-1 com
SVM (BoW) PRE-1
a representação textual bag of words
treinamento e teste do classificador SVM, utilizados os textos PRE-1 com
SVM (TFIDF) PRE-1
a representação textual TFIDF
treinamento e teste do classificador LSTM, utilizados os textos PRE-1 com
LSTM PRE-1
word embeddings do corpus ISEAR traduzido
treinamento e teste do classificador LSTM, utilizados os textos PRE-1 com
LSTM (NILC) PRE-1
word embeddings do NILC
treinamento e teste do classificador BLSTM, utilizados os textos PRE-1
BLSTM PRE-1
com word embeddings do corpus ISEAR traduzido
treinamento e teste do classificador NBSVM, utilizados os textos PRE-1
NBSVM PRE-1
com a representação textual bag of words
treinamento e teste do classificador BERT, utilizados os textos PRE-1 com
BERT PRE-1
o modelo BERTimbau Base

Antes de executar as técnicas RL, NB e SVM foram empregadas duas formas de


vetorização. Para a construção das BoW, foi empregado o CountVetorizer, especificando-
se para compor tokens formados por unigramas, bigramas e trigramas, além de ser
informada uma lista de stopwords, parâmetros min_df e max_df com 1 e 0,95,
respectivamente, e limitado o parâmetro max_features com o valor 10000. Outra forma
de vetorização foi usada para a construção do vetor com valores TFIDF. Nessa segunda,
empregou-se o TfidfVectorizer também para tratar unigramas, bigramas e trigramas, além
do parâmetro max_df com valor 0,95.
Para a Regressão Logística Multinomial foi usado o parâmetro multi_class como
"multinomial", solver como "sag", uma vez que é aplicável em problemas multi-classe.
O número de classes (7) foi informado no parâmetro C e o parâmetro n_jobs preenchido
com -1, para usar todos os processadores disponíveis. Para executar o algoritmo Naïve
Bayes foi adotado o MultinomialNB do scikit-learn e foram usados os parâmetros
padrões. E, com SVM, deu-se preferência ao classificador LinearSVC utilizando-se os
parâmetros multi_class com valor "ovr", class_weight com valor "balanced" e max_iter
com valor 1200. É bom ressaltar que também para todas essas técnicas foram executadas
com o parâmetro random_state com um mesmo valor, 42.
Para os algoritmos LSTM, foi necessário antes elaborar a representação Word
Embeddings a partir do modelo Word2Vec. Com o pacote gensim, foi decidido por treinar
um modelo Skip-Gram do Word2Vec, pois alguns artigos indicam um ligeiro melhor
desempenho do Skip-Gram comparado com Continuous Bag of Words. Em seguida, o
parâmetro window foi definido com o valor 5, ou seja, o aprendizado deve considerar
esse valor como o limite máximo de palavras em cada contexto. Outro parâmetro
fundamental é size, que indica o número de dimensões dos Word Embeddings e para esse
foi adotado o valor 100, pois o maior número de palavras em PRE-1 foi calculado como
77, referente ao subconjunto de treino. Também foi informado o valor 5 para o parâmetro
min_count, que representa o número mínimo de ocorrências de uma palavra a ser
considerada para o treinamento. Os últimos dois parâmetros informados foram alpha
(0,03) e min_alpha (0,007). Respectivamente, indicam a taxa de aprendizado inicial e o
mínimo valor que a taxa de aprendizado que irá decrescer. Para cada texto (PRE-0, PRE-
1 e PRE-2), ocorreu o treinamento durante 30 épocas para a obtenção de um modelo de
Skip-Gram, que foi reaproveitado somente durante o treinamento da primeira técnica
LSTM. LSTM NILC e BLSTM utilizaram o modelo do NILC. A Figura 6 ilustra apenas
100 palavras dos textos PRE-1 e suas disposições, de acordo com as proximidades
relacionadas a contextos.

Figura 6 – Dispersão de 100 Palavras no Word Embeddings do Word2Vec


Ao comparar o modelo de Word Embeddings calculado a partir do corpus ISEAR
traduzido e o modelo do NILC, através de uma função que calcula similaridade entre
palavras, para a palavra “amigo” é possível deduzir que o modelo do NILC aparenta ter
capturado relações entre os vocábulos mais generalizadas, provavelmente por ter sido
construído por uma maior diversidade de textos (Quadro 5).

Quadro 5 – Pontuações obtidas com word2vec.most_similar(“amigo”)

Word2Vec ISEAR (PRE-1) Word2Vec NILC


menti 0.5383671522140503 pai 0.6766036748886108
segredo 0.5085417032241821 irmão 0.659790575504303
primo 0.4719353914260864 tio 0.6574915051460266
prima 0.4606238305568695 primo 0.651092529296875
trocar 0.45372888445854187 companheiro 0.642970621585846
convite 0.4534268379211426 filho 0.6388689279556274
adoravel 0.4489673376083374 admirador 0.6334935426712036
proximo 0.44580569863319397 sobrinho 0.6262105703353882
decidi 0.4433644115924835 conterrâneo 0.6238834261894226
horario 0.4403648376464844 avô 0.6182491183280945

Após a representação vetorial dessas palavras, foram utilizadas algumas rotinas


para calcular a vetorização de cada texto fornecido por um aluno, e armazenado no
corpus. Essa última representação vetorial foi repassada para a LSTM através do
parâmetro weights. Utilizou-se o mesmo parâmetro para repassar a correspondente
representação baseada no Skip-Gram do NILC para os experimentos referentes a LSTM
(NILC) e BLSTM.
As camadas das técnicas com LSTM podem ser observadas na Figura 7, (a)
corresponde a técnica apenas sobre o Skip-Gram gerado sobre o corpus ISEAR traduzido,
(b) a técnica com LSTM e Skip-Gram do NILC e (c) que também fez uso desse último
modelo de Word Embedding, mas onde foi definida uma BLSTM. Para compilação de
todas essas técnicas baseadas em LSTM, foi usada a função de perda
“categorical_crossentropy” e o método Adam, que oferece bom desempenho e necessita
de pouca memória.
Para o treinamento do classificador NBSVM, também foram considerados
unigramas, bigramas e trigramas e utilizado o pacote ktrain, que oferece uma API
acessível para uso desse tipo de classificador, assim como também para o classificador
BERT. Porém, para o treinamento com o algoritmo BERT, foi usado o pacote PyTorch,
pois esse último tornou mais fácil configurar o uso de um outro modelo pré-treinado
diferente dos oferecidos pelo Google. Nesse caso, o modelo em questão escolhido foi o
BERTimbau Base, composto por 12 camadas e 110 milhões de parâmetros. Ele oferece
um desempenho superior em três tarefas típicas do processamento de linguagem natural:
reconhecimento de entidades nomeadas, similaridade textual de sentenças e
reconhecimento de vinculação textual.
Os resultados obtidos com todas as técnicas foram comparados com uso das
métricas apresentadas na seção 2.7: acurácia, precisão, revocação e F1-score.

(a) (b) (c)

Figura 7 – Camadas definidas com LSTM para o treinamento sobre PRE-1

Com a execução de 11 experimentos para cada um dos textos (PRE-0, PRE-1 e


PRE-2) do corpus ISEAR traduzido e, à medida em que os resultados eram coletados e
comparados, identificou-se resultados de medidas de desempenho pouco significativos
para a classificação das emoções, excetuando-se para o classificador BERT, que se
mostrou bastante superior.
Com a hipótese da influência do tamanho do corpus sobre os resultados pouco
relevantes da maioria dos classificadores, resolveu-se experimentar uma técnica simples
de Data Augmentation e permitir o enriquecimento e a ampliação do corpus, tornando-o,
assim, com maior vocabulário e mais relações entre as palavras.

4.6. Preparação e Aplicação das Técnicas sobre o Corpus Estendido


Para que o corpus ISEAR traduzido pudesse ser estendido, utilizou-se o dicionário de
sinônimos do LibreOffice (DicSin20), disponível publicamente e gratuitamente. Após a
extração dos dados em formato específico e sua conversão em um Pandas Dataframe,
obteve-se uma coleção de sinônimos. A partir daí, realizou-se a duplicação do corpus,
linha a linha, identificando verbos e adjetivos, e aleatoriamente escolhendo sinônimos
para os substituir. Após a transformação de cada texto, esse novo texto somente foi

20
Disponível em https://github.com/fititnt/DicSin-dicionario-sinonimos-portugues-brasileiro
acrescido ao corpus se ele fosse distinto de todos os textos presentes no conjunto de dados
até aquele momento.
Após o aumento do corpus, o número de linhas por classe de emoção foi
contabilizado com as seguintes quantidades: alegria (1935), culpa (1900), desgosto
(1824), medo (1923), raiva (1931), tristeza (1855) e vergonha (1870). Talvez, o ligeiro
desbalanceamento criado não tenha sido impactante o suficiente para enviesar os
classificadores. De qualquer forma, os equivalentes experimentos realizados sobre o
corpus traduzido foram conduzidos, por fim, sobre o corpus estendido.

5. Resultados
Depois da realização dos primeiros 33 experimentos para o conjunto de dados apenas
traduzido, a acurácia da maioria dos classificadores de emoções demonstrou-se baixa.
Percebeu-se também um empate estatístico desde as métricas obtidas com classificadores
clássicos quanto para aqueles que se baseiam em aprendizado profundo (LSTM e
BLSTM), com exceção do classificador BERT.
Para as técnicas clássicas mais conhecidas (RL, NB e SVM) a que melhor se
destacou foi a SVM com TFIDF para textos PRE-0, com uma acurácia de 59,27%. Por
outro lado, o classificador baseado em NBSVM conseguiu 59,60% sobre textos PRE-2.
Os classificadores LSTM também alcançaram resultados muito próximos entre si,
independentemente do tipo de pré-processamento usado sobre os textos em que foram
treinados. Como anteriormente comentado, o único classificador com uma acurácia de
destaque foi o BERT, que atingiu 87,42% sobre textos PRE-0. Todos esses resultados
aqui pontuados encontram-se em negrito na Tabela 1.
É conveniente ressaltar que o algoritmo SVM, aqui em destaque, é também uma
técnica relevante e presente em muitos trabalhos, particularmente em três abordagens
anteriormente comentadas [Chaffar e Inkpen 2018], [Razek e Frasson 2017] e [Poria et al
2014]. Outra consideração importante é quanto ao classificador NBSVM, que procura
usufruir tanto de características do SVM quanto do Naïve Bayes. Também foram
investigadas algumas abordagens que enfatizam o uso de Naïve Bayes. No entanto, para
ambas as técnicas avaliadas aqui isoladamente, o algoritmo SVM alcançou resultados
ligeiramente melhores durante os experimentos realizados.
Com a ampliação do corpus e a realização dos correspondentes 33 experimentos
sobre o corpus estendido, houve resultados melhores para muitas métricas. A grande
maioria das técnicas apresentou acurácia acima de 70% e algumas com acurácias
superiores a 80%. O algoritmo BERT também teve uma pequena melhora em todas as
suas métricas.
As melhores pontuações (resultados em todas as métricas), englobando os
experimentos sobre o corpus traduzido e sobre o corpus estendido, foram aquelas
encontradas com as técnicas SVM TFIDF e BERT sobre os textos PRE-0 do corpus
estendido. Elas obtiveram acurácias de 85,31% e 89,95%, respectivamente, além de F1-
scores considerados altos. De qualquer forma, em termos gerais, constata-se que houve
uma melhora da acurácia de diferentes técnicas ao usar o corpus ampliado. Ademais, o
enriquecimento do corpus tende a torná-lo mais flexível e menos enviesado.
(a) (b)
Figura 8 – Matrizes de Confusão para
BERT (a) e SVM (TFIDF) (b) para PRE-0 do corpus ampliado

Na Figura 8, com a apresentação das matrizes de confusão geradas para os


experimentos mais bem pontuados (BERT e SVM TFIDF) sobre os textos PRE-0 do
corpus estendido, pode-se perceber o ligeiro predomínio dos modelos ao predizerem raiva
em vez de desgosto e culpa em vez de vergonha. Tal situação já acontecia antes da
ampliação do corpus, conforme pode ser visto na Figura 9.

Figura 9 – Matriz de Confusão BERT para textos PRE-0


do corpus apenas traduzido
Ao comparar os resultados coletados neste trabalho com aqueles obtidos nos
trabalhos investigados, não há uma significativa melhoria das métricas quando se trabalha
apenas com o corpus traduzido, independentemente dos pré-processamentos realizados
sobre os textos. Excetuando-se os resultados alcançados pelo algoritmo BERT, os valores
de acurácias entre 54,04% e 59,60% não se sobressaem àqueles apurados nos outros
trabalhos (acurácias entre 62,40% e 92,15%) sobre o corpus em inglês. Cogita-se que
determinados fatores podem ter desfavorecido as técnicas empregadas sobre o corpus
traduzido: a definição muito ampla de stopwords, a ausência de outras possíveis
transformações dos textos para melhoria da qualidade e a forma em que a lematização foi
empregada. É conveniente ainda lembrar que a diferença entre os idiomas do corpus dos
trabalhos relacionados e o corpus deste trabalho interferem numa comparação
estritamente direta entre os resultados.
Por outro lado, ao enriquecer o corpus com mais textos, com a substituição de
determinadas classes gramaticais de palavras por seus sinônimos, possivelmente se
conseguiu uma melhor cobertura do vocabulário e uma provável redução de sobreajuste
(overfitting) dos modelos classificadores. Como se pode constatar na Tabela 2, a partir
das linhas marcadas em negrito, vários algoritmos conseguiram acurácias superiores a
80%, não somente o algoritmo BERT.
Os resultados de todos os experimentos sobre o corpus ISEAR traduzido podem
ser encontradas na Tabela 1. Os resultados encontrados sobre o corpus estendido são
apresentados na Tabela 2.
Tabela 1 – Resultados dos Experimentos sobre o Corpus Traduzido

Experimento Acurácia Precisão Recall F1-Score


RL (BoW) PRE-1 55,10% 54,72% 55,02% 54,68%
RL (BoW) PRE-2 56,42% 56,00% 56,33% 56,03%
RL (BoW) PRE-0 56,69% 56,36% 56,60% 56,43%
RL (TFIDF) PRE-1 57,02% 56,67% 56,93% 56,66%
RL (TFIDF) PRE-2 57,28% 57,14% 57,20% 57,09%
RL (TFIDF) PRE-0 58,15% 57,92% 58,06% 57,95%
NB (BoW) PRE-1 56,69% 56,52% 56,62% 56,44%
NB (BoW) PRE-2 56,89% 57,17% 56,81% 56,82%
NB (BoW) PRE-0 57,15% 57,42% 57,08% 57,03%
NB (TFIDF) PRE-1 56,82% 56,58% 56,74% 56,35%
NB (TFIDF) PRE-2 57,28% 57,14% 57,20% 57,09%
NB (TFIDF) PRE-0 55,50% 55,94% 55,41% 55,15%
SVM (BoW) PRE-1 54,04% 53,37% 53,95% 53,45%
SVM (BoW) PRE-2 55,96% 55,43% 55,87% 55,40%
SVM (BoW) PRE-0 55,56% 55,22% 55,49% 55,25%
SVM (TFIDF) PRE-1 58,15% 57,61% 58,06% 57,70%
SVM (TFIDF) PRE-2 58,28% 57,91% 58,18% 57,87%
SVM (TFIDF) PRE-0 59,27% 58,84% 59,18% 58,92%
LSTM PRE-1 55,30% 55,61% 55,23% 54,89%
LSTM PRE-2 55,83% 57,13% 55,77% 56,05%
LSTM PRE-0 55,70% 55,64% 55,61% 55,39%
LSTM (NILC) PRE-1 55,43% 55,80% 55,38% 55,43%
LSTM (NILC) PRE-2 56,82% 57,34% 56,79% 56,72%
LSTM (NILC) PRE-0 57,28% 57,83% 57,24% 57,12%
BLSTM PRE-1 55,56% 55,64% 55,47% 55,23%
BLSTM PRE-2 56,49% 58,27% 56,39% 56,29%
BLSTM PRE-0 56,42% 56,93% 56,36% 56,43%
NBSVM PRE-1 58,15% 59,00% 58,00% 58,00%
NBSVM PRE-2 59,60% 60,00% 59,00% 59,00%
NBSVM PRE-0 58,81% 60,00% 59,00% 59,00%
BERT PRE-1 79,47% 79,65% 79,42% 79,46%
BERT PRE-2 84,90% 84,91% 84,86% 84,85%
BERT PRE-0 87,42% 87,49% 87,42% 87,44%
Tabela 2 – Resultados dos Experimentos sobre o Corpus Traduzido e Estendido

Experimento Acurácia Precisão Recall F1-Score


RL (BoW) PRE-1 76,89% 76,92% 76,81% 76,77%
RL (BoW) PRE-2 81,53% 81,51% 81,47% 81,43%
RL (BoW) PRE-0 84,37% 84,30% 84,31% 84,27%
RL (TFIDF) PRE-1 78,13% 78,18% 78,05% 78,05%
RL (TFIDF) PRE-2 82,93% 82,97% 82,87% 82,87%
RL (TFIDF) PRE-0 83,87% 83,88% 83,80% 83,78%
NB (BoW) PRE-1 78,63% 78,84% 78,54% 78,56%
NB (BoW) PRE-2 81,57% 81,60% 81,49% 81,50%
NB (BoW) PRE-0 81,68% 81,87% 81,60% 81,62%
NB (TFDIF) PRE-1 77,53% 77,85% 77,40% 77,35%
NB (TFDIF) PRE-2 79,83% 80,01% 79,71% 79,67%
NB (TFDIF) PRE-0 79,27% 79,62% 79,13% 79,04%
SVM (BoW) PRE-1 79,38% 79,41% 79,30% 79,24%
SVM (BoW) PRE-2 83,65% 83,63% 83,58% 83,53%
SVM (BoW) PRE-0 85,05% 85,03% 84,99% 84,96%
SVM (TFIDF) PRE-1 81,91% 81,93% 81,85% 81,84%
SVM (TFIDF) PRE-2 84,82% 84,79% 84,76% 84,74%
SVM (TFIDF) PRE-0 85,31% 85,31% 85,26% 85,24%
LSTM PRE-1 68,92% 69,98% 68,80% 69,03%
LSTM PRE-2 74,09% 74,15% 74,06% 74,02%
LSTM PRE-0 71,71% 72,16% 71,64% 71,58%
LSTM (NILC) PRE-1 70,62% 70,91% 70,58% 70,67%
LSTM (NILC) PRE-2 75,19% 75,50% 75,11% 75,22%
LSTM (NILC) PRE-0 75,79% 75,88% 75,76% 75,76%
BLSTM PRE-1 70,73% 71,17% 70,66% 70,76%
BLSTM PRE-2 74,85% 75,17% 74,79% 74,80%
BLSTM PRE-0 75,53% 75,80% 75,52% 75,49%
NBSVM PRE-1 72,81% 73,00% 73,00% 73,00%
NBSVM PRE-2 74,51% 75,00% 75,00% 75,00%
NBSVM PRE-0 78,93% 79,00% 79,00% 79,00%
BERT PRE-1 81,06% 80,92% 80,97% 80,83%
BERT PRE-2 86,67% 86,83% 86,60% 86,64%
BERT PRE-0 89,95% 90,04% 89,95% 89,95%
6. Conclusões
O objetivo primário foi alcançado ao propor a investigação de métodos que tornassem
possível a criação de modelos para a detecção de emoções expressas em textos. A
aplicabilidade das técnicas sobre textos oriundos dos diálogos e interações em EaD é
viável. No entanto, não foi aqui verificado o impacto da variabilidade do vocabulário e o
uso extremo de gírias, coloquialismos, metáforas e outras figuras de linguagem, por
exemplo. Observou-se também que o primeiro pré-processamento não propiciou
melhores pontuações para os classificadores.
A técnica de Data Augmentation foi bastante proveitosa, contribuindo para uma
melhoria geral das técnicas de classificação. E, a partir dessa ampliação do corpus, o
desempenho de alguns algoritmos clássicos pode se aproximar dos valores apurados para
o BERT. Isso é importante, pois o treinamento com o BERT é mais complexo e requisita
maior esforço computacional. Pequenos descuidos quanto a configuração de seus
hiperparâmetros podem resultar em esgotamento de memória. Além disso, é bastante
influenciado pela escolha de um modelo pré-treinado adequado. As técnicas clássicas
podem ser mais realizáveis, considerando-se custos e benefícios. Dentre os experimentos
realizados, as técnicas de Regressão Logística Multinomial e SVM foram aquelas que
mais se aproximaram do patamar de desempenho do algoritmo BERT.
Outra contribuição relevante deste trabalho está relacionada ao emprego das
técnicas em textos em português do Brasil, acompanhada da divulgação pública do corpus
ISEAR traduzido para essa linguagem, através da plataforma Kaggle21, uma comunidade
on-line de cientistas de dados e profissionais de aprendizado de máquina. É esperado que
também seja útil para outras pesquisas o compartilhamento dos aspectos técnicos aqui
tratados na preparação dos textos, na escolha dos modelos pré-treinados e nas
configurações necessárias e particulares para o uso destes modelos por algoritmos
baseados em redes neurais e em transformers. Ademais, diversos conceitos em torno do
processamento de linguagem natural foram aqui resumidos, não esgotados, mas que
poderão fornecer uma compreensão introdutória àqueles que desejarem investir em
pesquisas e em trabalhos aplicados na área.
Em termos de pré-processamento dos textos, há ainda bastante espaço para
investigar novas propostas de transformação desses textos e associá-las às abordagens
que procuram capturar os contextos em que se inserem as palavras e as construções que
expressam emoções. Observou-se que o modelo Skip-Gram criado a partir apenas do
corpus ISEAR traduzido não se apresentou tão genérico quanto o modelo do NILC. Isso
é um indicativo que os modelos aqui obtidos não sejam soluções ainda escaláveis para
outros corpora no contexto da EaD. Há ainda que se pensar em melhorias na construção
desses modelos. Em trabalhos futuros, seria interessante avaliar o uso de algoritmos de
aprendizado não supervisionado ou mesmo aprendizado por reforço a fim de
complementar ou validar a tarefa de rotulação de novos textos e, além disso, compará-los
às técnicas aqui exemplificadas.

21
Disponível em https://www.kaggle.com
7. Referências Bibliográficas
Acheampong, F. A., Wenyu, C., Nunoo-Mensah, H. 2020. Text-based emotion detection:
Advances, challenges, and opportunities. Engineering Reports. 2020;2:e12189.
Alotaibi, F. 2019. Classifying Text-Based Emotions Using Logistic Regression.
VAWKUM Transactions on Computer Sciences. 31-37. 10.21015/vtcs.v16i2.551.
Asghar, M. Z., Subhan, F., Imran, M., Kundi, F. M., Khan, A., Shamshirband, S., Mosavi,
A., Csiba, P., Koczy, A. R. V. 2019. Performance Evaluation Of Supervised Machine
Learning Techniques For Efficient Detection Of Emotions From Online Content.
Billal, B., Fatiha, S., Mounir, B., Hakim, L. 2020. Towards a Multi-Dataset for Complex
Emotions Learning based on Deep Neural Networks. Workshop on Linguistic and
Neurocognitive Resources (LiNCr2020), pp. 50-58.
Bird, S., Klein, E., Loper, E. 2009. Natural Language Processing with Python. 1st. ed.
O’Reilly Media, Inc.
Bostan, L.; Klinger, R. 2018. An Analysis of Annotated Corpora for Emotion
Classification in Text. Proceedings of the 27th International Conference on
Computational Linguistics, pp 2104 - 2119. Santa Fe, New Mexico, USA, August 20-26,
2018.
Chaffar, S. e Inkpen, D. 2018. Using a Generic Text-based Approach for Emotion
Prediction. International Journal of Computing & Information Sciences. Vol. 14, No. 3.
pp. 7 – 13. December, 2018.
Cosme, C. A. 2014. A emoção de satisfação de alunos de cursos de EaD: perspectivas de
investigação e de análise utilizando a Appraisal Theory. Dissertação (Mestrado).
Universidade Vale do Rio dos Sinos, Programa de Pós-Graduação em Linguística
Aplicada. São Leopoldo. 2014.
Damásio, A. R. 2012. O Erro de Descartes. Companhia das Letras.
Danisman, T. e Alpkocak, A. 2008. Feeler: Emotion Classification of Text Using Vector
Space Model.
Devlin, J., Chang, M. W., Lee, K., Toutanova, K. 2018. BERT: Pre-training of Deep
Bidirectional Transformers for Language Understanding. 2018.
Dias, E. R. B., Matos, H. C. O., Melo, F. R. 2015. Estudo Comparativo da Precisão dos
Tradutores Bing e Google Tradutor por meio de Avaliação Automática em um Corpus
Linguístico inglês-português.
Dosciatti, M. M., Ferreira, L. P. C., Paraiso, E. C. 2013. Identificando Emoções em Textos
em Português do Brasil usando Máquina de Vetores de Suporte em Solução Multiclasse.
X ENIAC - 2013. Fortaleza, Ceará, 19 a 24 de outubro de 2013.
Edunov, S., Ott, M., Auli, M., Grangier, D. 2018. Understanding Back-Translation at
Scale.
Eisenstein, J. 2019. Introduction to Natural Language Processing. The MIT Press.
Ekman, P. 1992. Facial Expressions of Emotion: an Old Controversy and New Findings.
Philosophical Transactions of the Royal Society. London, B335:63-69.
Ferreira, M., Lopes, M. 2019. Linguística Computacional. Editora Contexto.
Freitas, C. 2013. Sobre a construção de um léxico da afetividade para o processamento
computacional do português. RBLA, Belo Horizonte, v. 13, n. 4, p. 1031-1059, 2013.
Gomes, C. A. V. 2014. A relação sujeito-objeto e a unidade afetivo-cognitiva:
contribuições para a Psicologia e para a Educação. Revista Quadrimestral da Associação
Brasileira de Psicologia Escolar e Educacional, SP. Volume 18, Número 1, Janeiro a Abril
de 2014: 161-168.
Kansaon, D., Brandão, M. A., Pinto, S. A. P. 2019. Analysis of Classification Algorithms
for Emotion Detection in Brazilian Portuguese Tweets (Análise de Algoritmos de
Classificação para Detecção de Emoções em Tweets em Português Brasileiro). iSys:
Revista Brasileira de Sistemas de Informação (Brazilian Journal of Information Systems),
12(3), 116-138.
Kim, S. M., Valitutti, A., Calvo, R. A. 2010. Evaluation of Unsupervised Emotion Models
to Textual Affect Recognition. Proceedings of the NAACL HLT 2010 Workshop on
Computational Approaches to Analysis and Generation of Emotion in Text. pp. 62–70.
Los Angeles, California, June 2010.
Machado, M. T., Pardo, T. A. S., Ruiz, E. E. S. 2018. Creating a Portuguese context
sensitive lexicon for sentiment analysis. PROPOR 2018. 13th International Conference
on the Computational Processing of Portuguese. Canela, September 24 to 26, 2018.
Martinazzo, B. 2010. Um Método de Identificação de Emoções em Textos Curtos para o
Português do Brasil. Dissertação de Mestrado apresentada ao Programa de Pós-
Graduação em Informática da Pontifícia Universidade Católica do Paraná. Curitiba. 2010.
Martins, V., Baptista, A. A Afetividade na Educação Online: Percursos e Possibilidades.
EaD em Foco, v. 8, n. 1, 27 abr. 2018.
Mitchell, T. M. 1997. Machine Learning. McGraw-Hill, New York.
Mohammad, S. M. e Turney, P. D. 2013. NRC Emotion Lexicon. NRC Technical Report,
2013, December.
Mohammad, S. M. 2017. Challenges in Sentiment Analysis. In: Cambria E., Das D.,
Bandyopadhyay S., Feraco A. (eds) A Practical Guide to Sentiment Analysis. Socio-
Affective Computing, vol 5. Springer, Cham.
Moore, M. G.; Kearsley, G. 2007. Educação a distância: uma visão integrada. Tradução
de Roberto Galman. São Paulo: Thomson Learning, 2007.
Moraes, J. B., Alves, I. M. R.; Rigo, S. J. 2020. Metáforas da Emoção no Contexto EaD:
Descrevendo padrões de figuras de linguagem com vistas ao desenvolvimento de um
software de detecção automática de sentimentos. Dissertação de Mestrado. Pós-
Graduação em Linguística Aplicada da Universidade do Vale do Rio dos Sinos –
UNISINOS.
Morais, F., Jaques, P. 2019. Detecção e predição de estados afetivos baseadas em
mineração de dados educacionais: considerando a personalidade do aluno para aumentar
a precisão da detecção. Anais dos Workshops do Congresso Brasileiro de Informática na
Educação, [S.l.], p. 1052, nov. 2019. ISSN 2316-8889.
Nowinska, M. 2014. Textos Sensíveis na Tradução Literária: Um Estudo de Caso. Paco
Editorial. p. 67. 2014.
Poria, S., Gelbukh, A., Cambria, E., Hussain, A., Huang, G. 2014. EmoSenticSpace: A
novel framework for affective common-sense reasoning.
Razek, M. A., Frasson, C. 2017. Text-Based Intelligent Learning Emotion System.
Journal of Intelligent Learning Systems and Applications. January 2017.
Santos, A. G. L.; Becker, K., Moreira, V. 2014. Mineração de emoções em textos
multilíngues usando um corpus paralelo. 29o SBBD. SBBD Proceedings. 6 – 9 out. 2014.
Curitiba, PR. ISSN 2316-5170.
Silva, A., Rigo, S., Alves, I., Barbosa, J. 2017. Avaliando a similaridade semântica entre
frases curtas através de uma abordagem híbrida. Proceedings of Symposium in
Information and Human Language Technology. Uberlândia, MG, Brazil, 2 – 5 out. 2017.
Souza, F., Nogueira, R., Lotufo, R. 2020. BERTimbau: pretrained BERT models for
Brazilian Portuguese. Intelligent Systems: 9th Brazilian Conference, BRACIS 2020.
Proceedings. Rio Grande do Sul, Brazil. October 2020.
Wang, S., Manning, C. 2012. Baselines and Bigrams: Simple, Good Sentiment and Topic
Classification. Proceedings of the 50th Annual Meeting of the Association for
Computational Linguistics (Volume 2: Short Papers). pp. 90–94. Jeju Island, Korea. July
2012.
APÊNDICE 1 – Nuvens de Palavras e Diagramas de Pareto

Figura 10 – Nuvem de palavras para a emoção alegria

Figura 11 – Diagrama de Pareto para a emoção alegria


Figura 12 – Nuvem de palavras para a emoção culpa

Figura 13 – Diagrama de Pareto para a emoção culpa


Figura 14 – Nuvem de palavras para a emoção desgosto

Figura 15 – Diagrama de Pareto para a emoção desgosto


Figura 16 – Nuvem de palavras para a emoção raiva

Figura 17 – Diagrama de Pareto para a emoção raiva


Figura 18 – Nuvem de palavras para a emoção tristeza

Figura 19 – Diagrama de Pareto para a emoção tristeza


Figura 20 – Nuvem de palavras para a emoção vergonha

Figura 21 – Diagrama de Pareto para a emoção vergonha

Você também pode gostar