(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como extrair insights de texto no Copilot do Fabric: passo a passo

João Barros 29 de July de 2026 6 min de leitura

Este tutorial mostra como usar o Copilot no Fabric para extrair entidades (nomes, locais, organizações) e sentimento de um conjunto de comentários e, em seguida, gerar um resumo accionável. Saber automatizar esta tarefa acelera análises qualitativas e cria sinais para relatórios em Power BI ou processos ETL. Vamos trabalhar com um exemplo realista: um conjunto de 500–5.000 comentários de clientes para identificar problemas recorrentes e medir a percentagem de feedback negativo para priorização.

Pré-requisitos

  • Conta com acesso ao Microsoft Fabric e ao Copilot ativado. Verifique que o seu tenant tem quotas suficientes para chamadas a serviços (se usar Azure OpenAI).
  • Lista de comentários em OneLake ou num ficheiro CSV acessível no Workspace. Idealmente um ficheiro entre 1 MB e 50 MB para testes; >100k linhas poderá exigir amostragem.
  • Permissões para criar Notebooks ou Dataflows Gen2 no Workspace e permissões de leitura/escrita no caminho do OneLake que usar.

Passo 1: Preparar os dados de texto no Workspace

Coloque um ficheiro CSV simples com uma coluna id e uma coluna comment no OneLake dentro do seu Workspace, por exemplo em /Shared/textos/comentarios.csv. Isto facilita ao Copilot aceder ao conteúdo sem passos adicionais de autenticação. Para testes, use um ficheiro pequeno (10–100 linhas) e depois escale para um ficheiro maior (500–5.000 linhas). Exemplo mínimo do ficheiro:

id,comment
1,"Adorei o produto, entrega rápida."
2,"Suporte fraco, demora na resposta."
3,"Ótima qualidade, recomendo à equipa."

Boas práticas: inclua metadados (data, canal, língua) se disponíveis — isso permite análises por período ou fonte. Verifique também encoding UTF-8 para evitar problemas com caracteres especiais.

Passo 2: Abrir um Notebook e invocar o Copilot

Crie um Notebook no seu Workspace (Python) e chame o Copilot. Peça-lhe para ler o CSV e mostrar as primeiras linhas. Isto valida permissão, caminho e formato. Para conjuntos maiores, leia por chunks (ex.: chunksize=1000) e confirme memória disponível no kernel.

# Pergunta ao Copilot: "Lê /Shared/textos/comentarios.csv e mostra as 5 primeiras linhas em DataFrame pandas"
# Código gerado pelo Copilot (exemplo mínimo):
import pandas as pd
df = pd.read_csv('/Workspace/Shared/textos/comentarios.csv')
df.head()

Dica: se o ficheiro tiver 10.000 linhas e o notebook ficar lento, carregue apenas uma amostra para desenvolvimento: df = pd.read_csv(path, nrows=500).

Passo 3: Pedir ao Copilot para extrair entidades e sentimento

Explique ao Copilot que quer duas colunas novas: entities (lista) e sentiment (positivo/negativo/neutro). Peça um exemplo de abordagem com bibliotecas Python padrão disponíveis no Notebook (por exemplo, spaCy ou Azure OpenAI se estiver configurado). Se não tiver modelos locais, solicite um prompt que use um serviço de linguagem disponível no seu tenant.

# Exemplo de função simples usando spaCy (se disponível no ambiente):
import spacy
nlp = spacy.load('en_core_web_sm')  # ou o modelo necessário

def extract_entities(text):
    doc = nlp(text)
    return [(ent.text, ent.label_) for ent in doc.ents]

# Sentiment simples com TextBlob (se instalado) ou pedir ao Copilot para usar Azure OpenAI
from textblob import TextBlob

def sentiment_label(text):
    polarity = TextBlob(text).sentiment.polarity
    return 'positivo' if polarity>0.1 else 'negativo' if polarity<-0.1 else 'neutro'

# Aplicar
df['entities'] = df['comment'].apply(extract_entities)
df['sentiment'] = df['comment'].apply(sentiment_label)

Exemplo prático: se em 1.000 comentários 230 forem classificados como 'negativo', esse sinal (23%) pode ser usado para alertar a equipa de suporte. Ajuste thresholds de polaridade (p.ex. >0.15 para positivo) conforme língua e domínio.

Passo 4: Tratar erros comuns ao usar modelos no Notebook

Se o Copilot sugerir bibliotecas não instaladas ou modelos grandes falharem, faça uma dessas ações: instalar pacotes no ambiente do Notebook, pedir ao Copilot uma versão alternativa que use chamadas a um serviço (Azure OpenAI) ou usar uma lógica heurística simples (palavras-chave) até conseguir o modelo. Exemplos de mensagens de erro comuns: "Model not found" ao carregar spacy, "Permission denied" para OneLake, ou "Rate limit exceeded" nas chamadas a Azure OpenAI.

# Instalar dependências (se o ambiente permitir):
!pip install spacy textblob
!python -m textblob.download_corpora

Se não puder instalar pacotes, peça ao Copilot para gerar uma função simples baseada em regras: procurar palavras como "erro", "mau", "adoro" para inferir sentimento como fallback. Documente qualquer fallback para posterior revisão.

Passo 5: Gerar um resumo accionável com o Copilot

Com as colunas entities e sentiment, peça ao Copilot para produzir um resumo em linguagem natural com insights: principais entidades mencionadas, percentagem de comentários negativos, tópicos recorrentes e recomendações concretas (p.ex. "investigar tickets do produto X, priorizar melhoria de onboarding"). O Copilot pode gerar um bloco de código que calcula agregações e gera texto em formato de resumo para stakeholders.

# Exemplo de agregação e resumo
entities_flat = [ent[0] for sub in df['entities'] for ent in sub]
from collections import Counter
top_entities = Counter(entities_flat).most_common(5)

sent_counts = df['sentiment'].value_counts(normalize=True).to_dict()

summary = f"Top entidades: {top_entities}. Sentimentos: {sent_counts}. A recomendação inicial é investigar suporte para reduzir comentários negativos."
print(summary)

Inclua métricas: número total de comentários analisados, percentagens por sentimento e um top 3 de entidades com contagens. Por exemplo: "Analisados 1.250 comentários — 18% negativos, 62% neutros, 20% positivos. Top entidades: Produto A (120 menções), Entrega (98), Suporte (85)."

Verificar o resultado

Confirme que o DataFrame tem as colunas entities e sentiment e que o resumo textual faz sentido. Verifique amostras manuais: 10 comentários com entidades e sentimento, e compare com expectativas. Se usar Azure OpenAI, confirme que as chamadas foram autorizadas, que os tokens não foram truncados e que o custo estimado para a execução em produção está dentro do orçamento (p.ex. 0.5–2 USD por 1k requisições, conforme plano).

Registe métricas simples como % negativo para validar sinal e crie uma pequena matriz de validação (p.ex. 100 comentários marcados manualmente para medir precisão/recall do modelo/fallback).

Conclusão

Usar o Copilot no Fabric para extrair entidades e sentimento transforma texto livre em sinais estruturados prontos para relatórios e automações. Próximos passos: integrar este Notebook num Dataflow Gen2 para automatizar a ingestão, ou criar um relatório em Power BI ligado ao OneLake. Comece com um subset de dados, valide manualmente e depois escale — assim reduz-se o risco de falsos positivos e custos desnecessários. Pequenas iterações (ex.: validar 200 comentários por sprint) ajudam a calibrar thresholds e a melhorar modelos antes da produção.