← tópicos

Específicos · Ciência de Dados

NLP: tokenização, stemming × lemmatização, BoW, TF-IDF, embeddings

Todo pipeline de PLN é a mesma escada: segmentar, normalizar, representar em números. O item se resolve perguntando em que degrau mora a técnica citada e o que ela recebe de entrada.

Alta4 itens no tópico

A ideia que organiza o assunto

Um algoritmo de aprendizado de máquina não lê texto. Ele consome vetores de números. Todo o processamento de linguagem natural clássico é, portanto, a construção de uma ponte entre uma coisa e a outra — e essa ponte tem sempre os mesmos degraus, na mesma ordem:

  1. segmentar o texto corrido em unidades (tokenização);
  2. normalizar essas unidades, para que variações da mesma coisa contem como a mesma coisa (caixa, acentos, palavras vazias, stemming, lematização);
  3. representar o resultado como números (bag of words, TF-IDF, embeddings);
  4. modelar sobre essa representação.

Duas consequências fazem quase todo o trabalho.

A ordem não é negociável, porque cada degrau consome a saída do anterior. Stemming, lematização e remoção de palavras vazias operam sobre tokens; logo, vêm depois da tokenização, sempre. Vetorização opera sobre tokens normalizados; logo, vem depois da normalização. Quando um item afirma uma ordem de etapas, não se discute a etapa: reconstrói-se o pipeline e pergunta-se o que cada etapa recebe de entrada. Foi exatamente assim que caiu o único item errado deste tópico no corpus.

Toda normalização é uma troca de precisão por generalização. Reduzir jurídico, jurídica e juridicamente a um mesmo termo faz o modelo enxergar o padrão comum e perder a diferença entre eles. Não existe escolha certa em abstrato: existe quanto de distinção a tarefa pode perder. É por isso que stemming, lematização e remoção de palavras vazias são decisões, e não passos obrigatórios.

E há o obstáculo que nenhum degrau resolve: a mesma forma pode ter vários significados. Banco, processo, manga. A ambiguidade é o problema de fundo do PLN, e a razão pela qual as representações evoluíram de contagem para embeddings e, depois, para representações que mudam conforme a frase.

Por que se usa (e o que custa)

Cada representação compra uma coisa e vende outra, e é essa troca — não a definição — que decide qual usar.

Bag of words compra simplicidade e interpretabilidade: cada coluna é uma palavra, e dá para apontar qual palavra pesou. Vende a ordemo juiz negou o pedido e o pedido negou o juiz produzem o mesmo vetor — e vende tamanho, porque a matriz fica enorme e quase toda de zeros.

TF-IDF compra discriminação: em vez de contar, pondera, e o termo que aparece em todos os documentos deixa de dominar. Continua sem ordem e sem semântica — advogado e causídico seguem sendo duas colunas sem relação alguma.

Embeddings compram semântica: palavras de sentido próximo caem próximas no espaço vetorial, e o vetor é denso e pequeno. Vendem interpretabilidade — a dimensão 47 não quer dizer nada — e exigem um corpus grande ou um modelo pré-treinado.

Stemming × lematização é a mesma troca em miniatura: o stemming é rápido, funciona por regras de corte e não precisa de dicionário, mas pode devolver algo que não é palavra e pode juntar o que não deveria; a lematização consulta léxico e classe gramatical, devolve sempre forma de dicionário, e custa mais — inclusive uma etiquetagem morfossintática, quando precisa desambiguar.

Como funciona

Tokenização. Segmenta o texto em unidades. O caso trivial é separar por espaço e pontuação; os casos que importam são os que quebram essa regra — contrações, siglas com ponto, números, datas, endereços, e em domínio jurídico as referências normativas do tipo art. 5.º, § 2.º, que não devem ser estilhaçadas. Há tokenização em nível de palavra, de caractere e de subword, esta última a dos modelos neurais atuais, que quebra a palavra em pedaços recorrentes e assim cobre palavras nunca vistas.

Normalização. Caixa baixa, remoção de acentos e de pontuação, tratamento de números. É onde se decide o que é ruído e o que é sinal, e a decisão depende da tarefa: em análise de sentimento, o ponto de exclamação é sinal.

Palavras vazias (stopwords). Artigos, preposições e conjunções são removidos por serem frequentes e pouco discriminantes. Duas ressalvas de prova: a lista é dependente de idioma e de domínio, e a remoção destrói expressões em que a palavra vazia é decisiva — não costuma estar nas listas padrão e sua remoção inverte o sentido da frase.

