Detetar idioma
A API de deteção de linguagem do Azure AI avalia a entrada de texto e, para cada documento enviado, retorna identificadores de idioma com uma pontuação indicando a força da análise.
Esta funcionalidade é útil para arquivos de conteúdo que recolhem texto arbitrário quando o idioma é desconhecido. Outro cenário poderia envolver um bot de chat. Se um usuário iniciar uma sessão com o bot de chat, a deteçã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.
Pode analisar os resultados desta análise para determinar o idioma que é utilizado 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 deteção de idioma pode funcionar com documentos ou frases únicas. É importante notar que o tamanho do documento deve ser inferior a 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 uma ID exclusiva 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, sendo os valores mais próximos de 1 um nível de confiança mais elevado. Aqui está um exemplo de uma resposta JSON padrão que mapeia para a solicitação JSON 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"
}
}
Na nossa amostra, todas as línguas mostram uma confiança de 1, principalmente porque o texto é relativamente simples e fácil de identificar a língua.
Se passar um documento com conteúdo multilingue, o serviço terá um comportamento um pouco diferente. O conteúdo de idioma misto dentro do mesmo documento devolve o idioma com maior presença no conteúdo, mas com uma classificação positiva inferior, o que reflete o nível de confiança marginal dessa avaliação. No exemplo a seguir, a entrada é uma mistura de inglês, espanhol e francês. O analisador utiliza a análise estatística do texto para determinar a linguagem 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 multilíngüe.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
A última condição a considerar é quando há ambiguidade quanto ao conteúdo da língua. O cenário pode acontecer se você enviar conteúdo textual que o analisador não é capaz de 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 como seria a resposta.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}