Para detetar o idioma do cliente sem confundir nomes e moradas, o princípio é simples: separe o texto livre dos campos estruturados. A deteção automática de idioma só deve correr sobre as frases que o próprio cliente escreveu, nunca sobre nomes próprios, moradas, números de telefone ou documentos de identificação. O erro típico nos assistentes virtuais em Portugal não é classificar “francês” em vez de “português”; é responder no idioma errado porque o sistema tratou uma morada ou um nome como se fossem língua. A documentação técnica do serviço de deteção de idioma do Azure explica a origem do problema: o serviço devolve sempre uma pontuação de confiança entre 0 e 1 para cada texto analisado, e essa pontuação é o único sinal de que a classificação merece confiança (Microsoft Learn). Ignorar essa pontuação é a causa mais comum de respostas disparatadas.
Porque o detetor de idioma erra
Os detetores automáticos foram treinados para texto corrido, não para formulários. Uma mensagem de marcação como “João Ferreira, Rua de Santa Catarina 132, Porto, queria mudar a hora” mistura nome, morada e pedido numa única frase. O apelido “Ferreira” existe em português e em espanhol; “Santa Catarina” também. O classificador devolve um idioma, mas a margem é duvidosa. Segundo a documentação do Azure Language, o conteúdo ambíguo baixa as pontuações de confiança, e existe um caso-limite ainda mais frequente no atendimento: uma mensagem constituída apenas por números devolve (Unknown), porque o analisador não tem língua nenhuma para classificar (Microsoft Learn). Um número de telefone, um NIF ou um código postal enviados sozinhos não dizem ao sistema em que língua deve responder.
O erro de idioma é percebido pelo cliente como descuido, não como falha técnica. Quando o assistente responde em inglês a alguém que escreveu em português, o passo seguinte costuma ser um pedido de pessoa humana — uma transição que convém desenhar bem, como se explica no artigo sobre como o assistente virtual deve admitir que não sabe.
Nomes e moradas não são idioma
Na prática, cada tipo de conteúdo que chega numa conversa merece um tratamento diferente:
| O que o cliente envia | Risco na deteção | Ação recomendada |
|---|---|---|
| Nome próprio ou apelido (“Ferreira”, “Silva”) | Existe em português e em espanhol; confiança baixa | Não classificar; manter o idioma do histórico do contacto |
| Morada com números | Mistura palavras e algarismos | Guardar como campo estruturado, sem deteção de idioma |
| Telefone, NIF ou código postal sozinhos | Sem texto classificável | Validar o formato; nunca decidir idioma a partir daqui |
| Frase completa escrita pelo cliente | Deteção fiável na generalidade dos casos | Detetar e confirmar quando a confiança for baixa |
Há também uma razão legal para não usar nomes e moradas como material de classificação. O Regulamento Geral de Proteção de Dados assenta no princípio de que as pessoas devem ter controlo sobre os seus dados pessoais; cada campo enviado a um serviço externo de deteção é um tratamento adicional que tem de estar previsto na base jurídica declarada e na política de privacidade (EUR-Lex). Enviar para análise só a frase necessária, e não a ficha inteira do cliente, reduz o risco de tratamento excessivo. Se o problema já aconteceu e o cliente se sentiu mal atendido, o percurso adequado é o descrito no artigo sobre reclamações: 5 etapas do assistente virtual à pessoa.
Confirmar em vez de adivinhar
Em Portugal, o caso mais frequente não é português contra inglês, mas português europeu contra português do Brasil. Nas mensagens de modelo da Cloud API do WhatsApp, os códigos de idioma que distinguem pt_PT de pt_BR existem como entradas separadas, o que obriga a uma escolha explícita: responder com a variante errada produz textos com “você” e “agendamento” que soam estranhos a um cliente de Lisboa ou do Porto (Meta para Programadores). O procedimento recomendado tem cinco passos:
- Classifique a entrada: campo estruturado (nome, morada, número) ou texto livre (a frase do cliente). Só o segundo vai para deteção.
- Detete o idioma apenas na frase escrita pelo cliente, ignorando o que veio de formulários ou de fichas anteriores.
- Defina um limiar de confiança por baixo do qual o assistente pergunta “Prefere continuar em português?” em vez de trocar de idioma sozinho.
- Guarde a preferência de idioma por contacto, mas por escolha declarada pelo cliente, nunca inferida do nome próprio ou da morada.
- Registe as conversas em que a confirmação falhou e reveja-as ao fim de duas semanas para afinar o limiar.
Checklist antes de ativar
- A deteção está desativada para nomes, moradas, telefones e números de documento?
- Existe um limiar de confiança definido e uma pergunta de confirmação para o caso duvidoso?
- A mensagem de confirmação existe nas variantes pt_PT e pt_PT apenas, ou cobre também inglês e espanhol quando faz sentido para o negócio?
- A política de privacidade menciona o envio de texto a um serviço de deteção de idioma?
- A preferência de idioma é registada por escolha do cliente e não por inferência do nome?
- Alguém da equipa revisa mensalmente as respostas dadas no idioma errado?
Detetar bem o idioma é menos uma questão de inteligência do modelo e mais uma questão de higiene do fluxo: quanto menos dados pessoais entrarem no classificador, menos erros de idioma e menos exposição de dados. Comece por cortar nomes e moradas do texto analisado e o resto do sistema fica mais simples de afinar.