Pipeline NLP completo para atendimento ao cliente em e-commerce brasileiro
Mensagem do Cliente
│
▼
┌─────────────────────────┐
│ Pré-processamento │ Tokenização, stemming RSLP, remoção de ruído
│ Configurável │ (URLs, emails, números), normalização de acentos
└────────────┬────────────┘
│
┌─────▼──────┐
│ Classificar │ Logistic Regression + TF-IDF
│ Intenção │ 8 classes: saudação, rastreamento, devolução, pagamento,
└─────┬───────┘ frete, reclamação, despedida, outros
│
┌─────▼──────────┐
│ Confiança │ threshold < 0.6 → escala para humano
│ Calibrada │ reclamação → sempre escala (regra de negócio)
└─────┬──────────┘
│
┌─────▼──────────────┐
│ Extrair Entidades │ Regex + validação: pedidos (PED/ORD-XXXXXX),
│ │ valores (R$), datas, emails, telefones (DDD)
└─────┬──────────────┘
│
┌─────▼────────────────────┐
│ Roteamento por Intenção │
│ ┌────────────────────┐ │
│ │ FAQ Multi-nível │ │ TF-IDF (≥0.7) → Bigramas (≥0.3) → Sugestões top-3
│ │ Handlers │ │ Saudação, despedida, rastreamento com mock
│ │ Fallback │ │ Quando nenhum módulo resolve
│ └────────────────────┘ │
└──────────┬───────────────┘
│
┌─────▼──────┐
│ Resposta │ + Análise de sentimento (BERT) + Analytics
└────────────┘
Pipeline de limpeza textual com parâmetros flexíveis:
- Tokenização com NLTK
- Stemming RSLP para português
- Remoção de URLs/emails/números
- Normalização de acentos (
unicodedata) - Filtragem por tamanho mínimo de token
Cada etapa é ativável via parâmetro booleano.
Motor de busca semântica com fallback em cascata:
| Nível | Método | Threshold | Descrição |
|---|---|---|---|
| 1 | Similaridade Cosseno (TF-IDF) | ≥ 0.7 | Matching semântico direto |
| 2 | Sobreposição de Bigramas | ≥ 0.3 | Matching estrutural |
| 3 | Sugestões Top-3 | - | Retorna perguntas mais similares |
- Modelo: Logistic Regression multinomial + vetores TF-IDF (bigrams, 500 features)
- Threshold de confiança: 0.6 para escalação automática
- Regra de negócio: Reclamações sempre escalam para atendente humano, independente da confiança
Dupla verificação: extração via regex + validação por regras de negócio
| Entidade | Formato | Validação |
|---|---|---|
| Pedidos | PED/ORD + 6-10 dígitos | Formato alfanumérico |
| Valores | R$ | Range R$ 0–10.000 |
| Datas | ISO | Range 2020–2030 |
| Emails | Padrão | Formato básico |
| Telefones | DDD + número | DDD brasileiro |
Pipeline central que integra todos os módulos com separação rigorosa de responsabilidades:
- Campo
intencaoreflete exatamente a saída do classificador (sem contaminação do roteador) - Métricas precisas e auditoria de decisões
- Logging estruturado em padrão de produção
- Modelo principal: BERT multilingual (
nlptown/bert-base-multilingual-uncased-sentiment) - Fallback: Análise léxica quando BERT não está disponível
Chat interativo com dashboard de analytics em tempo real.
FAQ e intenções construídos para e-commerce brasileiro:
- 8 categorias de intenção: saudação, rastreamento, devolução, pagamento, frete, reclamação, despedida, outros
- 40 exemplos por categoria
- 320 exemplos no total
| Categoria | Tecnologias |
|---|---|
| NLP | NLTK (tokenize, stopwords, RSLP stemmer, bigrams) |
| ML | scikit-learn (TF-IDF, Logistic Regression, cosine_similarity) |
| Deep Learning | Transformers / BERT (análise de sentimento) |
| Interface | Gradio |
| Ambiente | Google Colab (GPU opcional para BERT) |
📌 Nota: Este projeto implementa a abordagem clássica de NLP (TF-IDF, classificação supervisionada, regex para NER, roteamento por regras) — a arquitetura padrão de chatbots pré-LLM. O objetivo é demonstrar domínio dos fundamentos que sustentam as soluções modernas baseadas em LLMs.
pip install -r requirements.txtAbra ecommerce_chatbot_nlp.ipynb no Google Colab ou Jupyter e execute todas as células sequencialmente.
A interface Gradio será iniciada automaticamente na última seção.
Chatbot_NLP/
├── 📓 ecommerce_chatbot_nlp.ipynb # Notebook principal com todo o pipeline
├── 📖 README.md # Documentação do projeto
└── 📦 requirements.txt # Dependências Python