Como usar a detecção de idioma

O recurso Detecção de Idioma pode avaliar textos e retornar um identificador de idioma que indica o idioma em que um documento foi escrito.

A detecção de idioma é útil para armazenamentos de conteúdo que coletam texto arbitrário em que o idioma é desconhecido. 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 entre 0 e 1 que reflete a confiança do modelo.

O recurso Detecção de Idioma pode detectar uma ampla variedade de idiomas, variantes, dialetos e alguns idiomas regionais ou culturais.

Opções de desenvolvimento

Para usar a detecção de idioma, envie um texto não estruturado bruto para análise e processe a saída da API no aplicativo. A análise é realizada no estado em que se encontra, sem nenhuma personalização adicional para o modelo usado em seus dados. Há três maneiras de usar a detecção de idioma:

Opção de desenvolvimento Descrição
Language Studio O Language Studio é uma plataforma baseada na Web que permite que você experimente a vinculação de entidade com exemplos de texto sem uma conta do Azure, e seus próprios dados quando você se inscreve. Para obter mais informações, confira o site do Language Studio ou o início rápido do Language Studio.
API REST ou biblioteca de clientes (SDK do Azure) Integre a detecção de idioma aos seus aplicativos usando a API REST ou a biblioteca de clientes disponível em uma variedade de linguagens. Para saber mais, confira o guia de início rápido da detecção de idioma.
Contêiner do Docker Use o contêiner do Docker disponível para implantar esse recurso local. Esses contêineres do Docker permitem que você aproxime o serviço dos seus dados para fins de conformidade, segurança ou outras razões operacionais.

Determinar como processar os dados (opcional)

Especificar o modelo de detecção de idioma

Por padrão, a detecção de idioma usará o modelo de IA mais recente disponível em seu texto. Você também pode configurar suas solicitações de API para usar uma versão de modelo específica.

Idiomas de entrada

Quando você envia documentos para serem avaliados, a detecção de idioma tentará determinar se o texto foi escrito em qualquer um dos idiomas com suporte.

Caso você tenha um conteúdo expresso em um idioma usado com menos frequência, experimente o recurso Detecção de Idioma para ver se ele retorna um código. A resposta para idiomas que não podem ser detectados é unknown.

Enviar dados

Dica

Você pode usar um contêiner do Docker para detecção de idioma e, assim, usar a API localmente.

A análise é executada após o recebimento da solicitação. O uso do recurso de detecção de idioma de maneira síncrona é sem estado. Nenhum dado é armazenado em sua conta e os resultados são retornados imediatamente na resposta.

Ao usar esse recurso de forma assíncrona, os resultados da API ficam disponíveis por 24 horas a partir do momento em que a solicitação foi ingerida; isso é indicado na resposta. Após esse período de tempo, os resultados são limpos e não estão mais disponíveis para recuperação.

Obter resultados da detecção de idioma

Quando você recebe os resultados da detecção de idioma, pode transmitir os resultados para um aplicativo ou salvar a saída em um arquivo no sistema local.

Detecção de idioma: retorna um idioma predominante para cada documento que você envia, juntamente com seu nome ISO 639-1, um nome legível por humanos, pontuação de confiança, nome da grafia e código da grafia de acordo com o padrão ISO 15924. Uma pontuação positiva igual a 1 indica o nível mais alto de confiança possível da análise.

Conteúdo ambíguo

Em alguns casos, pode ser difícil eliminar a ambiguidade de idiomas com base na entrada. Você pode usar o parâmetro countryHint para especificar um código de país/região ISO 3166-1 alfa-2. Por padrão, a API usa "US" como a dica de país/região padrão. Para remover esse comportamento, redefina esse parâmetro com uma cadeia de caracteres com um valor de vazio countryHint = "".

Por exemplo, "communication" é comum em inglês e em francês e, se for fornecida com contexto limitado, a resposta será baseada na dica de país/região “US”. Se a origem do texto for conhecida por ser proveniente da França, isso poderá ser fornecido como uma dica.

Observação

Conteúdo ambíguo pode fazer com que as pontuações de confiança sejam menores. O countryHint na resposta será aplicável somente se a pontuação de confiança for menor que 0,8.

Entrada

{
    "documents": [
        {
            "id": "1",
            "text": "communication"
        },
        {
            "id": "2",
            "text": "communication",
            "countryHint": "fr"
        }
    ]
}

Com o segundo documento, o modelo de detecção de idioma tem contexto adicional para fazer um julgamento melhor porque contém a propriedade countryHint na entrada acima. Isso retornará a saída a seguir.

Saída

