Detetar idiomas com a API do Detetor de Idiomas

A API do Detetor de Idiomas é uma API Web experimental que lhe permite detetar o idioma do texto através de um modelo incorporado no Microsoft Edge, a partir de código JavaScript no seu site ou extensão do browser.

Conteúdo detalhado:

Introdução

Para obter informações introdutórias sobre a API do Detetor de Idiomas, veja:

Utilizar a API do Detetor de Idiomas com a API do Microsoft Translator

Para facilitar a tradução de texto fornecido pelo utilizador para outro idioma, utilize a API do Detetor de Idiomas em conjunto com a API do Microsoft Translator.

Para saber mais sobre a API do Microsoft Translator, veja: Traduzir texto com a API do Microsoft Translator.

Disponibilidade da API do Detetor de Idiomas

A API do Detetor de Idiomas está disponível como pré-visualização do programador nos canais Microsoft Edge Canary ou Dev, a partir da versão 147.0.3897.0. Para transferir um canal de pré-visualização do Microsoft Edge (Beta, Dev ou Canary), aceda a Tornar-se um Microsoft Edge Insider.

Benefícios da API do Detetor de Idiomas

A API do Detetor de Idiomas utiliza um modelo de deteção de idioma que é executado no mesmo dispositivo onde são utilizadas as entradas e saídas do modelo (ou seja, localmente). Esta abordagem tem os seguintes benefícios em comparação com as soluções baseadas na cloud:

  • Custo reduzido: Não existem custos associados à utilização de um serviço de deteção de idioma na cloud.

  • Independência da rede: Para além da transferência do modelo inicial, não existe latência de rede ao utilizar esta API para detetar idiomas e a API também pode ser utilizada quando o dispositivo está offline.

  • Privacidade melhorada: A entrada de dados no modelo nunca sai do dispositivo e não é recolhida para preparar outros modelos de IA.

O modelo de deteção de idioma é transferido na primeira vez que a API é utilizada no Microsoft Edge e, posteriormente, é partilhado em todos os sites no browser. O modelo é acedido através de uma API Web simples que não requer conhecimento de arquiteturas de terceiros e não requer conhecimentos de Inteligência Artificial (IA) ou Machine Learning (ML).

Alternativas à API do Detetor de Idiomas

Pode enviar pedidos de rede para serviços de deteção de idioma baseados na cloud com capacidades mais sofisticadas; veja Azure documentação da Linguagem de IA.

Como alternativa no dispositivo, a API prompt serve mais cenários personalizados, com um pequeno modelo de linguagem incorporado no Microsoft Edge; veja Pedir um modelo de linguagem incorporado com a API Prompt.

Aviso de isenção

Tal como outros modelos de machine learning, o modelo de deteção de idiomas no Microsoft Edge pode potencialmente produzir resultados imprecisos ou pouco fiáveis para determinadas entradas, como texto curto ou palavras simples.

Disponibilidade do modelo

É necessária uma transferência inicial do modelo da primeira vez que um site chama a API do Detetor de Idiomas. Pode monitorizar a transferência do modelo com a opção de monitor ao criar uma nova sessão da API do Detetor de Idiomas; veja Monitorizar o progresso da transferência do modelo (monitor), abaixo.

Ativar a API do Detetor de Idiomas

Para utilizar a API do Detetor de Idiomas no Microsoft Edge, defina o sinalizador da seguinte forma:

  1. No Microsoft Edge, aceda a edge://versione certifique-se de que está a utilizar a versão 147.0.3897.0 ou posterior do Microsoft Edge, como o canal de pré-visualização Canary ou Dev do Microsoft Edge.

    Para transferir um canal de pré-visualização do Microsoft Edge (Beta, Dev ou Canary), aceda a Tornar-se um Microsoft Edge Insider.

  2. Nessa versão do Microsoft Edge, abra um novo separador ou janela e aceda a edge://flags.

  3. Na caixa de texto Sinalizadores de pesquisa na parte superior, comece a escrever API da plataforma Web de deteção de idioma:

    Página sinalizadores do browser

    O seguinte sinalizador está listado:

    • API da plataforma Web de deteção de idiomas

      Esta entrada mostra #edge-language-detection-api (que liga a edge://flags/#edge-language-detection-api).

  4. Em API da plataforma Web de deteção de idiomas, selecione Ativado.

    No canto inferior direito, é apresentado um botão Reiniciar .

  5. Clique no botão Reiniciar .

