Análise de sentimento no Azure AI Language: passo a passo
Perceber se os comentários dos clientes são positivos ou negativos deixa de ser um trabalho manual e demorado quando usamos a análise de sentimento do Azure AI Language. Com poucas linhas de Python conseguimos classificar qualquer texto como positivo, negativo, neutro ou misto e ainda obter uma pontuação de confiança para cada frase. Vamos construir esse classificador do zero, com um exemplo prático que pode adaptar ao seu negócio.
Pré-requisitos
- Uma subscrição Azure ativa — o serviço tem um escalão gratuito para começar.
- Python 3.8 ou superior instalado na sua máquina.
- Permissões para criar recursos no portal Azure.
- Conforto básico com a linha de comandos e um editor de código.
Passo 1: Criar o recurso Language no portal Azure
Comece por criar o serviço que vai fazer a análise. No portal Azure, clique em Criar um recurso e procure por Language service. Escolha a subscrição, um grupo de recursos, a região mais próxima dos seus utilizadores e o escalão de preço gratuito (F0), perfeito para aprender. Depois de o recurso ficar pronto, abra a secção Keys and Endpoint e copie o endpoint e uma das chaves: são estes dois valores que autenticam o seu código.
Passo 2: Instalar o SDK de Python
Crie uma pasta para o projeto e instale a biblioteca oficial. Um ambiente virtual mantém as dependências isoladas; em Windows, ative-o com o script activate da pasta .venv.
python -m venv .venv
source .venv/bin/activate
pip install azure-ai-textanalytics
Passo 3: Autenticar o cliente
Nunca escreva a chave diretamente no código. Guarde o endpoint e a chave em variáveis de ambiente e leia-os com o módulo os — assim não expõe segredos quando partilha ou publica o projeto.
import os
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["LANGUAGE_ENDPOINT"]
key = os.environ["LANGUAGE_KEY"]
client = TextAnalyticsClient(
endpoint=endpoint,
credential=AzureKeyCredential(key),
)
Passo 4: Analisar o sentimento de um texto
O método analyze_sentiment recebe uma lista de documentos e devolve, para cada um, o sentimento geral e a confiança em cada classe. Como exemplo usamos dois comentários reais em português — o serviço deteta o idioma automaticamente.
documents = [
"O atendimento foi excelente e a entrega chegou antes do previsto.",
"O produto veio partido e ninguém respondeu ao meu email.",
]
response = client.analyze_sentiment(documents=documents)
for doc in response:
print("Sentimento:", doc.sentiment)
print("Confiança:", doc.confidence_scores)
Cada doc.sentiment será positive, negative, neutral ou mixed. Já confidence_scores traz três valores entre 0 e 1 — positivo, neutro e negativo — que somam 1.
Passo 5: Descer ao nível da frase
Muitas vezes um comentário mistura elogios e críticas. O resultado inclui uma lista sentences, que permite ver o sentimento frase a frase e perceber exatamente onde está o problema.
for doc in response:
print("Documento:", doc.sentiment)
for sentence in doc.sentences:
print(" -", sentence.sentiment, "->", sentence.text)
Dica: ative show_opinion_mining=True na chamada para associar cada opinião ao alvo a que se refere (por exemplo, "entrega" ou "atendimento").
Verificar o resultado
Guarde o ficheiro como sentimento.py e execute-o com python sentimento.py. A primeira frase deve devolver positive com confiança alta e a segunda negative. Se receber um erro 401, confirme a chave e o endpoint; se for um 404, verifique se copiou o endpoint completo. Troque depois os textos por comentários reais do seu negócio para confirmar que a classificação faz sentido.
Conclusão
Em cinco passos ligou o Python ao Azure AI Language e transformou texto livre em sentimento medível — uma base sólida para dashboards de satisfação ou alertas automáticos de clientes insatisfeitos. A partir daqui pode explorar a extração de frases-chave, o reconhecimento de entidades ou processar centenas de comentários de uma só vez. Qual será a primeira fonte de texto que vai analisar: emails, reviews ou redes sociais?