Stemming. Corta afixos por regras até chegar a um radical comum, de modo que as flexões de uma palavra passem a contar como um mesmo termo. Estudar, estudando e estudou colapsam em estud. O resultado não precisa ser uma palavra válida — é um índice, não um lema. Os algoritmos clássicos são o de Porter e, para o português, o RSLP.

Lematização. Reduz a palavra ao seu lema, a forma de dicionário: verbo no infinitivo, substantivo no masculino singular. Diferentemente do stemming, consulta um léxico e leva em conta a classe gramatical, e por isso resolve casos que o corte por regra erra — foi devolve ser ou ir conforme o contexto, o que nenhum algoritmo de truncamento alcança.

Bag of words. O documento vira um vetor de contagens sobre o vocabulário do corpus. A ordem das palavras é descartada — daí o nome. Os n-gramas são o remendo parcial: contar pares ou trios de palavras adjacentes recupera um pouco de contexto local ao custo de multiplicar a dimensionalidade.

TF-IDF. O peso de um termo em um documento é o produto de dois fatores que puxam em sentidos opostos:

O peso é máximo, portanto, no termo muito frequente naquele documento e pouco frequente nos demais — isto é, no termo que distingue aquele documento dos outros. O termo presente em todos os documentos é esmagado pelo IDF, o que faz do TF-IDF uma alternativa automática à lista de palavras vazias.

Embeddings. Representações densas em que a posição no espaço carrega significado, aprendidas a partir da companhia que a palavra mantém — palavras que aparecem em contextos parecidos recebem vetores próximos. Word2Vec (CBOW e skip-gram), GloVe e FastText são os clássicos; o FastText compõe o vetor da palavra a partir de n-gramas de caracteres, o que lhe permite representar palavras fora do vocabulário. O limite de todos eles é ter um vetor fixo por palavra: banco recebe uma única representação, some o contexto. É esse limite que as representações contextuais dos modelos baseados em transformer superam, ao produzir um vetor diferente para cada ocorrência.

Ambiguidade. A polissemia — mesma forma, vários significados relacionados — é a camada léxica do problema. Há ainda a ambiguidade sintática (a qual termo o adjunto se liga) e a referencial (a quem remete o pronome). Desambiguação de sentido é a tarefa dedicada à primeira.

O que decide os itens

A base medida deste tópico é pequena, e dizer isso é mais útil que fingir densidade: são 4 itens ao todo, 3 Certos e 1 Errado. Um item testa a ordem do pipeline, um testa stemming, um testa TF-IDF e um testa polissemia. O título do assunto cita bag of words e embeddings, e nenhum dos dois decide um item sequer — nem sozinho, nem de passagem. As tabelas abaixo cobrem o tópico como ele é ensinado, porque é isso que a próxima prova pode cobrar; o que está medido é apenas o que esta frase diz.

A ordem do pipeline — a coluna da esquerda é o que a etapa recebe:

etaparecebedevolve
tokenizaçãotexto corridotokens
normalização, palavras vaziastokenstokens filtrados
stemming, lematizaçãotokensradicais ou lemas
vetorização (BoW, TF-IDF, embedding)tokens normalizadosvetores
modelagemvetorespredição

Nenhuma etapa de normalização pode preceder a tokenização: ela não teria sobre o que operar.

Stemming × lematização — a distinção mais cobrada do tópico:

stemminglematização
métodocorte de afixos por regraconsulta a léxico
usa classe gramaticalnãosim
resultadoradical, pode não ser palavralema, sempre forma de dicionário
exemploestudando → estudestudando → estudar
caso irregular (foi)não resolveser / ir, conforme o contexto
custobaixomaior
algoritmosPorter, RSLP, SnowballWordNet, spaCy, analisadores morfológicos

Representações de texto:

guarda a ordemguarda semânticadimensãointerpretável
bag of wordsnãonãoalta, esparsasim
TF-IDFnãonãoalta, esparsasim
n-gramaslocalmentenãoainda maiorsim
embedding estáticonãosimbaixa, densanão
embedding contextualsimsimbaixa, densanão

TF-IDF — a direção de cada metade:

fatorsobe quandomede
TFo termo se repete naquele documentorelevância local
IDFo termo é raro no corpuspoder de discriminação
TF-IDFas duas coisas ao mesmo tempotermo característico daquele documento

Camadas de ambiguidade:

