0%
Saco de palavras e TF-IDF

Saco de palavras e TF-IDF

Transformar texto em matriz numérica com scikit-learn: contagem, ponderação TF-IDF, n-gramas de caracteres e explosão da dimensão.

10-15 min

Um algoritmo de aprendizado não consome texto, consome números. Entre os dois, é preciso uma função que transforme um documento em vetor, e essa função determina a qualidade do resultado final com mais certeza do que a escolha do próprio algoritmo.

A solução mais antiga também é a mais usada em produção: o saco de palavras (bag of words). Esquece-se a ordem e guarda-se apenas a presença e a frequência. "O gato come o rato" e "O rato come o gato" viram o mesmo vetor. É uma perda de informação evidente, e ainda assim essa representação basta para filtrar spam, rotear tickets de suporte ou classificar notícias por editoria com uma precisão que constrange abordagens mais sofisticadas.

Há três razões para começar por aqui, mesmo que seu objetivo final seja um transformer. A primeira é que se trata de uma referência honesta: se o seu modelo de 110 milhões de parâmetros não supera um TF-IDF treinado em dois segundos, o problema não está na arquitetura. A segunda é a interpretabilidade: é possível ler os coeficientes e saber quais palavras sustentam a decisão, algo que nenhum transformer permite de modo tão direto. A terceira é o custo: uma regressão logística sobre TF-IDF treina em um notebook e responde em uma fração de milissegundo, sem GPU, sem servidor de inferência.

Link copiado!