Veja um exemplo de trabalho

Para ver a API do Detetor de Idiomas em ação e ver o código existente que utiliza esta API:

  1. Ative a API do Detetor de Idiomas, conforme descrito acima.

  2. No Microsoft Edge Canary ou Dev, aceda ao ambiente de trabalho da API do Detetor de Idiomas numa nova janela ou separador.

  3. Na faixa de informações na parte superior, marcar o status: inicialmente, lê-se: API no dispositivo e modelo disponível.

  4. Na caixa de texto Texto a analisar , opcionalmente, pode alterar o texto.

  5. Clique no botão Detetar idioma .

    O modelo começa a detetar o idioma do texto.

    O resultado é gerado na secção de resposta da página.

    O resultado é apresentado:

    • O nome do idioma detetado.
    • A percentagem de certeza de que língua.

    A página de demonstração do Detetor de Idiomas com definições e um botão Detetar

Veja também:

  • /built-in-ai/ - Código fonte e Readme para a demonstração de playgrounds de IA incorporados.

Utilizar a API do Detetor de Idiomas

As secções seguintes são sobre a utilização da API do Detetor de Idiomas.

Verificar se a API do Detetor de Idiomas está ativada

Antes de utilizar a API do Detetor de Idiomas no código do seu site, marcar que a API está ativada, ao testar a presença do LanguageDetector objeto:

if (!LanguageDetector) {
  // The Language Detector API is not available.
} else {
  // The Language Detector API is available.
}

Verificar se o modelo pode ser utilizado (availability())

A API do Detetor de Idiomas pode ser utilizada se o modelo e o runtime do modelo tiverem sido transferidos pelo Microsoft Edge.

Para marcar se a API puder ser utilizada, chame availability():

const availability = await LanguageDetector.availability();

if (availability == "unavailable") {
  // The model is not available.
}

if (availability == "downloadable" || availability == "downloading") {
  // The model can be used, but it needs to be downloaded first.
}

if (availability == "available") {
  // The model is available and can be used.
}

Criar uma nova sessão (create())

A criação de uma sessão instrui o browser a carregar o modelo de deteção de idioma na memória, para que o modelo possa ser utilizado. Antes de poder detetar o idioma, crie uma nova sessão com o create() método :

// Create a Language Detector session.
const session = await LanguageDetector.create();

Para personalizar a sessão do modelo, pode transmitir opções para o create() método :

// Create a Language Detector session with options.
const session = await LanguageDetector.create({
  expectedInputLanguages: ["en", "es", "fr"]
  monitor: monitorProgress
});

As opções disponíveis são:

Opção Descrição
expectedInputLanguages Uma matriz de códigos de linguagem. Se existirem determinados idiomas que precisa de detetar para o seu caso de utilização, inclua-os na opção expectedInputLanguages . Isto permite que o Microsoft Edge transfira recursos adicionais, se necessário, para uma melhor precisão. Os códigos de idioma devem estar no formato BCP 47 (por exemplo, "en" para inglês, "es" espanhol ou "fr" francês).
monitor Uma função que é utilizada para monitorizar o progresso da transferência do modelo. Veja Monitorizar o progresso da transferência do modelo (monitor), abaixo.

Monitorizar o progresso da transferência do modelo (monitor)

Pode seguir o progresso da transferência do modelo com a opção monitor . Isto é útil quando o modelo ainda não foi totalmente transferido para o dispositivo onde será utilizado, para informar os utilizadores do seu site de que devem aguardar.

