Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Centro de Informática
Curso de Sistemas de Informação
Recife
2021
Agradecimentos
George Box
RESUMO
Keywords: Natural language processing, Text mining, Text normalization, Machine lear-
ning, Word embeddings
LISTA DE FIGURAS
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
1 INTRODUÇÃO
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:
• Q2: O que pode ser feito na etapa de TN para otimizar os modelos de NLP?
• Q4: O desenvolvimento de uma lib especı́fica para GloVe trás bons resultados?
1.2.1 NLP
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.
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.
– remove punctuation()
– remove numbers()
– remove stopwords()
– lower casing()
– 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
– 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.
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.
(a) Tem text normalizer() configurável mas é complexo e não tem presets.
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:
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.
2.3 Experimento
3 RESULTADOS
– Perda de 30,5%
– Perda de 8,9%
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
• 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
• Q4: O desenvolvimento de uma lib especı́fica para GloVe trás bons resultados?
– 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
∗ Contrações
– Normalização de sinônimos
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.