Verbo Significativo: o que é e como aplicar na prática
Eu já passei horas debugando modelos de NLP porque alguém havia confundido verbo significativo com verbo semântico genérico, e o resultado era um modelo que classficava tudo como positivo só porque os verbos apareciam com frequência. É mais comum do que parece. O conceito de verbo significativo não é sobre qualquer verbo que tenha significado literal, mas sobre verbos que carregam informação relevante para a tarefa em questão.
O que e verbo significativo
Em análise de texto e processamento de linguagem natural, um verbo significativo é aquele cuja presença ou ausência altera significativamente a classificação ou interpretação do documento. Não é sobre o verbo ter significado por si só — todo verbo tem. É sobre o verbo ser discriminativo. Se você remover "excluir" de um texto de suporte ao cliente, o sentimento muda de negativo para algo neutro. "Excluir" é significativo nesse contexto. Se você remover "funcionar" de um tutorial técnico, pouco muda. "Funcionar" provavelmente não é significativo. A definição técnica gira em torno de medidas de importância como TF-IDF, chi-quadrado, ou mutual information. Um verbo significativo é aquele com pontuação alta nessas métricas quando aplicado a uma tarefa específica — classificação de sentimento, extração de informações, detecção de intenção. O verbo "comprar" pode ser altamente significativo em dados de e-commerce, mas irrelevante em textos médicos. A significância depende do domínio e do objetivo.
O que eu aprendi na prática é que a maioria dos guias teóricos trata isso de forma muito abstrata. Eles mostram a fórmula do TF-IDF e dão exemplos com datasets limpos da internet. Nada disso reflete como os dados realmente chegam. Meu primeiro projeto sério com extração de intenção em português usou verbos como preditores principais, e eu precisei lidar com variações como "fechar", "encerrar", "cancelar" — todos significativos no mesmo contexto de CRM, mas com pesos diferentes. Eu acabei construindo um dicionário manual de verbos relevantes por categoria de intenção, o que reduziu o false positive em cerca de 40% comparado ao modelo ingênuo baseado em frequência pura.
Como identificar um verbo significativo
O processo básico envolve três etapas: normalização, cálculo de importância, e validação cruzada. Na normalização, você reduz os verbos à forma base usando lematização — "comprei", "comprando", "comprou" viram "comprar". Em português, o Snowball stemmer funciona razoavelmente, mas para verbos irregulares como "ser/estar/fazer", prefira o Stanza ou o spacy com modelo treinado para português. Pule essa etapa e seus verbos significativos vão se multiplicar artificialmente porque cada conjugação conta como token diferente. Depois da normalização, aplique uma métrica de importância. TF-IDF é o ponto de partida mais barato e geralmente suficiente. O sklearn oferece `TfidfVectorizer` com parâmetros configuráveis para limite mínimo de frequência e máximo de termos. Para tarefas de classificação onde você tem rótulos, chi-quadrado (`chi2`) ou seleção de features baseada em ANOVA F resultados mais direcionados à discriminação entre classes. Eu costumo rodar ambas as métricas e fazer um union dos top 200 verbos de cada lista — isso captura tanto a relevância global quanto a relevância específica por classe.
👉 Clique no botão abaixo para saber mais sobre o assunto!
A validação cruzada é onde a maioria das pessoas erra. Não adianta ter uma lista bonita de verbos significativos se ela não generaliza. Separe seus dados em treino e teste, treine um classificador simples (logistic regression funciona bem como baseline), e meça a queda de performance quando você remove os top verbos significativos versus uma remoção aleatória do mesmo tamanho. Se a remoção dos verbos significativos causar uma queda de 15% ou mais na acurácia, você tem algo real. Se a queda for menor que 3%, provavelmente você está superajustando ao ruído do dataset de treino.
Edge cases e armadilhas
Verbos auxiliares e modal são o problema mais frequente. "Ter", "haver", "dever", "poder" aparecem com altíssima frequência em praticamente qualquer texto em português, mas raramente são discriminativos. O TF-IDF tende a rebaixá-los automaticamente porque aparecem em todos os documentos, mas em datasets pequenos ou desbalanceados, eles podem flutuar para posições altas. Eu resolvi isso adicionando uma lista de stop words verbais específica para português — incluí "ter", "haver", "ser", "estar", "ir", "vir", "fazer", "dar", "passar", "ficar" — antes de calcular a importância. Isso limpa o ruído sem perder verbos de ação reais. Outro problema menos óbvio é a ambiguidade lexical. O verbo "pagar" pode aparecer em contextos de fatura, reembolso, aprovação de compra, ou reclamação. Ele é frequente, mas sua significância varia drasticamente dependendo do substantivo que o acompanha. "Pagar boleto" tem peso diferente de "pagar indenização". Trabalhar com bigramas ou trigramas que incluam o verbo resolve parcialmente isso, mas aumenta a esparsidade. Minha solução prática foi calcular a significância do verbo isoladamente primeiro, depois refiná-la com ponderação pelo bigrama mais frequente do verbo — essencialmente um sinalizador que diz "esse verbo é significativo em quais contextos específicos".
Um terceiro problema que encontrei em produção foi a mudança de significado ao longo do tempo. Verbos que eram altamente significativos em dados de 2022 podiam perder relevância em 2024 porque o comportamento dos usuários mudou. Em um projeto de classificação de reclamações, o verbo "reclamar" perdeu cerca de 60% do seu peso específico porque as pessoas passaram a usar "reportar" e "sinalizar" no lugar. A lista estática de verbos significativos ficou obsoleta em alguns meses. A correção foi criar um pipeline de manutenção periódica — rodar o cálculo de importância a cada trimestre e ajustar os thresholds automaticamente com base na distribuição atual dos dados.
Quando o verbo significativo não funciona
É importante ser honesto sobre as limitações. Verbos significativos são uma ferramenta poderosa para classificação baseada em intenção e extração de eventos, mas eles falham miseravelmente em tarefas que exigem compreensão de contexto amplo. Um modelo que confia excessivamente em verbos significativos vai classificar "O sistema não conseguiu processar o pedido porque o pagamento falhou" como negativo só por causa de "falhou", ignorando que o problema subjacente pode ser resolvido com uma simples reinicialização. O verbo é significativo, mas a interpretação está incompleta. Em português, a flexão verbal rica também limita a eficácia. Diferente do inglês, onde "run", "runs", "ran", "running" compartilham o mesmo radical, o português tem conjugações bastante diversas: "falar", "falei", "falava", "falarei", "falo", "fala" — todas formas do mesmo verbo, mas com nuances temporais e aspectuais que o TF-IDF puro não captura. Isso significa que listas de verbos significativos em português precisam de tratamento adicional, preferencialmente com lematização robusta e consideração do aspecto verbal quando a tarefa for sensível a temporalidade.
Se a sua tarefa for puremamente descritiva — resumir texto, gerar texto, traduzir — focar em verbos significativos é desperdício de tempo. Modelos baseados em atenção e embeddings contextuais (como BERT e suas variantes em português) capturam nuances verbais de forma muito mais eficiente. Verbos significativos brilham em cenários onde você precisa de transparência, explicabilidade, e baixa latência — quando precisa saber por que o modelo tomou uma decisão e não apenas qual foi a decisão. Em produção, essa clareza vale mais do que 2% de acurácia a mais que um modelo black box poderia oferecer.