Detecte idioma em textos multilíngues
Por que detectar idioma automaticamente é útil
Cenários reais:
- Chatbot multilíngue: usuário escreve "Hola, como estoy?" → detecta espanhol → responde em espanhol (em vez de português que seria default)
- Content feed global: agregador de notícias precisa agrupar artigos por idioma antes de traduzir
- Suporte: ticket em japonês precisa ir pra time de Japão, não de Brasil
- Moderação: regras de conteúdo sensível variam por região/idioma
- Analytics: medir diversidade linguística da sua audiência
O modelo fastText language identification, open source do Facebook, detecta 176 idiomas em menos de 10ms por texto.

Como o modelo distingue idiomas
fastText representa cada palavra como n-grams de caracteres (subwords). Depois soma esses vetores e classifica com regressão softmax. Por que funciona:
- Português tem "ção", "nh", "lh" características
- Inglês tem "th", "ing", "ed" características
- Alemão tem "sch", "ch", "äöü"
- Mandarim escrito em pinyin tem padrões totalmente diferentes de hanzi
O modelo olha a assinatura estatística dos n-grams e decide. Textos curtos (<3 palavras) são ambíguos; textos com 20+ palavras têm precisão > 99%.
Casos difíceis e como lidar
- Code-switching: texto que mistura 2 idiomas ("Hello, tudo bem?") — modelo retorna idioma dominante + score reduzido
- Idiomas próximos: português vs espanhol vs catalão — fastText acerta 90%+ mas borderlines existem
- Transliteração: chinês escrito em pinyin, árabe em letras latinas — modelo detecta como "inglês" falsamente
- Textos muito curtos: "OK" poderia ser qualquer idioma — sempre retorna com score baixo, você deve usar threshold
- Código de programação: texto de código fonte é detectado como "inglês" — filtrar antes se for o caso
Threshold recomendado: só aceite detecção com confidence > 0.75. Abaixo disso, marcar como "unknown" e pedir humano.

Integrando na sua stack
Exemplo Python típico:
`python
import httpx
r = httpx.post(
"https://api.brainiall.com/api/nlp/language",
json={"text": "Hola, ¿cómo estás hoy?"},
headers={"Authorization": "Bearer brnl-xxx"}
)
# {"language": "es", "confidence": 0.96, "top_3": [
# {"lang": "es", "conf": 0.96},
# {"lang": "pt", "conf": 0.02},
# {"lang": "ca", "conf": 0.01}
# ]}`
Use top_3 quando quer mostrar alternativas para casos de baixa confiança (ex: "Parece ser espanhol, mas pode ser catalão — confirme").
Casos de uso avançados
- Pre-processamento de NLP: antes de sentiment analysis, detectar idioma + rotear para modelo certo
- Filtering: remover textos fora do idioma target em datasets grandes
- Traffic routing: balance load entre clusters multilíngues
- Segmentação: dividir documentos longos por idioma quando misturados
- Pesquisa: permitir usuário buscar "me mostre só conteúdo em português desta plataforma"
Teste agora mesmo
Peça "detecte o idioma deste texto: [cole]" no chat Brainiall. API em /api/nlp/language. Latência típica < 10ms — apropriado para uso em real-time. Pro R$29 tem uso generoso; Business inclui batch API.