Pular para conteúdo

REMOVE_NUMBERS - Remoção de Números

O que é esta operação?

A operação REMOVE_NUMBERS remove todos os dígitos numéricos (0-9) do texto, útil para análise de texto puro sem valores quantitativos.

Por que esta operação existe?

Números podem ser ruído em análise linguística. Esta operação existe para:

  1. Análise Textual Pura: Focar apenas em palavras removendo quantidades
  2. Anonimização: Remover valores que possam identificar pessoas (idades, documentos)
  3. Normalização para NLP: Preparar texto removendo variações numéricas
  4. Classificação de Texto: Remover números que não agregam ao sentido semântico

Como funciona internamente?

Código interno (content-cleaner-executor.service.ts:267-273):

// Remove numbers
if (config.removeNumbers === true) {
  const numberRegex = /\d+/g;
  const matches = cleaned.match(numberRegex);
  stats.numbersRemoved = matches ? matches.length : 0;
  cleaned = cleaned.replace(numberRegex, '');
}

Parâmetros

Campo Tipo Obrigatório Descrição
inputVariable string Sim Variável contendo o texto
removeNumbers boolean Não Remove números (padrão: false)
outputVariable string Não Variável para resultado
returnStats boolean Não Retornar estatísticas

Exemplo: Preparação para Análise de Sentimento

{
  "name": "Remover Números para Análise",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "variable_1",
      "type": "variable",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Review com Números",
        "parameters": {
          "variableName": "review",
          "variableValue": "Comprei 3 produtos, recebi em 5 dias. Nota 10! Preço de R$ 150."
        }
      }
    },
    {
      "id": "cleaner_1",
      "type": "content_cleaner",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Remover Números",
        "parameters": {
          "inputVariable": "review",
          "removeNumbers": true,
          "removeExtraSpaces": true,
          "outputVariable": "text_only",
          "returnStats": true,
          "statsVariable": "stats"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Texto Puro",
        "parameters": {
          "message": "📝 Texto sem números:\n{{text_only}}\n\n🔢 Removidos: {{stats.numbersRemoved}} números"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_1", "target": "cleaner_1" },
    { "source": "cleaner_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Saída:

📝 Texto sem números:
Comprei produtos, recebi em dias. Nota ! Preço de R$ .

🔢 Removidos: 4 números

Boas Práticas

SIM: Análise de sentimento puro, classificação de texto, remoção de dados quantitativos ❌ NÃO: Textos onde números são essenciais (relatórios financeiros, estatísticas)

Dicas

💡 Dica 1: Números decimais são tratados como sequências separadas (12.50 = dois números) 💡 Dica 2: Combine com removeExtraSpaces para evitar espaços duplos 💡 Dica 3: Use antes de tokenização em NLP para focar em palavras

Próximo Node

REMOVE_SPECIAL_CHARS - Remove caracteres especiais → TO_LOWERCASE - Converte para minúsculas