{
    "documents":[
        {
            "detectedLanguage":{
                "confidenceScore":0.62,
                "iso6391Name":"en",
                "name":"English"
            },
            "id":"1",
            "warnings":[
                
            ]
        },
        {
            "detectedLanguage":{
                "confidenceScore":1.0,
                "iso6391Name":"fr",
                "name":"French"
            },
            "id":"2",
            "warnings":[
                
            ]
        }
    ],
    "errors":[
        
    ],
    "modelVersion":"2022-10-01"
}

Se o analisador não conseguir analisar a entrada, ele retornará (Unknown). Um exemplo é se você enviar uma cadeia de caracteres de texto que consiste exclusivamente em números.

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": 0.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2023-12-01"
}

Conteúdo de idioma misto

O conteúdo de idioma misto no mesmo documento retorna o idioma com a representação maior no conteúdo, mas com uma classificação positiva inferior. A classificação reflete a força marginal da avaliação. No exemplo a seguir, a entrada é uma combinação de francês, espanhol e inglês. O analisador de contagens de caracteres em cada segmento determina o idioma predominante.

Entrada

{
    "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?"
        }
    ]
}

Saída

A saída resultante consiste no idioma predominante, com uma pontuação inferior a 1,0, o que indica um nível mais fraco de confiança.

{
    "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
            {
                "id": "1",
                "detectedLanguage": {
                    "name": "Spanish",
                    "iso6391Name": "es",
                    "confidenceScore": 0.97,
                    "script": "Latin",
                    "scriptCode": "Latn"
                },
                "warnings": []
            }
        ],
        "errors": [],
        "modelVersion": "2023-12-01"
    }
}

Nome da grafia e código da grafia

Observação

  • No momento, a detecção de grafia está limitada a idiomas selecionados.
  • A detecção de grafia só está disponível para entrada textual que tem mais de 12 caracteres de comprimento.

A detecção de idiomas oferece a capacidade de detectar mais de uma grafia por idioma de acordo com o padrão ISO 15924. Especificamente, a Detecção de Idioma retorna duas propriedades relacionadas à grafia:

  • script: o nome legível pelo ser humano da grafia identificada
  • scriptCode: o código ISO 15924 para a grafia identificada

A saída da API inclui o valor da propriedade scriptCode para documentos com pelo menos 12 caracteres ou mais de comprimento e corresponde à lista de idiomas e grafias com suporte. A detecção de grafia foi projetada para beneficiar usuários cujo idioma pode ser transliterado ou escrito em mais de uma grafia, como idioma cazaque ou híndi.

Anteriormente, a detecção de idiomas era projetada para detectar o idioma de documentos em uma ampla variedade de idiomas, dialetos e variantes regionais, mas era limitada pela "Romanização". Romanização refere-se à conversão de texto de um sistema de escrita para a grafia romana (latino) e é necessária para detectar muitos idiomas indo-europeus. No entanto, há outros idiomas que são escritos em várias grafias, como cazaque, que podem ser escritas em grafias cirílicas, perso-árabes e latinas. Há também outros casos em que os usuários podem escolher ou são obrigados a transliterar seu idioma em mais de uma grafia, como hindi transliterado na grafia latina, devido à disponibilidade limitada de teclados que dão suporte à grafia Devanagari.

Consequentemente, o suporte expandido da detecção de idioma para detecção de grafia se comporta da seguinte maneira:

Entrada

{ 
    "kind": "LanguageDetection", 
    "parameters": { 
        "modelVersion": "latest" 
    }, 
    "analysisInput": { 
        "documents": [ 
            { 
                "id": "1", 
                "text": "आप कहाँ जा रहे हैं?" 
            }, 
            { 
                "id": "2", 
                "text": "Туған жерім менің - Қазақстаным" 
            } 
        ] 
    } 
} 

Saída

A saída resultante consiste no idioma predominante, juntamente com um nome de grafia, código de grafia e pontuação de confiança.

{ 
    "kind": "LanguageDetectionResults", 
    "results": { 
        "documents": [ 
            { 
                "id": "1", 
                "detectedLanguage": { 
                    "name": "Hindi", 
                    "iso6391Name": "hi", 
                    "confidenceScore": 1.0, 
                    "script": "Devanagari", 
                    "scriptCode": "Deva" 
                }, 
                "warnings": [] 
            }, 
            { 
                "id": "2", 
                "detectedLanguage": { 
                    "name": "Kazakh", 
                    "iso6391Name": "kk", 
                    "confidenceScore": 1.0, 
                    "script": "Cyrillic",  
                    "scriptCode": "Cyrl" 
                }, 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2023-12-01" 
    } 
}

Limites de dados e serviços

Para obter informações sobre o tamanho e o número de solicitações que você pode enviar por minuto e segundo, confira o artigo Limites de serviços.

Confira também