// Create a Language Detector session with the monitor option to monitor the
// model download.
const session = await LanguageDetector.create({
  monitor: m => {
    // Use the monitor object argument to add a listener for the 
    // downloadprogress event.
    m.addEventListener("downloadprogress", event => {
      // The event is an object with the loaded and total properties.
      if (event.loaded == event.total) {
        // The model is fully downloaded.
      } else {
        // The model is still downloading.
        const percentageComplete = (event.loaded / event.total) * 100;
      }
    });
  }
});

Executar a API do Detetor de Idiomas (detect())

Depois de criar uma sessão de modelo, pode detetar o idioma do texto. A API do Detetor de Idiomas fornece o detect() método para detetar idiomas:

// Create a Language Detector session.
const session = await LanguageDetector.create();

// Detect the language of the text.
const results = await session.detect(someUserText);

// Use the results.
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely.
  console.log(result.detectedLanguage, result.confidence);
}

O detect() método devolve uma promessa que é resolvida para uma matriz de resultados de deteção de idioma. Cada resultado é um objeto com as seguintes propriedades:

Propriedade Descrição
detectedLanguage A etiqueta de idioma BCP 47 do idioma detetado (por exemplo, "en" para inglês, "es" espanhol ou "und" indeterminado).
confidence Um número entre 0,0 e 1.0, que indica o nível de confiança da deteção. Os valores mais elevados indicam uma maior confiança.

Os resultados são ordenados pela confiança por ordem descendente, com o idioma mais provável em primeiro lugar. A última entrada na matriz de resultados é sempre a linguagem indeterminada ("und"). O undetermined membro na matriz representa a percentagem de confiança de que o texto não está em nenhum dos idiomas que o modelo conhece.

Compreender as classificações de confiança

As classificações de confiança devolvidas pela API do Detetor de Idiomas têm as seguintes características:

  • Intervalo: Cada classificação de confiança é um número entre 0 (confiança mais baixa) e 1 (maior confiança), inclusive.

  • Resultados ordenados: Os resultados são ordenados da confiança mais alta para a mais baixa.

  • Filtragem de baixa confiança: Os idiomas com confiança muito baixa são automaticamente filtrados para reduzir o ruído. Normalmente, a confiança baixa é inferior a 1%, ou menos confiante do que a categoria "indeterminada".

  • Soma das pontuações: A soma de todas as classificações de confiança pode ser inferior a 1, porque os idiomas de baixa probabilidade são omitidos dos resultados.

Destruir uma sessão (destroy())

Depois de detetar idiomas, destrua a sessão. Isto permite que o browser saiba que já não precisa do modelo de idioma, para que o modelo possa ser descarregado da memória.

Pode destruir uma sessão de duas formas diferentes:

  • Ao utilizar o destroy() método .
  • Ao utilizar um AbortController.

Os detalhes encontram-se abaixo.

Destruir uma sessão ao chamar destroy()

Para destruir uma sessão ao chamar destroy() com uma LanguageDetector sessão:

const session = await LanguageDetector.create();

// Later, destroy the session by using the destroy method.
session.destroy();

Destruir uma sessão com AbortController

Para destruir uma sessão ao criar um AbortController objeto, crie uma LanguageDetector sessão e, em seguida, chame abort():

// Create an AbortController object.
const controller = new AbortController();

// Create a Language Detector session and pass the 
// AbortController object by using the signal option.
const session = await LanguageDetector.create({
  signal: controller.signal
});

// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

Enviar comentários

Estamos interessados em saber mais sobre:

  • O intervalo de cenários para os quais pretende utilizar a API do Detetor de Idiomas.
  • Quaisquer problemas com que se depare com a API ou o modelo de deteção de idioma.
  • Se outras APIs incorporadas específicas de tarefas seriam úteis.

Para enviar feedback sobre os seus cenários e as tarefas que pretende alcançar, adicione um comentário ao problema de feedback da API do Detetor de Idiomas.

Se reparar em problemas ao utilizar a API, comunique-o no repositório.

Também pode contribuir para o debate sobre a conceção da API do Detetor de Idiomas, no repositório do Grupo de Trabalho do W3C Web Machine Learning.

Confira também

Obter o Microsoft Edge:

GitHub:

Azure documentos:

Repositório de demonstrações: