POTHIEDU Não Decore a Resposta. Entenda o Caminho

Flexão Nominal E Verbal

Flexão Nominal E Verbal

Como lidar com flexão nominal e verbal na prática

Vim parar nesse tópico porque todo mundo que trabalha com processamento de linguagem em português acaba tropeçando na mesma coisa: a flexão. E não só a parte que parece óbvia. A questão é que a flexão nominal e verbal em português tem camadas que a maioria dos materiais introdutórios ignora, e quando você vai implementar algo que precisa funcionar de verdade, percebe que a teoria ensinada no curso nunca cobre os casos problemáticos. A flexão nominal são as variações que nomes, adjetivos, artigos e pronomes sofrem para marcar gênero, número e grau. A flexão verbal são as mudanças no verbo para indicar tempo, modo, pessoa, número e aspecto. Parece simples até você tentar descrever isso para uma máquina ou para um script que precisa normalizar textos automaticamente. Eu costumava usar expressões regulares ingênuas pra normalização morfológica em um projeto corporativo e pensei que estava resolvendo rápido. Meu processo de extração de raízes usava a lógica de "tirar o -ão, o -es, o -as". Funcionava para 80% dos casos. Até que me deparei com palavras como "cidadão", "alemão", "coração" — que terminam em -ão mas não formam plural com -ões. Aquele 80% virou 63% e o resto era ruído que eu tinha que limpar manualmente depois.

Eu resolvi mudando a abordagem completamente. Em vez de regular expressions, passei a usar uma biblioteca de lematização morfológica com dicionário de exceções. No caso do -ão, existem regras derivacionais específicas para o plural, mas elas precisam ser tratadas com tabelas de mapeamento, não com padrões genéricos. O workaround que funcionou foi substituir o regex pela lib PortugueseStemmer do NLTK combinado com uma lista personalizada de mais de duzentas exceções que eu fui acumulando. O processo que antes levava horas de limpeza manual caiu para alguns minutos de execução automática.

Pegadinhas que ninguém avisa

Aqui vão dois pontos que eu aprendi na marra e que raramente aparecem em tutoriais: 1. Verbos irregulares no pretérito perfeito dominam a maioria dos erros. Fazer, vir, poder, pôr, querer, saber — todos esses têm formas no pretérito que destoam completamente do paradigma regular. "Ele fez" não segue nenhum padrão visual com "ele fiz". Quem tenta normalizar texto sem listar essas formas manualmente acaba gerando stems absurdos como "fiz-" para "fez". A correção exige um mapeador de sinalema com entrada/saída pré-definida para, no mínimo, os cento e cinquenta verbos mais frequentes do português. 2. A concordância de gênero nominal em português tem mais exceções do que regras. Palavras como "fruta", "mensagem", "cidade" são femininas mas não terminam em -a. Existem também os chamados substantivos biformes, onde o gênero é marcado pela palavra definida, não pelo substantivo em si — "o paciente" versus "a paciente". Se seu pipeline de flexão nominal assume que -a = feminino e resto = masculino, ele vai errar em algo em torno de 15% dos casos nominais em textos jornalísticos, segundo meus testes com o corpus do CETA.

Flexão Nominal e Verbal Explicada | PDF | Substantivo | Morfologia ...
Flexão Nominal e Verbal Explicada | PDF | Substantivo | Morfologia ...

Como eu estruturo meu tratamento de flexão hoje

Um fluxo que funciona consistentemente para mim envolve três etapas encadeadas, não uma única função: Primeiro, tokenizei o texto com um tokenizer que respeite contrações e grafias variantes. Segundo, rodo a lematização morfológica usando uma ferramenta baseada em regra + estatística, preferencialmente o Stemmer do NLTK ou o SnowballPT ajustado. Terceiro, aplico um filtro pós-processamento que corrige erros sistemáticos usando um dicionário de exceções. Esse dicionário é o que mais importa — é ele que separa um sistema que funciona de um que parece funcionar nos testes unitários e quebra em produção. Uma vantagem prática que eu descobri depois de muito teste: o tratamento da flexão verbal pode ser feito em duas passadas separadas. Primeiro todas as formas finitas, depois todas as formas nominais do verbo (particípios, gerúndios). Isso evita que a forma finita "comerá" seja erroneamente tratada como partícula nominal em alguma etapa intermediária.

Quando a abordagem falha e o que fazer

A flexão nominal e verbal baseada em stemming puro tem limites claros. Ela não lida bem com homógrafos — "cesta" (substantivo) versus "cesta" (forma verbal de ce star, que é diferente de ce star) — porque o stemmer não tem contexto. Também falha com verbos pronominais e formas enclíticas, onde o pronome oblíquo se funde ao verbo: "dize -lo -lhe" não aparece em textos bem formatados, mas aparece em transcrições e em textos mais informais, e o stemmer convencional simplesmente quebra nessas condições. Se o seu cenário exige precisão alta, o caminho não é melhorar o stemming. É mig rar para um modelo baseado em embeddings ou para um pipeline com parsing sintático. O spaCy com o pipeline pt_core_news_lg, por exemplo, traz léxico e análise morfológica integrada que cobre casos contextuais que um stemmer de regra jamais cobrirá. O custo é maior: aumenta o tempo de processamento de cerca de 2ms por token para algo em torno de 8 a 12ms, mas elimina a maioria dos erros sistemáticos que euListei acima. Em resumo, se você está começando, use stemming com dicionário de exceções e aceite que vai haver erros sistemáticos em verbos irregulares e substantivos biformes. Se precisa de robustez, invista no parsing morfológico com modelo treinado. Não adianta insistir em regex para resolver um problema que é essencialmente lexical e contextual.

Recursos para implementar

Para quem quer aplicar flexão nominal e verbal em Python, os recursos mais úteis que eu uso atualmente são: - NLTK com PortugueseStemmer: gratuito, disponível via pip install nltk. Bom para protótipos rápidos e textos menos variados. -spaCy com modelo pt_core_news_sm ou pt_core_news_lg: também via pip. A versão lg traz embeddings e é significativamente mais precisa para formas irregulares.

PPT - - ESTRUTURA MORFOSINTÁTICA - FLEXÃO NOMINAL E VERBAL - TEMPOS E ...
PPT - - ESTRUTURA MORFOSINTÁTICA - FLEXÃO NOMINAL E VERBAL - TEMPOS E ...

- O repositório com as exceções que eu mantive depois do erro com o -ão está num gist interno que não posso compartilhar publicamente, mas a ideia é a mesma: acumular um arquivo JSON com pares de forma flexionada/lem a, atualizado conforme novos casos aparecem nos seus dados de produção. Esse arquivo costuma crescer para algo entre 300 e 600 entradas num ano de uso real. A parte chata é que esse trabalho de manutenção contínua do dicionário é o que determina se seu sistema de flexão nominal e verbal vai sobreviver ou vai virar dívida técnica. Não existe solução automática completa hoje em dia. Quem diz que existe geralmente está vendendo algo ou ainda não rodou em dados reais.