Você está na página 1de 25

Universidade Federal de Pernambuco

Centro de Informática
Curso de Sistemas de Informação

RecrutAi GloVe NLP Task Force: a One-Liner Text Normalize()

Trabalho de Conclusão de Curso de Graduação


por

Lucas Glasner Regis


Orientador: Prof. Vinicius Cardoso Garcia

Recife, Dezembro / 2021


Lucas Glasner Regis

RecrutAi GloVe NLP Task Force: a One-Liner Text Normalize()

Monografia apresentada ao Curso de


Sistemas de Informação, como requisito
parcial para a obtenção do Tı́tulo de
Bacharel em Sistemas de Informação,
Centro de Informática da Universidade
Federal de Pernambuco.

Orientador: Prof. Vinicius Cardoso Garcia

Recife
2021
Agradecimentos

Agradeço primordialmente ao equilı́brio Uno que é Deus


(o Dao), a meus pais Oswaldo Régis e Márcia Glasner e
a todos os seres que de forma direta ou indireta
iluminaram minha Consciência em meus caminhos.

Aos professores Vinicius Garcia, José Carlos Cavalcante


e Renato Vimieiro por serem verdadeiros guias.

A Patrick Gouy e RECRUT.AI, Renan Hannouche,


Lucas Dantas, Raphael Alencar, Túlio Hoffimann, Lucas
Santos, Jorge Lobo e todos com quem já empreendi.

A meu grande amigo Mateus Ponciano (Matt) por ser o


único a ter certeza. Por acreditar na Orientação a
Solução, no Backcasting e na visão futurista Avant-garde
que tornou-se a Solution-Firstº. A cada dia que passa,
nossas previsões para 2025 e 2030 tornam-se realidade
ainda mais com a aceleração trazida pela pandemia.

Finalmente, gostaria de agradecer a Martin Boroson por


sua simplicidade em ensinar meditação. Seu livro
One-Moment Meditation é puro ouro.
Todos os modelos são incorretos,
mas alguns são úteis.

George Box
RESUMO

A Normalização de Texto é uma etapa importante no processamento de linguagem natu-


ral (NLP). É a etapa de pré-processamento de strings/texto usada em Machine Learning
e Data Mining para tornar os dados de entrada mais fáceis de trabalhar e aprimorar o
desempenho e precisão. Como o estado da arte, Transformers e GloVe Word Embed-
dings alcançaram avanços significativos em várias tarefas de NLP e, como tal, têm suas
próprias necessidades especı́ficas de limpeza, pré-processamento e normalização de dados.
Neste trabalho, eu explico e publico uma biblioteca Python de código aberto que é um
text normalize() de uma só linha, para uso com GloVe Word Embeddings desenvolvido
na startup RecrutAi em 2021.

Palavras-chave: Processamento de linguagem natural, Mineração de texto, Normalização


de texto, Aprendizagem de máquina, Word embeddings
ABSTRACT

Text Normalization is an important step in Natural Language Processing (NLP).


It’s the string/text pre-processing step used in Machine Learning and Data Mining to
make input data easier to work with and enhance performance and accuracy. As the
state-of-the-art, Transformers and GloVe Word Embeddings had achieved significant ad-
vancements in various NLP tasks and, as such, has its own specific needs for data clean-
sing, pre-processing and normalization. In this work I explain and publish an opensource
Python library that’s a One-Liner text normalize() for using GloVe Word Embeddings
developed at the RecrutAi startup in 2021.

Keywords: Natural language processing, Text mining, Text normalization, Machine lear-
ning, Word embeddings
LISTA DE FIGURAS

Figura 1 NLP dentro do contexto de AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


