Data Discovery

Exploração inicial e primeira impressão dos dados brutos

Author

Marlon L.

Published

May 7, 2026

Data Discovery

Toda pipeline de dados começa com a investigação do arquivo bruto antes de qualquer transformação. Este documento registra o processo de descoberta — desde a primeira impressão até a catalogação sistemática de padrões, anomalias e edge cases que orientarão as etapas seguintes.

Discovery

Antes de qualquer processamento, precisamos entender o que temos em mãos. O primeiro passo é abrir o arquivo bruto e navegar pelo conteúdo — observar padrões visuais, testar hipóteses, identificar anomalias. É uma fase exploratória e livre, onde as primeiras impressões orientam a investigação posterior.

Para começar, vamos extrair os metadados básicos do arquivo: tamanho, número de linhas, densidade de caracteres. Essas métricas fornecem uma noção inicial da escala do desafio.

📊 Métrica Valor
📄 Arquivo /Users/mosx/Desktop/whatsapp-interaction-analysis/data/raw/export_2024-10_2025-10/raw-data.txt
💾 Tamanho 5.04 MB (5,284,569 bytes)
📝 Total de linhas 97,333
⚪ Linhas vazias 1,156
✅ Linhas não vazias 96,177
🔤 Total de caracteres 4,846,244
📏 Média chars/linha 49.8
📊 Métrica Valor
🔤 Caracteres totais 4,846,244
📊 Média chars/linha 49.79
📊 Mediana chars/linha 45.00
📊 Moda chars/linha 45
⬇️ Linha mais curta 1 caracteres
⬆️ Linha mais longa 1103 caracteres
💾 Média bytes/linha 54.29
💾 Mediana bytes/linha 51.00
💾 Moda bytes/linha 49

Overview dos dados

Após importar a fonte de dados para a pipeline e extrair os metadados, vamos examinar o conteúdo para entender a natureza dos dados que estamos lidando. O formato segue uma estrutura semi-estruturada aparentemente simples: [DD/MM/YY, HH:MM:SS] Remetente: Mensagem.

Dados brutos exportados do WhatsApp — histórico de ~1 ano visualizado no Positron.

À primeira vista a estrutura parece regular, mas a tabela de amostras abaixo revela outros padrões que aumentam a complexidade do parsing.

NoteAmostras do arquivo raw-data.txt
Posição Linha Conteúdo
0% 1 [19/10/24, 13:52:51] Marlon: Le?
0% 2 [19/10/24, 13:53:25] Lê 🖤: https://www.localiza.com/brasil/pt-br/reservas/passo-2
0% 3 ‎[19/10/24, 13:53:25] Marlon: ‎image omitted
... ... .........
25% 24334 [25/02/25, 15:14:40] Lê 🖤: AFFFFF
25% 24335 [25/02/25, 15:14:53] Marlon: .
25% 24336 [25/02/25, 15:14:58] Marlon: Kkkkkkk
... ... .........
50% 48667 [27/06/25, 17:38:25] Marlon: Sim, conheço o termo “folgado” — no Brasil, usamos para descrever alguém que se aproveita da boa vontade alheia, é abusado, sem noção, ou até preguiçoso, dependendo do contexto.
50% 48668
50% 48669 Não há uma tradução literal exata para folgado em inglês, mas há equivalentes por contexto, como:
... ... .........
75% 73000 ‎[26/06/25, 23:57:34] Lê 🖤: ‎video note omitted
75% 73001 [26/06/25, 23:57:45] Lê 🖤: eu tbm te amo mto
75% 73002 ‎[27/06/25, 00:00:05] Marlon: ‎video note omitted
... ... .........
100% 97331 [20/10/25, 15:24:04] Marlon: Meu core eh seu meu amor
100% 97332 [20/10/25, 15:25:10] Marlon: Sou seu
100% 97333 ‎[20/10/25, 15:25:49] Marlon: ‎< 00007310-audio-2025-10-20-15-25-50.opus>

Linhas distribuídas por quartis (0%, 25%, 50%, 75%, 100%) para visualizar padrões ao longo do documento.

Caution💡 Insights Iniciais

Volume e Complexidade

  • ~97K linhas, mas apenas ~70K mensagens reais (estimativa: 1,4 linhas/mensagem)
  • Metadados (timestamps, nomes) e linhas vazias (1,2%) ocupam espaço considerável
  • Para contexto: SMS Spam Collection (referência em NLP) tem apenas 5,6K mensagens — este dataset é 12x maior

Densidade e Variação

  • Média de 50 chars/linha, típico de mensagens de chat
  • Alta variação: 1 a 1.103 caracteres (moda em 45)
  • Diferença entre mediana (45) e média (50) indica outliers (mensagens muito longas)
  • Importante: boa parte dos caracteres são metadados, não conteúdo de mensagem

Implicações para o Pipeline

  • ✅ Arquivo de 5MB é leve — processamento em memória viável
  • ⚠️ Transcrição de áudios/vídeos pode expandir o dataset significativamente
  • 🔧 Necessário separar metadados (timestamp, remetente) do conteúdo real
  • 🔧 Parsing deve lidar com mensagens multilinha (detectadas nas amostras)
  • 🔧 Caracteres especiais (emoji no nome “Lê 🖤”) exigem encoding UTF-8

Padrões Observados nas Amostras

  • Mensagens omitidas: image omitted, video note omitted
  • Mídias anexadas: <arquivo.opus>
  • Mensagens multilinha (ex: linha 48667-48669)
  • Linhas vazias entre mensagens
  • URLs compartilhadas

Próximos Passos

Com a exploração inicial completa e primeiras hipóteses levantadas sobre a estrutura dos dados, seguimos para a catalogação sistemática:

  1. Data Profiling — Catalogação sistemática de todos os padrões identificados