Detetar idioma

Concluído

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"
}