Como extrair e normalizar endereços com o Copilot no Fabric
Este tutorial mostra como usar o Copilot no Fabric para extrair e normalizar endereços a partir de texto livre — útil para transformar dados de contactos ou registos em colunas estruturadas (rua, número, código postal, cidade, país) prontas para análise e geocodificação.
Pré-requisitos
- Conta com acesso ao Microsoft Fabric e permissões para usar o Copilot no workspace.
- Uma tabela ou ficheiro com uma coluna de texto que contenha endereços mistos (ex.: CSV no OneLake ou tabela no Warehouse).
- Noções básicas de SQL ou Dataflow Gen2 (opcional para enquadramento).
Passo 1: Preparar a fonte de dados
Abra o ficheiro ou tabela que contém a coluna de texto com os endereços. É importante ter uma amostra representativa (50–500 linhas) para o Copilot aprender o padrão. Se estiver num CSV no OneLake, carregue-o para um Dataset no Workspace.
Passo 2: Iniciar o Copilot no contexto do ficheiro/tabela
No ficheiro de dados (pode ser Dataset, Dataflow Gen2 ou tabela no Warehouse), abra o painel do Copilot. Explique claramente ao Copilot o objectivo: extrair campos de endereço e normalizar o formato. Um prompt claro reduz erros comuns.
Passo 3: Prompt inicial para extração
Peça ao Copilot para identificar e extrair os componentes básicos. Use exemplos no prompt (3–5 linhas) para mostrar variações. Exemplo de prompt mínimo:
Tenho uma coluna "raw_address" com texto livre. Para cada linha, crie colunas: street, number, postal_code, city, country. Aqui vão exemplos:
"Rua da Liberdade 23, 1200-456 Lisboa, Portugal" -> street: Rua da Liberdade; number: 23; postal_code: 1200-456; city: Lisboa; country: Portugal
"Av. da República, 45, 4000 Porto" -> street: Av. da República; number: 45; postal_code: 4000; city: Porto; country: Portugal
Gere uma transformação que produza as colunas pedidas e trate casos sem número ou sem país.
Passo 4: Rever e adaptar a transformação sugerida
O Copilot normalmente sugere código ou passos (por exemplo, transformação em Dataflow Gen2 ou SQL no Warehouse). Revise se usa regex adequadas e cobre variações (abreviaturas: Av., R., nº). Peça ao Copilot para adicionar regras para abreviaturas e para preencher campos vazios com NULL ou valores por defeito.
Passo 5: Implementar a transformação (exemplo SQL no Warehouse)
Se escolher gerar SQL, o Copilot poderá sugerir algo como o exemplo mínimo abaixo. Insira e execute no Query Editor do Warehouse ou numa view.
SELECT
raw_address,
-- extrai número no fim ou após vírgula
NULLIF(REGEXP_EXTRACT(raw_address, '\\b(\\d{1,5})(?:[ -]?[A-Z0-9]+)?\\b'), '') AS number,
-- extrai código postal português (ex.: 1200-456 ou 4000)
NULLIF(REGEXP_EXTRACT(raw_address, '(\\d{4}-\\d{3}|\\d{4})'), '') AS postal_code,
-- tenta extrair cidade antes da vírgula ou após postal code
NULLIF(TRIM(REGEXP_EXTRACT(raw_address, '(?:\\d{4}-\\d{3}|\\d{4})[, ]*([^,]+)')), '') AS city,
-- detecta país por palavra-chave comum; pode ser NULL
CASE WHEN raw_address LIKE '%Portugal%' THEN 'Portugal' ELSE NULL END AS country,
-- street: remove número, postal e cidade para isolar rua
TRIM(REGEXP_REPLACE(raw_address, '(\\d{4}-\\d{3}|\\d{4})|\\b(Portugal|Portugal)\\b|,?\\s*[^,]+$', '')) AS street
FROM my_dataset.my_table;
Passo 6: Tratar exceções e iterar com o Copilot
Execute uma query numa amostra e analise erros comuns: falhas em abreviaturas, números atípicos, múltiplas moradas numa linha. Peça ao Copilot para gerar regex alternativos ou criar uma coluna com uma etiqueta de qualidade (ok / review) para linhas que não respeitam padrões. Exemplos de prompt: "Marcar como review se não encontrar postal_code ou number".
Verificar o resultado
Confirme que as colunas street, number, postal_code, city e country estão preenchidas correctamente numa amostra representativa. Procure linhas com valores NULL inesperados e verifique a coluna de qualidade (se criada). Teste também com formatos diferentes (abreviaturas, sem código postal, endereços estrangeiros).
Conclusão
Depois de extrair e normalizar endereços com o Copilot no Fabric, pode usar os dados para deduplicação, geocodificação ou análises de localização. Próximos passos: criar regras automáticas para marcar e enviar linhas em review para revisão humana, ou integrar um serviço de geocodificação. Dica: mantenha prompts com exemplos reais do seu dataset para reduzir erros.