Figura 2 Exemplo de soma vetorial com GloVe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figura 3 Definição da função text normalize() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figura 4 Repositório GitHub do NLP-TF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 5 Resultado completo textual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Figura 6 Resultados do Experimento (UTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 7 Resultados do Experimento (MAE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
LISTA DE SIGLAS

UFPE Universidade Federal de Pernambuco


NLP Processamento de linguagem natural
TN Normalização textual
ML Aprendizagem de máquina
DL Aprendizagem profunda
AI Inteligência artifical
GloVe Global Vectors for Word Representation
NLP-TF RecrutAi GloVe NLP Task Force
JuPy Jupyter Notebook
SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Conceitos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 NLP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 GloVe e Word Embeddings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Etapas Comuns de Pré-Processamento de NLP . . . . . . . . . . . . . . . . . . . . . . . 12

2 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1 Soluções no Mercado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Desenvolvimento e Publicação da NLP-TF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Experimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Resultados do experimento (UTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Resultados do Experimento (MAE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 CONCLUSÃO E TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 22


4.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9

1 INTRODUÇÃO

Na era da inteligência artificial, geração de valor a partir de dados textuais es-


critos por humanos está cada vez mais em voga. Como sub-área de AI, NLP tem suas
próprias demandas de tratamento e uso de dados. Dentre estas, TN que é a etapa de
pré-processamento de sistemas de NLP (Rahate and Chandak, 2019) tem um impacto
significativo na qualidade geral destes modelos e sistemas (Li et al., 2018).
A etapa de pré-processamento e normalização de dados textuais é a fase onde,
após a coleta de dados, se normaliza e padroniza as cadeias de caracteres com o intuito de
facilitar análises descritivas e melhorar a acurácia de modelos preditivos. As formas mais
comuns de TN envolvem remoção e substituição simples de caracteres, técnicas de recorte
do radical de palavras e métodos avançados de substituição usando Deep Learning.
Dentre as várias ferramentas e técnicas utilizadas no mercado, pouco se fala sobre
TN especı́fica para um contexto ou abordagem de Word Embedding, que é uma técnica
de vetorização matricial de palavras que vem ganhando espaço por atingir resultados
estado-da-arte em tarefas de NLP.
Neste trabalho, analiso, explico e publico uma biblioteca Python de código aberto
que normaliza, com uma só linha, dados textuais para uso com GloVe Word Embeddings
desenvolvido na startup RecrutAi em 2021.
Os resultados conduzem a um sólido padrão para normalização de dados textuais
em arquiteturas de Word Embeddings, em especial, GloVe (Pennington et al., 2014).

1.1 Objetivo

Este trabalho tem como objetivo analisar, desenvolver e publicar uma biblioteca
Python de código aberto para o pré-processamento e TN especı́fico de dados textuais no
contexto de arquiteturas de Word Embeddings, em especial, GloVe. Dentro do trabalho
executado serão procuradas respostas para as seguintes questões:

• Q1: Quais as diferenças entre GloVe Word Embeddings e outras abordagens ?

• Q2: O que pode ser feito na etapa de TN para otimizar os modelos de NLP?

• Q3: O que não deve ser feito em TN no contexto de Word Embeddings?


10

• Q4: O desenvolvimento de uma lib especı́fica para GloVe trás bons resultados?

• Q5: Que melhoramentos se vislumbra para uma futura versão 2.0?

Ao responder essas perguntas, este estudo servirá de apoio a quem se interessar em


entender e desenvolver soluções de pré-processamento e TN especı́ficas para arquiteturas
de Word Embeddings. A subseção a seguir faz um pequeno preâmbulo sobre NLP e Word
Embeddings.

1.2 Conceitos Básicos

1.2.1 NLP

A área de NLP, processamento de linguagem natural, é um sub-grupo da área


de AI com enfoque em lidar com cadeias de caracteres geradas por humanos (linguagem
natural). Como pode-se ver na imagem abaixo, NLP tem suas próprias atividades e
competências mas também sobrepõe-se tarefas de ML e DL.

Figura 1: NLP dentro do contexto de AI

No contexto de Analytics e Ciência dos dados, podemos descrever os dados textuais,


fazer predições (com modelos de ML) e até mesmo prescrições de como o usuário deve
agir, demonstrando um grande potencial de geração de valor na área.
Há vários elementos que justificam a existência da sub-área dentre eles a dificuldade
de máquinas e computadores lidarem com os elementos textuais da linguagem natural que
11

muitas vezes são ambı́guos, paradoxais e com base de caso-a-caso. Sua existência remonta
a década de 50 com pesquisas realizadas por linguistas que ajudaram bastante a criação
dos elementos sintáticos na teoria de implementação de linguagens computacionais.
Como já explanado, TN é a etapa de pré-processamento em sistemas de NLP e
suas sub-etapas dependem da arquitetura de NLP usada e especificidades do contexto
abordado.

1.2.2 GloVe e Word Embeddings

Em meados de 2010 inicia-se de forma descentralizada o uso de técnicas de re-


presentação vetorial de palavras com o intuito de melhorar a performance e acurácia de
modelos de NLP com uso de grandes datasets de dados textuais.
Em 2013 surge o ápice do uso de tal conceito quando o Word2vec foi criado, patente-
ado e publicado por uma equipe de pesquisadores liderada por Tomas Mikolov no Google.
Dois artigos, “Efficient Estimation of Word Representations in Vector Space.”(Mikolov
et al., 2013a) e “Distributed Representations of Words and Phrases and Their Com-
positionality.” (Mikolov et al., 2013b) lideraram a revolução e a área de NLP cresceu
significativamente graças aos resultados alcançados pela técnica.
Em essência o algoritmo Word2vec mapeia as palavras dentro de um plano vetorial
(n-dimensional) e usa um modelo de rede neural tradicional para aprender associações de
palavras a partir de um grande corpus de texto. Uma vez treinado, esse modelo pode
detectar palavras sinônimas ou o nı́vel de similaridade semântica que as palavras têm
através do uso de funções algébricas como similaridade por cosseno entre outras. O avanço
foi sem precedentes na área por dar a capacidade de entendimento não só sintático, mas
também semântico (de significado intrı́nseco e contextual) para palavras e conjuntos de
palavras (Huang et al., 2021).
Um ano depois, em 2014, é publicado pelo núcleo de NLP da universidade de Stan-
ford, o modelo GloVe, num artigo seminal para a ACL (Association for Computational
Linguistics) entitulado “Glove: Global Vectors for Word Representation.” (Pennington
et al., 2014).
O modelo GloVe é um algoritmo de aprendizagem não supervisionado para a ob-
tenção de representações vetoriais para palavras. Difere pouco em essência do Word2vec
contudo tem maior precisão pois concentra-se em co-ocorrências de palavras em todo o
12

corpus. Seus Word Embeddings estão relacionado à probabilidade de que duas ou mais
palavras apareçam juntas.
GloVe é baseado em técnicas de fatoração matricial. Uma grande matriz de co-
ocorrência é usada para capturar o significado de uma palavra subjacente a estrutura
de todo o corpus observado. O modelo é treinado baseando-se na frequência e na co-
ocorrência global de palavras e conjuntos de palavras.
Observa-se abaixo um exemplo canônico clássico proposto pelos autores. Usando-se
da chamada do algoritmo para fazer uma soma de palavras, se obtém resultados seman-
ticamente válidos. Por exemplo: King - Man + Woman = Queen.

Figura 2: Exemplo de soma vetorial com GloVe

O importante a se observar é justamente a capacidade semântica trazida pelos


Word Embeddings. Infere-se então que variações de palavras do tipo singular e plural,
tempo verbal, preposições, conjunções e até mesmo pontuações têm elevado grau de im-
portância na qualidade dos modelos gerados com esta arquitetura.

1.2.3 Etapas Comuns de Pré-Processamento de NLP

Apresenta-se aqui uma relação das etapas mais tradicionais de TN.

• Funções de remoção e substituição simples:

– remove special chars()

– remove punctuation()

– remove URLs/html tags()


13

– remove numbers()

– remove stopwords()

– lower casing()

– subs accented chars()

• Técnica de Stemming & Lemmatization:

– Extrai apenas o radical ou o lema base da palavra. Estas técnicas, além de ser
contraprodutivas para uso com GloVe, provam-se inefetivas para melhoria da
acurácia de modelos de NLP (Camacho-Collados and Pilehvar, 2018).

Como já explicitado, os Word Embeddings tem capacidade não só sintática mas
também semântica, o que nos dá um espectro de atuação muito maior que abordagens de
contagem de palavras únicas sobre documentos (CountVectorizer) e outras técnicas mais
simples de arquitetura de NLP.
Existem bibliotecas de código que se propõem a realizar TN mas por padrão já
removem e substituem caracteres e palavras que não se deseja quando trabalhando com
Word Embeddings. Nesse contexto, surge o ı́mpeto e motivação da criação de uma bibli-
oteca especı́fica para GloVe e Word Embeddings visando ser uma função já pré-moldada
para a arquitetura desejada.
14

2 METODOLOGIA

Haja visto as caracterı́sticas especı́ficas de GloVe e Word Embeddings, propõe-se


uma rápida análise teórica das funções agregadas de TN em bibliotecas presentes no mer-
cado; e em seguida o desenvolvimento de uma biblioteca própria, intitulada inicialmente
“RecrutAi Glove-specific PreProcessing NLP Task Force” (posteriormente resumida para
“RecrutAi Glove NLP Task Force”).
Em seguida, realiza-se um experimento com e sem a normalização da NLP-TF
baseado em 2 métricas fundamentais Unique Tokens Count (UTC), contagem de tokens
únicos e MAE (erro médio absoluto) de 5 modelos de regressão de NLP já pré-otimizados.
Segue uma breve descrição das 2 métricas:

• Unique Tokens Count (UTC)

– Usando os arquivos GloVe PreTrained canônicos, da fonte original do autor,


faz-se a contagem de tokens (palavras) únicas no vocabulário do corpus de
treino. Antes e depois da TN.

• MAE de 5 modelos de Regressão de NLP

– Usando 5 modelos de uma tarefa de NLP especı́fica, já otimizados usando Grid-
SearchCV best params(); Realiza-se em seguida o treinamento de um modelo
de regressão (espectro de 0.0 a 1.0) com dados ground truth.

2.1 Soluções no Mercado

Existem no mercado algumas soluções que se propõem a lidar com NLP e fazer
TN, contudo as mesmas realizam transformações por padrão que não respeitam Word
Embeddings, outras não são configuráveis e as que podem ser configuradas não têm presets
(pré-moldes) para uso com GloVe e Word Embeddings. São algumas delas:

1. TextHero

(a) Remove por padrão todos os acentos. Não é interessante haja visto que, em
português por exemplo, as palavras “e” e “é” são significantemente diferentes.

2. Dataiku
15

(a) Seu text normalizer não é configurável e por padrão remove pontuações e acen-
tos.

3. JohnSnowLabs NLU e Spark NLP

(a) Tem text normalizer() configurável mas é complexo e não tem presets.

Evidencia-se, mesmo em bibliotecas de alta tecnologia em NLP (a exemplo Da-


taiku), a presença de etapas e funções de TN que não são interessantes para uso com
GloVe e Word Embeddings. Trazendo mais uma vez ao ı́mpeto e motivação para a criação
de uma biblioteca autoral especializada no contexto almejado.

2.2 Desenvolvimento e Publicação da NLP-TF

Durante o ano de 2021, foi trazido uma série de tarefas de alta complexidade
envolvendo NLP na startup RecrutAi (onde atuo como pesquisador e desenvolvedor de
inovação tecnológica). Um dos principais projetos envolvia author profiling, uma tarefa
complexa de NLP que envolve, a partir de texto livre de um autor, inferir informações
subjacentes do mesmo. Rapidamente foi levantado o uso de Word Embeddings, mais
especificamente GloVe e iniciou-se os trabalhos. Após algumas semanas o uso de TN de
bibliotecas padrão do mercado provou-se ineficiente e contraproducente, levando-me ao
desenvolvimento de uma solução própria de TN, a RecrutAi NLP Task Force.
Em suma, a biblioteca deve ser usada in-code (dentro do código) no projeto a
ser desenvolvido, e não importada externamente (salvo raras exceções) pois tem-se maior
corretude especialmente no contexto de modelos de ML. Deve-se normalizar os dados
textuais para treinar o modelo, neste caso, e também para consumir o modelo preditivo
após pronto.
O desenvolvimento em si constitui-se da definição e declaração de funções es-
pecı́ficas que devem ser de fato executadas no contexto GloVe, e em seguida define-se
a função “text normalize()” que de forma procedural executa cada uma das funções pré-
declaradas.
A essência da biblioteca demonstra-se na imagem abaixo:
Um passo-a-passo simplificado da mesma se segue:

1. Declarar a Lib como um in-code Function


16

Figura 3: Definição da função text normalize()

(a) O mesmo Pré-P. deve ser usado no Predict

2. Declarar todas as funções especı́ficas para GloVe

3. Definir a nossa text normalize(s)

(a) A ordem procedural importa.

4. Condicional casefolding() a depender do arquivo GloVe

5. Retornar a string normalizada

(a) Consumir o texto normalizado (análise, treino, predict, etc)

No caso dos arquivos canônicos GloVe pré-treinados (do site do autor, https://
nlp.stanford.edu/projects/glove/) observa-se que o que melhor performa é o modelo:

• Common Crawl (840B tokens, 2.2M vocab, cased, 300d vectors, 2.03 GB)

Tal arquivo é “cased” (tem maiúsculas e minúsculas) logo não deve-se colapsar
todos os caracteres para minúsculo, apenas quando formos usar o GloVe em português
que fora treinado colapsando todos os caracteres (Hartmann et al., 2017) (fonte: http:
//nilc.icmc.usp.br/embeddings).
17

Ratifica-se que a ordem procedural das funções é de fato relevante neste contexto,
e deve ser executada como tal.
Da publicação da biblioteca, foi escolhido a plataforma GitHub com a licença MIT
permissiva, esta autorizada pela startup RecrutAi. O código encontra-se em: https:
//github.com/LGR3/GloVe-NLP-TF.

Figura 4: Repositório GitHub do NLP-TF

2.3 Experimento

Como já previamente explanado, usamos duas métricas experimentais:

• Unique Tokens Count (UTC)

– Contagem de tokens (palavras) únicas

• MAE de 5 modelos de Regressão de NLP

– Erro médio absoluto de 5 modelos

O capı́tulo a seguir mostrará os resultados obtidos do experimento.


18

3 RESULTADOS

Neste capı́tulo serão mostrados os resultados das perguntas definidas no objetivo


deste trabalho, e também uma análise dos resultados experimentais do mesmo.

3.1 Resultados do experimento (UTC)

Segue uma imagem textual do resultado principal deste experimento e em seguida


resultados com gráficos plotados via ferramenta Google Sheets. O experimento foi feito
usando-se o arquivo GloVe pré-treinado em português fornecido pelo NILC - Núcleo Inte-
rinstitucional de Linguı́stica Computacional da USP (http://nilc.icmc.usp.br/embeddings).

Figura 5: Resultado completo textual

Observa-se em cor laranja o número de tokens únicos sem e com a normalização da


NLP-TF. Há uma drástica redução no UTC e, ainda mais relevante, após aplicar nosso
vocabulário ao arquivo GloVe pré-treinado verifica-se que o número de tokens presentes
no arquivo GloVe é maior após nossa normalização. Segue visualização gráfica para um
melhor entendimento:
O número de tokens perdidos foi plotado com valor negativo para uma melhor
compreensão visual.
19

Figura 6: Resultados do Experimento (UTC)

Com o uso da NLP-TF observa-se um número menor de tokens únicos, um número


maior de tokens presentes no arquivo GloVe pré-treinado (mesmo com menos tokens
únicos) e uma perda pequena de tokens que estão em nosso vocabulário mas ausentes no
arquivo GloVe.
Segue uma pequena análise estatı́stica percentual:

• 69,5% de aproveitamento das palavras no texto original

– Perda de 30,5%

• 91,1% de aproveitamento das palabras no texto normalizado pela NLP-TF

– Perda de 8,9%

3.2 Resultados do Experimento (MAE)

Segue uma renderização gráfica (também plotada com Google Sheets) dos resulta-
dos encontrados no treinamento dos 5 modelos de ML. O ferramental usado foi o ambiente
de desenvolvimento JuPy, linguagem Python com as bibliotecas padrão, além de Pandas
para manipulação dos dados e Scikit-learn para treinamento dos modelos e cálculo do
MAE. Segue gráfico dos resultados de treinamento com e sem a normalização NLP-TF:
20

Figura 7: Resultados do Experimento (MAE)

Observa-se uma melhora na acurácia de todos os 5 modelos e, apesar da aparente


pequena dimensão da melhora, no que diz respeito a tarefa de NLP author profiling e o
contexto da startup RecrutAi, faz-se comparação entre dezenas de milhares (e as vezes
centenas de milhares) de entradas, o que representa ganho significativo na qualidade das
inferências e predições realizadas.
Por fim passamos para as respostas das questões realizadas na seção Objetivos:

• Q1: Quais as diferenças entre GloVe Word Embeddings e outras abordagens?

– Em essência, observa-se a capacidade de entendimento semântico das palavras


e conjuntos de palavras, logo as variações possı́veis de uma palavra, seu tempo
verbal e até mesmo pontuações são relevantes para análises, aprendizado e
predições.
21

• Q2: O que pode ser feito na etapa de TN para otimizar os modelos de NLP?

– Normalizar as palavras nos trás uma série de benefı́cios e várias etapas co-
erentes como remoção de caracteres especiais, espaços em branco excessivos,
endereços de email e emojis podem ser devidamente removidos. Como vimos,
deixar todos os caracteres em minúsculo pode se aplicar a depender do contexto
técnico especı́fico

• Q3: O que não deve ser feito em TN no contexto de Word Embeddings?

– Claramente, técnicas de remoção de pontuações, normalização de acentuações


e as chamadas técnicas de Stemming e Lemmatization não devem ser utiliza-
das no contexto de arquitetura GloVe e Word Embeddings pois normalizam
singular/plural, tempos verbais, gênero entre outras caracterı́sticas léxicas que
contém informação relevante para desenvolvedores e usuários.

• Q4: O desenvolvimento de uma lib especı́fica para GloVe trás bons resultados?

– Como verificado experimentalmente, o uso da biblioteca proposta neste traba-


lho trouxe benefı́cios visı́veis para análise, treinamento e predição de tarefas
complexas em NLP.

• Q5: Que melhoramentos se vislumbra para uma futura versão 2.0?

– Como visão futura, um melhor desempenho da NLP-TF pode ser esperado com
a adição de técnicas de substituição simples via dicionários, para normalizar
contrações, linguagem de internet e até erros ortográficos simples. Ademais,
é relevante se explorar a inclusão de bibliotecas terceiras para realização de
verificação ortográfica e erros mais complexos, assim como normalização de
sinônimos.
22

4 CONCLUSÃO E TRABALHOS FUTUROS

O processamento de linguagem natural vem ganhando cada vez mais relevância na


geração de valor para empresas que querem se destacar no mercado e fazer bons usos da
AI. Observa-se uma tendência de aumento no uso de Word Embeddings, uma vez que es-
tes estão alcançando resultados estado-da-arte, superior aos melhores métodos anteriores.
Neste contexto, de um ponto de vista técnico computacional, o pré-processamento e nor-
malização de texto é uma etapa cabal para o bom desempenho de análises, treinamento
de modelos e realização de predições e prescrições de ML.
Este trabalho explorou as técnicas mais conhecidas de TN, fez um estudo sobre
GloVe e Word Embeddings e esmiuçou que sub-etapas de normalização devem ou não ser
utilizadas neste contexto arquitetural. Além disso, foi feita uma análise das principais
ferramentas disponı́veis hoje em dia e suas limitações por usarem etapas padrão que não
se aplicam a Glove e não tem boa configurabilidade ou presets para Word Embeddings.
Ademais, foi desenvolvida e publicada uma pequena biblioteca Python que se
propõe a normalizar devidamente, com apenas uma linha, cadeias de caracteres para
uso com GloVe e Word Embeddings. Neste, resultados experimentais provaram ser efici-
ente o uso de tal ferramenta a nı́vel analı́tico e também para qualidade de treinamento e
predições de ML.
As limitações desta dissertação e da biblioteca se encontram no nı́vel básico de suas
normalização que não envolve substituições complexas como abordagens por dicionários
Python, uso de bibliotecas terceiras para correções ortográficas e normalizações avançadas
com uso de redes neurais e DL.
O uso da biblioteca RecrutAi NLP Task Force é fortemente sugerido para todos que
pretendem realizar estudos e aplicações usando arquiteturas de NLP com uso de GloVe e
Word Embeddings.

4.1 Trabalhos Futuros

Sugestões de experimentações e possı́veis trabalhos futuros são listados a seguir


com o enfoque em versões futuras da biblioteca NLP-TF:

• Passos futuros para uma eventual NLP-TF v2.0


23

– Uso de Python Dicts (dicionários) para substituição simples de:

∗ Contrações

∗ Linguagem de internet (i.e. ‘vc’, ‘msm’)

∗ Erros ortográficos simples via substituição

– Bibliotecas terceiras para checagem ortográfica complexa

• Passos futuros para uma eventual NLP-TF v3.0

– Normalização de sinônimos

– Normalizações avançadas baseadas em redes neurais e DL


24

REFERÊNCIAS

Jose Camacho-Collados and Mohammad Taher Pilehvar. On the role of text preproces-
sing in neural network architectures: An evaluation study on text categorization and
sentiment analysis. pages 40–46. Association for Computational Linguistics, 2018. doi:
10.18653/v1/W18-5406. URL http://aclweb.org/anthology/W18-5406.

Nathan Hartmann, Erick Fonseca, Christopher Shulby, Marcos Treviso, Jessica Rodrigues,
and Sandra Aluisio. Portuguese word embeddings: Evaluating on word analogies and
natural language tasks. 2017. URL http://arxiv.org/abs/1708.06025.

He Huang, Wei Tang, Jiawei Zhang, and Philip S. Yu. Translational concept embedding
for generalized compositional zero-shot learning. 2021. URL http://arxiv.org/abs/
2112.10871.

Xiujun Li, Yun-Nung Chen, Lihong Li, Jianfeng Gao, and Asli Celikyilmaz. End-to-end
task-completion neural dialogue systems. 2018. URL http://arxiv.org/abs/1703.
01008.

Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word
representations in vector space. 2013a. URL http://arxiv.org/abs/1301.3781.

Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean. Distributed
representations of words and phrases and their compositionality. 2013b. URL http:
//arxiv.org/abs/1310.4546.

Jeffrey Pennington, Richard Socher, and Christopher Manning. Glove: Global vectors
for word representation. pages 1532–1543. Association for Computational Linguistics,
2014. doi: 10.3115/v1/D14-1162. URL http://aclweb.org/anthology/D14-1162.

Pooja Rahate and M. Chandak. Text normalization and its role in speech synthe-
sis. 2019. doi: 10.35940/ijeat.E1029.0785S319. URL https://www.ijeat.org/
wp-content/uploads/papers/v8i5S3/E10290785S319.pdf.

Você também pode gostar