Você está na página 1de 18

RecrutAi GloVe NLP Task Force:

a One-Liner Text_Normalize()

Lucas G. Regis
Orientador: Vinicius Cardoso Garcia
Sumário
● Introdução
○ Word Embeddings e GloVe
○ Etapas Comuns de Pré-Processamento de NLP
● Questionamentos e Objetivo
● Metodologia e Hipóteses
● Desenvolvimento RecrutAi GloVe NLP-TF
● Experimento e Resultados
● Conclusão e Passos Futuros ( NLP-TF v2.0 )
NLP : char strings data Usage (Analytics, DS, ML)
Text Normalization is the pre-processing step of the NLP system.
(Harde, 2019)

Como o nome sugere, TN é a etapa que tem por objetivo normalizar e


padronizar dados textuais (char strings) para melhor uso em sistemas de NLP.
Questionamentos
● Quais as diferenças entre GloVe Word Embeddings e outras abordagens ?

● O que pode ser feito na etapa de Pré-Processamento / TN para otimizar os Modelos de NLP ?

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

Objetivo : Dev a GloVe-specific TN Python lib


● O desenvolvimento de uma lib específica para GloVe trás bons resultados?

● O que se envisiona, então, para uma futura versão 2.0 ?


Word Embeddings
“ Word vectors consume much less space than one hot encoded vectors* and they also
maintain semantic representation of word”.

*word frequency CountVectorizer source: Medium Analytics Vidhya


GloVe
GloVe (Global Vectors for Word Representation) is based on matrix factorization techniques. A large matrix of co-occurrence
is used to capture the meaning of one word embedding with the structure of the whole observed corpus; GloVe model trains
on word frequency and global co-occurence counts as the main measures.

source: My Great Learning Blog


King - Man + Woman = Queen
Etapas Comuns de Pré-Processamento de NLP
● Removals & Simple Subs
○ remove_special_chars()
○ remove_punctuation() ❌
○ remove_URLs/html_tags()
○ remove_numbers()
○ remove_stopwords() ❌
■ Simple Substitutions :
● lower_casing() [depends on GloVe file]
● subs_accented_chars() ❌
● Stemming & Lemmatization ❌
● Advanced Substitutions
○ Dict Subs ( ‘btw => by the way’, ‘omg => oh my god’ ), Extended Chars ( ‘yeeees’ ), Spell Check / Typos ( Libs )
○ Extreme and Advanced DL Techniques ( Synonyms )
Stemming & Lemmatization

“...lemmatization has no significant impact on accuracy for text classification.”


(Camacho-Collados, 2018)
Metodologia
● Unique Tokens Count (UTC)
○ Usando os arquivos GloVe PreTrained canônicos, da fonte original do autor, faz-se 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 Author Profiling (NLP Task) já otimizados usando GridSearchCV best_params();
Realizamos em seguida o treinamento de um modelo de regressão ( 0.0 - 1.0 ) com dados ground truth.

Hipótese
● Usando os fundamentos teóricos do treinamento de um GloVe PreTrained; Que etapas
específicas de TN devem ou não ser executadas?
● Com o uso da lib; A acurácia do modelo irá aumentar ( MAE mais perto de 0% ) ?
Desenvolvimento da Solução ( RecrutAi GloVe NLP-TF )
Python in-code function ( “Lib” )

1. Declarar a Lib como um in-code Function


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 GloVe file
5. Retornar a string normalizada

=> Consumir o texto normalizado (análise, treino, predict)


Soluções no Mercado
Principais Libs de NLP PreProcessing :

Realizam transformações por padrão que não respeitam Word Embeddings. Não tem presets.

1. TextHero
a. remove_diacritics por default. Remove todos os acentos.
2. Dataiku
a. seu text normalizer não é configurável e por padrão remove pontuações e acentos.
3. JohnSnowLabs NLU e Spark NLP
a. tem text_normalizer() configurável mas é complexo e não tem presets.
Resultados
Resultados do Experimento (UTC) Aproveitamento:

69.5% Original Text

91.1% NLP-TF Normalized


Resultados
Conclusão e Passos Futuros (NLP-TF v2.0)
● Tendência ao aumento do uso de Word Embeddings
● Etapas tradicionais de TN e Libs não focam-se em Word Embeddings
● Desenvolvimento RecrutAi GloVe NLP-TF
● Resultados Experimentais mostram-se favoráveis
● Passos Futuros ( NLP-TF v2.0 )
○ Simple dict subs (contractions, internet lingo, simple typos)
○ 3rd party libs for SpellCheck/Typos
● Estudos Futuros ( NLP-TF v3.0 )
○ Synonyms Normalization
○ Advanced NN & DL-based Text Normalization
Muito Obrigado!
Lucas G. Regis
Orientador: Vinicius Cardoso Garcia
Referências
1. Text Normalization and Its Role in Speech Synthesis (July 2019) DOI:10.35940/ijeat.E1029.0785S319
2. medium.com/analytics-vidhya/word-embeddings-in-nlp-word2vec-glove-fasttext-24d4d4286a73
3. www.mygreatlearning.com/blog/word-embedding/#sh4
4. https://devopedia.org/images/article/220/9944.1569756903.png

Você também pode gostar