Detectar idioma
A API de detecção de linguagem de IA do Azure avalia a entrada de texto e, para cada documento enviado, retorna identificadores de idioma com uma pontuação que indica a força da análise.
Essa funcionalidade é útil para repositórios de conteúdo que coletam texto arbitrário, em que o idioma é desconhecido. Outro cenário pode envolver um chat bot. Se um usuário iniciar uma sessão com o chat bot, a detecção de idioma poderá ser usada para determinar qual idioma ele está usando e permitir que você configure as respostas do bot no idioma apropriado.
Você pode analisar os resultados dessa análise para determinar qual idioma é usado no documento de entrada. A resposta também retorna uma pontuação, que reflete a confiança do modelo (um valor entre 0 e 1).
A detecção de idioma pode funcionar com documentos ou frases simples. É importante observar que o tamanho do documento deve ter menos de 5.120 caracteres. O limite de tamanho é por documento e cada coleção é restrita a 1.000 itens (IDs). Uma amostra de uma carga JSON formatada corretamente que você pode enviar ao serviço no corpo da solicitação é mostrada aqui, incluindo uma coleção de documentos , cada um contendo um ID único e o texto a ser analisado. Opcionalmente, você pode fornecer uma dica de país () para melhorar o desempenho da previsão.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id": "1",
"text": "Hello world",
"countryHint": "US"
},
{
"id": "2",
"text": "Bonjour tout le monde"
}
]
}
}
O serviço retornará uma resposta JSON que contém um resultado para cada documento no corpo da solicitação, incluindo o idioma previsto e um valor que indica o nível de confiança da previsão. O nível de confiança é um valor que varia de 0 a 1, com valores mais próximos de 1 sendo um nível de confiança mais alto. Aqui está um exemplo de uma resposta JSON padrão que mapeia para o JSON de solicitação acima.
{ "kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "en",
"name": "English"
},
"id": "1",
"warnings": []
},
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "fr",
"name": "French"
},
"id": "2",
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
Em nosso exemplo, todos os idiomas mostram uma confiança de 1, principalmente porque o texto é relativamente simples e fácil de identificar o idioma.
Se você passar um documento com conteúdo multilíngue, o serviço se comportará um pouco diferente. O conteúdo de idioma misto no mesmo documento retorna o idioma com a maior representação no conteúdo, mas com uma classificação positiva mais baixa, refletindo a força marginal dessa avaliação. No exemplo a seguir, a entrada é uma mistura de inglês, espanhol e francês. O analisador usa a análise estatística do texto para determinar o idioma predominante.
{
"documents": [
{
"id": "1",
"text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
}
]
}
O exemplo a seguir mostra uma resposta para este exemplo de vários idiomas.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
A última condição a ser considerada é quando há ambiguidade quanto ao conteúdo da linguagem. O cenário poderá acontecer se você enviar conteúdo textual que o analisador não conseguir analisar, por exemplo, devido a problemas de codificação de caracteres ao converter o texto em uma variável de cadeia de caracteres. Como resultado, a resposta para o nome do idioma e o código ISO indicará (desconhecido) e o valor da pontuação será retornado como 0
. O exemplo a seguir mostra a aparência da resposta.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}