camadafenômenoexemplo
léxicapolissemia, homonímiabanco, manga, processo
sintáticaligação do adjuntovi o homem com o telescópio
referencialantecedente do pronomeele, isso, o mesmo

Compreensão × geração: a compreensão (NLU) vai do texto para o significado — classificação, extração de entidades, análise de sentimento; a geração (NLG) vai do significado para o texto — resumo, tradução, resposta. Item que dê a uma o produto da outra trocou os nomes.

Como a CEBRASPE derruba você aqui

Esta seção está medida sobre 4 itens, dos quais 1 é Errado. Uma amostra desse tamanho não sustenta frequência nem porcentagem, e seria desonesto apresentá-la como se sustentasse. O que segue é: primeiro, o único movimento efetivamente observado; depois, os movimentos conhecidos do tópico que ainda não foram medidos aqui e estão marcados como tais.

Medido: inverter a ordem do pipeline. O único item errado do corpus afirma que “a tokenização deve, necessariamente, ser precedida pela lematização”, e o faz com uma justificativa que se desmente sozinha — uma vez que a lematização opera sobre formas canônicas já segmentadas. Quem segmenta é a tokenização. O padrão vale além deste item: quando a banca afirma uma ordem, ela costuma embutir na oração causal a informação que derruba a própria afirmação. A defesa é ler a justificativa como prova e não como reforço, e perguntar o que a segunda etapa recebe de entrada.

Medido: o que sobreviveu. Os três itens Certos são definições diretas, sem advérbio restritivo — polissemia como característica de palavras terem mais de um significado, TF-IDF majorando o termo frequente no documento e raro no corpus, stemming reduzindo flexões ao radical. Nenhum deles foi derrubado por um detalhe técnico fino. Em particular, o item de stemming diz “reduz palavras flexionadas ao seu radical” e é Certo: a banca trabalha com a definição de manual, e não espera que o candidato oponha a ela a observação de que o radical do stemmer pode não ser um radical morfológico legítimo. Não procure erro onde a definição corrente basta.

Não medido, mas conhecido do tópico: inverter a direção do TF-IDF. É a distorção clássica desta matéria — premiar o termo frequente em todo o corpus, ou tratar o IDF como contagem em vez de inverso. No corpus atual o TF-IDF só apareceu pelo lado certo. Confira sempre as duas metades separadamente.

Não medido, mas conhecido do tópico: trocar stemming por lematização. Atribuir ao stemming a garantia de forma de dicionário, ou dispensar a lematização do léxico e da classe gramatical, é a troca que a distinção existe para punir. Aqui ela ainda não caiu.

Não medido, mas conhecido do tópico: atribuir semântica ao bag of words. Dizer que a contagem de palavras preserva a ordem ou capta a relação de sentido entre termos é o erro natural dessa família. Como bag of words e embeddings não geraram item algum neste corpus, não há como afirmar frequência — apenas que são o espaço mais óbvio de crescimento do tópico.

Erros clássicos

Normalizar antes de segmentar. Stemming, lematização e remoção de palavras vazias consomem tokens. Nenhum deles pode vir antes da tokenização, em nenhum domínio.

Exigir palavra válida do stemming. O stemmer trunca por regra. Estudante virar estud não é defeito: o objetivo é que as variantes colidam no mesmo índice, não que o resultado seja legível.

Achar que a lematização dispensa contexto. Ela precisa da classe gramatical para desambiguar, e é justamente isso que a torna mais cara e mais precisa que o stemming.

Ler IDF como frequência. É frequência inversa: o fator cresce quando o termo é raro no corpus. Quem inverte isso conclui que o TF-IDF premia palavra comum, que é o oposto do que ele faz.

Esperar ordem do bag of words. O nome é literal: é um saco. Se o item promete que a representação captura sequência ou sintaxe, só os n-gramas dão isso, e ainda assim apenas localmente.

Tratar embedding estático como sensível ao contexto. Word2Vec, GloVe e FastText dão um vetor por palavra, o mesmo em toda ocorrência. Quem varia com a frase é a representação contextual dos modelos baseados em transformer.

Remover palavras vazias sem olhar a tarefa. A lista padrão costuma incluir a negação, e retirar não de uma frase inverte o que ela diz. Em análise de sentimento e em texto normativo, a remoção cega custa caro.

Confundir polissemia com sinonímia. Polissemia é uma forma com vários sentidos; sinonímia são várias formas com o mesmo sentido. São problemas opostos, e as representações os tratam por caminhos diferentes.

Praticar4 itens